@stevenvo780/st-lang 3.2.1 → 3.2.2

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.
@@ -0,0 +1,423 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const propositional_1 = require("../profiles/classical/propositional");
5
+ function makeTheory(axioms) {
6
+ return {
7
+ profile: 'classical.propositional',
8
+ axioms: new Map(Object.entries(axioms)),
9
+ theorems: new Map(),
10
+ claims: new Map(),
11
+ judgments: [],
12
+ };
13
+ }
14
+ function atom(name) {
15
+ return { kind: 'atom', name };
16
+ }
17
+ function not(f) {
18
+ return { kind: 'not', args: [f] };
19
+ }
20
+ function and(a, b) {
21
+ return { kind: 'and', args: [a, b] };
22
+ }
23
+ function or(a, b) {
24
+ return { kind: 'or', args: [a, b] };
25
+ }
26
+ function implies(a, b) {
27
+ return { kind: 'implies', args: [a, b] };
28
+ }
29
+ function biconditional(a, b) {
30
+ return { kind: 'biconditional', args: [a, b] };
31
+ }
32
+ const workshopCases = [
33
+ {
34
+ id: 'mp',
35
+ title: 'P, P->Q ⊢ Q',
36
+ mode: 'derive',
37
+ goal: atom('Q'),
38
+ premises: ['mp1', 'mp2'],
39
+ theory: makeTheory({
40
+ mp1: implies(atom('P'), atom('Q')),
41
+ mp2: atom('P'),
42
+ }),
43
+ acceptableReasoningTypes: ['Modus Ponens'],
44
+ expectedRules: [{ formula: 'Q', justifications: ['Modus Ponens'], premises: [1, 2] }],
45
+ },
46
+ {
47
+ id: 'prove_chain',
48
+ title: 'P->Q, Q->R, P ⊢ R',
49
+ mode: 'prove',
50
+ goal: atom('R'),
51
+ premises: ['pr1', 'pr2', 'pr3'],
52
+ theory: makeTheory({
53
+ pr1: implies(atom('P'), atom('Q')),
54
+ pr2: implies(atom('Q'), atom('R')),
55
+ pr3: atom('P'),
56
+ }),
57
+ expectedRules: [
58
+ { formula: 'Q', justifications: ['Modus Ponens'], premises: [1, 3] },
59
+ { formula: 'R', justifications: ['Modus Ponens'], premises: [2, 4] },
60
+ ],
61
+ },
62
+ {
63
+ id: 'mt',
64
+ title: '!Q, P->Q ⊢ !P',
65
+ mode: 'derive',
66
+ goal: not(atom('P')),
67
+ premises: ['mt1', 'mt2'],
68
+ theory: makeTheory({
69
+ mt1: not(atom('Q')),
70
+ mt2: implies(atom('P'), atom('Q')),
71
+ }),
72
+ acceptableReasoningTypes: ['Modus Tollens'],
73
+ expectedRules: [{ formula: '!P', justifications: ['Modus Tollens'], premises: [1, 2] }],
74
+ },
75
+ {
76
+ id: 'ci',
77
+ title: 'P, Q ⊢ P & Q',
78
+ mode: 'derive',
79
+ goal: and(atom('P'), atom('Q')),
80
+ premises: ['ci1', 'ci2'],
81
+ theory: makeTheory({ ci1: atom('P'), ci2: atom('Q') }),
82
+ acceptableReasoningTypes: ['Introduccion de conjuncion'],
83
+ expectedRules: [
84
+ {
85
+ formula: '(P & Q)',
86
+ justifications: ['Introduccion de conjuncion'],
87
+ premises: [1, 2],
88
+ },
89
+ ],
90
+ },
91
+ {
92
+ id: 'ce',
93
+ title: 'P & Q ⊢ P',
94
+ mode: 'derive',
95
+ goal: atom('P'),
96
+ premises: ['ce1'],
97
+ theory: makeTheory({ ce1: and(atom('P'), atom('Q')) }),
98
+ acceptableReasoningTypes: ['Eliminacion de conjuncion'],
99
+ expectedRules: [{ formula: 'P', justifications: ['Eliminacion de conjuncion'], premises: [1] }],
100
+ },
101
+ {
102
+ id: 'di',
103
+ title: 'P ⊢ P | Q',
104
+ mode: 'derive',
105
+ goal: or(atom('P'), atom('Q')),
106
+ premises: ['di1'],
107
+ theory: makeTheory({ di1: atom('P') }),
108
+ acceptableReasoningTypes: ['Introduccion de disyuncion'],
109
+ expectedRules: [
110
+ { formula: '(P | Q)', justifications: ['Introduccion de disyuncion'], premises: [1] },
111
+ ],
112
+ },
113
+ {
114
+ id: 'sh',
115
+ title: 'P->Q, Q->R ⊢ P->R',
116
+ mode: 'derive',
117
+ goal: implies(atom('P'), atom('R')),
118
+ premises: ['sh1', 'sh2'],
119
+ theory: makeTheory({
120
+ sh1: implies(atom('P'), atom('Q')),
121
+ sh2: implies(atom('Q'), atom('R')),
122
+ }),
123
+ acceptableReasoningTypes: ['Silogismo hipotetico'],
124
+ expectedRules: [
125
+ { formula: '(P -> R)', justifications: ['Silogismo hipotetico'], premises: [1, 2] },
126
+ ],
127
+ },
128
+ {
129
+ id: 'pv',
130
+ title: 'P->Q, Q->R, P ⊢ R',
131
+ mode: 'derive',
132
+ goal: atom('R'),
133
+ premises: ['pv1', 'pv2', 'pv3'],
134
+ theory: makeTheory({
135
+ pv1: implies(atom('P'), atom('Q')),
136
+ pv2: implies(atom('Q'), atom('R')),
137
+ pv3: atom('P'),
138
+ }),
139
+ acceptableReasoningTypes: ['Modus Ponens'],
140
+ expectedRules: [
141
+ { formula: 'Q', justifications: ['Modus Ponens'], premises: [1, 3] },
142
+ { formula: 'R', justifications: ['Modus Ponens'], premises: [2, 4] },
143
+ ],
144
+ },
145
+ {
146
+ id: 'sd',
147
+ title: 'P | Q, !P ⊢ Q',
148
+ mode: 'derive',
149
+ goal: atom('Q'),
150
+ premises: ['sd1', 'sd2'],
151
+ theory: makeTheory({ sd1: or(atom('P'), atom('Q')), sd2: not(atom('P')) }),
152
+ acceptableReasoningTypes: ['Silogismo disyuntivo'],
153
+ expectedRules: [{ formula: 'Q', justifications: ['Silogismo disyuntivo'], premises: [1, 2] }],
154
+ },
155
+ {
156
+ id: 'ib',
157
+ title: 'P->Q, Q->P ⊢ P<->Q',
158
+ mode: 'derive',
159
+ goal: biconditional(atom('P'), atom('Q')),
160
+ premises: ['ib1', 'ib2'],
161
+ theory: makeTheory({
162
+ ib1: implies(atom('P'), atom('Q')),
163
+ ib2: implies(atom('Q'), atom('P')),
164
+ }),
165
+ acceptableReasoningTypes: ['Introduccion de bicondicional'],
166
+ expectedRules: [
167
+ {
168
+ formula: '(P <-> Q)',
169
+ justifications: ['Introduccion de bicondicional'],
170
+ premises: [1, 2],
171
+ },
172
+ ],
173
+ },
174
+ {
175
+ id: 'eb',
176
+ title: 'P<->Q, P ⊢ Q',
177
+ mode: 'derive',
178
+ goal: atom('Q'),
179
+ premises: ['eb1', 'eb2'],
180
+ theory: makeTheory({
181
+ eb1: biconditional(atom('P'), atom('Q')),
182
+ eb2: atom('P'),
183
+ }),
184
+ acceptableReasoningTypes: ['Eliminacion de bicondicional, Modus Ponens'],
185
+ expectedRules: [
186
+ {
187
+ formula: '(P -> Q)',
188
+ justifications: ['Eliminacion de bicondicional'],
189
+ premises: [1],
190
+ },
191
+ { formula: 'Q', justifications: ['Modus Ponens'], premises: [2, 3] },
192
+ ],
193
+ },
194
+ {
195
+ id: 'dc',
196
+ title: '(P->Q) & (R->S), P | R ⊢ Q | S',
197
+ mode: 'derive',
198
+ goal: or(atom('Q'), atom('S')),
199
+ premises: ['dc1', 'dc2'],
200
+ theory: makeTheory({
201
+ dc1: and(implies(atom('P'), atom('Q')), implies(atom('R'), atom('S'))),
202
+ dc2: or(atom('P'), atom('R')),
203
+ }),
204
+ acceptableReasoningTypes: ['Dilema Constructivo'],
205
+ expectedRules: [
206
+ { formula: '(Q | S)', justifications: ['Dilema Constructivo'], premises: [1, 2] },
207
+ ],
208
+ },
209
+ {
210
+ id: 'dd',
211
+ title: '(P->Q) & (R->S), !Q | !S ⊢ !P | !R',
212
+ mode: 'derive',
213
+ goal: or(not(atom('P')), not(atom('R'))),
214
+ premises: ['dd1', 'dd2'],
215
+ theory: makeTheory({
216
+ dd1: and(implies(atom('P'), atom('Q')), implies(atom('R'), atom('S'))),
217
+ dd2: or(not(atom('Q')), not(atom('S'))),
218
+ }),
219
+ acceptableReasoningTypes: ['Dilema Destructivo'],
220
+ expectedRules: [
221
+ {
222
+ formula: '(!P | !R)',
223
+ justifications: ['Dilema Destructivo'],
224
+ premises: [1, 2],
225
+ },
226
+ ],
227
+ },
228
+ {
229
+ id: 'ds',
230
+ title: 'P | Q, P->R, Q->R ⊢ R',
231
+ mode: 'derive',
232
+ goal: atom('R'),
233
+ premises: ['ds1', 'ds2', 'ds3'],
234
+ theory: makeTheory({
235
+ ds1: or(atom('P'), atom('Q')),
236
+ ds2: implies(atom('P'), atom('R')),
237
+ ds3: implies(atom('Q'), atom('R')),
238
+ }),
239
+ acceptableReasoningTypes: ['Dilema Simple'],
240
+ expectedRules: [
241
+ {
242
+ formula: 'R',
243
+ justifications: ['Dilema Simple'],
244
+ premises: [1, 2, 3],
245
+ },
246
+ ],
247
+ },
248
+ {
249
+ id: 'rs',
250
+ title: 'P | Q, !P | R ⊢ Q | R',
251
+ mode: 'derive',
252
+ goal: or(atom('Q'), atom('R')),
253
+ premises: ['rs1', 'rs2'],
254
+ theory: makeTheory({
255
+ rs1: or(atom('P'), atom('Q')),
256
+ rs2: or(not(atom('P')), atom('R')),
257
+ }),
258
+ acceptableReasoningTypes: ['Resolucion'],
259
+ expectedRules: [{ formula: '(Q | R)', justifications: ['Resolucion'], premises: [1, 2] }],
260
+ },
261
+ {
262
+ id: 'ex',
263
+ title: 'P, !P ⊢ Q',
264
+ mode: 'derive',
265
+ goal: atom('Q'),
266
+ premises: ['ex1', 'ex2'],
267
+ theory: makeTheory({ ex1: atom('P'), ex2: not(atom('P')) }),
268
+ acceptableReasoningTypes: ['Explosion'],
269
+ expectedRules: [{ formula: 'Q', justifications: ['Explosion'], premises: [1, 2] }],
270
+ },
271
+ {
272
+ id: 'dn',
273
+ title: '!!P ⊢ P',
274
+ mode: 'derive',
275
+ goal: atom('P'),
276
+ premises: ['dn1'],
277
+ theory: makeTheory({ dn1: not(not(atom('P'))) }),
278
+ acceptableReasoningTypes: ['Doble negacion'],
279
+ expectedRules: [{ formula: 'P', justifications: ['Doble negacion'], premises: [1] }],
280
+ },
281
+ {
282
+ id: 'idn',
283
+ title: 'P ⊢ !!P',
284
+ mode: 'derive',
285
+ goal: not(not(atom('P'))),
286
+ premises: ['idn1'],
287
+ theory: makeTheory({ idn1: atom('P') }),
288
+ acceptableReasoningTypes: ['Introduccion de doble negacion'],
289
+ expectedRules: [
290
+ {
291
+ formula: '!(!P)',
292
+ justifications: ['Introduccion de doble negacion'],
293
+ premises: [1],
294
+ },
295
+ ],
296
+ },
297
+ {
298
+ id: 'ii',
299
+ title: 'Q ⊢ P -> Q',
300
+ mode: 'derive',
301
+ goal: implies(atom('P'), atom('Q')),
302
+ premises: ['ii1'],
303
+ theory: makeTheory({ ii1: atom('Q') }),
304
+ acceptableReasoningTypes: ['Debilitamiento (B ⊢ A → B)'],
305
+ expectedRules: [
306
+ {
307
+ formula: '(P -> Q)',
308
+ justifications: ['Debilitamiento (B ⊢ A → B)'],
309
+ premises: [1],
310
+ },
311
+ ],
312
+ },
313
+ {
314
+ id: 'cp',
315
+ title: 'P -> Q ⊢ !Q -> !P',
316
+ mode: 'derive',
317
+ goal: implies(not(atom('Q')), not(atom('P'))),
318
+ premises: ['cp1'],
319
+ theory: makeTheory({ cp1: implies(atom('P'), atom('Q')) }),
320
+ acceptableReasoningTypes: ['Contraposicion'],
321
+ expectedRules: [{ formula: '(!Q -> !P)', justifications: ['Contraposicion'], premises: [1] }],
322
+ },
323
+ {
324
+ id: 'ab',
325
+ title: 'P -> Q ⊢ P -> (P & Q)',
326
+ mode: 'derive',
327
+ goal: implies(atom('P'), and(atom('P'), atom('Q'))),
328
+ premises: ['ab1'],
329
+ theory: makeTheory({ ab1: implies(atom('P'), atom('Q')) }),
330
+ acceptableReasoningTypes: ['Absorcion'],
331
+ expectedRules: [{ formula: '(P -> (P & Q))', justifications: ['Absorcion'], premises: [1] }],
332
+ },
333
+ {
334
+ id: 'expt',
335
+ title: '(P & Q) -> R ⊢ P -> (Q -> R)',
336
+ mode: 'derive',
337
+ goal: implies(atom('P'), implies(atom('Q'), atom('R'))),
338
+ premises: ['expt1'],
339
+ theory: makeTheory({ expt1: implies(and(atom('P'), atom('Q')), atom('R')) }),
340
+ acceptableReasoningTypes: ['Exportacion'],
341
+ expectedRules: [{ formula: '(P -> (Q -> R))', justifications: ['Exportacion'], premises: [1] }],
342
+ },
343
+ {
344
+ id: 'impt',
345
+ title: 'P -> (Q -> R) ⊢ (P & Q) -> R',
346
+ mode: 'derive',
347
+ goal: implies(and(atom('P'), atom('Q')), atom('R')),
348
+ premises: ['impt1'],
349
+ theory: makeTheory({ impt1: implies(atom('P'), implies(atom('Q'), atom('R'))) }),
350
+ acceptableReasoningTypes: ['Importacion'],
351
+ expectedRules: [{ formula: '((P & Q) -> R)', justifications: ['Importacion'], premises: [1] }],
352
+ },
353
+ {
354
+ id: 'dm1',
355
+ title: '!(P & Q) ⊢ !P | !Q',
356
+ mode: 'derive',
357
+ goal: or(not(atom('P')), not(atom('Q'))),
358
+ premises: ['dm1'],
359
+ theory: makeTheory({ dm1: not(and(atom('P'), atom('Q'))) }),
360
+ acceptableReasoningTypes: ['De Morgan (AND)'],
361
+ expectedRules: [{ formula: '(!P | !Q)', justifications: ['De Morgan (AND)'], premises: [1] }],
362
+ },
363
+ {
364
+ id: 'dm2',
365
+ title: '!(P | Q) ⊢ !P & !Q',
366
+ mode: 'derive',
367
+ goal: and(not(atom('P')), not(atom('Q'))),
368
+ premises: ['dm2'],
369
+ theory: makeTheory({ dm2: not(or(atom('P'), atom('Q'))) }),
370
+ acceptableReasoningTypes: ['De Morgan (OR)'],
371
+ expectedRules: [{ formula: '(!P & !Q)', justifications: ['De Morgan (OR)'], premises: [1] }],
372
+ },
373
+ {
374
+ id: 'raa',
375
+ title: 'P -> Q, P -> !Q ⊢ !P',
376
+ mode: 'derive',
377
+ goal: not(atom('P')),
378
+ premises: ['raa1', 'raa2'],
379
+ theory: makeTheory({
380
+ raa1: implies(atom('P'), atom('Q')),
381
+ raa2: implies(atom('P'), not(atom('Q'))),
382
+ }),
383
+ acceptableReasoningTypes: ['Reduccion al Absurdo (RAA)'],
384
+ expectedRules: [
385
+ {
386
+ formula: '!P',
387
+ justifications: ['Reduccion al Absurdo (RAA)'],
388
+ premises: [1, 2],
389
+ },
390
+ ],
391
+ },
392
+ ];
393
+ (0, vitest_1.describe)('Classical propositional — natural deduction workshop from 01-clasica-proposicional', () => {
394
+ const cp = new propositional_1.ClassicalPropositional();
395
+ for (const workshopCase of workshopCases) {
396
+ (0, vitest_1.it)(`${workshopCase.id}: ${workshopCase.title}`, () => {
397
+ const result = workshopCase.mode === 'prove'
398
+ ? cp.prove(workshopCase.goal, workshopCase.theory, workshopCase.premises)
399
+ : cp.derive(workshopCase.goal, workshopCase.premises, workshopCase.theory);
400
+ (0, vitest_1.expect)(result.status).toBe('provable');
401
+ (0, vitest_1.expect)(result.proof?.method).toBe('natural_deduction');
402
+ (0, vitest_1.expect)(result.proof?.metadata?.semanticFallback).toBe(false);
403
+ if (workshopCase.acceptableReasoningTypes) {
404
+ (0, vitest_1.expect)(workshopCase.acceptableReasoningTypes).toContain(result.reasoningType ?? '');
405
+ }
406
+ const actualRules = (result.proof?.steps ?? [])
407
+ .filter((step) => step.source === 'rule')
408
+ .map((step) => ({
409
+ formula: (0, propositional_1.formulaToString)(step.formula),
410
+ justification: step.justification,
411
+ premises: step.premises,
412
+ }));
413
+ (0, vitest_1.expect)(actualRules).toHaveLength(workshopCase.expectedRules.length);
414
+ workshopCase.expectedRules.forEach((expectedRule, index) => {
415
+ const actualRule = actualRules[index];
416
+ (0, vitest_1.expect)(actualRule?.formula).toBe(expectedRule.formula);
417
+ (0, vitest_1.expect)(expectedRule.justifications).toContain(actualRule?.justification ?? '');
418
+ (0, vitest_1.expect)(actualRule?.premises).toEqual(expectedRule.premises);
419
+ });
420
+ });
421
+ }
422
+ });
423
+ //# sourceMappingURL=natural-deduction-workshop.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"natural-deduction-workshop.test.js","sourceRoot":"","sources":["../../src/tests/natural-deduction-workshop.test.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,57 @@ const propositional_1 = require("../profiles/classical/propositional");
22
22
  (0, vitest_1.expect)(bindings.get('same')?.kind).toBe('number');
23
23
  (0, vitest_1.expect)(bindings.get('same')?.value).toBe(1);
24
24
  });
25
+ (0, vitest_1.it)('captures proof steps as list bindings and allows indexing them', () => {
26
+ const interp = new interpreter_1.Interpreter();
27
+ const out = interp.execute(`
28
+ logic classical.propositional
29
+ axiom a1 = P -> Q
30
+ axiom a2 = P
31
+ let deriv = derive Q from {a1, a2}
32
+ let total = len(deriv.steps)
33
+ let third = at(deriv.steps, 2)
34
+ let thirdOk = formula_eq(third, Q)
35
+ let just = at(deriv.step_justifications, 2)
36
+ let refs = at(deriv.step_premises, 2)
37
+ let firstRef = at(refs, 0)
38
+ `, '<test>');
39
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
40
+ const bindings = interp.getLetBindings();
41
+ (0, vitest_1.expect)(bindings.get('deriv.steps')?.kind).toBe('list');
42
+ (0, vitest_1.expect)(bindings.get('deriv.steps_formulas')?.kind).toBe('list');
43
+ (0, vitest_1.expect)(bindings.get('deriv.steps_count')?.value).toBe(3);
44
+ (0, vitest_1.expect)(bindings.get('deriv.proof_method')?.name).toBe('"natural_deduction"');
45
+ (0, vitest_1.expect)(bindings.get('deriv.semantic_fallback')?.value).toBe(0);
46
+ (0, vitest_1.expect)(bindings.get('total')?.value).toBe(3);
47
+ (0, vitest_1.expect)(bindings.get('third')?.kind).toBe('atom');
48
+ (0, vitest_1.expect)(bindings.get('third')?.name).toBe('Q');
49
+ (0, vitest_1.expect)(bindings.get('thirdOk')?.value).toBe(1);
50
+ (0, vitest_1.expect)(bindings.get('just')?.name).toBe('"Modus Ponens"');
51
+ (0, vitest_1.expect)(bindings.get('refs')?.kind).toBe('list');
52
+ (0, vitest_1.expect)(bindings.get('firstRef')?.kind).toBe('number');
53
+ (0, vitest_1.expect)(bindings.get('firstRef')?.value).toBe(1);
54
+ });
55
+ (0, vitest_1.it)('allows numeric comparison helpers inside logical if branches', () => {
56
+ const interp = new interpreter_1.Interpreter();
57
+ const out = interp.execute(`
58
+ logic classical.propositional
59
+ axiom a1 = P -> Q
60
+ axiom a2 = P
61
+ let deriv = derive Q from {a1, a2}
62
+ let third = at(deriv.steps, 2)
63
+
64
+ if valid formula_eq(third, Q) {
65
+ print "step_match"
66
+ }
67
+
68
+ if invalid formula_eq(third, P) {
69
+ print "step_diff"
70
+ }
71
+ `, '<test>');
72
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
73
+ (0, vitest_1.expect)(out.stdout).toContain('step_match');
74
+ (0, vitest_1.expect)(out.stdout).toContain('step_diff');
75
+ });
25
76
  (0, vitest_1.it)('decomposes formulas into list values and supports indexing helpers', () => {
26
77
  const interp = new interpreter_1.Interpreter();
27
78
  const out = interp.execute(`
@@ -1 +1 @@
1
- {"version":3,"file":"result-bindings.test.js","sourceRoot":"","sources":["../../src/tests/result-bindings.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-bindings.test.js","sourceRoot":"","sources":["../../src/tests/result-bindings.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stevenvo780/st-lang",
3
- "version": "3.2.1",
3
+ "version": "3.2.2",
4
4
  "description": "ST — Lenguaje ejecutable con nucleo logico y capa textual. Motor multi-perfil (11 lógicas), derivaciones, tablas de verdad, contramodelos, aliases modales, Belnap 4-valores y capa textual para formalización de documentos.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",