@stevenvo780/st-lang 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/st CHANGED
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/arithmetic/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AASnF,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CA8E5F;AAcD,qBAAa,iBAAkB,YAAW,YAAY;IACpD,IAAI,SAAgB;IACpB,WAAW,SAAgE;IAE3E,OAAO,CAAC,MAAM;IAQd,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAqB/C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAkBvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAgB7C,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA+B/C,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAIpE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAsBzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;CA0CrC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/arithmetic/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AASnF,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CA8E5F;AAYD,qBAAa,iBAAkB,YAAW,YAAY;IACpD,IAAI,SAAgB;IACpB,WAAW,SAAgE;IAE3E,OAAO,CAAC,MAAM;IAQd,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAqB/C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAkBvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAgB7C,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA+B/C,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAIpE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAsBzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;CA0CrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/arithmetic/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/arithmetic/index.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,17 @@ export declare function toPrenex(f: Formula): Formula;
3
3
  export declare function skolemize(f: Formula): Formula;
4
4
  export declare class ClassicalFirstOrder implements LogicProfile {
5
5
  readonly name = "classical.first_order";
6
- readonly description = "Logica clasica de primer orden (FOL) \u2014 Motor de Tableau v2";
6
+ readonly description = "Logica clasica de primer orden (FOL) \u2014 Motor de Tableau Hardened";
7
7
  checkWellFormed(formula: Formula): Diagnostic[];
8
8
  checkValid(formula: Formula): RunResult;
9
9
  checkSatisfiable(formula: Formula): RunResult;
10
10
  prove(goal: Formula, theory: Theory): RunResult;
11
11
  derive(goal: Formula, premises: string[], theory: Theory): RunResult;
12
12
  countermodel(formula: Formula): RunResult;
13
- explain(formula: Formula): RunResult;
13
+ explain(_formula: Formula): RunResult;
14
14
  checkEquivalent(a: Formula, b: Formula): RunResult;
15
15
  private solve;
16
16
  private solveRecursive;
17
- private formulaHash;
18
17
  private substitute;
19
18
  private isEqual;
20
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"first-order.d.ts","sourceRoot":"","sources":["../../../src/profiles/classical/first-order.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkBnF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAqC5C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CA+B7C;AAOD,qBAAa,mBAAoB,YAAW,YAAY;IACtD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,WAAW,qEAAgE;IAEpF,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAa/C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAevC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAW7C,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAiB/C,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAsFpE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAiEzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAmHpC,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS;IAelD,OAAO,CAAC,KAAK;IAgBb,OAAO,CAAC,cAAc;IAuRtB,OAAO,CAAC,WAAW;IAGnB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,OAAO;CAgBhB"}
1
+ {"version":3,"file":"first-order.d.ts","sourceRoot":"","sources":["../../../src/profiles/classical/first-order.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAuBnF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAqC5C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CA4B7C;AAOD,qBAAa,mBAAoB,YAAW,YAAY;IACtD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,WAAW,2EAAsE;IAE1F,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAa/C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAcvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAW7C,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAgB/C,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAkBpE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAYzC,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS;IAIrC,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS;IAKlD,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,cAAc;IA+GtB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,OAAO;CAGhB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  // ============================================================
3
- // ST Classical First-Order — Motor de Tableau Sistematico (v2 Perfect)
3
+ // ST Classical First-Order — Motor de Tableau Sistematico (Hardened)
4
4
  // ============================================================
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ClassicalFirstOrder = void 0;
@@ -79,14 +79,11 @@ function skolemize(f) {
79
79
  }
80
80
  return node;
81
81
  }
82
- const rawMatrix = process(prenex);
83
- // Restore remaining foralls (Skolemization removes existentials, keeps foralls usually implicitly but we make them explicit)
84
- const finalRes = rawMatrix;
85
- return finalRes; // Simplification: we just return the matrix, standard skolemization implicitly universalizes
82
+ return process(prenex);
86
83
  }
87
84
  class ClassicalFirstOrder {
88
85
  name = 'classical.first_order';
89
- description = 'Logica clasica de primer orden (FOL) — Motor de Tableau v2';
86
+ description = 'Logica clasica de primer orden (FOL) — Motor de Tableau Hardened';
90
87
  checkWellFormed(formula) {
91
88
  const diags = [];
92
89
  const walk = (f) => {
@@ -102,12 +99,11 @@ class ClassicalFirstOrder {
102
99
  checkValid(formula) {
103
100
  const negated = (0, propositional_1.toNNF)({ kind: 'not', args: [formula] });
104
101
  const res = this.solve([{ formula: negated }]);
105
- const isClosed = res.closed;
106
102
  return {
107
- status: isClosed ? 'valid' : 'invalid',
108
- output: isClosed
109
- ? `${(0, propositional_1.formulaToString)(formula)} es VÁLIDA en FOL`
110
- : `${(0, propositional_1.formulaToString)(formula)} NO es válida (tiene un contramodelo)`,
103
+ status: res.closed ? 'valid' : 'invalid',
104
+ output: res.closed
105
+ ? `${(0, propositional_1.formulaToString)(formula)} es VÁLIDA`
106
+ : `${(0, propositional_1.formulaToString)(formula)} NO es válida`,
111
107
  tableauTrace: res.trace,
112
108
  diagnostics: [],
113
109
  formula,
@@ -130,10 +126,9 @@ class ClassicalFirstOrder {
130
126
  { formula: (0, propositional_1.toNNF)({ kind: 'not', args: [goal] }) },
131
127
  ];
132
128
  const res = this.solve(nodes);
133
- const isClosed = res.closed;
134
129
  return {
135
- status: isClosed ? 'provable' : 'refutable',
136
- output: isClosed ? 'Demostrado' : 'No demostrable',
130
+ status: res.closed ? 'provable' : 'refutable',
131
+ output: res.closed ? 'Demostrado' : 'No demostrable',
137
132
  tableauTrace: res.trace,
138
133
  diagnostics: [],
139
134
  formula: goal,
@@ -148,68 +143,10 @@ class ClassicalFirstOrder {
148
143
  { formula: (0, propositional_1.toNNF)({ kind: 'not', args: [goal] }) },
149
144
  ];
150
145
  const res = this.solve(nodes);
151
- // Build proof steps from tableau trace
152
- const proof = { goal, steps: [], status: 'incomplete' };
153
- let stepNum = 0;
154
- // Add premises as steps
155
- for (let i = 0; i < premises.length; i++) {
156
- stepNum++;
157
- const f = formulas[i];
158
- if (f) {
159
- proof.steps.push({
160
- stepNumber: stepNum,
161
- formula: f,
162
- justification: `Premisa (${premises[i]})`,
163
- premises: [],
164
- });
165
- }
166
- }
167
- // Parse tableau trace to extract named quantifier rules
168
- for (const traceLine of res.trace) {
169
- if (traceLine.includes('Instanciación Universal UI') ||
170
- traceLine.includes('Gamma') ||
171
- traceLine.includes('gamma')) {
172
- stepNum++;
173
- proof.steps.push({
174
- stepNumber: stepNum,
175
- formula: goal,
176
- justification: 'Instanciación Universal (UI): ∀xφ(x) ⊢ φ(a)',
177
- premises: [],
178
- });
179
- }
180
- if (traceLine.includes('Instanciación Existencial EI') ||
181
- traceLine.includes('Delta') ||
182
- traceLine.includes('delta')) {
183
- stepNum++;
184
- proof.steps.push({
185
- stepNumber: stepNum,
186
- formula: goal,
187
- justification: 'Instanciación Existencial (EI): ∃xφ(x) ⊢ φ(c) [c nueva]',
188
- premises: [],
189
- });
190
- }
191
- }
192
- // Final step
193
- if (res.closed) {
194
- stepNum++;
195
- proof.steps.push({
196
- stepNumber: stepNum,
197
- formula: goal,
198
- justification: 'Demostrado por refutación — todas las ramas del tableau cerradas',
199
- premises: [],
200
- });
201
- proof.status = 'complete';
202
- }
203
- const output = res.closed
204
- ? `Derivado con éxito mediante tableau de primer orden.\n Reglas de cuantificadores aplicadas:\n UI: Instanciación Universal — ∀xφ(x) ⊢ φ(a)\n EI: Instanciación Existencial — ∃xφ(x) ⊢ φ(c) [c nueva]\n UG: Generalización Universal — φ(a) [a arbitrario] ⊢ ∀xφ(x)\n EG: Generalización Existencial — φ(a) ⊢ ∃xφ(x)`
205
- : 'No se pudo derivar.';
206
146
  return {
207
147
  status: res.closed ? 'provable' : 'refutable',
208
- output,
209
- proof: res.closed ? proof : undefined,
148
+ output: res.closed ? 'Derivado' : 'No derivable',
210
149
  tableauTrace: res.trace,
211
- reasoningType: res.closed ? 'Tableau de primer orden (refutación)' : undefined,
212
- reasoningSchema: res.closed ? 'Γ, ¬φ ⊢ ⊥ ∴ Γ ⊢ φ' : undefined,
213
150
  diagnostics: [],
214
151
  formula: goal,
215
152
  };
@@ -217,212 +154,42 @@ class ClassicalFirstOrder {
217
154
  countermodel(formula) {
218
155
  const nnf = (0, propositional_1.toNNF)(formula);
219
156
  const res = this.solve([{ formula: { kind: 'not', args: [nnf] } }]);
220
- if (!res.closed) {
221
- // Extract domain and interpretation from open branch trace
222
- const domain = new Set();
223
- const interpretations = new Map();
224
- for (const line of res.trace) {
225
- // Collect constants mentioned in trace
226
- const constMatch = line.match(/\b(c\d+|[a-d])\b/g);
227
- if (constMatch) {
228
- for (const c of constMatch)
229
- domain.add(c);
230
- }
231
- }
232
- if (domain.size === 0)
233
- domain.add('a');
234
- // Build output
235
- let output = `Contramodelo encontrado:\n`;
236
- output += ` Dominio D = {${Array.from(domain).join(', ')}}\n`;
237
- output += ` Interpretación:\n`;
238
- // Collect predicates from formula
239
- const preds = new Map();
240
- const collectPreds = (f) => {
241
- if (f.kind === 'predicate' && f.name) {
242
- preds.set(f.name, (f.params || []).length);
243
- }
244
- f.args?.forEach(collectPreds);
245
- };
246
- collectPreds(formula);
247
- for (const [pred, arity] of preds) {
248
- const interp = interpretations.get(pred);
249
- if (interp && interp.size > 0) {
250
- output += ` ${pred} = {${Array.from(interp).join(', ')}} (aridad ${arity})\n`;
251
- }
252
- else {
253
- output += ` ${pred} = {} (vacío, aridad ${arity})\n`;
254
- }
255
- }
256
- output += ` → La fórmula no es válida`;
257
- return {
258
- status: 'invalid',
259
- output,
260
- model: {
261
- type: 'first_order',
262
- valuation: Object.fromEntries(Array.from(preds.keys()).map((p) => [p, false])),
263
- },
264
- tableauTrace: res.trace,
265
- diagnostics: [],
266
- formula,
267
- };
268
- }
269
- return {
270
- status: 'valid',
271
- output: `No existen contramodelos — la fórmula es válida en FOL.`,
272
- tableauTrace: res.trace,
273
- diagnostics: [],
274
- formula,
275
- };
276
- }
277
- explain(formula) {
278
- const nnf = (0, propositional_1.toNNF)(formula);
279
- const prenex = toPrenex(formula);
280
- const skolem = skolemize(formula);
281
- // Collect quantifiers, predicates, variables
282
- const quantifiers = [];
283
- const predicates = new Map(); // name -> arity
284
- const freeVars = new Set();
285
- const boundVars = new Set();
286
- const collectInfo = (f, bound) => {
287
- if (f.kind === 'forall' || f.kind === 'exists') {
288
- const v = f.variable || '_';
289
- const innerStr = f.args?.[0] ? (0, propositional_1.formulaToString)(f.args[0]) : '?';
290
- quantifiers.push({
291
- kind: f.kind === 'forall' ? '∀' : '∃',
292
- variable: v,
293
- scope: innerStr,
294
- });
295
- const newBound = new Set(bound);
296
- newBound.add(v);
297
- boundVars.add(v);
298
- if (f.args)
299
- f.args.forEach((a) => collectInfo(a, newBound));
300
- return;
301
- }
302
- if (f.kind === 'predicate' && f.name) {
303
- const arity = (f.params || []).length;
304
- predicates.set(f.name, arity);
305
- for (const p of f.params || []) {
306
- if (!bound.has(p))
307
- freeVars.add(p);
308
- }
309
- }
310
- if (f.kind === 'atom' && f.name) {
311
- predicates.set(f.name, 0);
312
- }
313
- if (f.args)
314
- f.args.forEach((a) => collectInfo(a, bound));
315
- };
316
- collectInfo(formula, new Set());
317
- let out = `Análisis de Fórmula en Primer Orden:\n`;
318
- out += ` Fórmula original: ${(0, propositional_1.formulaToString)(formula)}\n`;
319
- // Syntactic analysis
320
- out += `\nAnálisis sintáctico:\n`;
321
- if (quantifiers.length > 0) {
322
- const qStrs = quantifiers.map((q) => `${q.kind}${q.variable} (${q.kind === '∀' ? 'universal' : 'existencial'})`);
323
- out += ` Cuantificadores: ${qStrs.join(', ')}\n`;
324
- for (const q of quantifiers) {
325
- out += ` Alcance de ${q.kind}${q.variable}: ${q.scope}\n`;
326
- }
327
- }
328
- else {
329
- out += ` Cuantificadores: ninguno (fórmula proposicional con predicados)\n`;
330
- }
331
- if (predicates.size > 0) {
332
- const predStrs = Array.from(predicates.entries()).map(([n, a]) => `${n}/${a} (aridad ${a})`);
333
- out += ` Predicados: ${predStrs.join(', ')}\n`;
334
- }
335
- if (boundVars.size > 0)
336
- out += ` Variables ligadas: ${Array.from(boundVars).join(', ')}\n`;
337
- if (freeVars.size > 0) {
338
- out += ` Variables libres: ${Array.from(freeVars).join(', ')}\n`;
339
- }
340
- else {
341
- out += ` Variables libres: ninguna (sentencia cerrada)\n`;
342
- }
343
- // Quantifier alternation depth
344
- let altDepth = 0;
345
- let lastQ = '';
346
- for (const q of quantifiers) {
347
- if (lastQ && lastQ !== q.kind)
348
- altDepth++;
349
- lastQ = q.kind;
350
- }
351
- out += ` Alternancia de cuantificadores: ${altDepth}\n`;
352
- out += ` Profundidad de cuantificadores: ${quantifiers.length}\n`;
353
- // Normal forms
354
- out += `\nFormas normales:\n`;
355
- out += ` NNF: ${(0, propositional_1.formulaToString)(nnf)}\n`;
356
- out += ` PNF: ${(0, propositional_1.formulaToString)(prenex)}\n`;
357
- out += ` Skolem: ${(0, propositional_1.formulaToString)(skolem)}\n`;
358
- // Natural language interpretation
359
- if (quantifiers.length === 1 &&
360
- quantifiers[0].kind === '∀' &&
361
- formula.args?.[0]?.kind === 'implies' &&
362
- predicates.size === 2) {
363
- const pNames = Array.from(predicates.keys());
364
- out += `\nInterpretación natural: "Para todo ${quantifiers[0].variable}, si ${quantifiers[0].variable} es ${pNames[0]} entonces ${quantifiers[0].variable} es ${pNames[1]}"\n`;
365
- out += `Lectura categórica: "Todo ${pNames[0]} es ${pNames[1]}" (proposición tipo A)\n`;
366
- }
367
- // Validity check
368
- const res = this.solve([{ formula: (0, propositional_1.toNNF)({ kind: 'not', args: [formula] }) }]);
369
- out += `\nEstatus: ${res.closed ? 'VÁLIDA (demostrada por tableau)' : 'INVÁLIDA (rama abierta encontrada)'}`;
370
157
  return {
371
158
  status: res.closed ? 'valid' : 'invalid',
372
- output: out,
159
+ output: res.closed ? 'Válida' : 'Inválida',
373
160
  tableauTrace: res.trace,
374
- normalForms: {
375
- nnf: (0, propositional_1.formulaToString)(nnf),
376
- pnf: (0, propositional_1.formulaToString)(prenex),
377
- skolem: (0, propositional_1.formulaToString)(skolem),
378
- },
379
161
  diagnostics: [],
380
162
  formula,
381
163
  };
382
164
  }
165
+ explain(_formula) {
166
+ return { status: 'unknown', output: 'Explain no implementado en Hardened', diagnostics: [] };
167
+ }
383
168
  checkEquivalent(a, b) {
384
169
  const biconditional = { kind: 'biconditional', args: [a, b] };
385
- const result = this.checkValid(biconditional);
386
- const fA = (0, propositional_1.formulaToString)(a);
387
- const fB = (0, propositional_1.formulaToString)(b);
388
- return {
389
- status: result.status === 'valid' ? 'valid' : 'invalid',
390
- output: result.status === 'valid'
391
- ? `${fA} y ${fB} son EQUIVALENTES en FOL`
392
- : `${fA} y ${fB} NO son equivalentes en FOL`,
393
- diagnostics: [],
394
- };
170
+ return this.checkValid(biconditional);
395
171
  }
396
172
  solve(initialNodes) {
397
173
  varCounter = 0;
398
174
  skolemCounter = 0;
399
175
  const constants = new Set(['c0']);
400
- const collect = (f) => {
401
- if (f.kind === 'predicate' && f.params) {
402
- for (const p of f.params)
403
- if (!p.match(/^[xyz]/))
404
- constants.add(p);
405
- }
406
- f.args?.forEach(collect);
407
- };
408
- initialNodes.forEach((n) => collect(n.formula));
409
176
  const trace = [];
410
177
  const closed = this.solveRecursive(initialNodes, constants, new Set(), 0, trace);
411
178
  return { closed, trace };
412
179
  }
413
180
  solveRecursive(nodes, constants, processed, depth, trace) {
414
- if (depth > 3000) {
415
- trace.push(`[${depth}] ⚠ Se superó la profundidad máxima permitida (3000). Evaluando recursividad forzada.`);
181
+ if (depth > 200) {
182
+ trace.push(`[${depth}] ⚠ Se alcanzó profundidad máxima de seguridad (200).`);
416
183
  return false;
417
184
  }
418
185
  if (nodes.length === 0)
419
186
  return false;
420
- // 1. Contradicción robusta (comparación canónica)
187
+ // Contradicción
421
188
  for (const n1 of nodes) {
422
189
  if (n1.formula.kind === 'not' && n1.formula.args) {
423
190
  const atom = n1.formula.args[0];
424
191
  if (nodes.some((n2) => this.isEqual(n2.formula, atom))) {
425
- trace.push(`[${depth}] ✕ Rama cerrada por contradicción con ${(0, propositional_1.formulaToString)(atom)}`);
192
+ trace.push(`[${depth}] ✕ Rama cerrada por contradicción`);
426
193
  return true;
427
194
  }
428
195
  }
@@ -430,29 +197,12 @@ class ClassicalFirstOrder {
430
197
  const type = (f) => {
431
198
  if (f.kind === 'and')
432
199
  return 'alfa';
433
- if (f.kind === 'or' || f.kind === 'implies')
434
- return 'beta';
435
- if (f.kind === 'biconditional')
436
- return 'beta';
437
200
  if (f.kind === 'exists')
438
201
  return 'delta';
439
202
  if (f.kind === 'forall')
440
203
  return 'gamma';
441
- if (f.kind === 'not') {
442
- const inner = (f.args || [])[0];
443
- if (inner) {
444
- if (inner.kind === 'and')
445
- return 'beta';
446
- if (inner.kind === 'or')
447
- return 'alfa';
448
- if (inner.kind === 'implies')
449
- return 'alfa';
450
- if (inner.kind === 'exists')
451
- return 'gamma';
452
- if (inner.kind === 'forall')
453
- return 'delta';
454
- }
455
- }
204
+ if (f.kind === 'or' || f.kind === 'implies')
205
+ return 'beta';
456
206
  return 'atom';
457
207
  };
458
208
  const priorities = ['alfa', 'delta', 'gamma', 'beta'];
@@ -463,8 +213,7 @@ class ClassicalFirstOrder {
463
213
  const node = nodes[idx];
464
214
  const rest = nodes.filter((_, i) => i !== idx);
465
215
  const { formula: f } = node;
466
- const args = f.args || [];
467
- const key = this.formulaHash(f);
216
+ const key = (0, propositional_1.formulaToString)(f);
468
217
  if (p !== 'gamma' && p !== 'atom' && processed.has(key))
469
218
  return this.solveRecursive(rest, constants, processed, depth, trace);
470
219
  const nextProcessed = new Set(processed);
@@ -472,127 +221,41 @@ class ClassicalFirstOrder {
472
221
  nextProcessed.add(key);
473
222
  switch (f.kind) {
474
223
  case 'and':
475
- trace.push(`[${depth}] Alfa (∧): ${(0, propositional_1.formulaToString)(f)}`);
476
- return this.solveRecursive([{ formula: args[0] }, { formula: args[1] }, ...rest], constants, nextProcessed, depth + 1, trace);
224
+ return this.solveRecursive([{ formula: f.args[0] }, { formula: f.args[1] }, ...rest], constants, nextProcessed, depth + 1, trace);
477
225
  case 'exists': {
478
- const variable = f.variable;
479
- if (!args[0] || !variable)
480
- return false;
481
226
  const newC = `c${constants.size}`;
482
- trace.push(`[${depth}] Delta (∃ - Instanciación Existencial EI): ${(0, propositional_1.formulaToString)(f)} -> asignando cte nueva ${newC}`);
483
227
  const nextConstants = new Set(constants).add(newC);
484
- return this.solveRecursive([{ formula: this.substitute(args[0], variable, newC) }, ...rest], nextConstants, nextProcessed, depth + 1, trace);
228
+ return this.solveRecursive([{ formula: this.substitute(f.args[0], f.variable, newC) }, ...rest], nextConstants, nextProcessed, depth + 1, trace);
485
229
  }
486
230
  case 'forall': {
487
- const variable = f.variable;
488
- if (!args[0] || !variable)
489
- return false;
490
- const newInsts = [];
491
- for (const c of constants) {
492
- const instKey = `gamma:${c}:${key}`;
493
- if (!processed.has(instKey)) {
494
- newInsts.push({ formula: this.substitute(args[0], variable, c) });
495
- processed.add(instKey);
496
- }
497
- }
498
- if (newInsts.length > 0) {
499
- trace.push(`[${depth}] Gamma (∀ - Instanciación Universal UI): ${(0, propositional_1.formulaToString)(f)} -> con instantes actuales`);
500
- return this.solveRecursive([...newInsts, ...nodes], constants, processed, depth + 1, trace);
231
+ const gammaKey = `gamma_count:${key}`;
232
+ const proc = processed;
233
+ const gammaCount = proc.__gammaCounters?.get(gammaKey) ?? 0;
234
+ if (gammaCount >= 20) {
235
+ trace.push(`[${depth}] Límite Gamma alcanzado.`);
236
+ return this.solveRecursive(rest, constants, nextProcessed, depth, trace);
501
237
  }
502
- return this.solveRecursive(rest, constants, nextProcessed, depth, trace);
238
+ if (!proc.__gammaCounters)
239
+ proc.__gammaCounters = new Map();
240
+ proc.__gammaCounters.set(gammaKey, gammaCount + 1);
241
+ const newInsts = Array.from(constants).map((c) => ({
242
+ formula: this.substitute(f.args[0], f.variable, c),
243
+ }));
244
+ return this.solveRecursive([...newInsts, ...nodes], constants, processed, depth + 1, trace);
503
245
  }
504
246
  case 'or':
505
- trace.push(`[${depth}] Beta (∨): ${(0, propositional_1.formulaToString)(f)} -> Bifurcando`);
506
- return (this.solveRecursive([{ formula: args[0] }, ...rest], constants, nextProcessed, depth + 1, [...trace, `[${depth}] -> Rama 1: ${(0, propositional_1.formulaToString)(args[0])}`]) &&
507
- this.solveRecursive([{ formula: args[1] }, ...rest], constants, nextProcessed, depth + 1, [...trace, `[${depth}] -> Rama 2: ${(0, propositional_1.formulaToString)(args[1])}`]));
508
- case 'implies':
509
- trace.push(`[${depth}] Beta (→): ${(0, propositional_1.formulaToString)(f)} -> Bifurcando`);
510
- return (this.solveRecursive([{ formula: { kind: 'not', args: [args[0]] } }, ...rest], constants, nextProcessed, depth + 1, [...trace, `[${depth}] -> Rama 1: ¬${(0, propositional_1.formulaToString)(args[0])}`]) &&
511
- this.solveRecursive([{ formula: args[1] }, ...rest], constants, nextProcessed, depth + 1, [...trace, `[${depth}] -> Rama 2: ${(0, propositional_1.formulaToString)(args[1])}`]));
512
- case 'biconditional':
513
- trace.push(`[${depth}] Beta (↔): ${(0, propositional_1.formulaToString)(f)}`);
514
- return (this.solveRecursive([{ formula: args[0] }, { formula: args[1] }, ...rest], constants, nextProcessed, depth + 1, [...trace]) &&
515
- this.solveRecursive([
516
- { formula: { kind: 'not', args: [args[0]] } },
517
- { formula: { kind: 'not', args: [args[1]] } },
518
- ...rest,
519
- ], constants, nextProcessed, depth + 1, [...trace]));
520
- case 'not': {
521
- const inner = args[0];
522
- if (!inner)
523
- return false;
524
- switch (inner.kind) {
525
- case 'and':
526
- trace.push(`[${depth}] Beta (¬∧): ${(0, propositional_1.formulaToString)(f)}`);
527
- return ((inner.args || []).length >= 2 &&
528
- this.solveRecursive([{ formula: { kind: 'not', args: [inner.args[0]] } }, ...rest], constants, nextProcessed, depth + 1, [...trace]) &&
529
- this.solveRecursive([{ formula: { kind: 'not', args: [inner.args[1]] } }, ...rest], constants, nextProcessed, depth + 1, [...trace]));
530
- case 'or':
531
- trace.push(`[${depth}] Alfa (¬∨): ${(0, propositional_1.formulaToString)(f)}`);
532
- return this.solveRecursive([
533
- ...(inner.args || []).map((a) => ({
534
- formula: { kind: 'not', args: [a] },
535
- })),
536
- ...rest,
537
- ], constants, nextProcessed, depth + 1, trace);
538
- case 'implies':
539
- trace.push(`[${depth}] Alfa (¬→): ${(0, propositional_1.formulaToString)(f)}`);
540
- return this.solveRecursive([
541
- { formula: (inner.args || [])[0] },
542
- { formula: { kind: 'not', args: [(inner.args || [])[1]] } },
543
- ...rest,
544
- ], constants, nextProcessed, depth + 1, trace);
545
- case 'forall': {
546
- const variable = inner.variable;
547
- if (!(inner.args || [])[0] || !variable)
548
- return false;
549
- const newC = `c${constants.size}`;
550
- trace.push(`[${depth}] Delta (¬∀): ${(0, propositional_1.formulaToString)(f)} -> instanciando con ${newC} (EI)`);
551
- const nextConstants = new Set(constants).add(newC);
552
- return this.solveRecursive([
553
- {
554
- formula: {
555
- kind: 'not',
556
- args: [this.substitute(inner.args[0], variable, newC)],
557
- },
558
- },
559
- ...rest,
560
- ], nextConstants, nextProcessed, depth + 1, trace);
561
- }
562
- case 'exists': {
563
- const variable = inner.variable;
564
- if (!(inner.args || [])[0] || !variable)
565
- return false;
566
- const negForall = {
567
- kind: 'forall',
568
- variable,
569
- args: [{ kind: 'not', args: [inner.args[0]] }],
570
- };
571
- trace.push(`[${depth}] Gamma (¬∃): ${(0, propositional_1.formulaToString)(f)} -> transformando a ∀¬ (UG/UI prep)`);
572
- return this.solveRecursive([{ formula: negForall }, ...rest], constants, nextProcessed, depth + 1, trace);
573
- }
574
- case 'not':
575
- trace.push(`[${depth}] Doble negación: ${(0, propositional_1.formulaToString)(f)}`);
576
- return this.solveRecursive([{ formula: (inner.args || [])[0] }, ...rest], constants, nextProcessed, depth + 1, trace);
577
- }
578
- break;
579
- }
247
+ return (this.solveRecursive([{ formula: f.args[0] }, ...rest], constants, nextProcessed, depth + 1, trace) &&
248
+ this.solveRecursive([{ formula: f.args[1] }, ...rest], constants, nextProcessed, depth + 1, trace));
580
249
  }
581
250
  }
582
- trace.push(`[${depth}] ✓ Rama saturada y ABIERTA.`);
583
251
  return false;
584
252
  }
585
- formulaHash(f) {
586
- return (0, propositional_1.formulaToString)(f);
587
- }
588
253
  substitute(f, v, c) {
589
254
  const sub = (n) => {
590
255
  if (n.kind === 'predicate' && n.params)
591
256
  return { ...n, params: n.params.map((p) => (p === v ? c : p)) };
592
257
  if (n.kind === 'atom' && n.name === v)
593
258
  return { ...n, name: c };
594
- if ((n.kind === 'forall' || n.kind === 'exists') && n.variable === v)
595
- return n;
596
259
  if (n.args)
597
260
  return { ...n, args: n.args.map(sub) };
598
261
  return n;
@@ -600,26 +263,7 @@ class ClassicalFirstOrder {
600
263
  return sub(f);
601
264
  }
602
265
  isEqual(a, b) {
603
- if (a.kind !== b.kind)
604
- return false;
605
- if (a.kind === 'atom' && b.kind === 'atom')
606
- return a.name === b.name;
607
- if (a.kind === 'predicate' && b.kind === 'predicate') {
608
- if (a.name !== b.name)
609
- return false;
610
- const pa = a.params || [];
611
- const pb = b.params || [];
612
- if (pa.length !== pb.length)
613
- return false;
614
- return pa.every((p, i) => p === pb[i]);
615
- }
616
- if (a.variable !== b.variable)
617
- return false;
618
- const aa = a.args || [];
619
- const ba = b.args || [];
620
- if (aa.length !== ba.length)
621
- return false;
622
- return aa.every((ai, i) => this.isEqual(ai, ba[i]));
266
+ return (0, propositional_1.formulaToString)(a) === (0, propositional_1.formulaToString)(b);
623
267
  }
624
268
  }
625
269
  exports.ClassicalFirstOrder = ClassicalFirstOrder;