@stevenvo780/st-lang 4.1.0 → 4.2.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 (265) hide show
  1. package/dist/belief-revision/agm.d.ts +76 -0
  2. package/dist/belief-revision/agm.d.ts.map +1 -0
  3. package/dist/belief-revision/agm.js +249 -0
  4. package/dist/belief-revision/agm.js.map +1 -0
  5. package/dist/belief-revision/index.d.ts +6 -0
  6. package/dist/belief-revision/index.d.ts.map +1 -0
  7. package/dist/belief-revision/index.js +33 -0
  8. package/dist/belief-revision/index.js.map +1 -0
  9. package/dist/belief-revision/parser.d.ts +16 -0
  10. package/dist/belief-revision/parser.d.ts.map +1 -0
  11. package/dist/belief-revision/parser.js +199 -0
  12. package/dist/belief-revision/parser.js.map +1 -0
  13. package/dist/belief-revision/sat.d.ts +19 -0
  14. package/dist/belief-revision/sat.d.ts.map +1 -0
  15. package/dist/belief-revision/sat.js +90 -0
  16. package/dist/belief-revision/sat.js.map +1 -0
  17. package/dist/belief-revision/types.d.ts +51 -0
  18. package/dist/belief-revision/types.d.ts.map +1 -0
  19. package/dist/belief-revision/types.js +10 -0
  20. package/dist/belief-revision/types.js.map +1 -0
  21. package/dist/curry-howard/index.d.ts +7 -0
  22. package/dist/curry-howard/index.d.ts.map +1 -0
  23. package/dist/curry-howard/index.js +46 -0
  24. package/dist/curry-howard/index.js.map +1 -0
  25. package/dist/curry-howard/infer.d.ts +9 -0
  26. package/dist/curry-howard/infer.d.ts.map +1 -0
  27. package/dist/curry-howard/infer.js +129 -0
  28. package/dist/curry-howard/infer.js.map +1 -0
  29. package/dist/curry-howard/proof.d.ts +7 -0
  30. package/dist/curry-howard/proof.d.ts.map +1 -0
  31. package/dist/curry-howard/proof.js +282 -0
  32. package/dist/curry-howard/proof.js.map +1 -0
  33. package/dist/curry-howard/reduce.d.ts +7 -0
  34. package/dist/curry-howard/reduce.d.ts.map +1 -0
  35. package/dist/curry-howard/reduce.js +266 -0
  36. package/dist/curry-howard/reduce.js.map +1 -0
  37. package/dist/curry-howard/types.d.ts +91 -0
  38. package/dist/curry-howard/types.d.ts.map +1 -0
  39. package/dist/curry-howard/types.js +149 -0
  40. package/dist/curry-howard/types.js.map +1 -0
  41. package/dist/fol-prover-equality/demodulate.d.ts +29 -0
  42. package/dist/fol-prover-equality/demodulate.d.ts.map +1 -0
  43. package/dist/fol-prover-equality/demodulate.js +197 -0
  44. package/dist/fol-prover-equality/demodulate.js.map +1 -0
  45. package/dist/fol-prover-equality/index.d.ts +8 -0
  46. package/dist/fol-prover-equality/index.d.ts.map +1 -0
  47. package/dist/fol-prover-equality/index.js +24 -0
  48. package/dist/fol-prover-equality/index.js.map +1 -0
  49. package/dist/fol-prover-equality/paramodulate.d.ts +46 -0
  50. package/dist/fol-prover-equality/paramodulate.d.ts.map +1 -0
  51. package/dist/fol-prover-equality/paramodulate.js +159 -0
  52. package/dist/fol-prover-equality/paramodulate.js.map +1 -0
  53. package/dist/fol-prover-equality/prove.d.ts +7 -0
  54. package/dist/fol-prover-equality/prove.d.ts.map +1 -0
  55. package/dist/fol-prover-equality/prove.js +307 -0
  56. package/dist/fol-prover-equality/prove.js.map +1 -0
  57. package/dist/fol-prover-equality/term-utils.d.ts +43 -0
  58. package/dist/fol-prover-equality/term-utils.d.ts.map +1 -0
  59. package/dist/fol-prover-equality/term-utils.js +230 -0
  60. package/dist/fol-prover-equality/term-utils.js.map +1 -0
  61. package/dist/fol-prover-equality/types.d.ts +20 -0
  62. package/dist/fol-prover-equality/types.d.ts.map +1 -0
  63. package/dist/fol-prover-equality/types.js +5 -0
  64. package/dist/fol-prover-equality/types.js.map +1 -0
  65. package/dist/index.d.ts +4 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +18 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/profiles/ctl/check.d.ts +13 -0
  70. package/dist/profiles/ctl/check.d.ts.map +1 -0
  71. package/dist/profiles/ctl/check.js +359 -0
  72. package/dist/profiles/ctl/check.js.map +1 -0
  73. package/dist/profiles/ctl/index.d.ts +5 -0
  74. package/dist/profiles/ctl/index.d.ts.map +1 -0
  75. package/dist/profiles/ctl/index.js +23 -0
  76. package/dist/profiles/ctl/index.js.map +1 -0
  77. package/dist/profiles/ctl/types.d.ts +74 -0
  78. package/dist/profiles/ctl/types.d.ts.map +1 -0
  79. package/dist/profiles/ctl/types.js +53 -0
  80. package/dist/profiles/ctl/types.js.map +1 -0
  81. package/dist/profiles/ctl/witness.d.ts +20 -0
  82. package/dist/profiles/ctl/witness.d.ts.map +1 -0
  83. package/dist/profiles/ctl/witness.js +149 -0
  84. package/dist/profiles/ctl/witness.js.map +1 -0
  85. package/dist/profiles/default-logic/entailment.d.ts +14 -0
  86. package/dist/profiles/default-logic/entailment.d.ts.map +1 -0
  87. package/dist/profiles/default-logic/entailment.js +36 -0
  88. package/dist/profiles/default-logic/entailment.js.map +1 -0
  89. package/dist/profiles/default-logic/extensions.d.ts +35 -0
  90. package/dist/profiles/default-logic/extensions.d.ts.map +1 -0
  91. package/dist/profiles/default-logic/extensions.js +276 -0
  92. package/dist/profiles/default-logic/extensions.js.map +1 -0
  93. package/dist/profiles/default-logic/index.d.ts +5 -0
  94. package/dist/profiles/default-logic/index.d.ts.map +1 -0
  95. package/dist/profiles/default-logic/index.js +33 -0
  96. package/dist/profiles/default-logic/index.js.map +1 -0
  97. package/dist/profiles/default-logic/types.d.ts +29 -0
  98. package/dist/profiles/default-logic/types.d.ts.map +1 -0
  99. package/dist/profiles/default-logic/types.js +25 -0
  100. package/dist/profiles/default-logic/types.js.map +1 -0
  101. package/dist/profiles/description-logic/index.d.ts +5 -0
  102. package/dist/profiles/description-logic/index.d.ts.map +1 -0
  103. package/dist/profiles/description-logic/index.js +39 -0
  104. package/dist/profiles/description-logic/index.js.map +1 -0
  105. package/dist/profiles/description-logic/nnf.d.ts +13 -0
  106. package/dist/profiles/description-logic/nnf.d.ts.map +1 -0
  107. package/dist/profiles/description-logic/nnf.js +123 -0
  108. package/dist/profiles/description-logic/nnf.js.map +1 -0
  109. package/dist/profiles/description-logic/tableau.d.ts +27 -0
  110. package/dist/profiles/description-logic/tableau.d.ts.map +1 -0
  111. package/dist/profiles/description-logic/tableau.js +491 -0
  112. package/dist/profiles/description-logic/tableau.js.map +1 -0
  113. package/dist/profiles/description-logic/types.d.ts +45 -0
  114. package/dist/profiles/description-logic/types.d.ts.map +1 -0
  115. package/dist/profiles/description-logic/types.js +71 -0
  116. package/dist/profiles/description-logic/types.js.map +1 -0
  117. package/dist/profiles/hybrid-logic/index.d.ts +5 -0
  118. package/dist/profiles/hybrid-logic/index.d.ts.map +1 -0
  119. package/dist/profiles/hybrid-logic/index.js +34 -0
  120. package/dist/profiles/hybrid-logic/index.js.map +1 -0
  121. package/dist/profiles/hybrid-logic/sat.d.ts +15 -0
  122. package/dist/profiles/hybrid-logic/sat.d.ts.map +1 -0
  123. package/dist/profiles/hybrid-logic/sat.js +142 -0
  124. package/dist/profiles/hybrid-logic/sat.js.map +1 -0
  125. package/dist/profiles/hybrid-logic/semantics.d.ts +20 -0
  126. package/dist/profiles/hybrid-logic/semantics.d.ts.map +1 -0
  127. package/dist/profiles/hybrid-logic/semantics.js +107 -0
  128. package/dist/profiles/hybrid-logic/semantics.js.map +1 -0
  129. package/dist/profiles/hybrid-logic/types.d.ts +78 -0
  130. package/dist/profiles/hybrid-logic/types.d.ts.map +1 -0
  131. package/dist/profiles/hybrid-logic/types.js +107 -0
  132. package/dist/profiles/hybrid-logic/types.js.map +1 -0
  133. package/dist/profiles/ltl-sat/index.d.ts +4 -0
  134. package/dist/profiles/ltl-sat/index.d.ts.map +1 -0
  135. package/dist/profiles/ltl-sat/index.js +40 -0
  136. package/dist/profiles/ltl-sat/index.js.map +1 -0
  137. package/dist/profiles/ltl-sat/sat.d.ts +8 -0
  138. package/dist/profiles/ltl-sat/sat.d.ts.map +1 -0
  139. package/dist/profiles/ltl-sat/sat.js +140 -0
  140. package/dist/profiles/ltl-sat/sat.js.map +1 -0
  141. package/dist/profiles/ltl-sat/tableau.d.ts +19 -0
  142. package/dist/profiles/ltl-sat/tableau.d.ts.map +1 -0
  143. package/dist/profiles/ltl-sat/tableau.js +358 -0
  144. package/dist/profiles/ltl-sat/tableau.js.map +1 -0
  145. package/dist/profiles/ltl-sat/types.d.ts +52 -0
  146. package/dist/profiles/ltl-sat/types.d.ts.map +1 -0
  147. package/dist/profiles/ltl-sat/types.js +101 -0
  148. package/dist/profiles/ltl-sat/types.js.map +1 -0
  149. package/dist/profiles/sequent-g3/index.d.ts +5 -0
  150. package/dist/profiles/sequent-g3/index.d.ts.map +1 -0
  151. package/dist/profiles/sequent-g3/index.js +23 -0
  152. package/dist/profiles/sequent-g3/index.js.map +1 -0
  153. package/dist/profiles/sequent-g3/latex.d.ts +7 -0
  154. package/dist/profiles/sequent-g3/latex.d.ts.map +1 -0
  155. package/dist/profiles/sequent-g3/latex.js +107 -0
  156. package/dist/profiles/sequent-g3/latex.js.map +1 -0
  157. package/dist/profiles/sequent-g3/normalize.d.ts +15 -0
  158. package/dist/profiles/sequent-g3/normalize.d.ts.map +1 -0
  159. package/dist/profiles/sequent-g3/normalize.js +121 -0
  160. package/dist/profiles/sequent-g3/normalize.js.map +1 -0
  161. package/dist/profiles/sequent-g3/prover.d.ts +16 -0
  162. package/dist/profiles/sequent-g3/prover.d.ts.map +1 -0
  163. package/dist/profiles/sequent-g3/prover.js +348 -0
  164. package/dist/profiles/sequent-g3/prover.js.map +1 -0
  165. package/dist/profiles/sequent-g3/types.d.ts +30 -0
  166. package/dist/profiles/sequent-g3/types.d.ts.map +1 -0
  167. package/dist/profiles/sequent-g3/types.js +16 -0
  168. package/dist/profiles/sequent-g3/types.js.map +1 -0
  169. package/dist/runtime/countermodel-min/index.d.ts +3 -0
  170. package/dist/runtime/countermodel-min/index.d.ts.map +1 -0
  171. package/dist/runtime/countermodel-min/index.js +9 -0
  172. package/dist/runtime/countermodel-min/index.js.map +1 -0
  173. package/dist/runtime/countermodel-min/minimize.d.ts +17 -0
  174. package/dist/runtime/countermodel-min/minimize.d.ts.map +1 -0
  175. package/dist/runtime/countermodel-min/minimize.js +0 -0
  176. package/dist/runtime/countermodel-min/minimize.js.map +1 -0
  177. package/dist/runtime/countermodel-min/types.d.ts +40 -0
  178. package/dist/runtime/countermodel-min/types.d.ts.map +1 -0
  179. package/dist/runtime/countermodel-min/types.js +6 -0
  180. package/dist/runtime/countermodel-min/types.js.map +1 -0
  181. package/dist/runtime/mus/extract.d.ts +34 -0
  182. package/dist/runtime/mus/extract.d.ts.map +1 -0
  183. package/dist/runtime/mus/extract.js +243 -0
  184. package/dist/runtime/mus/extract.js.map +1 -0
  185. package/dist/runtime/mus/index.d.ts +4 -0
  186. package/dist/runtime/mus/index.d.ts.map +1 -0
  187. package/dist/runtime/mus/index.js +12 -0
  188. package/dist/runtime/mus/index.js.map +1 -0
  189. package/dist/runtime/mus/quickxplain.d.ts +10 -0
  190. package/dist/runtime/mus/quickxplain.d.ts.map +1 -0
  191. package/dist/runtime/mus/quickxplain.js +100 -0
  192. package/dist/runtime/mus/quickxplain.js.map +1 -0
  193. package/dist/runtime/mus/types.d.ts +59 -0
  194. package/dist/runtime/mus/types.d.ts.map +1 -0
  195. package/dist/runtime/mus/types.js +20 -0
  196. package/dist/runtime/mus/types.js.map +1 -0
  197. package/dist/solver/cdcl-v2-incremental/index.d.ts +3 -0
  198. package/dist/solver/cdcl-v2-incremental/index.d.ts.map +1 -0
  199. package/dist/solver/cdcl-v2-incremental/index.js +16 -0
  200. package/dist/solver/cdcl-v2-incremental/index.js.map +1 -0
  201. package/dist/solver/cdcl-v2-incremental/solver.d.ts +83 -0
  202. package/dist/solver/cdcl-v2-incremental/solver.d.ts.map +1 -0
  203. package/dist/solver/cdcl-v2-incremental/solver.js +727 -0
  204. package/dist/solver/cdcl-v2-incremental/solver.js.map +1 -0
  205. package/dist/solver/cdcl-v2-incremental/types.d.ts +47 -0
  206. package/dist/solver/cdcl-v2-incremental/types.d.ts.map +1 -0
  207. package/dist/solver/cdcl-v2-incremental/types.js +13 -0
  208. package/dist/solver/cdcl-v2-incremental/types.js.map +1 -0
  209. package/dist/tests/belief-revision/agm.test.d.ts +2 -0
  210. package/dist/tests/belief-revision/agm.test.d.ts.map +1 -0
  211. package/dist/tests/belief-revision/agm.test.js +173 -0
  212. package/dist/tests/belief-revision/agm.test.js.map +1 -0
  213. package/dist/tests/countermodel-min/minimize.test.d.ts +2 -0
  214. package/dist/tests/countermodel-min/minimize.test.d.ts.map +1 -0
  215. package/dist/tests/countermodel-min/minimize.test.js +241 -0
  216. package/dist/tests/countermodel-min/minimize.test.js.map +1 -0
  217. package/dist/tests/ctl/check.test.d.ts +2 -0
  218. package/dist/tests/ctl/check.test.d.ts.map +1 -0
  219. package/dist/tests/ctl/check.test.js +337 -0
  220. package/dist/tests/ctl/check.test.js.map +1 -0
  221. package/dist/tests/curry-howard/infer.test.d.ts +2 -0
  222. package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
  223. package/dist/tests/curry-howard/infer.test.js +93 -0
  224. package/dist/tests/curry-howard/infer.test.js.map +1 -0
  225. package/dist/tests/curry-howard/proof.test.d.ts +2 -0
  226. package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
  227. package/dist/tests/curry-howard/proof.test.js +105 -0
  228. package/dist/tests/curry-howard/proof.test.js.map +1 -0
  229. package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
  230. package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
  231. package/dist/tests/curry-howard/reduce.test.js +109 -0
  232. package/dist/tests/curry-howard/reduce.test.js.map +1 -0
  233. package/dist/tests/default-logic/extensions.test.d.ts +2 -0
  234. package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
  235. package/dist/tests/default-logic/extensions.test.js +323 -0
  236. package/dist/tests/default-logic/extensions.test.js.map +1 -0
  237. package/dist/tests/description-logic/alc.test.d.ts +2 -0
  238. package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
  239. package/dist/tests/description-logic/alc.test.js +253 -0
  240. package/dist/tests/description-logic/alc.test.js.map +1 -0
  241. package/dist/tests/fol-prover-equality/prove.test.d.ts +2 -0
  242. package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
  243. package/dist/tests/fol-prover-equality/prove.test.js +179 -0
  244. package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
  245. package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
  246. package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
  247. package/dist/tests/hybrid-logic/semantics.test.js +169 -0
  248. package/dist/tests/hybrid-logic/semantics.test.js.map +1 -0
  249. package/dist/tests/ltl-sat/sat.test.d.ts +2 -0
  250. package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
  251. package/dist/tests/ltl-sat/sat.test.js +160 -0
  252. package/dist/tests/ltl-sat/sat.test.js.map +1 -0
  253. package/dist/tests/mus/extract.test.d.ts +2 -0
  254. package/dist/tests/mus/extract.test.d.ts.map +1 -0
  255. package/dist/tests/mus/extract.test.js +352 -0
  256. package/dist/tests/mus/extract.test.js.map +1 -0
  257. package/dist/tests/sat-v2-incremental/basic.test.d.ts +2 -0
  258. package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
  259. package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
  260. package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
  261. package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
  262. package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
  263. package/dist/tests/sequent-g3/prover.test.js +205 -0
  264. package/dist/tests/sequent-g3/prover.test.js.map +1 -0
  265. package/package.json +1 -1
@@ -0,0 +1,348 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // G3 — Backward proof search
4
+ // ============================================================
5
+ //
6
+ // Busqueda hacia atras (root-first). Las reglas de G3 son
7
+ // invertibles, por lo que NO hay que retroceder al elegir la
8
+ // proxima regla: cualquier formula compleja que aplique cierra
9
+ // el subgoal sii la version sin descomponer era cerrable.
10
+ //
11
+ // Terminacion: cada paso reemplaza una formula compleja por
12
+ // sub-formulas estrictamente menores. Para evitar contracciones
13
+ // redundantes en multisets, se dedupica por clave sintactica
14
+ // antes de aplicar la siguiente regla.
15
+ //
16
+ // Branching:
17
+ // - andR, orL, impL ramifican en 2 premisas (cada una debe cerrar).
18
+ // - andL, orR, impR, notL, notR son lineales (1 premisa).
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.proveSequent = proveSequent;
21
+ exports.proveFormula = proveFormula;
22
+ const normalize_1 = require("./normalize");
23
+ function slotsOf(list) {
24
+ return list.map((f) => ({ formula: f, key: (0, normalize_1.formulaKey)(f) }));
25
+ }
26
+ function dedupSlots(slots) {
27
+ const seen = new Set();
28
+ const out = [];
29
+ for (const slot of slots) {
30
+ if (!seen.has(slot.key)) {
31
+ seen.add(slot.key);
32
+ out.push(slot);
33
+ }
34
+ }
35
+ return out;
36
+ }
37
+ function isAtomic(f) {
38
+ // En G3, los atomos del calculo proposicional son atom/true/false.
39
+ // Tambien tratamos como opacas las formulas no-proposicionales
40
+ // (predicados, modales, ...) para que el prover no las descomponga.
41
+ switch (f.kind) {
42
+ case 'atom':
43
+ case 'true':
44
+ case 'false':
45
+ return true;
46
+ case 'not':
47
+ case 'and':
48
+ case 'or':
49
+ case 'implies':
50
+ return false;
51
+ default:
52
+ // Predicados/cuantificadores/etc: opacos.
53
+ return true;
54
+ }
55
+ }
56
+ function findAxiomMatch(left, right) {
57
+ const rightKeys = new Set(right.map((s) => s.key));
58
+ for (const slot of left) {
59
+ if (rightKeys.has(slot.key))
60
+ return slot.formula;
61
+ }
62
+ return undefined;
63
+ }
64
+ function findFalseLeft(left) {
65
+ return left.find((s) => s.formula.kind === 'false')?.formula;
66
+ }
67
+ function findTrueRight(right) {
68
+ return right.find((s) => s.formula.kind === 'true')?.formula;
69
+ }
70
+ /**
71
+ * Busca la primera formula no-atomica en `slots` y devuelve su indice y
72
+ * el slot. Si no hay ninguna, devuelve undefined.
73
+ */
74
+ function findFirstComplex(slots) {
75
+ for (let i = 0; i < slots.length; i++) {
76
+ const slot = slots[i];
77
+ if (slot && !isAtomic(slot.formula))
78
+ return { index: i, slot };
79
+ }
80
+ return undefined;
81
+ }
82
+ function removeAt(arr, idx) {
83
+ const copy = arr.slice();
84
+ copy.splice(idx, 1);
85
+ return copy;
86
+ }
87
+ function toSequent(left, right) {
88
+ return {
89
+ left: left.map((s) => s.formula),
90
+ right: right.map((s) => s.formula),
91
+ };
92
+ }
93
+ function exhausted(ctx) {
94
+ return ctx.used >= ctx.budget;
95
+ }
96
+ function prove(left, right, ctx) {
97
+ ctx.used++;
98
+ if (exhausted(ctx))
99
+ return undefined;
100
+ const dedupL = dedupSlots(left);
101
+ const dedupR = dedupSlots(right);
102
+ const goal = toSequent(dedupL, dedupR);
103
+ // 1. Axioma: misma formula a izquierda y derecha.
104
+ const axiomFormula = findAxiomMatch(dedupL, dedupR);
105
+ if (axiomFormula) {
106
+ return { goal, rule: 'axiom', principalFormula: axiomFormula, premises: [], closed: true };
107
+ }
108
+ // 2. ⊥ en la izquierda cierra inmediatamente.
109
+ const bottomLeft = findFalseLeft(dedupL);
110
+ if (bottomLeft) {
111
+ return { goal, rule: 'falseL', principalFormula: bottomLeft, premises: [], closed: true };
112
+ }
113
+ // 3. ⊤ en la derecha cierra inmediatamente.
114
+ const topRight = findTrueRight(dedupR);
115
+ if (topRight) {
116
+ return { goal, rule: 'trueR', principalFormula: topRight, premises: [], closed: true };
117
+ }
118
+ // 4. Reglas no-ramificantes primero (siempre que existan).
119
+ // Esto reduce el espacio antes de ramificar y produce arboles mas
120
+ // pequenos sin sacrificar completitud (las reglas son invertibles).
121
+ // notL: Γ, ¬A ⊢ Δ ↦ Γ ⊢ A, Δ
122
+ for (let i = 0; i < dedupL.length; i++) {
123
+ const slot = dedupL[i];
124
+ if (slot && slot.formula.kind === 'not' && slot.formula.args && slot.formula.args[0]) {
125
+ const inner = slot.formula.args[0];
126
+ const newL = removeAt(dedupL, i);
127
+ const newR = [{ formula: inner, key: (0, normalize_1.formulaKey)(inner) }, ...dedupR];
128
+ const sub = prove(newL, newR, ctx);
129
+ if (!sub)
130
+ return undefined;
131
+ return {
132
+ goal,
133
+ rule: 'notL',
134
+ principalFormula: slot.formula,
135
+ premises: [sub],
136
+ closed: sub.closed,
137
+ };
138
+ }
139
+ }
140
+ // notR: Γ ⊢ ¬A, Δ ↦ Γ, A ⊢ Δ
141
+ for (let i = 0; i < dedupR.length; i++) {
142
+ const slot = dedupR[i];
143
+ if (slot && slot.formula.kind === 'not' && slot.formula.args && slot.formula.args[0]) {
144
+ const inner = slot.formula.args[0];
145
+ const newR = removeAt(dedupR, i);
146
+ const newL = [{ formula: inner, key: (0, normalize_1.formulaKey)(inner) }, ...dedupL];
147
+ const sub = prove(newL, newR, ctx);
148
+ if (!sub)
149
+ return undefined;
150
+ return {
151
+ goal,
152
+ rule: 'notR',
153
+ principalFormula: slot.formula,
154
+ premises: [sub],
155
+ closed: sub.closed,
156
+ };
157
+ }
158
+ }
159
+ // andL: Γ, A∧B ⊢ Δ ↦ Γ, A, B ⊢ Δ
160
+ for (let i = 0; i < dedupL.length; i++) {
161
+ const slot = dedupL[i];
162
+ if (slot &&
163
+ slot.formula.kind === 'and' &&
164
+ slot.formula.args &&
165
+ slot.formula.args[0] &&
166
+ slot.formula.args[1]) {
167
+ const a = slot.formula.args[0];
168
+ const b = slot.formula.args[1];
169
+ const newL = [
170
+ { formula: a, key: (0, normalize_1.formulaKey)(a) },
171
+ { formula: b, key: (0, normalize_1.formulaKey)(b) },
172
+ ...removeAt(dedupL, i),
173
+ ];
174
+ const sub = prove(newL, dedupR, ctx);
175
+ if (!sub)
176
+ return undefined;
177
+ return {
178
+ goal,
179
+ rule: 'andL',
180
+ principalFormula: slot.formula,
181
+ premises: [sub],
182
+ closed: sub.closed,
183
+ };
184
+ }
185
+ }
186
+ // orR: Γ ⊢ A∨B, Δ ↦ Γ ⊢ A, B, Δ
187
+ for (let i = 0; i < dedupR.length; i++) {
188
+ const slot = dedupR[i];
189
+ if (slot &&
190
+ slot.formula.kind === 'or' &&
191
+ slot.formula.args &&
192
+ slot.formula.args[0] &&
193
+ slot.formula.args[1]) {
194
+ const a = slot.formula.args[0];
195
+ const b = slot.formula.args[1];
196
+ const newR = [
197
+ { formula: a, key: (0, normalize_1.formulaKey)(a) },
198
+ { formula: b, key: (0, normalize_1.formulaKey)(b) },
199
+ ...removeAt(dedupR, i),
200
+ ];
201
+ const sub = prove(dedupL, newR, ctx);
202
+ if (!sub)
203
+ return undefined;
204
+ return {
205
+ goal,
206
+ rule: 'orR',
207
+ principalFormula: slot.formula,
208
+ premises: [sub],
209
+ closed: sub.closed,
210
+ };
211
+ }
212
+ }
213
+ // impR: Γ ⊢ A→B, Δ ↦ Γ, A ⊢ B, Δ
214
+ for (let i = 0; i < dedupR.length; i++) {
215
+ const slot = dedupR[i];
216
+ if (slot &&
217
+ slot.formula.kind === 'implies' &&
218
+ slot.formula.args &&
219
+ slot.formula.args[0] &&
220
+ slot.formula.args[1]) {
221
+ const a = slot.formula.args[0];
222
+ const b = slot.formula.args[1];
223
+ const newL = [{ formula: a, key: (0, normalize_1.formulaKey)(a) }, ...dedupL];
224
+ const newR = [{ formula: b, key: (0, normalize_1.formulaKey)(b) }, ...removeAt(dedupR, i)];
225
+ const sub = prove(newL, newR, ctx);
226
+ if (!sub)
227
+ return undefined;
228
+ return {
229
+ goal,
230
+ rule: 'impR',
231
+ principalFormula: slot.formula,
232
+ premises: [sub],
233
+ closed: sub.closed,
234
+ };
235
+ }
236
+ }
237
+ // 5. Reglas ramificantes (despues de las lineales).
238
+ // andR: Γ ⊢ A∧B, Δ ↦ Γ ⊢ A, Δ ∧ Γ ⊢ B, Δ
239
+ for (let i = 0; i < dedupR.length; i++) {
240
+ const slot = dedupR[i];
241
+ if (slot &&
242
+ slot.formula.kind === 'and' &&
243
+ slot.formula.args &&
244
+ slot.formula.args[0] &&
245
+ slot.formula.args[1]) {
246
+ const a = slot.formula.args[0];
247
+ const b = slot.formula.args[1];
248
+ const restR = removeAt(dedupR, i);
249
+ const subA = prove(dedupL, [{ formula: a, key: (0, normalize_1.formulaKey)(a) }, ...restR], ctx);
250
+ if (!subA)
251
+ return undefined;
252
+ const subB = prove(dedupL, [{ formula: b, key: (0, normalize_1.formulaKey)(b) }, ...restR], ctx);
253
+ if (!subB)
254
+ return undefined;
255
+ return {
256
+ goal,
257
+ rule: 'andR',
258
+ principalFormula: slot.formula,
259
+ premises: [subA, subB],
260
+ closed: subA.closed && subB.closed,
261
+ };
262
+ }
263
+ }
264
+ // orL: Γ, A∨B ⊢ Δ ↦ Γ, A ⊢ Δ ∧ Γ, B ⊢ Δ
265
+ for (let i = 0; i < dedupL.length; i++) {
266
+ const slot = dedupL[i];
267
+ if (slot &&
268
+ slot.formula.kind === 'or' &&
269
+ slot.formula.args &&
270
+ slot.formula.args[0] &&
271
+ slot.formula.args[1]) {
272
+ const a = slot.formula.args[0];
273
+ const b = slot.formula.args[1];
274
+ const restL = removeAt(dedupL, i);
275
+ const subA = prove([{ formula: a, key: (0, normalize_1.formulaKey)(a) }, ...restL], dedupR, ctx);
276
+ if (!subA)
277
+ return undefined;
278
+ const subB = prove([{ formula: b, key: (0, normalize_1.formulaKey)(b) }, ...restL], dedupR, ctx);
279
+ if (!subB)
280
+ return undefined;
281
+ return {
282
+ goal,
283
+ rule: 'orL',
284
+ principalFormula: slot.formula,
285
+ premises: [subA, subB],
286
+ closed: subA.closed && subB.closed,
287
+ };
288
+ }
289
+ }
290
+ // impL: Γ, A→B ⊢ Δ ↦ Γ ⊢ A, Δ ∧ Γ, B ⊢ Δ
291
+ for (let i = 0; i < dedupL.length; i++) {
292
+ const slot = dedupL[i];
293
+ if (slot &&
294
+ slot.formula.kind === 'implies' &&
295
+ slot.formula.args &&
296
+ slot.formula.args[0] &&
297
+ slot.formula.args[1]) {
298
+ const a = slot.formula.args[0];
299
+ const b = slot.formula.args[1];
300
+ const restL = removeAt(dedupL, i);
301
+ const subA = prove(restL, [{ formula: a, key: (0, normalize_1.formulaKey)(a) }, ...dedupR], ctx);
302
+ if (!subA)
303
+ return undefined;
304
+ const subB = prove([{ formula: b, key: (0, normalize_1.formulaKey)(b) }, ...restL], dedupR, ctx);
305
+ if (!subB)
306
+ return undefined;
307
+ return {
308
+ goal,
309
+ rule: 'impL',
310
+ principalFormula: slot.formula,
311
+ premises: [subA, subB],
312
+ closed: subA.closed && subB.closed,
313
+ };
314
+ }
315
+ }
316
+ // 6. Si llegamos aca, no quedan formulas complejas que descomponer y
317
+ // no se encontro axioma: el secuente no es derivable (es una hoja
318
+ // abierta del arbol de busqueda).
319
+ const complexL = findFirstComplex(dedupL);
320
+ const complexR = findFirstComplex(dedupR);
321
+ if (!complexL && !complexR) {
322
+ return { goal, premises: [], closed: false };
323
+ }
324
+ // Si todavia queda complejidad pero nuestras ramas fueron consumidas,
325
+ // significa que el algoritmo no encontro forma de avanzar. No deberia
326
+ // ocurrir con la base normalizada; devolvemos undefined como senal.
327
+ return undefined;
328
+ }
329
+ /**
330
+ * Demuestra `seq` (Γ ⊢ Δ) por backward search en G3.
331
+ * Normaliza las formulas antes de comenzar.
332
+ */
333
+ function proveSequent(seq, options = {}) {
334
+ const normLeft = seq.left.map(normalize_1.normalizeForG3);
335
+ const normRight = seq.right.map(normalize_1.normalizeForG3);
336
+ const ctx = { budget: options.budget ?? 5_000, used: 0 };
337
+ const tree = prove(slotsOf(normLeft), slotsOf(normRight), ctx);
338
+ if (!tree)
339
+ return { provable: false };
340
+ return { provable: tree.closed, proof: tree };
341
+ }
342
+ /**
343
+ * Atajo: demuestra que `⊢ φ` (formula sin hipotesis) es valida en G3.
344
+ */
345
+ function proveFormula(formula, options = {}) {
346
+ return proveSequent({ left: [], right: [formula] }, options);
347
+ }
348
+ //# sourceMappingURL=prover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prover.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/prover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Formula } from '../../types';
2
+ /**
3
+ * Reglas del calculo G3 (proposicional clasico).
4
+ *
5
+ * - `axiom` : Γ, A ⊢ A, Δ (A atomico)
6
+ * - `andL` / `andR`: descomposicion de ∧ a izquierda / derecha
7
+ * - `orL` / `orR` : descomposicion de ∨
8
+ * - `impL` / `impR`: descomposicion de →
9
+ * - `notL` / `notR`: descomposicion de ¬
10
+ * - `falseL` : Γ, ⊥ ⊢ Δ es axioma
11
+ * - `trueR` : Γ ⊢ ⊤, Δ es axioma
12
+ */
13
+ export type SequentRule = 'axiom' | 'falseL' | 'trueR' | 'andL' | 'andR' | 'orL' | 'orR' | 'impL' | 'impR' | 'notL' | 'notR';
14
+ export interface Sequent {
15
+ left: Formula[];
16
+ right: Formula[];
17
+ }
18
+ export interface ProofTree {
19
+ goal: Sequent;
20
+ rule?: SequentRule;
21
+ /** Formula principal a la que se aplica la regla. */
22
+ principalFormula?: Formula;
23
+ premises: ProofTree[];
24
+ closed: boolean;
25
+ }
26
+ export interface ProveResult {
27
+ provable: boolean;
28
+ proof?: ProofTree;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/types.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,QAAQ,GACR,OAAO,GACP,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // G3 Sequent Calculus — Types
4
+ // ============================================================
5
+ //
6
+ // Calculo de secuentes G3 (Gentzen reformulado por Kleene) para
7
+ // logica proposicional clasica. Sus reglas son invertibles, las
8
+ // premisas son sub-formulas de la conclusion y el sistema admite
9
+ // eliminacion del corte (cut elimination), por lo que la busqueda
10
+ // hacia atras es completa y terminante.
11
+ //
12
+ // Convencion: un secuente Γ ⊢ Δ se representa con `left` y `right`
13
+ // como multisets (arrays con duplicados permitidos). El orden no
14
+ // importa logicamente pero se preserva para reproducibilidad.
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,8BAA8B;AAC9B,+DAA+D;AAC/D,EAAE;AACF,gEAAgE;AAChE,gEAAgE;AAChE,iEAAiE;AACjE,kEAAkE;AAClE,wCAAwC;AACxC,EAAE;AACF,mEAAmE;AACnE,iEAAiE;AACjE,8DAA8D"}
@@ -0,0 +1,3 @@
1
+ export { minimizeCountermodel } from './minimize';
2
+ export type { CountermodelMinOptions, CountermodelMinAlgorithm, CountermodelAssignment, MinimalCountermodel, } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Countermodel Minimization — Barrel
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.minimizeCountermodel = void 0;
7
+ var minimize_1 = require("./minimize");
8
+ Object.defineProperty(exports, "minimizeCountermodel", { enumerable: true, get: function () { return minimize_1.minimizeCountermodel; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;;;AAE/D,uCAAkD;AAAzC,gHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,17 @@
1
+ import type { Formula } from '../../types';
2
+ import type { CountermodelMinOptions, MinimalCountermodel } from './types';
3
+ /**
4
+ * Minimiza un contramodelo: devuelve el subconjunto más pequeño de
5
+ * asignaciones que aún hace `evaluator(asg) === false` para toda
6
+ * completación de las variables removidas.
7
+ *
8
+ * @param _formula AST de la fórmula (queda en la firma para
9
+ * compatibilidad y futura especialización; el motor
10
+ * trata el evaluator como caja negra).
11
+ * @param fullCounter Contramodelo total: asignación que falsifica F.
12
+ * @param evaluator Función que devuelve `true` si la fórmula es válida
13
+ * bajo la asignación total dada.
14
+ * @param opts Algoritmo y maxSteps.
15
+ */
16
+ export declare function minimizeCountermodel(_formula: Formula, fullCounter: Record<string, boolean>, evaluator: (asg: Record<string, boolean>) => boolean, opts?: CountermodelMinOptions): MinimalCountermodel;
17
+ //# sourceMappingURL=minimize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimize.d.ts","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/minimize.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAWjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,EACpD,IAAI,GAAE,sBAA2B,GAChC,mBAAmB,CAwDrB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimize.js","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/minimize.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,oEAAoE;AACpE,qCAAqC;AACrC,EAAE;AACF,gCAAgC;AAChC,oEAAoE;AACpE,qEAAqE;AACrE,uCAAuC;AACvC,EAAE;AACF,gBAAgB;AAChB,mEAAmE;AACnE,4DAA4D;AAC5D,qEAAqE;AACrE,kEAAkE;AAClE,qEAAqE;AACrE,wDAAwD;AACxD,EAAE;AACF,cAAc;AACd,qEAAqE;AACrE,6DAA6D;AAC7D,oEAAoE;AACpE,sEAAsE;AACtE,gEAAgE;AAChE,EAAE;AACF,uEAAuE;AACvE,wBAAwB;AACxB,+DAA+D;;AA+B/D,oDA6DC;AAnFD,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAClC;;;;;GAKG;AACH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAClC,QAAiB,EACjB,WAAoC,EACpC,SAAoD,EACpD,OAA+B,EAAE;IAEjC,MAAM,SAAS,GAA6B,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAmB;QAC5B,WAAW;QACX,OAAO;QACP,SAAS;QACT,QAAQ;QACR,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,IAAI,GAAG,EAAE;KACjB,CAAC;IAEF,iEAAiE;IACjE,iDAAiD;IACjD,KAAK,CAAC,UAAU,EAAE,CAAC;IACnB,IAAI,SAAS,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC;YAChD,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;IAED,IAAI,IAAc,CAAC;IACnB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM;QACR,KAAK,eAAe;YAClB,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM;QACR,KAAK,aAAa;YAChB,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM;QACR,sBAAsB;QACtB;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,iEAAiE;IACjE,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhE,OAAO;QACL,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC;QAC7C,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,OAAO;QACP,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC;AAeD;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAqB,EAAE,IAAc;IACzD,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAErD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,IAAI,cAAc;QAC9B,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;QAC7C,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAEjD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAqB,EAAE,IAAc,EAAE,OAAiB;IAC/E,MAAM,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;IAClC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrD,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAqB,EAAE,IAAc,EAAE,OAAiB;IAC9E,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACrD,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gEAAgE;AAEhE;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,KAAqB,EAAE,IAAc;IAC/D,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpD,OAAO,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;gBAAE,MAAM;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,IAAI,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;gBACnC,IAAI,GAAG,SAAS,CAAC;gBACjB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAqB,EAAE,IAAc;IACjE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,SAAS,GAAG,CAAC,OAAiB,EAAY,EAAE;QAChD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC;QAE9E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAqB,EAAE,MAAgB,EAAE,KAAe;IAClF,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IAE5E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,KAAqB,EAAE,IAAc;IAC/D,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,kBAAkB;QAClB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;gBAAE,MAAM;YAC9C,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC/B,CAAC,GAAG,KAAK,CAAC;gBACV,CAAC,GAAG,CAAC,CAAC;gBACN,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,sBAAsB;YACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;oBAAE,MAAM;gBAC9C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACtC,IAAI,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;oBACpC,CAAC,GAAG,UAAU,CAAC;oBACf,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;gBAAE,MAAM;YACzB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,gEAAgE;AAEhE,0DAA0D;AAC1D,SAAS,SAAS,CAAC,GAAa,EAAE,CAAS;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CACpB,WAAoC,EACpC,IAAc;IAEd,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QACpC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Algoritmo de minimización a usar.
3
+ *
4
+ * - `one-at-a-time`: O(n) pruebas. Por cada variable intenta removerla;
5
+ * si la fórmula sigue siendo falsada (para ambas completaciones de la
6
+ * variable removida), la elimina permanentemente.
7
+ * - `binary-search`: O(n log n). Divide el conjunto de assignments en
8
+ * mitades y trata de descartar la mitad completa de una vez.
9
+ * - `delta-debug`: O(n log n) en el peor caso, mucho más rápido en la
10
+ * práctica. Granularidad creciente al estilo Zeller 1999. Empieza
11
+ * removiendo bloques grandes y se reduce a granularidad 1.
12
+ */
13
+ export type CountermodelMinAlgorithm = 'delta-debug' | 'binary-search' | 'one-at-a-time';
14
+ export interface CountermodelMinOptions {
15
+ /** Algoritmo a utilizar. Default: `delta-debug`. */
16
+ algorithm?: CountermodelMinAlgorithm;
17
+ /** Tope superior de iteraciones (llamadas a evaluator). Default: 10_000. */
18
+ maxSteps?: number;
19
+ }
20
+ /**
21
+ * Asignación final: para cada variable que queda en el contramodelo
22
+ * mínimo, guardamos su valor.
23
+ *
24
+ * Para perfiles clásicos los valores son `boolean`. Se permite también
25
+ * `'T'`, `'F'`, `'both'`, `'neither'` para perfiles paraconsistentes
26
+ * (Belnap) — la API queda abierta a futuro aunque el algoritmo actual
27
+ * sólo opera sobre `boolean`.
28
+ */
29
+ export type CountermodelAssignment = Record<string, boolean | 'T' | 'F' | 'both' | 'neither'>;
30
+ export interface MinimalCountermodel {
31
+ /** Asignación mínima (solo variables relevantes). */
32
+ assignments: CountermodelAssignment;
33
+ /** Cantidad de variables en `assignments`. */
34
+ size: number;
35
+ /** Variables que el algoritmo eliminó (ordenadas alfabéticamente). */
36
+ removed: string[];
37
+ /** Iteraciones (llamadas a `evaluator`) consumidas. */
38
+ iterations: number;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;AAEzF,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9F,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,WAAW,EAAE,sBAAsB,CAAC;IACpC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Countermodel Minimization — Tipos públicos
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D"}
@@ -0,0 +1,34 @@
1
+ import type { MUSOptions, MUSResult, SATOracle, AssumptionSolver } from './types';
2
+ /**
3
+ * Extrae un MUS (Minimal Unsatisfiable Subset) del conjunto unsat
4
+ * `clauses` usando el oráculo SAT provisto.
5
+ *
6
+ * Convenciones:
7
+ * - Las cláusulas son arrays de literales enteros estilo DIMACS
8
+ * (positivo / negativo). El motor no inspecciona la semántica;
9
+ * todo lo delega al `satOracle`.
10
+ * - El conjunto retornado en `mus` son índices sobre `clauses`.
11
+ * - Si `clauses` ES satisfacible, devolvemos `mus = []` (no hay
12
+ * MUS posible).
13
+ * - Determinismo: orden numérico ascendente en todos los recorridos.
14
+ */
15
+ export declare function extractMUS(clauses: number[][], satOracle: SATOracle, opts?: MUSOptions): MUSResult;
16
+ /**
17
+ * Variante para SAT solvers incrementales con assumptions.
18
+ *
19
+ * El patrón típico es:
20
+ * - Por cada cláusula original `C_i`, añadir un selector literal
21
+ * `s_i` y convertirla en `C_i ∨ ¬s_i` (la cláusula está "off"
22
+ * cuando `s_i = false`).
23
+ * - Para "activar" un subset, pasar las correspondientes `s_i` como
24
+ * assumptions positivas.
25
+ * - Cuando el problema es unsat, el solver devuelve
26
+ * `failedAssumptions ⊆ assumptions` — el unsat core proyectado
27
+ * sobre los selectors.
28
+ *
29
+ * Esta función toma el `failedAssumptions` como punto de partida y
30
+ * lo minimiza con un pase deletion-based usando el mismo solver para
31
+ * garantizar minimalidad por inclusión.
32
+ */
33
+ export declare function extractMUSWithSelectors(clauses: number[][], selectors: number[], solver: AssumptionSolver, opts?: MUSOptions): MUSResult;
34
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../src/runtime/mus/extract.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAgB,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAuHhG;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EAAE,EAAE,EACnB,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE,UAAe,GACpB,SAAS,CA8CX;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EAAE,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,UAAe,GACpB,SAAS,CAsDX"}