@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,101 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST LTL-SAT — Tipos para el procedimiento de decisión de LTL
4
+ // ============================================================
5
+ // AST nativo de LTL para el decisor por tableau:
6
+ // atom, not, and, or, X (next), F (eventually), G (globally),
7
+ // U (until), R (release).
8
+ //
9
+ // La operación derivada W (weak until) se traduce a R en la
10
+ // normalización: φ W ψ ≡ ψ R (φ ∨ ψ) ≡ (G φ) ∨ (φ U ψ).
11
+ // ============================================================
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.implies = exports.weakUntil = exports.release = exports.until = exports.globally = exports.eventually = exports.next = exports.or = exports.and = exports.not = exports.atom = void 0;
14
+ exports.formulaToString = formulaToString;
15
+ exports.formulaKey = formulaKey;
16
+ // Constructores ergonómicos.
17
+ const atom = (name) => ({ kind: 'atom', name });
18
+ exports.atom = atom;
19
+ const not = (arg) => ({ kind: 'not', arg });
20
+ exports.not = not;
21
+ const and = (...args) => ({ kind: 'and', args });
22
+ exports.and = and;
23
+ const or = (...args) => ({ kind: 'or', args });
24
+ exports.or = or;
25
+ const next = (arg) => ({ kind: 'X', arg });
26
+ exports.next = next;
27
+ const eventually = (arg) => ({ kind: 'F', arg });
28
+ exports.eventually = eventually;
29
+ const globally = (arg) => ({ kind: 'G', arg });
30
+ exports.globally = globally;
31
+ const until = (left, right) => ({
32
+ kind: 'U',
33
+ left,
34
+ right,
35
+ });
36
+ exports.until = until;
37
+ const release = (left, right) => ({
38
+ kind: 'R',
39
+ left,
40
+ right,
41
+ });
42
+ exports.release = release;
43
+ // Weak until: φ W ψ ≡ (φ U ψ) ∨ G φ
44
+ const weakUntil = (left, right) => (0, exports.or)((0, exports.until)(left, right), (0, exports.globally)(left));
45
+ exports.weakUntil = weakUntil;
46
+ // Implicación derivada: φ → ψ ≡ ¬φ ∨ ψ
47
+ const implies = (left, right) => (0, exports.or)((0, exports.not)(left), right);
48
+ exports.implies = implies;
49
+ function formulaToString(f) {
50
+ switch (f.kind) {
51
+ case 'atom':
52
+ return f.name;
53
+ case 'not':
54
+ return `¬${parenthesize(f.arg)}`;
55
+ case 'and':
56
+ return f.args.map(parenthesize).join(' ∧ ');
57
+ case 'or':
58
+ return f.args.map(parenthesize).join(' ∨ ');
59
+ case 'X':
60
+ return `X ${parenthesize(f.arg)}`;
61
+ case 'F':
62
+ return `F ${parenthesize(f.arg)}`;
63
+ case 'G':
64
+ return `G ${parenthesize(f.arg)}`;
65
+ case 'U':
66
+ return `(${formulaToString(f.left)} U ${formulaToString(f.right)})`;
67
+ case 'R':
68
+ return `(${formulaToString(f.left)} R ${formulaToString(f.right)})`;
69
+ }
70
+ }
71
+ function parenthesize(f) {
72
+ if (f.kind === 'atom')
73
+ return f.name;
74
+ if (f.kind === 'not')
75
+ return formulaToString(f);
76
+ return `(${formulaToString(f)})`;
77
+ }
78
+ // Clave canónica: usada para hashing en sets/maps.
79
+ function formulaKey(f) {
80
+ switch (f.kind) {
81
+ case 'atom':
82
+ return `a:${f.name}`;
83
+ case 'not':
84
+ return `n:${formulaKey(f.arg)}`;
85
+ case 'and':
86
+ return `&:${f.args.map(formulaKey).sort().join(',')}`;
87
+ case 'or':
88
+ return `|:${f.args.map(formulaKey).sort().join(',')}`;
89
+ case 'X':
90
+ return `X:${formulaKey(f.arg)}`;
91
+ case 'F':
92
+ return `F:${formulaKey(f.arg)}`;
93
+ case 'G':
94
+ return `G:${formulaKey(f.arg)}`;
95
+ case 'U':
96
+ return `U:${formulaKey(f.left)};${formulaKey(f.right)}`;
97
+ case 'R':
98
+ return `R:${formulaKey(f.left)};${formulaKey(f.right)}`;
99
+ }
100
+ }
101
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { Sequent, ProofTree, ProveResult, SequentRule } from './types';
2
+ export { proveSequent, proveFormula } from './prover';
3
+ export { proofToLatex } from './latex';
4
+ export { normalizeForG3, formulaKey } from './normalize';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/index.ts"],"names":[],"mappings":"AAYA,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // G3 Sequent Calculus — Entrada publica del perfil
4
+ // ============================================================
5
+ //
6
+ // Este perfil expone el calculo de secuentes G3 (Gentzen reformulado
7
+ // por Kleene) para logica proposicional clasica. La interfaz que se
8
+ // reexporta es minima y suficiente para integrarlo desde otros perfiles
9
+ // o pruebas:
10
+ //
11
+ // import { proveFormula, proveSequent, proofToLatex }
12
+ // from 'src/profiles/sequent-g3';
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.formulaKey = exports.normalizeForG3 = exports.proofToLatex = exports.proveFormula = exports.proveSequent = void 0;
15
+ var prover_1 = require("./prover");
16
+ Object.defineProperty(exports, "proveSequent", { enumerable: true, get: function () { return prover_1.proveSequent; } });
17
+ Object.defineProperty(exports, "proveFormula", { enumerable: true, get: function () { return prover_1.proveFormula; } });
18
+ var latex_1 = require("./latex");
19
+ Object.defineProperty(exports, "proofToLatex", { enumerable: true, get: function () { return latex_1.proofToLatex; } });
20
+ var normalize_1 = require("./normalize");
21
+ Object.defineProperty(exports, "normalizeForG3", { enumerable: true, get: function () { return normalize_1.normalizeForG3; } });
22
+ Object.defineProperty(exports, "formulaKey", { enumerable: true, get: function () { return normalize_1.formulaKey; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,wEAAwE;AACxE,aAAa;AACb,EAAE;AACF,wDAAwD;AACxD,sCAAsC;;;AAGtC,mCAAsD;AAA7C,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AACnC,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,yCAAyD;AAAhD,2GAAA,cAAc,OAAA;AAAE,uGAAA,UAAU,OAAA"}
@@ -0,0 +1,7 @@
1
+ import { ProofTree } from './types';
2
+ /**
3
+ * Convierte un `ProofTree` G3 en codigo LaTeX bussproofs listo para
4
+ * embeberse dentro de un documento. Asume `\usepackage{bussproofs}`.
5
+ */
6
+ export declare function proofToLatex(proof: ProofTree): string;
7
+ //# sourceMappingURL=latex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latex.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/latex.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAwB,MAAM,SAAS,CAAC;AA8F1D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAIrD"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // G3 — Export de arboles de prueba a LaTeX (bussproofs)
4
+ // ============================================================
5
+ //
6
+ // Genera codigo bussproofs valido para LaTeX. Cada nodo del arbol
7
+ // produce un bloque \AxiomC / \UnaryInfC / \BinaryInfC con la
8
+ // regla anotada en \RightLabel. La raiz queda envuelta en un
9
+ // $\DisplayProof$ para ser inmediatamente renderizable.
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.proofToLatex = proofToLatex;
12
+ const RULE_LABEL = {
13
+ axiom: '\\textsc{Ax}',
14
+ falseL: '$\\bot_L$',
15
+ trueR: '$\\top_R$',
16
+ andL: '$\\wedge_L$',
17
+ andR: '$\\wedge_R$',
18
+ orL: '$\\vee_L$',
19
+ orR: '$\\vee_R$',
20
+ impL: '$\\to_L$',
21
+ impR: '$\\to_R$',
22
+ notL: '$\\neg_L$',
23
+ notR: '$\\neg_R$',
24
+ };
25
+ function formulaToLatex(f) {
26
+ switch (f.kind) {
27
+ case 'atom':
28
+ return escapeAtom(f.name ?? '?');
29
+ case 'true':
30
+ return '\\top';
31
+ case 'false':
32
+ return '\\bot';
33
+ case 'not': {
34
+ const inner = f.args && f.args[0] ? f.args[0] : undefined;
35
+ if (!inner)
36
+ return '\\neg ?';
37
+ return inner.kind === 'atom' || inner.kind === 'true' || inner.kind === 'false'
38
+ ? `\\neg ${formulaToLatex(inner)}`
39
+ : `\\neg (${formulaToLatex(inner)})`;
40
+ }
41
+ case 'and':
42
+ return binop(f, '\\wedge');
43
+ case 'or':
44
+ return binop(f, '\\vee');
45
+ case 'implies':
46
+ return binop(f, '\\to');
47
+ case 'biconditional':
48
+ return binop(f, '\\leftrightarrow');
49
+ default:
50
+ // Fallback: usar `kind` como etiqueta opaca
51
+ return `\\mathit{${escapeAtom(f.kind)}}`;
52
+ }
53
+ }
54
+ function binop(f, op) {
55
+ const a = f.args && f.args[0] ? formulaToLatex(f.args[0]) : '?';
56
+ const b = f.args && f.args[1] ? formulaToLatex(f.args[1]) : '?';
57
+ return `(${a} ${op} ${b})`;
58
+ }
59
+ function escapeAtom(name) {
60
+ // bussproofs corre dentro de math mode: hay que escapar caracteres
61
+ // problematicos como `_` y `#` para evitar romper el render.
62
+ return name.replace(/([\\#$%&_{}])/g, '\\$1');
63
+ }
64
+ function sequentToLatex(seq) {
65
+ const left = seq.left.map(formulaToLatex).join(', ');
66
+ const right = seq.right.map(formulaToLatex).join(', ');
67
+ return `$${left} \\vdash ${right}$`;
68
+ }
69
+ function emit(tree, lines) {
70
+ // Recorrido post-orden: emitimos premisas primero porque bussproofs
71
+ // consume el stack de \AxiomC en orden top-down.
72
+ if (!tree.rule || tree.premises.length === 0) {
73
+ // Hoja: axiom, falseL, trueR, o rama abierta.
74
+ if (tree.rule === 'axiom' || tree.rule === 'falseL' || tree.rule === 'trueR') {
75
+ lines.push(`\\AxiomC{${sequentToLatex(tree.goal)}}`);
76
+ lines.push(`\\RightLabel{${RULE_LABEL[tree.rule]}}`);
77
+ lines.push(`\\UnaryInfC{${sequentToLatex(tree.goal)}}`);
78
+ }
79
+ else {
80
+ // Rama abierta (no cerrable): emitimos como axioma marcado.
81
+ lines.push(`\\AxiomC{${sequentToLatex(tree.goal)}}`);
82
+ lines.push(`\\RightLabel{\\textsc{open}}`);
83
+ lines.push(`\\UnaryInfC{${sequentToLatex(tree.goal)}}`);
84
+ }
85
+ return;
86
+ }
87
+ for (const premise of tree.premises) {
88
+ emit(premise, lines);
89
+ }
90
+ lines.push(`\\RightLabel{${RULE_LABEL[tree.rule]}}`);
91
+ const infCmd = tree.premises.length === 1
92
+ ? 'UnaryInfC'
93
+ : tree.premises.length === 2
94
+ ? 'BinaryInfC'
95
+ : 'TrinaryInfC';
96
+ lines.push(`\\${infCmd}{${sequentToLatex(tree.goal)}}`);
97
+ }
98
+ /**
99
+ * Convierte un `ProofTree` G3 en codigo LaTeX bussproofs listo para
100
+ * embeberse dentro de un documento. Asume `\usepackage{bussproofs}`.
101
+ */
102
+ function proofToLatex(proof) {
103
+ const lines = [];
104
+ emit(proof, lines);
105
+ return `\\begin{prooftree}\n${lines.join('\n')}\n\\end{prooftree}`;
106
+ }
107
+ //# sourceMappingURL=latex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latex.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/latex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Formula } from '../../types';
2
+ /**
3
+ * Reescribe la formula al nucleo {atom, true, false, not, and, or, implies}
4
+ * preservando las locaciones. Las formulas no proposicionales se dejan tal
5
+ * cual: el prover las tratara como atomicas y normalmente no podra cerrar
6
+ * la prueba salvo coincidencia sintactica exacta.
7
+ */
8
+ export declare function normalizeForG3(f: Formula): Formula;
9
+ /**
10
+ * Canoniza una formula a una representacion textual estable que ignora
11
+ * `source` y normaliza orden interno donde aplica. Sirve como clave para
12
+ * comparar formulas en multisets.
13
+ */
14
+ export declare function formulaKey(f: Formula): string;
15
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/normalize.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAgElD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA2B7C"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // G3 — Normalizacion de formulas a {atom, not, and, or, implies}
4
+ // ============================================================
5
+ //
6
+ // El nucleo G3 razona sobre 5 conectivos. Las formulas con
7
+ // biconditional, xor, nand, nor se reescriben a esa base; tambien
8
+ // se expanden cuantificadores y operadores aritmeticos no
9
+ // soportados (devolviendo error semantico via NaN-formula).
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.normalizeForG3 = normalizeForG3;
12
+ exports.formulaKey = formulaKey;
13
+ /**
14
+ * Reescribe la formula al nucleo {atom, true, false, not, and, or, implies}
15
+ * preservando las locaciones. Las formulas no proposicionales se dejan tal
16
+ * cual: el prover las tratara como atomicas y normalmente no podra cerrar
17
+ * la prueba salvo coincidencia sintactica exacta.
18
+ */
19
+ function normalizeForG3(f) {
20
+ switch (f.kind) {
21
+ case 'atom':
22
+ case 'true':
23
+ case 'false':
24
+ return f;
25
+ case 'not': {
26
+ const inner = f.args && f.args[0] ? normalizeForG3(f.args[0]) : f;
27
+ return { kind: 'not', args: [inner], source: f.source };
28
+ }
29
+ case 'and':
30
+ case 'or':
31
+ case 'implies': {
32
+ const a = f.args && f.args[0] ? normalizeForG3(f.args[0]) : f;
33
+ const b = f.args && f.args[1] ? normalizeForG3(f.args[1]) : f;
34
+ return { kind: f.kind, args: [a, b], source: f.source };
35
+ }
36
+ case 'biconditional': {
37
+ // A ↔ B ≡ (A → B) ∧ (B → A)
38
+ if (!f.args || !f.args[0] || !f.args[1])
39
+ return f;
40
+ const a = normalizeForG3(f.args[0]);
41
+ const b = normalizeForG3(f.args[1]);
42
+ return {
43
+ kind: 'and',
44
+ args: [
45
+ { kind: 'implies', args: [a, b] },
46
+ { kind: 'implies', args: [b, a] },
47
+ ],
48
+ source: f.source,
49
+ };
50
+ }
51
+ case 'xor': {
52
+ // A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B)
53
+ if (!f.args || !f.args[0] || !f.args[1])
54
+ return f;
55
+ const a = normalizeForG3(f.args[0]);
56
+ const b = normalizeForG3(f.args[1]);
57
+ return {
58
+ kind: 'or',
59
+ args: [
60
+ { kind: 'and', args: [a, { kind: 'not', args: [b] }] },
61
+ { kind: 'and', args: [{ kind: 'not', args: [a] }, b] },
62
+ ],
63
+ source: f.source,
64
+ };
65
+ }
66
+ case 'nand': {
67
+ // A ↑ B ≡ ¬(A ∧ B)
68
+ if (!f.args || !f.args[0] || !f.args[1])
69
+ return f;
70
+ const a = normalizeForG3(f.args[0]);
71
+ const b = normalizeForG3(f.args[1]);
72
+ return { kind: 'not', args: [{ kind: 'and', args: [a, b] }], source: f.source };
73
+ }
74
+ case 'nor': {
75
+ // A ↓ B ≡ ¬(A ∨ B)
76
+ if (!f.args || !f.args[0] || !f.args[1])
77
+ return f;
78
+ const a = normalizeForG3(f.args[0]);
79
+ const b = normalizeForG3(f.args[1]);
80
+ return { kind: 'not', args: [{ kind: 'or', args: [a, b] }], source: f.source };
81
+ }
82
+ default:
83
+ // Cuantificadores, predicados, modales, aritmetica: el prover
84
+ // proposicional los trata como atomos opacos.
85
+ return f;
86
+ }
87
+ }
88
+ /**
89
+ * Canoniza una formula a una representacion textual estable que ignora
90
+ * `source` y normaliza orden interno donde aplica. Sirve como clave para
91
+ * comparar formulas en multisets.
92
+ */
93
+ function formulaKey(f) {
94
+ switch (f.kind) {
95
+ case 'atom':
96
+ return `a:${f.name ?? '?'}`;
97
+ case 'true':
98
+ return 'T';
99
+ case 'false':
100
+ return 'F';
101
+ case 'not':
102
+ return `n(${f.args && f.args[0] ? formulaKey(f.args[0]) : '?'})`;
103
+ case 'and':
104
+ case 'or':
105
+ case 'implies':
106
+ case 'biconditional': {
107
+ const a = f.args && f.args[0] ? formulaKey(f.args[0]) : '?';
108
+ const b = f.args && f.args[1] ? formulaKey(f.args[1]) : '?';
109
+ return `${f.kind}(${a},${b})`;
110
+ }
111
+ case 'predicate':
112
+ return `p:${f.name ?? '?'}(${(f.params ?? f.terms ?? []).join(',')})`;
113
+ case 'forall':
114
+ case 'exists':
115
+ return `${f.kind}:${f.variable ?? '?'}(${f.args && f.args[0] ? formulaKey(f.args[0]) : '?'})`;
116
+ default:
117
+ // Fallback: usar kind + estructura recursiva
118
+ return `${f.kind}(${(f.args ?? []).map(formulaKey).join(',')})`;
119
+ }
120
+ }
121
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Formula } from '../../types';
2
+ import { Sequent, ProveResult } from './types';
3
+ /**
4
+ * Demuestra `seq` (Γ ⊢ Δ) por backward search en G3.
5
+ * Normaliza las formulas antes de comenzar.
6
+ */
7
+ export declare function proveSequent(seq: Sequent, options?: {
8
+ budget?: number;
9
+ }): ProveResult;
10
+ /**
11
+ * Atajo: demuestra que `⊢ φ` (formula sin hipotesis) es valida en G3.
12
+ */
13
+ export declare function proveFormula(formula: Formula, options?: {
14
+ budget?: number;
15
+ }): ProveResult;
16
+ //# sourceMappingURL=prover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prover.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/prover.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAa,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAyV1D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAOzF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAE7F"}