@stevenvo780/st-lang 2.6.0 → 2.7.0

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.
Files changed (64) hide show
  1. package/bin/st +0 -0
  2. package/dist/ast/nodes.d.ts +18 -1
  3. package/dist/ast/nodes.d.ts.map +1 -1
  4. package/dist/parser/parser.d.ts +2 -0
  5. package/dist/parser/parser.d.ts.map +1 -1
  6. package/dist/parser/parser.js +82 -0
  7. package/dist/parser/parser.js.map +1 -1
  8. package/dist/profiles/arithmetic/index.d.ts.map +1 -1
  9. package/dist/profiles/arithmetic/index.js.map +1 -1
  10. package/dist/profiles/classical/first-order.d.ts +3 -3
  11. package/dist/profiles/classical/first-order.d.ts.map +1 -1
  12. package/dist/profiles/classical/first-order.js +71 -392
  13. package/dist/profiles/classical/first-order.js.map +1 -1
  14. package/dist/profiles/classical/propositional.d.ts +6 -1
  15. package/dist/profiles/classical/propositional.d.ts.map +1 -1
  16. package/dist/profiles/classical/propositional.js +334 -35
  17. package/dist/profiles/classical/propositional.js.map +1 -1
  18. package/dist/profiles/intuitionistic/propositional.d.ts.map +1 -1
  19. package/dist/profiles/intuitionistic/propositional.js +7 -1
  20. package/dist/profiles/intuitionistic/propositional.js.map +1 -1
  21. package/dist/profiles/paraconsistent/belnap.d.ts.map +1 -1
  22. package/dist/profiles/paraconsistent/belnap.js +151 -3
  23. package/dist/profiles/paraconsistent/belnap.js.map +1 -1
  24. package/dist/profiles/shared/tableau-engine.d.ts.map +1 -1
  25. package/dist/profiles/shared/tableau-engine.js +49 -22
  26. package/dist/profiles/shared/tableau-engine.js.map +1 -1
  27. package/dist/runtime/format.d.ts.map +1 -1
  28. package/dist/runtime/format.js +4 -0
  29. package/dist/runtime/format.js.map +1 -1
  30. package/dist/runtime/formula-factory.d.ts +26 -0
  31. package/dist/runtime/formula-factory.d.ts.map +1 -0
  32. package/dist/runtime/formula-factory.js +67 -0
  33. package/dist/runtime/formula-factory.js.map +1 -0
  34. package/dist/runtime/interpreter.d.ts +45 -4
  35. package/dist/runtime/interpreter.d.ts.map +1 -1
  36. package/dist/runtime/interpreter.js +1114 -609
  37. package/dist/runtime/interpreter.js.map +1 -1
  38. package/dist/tests/arithmetic.test.js +2 -1
  39. package/dist/tests/arithmetic.test.js.map +1 -1
  40. package/dist/tests/examples.test.js +12 -1
  41. package/dist/tests/examples.test.js.map +1 -1
  42. package/dist/tests/exhaustive-matrix.test.js +1 -1
  43. package/dist/tests/exhaustive-matrix.test.js.map +1 -1
  44. package/dist/tests/limits.test.js +67 -5
  45. package/dist/tests/limits.test.js.map +1 -1
  46. package/dist/tests/profiles.test.js +14 -6
  47. package/dist/tests/profiles.test.js.map +1 -1
  48. package/dist/tests/result-bindings.test.d.ts +2 -0
  49. package/dist/tests/result-bindings.test.d.ts.map +1 -0
  50. package/dist/tests/result-bindings.test.js +59 -0
  51. package/dist/tests/result-bindings.test.js.map +1 -0
  52. package/dist/tests/stress-hardware.test.d.ts +2 -0
  53. package/dist/tests/stress-hardware.test.d.ts.map +1 -0
  54. package/dist/tests/stress-hardware.test.js +516 -0
  55. package/dist/tests/stress-hardware.test.js.map +1 -0
  56. package/dist/tests/v1-features.test.js +1 -1
  57. package/dist/tests/v1-features.test.js.map +1 -1
  58. package/dist/types/index.d.ts +1 -1
  59. package/dist/types/index.d.ts.map +1 -1
  60. package/dist/utils/memo.d.ts +3 -0
  61. package/dist/utils/memo.d.ts.map +1 -1
  62. package/dist/utils/memo.js +30 -0
  63. package/dist/utils/memo.js.map +1 -1
  64. package/package.json +2 -1
@@ -0,0 +1,516 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * ST Hardware Stress Tests
5
+ * ========================
6
+ * Objetivo: que muera el PC antes que el lenguaje.
7
+ * Cada test valida que ST maneje cargas extremas sin:
8
+ * - Stack overflow
9
+ * - Infinite loops / hangs
10
+ * - OOM sin control (debe fallar con mensaje, no con crash)
11
+ * - Resultados incorrectos bajo presión
12
+ *
13
+ * Categorías:
14
+ * 1. Bitset Evaluation (propositional, saturar BigInt)
15
+ * 2. Hash-Consing / DAG (ataque de fórmulas fractales)
16
+ * 3. Tableau Engine (explosión de ramas)
17
+ * 4. FOL (explosión de cuantificadores)
18
+ * 5. Arithmetic (recursión profunda, loops masivos)
19
+ * 6. Belnap (4-valued bitset bajo presión)
20
+ * 7. Multi-profile whiplash (cambios rápidos de perfil)
21
+ */
22
+ const vitest_1 = require("vitest");
23
+ const interpreter_1 = require("../runtime/interpreter");
24
+ const formula_factory_1 = require("../runtime/formula-factory");
25
+ (0, vitest_1.afterEach)(() => {
26
+ formula_factory_1.FormulaFactory.clear();
27
+ });
28
+ function run(source) {
29
+ const interp = new interpreter_1.Interpreter();
30
+ return interp.execute(source, '<stress>');
31
+ }
32
+ /** Strip diacritics for accent-insensitive comparison */
33
+ function stripAccents(s) {
34
+ return s.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
35
+ }
36
+ // ============================================================
37
+ // 1. BITSET PROPOSITIONAL — SATURAR EVALUACIÓN VECTORIZADA
38
+ // ============================================================
39
+ (0, vitest_1.describe)('Stress: Bitset Propositional', () => {
40
+ (0, vitest_1.it)('20 atoms — maximum truth table materialization (1M rows)', () => {
41
+ const atoms = Array.from({ length: 20 }, (_, i) => `V${i}`);
42
+ const formula = atoms.join(' & ');
43
+ const source = `
44
+ logic classical.propositional
45
+ truth_table ${formula}
46
+ `;
47
+ const out = run(source);
48
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
49
+ (0, vitest_1.expect)(out.stdout).toContain('valuaciones analizadas');
50
+ }, 30000);
51
+ (0, vitest_1.it)('20 atoms — tautology check via bitset (instant)', () => {
52
+ const atoms = Array.from({ length: 20 }, (_, i) => `P${i}`);
53
+ const tautology = atoms.map((a) => `(${a} | !${a})`).join(' & ');
54
+ const source = `
55
+ logic classical.propositional
56
+ check valid ${tautology}
57
+ `;
58
+ const out = run(source);
59
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
60
+ (0, vitest_1.expect)(stripAccents(out.stdout).toUpperCase()).toContain('VALIDA');
61
+ }, 10000);
62
+ (0, vitest_1.it)('26 atoms — validity check without materialization', () => {
63
+ // 2^26 = 67M combinations — bitset should handle this without creating rows
64
+ const atoms = Array.from({ length: 26 }, (_, i) => `X${i}`);
65
+ const tautology = atoms.map((a) => `(${a} | !${a})`).join(' & ');
66
+ const source = `
67
+ logic classical.propositional
68
+ check valid ${tautology}
69
+ `;
70
+ const out = run(source);
71
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
72
+ (0, vitest_1.expect)(stripAccents(out.stdout).toUpperCase()).toContain('VALIDA');
73
+ }, 15000);
74
+ (0, vitest_1.it)('26 atoms — satisfiability (instant contradiction detection)', () => {
75
+ const atoms = Array.from({ length: 26 }, (_, i) => `Z${i}`);
76
+ const contradiction = atoms.map((a) => `(${a} & !${a})`).join(' | ');
77
+ const source = `
78
+ logic classical.propositional
79
+ check satisfiable ${contradiction}
80
+ `;
81
+ const out = run(source);
82
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
83
+ (0, vitest_1.expect)(out.stdout).toContain('INSATISFACIBLE');
84
+ }, 15000);
85
+ (0, vitest_1.it)('countermodel for non-tautology with 15 atoms (instant)', () => {
86
+ const atoms = Array.from({ length: 15 }, (_, i) => `M${i}`);
87
+ // M0 & M1 & ... & M14 is satisfiable but not a tautology
88
+ const formula = atoms.join(' & ');
89
+ const source = `
90
+ logic classical.propositional
91
+ countermodel ${formula}
92
+ `;
93
+ const out = run(source);
94
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
95
+ // Should find a countermodel quickly
96
+ }, 10000);
97
+ (0, vitest_1.it)('XOR chain with 14 atoms — complex bitset evaluation', () => {
98
+ const atoms = Array.from({ length: 14 }, (_, i) => `Q${i}`);
99
+ let formula = atoms[0];
100
+ for (let i = 1; i < atoms.length; i++) {
101
+ formula = `(${formula} ^ ${atoms[i]})`;
102
+ }
103
+ const source = `
104
+ logic classical.propositional
105
+ check satisfiable ${formula}
106
+ `;
107
+ const out = run(source);
108
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
109
+ }, 15000);
110
+ (0, vitest_1.it)('deeply nested implications (20 levels, bitset fast path)', () => {
111
+ let formula = 'Z';
112
+ for (let i = 0; i < 20; i++) {
113
+ formula = `(P${i} -> ${formula})`;
114
+ }
115
+ const source = `
116
+ logic classical.propositional
117
+ check valid ${formula}
118
+ `;
119
+ const out = run(source);
120
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
121
+ }, 15000);
122
+ });
123
+ // ============================================================
124
+ // 2. HASH-CONSING / DAG — ATAQUE FRACTAL DE FORMULAS
125
+ // ============================================================
126
+ (0, vitest_1.describe)('Stress: Hash-Consing / Formula Sharing', () => {
127
+ (0, vitest_1.it)('exponential formula doubling (8 iterations = 4^8 theoretical nodes)', () => {
128
+ // Each iteration quadruples the formula: f = (f | f) & (f | f)
129
+ // Tests that the engine handles formula growth gracefully
130
+ const source = `
131
+ logic classical.propositional
132
+ let f = A
133
+ for i in {1,2,3,4,5,6,7,8} {
134
+ set f = (f | f) & (f | f)
135
+ }
136
+ check satisfiable f
137
+ `;
138
+ const out = run(source);
139
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
140
+ (0, vitest_1.expect)(out.stdout).toContain('SATISFACIBLE');
141
+ }, 10000);
142
+ (0, vitest_1.it)('100 axioms sharing same subformulas', () => {
143
+ const axioms = Array.from({ length: 100 }, (_, i) => `axiom a${i} = (P -> Q) & (Q -> R) & (R -> S${i})`).join('\n');
144
+ const source = `
145
+ logic classical.propositional
146
+ ${axioms}
147
+ check valid (P -> Q)
148
+ `;
149
+ const out = run(source);
150
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
151
+ }, 10000);
152
+ (0, vitest_1.it)('deep chain of biconditionals (20 levels, bitset fast path)', () => {
153
+ const atoms = Array.from({ length: 20 }, (_, i) => `B${i}`);
154
+ let formula = atoms[0];
155
+ for (let i = 1; i < atoms.length; i++) {
156
+ formula = `(${formula} <-> ${atoms[i]})`;
157
+ }
158
+ const source = `
159
+ logic classical.propositional
160
+ check satisfiable ${formula}
161
+ `;
162
+ const out = run(source);
163
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
164
+ }, 15000);
165
+ });
166
+ // ============================================================
167
+ // 3. TABLEAU ENGINE — EXPLOSIÓN DE RAMAS
168
+ // ============================================================
169
+ (0, vitest_1.describe)('Stress: Tableau Engine', () => {
170
+ (0, vitest_1.it)('modal K — 30 levels of diamond nesting', () => {
171
+ let formula = 'P';
172
+ for (let i = 0; i < 30; i++) {
173
+ formula = `<>(${formula})`;
174
+ }
175
+ const source = `
176
+ logic modal.k
177
+ check satisfiable ${formula}
178
+ `;
179
+ const out = run(source);
180
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
181
+ }, 20000);
182
+ (0, vitest_1.it)('modal S5 — validity of axiom 5 with deep nesting', () => {
183
+ const source = `
184
+ logic epistemic.s5
185
+ check valid (<>P -> []<>P)
186
+ `;
187
+ const out = run(source);
188
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
189
+ }, 10000);
190
+ (0, vitest_1.it)('deontic — 20 levels of obligation nesting', () => {
191
+ let formula = 'A';
192
+ for (let i = 0; i < 20; i++) {
193
+ formula = `O(${formula})`;
194
+ }
195
+ const source = `
196
+ logic deontic.standard
197
+ check valid ${formula} -> ${formula}
198
+ `;
199
+ const out = run(source);
200
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
201
+ }, 15000);
202
+ (0, vitest_1.it)('temporal — nested G/F/X operators', () => {
203
+ const source = `
204
+ logic temporal.ltl
205
+ check satisfiable G(P -> F(X(Q)))
206
+ `;
207
+ const out = run(source);
208
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
209
+ }, 15000);
210
+ (0, vitest_1.it)('intuitionistic — Peirce law is NOT valid', () => {
211
+ const source = `
212
+ logic intuitionistic.propositional
213
+ check valid (((P -> Q) -> P) -> P)
214
+ `;
215
+ const out = run(source);
216
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
217
+ (0, vitest_1.expect)(out.stdout.toLowerCase()).toContain('no es');
218
+ }, 10000);
219
+ });
220
+ // ============================================================
221
+ // 4. FOL — EXPLOSIÓN DE CUANTIFICADORES
222
+ // ============================================================
223
+ (0, vitest_1.describe)('Stress: First-Order Logic', () => {
224
+ (0, vitest_1.it)('valid universal instantiation with 5 constants', () => {
225
+ const source = `
226
+ logic classical.first_order
227
+ check valid (forall x P(x)) -> (P(a) & P(b) & P(c) & P(d) & P(e))
228
+ `;
229
+ const out = run(source);
230
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
231
+ (0, vitest_1.expect)(stripAccents(out.stdout).toUpperCase()).toContain('VALIDA');
232
+ }, 15000);
233
+ (0, vitest_1.it)('existential from specific — P(a) -> exists x P(x)', () => {
234
+ const source = `
235
+ logic classical.first_order
236
+ check valid (P(a) -> exists x P(x))
237
+ `;
238
+ const out = run(source);
239
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
240
+ (0, vitest_1.expect)(stripAccents(out.stdout).toUpperCase()).toContain('VALIDA');
241
+ }, 10000);
242
+ (0, vitest_1.it)('Barbara syllogism (forall x (P(x)->Q(x))) & P(a) -> Q(a)', () => {
243
+ const source = `
244
+ logic classical.first_order
245
+ check valid ((forall x (P(x) -> Q(x))) -> (P(a) -> Q(a)))
246
+ `;
247
+ const out = run(source);
248
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
249
+ (0, vitest_1.expect)(stripAccents(out.stdout).toUpperCase()).toContain('VALIDA');
250
+ }, 15000);
251
+ (0, vitest_1.it)('nested quantifiers — forall x exists y is satisfiable (does not hang)', () => {
252
+ const source = `
253
+ logic classical.first_order
254
+ check satisfiable forall x exists y R(x,y)
255
+ `;
256
+ const out = run(source);
257
+ // Should complete without hanging. May return satisfiable or hit depth limit.
258
+ (0, vitest_1.expect)([0, 3]).toContain(out.exitCode);
259
+ }, 20000);
260
+ (0, vitest_1.it)('invalid formula correctly detected — exists -> forall', () => {
261
+ const source = `
262
+ logic classical.first_order
263
+ check valid (exists x P(x)) -> (forall x P(x))
264
+ `;
265
+ const out = run(source);
266
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
267
+ (0, vitest_1.expect)(out.stdout.toLowerCase()).toContain('no es');
268
+ }, 15000);
269
+ (0, vitest_1.it)('derivation with 10 axioms in FOL', () => {
270
+ const axioms = Array.from({ length: 9 }, (_, i) => `axiom a${i} = forall x (P${i}(x) -> P${i + 1}(x))`).join('\n');
271
+ const source = `
272
+ logic classical.first_order
273
+ ${axioms}
274
+ axiom base = P0(a)
275
+ derive P9(a) from {a0, a1, a2, a3, a4, a5, a6, a7, a8, base}
276
+ `;
277
+ const out = run(source);
278
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
279
+ }, 20000);
280
+ });
281
+ // ============================================================
282
+ // 5. ARITHMETIC — RECURSIÓN Y LOOPS MASIVOS
283
+ // ============================================================
284
+ (0, vitest_1.describe)('Stress: Arithmetic & Recursion', () => {
285
+ (0, vitest_1.it)('500 iterations of set x = x + 1', () => {
286
+ let setLines = '';
287
+ for (let i = 0; i < 500; i++) {
288
+ setLines += ` set x = x + 1\n`;
289
+ }
290
+ const source = `
291
+ logic arithmetic
292
+ let x = 0
293
+ ${setLines}
294
+ print x
295
+ `;
296
+ const out = run(source);
297
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
298
+ (0, vitest_1.expect)(out.stdout).toContain('500');
299
+ }, 15000);
300
+ (0, vitest_1.it)('recursive function hitting call depth limit gracefully', () => {
301
+ const source = `
302
+ logic arithmetic
303
+ fn infinite(N) {
304
+ let next = N + 1
305
+ return infinite(next)
306
+ }
307
+ let r = infinite(1)
308
+ `;
309
+ const out = run(source);
310
+ // Should not crash — should report a recursion/call limit error
311
+ (0, vitest_1.expect)(out.diagnostics.some((d) => d.message.includes('recursión') ||
312
+ d.message.includes('recursion') ||
313
+ d.message.includes('Límite') ||
314
+ d.message.includes('llamadas'))).toBe(true);
315
+ }, 15000);
316
+ (0, vitest_1.it)('nested for loops (10x10x10 = 1000 iterations)', () => {
317
+ const source = `
318
+ logic arithmetic
319
+ let count = 0
320
+ for i in {1,2,3,4,5,6,7,8,9,10} {
321
+ for j in {1,2,3,4,5,6,7,8,9,10} {
322
+ for k in {1,2,3,4,5,6,7,8,9,10} {
323
+ set count = count + 1
324
+ }
325
+ }
326
+ }
327
+ print count
328
+ `;
329
+ const out = run(source);
330
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
331
+ (0, vitest_1.expect)(out.stdout).toContain('1000');
332
+ }, 30000);
333
+ (0, vitest_1.it)('factorial(10) via recursion', () => {
334
+ const source = `
335
+ logic arithmetic
336
+ fn factorial(N) {
337
+ if valid N <= 1 {
338
+ return 1
339
+ }
340
+ let prev = N - 1
341
+ let res = factorial(prev)
342
+ return N * res
343
+ }
344
+ let f10 = factorial(10)
345
+ print f10
346
+ `;
347
+ const out = run(source);
348
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
349
+ // 10! = 3628800
350
+ (0, vitest_1.expect)(out.stdout).toContain('3628800');
351
+ }, 10000);
352
+ (0, vitest_1.it)('fibonacci(12) via recursion', () => {
353
+ const source = `
354
+ logic arithmetic
355
+ fn fib(N) {
356
+ if valid N <= 0 { return 0 }
357
+ if valid N <= 1 { return 1 }
358
+ let a = N - 1
359
+ let b = N - 2
360
+ let ra = fib(a)
361
+ let rb = fib(b)
362
+ return ra + rb
363
+ }
364
+ let f12 = fib(12)
365
+ print f12
366
+ `;
367
+ const out = run(source);
368
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
369
+ // fib(12) = 144
370
+ (0, vitest_1.expect)(out.stdout).toContain('144');
371
+ }, 30000);
372
+ (0, vitest_1.it)('division by zero does not crash', () => {
373
+ const source = `
374
+ logic arithmetic
375
+ axiom bad = 10 / 0
376
+ explain 10 / 0
377
+ `;
378
+ const out = run(source);
379
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
380
+ (0, vitest_1.expect)(out.diagnostics.some((d) => d.message.includes('División por cero'))).toBe(true);
381
+ }, 5000);
382
+ });
383
+ // ============================================================
384
+ // 6. BELNAP 4-VALUED — BITSET UNDER PRESSURE
385
+ // ============================================================
386
+ (0, vitest_1.describe)('Stress: Belnap Paraconsistent', () => {
387
+ (0, vitest_1.it)('8 atoms — Belnap truth table (4^8 = 65K rows via bitset)', () => {
388
+ const atoms = Array.from({ length: 8 }, (_, i) => `B${i}`);
389
+ const formula = atoms.join(' & ');
390
+ const source = `
391
+ logic paraconsistent.belnap
392
+ check valid ${formula}
393
+ `;
394
+ const out = run(source);
395
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
396
+ }, 30000);
397
+ (0, vitest_1.it)('Belnap EFQ is NOT valid (P & !P) -> Q', () => {
398
+ const source = `
399
+ logic paraconsistent.belnap
400
+ check valid (P & !P) -> Q
401
+ `;
402
+ const out = run(source);
403
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
404
+ (0, vitest_1.expect)(stripAccents(out.stdout).toLowerCase()).toContain('no es valida');
405
+ }, 10000);
406
+ (0, vitest_1.it)('8 atoms — Belnap satisfiability', () => {
407
+ const atoms = Array.from({ length: 8 }, (_, i) => `C${i}`);
408
+ const formula = atoms.map((a) => `(${a} | !${a})`).join(' & ');
409
+ const source = `
410
+ logic paraconsistent.belnap
411
+ check satisfiable ${formula}
412
+ `;
413
+ const out = run(source);
414
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
415
+ }, 15000);
416
+ });
417
+ // ============================================================
418
+ // 7. MULTI-PROFILE WHIPLASH — CAMBIOS RÁPIDOS DE PERFIL
419
+ // ============================================================
420
+ (0, vitest_1.describe)('Stress: Multi-Profile Whiplash', () => {
421
+ (0, vitest_1.it)('rapid profile switching (10 profiles in one program)', () => {
422
+ const source = `
423
+ logic classical.propositional
424
+ check valid (P -> P)
425
+
426
+ logic modal.k
427
+ check valid [](P -> P)
428
+
429
+ logic deontic.standard
430
+ check valid O(P) -> O(P)
431
+
432
+ logic temporal.ltl
433
+ check satisfiable (P U Q)
434
+
435
+ logic epistemic.s5
436
+ check satisfiable K(P) & !P
437
+
438
+ logic paraconsistent.belnap
439
+ check satisfiable P & !P
440
+
441
+ logic intuitionistic.propositional
442
+ check valid (P -> P)
443
+
444
+ logic classical.first_order
445
+ check valid (forall x P(x)) -> P(a)
446
+
447
+ logic arithmetic
448
+ explain 2 + 3
449
+
450
+ logic probabilistic.basic
451
+ check satisfiable Pr(A) = 0.5
452
+ `;
453
+ const out = run(source);
454
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
455
+ (0, vitest_1.expect)(out.results.length).toBeGreaterThanOrEqual(10);
456
+ }, 15000);
457
+ (0, vitest_1.it)('all profiles produce correct results', () => {
458
+ const source = `
459
+ logic classical.propositional
460
+ check valid (P | !P)
461
+ `;
462
+ const out1 = run(source);
463
+ (0, vitest_1.expect)(out1.results[0].status).toBe('valid');
464
+ const source2 = `
465
+ logic paraconsistent.belnap
466
+ check valid (P | !P)
467
+ `;
468
+ const out2 = run(source2);
469
+ // Belnap: P | !P is NOT valid (fails for Both value)
470
+ (0, vitest_1.expect)(out2.results[0].status).not.toBe('valid');
471
+ }, 10000);
472
+ });
473
+ // ============================================================
474
+ // 8. COMBINADO — PRUEBA OMEGA FINAL
475
+ // ============================================================
476
+ (0, vitest_1.describe)('Stress: Omega Final', () => {
477
+ (0, vitest_1.it)('theory with 50 axioms + derivation chain', () => {
478
+ const axioms = Array.from({ length: 49 }, (_, i) => `axiom a${i} = P${i} -> P${i + 1}`).join('\n');
479
+ const source = `
480
+ logic classical.propositional
481
+ ${axioms}
482
+ axiom base = P0
483
+ derive P49 from {${Array.from({ length: 49 }, (_, i) => `a${i}`).join(', ')}, base}
484
+ `;
485
+ const out = run(source);
486
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
487
+ (0, vitest_1.expect)(out.stdout).toContain('[derive]');
488
+ }, 30000);
489
+ (0, vitest_1.it)('proof block with complex premise set', () => {
490
+ const source = `
491
+ logic classical.propositional
492
+ axiom a1 = P -> Q
493
+ axiom a2 = Q -> R
494
+ axiom a3 = R -> S
495
+ axiom a4 = S -> T
496
+ axiom base = P
497
+ prove T from {a1, a2, a3, a4, base}
498
+ `;
499
+ const out = run(source);
500
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
501
+ }, 10000);
502
+ (0, vitest_1.it)('massive theory render (50 axioms + 50 theorems)', () => {
503
+ const decls = Array.from({ length: 50 }, (_, i) => `axiom a${i} = P${i} -> Q${i}`).join('\n') +
504
+ '\n' +
505
+ Array.from({ length: 50 }, (_, i) => `theorem t${i} = Q${i} -> R${i}`).join('\n');
506
+ const source = `
507
+ logic classical.propositional
508
+ ${decls}
509
+ render theory
510
+ `;
511
+ const out = run(source);
512
+ (0, vitest_1.expect)(out.exitCode).toBe(0);
513
+ (0, vitest_1.expect)(out.stdout).toContain('render');
514
+ }, 10000);
515
+ });
516
+ //# sourceMappingURL=stress-hardware.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stress-hardware.test.js","sourceRoot":"","sources":["../../src/tests/stress-hardware.test.ts"],"names":[],"mappings":"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"}
@@ -926,7 +926,7 @@ function parseOk(source) {
926
926
  foo(P, Q)
927
927
  `);
928
928
  (0, vitest_1.expect)(out.exitCode).not.toBe(0);
929
- (0, vitest_1.expect)(out.stderr).toContain('argumento');
929
+ (0, vitest_1.expect)(out.stderr.toLowerCase()).toContain('argumento');
930
930
  });
931
931
  (0, vitest_1.it)('calling undeclared function throws error', () => {
932
932
  const out = run(`