@stevenvo780/st-lang 4.0.1 → 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 (393) 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/coverage-95/api-and-interpreter-e2e.test.d.ts +2 -0
  218. package/dist/tests/coverage-95/api-and-interpreter-e2e.test.d.ts.map +1 -0
  219. package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js +255 -0
  220. package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js.map +1 -0
  221. package/dist/tests/coverage-95/argumentation.test.d.ts +2 -0
  222. package/dist/tests/coverage-95/argumentation.test.d.ts.map +1 -0
  223. package/dist/tests/coverage-95/argumentation.test.js +105 -0
  224. package/dist/tests/coverage-95/argumentation.test.js.map +1 -0
  225. package/dist/tests/coverage-95/arithmetic.test.d.ts +2 -0
  226. package/dist/tests/coverage-95/arithmetic.test.d.ts.map +1 -0
  227. package/dist/tests/coverage-95/arithmetic.test.js +139 -0
  228. package/dist/tests/coverage-95/arithmetic.test.js.map +1 -0
  229. package/dist/tests/coverage-95/belnap.test.d.ts +2 -0
  230. package/dist/tests/coverage-95/belnap.test.d.ts.map +1 -0
  231. package/dist/tests/coverage-95/belnap.test.js +145 -0
  232. package/dist/tests/coverage-95/belnap.test.js.map +1 -0
  233. package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts +2 -0
  234. package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts.map +1 -0
  235. package/dist/tests/coverage-95/cdcl-v2-solver.test.js +61 -0
  236. package/dist/tests/coverage-95/cdcl-v2-solver.test.js.map +1 -0
  237. package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts +2 -0
  238. package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts.map +1 -0
  239. package/dist/tests/coverage-95/classical-propositional-direct.test.js +175 -0
  240. package/dist/tests/coverage-95/classical-propositional-direct.test.js.map +1 -0
  241. package/dist/tests/coverage-95/compat.test.d.ts +2 -0
  242. package/dist/tests/coverage-95/compat.test.d.ts.map +1 -0
  243. package/dist/tests/coverage-95/compat.test.js +82 -0
  244. package/dist/tests/coverage-95/compat.test.js.map +1 -0
  245. package/dist/tests/coverage-95/examples-runner.test.d.ts +2 -0
  246. package/dist/tests/coverage-95/examples-runner.test.d.ts.map +1 -0
  247. package/dist/tests/coverage-95/examples-runner.test.js +34 -0
  248. package/dist/tests/coverage-95/examples-runner.test.js.map +1 -0
  249. package/dist/tests/coverage-95/first-order.test.d.ts +2 -0
  250. package/dist/tests/coverage-95/first-order.test.d.ts.map +1 -0
  251. package/dist/tests/coverage-95/first-order.test.js +138 -0
  252. package/dist/tests/coverage-95/first-order.test.js.map +1 -0
  253. package/dist/tests/coverage-95/fol-prover.test.d.ts +2 -0
  254. package/dist/tests/coverage-95/fol-prover.test.d.ts.map +1 -0
  255. package/dist/tests/coverage-95/fol-prover.test.js +228 -0
  256. package/dist/tests/coverage-95/fol-prover.test.js.map +1 -0
  257. package/dist/tests/coverage-95/interpreter-commands.test.d.ts +2 -0
  258. package/dist/tests/coverage-95/interpreter-commands.test.d.ts.map +1 -0
  259. package/dist/tests/coverage-95/interpreter-commands.test.js +332 -0
  260. package/dist/tests/coverage-95/interpreter-commands.test.js.map +1 -0
  261. package/dist/tests/coverage-95/lsp-server.test.d.ts +2 -0
  262. package/dist/tests/coverage-95/lsp-server.test.d.ts.map +1 -0
  263. package/dist/tests/coverage-95/lsp-server.test.js +181 -0
  264. package/dist/tests/coverage-95/lsp-server.test.js.map +1 -0
  265. package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts +2 -0
  266. package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts.map +1 -0
  267. package/dist/tests/coverage-95/modal-tableau-profiles.test.js +157 -0
  268. package/dist/tests/coverage-95/modal-tableau-profiles.test.js.map +1 -0
  269. package/dist/tests/coverage-95/parallel-sat.test.d.ts +2 -0
  270. package/dist/tests/coverage-95/parallel-sat.test.d.ts.map +1 -0
  271. package/dist/tests/coverage-95/parallel-sat.test.js +42 -0
  272. package/dist/tests/coverage-95/parallel-sat.test.js.map +1 -0
  273. package/dist/tests/coverage-95/parser-extra.test.d.ts +2 -0
  274. package/dist/tests/coverage-95/parser-extra.test.d.ts.map +1 -0
  275. package/dist/tests/coverage-95/parser-extra.test.js +210 -0
  276. package/dist/tests/coverage-95/parser-extra.test.js.map +1 -0
  277. package/dist/tests/coverage-95/propositional-utilities.test.d.ts +2 -0
  278. package/dist/tests/coverage-95/propositional-utilities.test.d.ts.map +1 -0
  279. package/dist/tests/coverage-95/propositional-utilities.test.js +281 -0
  280. package/dist/tests/coverage-95/propositional-utilities.test.js.map +1 -0
  281. package/dist/tests/coverage-95/protocol-handler.test.d.ts +2 -0
  282. package/dist/tests/coverage-95/protocol-handler.test.d.ts.map +1 -0
  283. package/dist/tests/coverage-95/protocol-handler.test.js +275 -0
  284. package/dist/tests/coverage-95/protocol-handler.test.js.map +1 -0
  285. package/dist/tests/coverage-95/smt-mock-backend.test.d.ts +2 -0
  286. package/dist/tests/coverage-95/smt-mock-backend.test.d.ts.map +1 -0
  287. package/dist/tests/coverage-95/smt-mock-backend.test.js +201 -0
  288. package/dist/tests/coverage-95/smt-mock-backend.test.js.map +1 -0
  289. package/dist/tests/coverage-95/smt-serializer.test.d.ts +2 -0
  290. package/dist/tests/coverage-95/smt-serializer.test.d.ts.map +1 -0
  291. package/dist/tests/coverage-95/smt-serializer.test.js +143 -0
  292. package/dist/tests/coverage-95/smt-serializer.test.js.map +1 -0
  293. package/dist/tests/coverage-95/smt-subprocess.test.d.ts +2 -0
  294. package/dist/tests/coverage-95/smt-subprocess.test.d.ts.map +1 -0
  295. package/dist/tests/coverage-95/smt-subprocess.test.js +96 -0
  296. package/dist/tests/coverage-95/smt-subprocess.test.js.map +1 -0
  297. package/dist/tests/coverage-95/tableau-engine.test.d.ts +2 -0
  298. package/dist/tests/coverage-95/tableau-engine.test.d.ts.map +1 -0
  299. package/dist/tests/coverage-95/tableau-engine.test.js +125 -0
  300. package/dist/tests/coverage-95/tableau-engine.test.js.map +1 -0
  301. package/dist/tests/coverage-95/temporal-ltl.test.d.ts +2 -0
  302. package/dist/tests/coverage-95/temporal-ltl.test.d.ts.map +1 -0
  303. package/dist/tests/coverage-95/temporal-ltl.test.js +94 -0
  304. package/dist/tests/coverage-95/temporal-ltl.test.js.map +1 -0
  305. package/dist/tests/coverage-95/typecheck-checker.test.d.ts +2 -0
  306. package/dist/tests/coverage-95/typecheck-checker.test.d.ts.map +1 -0
  307. package/dist/tests/coverage-95/typecheck-checker.test.js +191 -0
  308. package/dist/tests/coverage-95/typecheck-checker.test.js.map +1 -0
  309. package/dist/tests/coverage-95/undecidability-detector.test.d.ts +2 -0
  310. package/dist/tests/coverage-95/undecidability-detector.test.d.ts.map +1 -0
  311. package/dist/tests/coverage-95/undecidability-detector.test.js +149 -0
  312. package/dist/tests/coverage-95/undecidability-detector.test.js.map +1 -0
  313. package/dist/tests/coverage-95/visitor.test.d.ts +2 -0
  314. package/dist/tests/coverage-95/visitor.test.d.ts.map +1 -0
  315. package/dist/tests/coverage-95/visitor.test.js +140 -0
  316. package/dist/tests/coverage-95/visitor.test.js.map +1 -0
  317. package/dist/tests/ctl/check.test.d.ts +2 -0
  318. package/dist/tests/ctl/check.test.d.ts.map +1 -0
  319. package/dist/tests/ctl/check.test.js +337 -0
  320. package/dist/tests/ctl/check.test.js.map +1 -0
  321. package/dist/tests/curry-howard/infer.test.d.ts +2 -0
  322. package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
  323. package/dist/tests/curry-howard/infer.test.js +93 -0
  324. package/dist/tests/curry-howard/infer.test.js.map +1 -0
  325. package/dist/tests/curry-howard/proof.test.d.ts +2 -0
  326. package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
  327. package/dist/tests/curry-howard/proof.test.js +105 -0
  328. package/dist/tests/curry-howard/proof.test.js.map +1 -0
  329. package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
  330. package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
  331. package/dist/tests/curry-howard/reduce.test.js +109 -0
  332. package/dist/tests/curry-howard/reduce.test.js.map +1 -0
  333. package/dist/tests/default-logic/extensions.test.d.ts +2 -0
  334. package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
  335. package/dist/tests/default-logic/extensions.test.js +323 -0
  336. package/dist/tests/default-logic/extensions.test.js.map +1 -0
  337. package/dist/tests/description-logic/alc.test.d.ts +2 -0
  338. package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
  339. package/dist/tests/description-logic/alc.test.js +253 -0
  340. package/dist/tests/description-logic/alc.test.js.map +1 -0
  341. package/dist/tests/fol-prover-equality/prove.test.d.ts +2 -0
  342. package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
  343. package/dist/tests/fol-prover-equality/prove.test.js +179 -0
  344. package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
  345. package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
  346. package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
  347. package/dist/tests/hybrid-logic/semantics.test.js +169 -0
  348. package/dist/tests/hybrid-logic/semantics.test.js.map +1 -0
  349. package/dist/tests/ltl-sat/sat.test.d.ts +2 -0
  350. package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
  351. package/dist/tests/ltl-sat/sat.test.js +160 -0
  352. package/dist/tests/ltl-sat/sat.test.js.map +1 -0
  353. package/dist/tests/mus/extract.test.d.ts +2 -0
  354. package/dist/tests/mus/extract.test.d.ts.map +1 -0
  355. package/dist/tests/mus/extract.test.js +352 -0
  356. package/dist/tests/mus/extract.test.js.map +1 -0
  357. package/dist/tests/sat-v2-incremental/basic.test.d.ts +2 -0
  358. package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
  359. package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
  360. package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
  361. package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
  362. package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
  363. package/dist/tests/sequent-g3/prover.test.js +205 -0
  364. package/dist/tests/sequent-g3/prover.test.js.map +1 -0
  365. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts +2 -0
  366. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts.map +1 -0
  367. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js +200 -0
  368. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js.map +1 -0
  369. package/dist/text-layer/v2/index.d.ts +2 -0
  370. package/dist/text-layer/v2/index.d.ts.map +1 -1
  371. package/dist/text-layer/v2/index.js +7 -1
  372. package/dist/text-layer/v2/index.js.map +1 -1
  373. package/dist/text-layer/v2/mdx-bridge/diff.d.ts +13 -0
  374. package/dist/text-layer/v2/mdx-bridge/diff.d.ts.map +1 -0
  375. package/dist/text-layer/v2/mdx-bridge/diff.js +69 -0
  376. package/dist/text-layer/v2/mdx-bridge/diff.js.map +1 -0
  377. package/dist/text-layer/v2/mdx-bridge/index.d.ts +14 -0
  378. package/dist/text-layer/v2/mdx-bridge/index.d.ts.map +1 -0
  379. package/dist/text-layer/v2/mdx-bridge/index.js +21 -0
  380. package/dist/text-layer/v2/mdx-bridge/index.js.map +1 -0
  381. package/dist/text-layer/v2/mdx-bridge/parser.d.ts +33 -0
  382. package/dist/text-layer/v2/mdx-bridge/parser.d.ts.map +1 -0
  383. package/dist/text-layer/v2/mdx-bridge/parser.js +192 -0
  384. package/dist/text-layer/v2/mdx-bridge/parser.js.map +1 -0
  385. package/dist/text-layer/v2/mdx-bridge/serializer.d.ts +17 -0
  386. package/dist/text-layer/v2/mdx-bridge/serializer.d.ts.map +1 -0
  387. package/dist/text-layer/v2/mdx-bridge/serializer.js +69 -0
  388. package/dist/text-layer/v2/mdx-bridge/serializer.js.map +1 -0
  389. package/dist/text-layer/v2/mdx-bridge/types.d.ts +53 -0
  390. package/dist/text-layer/v2/mdx-bridge/types.d.ts.map +1 -0
  391. package/dist/text-layer/v2/mdx-bridge/types.js +19 -0
  392. package/dist/text-layer/v2/mdx-bridge/types.js.map +1 -0
  393. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ import type { BeliefSet, PartialOrder } from './types';
2
+ /**
3
+ * Construye un belief set a partir de un arreglo de fórmulas iniciales.
4
+ * Duplicados sintácticos se colapsan automáticamente.
5
+ */
6
+ export declare function newBeliefSet(initial: string[]): BeliefSet;
7
+ /**
8
+ * ¿Es K consistente? (la conjunción de todas sus fórmulas es satisfactible)
9
+ */
10
+ export declare function isConsistent(K: BeliefSet): boolean;
11
+ /**
12
+ * ¿K implica lógicamente φ?
13
+ * φ se pasa como cadena (se parsea con la misma sintaxis que las creencias).
14
+ */
15
+ export declare function entails(K: BeliefSet, phi: string): boolean;
16
+ /**
17
+ * Expansion: K + φ.
18
+ * Definición AGM: K + φ = Cn(K ∪ {φ}).
19
+ * Sobre belief bases: añadimos φ al conjunto sintáctico (sin clausurar).
20
+ * NO garantiza consistencia (el caller suele preferir `revise` en su lugar).
21
+ */
22
+ export declare function expand(K: BeliefSet, phi: string): BeliefSet;
23
+ /**
24
+ * Contraction: K - φ.
25
+ * Definición AGM: K - φ es el mayor subconjunto de K que NO implica φ.
26
+ *
27
+ * Casos especiales:
28
+ * - Si φ es tautología (vacuidad K-5): K - φ = K (no se puede remover).
29
+ * - Si K no implica φ: K - φ = K.
30
+ * - En cualquier otro caso: se aplica partial-meet con `ordering`.
31
+ *
32
+ * El parámetro opcional `ordering` define el "epistemic entrenchment":
33
+ * fórmulas con mayor número son más arraigadas y se preservan primero.
34
+ */
35
+ export declare function contract(K: BeliefSet, phi: string, ordering?: PartialOrder): BeliefSet;
36
+ /**
37
+ * Revision: K * φ.
38
+ * Identidad de Levi: K * φ = (K - ¬φ) + φ.
39
+ *
40
+ * Garantiza:
41
+ * - K2 (éxito): φ ∈ K * φ.
42
+ * - K5 (consistencia): si φ es consistente, K * φ es consistente.
43
+ *
44
+ * El parámetro `ordering` se usa para la contracción interna por ¬φ.
45
+ */
46
+ export declare function revise(K: BeliefSet, phi: string, ordering?: PartialOrder): BeliefSet;
47
+ /**
48
+ * Verifica una versión finitizada del postulado K1 (cierre lógico):
49
+ * para cada φ ∈ K, K entails φ (autocontención lógica).
50
+ * En belief bases puras esto es trivial; aquí adicionalmente exigimos
51
+ * que K sea consistente o que cada fórmula sea bien-formada.
52
+ */
53
+ export declare function verifyClosure(K: BeliefSet): boolean;
54
+ /**
55
+ * K2 (éxito): φ ∈ Cn(K * φ).
56
+ * Tras revisar por φ, el belief set debe implicar φ.
57
+ */
58
+ export declare function verifySuccess(K_revised: BeliefSet, phi: string): boolean;
59
+ /**
60
+ * K3 (inclusión): K * φ ⊆ K + φ.
61
+ * Toda fórmula derivable de K * φ debe ser derivable de K + φ.
62
+ * Para belief bases finitas, basta verificar que cada formula sintáctica
63
+ * de K_revised sea derivable desde K ∪ {φ}.
64
+ */
65
+ export declare function verifyInclusion(K_revised: BeliefSet, K: BeliefSet, phi: string): boolean;
66
+ /**
67
+ * Helper utilitario: devuelve K como arreglo ordenado de fórmulas
68
+ * (útil para tests, debugging, hashing estable).
69
+ */
70
+ export declare function beliefSetToArray(K: BeliefSet): string[];
71
+ /**
72
+ * Serialización canónica de un belief set: ordena alfabéticamente y
73
+ * normaliza cada fórmula vía `formulaToString` sobre su AST parseado.
74
+ */
75
+ export declare function canonicalize(K: BeliefSet): string;
76
+ //# sourceMappingURL=agm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agm.d.ts","sourceRoot":"","sources":["../../src/belief-revision/agm.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAqCpE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAQzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAElD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAG1D;AAMD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAM3D;AA8CD;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,SAAS,CAgBtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,SAAS,CAWpF;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAMnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAQxF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAEvD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAIjD"}
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Belief Revision — Operadores AGM
4
+ // ============================================================
5
+ //
6
+ // Implementa los tres operadores básicos AGM sobre belief sets:
7
+ // - expand (K + φ): unión sintáctica.
8
+ // - contract (K - φ): partial-meet contraction guiada por entrenchment.
9
+ // - revise (K * φ): identidad de Levi → (K - ¬φ) + φ.
10
+ //
11
+ // Verificación de postulados básicos:
12
+ // - K1 (cierre lógico): aquí trabajamos sobre belief BASES (no cierres
13
+ // deductivos completos). `verifyClosure` chequea que toda fórmula que
14
+ // `entails(K, φ)` produzca el mismo veredicto que K (idempotencia
15
+ // semántica). Es una versión finitizada del postulado original.
16
+ // - K2 (éxito): φ ∈ Cn(K * φ).
17
+ // - K3 (inclusión): K * φ ⊆ K + φ.
18
+ //
19
+ // Las fórmulas se almacenan como CADENAS para preservar la representación
20
+ // sintáctica que el usuario provee; las operaciones lógicas (entailment,
21
+ // consistencia) parsean a AST cuando hace falta.
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.newBeliefSet = newBeliefSet;
24
+ exports.isConsistent = isConsistent;
25
+ exports.entails = entails;
26
+ exports.expand = expand;
27
+ exports.contract = contract;
28
+ exports.revise = revise;
29
+ exports.verifyClosure = verifyClosure;
30
+ exports.verifySuccess = verifySuccess;
31
+ exports.verifyInclusion = verifyInclusion;
32
+ exports.beliefSetToArray = beliefSetToArray;
33
+ exports.canonicalize = canonicalize;
34
+ const parser_1 = require("./parser");
35
+ const sat_1 = require("./sat");
36
+ // ---------------------------------------------------------------------------
37
+ // Helpers internos
38
+ // ---------------------------------------------------------------------------
39
+ /** Cache de parsing para evitar reparsear fórmulas repetidas. */
40
+ const parseCache = new Map();
41
+ function parseCached(formula) {
42
+ let cached = parseCache.get(formula);
43
+ if (cached === undefined) {
44
+ cached = (0, parser_1.parsePropFormula)(formula);
45
+ parseCache.set(formula, cached);
46
+ }
47
+ return cached;
48
+ }
49
+ function toFormulaList(K) {
50
+ const out = [];
51
+ for (const s of K.formulas) {
52
+ out.push(parseCached(s));
53
+ }
54
+ return out;
55
+ }
56
+ function entrenchment(formula, ordering) {
57
+ if (ordering === undefined)
58
+ return 0;
59
+ return ordering.get(formula) ?? 0;
60
+ }
61
+ // ---------------------------------------------------------------------------
62
+ // Constructores y predicados básicos
63
+ // ---------------------------------------------------------------------------
64
+ /**
65
+ * Construye un belief set a partir de un arreglo de fórmulas iniciales.
66
+ * Duplicados sintácticos se colapsan automáticamente.
67
+ */
68
+ function newBeliefSet(initial) {
69
+ const formulas = new Set();
70
+ for (const f of initial) {
71
+ // Validar que parsea para fallar temprano si hay sintaxis inválida.
72
+ parseCached(f);
73
+ formulas.add(f);
74
+ }
75
+ return { formulas };
76
+ }
77
+ /**
78
+ * ¿Es K consistente? (la conjunción de todas sus fórmulas es satisfactible)
79
+ */
80
+ function isConsistent(K) {
81
+ return (0, sat_1.isSatisfiable)(toFormulaList(K));
82
+ }
83
+ /**
84
+ * ¿K implica lógicamente φ?
85
+ * φ se pasa como cadena (se parsea con la misma sintaxis que las creencias).
86
+ */
87
+ function entails(K, phi) {
88
+ const phiAst = parseCached(phi);
89
+ return (0, sat_1.entailsFormula)(toFormulaList(K), phiAst);
90
+ }
91
+ // ---------------------------------------------------------------------------
92
+ // Operadores AGM
93
+ // ---------------------------------------------------------------------------
94
+ /**
95
+ * Expansion: K + φ.
96
+ * Definición AGM: K + φ = Cn(K ∪ {φ}).
97
+ * Sobre belief bases: añadimos φ al conjunto sintáctico (sin clausurar).
98
+ * NO garantiza consistencia (el caller suele preferir `revise` en su lugar).
99
+ */
100
+ function expand(K, phi) {
101
+ // Validar sintaxis.
102
+ parseCached(phi);
103
+ const formulas = new Set(K.formulas);
104
+ formulas.add(phi);
105
+ return { formulas };
106
+ }
107
+ /**
108
+ * Selecciona los candidatos a remover: subconjunto mínimo de K cuya
109
+ * eliminación rompe la implicación de φ, preferentemente los menos
110
+ * arraigados según `ordering`.
111
+ *
112
+ * Estrategia (greedy partial-meet):
113
+ * 1. Ordenar las fórmulas de K ASCENDENTEMENTE por entrenchment
114
+ * (menos arraigada primero, candidata principal a remover).
115
+ * 2. Eliminar fórmulas en ese orden hasta que K \ removed deje de
116
+ * implicar φ. Detener al primer subconjunto que rompe φ.
117
+ * 3. Si K no implica φ, no se remueve nada.
118
+ */
119
+ function selectContractionVictims(K, phi, ordering) {
120
+ const formulasList = Array.from(K.formulas);
121
+ // Si K ya no implica φ, no hay nada que remover.
122
+ if (!(0, sat_1.entailsFormula)(formulasList.map(parseCached), phi)) {
123
+ return new Set();
124
+ }
125
+ // Ordenar ascendentemente por entrenchment; desempate lexicográfico.
126
+ const sorted = [...formulasList].sort((a, b) => {
127
+ const ea = entrenchment(a, ordering);
128
+ const eb = entrenchment(b, ordering);
129
+ if (ea !== eb)
130
+ return ea - eb;
131
+ return a < b ? -1 : a > b ? 1 : 0;
132
+ });
133
+ const removed = new Set();
134
+ for (const candidate of sorted) {
135
+ removed.add(candidate);
136
+ const remaining = formulasList.filter((f) => !removed.has(f));
137
+ if (!(0, sat_1.entailsFormula)(remaining.map(parseCached), phi)) {
138
+ return removed;
139
+ }
140
+ }
141
+ // Fallback: si removiendo todo aún implica φ (ej. φ es tautología),
142
+ // devolvemos el set completo (el caller tratará el caso).
143
+ return removed;
144
+ }
145
+ /**
146
+ * Contraction: K - φ.
147
+ * Definición AGM: K - φ es el mayor subconjunto de K que NO implica φ.
148
+ *
149
+ * Casos especiales:
150
+ * - Si φ es tautología (vacuidad K-5): K - φ = K (no se puede remover).
151
+ * - Si K no implica φ: K - φ = K.
152
+ * - En cualquier otro caso: se aplica partial-meet con `ordering`.
153
+ *
154
+ * El parámetro opcional `ordering` define el "epistemic entrenchment":
155
+ * fórmulas con mayor número son más arraigadas y se preservan primero.
156
+ */
157
+ function contract(K, phi, ordering) {
158
+ const phiAst = parseCached(phi);
159
+ // Vacuidad: si φ es tautología, no se puede contraer.
160
+ // (¬φ es insatisfactible ⇔ φ es tautología.)
161
+ const negPhi = { kind: 'not', arg: phiAst };
162
+ if (!(0, sat_1.isSatisfiable)([negPhi])) {
163
+ return { formulas: new Set(K.formulas) };
164
+ }
165
+ const victims = selectContractionVictims(K, phiAst, ordering);
166
+ const formulas = new Set();
167
+ for (const f of K.formulas) {
168
+ if (!victims.has(f))
169
+ formulas.add(f);
170
+ }
171
+ return { formulas };
172
+ }
173
+ /**
174
+ * Revision: K * φ.
175
+ * Identidad de Levi: K * φ = (K - ¬φ) + φ.
176
+ *
177
+ * Garantiza:
178
+ * - K2 (éxito): φ ∈ K * φ.
179
+ * - K5 (consistencia): si φ es consistente, K * φ es consistente.
180
+ *
181
+ * El parámetro `ordering` se usa para la contracción interna por ¬φ.
182
+ */
183
+ function revise(K, phi, ordering) {
184
+ // Validar sintaxis.
185
+ const phiAst = parseCached(phi);
186
+ // Construir ¬φ y normalizarlo a una cadena que el parser pueda releer.
187
+ const negPhiStr = `!(${phi})`;
188
+ // Pre-cachear su AST.
189
+ parseCache.set(negPhiStr, { kind: 'not', arg: phiAst });
190
+ const contracted = contract(K, negPhiStr, ordering);
191
+ return expand(contracted, phi);
192
+ }
193
+ // ---------------------------------------------------------------------------
194
+ // Verificación de postulados AGM
195
+ // ---------------------------------------------------------------------------
196
+ /**
197
+ * Verifica una versión finitizada del postulado K1 (cierre lógico):
198
+ * para cada φ ∈ K, K entails φ (autocontención lógica).
199
+ * En belief bases puras esto es trivial; aquí adicionalmente exigimos
200
+ * que K sea consistente o que cada fórmula sea bien-formada.
201
+ */
202
+ function verifyClosure(K) {
203
+ const list = toFormulaList(K);
204
+ for (const f of list) {
205
+ if (!(0, sat_1.entailsFormula)(list, f))
206
+ return false;
207
+ }
208
+ return true;
209
+ }
210
+ /**
211
+ * K2 (éxito): φ ∈ Cn(K * φ).
212
+ * Tras revisar por φ, el belief set debe implicar φ.
213
+ */
214
+ function verifySuccess(K_revised, phi) {
215
+ return entails(K_revised, phi);
216
+ }
217
+ /**
218
+ * K3 (inclusión): K * φ ⊆ K + φ.
219
+ * Toda fórmula derivable de K * φ debe ser derivable de K + φ.
220
+ * Para belief bases finitas, basta verificar que cada formula sintáctica
221
+ * de K_revised sea derivable desde K ∪ {φ}.
222
+ */
223
+ function verifyInclusion(K_revised, K, phi) {
224
+ const expanded = expand(K, phi);
225
+ const expandedList = toFormulaList(expanded);
226
+ for (const f of K_revised.formulas) {
227
+ const ast = parseCached(f);
228
+ if (!(0, sat_1.entailsFormula)(expandedList, ast))
229
+ return false;
230
+ }
231
+ return true;
232
+ }
233
+ /**
234
+ * Helper utilitario: devuelve K como arreglo ordenado de fórmulas
235
+ * (útil para tests, debugging, hashing estable).
236
+ */
237
+ function beliefSetToArray(K) {
238
+ return Array.from(K.formulas).sort();
239
+ }
240
+ /**
241
+ * Serialización canónica de un belief set: ordena alfabéticamente y
242
+ * normaliza cada fórmula vía `formulaToString` sobre su AST parseado.
243
+ */
244
+ function canonicalize(K) {
245
+ const normalized = Array.from(K.formulas).map((f) => (0, parser_1.formulaToString)(parseCached(f)));
246
+ normalized.sort();
247
+ return `{${normalized.join(', ')}}`;
248
+ }
249
+ //# sourceMappingURL=agm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agm.js","sourceRoot":"","sources":["../../src/belief-revision/agm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type { BeliefSet, PartialOrder, PropFormula } from './types';
2
+ export { newBeliefSet, isConsistent, entails, expand, contract, revise, verifyClosure, verifySuccess, verifyInclusion, beliefSetToArray, canonicalize, } from './agm';
3
+ export { parsePropFormula, formulaToString, collectAtoms } from './parser';
4
+ export { evalFormula, isSatisfiable, entailsFormula, areEquivalent } from './sat';
5
+ export type { Valuation } from './sat';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/belief-revision/index.ts"],"names":[],"mappings":"AASA,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,GACb,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Belief Revision — Barrel export
4
+ // ============================================================
5
+ //
6
+ // Operadores AGM (Alchourrón-Gärdenfors-Makinson) sobre belief sets
7
+ // proposicionales. Incluye expansion, contraction (partial-meet con
8
+ // entrenchment opcional), revision (vía identidad de Levi) y
9
+ // verificadores de los postulados K1-K3.
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.areEquivalent = exports.entailsFormula = exports.isSatisfiable = exports.evalFormula = exports.collectAtoms = exports.formulaToString = exports.parsePropFormula = exports.canonicalize = exports.beliefSetToArray = exports.verifyInclusion = exports.verifySuccess = exports.verifyClosure = exports.revise = exports.contract = exports.expand = exports.entails = exports.isConsistent = exports.newBeliefSet = void 0;
12
+ var agm_1 = require("./agm");
13
+ Object.defineProperty(exports, "newBeliefSet", { enumerable: true, get: function () { return agm_1.newBeliefSet; } });
14
+ Object.defineProperty(exports, "isConsistent", { enumerable: true, get: function () { return agm_1.isConsistent; } });
15
+ Object.defineProperty(exports, "entails", { enumerable: true, get: function () { return agm_1.entails; } });
16
+ Object.defineProperty(exports, "expand", { enumerable: true, get: function () { return agm_1.expand; } });
17
+ Object.defineProperty(exports, "contract", { enumerable: true, get: function () { return agm_1.contract; } });
18
+ Object.defineProperty(exports, "revise", { enumerable: true, get: function () { return agm_1.revise; } });
19
+ Object.defineProperty(exports, "verifyClosure", { enumerable: true, get: function () { return agm_1.verifyClosure; } });
20
+ Object.defineProperty(exports, "verifySuccess", { enumerable: true, get: function () { return agm_1.verifySuccess; } });
21
+ Object.defineProperty(exports, "verifyInclusion", { enumerable: true, get: function () { return agm_1.verifyInclusion; } });
22
+ Object.defineProperty(exports, "beliefSetToArray", { enumerable: true, get: function () { return agm_1.beliefSetToArray; } });
23
+ Object.defineProperty(exports, "canonicalize", { enumerable: true, get: function () { return agm_1.canonicalize; } });
24
+ var parser_1 = require("./parser");
25
+ Object.defineProperty(exports, "parsePropFormula", { enumerable: true, get: function () { return parser_1.parsePropFormula; } });
26
+ Object.defineProperty(exports, "formulaToString", { enumerable: true, get: function () { return parser_1.formulaToString; } });
27
+ Object.defineProperty(exports, "collectAtoms", { enumerable: true, get: function () { return parser_1.collectAtoms; } });
28
+ var sat_1 = require("./sat");
29
+ Object.defineProperty(exports, "evalFormula", { enumerable: true, get: function () { return sat_1.evalFormula; } });
30
+ Object.defineProperty(exports, "isSatisfiable", { enumerable: true, get: function () { return sat_1.isSatisfiable; } });
31
+ Object.defineProperty(exports, "entailsFormula", { enumerable: true, get: function () { return sat_1.entailsFormula; } });
32
+ Object.defineProperty(exports, "areEquivalent", { enumerable: true, get: function () { return sat_1.areEquivalent; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/belief-revision/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qCAAqC;AACrC,+DAA+D;AAC/D,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,6DAA6D;AAC7D,yCAAyC;;;AAGzC,6BAYe;AAXb,mGAAA,YAAY,OAAA;AACZ,mGAAA,YAAY,OAAA;AACZ,8FAAA,OAAO,OAAA;AACP,6FAAA,MAAM,OAAA;AACN,+FAAA,QAAQ,OAAA;AACR,6FAAA,MAAM,OAAA;AACN,oGAAA,aAAa,OAAA;AACb,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,uGAAA,gBAAgB,OAAA;AAChB,mGAAA,YAAY,OAAA;AAEd,mCAA2E;AAAlE,0GAAA,gBAAgB,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,sGAAA,YAAY,OAAA;AACxD,6BAAkF;AAAzE,kGAAA,WAAW,OAAA;AAAE,oGAAA,aAAa,OAAA;AAAE,qGAAA,cAAc,OAAA;AAAE,oGAAA,aAAa,OAAA"}
@@ -0,0 +1,16 @@
1
+ import type { PropFormula } from './types';
2
+ /**
3
+ * Parsea una fórmula propositional a su AST interno.
4
+ * Lanza Error con mensaje legible si el input no es válido.
5
+ */
6
+ export declare function parsePropFormula(input: string): PropFormula;
7
+ /**
8
+ * Recolecta los nombres de átomos que aparecen en una fórmula.
9
+ */
10
+ export declare function collectAtoms(f: PropFormula, into?: Set<string>): Set<string>;
11
+ /**
12
+ * Serializa una fórmula a su forma canónica (con paréntesis explícitos).
13
+ * Útil para hashing y comparaciones estructurales.
14
+ */
15
+ export declare function formulaToString(f: PropFormula): string;
16
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/belief-revision/parser.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAkI3C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAQ3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAmBvF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAmBtD"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Belief Revision — Parser propositional minimalista
4
+ // ============================================================
5
+ //
6
+ // Gramática (precedencia menor a mayor):
7
+ // biconditional : implication ('<->' implication)*
8
+ // implication : disjunction ('->' implication)? (asoc. derecha)
9
+ // disjunction : conjunction ('|' conjunction)*
10
+ // conjunction : negation ('&' negation)*
11
+ // negation : '!' negation | primary
12
+ // primary : atom | 'true' | 'false' | '(' biconditional ')'
13
+ //
14
+ // Aliases tolerados:
15
+ // ¬ ~ ! → not
16
+ // ∧ /\ & → and
17
+ // ∨ \/ | → or
18
+ // → => -> → implies
19
+ // ↔ <-> <=> → iff
20
+ // ⊤ T → true (cuando aparece como token único o palabra)
21
+ // ⊥ F → false
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.parsePropFormula = parsePropFormula;
24
+ exports.collectAtoms = collectAtoms;
25
+ exports.formulaToString = formulaToString;
26
+ class ParseError extends Error {
27
+ }
28
+ function isAtomStart(ch) {
29
+ return /[A-Za-z_]/.test(ch);
30
+ }
31
+ function isAtomCont(ch) {
32
+ return /[A-Za-z0-9_]/.test(ch);
33
+ }
34
+ function skipWs(ctx) {
35
+ while (ctx.pos < ctx.src.length && /\s/.test(ctx.src.charAt(ctx.pos))) {
36
+ ctx.pos += 1;
37
+ }
38
+ }
39
+ function peek(ctx, offset = 0) {
40
+ return ctx.src.charAt(ctx.pos + offset);
41
+ }
42
+ function consumeIf(ctx, token) {
43
+ skipWs(ctx);
44
+ if (ctx.src.startsWith(token, ctx.pos)) {
45
+ ctx.pos += token.length;
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ function consumeAny(ctx, tokens) {
51
+ skipWs(ctx);
52
+ for (const t of tokens) {
53
+ if (ctx.src.startsWith(t, ctx.pos)) {
54
+ ctx.pos += t.length;
55
+ return t;
56
+ }
57
+ }
58
+ return null;
59
+ }
60
+ function parsePrimary(ctx) {
61
+ skipWs(ctx);
62
+ if (ctx.pos >= ctx.src.length) {
63
+ throw new ParseError('inesperado fin de expresión');
64
+ }
65
+ const ch = peek(ctx);
66
+ if (ch === '(') {
67
+ ctx.pos += 1;
68
+ const inner = parseBiconditional(ctx);
69
+ skipWs(ctx);
70
+ if (!consumeIf(ctx, ')')) {
71
+ throw new ParseError(`esperaba ')' en posición ${ctx.pos}`);
72
+ }
73
+ return inner;
74
+ }
75
+ // Símbolos unicode true/false
76
+ if (ch === '⊤') {
77
+ ctx.pos += 1;
78
+ return { kind: 'true' };
79
+ }
80
+ if (ch === '⊥') {
81
+ ctx.pos += 1;
82
+ return { kind: 'false' };
83
+ }
84
+ if (isAtomStart(ch)) {
85
+ const start = ctx.pos;
86
+ ctx.pos += 1;
87
+ while (ctx.pos < ctx.src.length && isAtomCont(peek(ctx))) {
88
+ ctx.pos += 1;
89
+ }
90
+ const name = ctx.src.slice(start, ctx.pos);
91
+ if (name === 'true' || name === 'T')
92
+ return { kind: 'true' };
93
+ if (name === 'false' || name === 'F')
94
+ return { kind: 'false' };
95
+ return { kind: 'atom', name };
96
+ }
97
+ throw new ParseError(`token inesperado "${ch}" en posición ${ctx.pos}`);
98
+ }
99
+ function parseNegation(ctx) {
100
+ skipWs(ctx);
101
+ if (consumeAny(ctx, ['¬', '~', '!']) !== null) {
102
+ const inner = parseNegation(ctx);
103
+ return { kind: 'not', arg: inner };
104
+ }
105
+ return parsePrimary(ctx);
106
+ }
107
+ function parseConjunction(ctx) {
108
+ let left = parseNegation(ctx);
109
+ while (consumeAny(ctx, ['∧', '/\\', '&']) !== null) {
110
+ const right = parseNegation(ctx);
111
+ left = { kind: 'and', left, right };
112
+ }
113
+ return left;
114
+ }
115
+ function parseDisjunction(ctx) {
116
+ let left = parseConjunction(ctx);
117
+ while (consumeAny(ctx, ['∨', '\\/', '|']) !== null) {
118
+ const right = parseConjunction(ctx);
119
+ left = { kind: 'or', left, right };
120
+ }
121
+ return left;
122
+ }
123
+ function parseImplication(ctx) {
124
+ const left = parseDisjunction(ctx);
125
+ if (consumeAny(ctx, ['→', '=>', '->']) !== null) {
126
+ const right = parseImplication(ctx); // asociatividad a la derecha
127
+ return { kind: 'implies', left, right };
128
+ }
129
+ return left;
130
+ }
131
+ function parseBiconditional(ctx) {
132
+ let left = parseImplication(ctx);
133
+ while (consumeAny(ctx, ['↔', '<->', '<=>']) !== null) {
134
+ const right = parseImplication(ctx);
135
+ left = { kind: 'iff', left, right };
136
+ }
137
+ return left;
138
+ }
139
+ /**
140
+ * Parsea una fórmula propositional a su AST interno.
141
+ * Lanza Error con mensaje legible si el input no es válido.
142
+ */
143
+ function parsePropFormula(input) {
144
+ const ctx = { src: input, pos: 0 };
145
+ const formula = parseBiconditional(ctx);
146
+ skipWs(ctx);
147
+ if (ctx.pos < ctx.src.length) {
148
+ throw new ParseError(`tokens sobrantes en posición ${ctx.pos}: "${ctx.src.slice(ctx.pos)}"`);
149
+ }
150
+ return formula;
151
+ }
152
+ /**
153
+ * Recolecta los nombres de átomos que aparecen en una fórmula.
154
+ */
155
+ function collectAtoms(f, into = new Set()) {
156
+ switch (f.kind) {
157
+ case 'true':
158
+ case 'false':
159
+ return into;
160
+ case 'atom':
161
+ into.add(f.name);
162
+ return into;
163
+ case 'not':
164
+ collectAtoms(f.arg, into);
165
+ return into;
166
+ case 'and':
167
+ case 'or':
168
+ case 'implies':
169
+ case 'iff':
170
+ collectAtoms(f.left, into);
171
+ collectAtoms(f.right, into);
172
+ return into;
173
+ }
174
+ }
175
+ /**
176
+ * Serializa una fórmula a su forma canónica (con paréntesis explícitos).
177
+ * Útil para hashing y comparaciones estructurales.
178
+ */
179
+ function formulaToString(f) {
180
+ switch (f.kind) {
181
+ case 'true':
182
+ return 'true';
183
+ case 'false':
184
+ return 'false';
185
+ case 'atom':
186
+ return f.name;
187
+ case 'not':
188
+ return `!${formulaToString(f.arg)}`;
189
+ case 'and':
190
+ return `(${formulaToString(f.left)} & ${formulaToString(f.right)})`;
191
+ case 'or':
192
+ return `(${formulaToString(f.left)} | ${formulaToString(f.right)})`;
193
+ case 'implies':
194
+ return `(${formulaToString(f.left)} -> ${formulaToString(f.right)})`;
195
+ case 'iff':
196
+ return `(${formulaToString(f.left)} <-> ${formulaToString(f.right)})`;
197
+ }
198
+ }
199
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/belief-revision/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { PropFormula } from './types';
2
+ export type Valuation = Record<string, boolean>;
3
+ /** Evalúa una fórmula bajo una valuación clásica. */
4
+ export declare function evalFormula(f: PropFormula, v: Valuation): boolean;
5
+ /**
6
+ * ¿Es satisfactible la conjunción de `formulas`?
7
+ * Conjunto vacío → trivialmente satisfactible.
8
+ */
9
+ export declare function isSatisfiable(formulas: PropFormula[]): boolean;
10
+ /**
11
+ * ¿K (conjunción de fórmulas) implica φ?
12
+ * Equivalente a: K ∧ ¬φ es insatisfactible.
13
+ */
14
+ export declare function entailsFormula(K: PropFormula[], phi: PropFormula): boolean;
15
+ /**
16
+ * ¿Son φ y ψ lógicamente equivalentes? (φ ↔ ψ es tautología)
17
+ */
18
+ export declare function areEquivalent(a: PropFormula, b: PropFormula): boolean;
19
+ //# sourceMappingURL=sat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../../src/belief-revision/sat.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAmBjE;AAsBD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAU9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAG1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAIrE"}