@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 @@
1
+ {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../../src/solver/cdcl-v2-incremental/solver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ export interface IncrementalSolveResult {
2
+ /** True si las cláusulas + assumptions son satisfacibles. */
3
+ sat: boolean;
4
+ /** Modelo (sólo si sat). varId 1-indexado → polaridad asignada. */
5
+ model?: Map<number, boolean>;
6
+ /** Núcleo UNSAT de assumptions (sólo si !sat y había assumptions). */
7
+ unsatCore?: number[];
8
+ /** Subconjunto de assumptions que provocó el conflicto. Igual a unsatCore en v1. */
9
+ failedAssumptions?: number[];
10
+ /** Estadísticas acumuladas durante esta llamada. */
11
+ stats: IncrementalStats;
12
+ }
13
+ export interface IncrementalStats {
14
+ /** Decisiones tomadas en esta llamada. */
15
+ decisions: number;
16
+ /** Conflictos resueltos en esta llamada. */
17
+ conflicts: number;
18
+ /** Cláusulas aprendidas añadidas en esta llamada. */
19
+ learned: number;
20
+ /** Propagaciones aplicadas en esta llamada. */
21
+ propagations: number;
22
+ /** Restarts ejecutados en esta llamada. */
23
+ restarts: number;
24
+ }
25
+ export interface SolverSummary {
26
+ /** Decisiones acumuladas en todas las queries. */
27
+ decisions: number;
28
+ /** Conflictos acumulados. */
29
+ conflicts: number;
30
+ /** Cláusulas aprendidas vivas (no descartadas por pop ni reducción). */
31
+ learned: number;
32
+ /** Variables actualmente declaradas. */
33
+ vars: number;
34
+ /** Cláusulas vivas (originales + aprendidas, no eliminadas). */
35
+ clauses: number;
36
+ }
37
+ export interface IncrementalSolverOptions {
38
+ /** Timeout total por llamada a solve(). Default 30s. */
39
+ timeoutMs?: number;
40
+ /** Decay multiplicativo VSIDS (entre 0 y 1). Default 0.95. */
41
+ vsidsDecay?: number;
42
+ /** Multiplicador secuencia Luby para restarts. Default 100. */
43
+ lubyBase?: number;
44
+ /** Fase inicial sugerida (0 = falso, 1 = verdadero). Default 0. */
45
+ initialPhase?: 0 | 1;
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/solver/cdcl-v2-incremental/types.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,mEAAmE;IACnE,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,oDAAoD;IACpD,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACtB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // Tipos públicos del solver CDCL incremental.
3
+ //
4
+ // La diferencia conceptual con `solveCDCLv2` (one-shot) es que aquí el solver
5
+ // es un objeto vivo: se le agregan cláusulas, se llama `solve()` varias veces,
6
+ // y mantiene su pool de cláusulas aprendidas + heurísticas entre llamadas.
7
+ //
8
+ // Los `assumptions` son literales que se asumen `true` para una única query.
9
+ // Si la query es UNSAT bajo esas asumptions, se devuelve el subconjunto
10
+ // `failedAssumptions` que causó el conflicto (subset minimal del prefix
11
+ // derivado en O(|trail|)). Eso es la base de MUS extraction y debugging.
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/solver/cdcl-v2-incremental/types.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,EAAE;AACF,6EAA6E;AAC7E,wEAAwE;AACxE,wEAAwE;AACxE,yEAAyE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agm.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agm.test.d.ts","sourceRoot":"","sources":["../../../src/tests/belief-revision/agm.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const belief_revision_1 = require("../../belief-revision");
5
+ // ---------------------------------------------------------------------------
6
+ // Expansion
7
+ // ---------------------------------------------------------------------------
8
+ (0, vitest_1.describe)('expand (K + φ)', () => {
9
+ (0, vitest_1.it)('añade una fórmula nueva al belief set', () => {
10
+ const K = (0, belief_revision_1.newBeliefSet)(['p']);
11
+ const expanded = (0, belief_revision_1.expand)(K, 'q');
12
+ (0, vitest_1.expect)((0, belief_revision_1.beliefSetToArray)(expanded)).toEqual(['p', 'q']);
13
+ });
14
+ (0, vitest_1.it)('no duplica si la fórmula ya está', () => {
15
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q']);
16
+ const expanded = (0, belief_revision_1.expand)(K, 'p');
17
+ (0, vitest_1.expect)((0, belief_revision_1.beliefSetToArray)(expanded)).toEqual(['p', 'q']);
18
+ });
19
+ (0, vitest_1.it)('no muta el belief set original', () => {
20
+ const K = (0, belief_revision_1.newBeliefSet)(['p']);
21
+ (0, belief_revision_1.expand)(K, 'q');
22
+ (0, vitest_1.expect)((0, belief_revision_1.beliefSetToArray)(K)).toEqual(['p']);
23
+ });
24
+ (0, vitest_1.it)('puede generar inconsistencia (expansion no se compromete con consistencia)', () => {
25
+ const K = (0, belief_revision_1.newBeliefSet)(['p']);
26
+ const inconsistent = (0, belief_revision_1.expand)(K, '!p');
27
+ (0, vitest_1.expect)((0, belief_revision_1.isConsistent)(inconsistent)).toBe(false);
28
+ });
29
+ });
30
+ // ---------------------------------------------------------------------------
31
+ // Contraction
32
+ // ---------------------------------------------------------------------------
33
+ (0, vitest_1.describe)('contract (K - φ)', () => {
34
+ (0, vitest_1.it)('al contraer por p, K ya no implica p', () => {
35
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q']);
36
+ const contracted = (0, belief_revision_1.contract)(K, 'p');
37
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(contracted, 'p')).toBe(false);
38
+ });
39
+ (0, vitest_1.it)('al contraer por p, sigue implicando q (preserva lo no relacionado)', () => {
40
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q']);
41
+ const contracted = (0, belief_revision_1.contract)(K, 'p');
42
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(contracted, 'q')).toBe(true);
43
+ });
44
+ (0, vitest_1.it)('si K no implica φ, K - φ = K (vacuidad)', () => {
45
+ const K = (0, belief_revision_1.newBeliefSet)(['p']);
46
+ const contracted = (0, belief_revision_1.contract)(K, 'q');
47
+ (0, vitest_1.expect)((0, belief_revision_1.beliefSetToArray)(contracted)).toEqual((0, belief_revision_1.beliefSetToArray)(K));
48
+ });
49
+ (0, vitest_1.it)('si φ es tautología, K - φ = K (postulado K-5 vacuidad)', () => {
50
+ const K = (0, belief_revision_1.newBeliefSet)(['p']);
51
+ const contracted = (0, belief_revision_1.contract)(K, 'p | !p');
52
+ (0, vitest_1.expect)((0, belief_revision_1.beliefSetToArray)(contracted)).toEqual((0, belief_revision_1.beliefSetToArray)(K));
53
+ });
54
+ (0, vitest_1.it)('con entrenchment, remueve la fórmula MENOS arraigada', () => {
55
+ // K implica p de dos formas: directamente "p", y "q -> p" + "q".
56
+ // Si contraemos por p, hay que romper ambas vías.
57
+ // Con entrenchment alto en "q -> p" y bajo en "p" y "q", debería preferir
58
+ // quitar "p" y "q" antes que "q -> p".
59
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q', 'q -> p']);
60
+ const ordering = new Map([
61
+ ['p', 1],
62
+ ['q', 1],
63
+ ['q -> p', 10],
64
+ ]);
65
+ const contracted = (0, belief_revision_1.contract)(K, 'p', ordering);
66
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(contracted, 'p')).toBe(false);
67
+ // q -> p sobrevive: es la más arraigada.
68
+ (0, vitest_1.expect)(contracted.formulas.has('q -> p')).toBe(true);
69
+ });
70
+ });
71
+ // ---------------------------------------------------------------------------
72
+ // Revision (identidad de Levi)
73
+ // ---------------------------------------------------------------------------
74
+ (0, vitest_1.describe)('revise (K * φ)', () => {
75
+ (0, vitest_1.it)('K * φ contiene φ (K2 success)', () => {
76
+ const K = (0, belief_revision_1.newBeliefSet)(['p']);
77
+ const revised = (0, belief_revision_1.revise)(K, '!p');
78
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(revised, '!p')).toBe(true);
79
+ (0, vitest_1.expect)((0, belief_revision_1.verifySuccess)(revised, '!p')).toBe(true);
80
+ });
81
+ (0, vitest_1.it)('K * ¬p sobre K={p} produce un set consistente sin p', () => {
82
+ const K = (0, belief_revision_1.newBeliefSet)(['p']);
83
+ const revised = (0, belief_revision_1.revise)(K, '!p');
84
+ (0, vitest_1.expect)((0, belief_revision_1.isConsistent)(revised)).toBe(true);
85
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(revised, 'p')).toBe(false);
86
+ });
87
+ (0, vitest_1.it)('revisar por p en {p | q, !p} produce {p, ...} sin !p', () => {
88
+ const K = (0, belief_revision_1.newBeliefSet)(['p | q', '!p']);
89
+ const revised = (0, belief_revision_1.revise)(K, 'p');
90
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(revised, 'p')).toBe(true);
91
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(revised, '!p')).toBe(false);
92
+ (0, vitest_1.expect)((0, belief_revision_1.isConsistent)(revised)).toBe(true);
93
+ });
94
+ (0, vitest_1.it)('revisar por una fórmula ya implicada deja K extendido pero consistente', () => {
95
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q']);
96
+ const revised = (0, belief_revision_1.revise)(K, 'p');
97
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(revised, 'p')).toBe(true);
98
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(revised, 'q')).toBe(true);
99
+ (0, vitest_1.expect)((0, belief_revision_1.isConsistent)(revised)).toBe(true);
100
+ });
101
+ });
102
+ // ---------------------------------------------------------------------------
103
+ // Postulados AGM
104
+ // ---------------------------------------------------------------------------
105
+ (0, vitest_1.describe)('AGM postulates', () => {
106
+ (0, vitest_1.it)('K2 (éxito): φ siempre derivable después de revise(K, φ)', () => {
107
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q']);
108
+ const revised = (0, belief_revision_1.revise)(K, '!p');
109
+ (0, vitest_1.expect)((0, belief_revision_1.verifySuccess)(revised, '!p')).toBe(true);
110
+ });
111
+ (0, vitest_1.it)('K3 (inclusión): K * φ ⊆ Cn(K + φ) cuando K + φ es consistente', () => {
112
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q']);
113
+ // K + p es consistente (p ya está), así que K3 aplica.
114
+ const revised = (0, belief_revision_1.revise)(K, 'p');
115
+ (0, vitest_1.expect)((0, belief_revision_1.verifyInclusion)(revised, K, 'p')).toBe(true);
116
+ });
117
+ (0, vitest_1.it)('verifyClosure: cada fórmula de K es derivable desde K (autocontención)', () => {
118
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'q', 'p -> r']);
119
+ (0, vitest_1.expect)((0, belief_revision_1.verifyClosure)(K)).toBe(true);
120
+ });
121
+ });
122
+ // ---------------------------------------------------------------------------
123
+ // Helpers y consistencia
124
+ // ---------------------------------------------------------------------------
125
+ (0, vitest_1.describe)('isConsistent / entails', () => {
126
+ (0, vitest_1.it)('belief set vacío es consistente', () => {
127
+ const K = (0, belief_revision_1.newBeliefSet)([]);
128
+ (0, vitest_1.expect)((0, belief_revision_1.isConsistent)(K)).toBe(true);
129
+ });
130
+ (0, vitest_1.it)('{p, !p} es inconsistente', () => {
131
+ const K = (0, belief_revision_1.newBeliefSet)(['p', '!p']);
132
+ (0, vitest_1.expect)((0, belief_revision_1.isConsistent)(K)).toBe(false);
133
+ });
134
+ (0, vitest_1.it)('modus ponens: {p, p -> q} ⊢ q', () => {
135
+ const K = (0, belief_revision_1.newBeliefSet)(['p', 'p -> q']);
136
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(K, 'q')).toBe(true);
137
+ });
138
+ (0, vitest_1.it)('belief set vacío implica tautologías', () => {
139
+ const K = (0, belief_revision_1.newBeliefSet)([]);
140
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(K, 'p | !p')).toBe(true);
141
+ });
142
+ (0, vitest_1.it)('belief set vacío NO implica fórmulas contingentes', () => {
143
+ const K = (0, belief_revision_1.newBeliefSet)([]);
144
+ (0, vitest_1.expect)((0, belief_revision_1.entails)(K, 'p')).toBe(false);
145
+ });
146
+ });
147
+ // ---------------------------------------------------------------------------
148
+ // Canonicalización
149
+ // ---------------------------------------------------------------------------
150
+ (0, vitest_1.describe)('canonicalize', () => {
151
+ (0, vitest_1.it)('produce orden estable independiente del orden de inserción', () => {
152
+ const a = (0, belief_revision_1.newBeliefSet)(['p', 'q -> r', 'q']);
153
+ const b = (0, belief_revision_1.newBeliefSet)(['q -> r', 'p', 'q']);
154
+ (0, vitest_1.expect)((0, belief_revision_1.canonicalize)(a)).toBe((0, belief_revision_1.canonicalize)(b));
155
+ });
156
+ });
157
+ // ---------------------------------------------------------------------------
158
+ // Parser edge cases
159
+ // ---------------------------------------------------------------------------
160
+ (0, vitest_1.describe)('parser de fórmulas (aliases unicode/ascii)', () => {
161
+ (0, vitest_1.it)('acepta unicode (∧, ∨, ¬, →, ↔)', () => {
162
+ const K = (0, belief_revision_1.newBeliefSet)(['p ∧ q', '¬r', 'p → r', 'a ↔ b']);
163
+ (0, vitest_1.expect)(K.formulas.size).toBe(4);
164
+ });
165
+ (0, vitest_1.it)('acepta ascii (& | ! -> <->)', () => {
166
+ const K = (0, belief_revision_1.newBeliefSet)(['p & q', '!r', 'p -> r', 'a <-> b']);
167
+ (0, vitest_1.expect)(K.formulas.size).toBe(4);
168
+ });
169
+ (0, vitest_1.it)('lanza error para sintaxis inválida', () => {
170
+ (0, vitest_1.expect)(() => (0, belief_revision_1.newBeliefSet)(['p & &'])).toThrow();
171
+ });
172
+ });
173
+ //# sourceMappingURL=agm.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agm.test.js","sourceRoot":"","sources":["../../../src/tests/belief-revision/agm.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=minimize.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimize.test.d.ts","sourceRoot":"","sources":["../../../src/tests/countermodel-min/minimize.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Countermodel Minimization — Tests
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const countermodel_min_1 = require("../../runtime/countermodel-min");
8
+ // ── Helpers de fórmula ────────────────────────────────────────
9
+ function atom(name) {
10
+ return { kind: 'atom', name };
11
+ }
12
+ function and(a, b) {
13
+ return { kind: 'and', args: [a, b] };
14
+ }
15
+ function or(a, b) {
16
+ return { kind: 'or', args: [a, b] };
17
+ }
18
+ function not(f) {
19
+ return { kind: 'not', args: [f] };
20
+ }
21
+ // ── Evaluador propositional clásico ──────────────────────────
22
+ /**
23
+ * Evalúa una fórmula clásica bajo una asignación total. Cualquier
24
+ * variable faltante se trata como `false` (no debería pasar en los
25
+ * tests bien formados).
26
+ */
27
+ function evalClassical(f, asg) {
28
+ switch (f.kind) {
29
+ case 'true':
30
+ return true;
31
+ case 'false':
32
+ return false;
33
+ case 'atom':
34
+ return Boolean(asg[f.name]);
35
+ case 'not':
36
+ return !evalClassical(f.args[0], asg);
37
+ case 'and':
38
+ return evalClassical(f.args[0], asg) && evalClassical(f.args[1], asg);
39
+ case 'or':
40
+ return evalClassical(f.args[0], asg) || evalClassical(f.args[1], asg);
41
+ case 'implies':
42
+ return !evalClassical(f.args[0], asg) || evalClassical(f.args[1], asg);
43
+ case 'biconditional':
44
+ return evalClassical(f.args[0], asg) === evalClassical(f.args[1], asg);
45
+ default:
46
+ throw new Error(`evalClassical: kind no soportado: ${f.kind}`);
47
+ }
48
+ }
49
+ /** Wrapper que cumple la firma esperada por `minimizeCountermodel`. */
50
+ function evaluator(f) {
51
+ return (asg) => evalClassical(f, asg);
52
+ }
53
+ const ALGORITHMS = ['one-at-a-time', 'binary-search', 'delta-debug'];
54
+ // ── Caso 1: P ∧ Q falsada con {P:T, Q:F, R:T, S:F} ───────────
55
+ (0, vitest_1.describe)('minimizeCountermodel — P ∧ Q', () => {
56
+ const formula = and(atom('P'), atom('Q'));
57
+ const fullCounter = { P: true, Q: false, R: true, S: false };
58
+ vitest_1.it.each(ALGORITHMS)('reduce a {Q:F} con %s', (algorithm) => {
59
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
60
+ algorithm,
61
+ });
62
+ (0, vitest_1.expect)(min.size).toBe(1);
63
+ (0, vitest_1.expect)(min.assignments).toEqual({ Q: false });
64
+ (0, vitest_1.expect)(min.removed.sort()).toEqual(['P', 'R', 'S']);
65
+ });
66
+ });
67
+ // ── Caso 2: ¬P falsada con {P:T, Q:T, R:F} ───────────────────
68
+ (0, vitest_1.describe)('minimizeCountermodel — ¬P', () => {
69
+ const formula = not(atom('P'));
70
+ const fullCounter = { P: true, Q: true, R: false };
71
+ vitest_1.it.each(ALGORITHMS)('reduce a {P:T} con %s', (algorithm) => {
72
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
73
+ algorithm,
74
+ });
75
+ (0, vitest_1.expect)(min.size).toBe(1);
76
+ (0, vitest_1.expect)(min.assignments).toEqual({ P: true });
77
+ (0, vitest_1.expect)(min.removed.sort()).toEqual(['Q', 'R']);
78
+ });
79
+ });
80
+ // ── Caso 3: P ∨ Q falsada con {P:F, Q:F, R:F, S:T} ───────────
81
+ (0, vitest_1.describe)('minimizeCountermodel — P ∨ Q', () => {
82
+ const formula = or(atom('P'), atom('Q'));
83
+ const fullCounter = { P: false, Q: false, R: false, S: true };
84
+ vitest_1.it.each(ALGORITHMS)('reduce a {P:F, Q:F} con %s', (algorithm) => {
85
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
86
+ algorithm,
87
+ });
88
+ (0, vitest_1.expect)(min.size).toBe(2);
89
+ (0, vitest_1.expect)(min.assignments).toEqual({ P: false, Q: false });
90
+ (0, vitest_1.expect)(min.removed.sort()).toEqual(['R', 'S']);
91
+ });
92
+ });
93
+ // ── Caso 4: fórmula con 50 vars, sólo 5 son necesarias ───────
94
+ (0, vitest_1.describe)('minimizeCountermodel — escalabilidad (50 vars, 5 necesarias)', () => {
95
+ // Fórmula: v00 ∨ v01 ∨ v02 ∨ v03 ∨ v04.
96
+ // Para falsificarla TODAS las 5 disyuntas deben ser false.
97
+ // Asignamos las 50 variables a false → falsifica.
98
+ // Minimal counter-witness debería ser exactamente {v00..v04 a F}.
99
+ const target = or(or(or(atom('v00'), atom('v01')), or(atom('v02'), atom('v03'))), atom('v04'));
100
+ const fullCounter = {};
101
+ for (let i = 0; i < 50; i++) {
102
+ const key = `v${i.toString().padStart(2, '0')}`;
103
+ fullCounter[key] = false;
104
+ }
105
+ vitest_1.it.each(ALGORITHMS)('reduce a las 5 disyuntas (%s)', (algorithm) => {
106
+ const min = (0, countermodel_min_1.minimizeCountermodel)(target, fullCounter, evaluator(target), {
107
+ algorithm,
108
+ });
109
+ (0, vitest_1.expect)(min.size).toBe(5);
110
+ (0, vitest_1.expect)(min.assignments).toEqual({
111
+ v00: false,
112
+ v01: false,
113
+ v02: false,
114
+ v03: false,
115
+ v04: false,
116
+ });
117
+ (0, vitest_1.expect)(min.removed.length).toBe(45);
118
+ });
119
+ });
120
+ // ── Caso 5: determinismo (mismo input ⇒ mismo output) ────────
121
+ (0, vitest_1.describe)('minimizeCountermodel — determinismo', () => {
122
+ const formula = and(or(atom('A'), atom('B')), not(atom('C')));
123
+ // Asignación que falsifica: A=F, B=F (cualquiera de las dos cláusulas
124
+ // ya está rota). C es irrelevante.
125
+ const fullCounter = { A: false, B: false, C: true, D: true, E: false };
126
+ vitest_1.it.each(ALGORITHMS)('mismo input produce mismo output con %s', (algorithm) => {
127
+ const run1 = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
128
+ algorithm,
129
+ });
130
+ const run2 = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
131
+ algorithm,
132
+ });
133
+ const run3 = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
134
+ algorithm,
135
+ });
136
+ (0, vitest_1.expect)(run1.assignments).toEqual(run2.assignments);
137
+ (0, vitest_1.expect)(run2.assignments).toEqual(run3.assignments);
138
+ (0, vitest_1.expect)(run1.removed).toEqual(run2.removed);
139
+ (0, vitest_1.expect)(run1.size).toBe(run2.size);
140
+ });
141
+ });
142
+ // ── Caso 6: contramodelo ya mínimo no se modifica ────────────
143
+ (0, vitest_1.describe)('minimizeCountermodel — ya mínimo', () => {
144
+ const formula = atom('P');
145
+ // P=F falsifica la fórmula. Es ya mínimo.
146
+ const fullCounter = { P: false };
147
+ vitest_1.it.each(ALGORITHMS)('respeta contramodelo trivial con %s', (algorithm) => {
148
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
149
+ algorithm,
150
+ });
151
+ (0, vitest_1.expect)(min.size).toBe(1);
152
+ (0, vitest_1.expect)(min.assignments).toEqual({ P: false });
153
+ (0, vitest_1.expect)(min.removed).toEqual([]);
154
+ });
155
+ });
156
+ // ── Caso 7: no es contramodelo real (sanity check) ───────────
157
+ (0, vitest_1.describe)('minimizeCountermodel — input no falsifica', () => {
158
+ (0, vitest_1.it)('devuelve el contramodelo intacto si el input NO falsifica', () => {
159
+ const formula = or(atom('P'), atom('Q'));
160
+ // P=T,Q=F evalúa a true → la fórmula es válida bajo esta asig, NO
161
+ // es contramodelo. El minimizador debe devolverlo sin tocar.
162
+ const fullCounter = { P: true, Q: false, R: true };
163
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula));
164
+ (0, vitest_1.expect)(min.size).toBe(3);
165
+ (0, vitest_1.expect)(min.assignments).toEqual({ P: true, Q: false, R: true });
166
+ (0, vitest_1.expect)(min.removed).toEqual([]);
167
+ });
168
+ });
169
+ // ── Caso 8: maxSteps acota iteraciones ────────────────────────
170
+ (0, vitest_1.describe)('minimizeCountermodel — maxSteps', () => {
171
+ (0, vitest_1.it)('respeta maxSteps y devuelve algo razonable', () => {
172
+ const formula = and(atom('P'), atom('Q'));
173
+ const fullCounter = { P: true, Q: false, R: true, S: false };
174
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
175
+ algorithm: 'one-at-a-time',
176
+ maxSteps: 3,
177
+ });
178
+ // Con sólo 3 pasos quizá no logre minimizar del todo, pero las
179
+ // assignments resultantes siguen siendo un superset válido del
180
+ // contramodelo.
181
+ (0, vitest_1.expect)(min.iterations).toBeLessThanOrEqual(20); // holgura: cleanup pass puede sumar
182
+ (0, vitest_1.expect)(min.size).toBeLessThanOrEqual(4);
183
+ (0, vitest_1.expect)(min.size).toBeGreaterThanOrEqual(1);
184
+ });
185
+ });
186
+ // ── Caso 9: implies — falsa con A=T,B=F ──────────────────────
187
+ (0, vitest_1.describe)('minimizeCountermodel — implicación', () => {
188
+ // A → B falsa sii A=T, B=F. C es irrelevante.
189
+ const formula = { kind: 'implies', args: [atom('A'), atom('B')] };
190
+ const fullCounter = { A: true, B: false, C: true };
191
+ vitest_1.it.each(ALGORITHMS)('reduce a {A:T, B:F} con %s', (algorithm) => {
192
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
193
+ algorithm,
194
+ });
195
+ (0, vitest_1.expect)(min.size).toBe(2);
196
+ (0, vitest_1.expect)(min.assignments).toEqual({ A: true, B: false });
197
+ (0, vitest_1.expect)(min.removed).toEqual(['C']);
198
+ });
199
+ });
200
+ // ── Caso 10: tres conjunción donde sólo una variable falsa basta ─
201
+ (0, vitest_1.describe)('minimizeCountermodel — múltiples conjuntos viables', () => {
202
+ // P ∧ Q ∧ R. Si TODAS están en false, basta una sola variable en
203
+ // false para falsificar — pero el algoritmo greedy 1-flip va sacando
204
+ // variables en orden y el "extreme flip" termina seleccionando una
205
+ // sola (deterministicamente).
206
+ const formula = and(and(atom('P'), atom('Q')), atom('R'));
207
+ const fullCounter = { P: false, Q: false, R: false, S: true };
208
+ vitest_1.it.each(ALGORITHMS)('reduce a 1 variable con %s', (algorithm) => {
209
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula), {
210
+ algorithm,
211
+ });
212
+ (0, vitest_1.expect)(min.size).toBe(1);
213
+ // El algoritmo selecciona exactamente UNA variable de {P,Q,R}.
214
+ const kept = Object.keys(min.assignments);
215
+ (0, vitest_1.expect)(kept).toHaveLength(1);
216
+ (0, vitest_1.expect)(['P', 'Q', 'R']).toContain(kept[0]);
217
+ (0, vitest_1.expect)(min.assignments[kept[0]]).toBe(false);
218
+ });
219
+ });
220
+ // ── Caso 11: iteraciones reportadas son > 0 ──────────────────
221
+ (0, vitest_1.describe)('minimizeCountermodel — métricas', () => {
222
+ (0, vitest_1.it)('reporta iterations y removed coherentes', () => {
223
+ const formula = and(atom('P'), atom('Q'));
224
+ const fullCounter = { P: true, Q: false, R: true, S: false };
225
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula));
226
+ (0, vitest_1.expect)(min.iterations).toBeGreaterThan(0);
227
+ (0, vitest_1.expect)(min.removed.length + min.size).toBe(Object.keys(fullCounter).length);
228
+ });
229
+ });
230
+ // ── Caso 12: salida final ordenada alfabéticamente ───────────
231
+ (0, vitest_1.describe)('minimizeCountermodel — orden estable', () => {
232
+ (0, vitest_1.it)('removed está ordenado alfabéticamente', () => {
233
+ const formula = and(atom('zeta'), atom('alpha'));
234
+ const fullCounter = { zeta: false, alpha: true, mu: true, beta: false };
235
+ const min = (0, countermodel_min_1.minimizeCountermodel)(formula, fullCounter, evaluator(formula));
236
+ // zeta=false ya falsifica la conjunción
237
+ const sortedRemoved = [...min.removed].sort();
238
+ (0, vitest_1.expect)(min.removed).toEqual(sortedRemoved);
239
+ });
240
+ });
241
+ //# sourceMappingURL=minimize.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimize.test.js","sourceRoot":"","sources":["../../../src/tests/countermodel-min/minimize.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=check.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.test.d.ts","sourceRoot":"","sources":["../../../src/tests/ctl/check.test.ts"],"names":[],"mappings":""}