@stevenvo780/st-lang 4.1.0 → 4.3.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 (553) 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 +8 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +53 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/lambda-calc/church.d.ts +8 -0
  70. package/dist/lambda-calc/church.d.ts.map +1 -0
  71. package/dist/lambda-calc/church.js +67 -0
  72. package/dist/lambda-calc/church.js.map +1 -0
  73. package/dist/lambda-calc/combinators.d.ts +8 -0
  74. package/dist/lambda-calc/combinators.d.ts.map +1 -0
  75. package/dist/lambda-calc/combinators.js +24 -0
  76. package/dist/lambda-calc/combinators.js.map +1 -0
  77. package/dist/lambda-calc/index.d.ts +8 -0
  78. package/dist/lambda-calc/index.d.ts.map +1 -0
  79. package/dist/lambda-calc/index.js +48 -0
  80. package/dist/lambda-calc/index.js.map +1 -0
  81. package/dist/lambda-calc/reduce.d.ts +18 -0
  82. package/dist/lambda-calc/reduce.d.ts.map +1 -0
  83. package/dist/lambda-calc/reduce.js +174 -0
  84. package/dist/lambda-calc/reduce.js.map +1 -0
  85. package/dist/lambda-calc/substitution.d.ts +6 -0
  86. package/dist/lambda-calc/substitution.d.ts.map +1 -0
  87. package/dist/lambda-calc/substitution.js +120 -0
  88. package/dist/lambda-calc/substitution.js.map +1 -0
  89. package/dist/lambda-calc/types.d.ts +19 -0
  90. package/dist/lambda-calc/types.d.ts.map +1 -0
  91. package/dist/lambda-calc/types.js +72 -0
  92. package/dist/lambda-calc/types.js.map +1 -0
  93. package/dist/profiles/ctl/check.d.ts +13 -0
  94. package/dist/profiles/ctl/check.d.ts.map +1 -0
  95. package/dist/profiles/ctl/check.js +359 -0
  96. package/dist/profiles/ctl/check.js.map +1 -0
  97. package/dist/profiles/ctl/index.d.ts +5 -0
  98. package/dist/profiles/ctl/index.d.ts.map +1 -0
  99. package/dist/profiles/ctl/index.js +23 -0
  100. package/dist/profiles/ctl/index.js.map +1 -0
  101. package/dist/profiles/ctl/types.d.ts +74 -0
  102. package/dist/profiles/ctl/types.d.ts.map +1 -0
  103. package/dist/profiles/ctl/types.js +53 -0
  104. package/dist/profiles/ctl/types.js.map +1 -0
  105. package/dist/profiles/ctl/witness.d.ts +20 -0
  106. package/dist/profiles/ctl/witness.d.ts.map +1 -0
  107. package/dist/profiles/ctl/witness.js +149 -0
  108. package/dist/profiles/ctl/witness.js.map +1 -0
  109. package/dist/profiles/default-logic/entailment.d.ts +14 -0
  110. package/dist/profiles/default-logic/entailment.d.ts.map +1 -0
  111. package/dist/profiles/default-logic/entailment.js +36 -0
  112. package/dist/profiles/default-logic/entailment.js.map +1 -0
  113. package/dist/profiles/default-logic/extensions.d.ts +35 -0
  114. package/dist/profiles/default-logic/extensions.d.ts.map +1 -0
  115. package/dist/profiles/default-logic/extensions.js +276 -0
  116. package/dist/profiles/default-logic/extensions.js.map +1 -0
  117. package/dist/profiles/default-logic/index.d.ts +5 -0
  118. package/dist/profiles/default-logic/index.d.ts.map +1 -0
  119. package/dist/profiles/default-logic/index.js +33 -0
  120. package/dist/profiles/default-logic/index.js.map +1 -0
  121. package/dist/profiles/default-logic/types.d.ts +29 -0
  122. package/dist/profiles/default-logic/types.d.ts.map +1 -0
  123. package/dist/profiles/default-logic/types.js +25 -0
  124. package/dist/profiles/default-logic/types.js.map +1 -0
  125. package/dist/profiles/description-logic/index.d.ts +5 -0
  126. package/dist/profiles/description-logic/index.d.ts.map +1 -0
  127. package/dist/profiles/description-logic/index.js +39 -0
  128. package/dist/profiles/description-logic/index.js.map +1 -0
  129. package/dist/profiles/description-logic/nnf.d.ts +13 -0
  130. package/dist/profiles/description-logic/nnf.d.ts.map +1 -0
  131. package/dist/profiles/description-logic/nnf.js +123 -0
  132. package/dist/profiles/description-logic/nnf.js.map +1 -0
  133. package/dist/profiles/description-logic/tableau.d.ts +27 -0
  134. package/dist/profiles/description-logic/tableau.d.ts.map +1 -0
  135. package/dist/profiles/description-logic/tableau.js +491 -0
  136. package/dist/profiles/description-logic/tableau.js.map +1 -0
  137. package/dist/profiles/description-logic/types.d.ts +45 -0
  138. package/dist/profiles/description-logic/types.d.ts.map +1 -0
  139. package/dist/profiles/description-logic/types.js +71 -0
  140. package/dist/profiles/description-logic/types.js.map +1 -0
  141. package/dist/profiles/hybrid-logic/index.d.ts +5 -0
  142. package/dist/profiles/hybrid-logic/index.d.ts.map +1 -0
  143. package/dist/profiles/hybrid-logic/index.js +34 -0
  144. package/dist/profiles/hybrid-logic/index.js.map +1 -0
  145. package/dist/profiles/hybrid-logic/sat.d.ts +15 -0
  146. package/dist/profiles/hybrid-logic/sat.d.ts.map +1 -0
  147. package/dist/profiles/hybrid-logic/sat.js +142 -0
  148. package/dist/profiles/hybrid-logic/sat.js.map +1 -0
  149. package/dist/profiles/hybrid-logic/semantics.d.ts +20 -0
  150. package/dist/profiles/hybrid-logic/semantics.d.ts.map +1 -0
  151. package/dist/profiles/hybrid-logic/semantics.js +107 -0
  152. package/dist/profiles/hybrid-logic/semantics.js.map +1 -0
  153. package/dist/profiles/hybrid-logic/types.d.ts +78 -0
  154. package/dist/profiles/hybrid-logic/types.d.ts.map +1 -0
  155. package/dist/profiles/hybrid-logic/types.js +107 -0
  156. package/dist/profiles/hybrid-logic/types.js.map +1 -0
  157. package/dist/profiles/intuitionistic-nj/formula.d.ts +19 -0
  158. package/dist/profiles/intuitionistic-nj/formula.d.ts.map +1 -0
  159. package/dist/profiles/intuitionistic-nj/formula.js +99 -0
  160. package/dist/profiles/intuitionistic-nj/formula.js.map +1 -0
  161. package/dist/profiles/intuitionistic-nj/index.d.ts +5 -0
  162. package/dist/profiles/intuitionistic-nj/index.d.ts.map +1 -0
  163. package/dist/profiles/intuitionistic-nj/index.js +24 -0
  164. package/dist/profiles/intuitionistic-nj/index.js.map +1 -0
  165. package/dist/profiles/intuitionistic-nj/kripke.d.ts +17 -0
  166. package/dist/profiles/intuitionistic-nj/kripke.d.ts.map +1 -0
  167. package/dist/profiles/intuitionistic-nj/kripke.js +206 -0
  168. package/dist/profiles/intuitionistic-nj/kripke.js.map +1 -0
  169. package/dist/profiles/intuitionistic-nj/prover.d.ts +13 -0
  170. package/dist/profiles/intuitionistic-nj/prover.d.ts.map +1 -0
  171. package/dist/profiles/intuitionistic-nj/prover.js +418 -0
  172. package/dist/profiles/intuitionistic-nj/prover.js.map +1 -0
  173. package/dist/profiles/intuitionistic-nj/types.d.ts +55 -0
  174. package/dist/profiles/intuitionistic-nj/types.d.ts.map +1 -0
  175. package/dist/profiles/intuitionistic-nj/types.js +21 -0
  176. package/dist/profiles/intuitionistic-nj/types.js.map +1 -0
  177. package/dist/profiles/ltl-sat/index.d.ts +4 -0
  178. package/dist/profiles/ltl-sat/index.d.ts.map +1 -0
  179. package/dist/profiles/ltl-sat/index.js +40 -0
  180. package/dist/profiles/ltl-sat/index.js.map +1 -0
  181. package/dist/profiles/ltl-sat/sat.d.ts +8 -0
  182. package/dist/profiles/ltl-sat/sat.d.ts.map +1 -0
  183. package/dist/profiles/ltl-sat/sat.js +140 -0
  184. package/dist/profiles/ltl-sat/sat.js.map +1 -0
  185. package/dist/profiles/ltl-sat/tableau.d.ts +19 -0
  186. package/dist/profiles/ltl-sat/tableau.d.ts.map +1 -0
  187. package/dist/profiles/ltl-sat/tableau.js +358 -0
  188. package/dist/profiles/ltl-sat/tableau.js.map +1 -0
  189. package/dist/profiles/ltl-sat/types.d.ts +52 -0
  190. package/dist/profiles/ltl-sat/types.d.ts.map +1 -0
  191. package/dist/profiles/ltl-sat/types.js +101 -0
  192. package/dist/profiles/ltl-sat/types.js.map +1 -0
  193. package/dist/profiles/many-valued/index.d.ts +39 -0
  194. package/dist/profiles/many-valued/index.d.ts.map +1 -0
  195. package/dist/profiles/many-valued/index.js +250 -0
  196. package/dist/profiles/many-valued/index.js.map +1 -0
  197. package/dist/profiles/modal-frame-axioms/formula.d.ts +23 -0
  198. package/dist/profiles/modal-frame-axioms/formula.d.ts.map +1 -0
  199. package/dist/profiles/modal-frame-axioms/formula.js +158 -0
  200. package/dist/profiles/modal-frame-axioms/formula.js.map +1 -0
  201. package/dist/profiles/modal-frame-axioms/index.d.ts +6 -0
  202. package/dist/profiles/modal-frame-axioms/index.d.ts.map +1 -0
  203. package/dist/profiles/modal-frame-axioms/index.js +41 -0
  204. package/dist/profiles/modal-frame-axioms/index.js.map +1 -0
  205. package/dist/profiles/modal-frame-axioms/systems.d.ts +29 -0
  206. package/dist/profiles/modal-frame-axioms/systems.d.ts.map +1 -0
  207. package/dist/profiles/modal-frame-axioms/systems.js +96 -0
  208. package/dist/profiles/modal-frame-axioms/systems.js.map +1 -0
  209. package/dist/profiles/modal-frame-axioms/tableau.d.ts +12 -0
  210. package/dist/profiles/modal-frame-axioms/tableau.d.ts.map +1 -0
  211. package/dist/profiles/modal-frame-axioms/tableau.js +299 -0
  212. package/dist/profiles/modal-frame-axioms/tableau.js.map +1 -0
  213. package/dist/profiles/modal-frame-axioms/types.d.ts +61 -0
  214. package/dist/profiles/modal-frame-axioms/types.d.ts.map +1 -0
  215. package/dist/profiles/modal-frame-axioms/types.js +27 -0
  216. package/dist/profiles/modal-frame-axioms/types.js.map +1 -0
  217. package/dist/profiles/sequent-g3/index.d.ts +5 -0
  218. package/dist/profiles/sequent-g3/index.d.ts.map +1 -0
  219. package/dist/profiles/sequent-g3/index.js +23 -0
  220. package/dist/profiles/sequent-g3/index.js.map +1 -0
  221. package/dist/profiles/sequent-g3/latex.d.ts +7 -0
  222. package/dist/profiles/sequent-g3/latex.d.ts.map +1 -0
  223. package/dist/profiles/sequent-g3/latex.js +107 -0
  224. package/dist/profiles/sequent-g3/latex.js.map +1 -0
  225. package/dist/profiles/sequent-g3/normalize.d.ts +15 -0
  226. package/dist/profiles/sequent-g3/normalize.d.ts.map +1 -0
  227. package/dist/profiles/sequent-g3/normalize.js +121 -0
  228. package/dist/profiles/sequent-g3/normalize.js.map +1 -0
  229. package/dist/profiles/sequent-g3/prover.d.ts +16 -0
  230. package/dist/profiles/sequent-g3/prover.d.ts.map +1 -0
  231. package/dist/profiles/sequent-g3/prover.js +348 -0
  232. package/dist/profiles/sequent-g3/prover.js.map +1 -0
  233. package/dist/profiles/sequent-g3/types.d.ts +30 -0
  234. package/dist/profiles/sequent-g3/types.d.ts.map +1 -0
  235. package/dist/profiles/sequent-g3/types.js +16 -0
  236. package/dist/profiles/sequent-g3/types.js.map +1 -0
  237. package/dist/profiles/substructural/index.d.ts +4 -0
  238. package/dist/profiles/substructural/index.d.ts.map +1 -0
  239. package/dist/profiles/substructural/index.js +22 -0
  240. package/dist/profiles/substructural/index.js.map +1 -0
  241. package/dist/profiles/substructural/prover.d.ts +13 -0
  242. package/dist/profiles/substructural/prover.d.ts.map +1 -0
  243. package/dist/profiles/substructural/prover.js +481 -0
  244. package/dist/profiles/substructural/prover.js.map +1 -0
  245. package/dist/profiles/substructural/types.d.ts +72 -0
  246. package/dist/profiles/substructural/types.d.ts.map +1 -0
  247. package/dist/profiles/substructural/types.js +27 -0
  248. package/dist/profiles/substructural/types.js.map +1 -0
  249. package/dist/runtime/abduction/entails.d.ts +21 -0
  250. package/dist/runtime/abduction/entails.d.ts.map +1 -0
  251. package/dist/runtime/abduction/entails.js +308 -0
  252. package/dist/runtime/abduction/entails.js.map +1 -0
  253. package/dist/runtime/abduction/find.d.ts +18 -0
  254. package/dist/runtime/abduction/find.d.ts.map +1 -0
  255. package/dist/runtime/abduction/find.js +202 -0
  256. package/dist/runtime/abduction/find.js.map +1 -0
  257. package/dist/runtime/abduction/index.d.ts +4 -0
  258. package/dist/runtime/abduction/index.d.ts.map +1 -0
  259. package/dist/runtime/abduction/index.js +26 -0
  260. package/dist/runtime/abduction/index.js.map +1 -0
  261. package/dist/runtime/abduction/types.d.ts +78 -0
  262. package/dist/runtime/abduction/types.d.ts.map +1 -0
  263. package/dist/runtime/abduction/types.js +23 -0
  264. package/dist/runtime/abduction/types.js.map +1 -0
  265. package/dist/runtime/bayesian/factor.d.ts +22 -0
  266. package/dist/runtime/bayesian/factor.d.ts.map +1 -0
  267. package/dist/runtime/bayesian/factor.js +249 -0
  268. package/dist/runtime/bayesian/factor.js.map +1 -0
  269. package/dist/runtime/bayesian/index.d.ts +3 -0
  270. package/dist/runtime/bayesian/index.d.ts.map +1 -0
  271. package/dist/runtime/bayesian/index.js +25 -0
  272. package/dist/runtime/bayesian/index.js.map +1 -0
  273. package/dist/runtime/bayesian/inference.d.ts +6 -0
  274. package/dist/runtime/bayesian/inference.d.ts.map +1 -0
  275. package/dist/runtime/bayesian/inference.js +260 -0
  276. package/dist/runtime/bayesian/inference.js.map +1 -0
  277. package/dist/runtime/bayesian/types.d.ts +19 -0
  278. package/dist/runtime/bayesian/types.d.ts.map +1 -0
  279. package/dist/runtime/bayesian/types.js +9 -0
  280. package/dist/runtime/bayesian/types.js.map +1 -0
  281. package/dist/runtime/bisimulation/index.d.ts +4 -0
  282. package/dist/runtime/bisimulation/index.d.ts.map +1 -0
  283. package/dist/runtime/bisimulation/index.js +21 -0
  284. package/dist/runtime/bisimulation/index.js.map +1 -0
  285. package/dist/runtime/bisimulation/operations.d.ts +40 -0
  286. package/dist/runtime/bisimulation/operations.d.ts.map +1 -0
  287. package/dist/runtime/bisimulation/operations.js +219 -0
  288. package/dist/runtime/bisimulation/operations.js.map +1 -0
  289. package/dist/runtime/bisimulation/paige-tarjan.d.ts +8 -0
  290. package/dist/runtime/bisimulation/paige-tarjan.d.ts.map +1 -0
  291. package/dist/runtime/bisimulation/paige-tarjan.js +199 -0
  292. package/dist/runtime/bisimulation/paige-tarjan.js.map +1 -0
  293. package/dist/runtime/bisimulation/types.d.ts +26 -0
  294. package/dist/runtime/bisimulation/types.d.ts.map +1 -0
  295. package/dist/runtime/bisimulation/types.js +22 -0
  296. package/dist/runtime/bisimulation/types.js.map +1 -0
  297. package/dist/runtime/countermodel-min/index.d.ts +3 -0
  298. package/dist/runtime/countermodel-min/index.d.ts.map +1 -0
  299. package/dist/runtime/countermodel-min/index.js +9 -0
  300. package/dist/runtime/countermodel-min/index.js.map +1 -0
  301. package/dist/runtime/countermodel-min/minimize.d.ts +17 -0
  302. package/dist/runtime/countermodel-min/minimize.d.ts.map +1 -0
  303. package/dist/runtime/countermodel-min/minimize.js +0 -0
  304. package/dist/runtime/countermodel-min/minimize.js.map +1 -0
  305. package/dist/runtime/countermodel-min/types.d.ts +40 -0
  306. package/dist/runtime/countermodel-min/types.d.ts.map +1 -0
  307. package/dist/runtime/countermodel-min/types.js +6 -0
  308. package/dist/runtime/countermodel-min/types.js.map +1 -0
  309. package/dist/runtime/fca/context.d.ts +46 -0
  310. package/dist/runtime/fca/context.d.ts.map +1 -0
  311. package/dist/runtime/fca/context.js +155 -0
  312. package/dist/runtime/fca/context.js.map +1 -0
  313. package/dist/runtime/fca/implications.d.ts +10 -0
  314. package/dist/runtime/fca/implications.d.ts.map +1 -0
  315. package/dist/runtime/fca/implications.js +33 -0
  316. package/dist/runtime/fca/implications.js.map +1 -0
  317. package/dist/runtime/fca/index.d.ts +6 -0
  318. package/dist/runtime/fca/index.d.ts.map +1 -0
  319. package/dist/runtime/fca/index.js +39 -0
  320. package/dist/runtime/fca/index.js.map +1 -0
  321. package/dist/runtime/fca/lattice.d.ts +10 -0
  322. package/dist/runtime/fca/lattice.d.ts.map +1 -0
  323. package/dist/runtime/fca/lattice.js +86 -0
  324. package/dist/runtime/fca/lattice.js.map +1 -0
  325. package/dist/runtime/fca/next-closure.d.ts +12 -0
  326. package/dist/runtime/fca/next-closure.d.ts.map +1 -0
  327. package/dist/runtime/fca/next-closure.js +99 -0
  328. package/dist/runtime/fca/next-closure.js.map +1 -0
  329. package/dist/runtime/fca/types.d.ts +31 -0
  330. package/dist/runtime/fca/types.d.ts.map +1 -0
  331. package/dist/runtime/fca/types.js +30 -0
  332. package/dist/runtime/fca/types.js.map +1 -0
  333. package/dist/runtime/mus/extract.d.ts +34 -0
  334. package/dist/runtime/mus/extract.d.ts.map +1 -0
  335. package/dist/runtime/mus/extract.js +243 -0
  336. package/dist/runtime/mus/extract.js.map +1 -0
  337. package/dist/runtime/mus/index.d.ts +4 -0
  338. package/dist/runtime/mus/index.d.ts.map +1 -0
  339. package/dist/runtime/mus/index.js +12 -0
  340. package/dist/runtime/mus/index.js.map +1 -0
  341. package/dist/runtime/mus/quickxplain.d.ts +10 -0
  342. package/dist/runtime/mus/quickxplain.d.ts.map +1 -0
  343. package/dist/runtime/mus/quickxplain.js +100 -0
  344. package/dist/runtime/mus/quickxplain.js.map +1 -0
  345. package/dist/runtime/mus/types.d.ts +59 -0
  346. package/dist/runtime/mus/types.d.ts.map +1 -0
  347. package/dist/runtime/mus/types.js +20 -0
  348. package/dist/runtime/mus/types.js.map +1 -0
  349. package/dist/runtime/proof-minify/index.d.ts +3 -0
  350. package/dist/runtime/proof-minify/index.d.ts.map +1 -0
  351. package/dist/runtime/proof-minify/index.js +13 -0
  352. package/dist/runtime/proof-minify/index.js.map +1 -0
  353. package/dist/runtime/proof-minify/minify.d.ts +13 -0
  354. package/dist/runtime/proof-minify/minify.d.ts.map +1 -0
  355. package/dist/runtime/proof-minify/minify.js +540 -0
  356. package/dist/runtime/proof-minify/minify.js.map +1 -0
  357. package/dist/runtime/proof-minify/types.d.ts +89 -0
  358. package/dist/runtime/proof-minify/types.d.ts.map +1 -0
  359. package/dist/runtime/proof-minify/types.js +16 -0
  360. package/dist/runtime/proof-minify/types.js.map +1 -0
  361. package/dist/runtime/symbolic-diff/constructors.d.ts +16 -0
  362. package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -0
  363. package/dist/runtime/symbolic-diff/constructors.js +75 -0
  364. package/dist/runtime/symbolic-diff/constructors.js.map +1 -0
  365. package/dist/runtime/symbolic-diff/differentiate.d.ts +22 -0
  366. package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -0
  367. package/dist/runtime/symbolic-diff/differentiate.js +107 -0
  368. package/dist/runtime/symbolic-diff/differentiate.js.map +1 -0
  369. package/dist/runtime/symbolic-diff/evaluate.d.ts +3 -0
  370. package/dist/runtime/symbolic-diff/evaluate.d.ts.map +1 -0
  371. package/dist/runtime/symbolic-diff/evaluate.js +47 -0
  372. package/dist/runtime/symbolic-diff/evaluate.js.map +1 -0
  373. package/dist/runtime/symbolic-diff/index.d.ts +9 -0
  374. package/dist/runtime/symbolic-diff/index.d.ts.map +1 -0
  375. package/dist/runtime/symbolic-diff/index.js +34 -0
  376. package/dist/runtime/symbolic-diff/index.js.map +1 -0
  377. package/dist/runtime/symbolic-diff/parse.d.ts +16 -0
  378. package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -0
  379. package/dist/runtime/symbolic-diff/parse.js +206 -0
  380. package/dist/runtime/symbolic-diff/parse.js.map +1 -0
  381. package/dist/runtime/symbolic-diff/simplify.d.ts +11 -0
  382. package/dist/runtime/symbolic-diff/simplify.d.ts.map +1 -0
  383. package/dist/runtime/symbolic-diff/simplify.js +214 -0
  384. package/dist/runtime/symbolic-diff/simplify.js.map +1 -0
  385. package/dist/runtime/symbolic-diff/stringify.d.ts +3 -0
  386. package/dist/runtime/symbolic-diff/stringify.d.ts.map +1 -0
  387. package/dist/runtime/symbolic-diff/stringify.js +69 -0
  388. package/dist/runtime/symbolic-diff/stringify.js.map +1 -0
  389. package/dist/runtime/symbolic-diff/types.d.ts +35 -0
  390. package/dist/runtime/symbolic-diff/types.d.ts.map +1 -0
  391. package/dist/runtime/symbolic-diff/types.js +9 -0
  392. package/dist/runtime/symbolic-diff/types.js.map +1 -0
  393. package/dist/runtime/term-rewriting/critical-pairs.d.ts +38 -0
  394. package/dist/runtime/term-rewriting/critical-pairs.d.ts.map +1 -0
  395. package/dist/runtime/term-rewriting/critical-pairs.js +109 -0
  396. package/dist/runtime/term-rewriting/critical-pairs.js.map +1 -0
  397. package/dist/runtime/term-rewriting/index.d.ts +9 -0
  398. package/dist/runtime/term-rewriting/index.d.ts.map +1 -0
  399. package/dist/runtime/term-rewriting/index.js +38 -0
  400. package/dist/runtime/term-rewriting/index.js.map +1 -0
  401. package/dist/runtime/term-rewriting/knuth-bendix.d.ts +29 -0
  402. package/dist/runtime/term-rewriting/knuth-bendix.d.ts.map +1 -0
  403. package/dist/runtime/term-rewriting/knuth-bendix.js +196 -0
  404. package/dist/runtime/term-rewriting/knuth-bendix.js.map +1 -0
  405. package/dist/runtime/term-rewriting/lpo.d.ts +17 -0
  406. package/dist/runtime/term-rewriting/lpo.d.ts.map +1 -0
  407. package/dist/runtime/term-rewriting/lpo.js +158 -0
  408. package/dist/runtime/term-rewriting/lpo.js.map +1 -0
  409. package/dist/runtime/term-rewriting/rewrite.d.ts +44 -0
  410. package/dist/runtime/term-rewriting/rewrite.d.ts.map +1 -0
  411. package/dist/runtime/term-rewriting/rewrite.js +189 -0
  412. package/dist/runtime/term-rewriting/rewrite.js.map +1 -0
  413. package/dist/runtime/term-rewriting/term-utils.d.ts +64 -0
  414. package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -0
  415. package/dist/runtime/term-rewriting/term-utils.js +360 -0
  416. package/dist/runtime/term-rewriting/term-utils.js.map +1 -0
  417. package/dist/runtime/term-rewriting/types.d.ts +66 -0
  418. package/dist/runtime/term-rewriting/types.d.ts.map +1 -0
  419. package/dist/runtime/term-rewriting/types.js +21 -0
  420. package/dist/runtime/term-rewriting/types.js.map +1 -0
  421. package/dist/solver/cdcl-v2-incremental/index.d.ts +3 -0
  422. package/dist/solver/cdcl-v2-incremental/index.d.ts.map +1 -0
  423. package/dist/solver/cdcl-v2-incremental/index.js +16 -0
  424. package/dist/solver/cdcl-v2-incremental/index.js.map +1 -0
  425. package/dist/solver/cdcl-v2-incremental/solver.d.ts +83 -0
  426. package/dist/solver/cdcl-v2-incremental/solver.d.ts.map +1 -0
  427. package/dist/solver/cdcl-v2-incremental/solver.js +727 -0
  428. package/dist/solver/cdcl-v2-incremental/solver.js.map +1 -0
  429. package/dist/solver/cdcl-v2-incremental/types.d.ts +47 -0
  430. package/dist/solver/cdcl-v2-incremental/types.d.ts.map +1 -0
  431. package/dist/solver/cdcl-v2-incremental/types.js +13 -0
  432. package/dist/solver/cdcl-v2-incremental/types.js.map +1 -0
  433. package/dist/tests/abduction/abduction.test.d.ts +2 -0
  434. package/dist/tests/abduction/abduction.test.d.ts.map +1 -0
  435. package/dist/tests/abduction/abduction.test.js +380 -0
  436. package/dist/tests/abduction/abduction.test.js.map +1 -0
  437. package/dist/tests/bayesian/bayesian.test.d.ts +2 -0
  438. package/dist/tests/bayesian/bayesian.test.d.ts.map +1 -0
  439. package/dist/tests/bayesian/bayesian.test.js +328 -0
  440. package/dist/tests/bayesian/bayesian.test.js.map +1 -0
  441. package/dist/tests/belief-revision/agm.test.d.ts +2 -0
  442. package/dist/tests/belief-revision/agm.test.d.ts.map +1 -0
  443. package/dist/tests/belief-revision/agm.test.js +173 -0
  444. package/dist/tests/belief-revision/agm.test.js.map +1 -0
  445. package/dist/tests/bisimulation/paige-tarjan.test.d.ts +2 -0
  446. package/dist/tests/bisimulation/paige-tarjan.test.d.ts.map +1 -0
  447. package/dist/tests/bisimulation/paige-tarjan.test.js +254 -0
  448. package/dist/tests/bisimulation/paige-tarjan.test.js.map +1 -0
  449. package/dist/tests/countermodel-min/minimize.test.d.ts +2 -0
  450. package/dist/tests/countermodel-min/minimize.test.d.ts.map +1 -0
  451. package/dist/tests/countermodel-min/minimize.test.js +241 -0
  452. package/dist/tests/countermodel-min/minimize.test.js.map +1 -0
  453. package/dist/tests/ctl/check.test.d.ts +2 -0
  454. package/dist/tests/ctl/check.test.d.ts.map +1 -0
  455. package/dist/tests/ctl/check.test.js +337 -0
  456. package/dist/tests/ctl/check.test.js.map +1 -0
  457. package/dist/tests/curry-howard/infer.test.d.ts +2 -0
  458. package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
  459. package/dist/tests/curry-howard/infer.test.js +93 -0
  460. package/dist/tests/curry-howard/infer.test.js.map +1 -0
  461. package/dist/tests/curry-howard/proof.test.d.ts +2 -0
  462. package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
  463. package/dist/tests/curry-howard/proof.test.js +105 -0
  464. package/dist/tests/curry-howard/proof.test.js.map +1 -0
  465. package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
  466. package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
  467. package/dist/tests/curry-howard/reduce.test.js +109 -0
  468. package/dist/tests/curry-howard/reduce.test.js.map +1 -0
  469. package/dist/tests/default-logic/extensions.test.d.ts +2 -0
  470. package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
  471. package/dist/tests/default-logic/extensions.test.js +323 -0
  472. package/dist/tests/default-logic/extensions.test.js.map +1 -0
  473. package/dist/tests/description-logic/alc.test.d.ts +2 -0
  474. package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
  475. package/dist/tests/description-logic/alc.test.js +253 -0
  476. package/dist/tests/description-logic/alc.test.js.map +1 -0
  477. package/dist/tests/fca/fca.test.d.ts +2 -0
  478. package/dist/tests/fca/fca.test.d.ts.map +1 -0
  479. package/dist/tests/fca/fca.test.js +317 -0
  480. package/dist/tests/fca/fca.test.js.map +1 -0
  481. package/dist/tests/fol-prover-equality/prove.test.d.ts +2 -0
  482. package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
  483. package/dist/tests/fol-prover-equality/prove.test.js +179 -0
  484. package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
  485. package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
  486. package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
  487. package/dist/tests/hybrid-logic/semantics.test.js +169 -0
  488. package/dist/tests/hybrid-logic/semantics.test.js.map +1 -0
  489. package/dist/tests/intuitionistic-nj/nj.test.d.ts +2 -0
  490. package/dist/tests/intuitionistic-nj/nj.test.d.ts.map +1 -0
  491. package/dist/tests/intuitionistic-nj/nj.test.js +216 -0
  492. package/dist/tests/intuitionistic-nj/nj.test.js.map +1 -0
  493. package/dist/tests/lambda-calc/lambda-calc.test.d.ts +2 -0
  494. package/dist/tests/lambda-calc/lambda-calc.test.d.ts.map +1 -0
  495. package/dist/tests/lambda-calc/lambda-calc.test.js +164 -0
  496. package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -0
  497. package/dist/tests/ltl-sat/sat.test.d.ts +2 -0
  498. package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
  499. package/dist/tests/ltl-sat/sat.test.js +160 -0
  500. package/dist/tests/ltl-sat/sat.test.js.map +1 -0
  501. package/dist/tests/many-valued/many-valued.test.d.ts +2 -0
  502. package/dist/tests/many-valued/many-valued.test.d.ts.map +1 -0
  503. package/dist/tests/many-valued/many-valued.test.js +150 -0
  504. package/dist/tests/many-valued/many-valued.test.js.map +1 -0
  505. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts +2 -0
  506. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts.map +1 -0
  507. package/dist/tests/modal-frame-axioms/frame-axioms.test.js +236 -0
  508. package/dist/tests/modal-frame-axioms/frame-axioms.test.js.map +1 -0
  509. package/dist/tests/mus/extract.test.d.ts +2 -0
  510. package/dist/tests/mus/extract.test.d.ts.map +1 -0
  511. package/dist/tests/mus/extract.test.js +352 -0
  512. package/dist/tests/mus/extract.test.js.map +1 -0
  513. package/dist/tests/proof-minify/minify.test.d.ts +2 -0
  514. package/dist/tests/proof-minify/minify.test.d.ts.map +1 -0
  515. package/dist/tests/proof-minify/minify.test.js +281 -0
  516. package/dist/tests/proof-minify/minify.test.js.map +1 -0
  517. package/dist/tests/sat-v2-incremental/basic.test.d.ts +2 -0
  518. package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
  519. package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
  520. package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
  521. package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
  522. package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
  523. package/dist/tests/sequent-g3/prover.test.js +205 -0
  524. package/dist/tests/sequent-g3/prover.test.js.map +1 -0
  525. package/dist/tests/substructural/prover.test.d.ts +2 -0
  526. package/dist/tests/substructural/prover.test.d.ts.map +1 -0
  527. package/dist/tests/substructural/prover.test.js +271 -0
  528. package/dist/tests/substructural/prover.test.js.map +1 -0
  529. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts +2 -0
  530. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts.map +1 -0
  531. package/dist/tests/symbolic-diff/symbolic-diff.test.js +278 -0
  532. package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -0
  533. package/dist/tests/term-rewriting/critical-pairs.test.d.ts +2 -0
  534. package/dist/tests/term-rewriting/critical-pairs.test.d.ts.map +1 -0
  535. package/dist/tests/term-rewriting/critical-pairs.test.js +34 -0
  536. package/dist/tests/term-rewriting/critical-pairs.test.js.map +1 -0
  537. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts +2 -0
  538. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts.map +1 -0
  539. package/dist/tests/term-rewriting/knuth-bendix.test.js +94 -0
  540. package/dist/tests/term-rewriting/knuth-bendix.test.js.map +1 -0
  541. package/dist/tests/term-rewriting/lpo.test.d.ts +2 -0
  542. package/dist/tests/term-rewriting/lpo.test.d.ts.map +1 -0
  543. package/dist/tests/term-rewriting/lpo.test.js +57 -0
  544. package/dist/tests/term-rewriting/lpo.test.js.map +1 -0
  545. package/dist/tests/term-rewriting/rewrite.test.d.ts +2 -0
  546. package/dist/tests/term-rewriting/rewrite.test.d.ts.map +1 -0
  547. package/dist/tests/term-rewriting/rewrite.test.js +56 -0
  548. package/dist/tests/term-rewriting/rewrite.test.js.map +1 -0
  549. package/dist/tests/term-rewriting/term-utils.test.d.ts +2 -0
  550. package/dist/tests/term-rewriting/term-utils.test.d.ts.map +1 -0
  551. package/dist/tests/term-rewriting/term-utils.test.js +58 -0
  552. package/dist/tests/term-rewriting/term-utils.test.js.map +1 -0
  553. package/package.json +1 -1
@@ -0,0 +1,418 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Intuitionistic Natural Deduction — Backward proof search
4
+ // ============================================================
5
+ //
6
+ // Estrategia: búsqueda hacia atrás en un cálculo de secuentes
7
+ // intuicionista (G3i-style, single-succedent) que se traduce a
8
+ // NJ "on the fly". El árbol NJ producido se valida luego con
9
+ // `verifyProof` (ver al final).
10
+ //
11
+ // Notas:
12
+ // - Sólo hay UN consecuente (eso es lo que vuelve NJ
13
+ // intuicionista; la lógica clásica usa multi-succedent).
14
+ // - La regla `impL` (modus ponens hacia atrás) y `orL`
15
+ // (eliminación de disyunción) no son invertibles, lo que
16
+ // obliga a buscar con memoización para evitar bucles.
17
+ // - Para `notI` aplicamos el patrón: si la meta es `¬φ`,
18
+ // entonces es lo mismo que probar `φ ⊢ ⊥`.
19
+ //
20
+ // Completitud: G3i es completo para IPC (Dyckhoff, "Contraction-
21
+ // free sequent calculi for intuitionistic logic", 1992). Esta
22
+ // implementación es una variante pragmática con loop-checking;
23
+ // es completa para el fragmento proposicional dentro del budget.
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.proveIntuitionistically = proveIntuitionistically;
26
+ exports.verifyProof = verifyProof;
27
+ const formula_1 = require("./formula");
28
+ function freshCtx(budget) {
29
+ return { budget, used: 0, failed: new Set(), active: new Set() };
30
+ }
31
+ function exhausted(ctx) {
32
+ return ctx.used >= ctx.budget;
33
+ }
34
+ /**
35
+ * Clave de un sub-problema (contexto + meta), normalizada y
36
+ * ordenada para que `{A, B} ⊢ C` y `{B, A} ⊢ C` coincidan.
37
+ */
38
+ function goalKey(context, goal) {
39
+ const sorted = context.map(formula_1.formulaKey).sort();
40
+ return `[${sorted.join('|')}]⊢${(0, formula_1.formulaKey)(goal)}`;
41
+ }
42
+ function contextHas(context, f) {
43
+ for (const g of context)
44
+ if ((0, formula_1.formulaEquals)(g, f))
45
+ return true;
46
+ return false;
47
+ }
48
+ function withContext(context, f) {
49
+ if (contextHas(context, f))
50
+ return context;
51
+ return [...context, f];
52
+ }
53
+ /**
54
+ * Núcleo recursivo de la búsqueda. Devuelve un árbol NJ válido
55
+ * para `context ⊢ goal` o `null` si no se encontró prueba dentro
56
+ * del budget.
57
+ */
58
+ function search(context, goal, ctx) {
59
+ ctx.used++;
60
+ if (exhausted(ctx))
61
+ return null;
62
+ const key = goalKey(context, goal);
63
+ if (ctx.failed.has(key))
64
+ return null;
65
+ if (ctx.active.has(key))
66
+ return null; // ciclo: no hay progreso por este camino
67
+ ctx.active.add(key);
68
+ const tryProve = () => {
69
+ // 1. Axioma / asunción: la meta está en el contexto.
70
+ for (const h of context) {
71
+ if ((0, formula_1.formulaEquals)(h, goal)) {
72
+ return { conclusion: goal, rule: 'assumption', premises: [] };
73
+ }
74
+ }
75
+ // 2. Reglas de introducción dirigidas por la forma de la meta
76
+ // (invertibles → se aplican sin retroceder).
77
+ // ∧I
78
+ if (goal.kind === 'and') {
79
+ const left = search(context, goal.left, ctx);
80
+ if (!left)
81
+ return null;
82
+ const right = search(context, goal.right, ctx);
83
+ if (!right)
84
+ return null;
85
+ return { conclusion: goal, rule: 'andI', premises: [left, right] };
86
+ }
87
+ // →I (descarga el antecedente)
88
+ if (goal.kind === 'implies') {
89
+ const newCtx = withContext(context, goal.left);
90
+ const body = search(newCtx, goal.right, ctx);
91
+ if (!body)
92
+ return null;
93
+ return {
94
+ conclusion: goal,
95
+ rule: 'impI',
96
+ premises: [body],
97
+ discharged: [goal.left],
98
+ };
99
+ }
100
+ // ¬I (descarga la fórmula, deriva ⊥)
101
+ if (goal.kind === 'not') {
102
+ const newCtx = withContext(context, goal.arg);
103
+ const body = search(newCtx, (0, formula_1.bottom)(), ctx);
104
+ if (!body)
105
+ return null;
106
+ return {
107
+ conclusion: goal,
108
+ rule: 'notI',
109
+ premises: [body],
110
+ discharged: [goal.arg],
111
+ };
112
+ }
113
+ // 3. Reglas de eliminación a izquierda (sobre el contexto):
114
+ // son invertibles para ∧, no para ∨/→.
115
+ // Aplicamos primero las invertibles para reducir el contexto.
116
+ // ∧EL/∧ER: descomponer cualquier conjunción del contexto.
117
+ for (let i = 0; i < context.length; i++) {
118
+ const h = context[i];
119
+ if (h && h.kind === 'and') {
120
+ const rest = [...context.slice(0, i), ...context.slice(i + 1)];
121
+ const extended = withContext(withContext(rest, h.left), h.right);
122
+ const sub = search(extended, goal, ctx);
123
+ if (!sub)
124
+ return null;
125
+ // El subárbol asumió h.left y h.right como hipótesis libres.
126
+ // Las "convertimos" en derivaciones explícitas desde h vía
127
+ // ∧EL/∧ER usando substituteAssumption.
128
+ const elimL = {
129
+ conclusion: h.left,
130
+ rule: 'andEL',
131
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }],
132
+ };
133
+ const elimR = {
134
+ conclusion: h.right,
135
+ rule: 'andER',
136
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }],
137
+ };
138
+ const withL = substituteAssumption(sub, h.left, elimL);
139
+ const withBoth = substituteAssumption(withL, h.right, elimR);
140
+ return withBoth;
141
+ }
142
+ }
143
+ // ⊥E: si ⊥ está en el contexto, podemos derivar cualquier meta.
144
+ for (const h of context) {
145
+ if (h.kind === 'bottom') {
146
+ return {
147
+ conclusion: goal,
148
+ rule: 'bottomE',
149
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }],
150
+ };
151
+ }
152
+ }
153
+ // ∨E (no invertible pero útil): si una disyunción A∨B está
154
+ // en el contexto y podemos probar la meta tanto bajo A como
155
+ // bajo B, aplicamos ∨E descargándolas en cada rama.
156
+ for (let i = 0; i < context.length; i++) {
157
+ const h = context[i];
158
+ if (h && h.kind === 'or') {
159
+ const rest = [...context.slice(0, i), ...context.slice(i + 1)];
160
+ const leftCtx = withContext(rest, h.left);
161
+ const rightCtx = withContext(rest, h.right);
162
+ const leftSub = search(leftCtx, goal, ctx);
163
+ if (!leftSub)
164
+ continue;
165
+ const rightSub = search(rightCtx, goal, ctx);
166
+ if (!rightSub)
167
+ continue;
168
+ return {
169
+ conclusion: goal,
170
+ rule: 'orE',
171
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }, leftSub, rightSub],
172
+ discharged: [h.left, h.right],
173
+ };
174
+ }
175
+ }
176
+ // 4. Reglas no-invertibles sobre la meta (∨I) y sobre el
177
+ // contexto (→E).
178
+ // ∨IL / ∨IR: si la meta es disyunción, intentar cada disyunto.
179
+ if (goal.kind === 'or') {
180
+ const leftAttempt = search(context, goal.left, ctx);
181
+ if (leftAttempt) {
182
+ return { conclusion: goal, rule: 'orIL', premises: [leftAttempt] };
183
+ }
184
+ const rightAttempt = search(context, goal.right, ctx);
185
+ if (rightAttempt) {
186
+ return { conclusion: goal, rule: 'orIR', premises: [rightAttempt] };
187
+ }
188
+ // No volvemos: si ninguna funcionó, ∨I no es la respuesta.
189
+ }
190
+ // →E (modus ponens hacia atrás): para cada implicación A→B
191
+ // en el contexto, intenta probar A; si lo logra, B queda como
192
+ // nueva hipótesis y reintentamos la meta.
193
+ for (let i = 0; i < context.length; i++) {
194
+ const h = context[i];
195
+ if (h && h.kind === 'implies') {
196
+ // Caso especial: A→B donde B = goal — entonces sólo hace
197
+ // falta probar A.
198
+ const aProof = search(context, h.left, ctx);
199
+ if (!aProof)
200
+ continue;
201
+ if ((0, formula_1.formulaEquals)(h.right, goal)) {
202
+ return {
203
+ conclusion: goal,
204
+ rule: 'impE',
205
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }, aProof],
206
+ };
207
+ }
208
+ // Caso general: B se añade al contexto y la meta sigue siendo `goal`.
209
+ const rest = [...context.slice(0, i), ...context.slice(i + 1)];
210
+ const extended = withContext(rest, h.right);
211
+ const sub = search(extended, goal, ctx);
212
+ if (!sub)
213
+ continue;
214
+ const elimB = {
215
+ conclusion: h.right,
216
+ rule: 'impE',
217
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }, aProof],
218
+ };
219
+ return substituteAssumption(sub, h.right, elimB);
220
+ }
221
+ }
222
+ // ¬E (modus ponens negativa): si tenemos ¬A en contexto y la
223
+ // meta es ⊥, intentar probar A; el resultado deriva ⊥.
224
+ if (goal.kind === 'bottom') {
225
+ for (const h of context) {
226
+ if (h.kind === 'not') {
227
+ const aProof = search(context, h.arg, ctx);
228
+ if (aProof) {
229
+ return {
230
+ conclusion: (0, formula_1.bottom)(),
231
+ rule: 'notE',
232
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }, aProof],
233
+ };
234
+ }
235
+ }
236
+ // Implicación a ⊥: igual que ¬ pero como φ → ⊥.
237
+ if (h.kind === 'implies' && h.right.kind === 'bottom') {
238
+ const aProof = search(context, h.left, ctx);
239
+ if (aProof) {
240
+ return {
241
+ conclusion: (0, formula_1.bottom)(),
242
+ rule: 'impE',
243
+ premises: [{ conclusion: h, rule: 'assumption', premises: [] }, aProof],
244
+ };
245
+ }
246
+ }
247
+ }
248
+ }
249
+ // 5. Último recurso: si la meta NO es ⊥, intentar probar
250
+ // ⊥ desde el contexto (vía ¬E o impE-to-⊥) y aplicar
251
+ // ⊥E para concluir cualquier cosa.
252
+ if (goal.kind !== 'bottom') {
253
+ const bottomProof = search(context, (0, formula_1.bottom)(), ctx);
254
+ if (bottomProof) {
255
+ return { conclusion: goal, rule: 'bottomE', premises: [bottomProof] };
256
+ }
257
+ }
258
+ return null;
259
+ };
260
+ const result = tryProve();
261
+ ctx.active.delete(key);
262
+ if (!result)
263
+ ctx.failed.add(key);
264
+ return result;
265
+ }
266
+ /**
267
+ * Reescribe un subárbol que asume `assumption` como hipótesis libre,
268
+ * sustituyendo cada `assumption`-node por la derivación `derivation`.
269
+ * Esto permite que una eliminación de regla en el contexto (∧EL,
270
+ * impE, etc.) "rellene" lo que el subgoal trató como hipótesis.
271
+ */
272
+ function substituteAssumption(proof, assumption, derivation) {
273
+ if (proof.rule === 'assumption' && (0, formula_1.formulaEquals)(proof.conclusion, assumption)) {
274
+ return derivation;
275
+ }
276
+ // Si la regla aplicada descargó la asunción en cuestión, no la
277
+ // sustituimos dentro de las premisas (alcance local).
278
+ const dischargedHere = proof.discharged?.some((d) => (0, formula_1.formulaEquals)(d, assumption));
279
+ if (dischargedHere)
280
+ return proof;
281
+ const newPremises = proof.premises.map((p) => substituteAssumption(p, assumption, derivation));
282
+ return { ...proof, premises: newPremises };
283
+ }
284
+ /**
285
+ * API pública.
286
+ *
287
+ * Devuelve un árbol NJ que demuestra `goal` a partir de las
288
+ * `premises` dadas, o `null` si no encontró prueba dentro del
289
+ * budget configurado.
290
+ */
291
+ function proveIntuitionistically(premises, goal, options = {}) {
292
+ const ctx = freshCtx(options.budget ?? 10_000);
293
+ return search(premises.slice(), goal, ctx);
294
+ }
295
+ // ── Verificación de proofs ──────────────────────────────────
296
+ //
297
+ // `verifyProof` recorre el árbol y comprueba localmente cada
298
+ // regla. Útil para tests y para garantizar que el prover no
299
+ // produce derivaciones inconsistentes.
300
+ function verifyProof(proof, initialContext = []) {
301
+ return verifyAt(proof, initialContext);
302
+ }
303
+ function verifyAt(proof, ctx) {
304
+ const c = proof.conclusion;
305
+ switch (proof.rule) {
306
+ case 'assumption':
307
+ return ctx.some((h) => (0, formula_1.formulaEquals)(h, c));
308
+ case 'andI': {
309
+ if (c.kind !== 'and' || proof.premises.length !== 2)
310
+ return false;
311
+ const [pa, pb] = proof.premises;
312
+ if (!pa || !pb)
313
+ return false;
314
+ return ((0, formula_1.formulaEquals)(pa.conclusion, c.left) &&
315
+ (0, formula_1.formulaEquals)(pb.conclusion, c.right) &&
316
+ verifyAt(pa, ctx) &&
317
+ verifyAt(pb, ctx));
318
+ }
319
+ case 'andEL': {
320
+ if (proof.premises.length !== 1)
321
+ return false;
322
+ const p = proof.premises[0];
323
+ if (!p || p.conclusion.kind !== 'and')
324
+ return false;
325
+ return (0, formula_1.formulaEquals)(p.conclusion.left, c) && verifyAt(p, ctx);
326
+ }
327
+ case 'andER': {
328
+ if (proof.premises.length !== 1)
329
+ return false;
330
+ const p = proof.premises[0];
331
+ if (!p || p.conclusion.kind !== 'and')
332
+ return false;
333
+ return (0, formula_1.formulaEquals)(p.conclusion.right, c) && verifyAt(p, ctx);
334
+ }
335
+ case 'orIL': {
336
+ if (c.kind !== 'or' || proof.premises.length !== 1)
337
+ return false;
338
+ const p = proof.premises[0];
339
+ if (!p)
340
+ return false;
341
+ return (0, formula_1.formulaEquals)(p.conclusion, c.left) && verifyAt(p, ctx);
342
+ }
343
+ case 'orIR': {
344
+ if (c.kind !== 'or' || proof.premises.length !== 1)
345
+ return false;
346
+ const p = proof.premises[0];
347
+ if (!p)
348
+ return false;
349
+ return (0, formula_1.formulaEquals)(p.conclusion, c.right) && verifyAt(p, ctx);
350
+ }
351
+ case 'orE': {
352
+ if (proof.premises.length !== 3)
353
+ return false;
354
+ const [maj, l, r] = proof.premises;
355
+ if (!maj || !l || !r)
356
+ return false;
357
+ if (maj.conclusion.kind !== 'or')
358
+ return false;
359
+ const A = maj.conclusion.left;
360
+ const B = maj.conclusion.right;
361
+ if (!(0, formula_1.formulaEquals)(l.conclusion, c))
362
+ return false;
363
+ if (!(0, formula_1.formulaEquals)(r.conclusion, c))
364
+ return false;
365
+ return (verifyAt(maj, ctx) && verifyAt(l, withContext(ctx, A)) && verifyAt(r, withContext(ctx, B)));
366
+ }
367
+ case 'impI': {
368
+ if (c.kind !== 'implies' || proof.premises.length !== 1)
369
+ return false;
370
+ const p = proof.premises[0];
371
+ if (!p)
372
+ return false;
373
+ return (0, formula_1.formulaEquals)(p.conclusion, c.right) && verifyAt(p, withContext(ctx, c.left));
374
+ }
375
+ case 'impE': {
376
+ if (proof.premises.length !== 2)
377
+ return false;
378
+ const [maj, min] = proof.premises;
379
+ if (!maj || !min)
380
+ return false;
381
+ if (maj.conclusion.kind !== 'implies')
382
+ return false;
383
+ return ((0, formula_1.formulaEquals)(maj.conclusion.left, min.conclusion) &&
384
+ (0, formula_1.formulaEquals)(maj.conclusion.right, c) &&
385
+ verifyAt(maj, ctx) &&
386
+ verifyAt(min, ctx));
387
+ }
388
+ case 'notI': {
389
+ if (c.kind !== 'not' || proof.premises.length !== 1)
390
+ return false;
391
+ const p = proof.premises[0];
392
+ if (!p)
393
+ return false;
394
+ return p.conclusion.kind === 'bottom' && verifyAt(p, withContext(ctx, c.arg));
395
+ }
396
+ case 'notE': {
397
+ if (c.kind !== 'bottom' || proof.premises.length !== 2)
398
+ return false;
399
+ const [neg, pos] = proof.premises;
400
+ if (!neg || !pos)
401
+ return false;
402
+ if (neg.conclusion.kind !== 'not')
403
+ return false;
404
+ return ((0, formula_1.formulaEquals)(neg.conclusion.arg, pos.conclusion) &&
405
+ verifyAt(neg, ctx) &&
406
+ verifyAt(pos, ctx));
407
+ }
408
+ case 'bottomE': {
409
+ if (proof.premises.length !== 1)
410
+ return false;
411
+ const p = proof.premises[0];
412
+ if (!p)
413
+ return false;
414
+ return p.conclusion.kind === 'bottom' && verifyAt(p, ctx);
415
+ }
416
+ }
417
+ }
418
+ //# sourceMappingURL=prover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prover.js","sourceRoot":"","sources":["../../../src/profiles/intuitionistic-nj/prover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Fórmula proposicional intuicionista. No incluye `true` explícito
3
+ * (irrelevante; usar `bottom → bottom` si hace falta).
4
+ */
5
+ export type IntuitFormula = {
6
+ kind: 'atom';
7
+ name: string;
8
+ } | {
9
+ kind: 'and';
10
+ left: IntuitFormula;
11
+ right: IntuitFormula;
12
+ } | {
13
+ kind: 'or';
14
+ left: IntuitFormula;
15
+ right: IntuitFormula;
16
+ } | {
17
+ kind: 'implies';
18
+ left: IntuitFormula;
19
+ right: IntuitFormula;
20
+ } | {
21
+ kind: 'not';
22
+ arg: IntuitFormula;
23
+ } | {
24
+ kind: 'bottom';
25
+ };
26
+ /**
27
+ * Reglas de prueba NJ. Cada nodo del árbol marca la regla aplicada
28
+ * para llegar a su `conclusion` desde sus `premises`.
29
+ */
30
+ export type ProofRule = 'assumption' | 'andI' | 'andEL' | 'andER' | 'orIL' | 'orIR' | 'orE' | 'impI' | 'impE' | 'notI' | 'notE' | 'bottomE';
31
+ /**
32
+ * Árbol de prueba NJ. Las hipótesis abiertas viven implícitamente
33
+ * en el contexto del subárbol; `discharged` lista las hipótesis
34
+ * cerradas por la regla aplicada en este nodo (relevante para →I,
35
+ * ¬I y ∨E).
36
+ */
37
+ export interface NJProof {
38
+ conclusion: IntuitFormula;
39
+ rule: ProofRule;
40
+ premises: NJProof[];
41
+ discharged?: IntuitFormula[];
42
+ }
43
+ /**
44
+ * Modelo de Kripke para IPC: preorden de mundos con valuación
45
+ * persistente. La accesibilidad debe ser reflexiva y transitiva;
46
+ * `forcing` es monótona (si w ⊩ p y w ≤ v entonces v ⊩ p).
47
+ */
48
+ export interface KripkeIntuitModel {
49
+ worlds: string[];
50
+ /** Aristas explícitas de la accesibilidad (clausura reflexiva-transitiva implícita). */
51
+ accessibility: Array<[string, string]>;
52
+ /** Por mundo, los átomos forzados. */
53
+ forcing: Map<string, Set<string>>;
54
+ }
55
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/profiles/intuitionistic-nj/types.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,CAAC;AAEd;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wFAAwF;IACxF,aAAa,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,sCAAsC;IACtC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACnC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Intuitionistic Natural Deduction (NJ) — Tipos
4
+ // ============================================================
5
+ //
6
+ // Sistema NJ de Gentzen para lógica intuicionista proposicional.
7
+ // Sin tercero excluido, sin doble negación clásica.
8
+ //
9
+ // Reglas implementadas:
10
+ // - Conjunción: ∧I, ∧EL, ∧ER
11
+ // - Disyunción: ∨IL, ∨IR, ∨E (con descarga)
12
+ // - Implicación: →I (descarga), →E (modus ponens)
13
+ // - Negación: ¬I (descarga, deriva ⊥), ¬E (deriva ⊥)
14
+ // - Falsedad: ⊥E (ex falso quodlibet)
15
+ // - Asunción: hipótesis del contexto
16
+ //
17
+ // Convención: `¬φ` se entiende como `φ → ⊥`. La regla `notI` es
18
+ // `→I` cuando el consecuente es `⊥`; `notE` es `→E` produciendo
19
+ // `⊥` desde `φ` y `¬φ`.
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/intuitionistic-nj/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;AAC/D,EAAE;AACF,iEAAiE;AACjE,oDAAoD;AACpD,EAAE;AACF,wBAAwB;AACxB,iCAAiC;AACjC,gDAAgD;AAChD,qDAAqD;AACrD,2DAA2D;AAC3D,4CAA4C;AAC5C,2CAA2C;AAC3C,EAAE;AACF,gEAAgE;AAChE,gEAAgE;AAChE,wBAAwB"}
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export { isSatisfiable, isValid, toBuchi } from './sat';
3
+ export { toNNF, closure, enumerateAtoms, transitions } from './tableau';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/index.ts"],"names":[],"mappings":"AAaA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST LTL-SAT — Procedimiento de decisión LTL vía tableau
4
+ // ============================================================
5
+ // API pública:
6
+ // isSatisfiable(φ): { sat, witness? } — SAT explícito con lazo
7
+ // isValid(φ): boolean — ¬sat(¬φ)
8
+ // toBuchi(φ): { states, accepting } — estimación de tamaño
9
+ //
10
+ // Operadores soportados: atom, ¬, ∧, ∨, X, F, G, U, R. El operador
11
+ // derivado W (weak until) está disponible vía `weakUntil(φ,ψ)` y se
12
+ // expande a `(φ U ψ) ∨ G φ` en la entrada.
13
+ // ============================================================
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.transitions = exports.enumerateAtoms = exports.closure = exports.toNNF = exports.toBuchi = exports.isValid = exports.isSatisfiable = void 0;
30
+ __exportStar(require("./types"), exports);
31
+ var sat_1 = require("./sat");
32
+ Object.defineProperty(exports, "isSatisfiable", { enumerable: true, get: function () { return sat_1.isSatisfiable; } });
33
+ Object.defineProperty(exports, "isValid", { enumerable: true, get: function () { return sat_1.isValid; } });
34
+ Object.defineProperty(exports, "toBuchi", { enumerable: true, get: function () { return sat_1.toBuchi; } });
35
+ var tableau_1 = require("./tableau");
36
+ Object.defineProperty(exports, "toNNF", { enumerable: true, get: function () { return tableau_1.toNNF; } });
37
+ Object.defineProperty(exports, "closure", { enumerable: true, get: function () { return tableau_1.closure; } });
38
+ Object.defineProperty(exports, "enumerateAtoms", { enumerable: true, get: function () { return tableau_1.enumerateAtoms; } });
39
+ Object.defineProperty(exports, "transitions", { enumerable: true, get: function () { return tableau_1.transitions; } });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAC/D,eAAe;AACf,mEAAmE;AACnE,qDAAqD;AACrD,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,2CAA2C;AAC3C,+DAA+D;;;;;;;;;;;;;;;;;AAE/D,0CAAwB;AACxB,6BAAwD;AAA/C,oGAAA,aAAa,OAAA;AAAE,8FAAA,OAAO,OAAA;AAAE,8FAAA,OAAO,OAAA;AACxC,qCAAwE;AAA/D,gGAAA,KAAK,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,sGAAA,WAAW,OAAA"}
@@ -0,0 +1,8 @@
1
+ import { LTLFormula, SatResult } from './types';
2
+ export declare function isSatisfiable(phi: LTLFormula): SatResult;
3
+ export declare function isValid(phi: LTLFormula): boolean;
4
+ export declare function toBuchi(phi: LTLFormula): {
5
+ states: number;
6
+ accepting: number;
7
+ };
8
+ //# sourceMappingURL=sat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/sat.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAc,UAAU,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAsG1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CASxD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAGhD;AAKD,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAO9E"}