@stevenvo780/st-lang 4.12.0 → 4.14.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 (97) hide show
  1. package/dist/reasoning/datalog/index.d.ts +131 -0
  2. package/dist/reasoning/datalog/index.d.ts.map +1 -0
  3. package/dist/reasoning/datalog/index.js +706 -0
  4. package/dist/reasoning/datalog/index.js.map +1 -0
  5. package/dist/reasoning/galois-fields/index.d.ts +29 -0
  6. package/dist/reasoning/galois-fields/index.d.ts.map +1 -0
  7. package/dist/reasoning/galois-fields/index.js +522 -0
  8. package/dist/reasoning/galois-fields/index.js.map +1 -0
  9. package/dist/reasoning/hoare-logic/index.d.ts +130 -0
  10. package/dist/reasoning/hoare-logic/index.d.ts.map +1 -0
  11. package/dist/reasoning/hoare-logic/index.js +535 -0
  12. package/dist/reasoning/hoare-logic/index.js.map +1 -0
  13. package/dist/reasoning/lattice/index.d.ts +165 -0
  14. package/dist/reasoning/lattice/index.d.ts.map +1 -0
  15. package/dist/reasoning/lattice/index.js +587 -0
  16. package/dist/reasoning/lattice/index.js.map +1 -0
  17. package/dist/reasoning/model-checking/index.d.ts +113 -0
  18. package/dist/reasoning/model-checking/index.d.ts.map +1 -0
  19. package/dist/reasoning/model-checking/index.js +786 -0
  20. package/dist/reasoning/model-checking/index.js.map +1 -0
  21. package/dist/reasoning/polynomial-ring/index.d.ts +30 -0
  22. package/dist/reasoning/polynomial-ring/index.d.ts.map +1 -0
  23. package/dist/reasoning/polynomial-ring/index.js +797 -0
  24. package/dist/reasoning/polynomial-ring/index.js.map +1 -0
  25. package/dist/reasoning/separation-logic/index.d.ts +190 -0
  26. package/dist/reasoning/separation-logic/index.d.ts.map +1 -0
  27. package/dist/reasoning/separation-logic/index.js +758 -0
  28. package/dist/reasoning/separation-logic/index.js.map +1 -0
  29. package/dist/reasoning/universal-algebra/index.d.ts +196 -0
  30. package/dist/reasoning/universal-algebra/index.d.ts.map +1 -0
  31. package/dist/reasoning/universal-algebra/index.js +865 -0
  32. package/dist/reasoning/universal-algebra/index.js.map +1 -0
  33. package/dist/tests/reasoning/datalog/datalog.test.d.ts +2 -0
  34. package/dist/tests/reasoning/datalog/datalog.test.d.ts.map +1 -0
  35. package/dist/tests/reasoning/datalog/datalog.test.js +333 -0
  36. package/dist/tests/reasoning/datalog/datalog.test.js.map +1 -0
  37. package/dist/tests/reasoning/galois-fields/galois-fields.test.d.ts +2 -0
  38. package/dist/tests/reasoning/galois-fields/galois-fields.test.d.ts.map +1 -0
  39. package/dist/tests/reasoning/galois-fields/galois-fields.test.js +226 -0
  40. package/dist/tests/reasoning/galois-fields/galois-fields.test.js.map +1 -0
  41. package/dist/tests/reasoning/hoare-logic/hoare-logic.test.d.ts +2 -0
  42. package/dist/tests/reasoning/hoare-logic/hoare-logic.test.d.ts.map +1 -0
  43. package/dist/tests/reasoning/hoare-logic/hoare-logic.test.js +340 -0
  44. package/dist/tests/reasoning/hoare-logic/hoare-logic.test.js.map +1 -0
  45. package/dist/tests/reasoning/lattice/lattice.test.d.ts +2 -0
  46. package/dist/tests/reasoning/lattice/lattice.test.d.ts.map +1 -0
  47. package/dist/tests/reasoning/lattice/lattice.test.js +238 -0
  48. package/dist/tests/reasoning/lattice/lattice.test.js.map +1 -0
  49. package/dist/tests/reasoning/model-checking/model-checking.test.d.ts +2 -0
  50. package/dist/tests/reasoning/model-checking/model-checking.test.d.ts.map +1 -0
  51. package/dist/tests/reasoning/model-checking/model-checking.test.js +222 -0
  52. package/dist/tests/reasoning/model-checking/model-checking.test.js.map +1 -0
  53. package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.d.ts +2 -0
  54. package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.d.ts.map +1 -0
  55. package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.js +230 -0
  56. package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.js.map +1 -0
  57. package/dist/tests/reasoning/separation-logic/separation-logic.test.d.ts +2 -0
  58. package/dist/tests/reasoning/separation-logic/separation-logic.test.d.ts.map +1 -0
  59. package/dist/tests/reasoning/separation-logic/separation-logic.test.js +311 -0
  60. package/dist/tests/reasoning/separation-logic/separation-logic.test.js.map +1 -0
  61. package/dist/tests/reasoning/universal-algebra/universal-algebra.test.d.ts +2 -0
  62. package/dist/tests/reasoning/universal-algebra/universal-algebra.test.d.ts.map +1 -0
  63. package/dist/tests/reasoning/universal-algebra/universal-algebra.test.js +289 -0
  64. package/dist/tests/reasoning/universal-algebra/universal-algebra.test.js.map +1 -0
  65. package/dist/tests/type-theory/lambda-cube/lambda-cube.test.d.ts +2 -0
  66. package/dist/tests/type-theory/lambda-cube/lambda-cube.test.d.ts.map +1 -0
  67. package/dist/tests/type-theory/lambda-cube/lambda-cube.test.js +266 -0
  68. package/dist/tests/type-theory/lambda-cube/lambda-cube.test.js.map +1 -0
  69. package/dist/type-theory/lambda-cube/erase.d.ts +26 -0
  70. package/dist/type-theory/lambda-cube/erase.d.ts.map +1 -0
  71. package/dist/type-theory/lambda-cube/erase.js +68 -0
  72. package/dist/type-theory/lambda-cube/erase.js.map +1 -0
  73. package/dist/type-theory/lambda-cube/examples.d.ts +59 -0
  74. package/dist/type-theory/lambda-cube/examples.d.ts.map +1 -0
  75. package/dist/type-theory/lambda-cube/examples.js +110 -0
  76. package/dist/type-theory/lambda-cube/examples.js.map +1 -0
  77. package/dist/type-theory/lambda-cube/index.d.ts +11 -0
  78. package/dist/type-theory/lambda-cube/index.d.ts.map +1 -0
  79. package/dist/type-theory/lambda-cube/index.js +64 -0
  80. package/dist/type-theory/lambda-cube/index.js.map +1 -0
  81. package/dist/type-theory/lambda-cube/normalize.d.ts +17 -0
  82. package/dist/type-theory/lambda-cube/normalize.d.ts.map +1 -0
  83. package/dist/type-theory/lambda-cube/normalize.js +134 -0
  84. package/dist/type-theory/lambda-cube/normalize.js.map +1 -0
  85. package/dist/type-theory/lambda-cube/rules.d.ts +26 -0
  86. package/dist/type-theory/lambda-cube/rules.d.ts.map +1 -0
  87. package/dist/type-theory/lambda-cube/rules.js +67 -0
  88. package/dist/type-theory/lambda-cube/rules.js.map +1 -0
  89. package/dist/type-theory/lambda-cube/typecheck.d.ts +20 -0
  90. package/dist/type-theory/lambda-cube/typecheck.d.ts.map +1 -0
  91. package/dist/type-theory/lambda-cube/typecheck.js +168 -0
  92. package/dist/type-theory/lambda-cube/typecheck.js.map +1 -0
  93. package/dist/type-theory/lambda-cube/types.d.ts +40 -0
  94. package/dist/type-theory/lambda-cube/types.d.ts.map +1 -0
  95. package/dist/type-theory/lambda-cube/types.js +192 -0
  96. package/dist/type-theory/lambda-cube/types.js.map +1 -0
  97. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hoare-logic.test.js","sourceRoot":"","sources":["../../../../src/tests/reasoning/hoare-logic/hoare-logic.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lattice.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lattice.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/reasoning/lattice/lattice.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const lattice_1 = require("../../../reasoning/lattice");
5
+ const eq = (L, a, b) => L.leq(a, b) && L.leq(b, a);
6
+ (0, vitest_1.describe)('Lattice — power set 2^{a,b}', () => {
7
+ const L = (0, lattice_1.powerSetLattice)(['a', 'b']);
8
+ (0, vitest_1.it)('contiene exactamente 4 elementos', () => {
9
+ (0, vitest_1.expect)(L.elements.length).toBe(4);
10
+ });
11
+ (0, vitest_1.it)('es booleana: distributiva + complementada', () => {
12
+ (0, vitest_1.expect)((0, lattice_1.isBoolean)(L)).toBe(true);
13
+ (0, vitest_1.expect)((0, lattice_1.isDistributive)(L)).toBe(true);
14
+ (0, vitest_1.expect)((0, lattice_1.isComplemented)(L)).toBe(true);
15
+ });
16
+ (0, vitest_1.it)('es Heyting (corolario de distributividad finita)', () => {
17
+ (0, vitest_1.expect)((0, lattice_1.isHeyting)(L)).toBe(true);
18
+ });
19
+ (0, vitest_1.it)('cada subconjunto tiene complemento único (el complemento de conjuntos)', () => {
20
+ for (const s of L.elements) {
21
+ const c = (0, lattice_1.complement)(L, s);
22
+ (0, vitest_1.expect)(c).not.toBeNull();
23
+ // a ∪ c = top, a ∩ c = bottom
24
+ (0, vitest_1.expect)(eq(L, L.join(s, c), L.top)).toBe(true);
25
+ (0, vitest_1.expect)(eq(L, L.meet(s, c), L.bottom)).toBe(true);
26
+ }
27
+ });
28
+ });
29
+ (0, vitest_1.describe)('Lattice — divisores de 30', () => {
30
+ const L = (0, lattice_1.divisibilityLattice)(30);
31
+ (0, vitest_1.it)('elementos = {1,2,3,5,6,10,15,30}', () => {
32
+ const sorted = L.elements.slice().sort((a, b) => a - b);
33
+ (0, vitest_1.expect)(sorted).toEqual([1, 2, 3, 5, 6, 10, 15, 30]);
34
+ });
35
+ (0, vitest_1.it)('top = 30, bottom = 1', () => {
36
+ (0, vitest_1.expect)(L.top).toBe(30);
37
+ (0, vitest_1.expect)(L.bottom).toBe(1);
38
+ });
39
+ (0, vitest_1.it)('es distributiva (n libre de cuadrados ⇒ 2^k Booleana)', () => {
40
+ (0, vitest_1.expect)((0, lattice_1.isDistributive)(L)).toBe(true);
41
+ (0, vitest_1.expect)((0, lattice_1.isBoolean)(L)).toBe(true);
42
+ });
43
+ (0, vitest_1.it)('join = lcm, meet = gcd: join(6,10)=30, meet(6,10)=2', () => {
44
+ (0, vitest_1.expect)(L.join(6, 10)).toBe(30);
45
+ (0, vitest_1.expect)(L.meet(6, 10)).toBe(2);
46
+ });
47
+ (0, vitest_1.it)('átomos = primos {2,3,5}', () => {
48
+ const a = (0, lattice_1.atoms)(L)
49
+ .slice()
50
+ .sort((x, y) => x - y);
51
+ (0, vitest_1.expect)(a).toEqual([2, 3, 5]);
52
+ });
53
+ (0, vitest_1.it)('coátomos = {6,10,15}', () => {
54
+ const c = (0, lattice_1.coatoms)(L)
55
+ .slice()
56
+ .sort((x, y) => x - y);
57
+ (0, vitest_1.expect)(c).toEqual([6, 10, 15]);
58
+ });
59
+ });
60
+ (0, vitest_1.describe)('Lattice — divisores de 12 (no libre de cuadrados)', () => {
61
+ // 12 = 2^2 · 3: distributive pero NO complementada (2 y 6 no tienen complemento)
62
+ const L = (0, lattice_1.divisibilityLattice)(12);
63
+ (0, vitest_1.it)('es distributiva pero NO Booleana (12 no es libre de cuadrados)', () => {
64
+ (0, vitest_1.expect)((0, lattice_1.isDistributive)(L)).toBe(true);
65
+ (0, vitest_1.expect)((0, lattice_1.isComplemented)(L)).toBe(false);
66
+ (0, vitest_1.expect)((0, lattice_1.isBoolean)(L)).toBe(false);
67
+ });
68
+ (0, vitest_1.it)('el elemento 2 no tiene complemento', () => {
69
+ (0, vitest_1.expect)((0, lattice_1.complement)(L, 2)).toBeNull();
70
+ });
71
+ });
72
+ (0, vitest_1.describe)('Lattice — chain(5)', () => {
73
+ const L = (0, lattice_1.chain)(5);
74
+ (0, vitest_1.it)('es totally ordered (lattice trivialmente)', () => {
75
+ (0, vitest_1.expect)(L.elements.length).toBe(5);
76
+ (0, vitest_1.expect)(L.top).toBe(4);
77
+ (0, vitest_1.expect)(L.bottom).toBe(0);
78
+ });
79
+ (0, vitest_1.it)('es distributiva pero NO complementada (excepto en cadena de 2)', () => {
80
+ (0, vitest_1.expect)((0, lattice_1.isDistributive)(L)).toBe(true);
81
+ (0, vitest_1.expect)((0, lattice_1.isComplemented)(L)).toBe(false);
82
+ });
83
+ (0, vitest_1.it)('cadena de 2 sí es Booleana', () => {
84
+ const L2 = (0, lattice_1.chain)(2);
85
+ (0, vitest_1.expect)((0, lattice_1.isBoolean)(L2)).toBe(true);
86
+ });
87
+ (0, vitest_1.it)('no contiene N5 ni M3', () => {
88
+ (0, vitest_1.expect)((0, lattice_1.containsPentagon)(L)).toBe(false);
89
+ (0, vitest_1.expect)((0, lattice_1.containsDiamond)(L)).toBe(false);
90
+ });
91
+ });
92
+ (0, vitest_1.describe)('Lattice — pentágono N5', () => {
93
+ const L = (0, lattice_1.pentagonN5)();
94
+ (0, vitest_1.it)('contiene un subreticulado N5 (a sí mismo)', () => {
95
+ (0, vitest_1.expect)((0, lattice_1.containsPentagon)(L)).toBe(true);
96
+ });
97
+ (0, vitest_1.it)('NO es modular (Dedekind)', () => {
98
+ (0, vitest_1.expect)((0, lattice_1.isModular)(L)).toBe(false);
99
+ });
100
+ (0, vitest_1.it)('NO es distributivo', () => {
101
+ (0, vitest_1.expect)((0, lattice_1.isDistributive)(L)).toBe(false);
102
+ });
103
+ (0, vitest_1.it)('es complementado (cada elemento medio cumple a∨x=T, a∧x=B)', () => {
104
+ // En N5 con {B,a,c,b,T}: complemento de 'a' es 'b'; de 'c' también es 'b';
105
+ // 'b' tiene dos complementos posibles (a o c). Todos tienen alguno.
106
+ (0, vitest_1.expect)((0, lattice_1.isComplemented)(L)).toBe(true);
107
+ });
108
+ });
109
+ (0, vitest_1.describe)('Lattice — diamante M3', () => {
110
+ const L = (0, lattice_1.diamondM3)();
111
+ (0, vitest_1.it)('contiene un subreticulado M3', () => {
112
+ (0, vitest_1.expect)((0, lattice_1.containsDiamond)(L)).toBe(true);
113
+ });
114
+ (0, vitest_1.it)('es modular pero NO distributivo', () => {
115
+ (0, vitest_1.expect)((0, lattice_1.isModular)(L)).toBe(true);
116
+ (0, vitest_1.expect)((0, lattice_1.isDistributive)(L)).toBe(false);
117
+ });
118
+ (0, vitest_1.it)('NO contiene N5', () => {
119
+ (0, vitest_1.expect)((0, lattice_1.containsPentagon)(L)).toBe(false);
120
+ });
121
+ (0, vitest_1.it)('es complementado pero no Booleano (complementos no únicos)', () => {
122
+ (0, vitest_1.expect)((0, lattice_1.isComplemented)(L)).toBe(true);
123
+ (0, vitest_1.expect)((0, lattice_1.isBoolean)(L)).toBe(false);
124
+ });
125
+ });
126
+ (0, vitest_1.describe)('Lattice — Dedekind / Birkhoff', () => {
127
+ (0, vitest_1.it)('Dedekind: modular ⇔ libre de N5', () => {
128
+ (0, vitest_1.expect)((0, lattice_1.dedekindAnalysis)((0, lattice_1.pentagonN5)())).toMatchObject({
129
+ modular: false,
130
+ pentagonFree: false,
131
+ });
132
+ (0, vitest_1.expect)((0, lattice_1.dedekindAnalysis)((0, lattice_1.diamondM3)())).toMatchObject({
133
+ modular: true,
134
+ pentagonFree: true,
135
+ });
136
+ (0, vitest_1.expect)((0, lattice_1.dedekindAnalysis)((0, lattice_1.chain)(4))).toMatchObject({
137
+ modular: true,
138
+ pentagonFree: true,
139
+ });
140
+ });
141
+ (0, vitest_1.it)('Birkhoff: distributiva ⇔ libre de N5 y M3', () => {
142
+ (0, vitest_1.expect)((0, lattice_1.dedekindAnalysis)((0, lattice_1.powerSetLattice)(['a', 'b', 'c']))).toMatchObject({
143
+ distributive: true,
144
+ pentagonFree: true,
145
+ diamondFree: true,
146
+ });
147
+ (0, vitest_1.expect)((0, lattice_1.dedekindAnalysis)((0, lattice_1.diamondM3)())).toMatchObject({
148
+ distributive: false,
149
+ diamondFree: false,
150
+ });
151
+ (0, vitest_1.expect)((0, lattice_1.dedekindAnalysis)((0, lattice_1.pentagonN5)())).toMatchObject({
152
+ distributive: false,
153
+ pentagonFree: false,
154
+ });
155
+ });
156
+ });
157
+ (0, vitest_1.describe)('Lattice — pseudo-complemento / Heyting', () => {
158
+ const L = (0, lattice_1.powerSetLattice)(['x', 'y']);
159
+ (0, vitest_1.it)('en una Booleana: a ⇒ b coincide con ¬a ∪ b', () => {
160
+ const a = new Set(['x']);
161
+ const b = new Set(['y']);
162
+ const impl = (0, lattice_1.relativeComplement)(L, a, b);
163
+ (0, vitest_1.expect)(impl).not.toBeNull();
164
+ // ¬a ∪ b = {y} ∪ {y} = {y}
165
+ (0, vitest_1.expect)(eq(L, impl, b)).toBe(true);
166
+ });
167
+ (0, vitest_1.it)('cadena finita es Heyting (distributiva finita)', () => {
168
+ (0, vitest_1.expect)((0, lattice_1.isHeyting)((0, lattice_1.chain)(5))).toBe(true);
169
+ });
170
+ (0, vitest_1.it)('N5 NO es Heyting (no distributiva)', () => {
171
+ (0, vitest_1.expect)((0, lattice_1.isHeyting)((0, lattice_1.pentagonN5)())).toBe(false);
172
+ });
173
+ });
174
+ (0, vitest_1.describe)('Lattice — makeLattice rejection / validación', () => {
175
+ (0, vitest_1.it)('rechaza un poset que no es lattice (V-shape sin top)', () => {
176
+ // Elementos: {0, 1, 2}. 0 ≤ 1 y 0 ≤ 2; 1 y 2 incomparables y sin top.
177
+ const els = [0, 1, 2];
178
+ const leq = (a, b) => {
179
+ if (a === b)
180
+ return true;
181
+ if (a === 0)
182
+ return true;
183
+ return false;
184
+ };
185
+ (0, vitest_1.expect)((0, lattice_1.isLattice)(els, leq)).toBe(false);
186
+ (0, vitest_1.expect)((0, lattice_1.makeLattice)(els, leq)).toBeNull();
187
+ });
188
+ (0, vitest_1.it)('rechaza relación no transitiva', () => {
189
+ const els = [0, 1, 2];
190
+ const leq = (a, b) => {
191
+ if (a === b)
192
+ return true;
193
+ // 0 ≤ 1, 1 ≤ 2, pero NO 0 ≤ 2 → no transitiva
194
+ if (a === 0 && b === 1)
195
+ return true;
196
+ if (a === 1 && b === 2)
197
+ return true;
198
+ return false;
199
+ };
200
+ (0, vitest_1.expect)((0, lattice_1.isLattice)(els, leq)).toBe(false);
201
+ });
202
+ (0, vitest_1.it)('acepta el lattice trivial de 1 elemento', () => {
203
+ const L = (0, lattice_1.makeLattice)([42], (a, b) => a === b);
204
+ (0, vitest_1.expect)(L).not.toBeNull();
205
+ (0, vitest_1.expect)(L.top).toBe(42);
206
+ (0, vitest_1.expect)(L.bottom).toBe(42);
207
+ });
208
+ });
209
+ (0, vitest_1.describe)('Lattice — propiedades estructurales', () => {
210
+ (0, vitest_1.it)('powerSet sobre 3 elementos: 8 átomos? No, 3 átomos (singletons)', () => {
211
+ const L = (0, lattice_1.powerSetLattice)(['x', 'y', 'z']);
212
+ (0, vitest_1.expect)(L.elements.length).toBe(8);
213
+ (0, vitest_1.expect)((0, lattice_1.atoms)(L).length).toBe(3);
214
+ (0, vitest_1.expect)((0, lattice_1.coatoms)(L).length).toBe(3);
215
+ });
216
+ (0, vitest_1.it)('toda lattice distributiva es modular', () => {
217
+ const L = (0, lattice_1.powerSetLattice)(['a', 'b']);
218
+ (0, vitest_1.expect)((0, lattice_1.isDistributive)(L)).toBe(true);
219
+ (0, vitest_1.expect)((0, lattice_1.isModular)(L)).toBe(true);
220
+ });
221
+ (0, vitest_1.it)('en lattice Booleana el complemento es único', () => {
222
+ const L = (0, lattice_1.powerSetLattice)(['a', 'b', 'c']);
223
+ for (const s of L.elements) {
224
+ // No hay dos complementos distintos.
225
+ let found = null;
226
+ for (const x of L.elements) {
227
+ if (eq(L, L.join(s, x), L.top) && eq(L, L.meet(s, x), L.bottom)) {
228
+ if (found !== null) {
229
+ (0, vitest_1.expect)(eq(L, found, x)).toBe(true);
230
+ }
231
+ found = x;
232
+ }
233
+ }
234
+ (0, vitest_1.expect)(found).not.toBeNull();
235
+ }
236
+ });
237
+ });
238
+ //# sourceMappingURL=lattice.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lattice.test.js","sourceRoot":"","sources":["../../../../src/tests/reasoning/lattice/lattice.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model-checking.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-checking.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/reasoning/model-checking/model-checking.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Model Checking — Tests
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const model_checking_1 = require("../../../reasoning/model-checking");
8
+ // ── Helpers de fixtures ──────────────────────────────────────
9
+ /** Cadena lineal 0 → 1 → 2 → ... → n-1 (sin sucesores en n-1). */
10
+ function chainSpace(n) {
11
+ return {
12
+ initial: [0],
13
+ successors: (s) => (s + 1 < n ? [s + 1] : []),
14
+ labels: (s) => new Set([`s${s}`]),
15
+ equals: (a, b) => a === b,
16
+ hash: (s) => `${s}`,
17
+ };
18
+ }
19
+ /** Contador cíclico mod n: 0 → 1 → ... → n-1 → 0 → ... */
20
+ function cyclicCounterSpace(n) {
21
+ return {
22
+ initial: [0],
23
+ successors: (s) => [(s + 1) % n],
24
+ labels: (s) => new Set([`s${s}`]),
25
+ equals: (a, b) => a === b,
26
+ hash: (s) => `${s}`,
27
+ };
28
+ }
29
+ /** Doble bucle disjunto: 0 → 1 → 0 y 0 → 2 → 3 → 2 (uno con p, otro sin p). */
30
+ function branchedLoopSpace() {
31
+ return {
32
+ initial: [0],
33
+ successors: (s) => {
34
+ if (s === 0)
35
+ return [1, 2];
36
+ if (s === 1)
37
+ return [0];
38
+ if (s === 2)
39
+ return [3];
40
+ if (s === 3)
41
+ return [2];
42
+ return [];
43
+ },
44
+ labels: () => new Set(),
45
+ equals: (a, b) => a === b,
46
+ hash: (s) => `${s}`,
47
+ };
48
+ }
49
+ // ── Reachability ─────────────────────────────────────────────
50
+ (0, vitest_1.describe)('model-checking — reachability', () => {
51
+ (0, vitest_1.it)('cadena lineal n=10 alcanza 10 estados', () => {
52
+ const r = (0, model_checking_1.reachableStates)(chainSpace(10));
53
+ (0, vitest_1.expect)(r.explored).toBe(10);
54
+ (0, vitest_1.expect)(r.states.length).toBe(10);
55
+ (0, vitest_1.expect)(r.truncated).toBe(false);
56
+ });
57
+ (0, vitest_1.it)('respeta maxStates y marca truncated', () => {
58
+ const r = (0, model_checking_1.reachableStates)(chainSpace(1000), { maxStates: 50 });
59
+ (0, vitest_1.expect)(r.explored).toBeLessThanOrEqual(50);
60
+ (0, vitest_1.expect)(r.truncated).toBe(true);
61
+ });
62
+ (0, vitest_1.it)('contador cíclico n=7 alcanza exactamente 7 estados', () => {
63
+ const r = (0, model_checking_1.reachableStates)(cyclicCounterSpace(7));
64
+ (0, vitest_1.expect)(r.explored).toBe(7);
65
+ (0, vitest_1.expect)(r.truncated).toBe(false);
66
+ });
67
+ });
68
+ // ── Safety / Invariantes ─────────────────────────────────────
69
+ (0, vitest_1.describe)('model-checking — safety', () => {
70
+ (0, vitest_1.it)('safety holds: cadena n=10, predicado s<10', () => {
71
+ const r = (0, model_checking_1.checkSafety)(chainSpace(10), (s) => s < 10);
72
+ (0, vitest_1.expect)(r.safe).toBe(true);
73
+ (0, vitest_1.expect)(r.trace).toBeUndefined();
74
+ });
75
+ (0, vitest_1.it)('safety violation detected con traza completa', () => {
76
+ const r = (0, model_checking_1.checkSafety)(chainSpace(10), (s) => s < 5);
77
+ (0, vitest_1.expect)(r.safe).toBe(false);
78
+ (0, vitest_1.expect)(r.violatingState).toBe(5);
79
+ (0, vitest_1.expect)(r.trace).toBeDefined();
80
+ const trace = r.trace;
81
+ (0, vitest_1.expect)(trace[0]).toBe(0);
82
+ (0, vitest_1.expect)(trace[trace.length - 1]).toBe(5);
83
+ // La traza debe ser un camino real: pasos sucesivos +1.
84
+ for (let i = 1; i < trace.length; i += 1) {
85
+ (0, vitest_1.expect)(trace[i]).toBe(trace[i - 1] + 1);
86
+ }
87
+ });
88
+ (0, vitest_1.it)('invariant holds en chain cuando es trivialmente verdadero', () => {
89
+ const r = (0, model_checking_1.checkInvariant)(chainSpace(20), () => true);
90
+ (0, vitest_1.expect)(r.safe).toBe(true);
91
+ });
92
+ (0, vitest_1.it)('safety detecta violación en estado inicial', () => {
93
+ const r = (0, model_checking_1.checkSafety)(chainSpace(3), (s) => s !== 0);
94
+ (0, vitest_1.expect)(r.safe).toBe(false);
95
+ (0, vitest_1.expect)(r.violatingState).toBe(0);
96
+ (0, vitest_1.expect)(r.trace).toEqual([0]);
97
+ });
98
+ });
99
+ // ── BMC ──────────────────────────────────────────────────────
100
+ (0, vitest_1.describe)('model-checking — bounded model checking', () => {
101
+ (0, vitest_1.it)('bmc depth=5 encuentra contraejemplo en chain con p:s<3', () => {
102
+ const r = (0, model_checking_1.bmc)(chainSpace(100), (s) => s < 3, 5);
103
+ (0, vitest_1.expect)(r.safe).toBe(false);
104
+ (0, vitest_1.expect)(r.violatingState).toBe(3);
105
+ const trace = r.trace;
106
+ (0, vitest_1.expect)(trace[0]).toBe(0);
107
+ (0, vitest_1.expect)(trace[trace.length - 1]).toBe(3);
108
+ });
109
+ (0, vitest_1.it)('bmc depth=2 NO encuentra contraejemplo más profundo', () => {
110
+ // El primer s con s>=5 es 5, profundidad 5; con depth=2 no lo ve.
111
+ const r = (0, model_checking_1.bmc)(chainSpace(100), (s) => s < 5, 2);
112
+ (0, vitest_1.expect)(r.safe).toBe(true);
113
+ });
114
+ (0, vitest_1.it)('bmc depth=0 solo evalúa estados iniciales', () => {
115
+ const r = (0, model_checking_1.bmc)(chainSpace(10), (s) => s !== 0, 0);
116
+ (0, vitest_1.expect)(r.safe).toBe(false);
117
+ (0, vitest_1.expect)(r.violatingState).toBe(0);
118
+ });
119
+ });
120
+ // ── Liveness: GF p (always eventually) ──────────────────────
121
+ (0, vitest_1.describe)('model-checking — GF p (always eventually)', () => {
122
+ (0, vitest_1.it)('GF p holds en contador cíclico donde p={s==3}', () => {
123
+ const r = (0, model_checking_1.checkAlwaysEventually)(cyclicCounterSpace(5), (s) => s === 3);
124
+ (0, vitest_1.expect)(r.holds).toBe(true);
125
+ });
126
+ (0, vitest_1.it)('GF p falla cuando hay SCC accesible sin p', () => {
127
+ // branchedLoop: SCC {2,3} no contiene p; SCC {0,1} sí contiene p.
128
+ // GF p exige que toda SCC accesible contenga p.
129
+ const r = (0, model_checking_1.checkAlwaysEventually)(branchedLoopSpace(), (s) => s === 0 || s === 1);
130
+ (0, vitest_1.expect)(r.holds).toBe(false);
131
+ (0, vitest_1.expect)(r.lasso).toBeDefined();
132
+ const lasso = r.lasso;
133
+ // El loop debe estar en {2,3}, sin estados con p.
134
+ for (const s of lasso.loop) {
135
+ (0, vitest_1.expect)(s === 2 || s === 3).toBe(true);
136
+ }
137
+ });
138
+ });
139
+ // ── Liveness: FG p (eventually always) ──────────────────────
140
+ (0, vitest_1.describe)('model-checking — FG p (eventually always)', () => {
141
+ (0, vitest_1.it)('FG p holds si hay ciclo donde p siempre vale', () => {
142
+ // En cyclicCounter(5), tomamos p=true en TODOS los estados.
143
+ const r = (0, model_checking_1.checkEventuallyAlways)(cyclicCounterSpace(5), () => true);
144
+ (0, vitest_1.expect)(r.holds).toBe(true);
145
+ (0, vitest_1.expect)(r.lasso).toBeDefined();
146
+ });
147
+ (0, vitest_1.it)('FG p NO holds si no hay ciclo enteramente en p', () => {
148
+ // branchedLoop: p={s==0}; no hay ciclo enteramente en {0} (el ciclo es 0↔1).
149
+ const r = (0, model_checking_1.checkEventuallyAlways)(branchedLoopSpace(), (s) => s === 0);
150
+ (0, vitest_1.expect)(r.holds).toBe(false);
151
+ });
152
+ });
153
+ // ── Deadlock ────────────────────────────────────────────────
154
+ (0, vitest_1.describe)('model-checking — deadlock', () => {
155
+ (0, vitest_1.it)('chain tiene deadlock en el último estado', () => {
156
+ const r = (0, model_checking_1.hasDeadlock)(chainSpace(5));
157
+ (0, vitest_1.expect)(r.deadlocked).toBe(true);
158
+ (0, vitest_1.expect)(r.state).toBe(4);
159
+ const trace = r.trace;
160
+ (0, vitest_1.expect)(trace[0]).toBe(0);
161
+ (0, vitest_1.expect)(trace[trace.length - 1]).toBe(4);
162
+ });
163
+ (0, vitest_1.it)('contador cíclico no tiene deadlock', () => {
164
+ const r = (0, model_checking_1.hasDeadlock)(cyclicCounterSpace(5));
165
+ (0, vitest_1.expect)(r.deadlocked).toBe(false);
166
+ });
167
+ });
168
+ // ── Ejemplos clásicos ───────────────────────────────────────
169
+ (0, vitest_1.describe)('model-checking — mutex Peterson-like', () => {
170
+ (0, vitest_1.it)('reachable states es finito y razonable', () => {
171
+ const space = (0, model_checking_1.mutualExclusionSpace)();
172
+ const r = (0, model_checking_1.reachableStates)(space);
173
+ (0, vitest_1.expect)(r.explored).toBeGreaterThan(0);
174
+ (0, vitest_1.expect)(r.truncated).toBe(false);
175
+ });
176
+ (0, vitest_1.it)('mutex: NUNCA ambos procesos en critical simultáneamente', () => {
177
+ const space = (0, model_checking_1.mutualExclusionSpace)();
178
+ const r = (0, model_checking_1.checkSafety)(space, (s) => !(s.p1 === 'critical' && s.p2 === 'critical'));
179
+ (0, vitest_1.expect)(r.safe).toBe(true);
180
+ });
181
+ (0, vitest_1.it)('mutex: detecta violación con predicado inverso (control)', () => {
182
+ // Como control, comprobamos que SÍ existe algún estado con p1==critical.
183
+ // Si invertimos el invariant (p1 nunca critical), debe fallar.
184
+ const space = (0, model_checking_1.mutualExclusionSpace)();
185
+ const r = (0, model_checking_1.checkSafety)(space, (s) => s.p1 !== 'critical');
186
+ (0, vitest_1.expect)(r.safe).toBe(false);
187
+ (0, vitest_1.expect)(r.violatingState?.p1).toBe('critical');
188
+ });
189
+ });
190
+ (0, vitest_1.describe)('model-checking — dining philosophers', () => {
191
+ (0, vitest_1.it)('n=2 alcanza un conjunto finito y no se cuelga', () => {
192
+ const space = (0, model_checking_1.diningPhilosophersSpace)(2);
193
+ const r = (0, model_checking_1.reachableStates)(space, { maxStates: 1000 });
194
+ (0, vitest_1.expect)(r.explored).toBeGreaterThan(0);
195
+ (0, vitest_1.expect)(r.truncated).toBe(false);
196
+ });
197
+ (0, vitest_1.it)('n=2: dos filósofos pueden comer pero no ambos a la vez (comparten ambos tenedores)', () => {
198
+ // Con n=2: hay solo 2 tenedores. left(0)=0,right(0)=1; left(1)=1,right(1)=0.
199
+ // Ambos comparten todos los tenedores → no pueden comer simultáneamente.
200
+ const space = (0, model_checking_1.diningPhilosophersSpace)(2);
201
+ const r = (0, model_checking_1.checkSafety)(space, (s) => !(s.phils[0] === 'eating' && s.phils[1] === 'eating'));
202
+ (0, vitest_1.expect)(r.safe).toBe(true);
203
+ });
204
+ });
205
+ (0, vitest_1.describe)('model-checking — reader-writer', () => {
206
+ (0, vitest_1.it)('nunca hay readers y writer simultáneamente', () => {
207
+ const space = (0, model_checking_1.readerWriterSpace)(3);
208
+ const r = (0, model_checking_1.checkSafety)(space, (s) => !(s.writer && s.readers > 0));
209
+ (0, vitest_1.expect)(r.safe).toBe(true);
210
+ });
211
+ (0, vitest_1.it)('writer no coexiste con otro writer (mutex de escritor)', () => {
212
+ // El modelo solo tiene un flag writer boolean, así que estructural.
213
+ const space = (0, model_checking_1.readerWriterSpace)(2);
214
+ const r = (0, model_checking_1.reachableStates)(space);
215
+ for (const s of r.states) {
216
+ // Con writer=true, readers debe ser 0.
217
+ if (s.writer)
218
+ (0, vitest_1.expect)(s.readers).toBe(0);
219
+ }
220
+ });
221
+ });
222
+ //# sourceMappingURL=model-checking.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-checking.test.js","sourceRoot":"","sources":["../../../../src/tests/reasoning/model-checking/model-checking.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=polynomial-ring.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polynomial-ring.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/reasoning/polynomial-ring/polynomial-ring.test.ts"],"names":[],"mappings":""}