@stevenvo780/st-lang 4.2.0 → 4.4.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 (575) hide show
  1. package/dist/index.d.ts +8 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +70 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lambda-calc/church.d.ts +8 -0
  6. package/dist/lambda-calc/church.d.ts.map +1 -0
  7. package/dist/lambda-calc/church.js +67 -0
  8. package/dist/lambda-calc/church.js.map +1 -0
  9. package/dist/lambda-calc/combinators.d.ts +8 -0
  10. package/dist/lambda-calc/combinators.d.ts.map +1 -0
  11. package/dist/lambda-calc/combinators.js +24 -0
  12. package/dist/lambda-calc/combinators.js.map +1 -0
  13. package/dist/lambda-calc/index.d.ts +8 -0
  14. package/dist/lambda-calc/index.d.ts.map +1 -0
  15. package/dist/lambda-calc/index.js +48 -0
  16. package/dist/lambda-calc/index.js.map +1 -0
  17. package/dist/lambda-calc/reduce.d.ts +18 -0
  18. package/dist/lambda-calc/reduce.d.ts.map +1 -0
  19. package/dist/lambda-calc/reduce.js +174 -0
  20. package/dist/lambda-calc/reduce.js.map +1 -0
  21. package/dist/lambda-calc/substitution.d.ts +6 -0
  22. package/dist/lambda-calc/substitution.d.ts.map +1 -0
  23. package/dist/lambda-calc/substitution.js +120 -0
  24. package/dist/lambda-calc/substitution.js.map +1 -0
  25. package/dist/lambda-calc/types.d.ts +19 -0
  26. package/dist/lambda-calc/types.d.ts.map +1 -0
  27. package/dist/lambda-calc/types.js +72 -0
  28. package/dist/lambda-calc/types.js.map +1 -0
  29. package/dist/mltt/equality.d.ts +9 -0
  30. package/dist/mltt/equality.d.ts.map +1 -0
  31. package/dist/mltt/equality.js +79 -0
  32. package/dist/mltt/equality.js.map +1 -0
  33. package/dist/mltt/index.d.ts +8 -0
  34. package/dist/mltt/index.d.ts.map +1 -0
  35. package/dist/mltt/index.js +49 -0
  36. package/dist/mltt/index.js.map +1 -0
  37. package/dist/mltt/infer.d.ts +17 -0
  38. package/dist/mltt/infer.d.ts.map +1 -0
  39. package/dist/mltt/infer.js +269 -0
  40. package/dist/mltt/infer.js.map +1 -0
  41. package/dist/mltt/normalize.d.ts +7 -0
  42. package/dist/mltt/normalize.d.ts.map +1 -0
  43. package/dist/mltt/normalize.js +131 -0
  44. package/dist/mltt/normalize.js.map +1 -0
  45. package/dist/mltt/substitute.d.ts +4 -0
  46. package/dist/mltt/substitute.d.ts.map +1 -0
  47. package/dist/mltt/substitute.js +94 -0
  48. package/dist/mltt/substitute.js.map +1 -0
  49. package/dist/mltt/types.d.ts +72 -0
  50. package/dist/mltt/types.d.ts.map +1 -0
  51. package/dist/mltt/types.js +211 -0
  52. package/dist/mltt/types.js.map +1 -0
  53. package/dist/profiles/intuitionistic-nj/formula.d.ts +19 -0
  54. package/dist/profiles/intuitionistic-nj/formula.d.ts.map +1 -0
  55. package/dist/profiles/intuitionistic-nj/formula.js +99 -0
  56. package/dist/profiles/intuitionistic-nj/formula.js.map +1 -0
  57. package/dist/profiles/intuitionistic-nj/index.d.ts +5 -0
  58. package/dist/profiles/intuitionistic-nj/index.d.ts.map +1 -0
  59. package/dist/profiles/intuitionistic-nj/index.js +24 -0
  60. package/dist/profiles/intuitionistic-nj/index.js.map +1 -0
  61. package/dist/profiles/intuitionistic-nj/kripke.d.ts +17 -0
  62. package/dist/profiles/intuitionistic-nj/kripke.d.ts.map +1 -0
  63. package/dist/profiles/intuitionistic-nj/kripke.js +206 -0
  64. package/dist/profiles/intuitionistic-nj/kripke.js.map +1 -0
  65. package/dist/profiles/intuitionistic-nj/prover.d.ts +13 -0
  66. package/dist/profiles/intuitionistic-nj/prover.d.ts.map +1 -0
  67. package/dist/profiles/intuitionistic-nj/prover.js +418 -0
  68. package/dist/profiles/intuitionistic-nj/prover.js.map +1 -0
  69. package/dist/profiles/intuitionistic-nj/types.d.ts +55 -0
  70. package/dist/profiles/intuitionistic-nj/types.d.ts.map +1 -0
  71. package/dist/profiles/intuitionistic-nj/types.js +21 -0
  72. package/dist/profiles/intuitionistic-nj/types.js.map +1 -0
  73. package/dist/profiles/many-valued/index.d.ts +39 -0
  74. package/dist/profiles/many-valued/index.d.ts.map +1 -0
  75. package/dist/profiles/many-valued/index.js +250 -0
  76. package/dist/profiles/many-valued/index.js.map +1 -0
  77. package/dist/profiles/modal-frame-axioms/formula.d.ts +23 -0
  78. package/dist/profiles/modal-frame-axioms/formula.d.ts.map +1 -0
  79. package/dist/profiles/modal-frame-axioms/formula.js +158 -0
  80. package/dist/profiles/modal-frame-axioms/formula.js.map +1 -0
  81. package/dist/profiles/modal-frame-axioms/index.d.ts +6 -0
  82. package/dist/profiles/modal-frame-axioms/index.d.ts.map +1 -0
  83. package/dist/profiles/modal-frame-axioms/index.js +41 -0
  84. package/dist/profiles/modal-frame-axioms/index.js.map +1 -0
  85. package/dist/profiles/modal-frame-axioms/systems.d.ts +29 -0
  86. package/dist/profiles/modal-frame-axioms/systems.d.ts.map +1 -0
  87. package/dist/profiles/modal-frame-axioms/systems.js +96 -0
  88. package/dist/profiles/modal-frame-axioms/systems.js.map +1 -0
  89. package/dist/profiles/modal-frame-axioms/tableau.d.ts +12 -0
  90. package/dist/profiles/modal-frame-axioms/tableau.d.ts.map +1 -0
  91. package/dist/profiles/modal-frame-axioms/tableau.js +299 -0
  92. package/dist/profiles/modal-frame-axioms/tableau.js.map +1 -0
  93. package/dist/profiles/modal-frame-axioms/types.d.ts +61 -0
  94. package/dist/profiles/modal-frame-axioms/types.d.ts.map +1 -0
  95. package/dist/profiles/modal-frame-axioms/types.js +27 -0
  96. package/dist/profiles/modal-frame-axioms/types.js.map +1 -0
  97. package/dist/profiles/mu-calculus/check.d.ts +15 -0
  98. package/dist/profiles/mu-calculus/check.d.ts.map +1 -0
  99. package/dist/profiles/mu-calculus/check.js +172 -0
  100. package/dist/profiles/mu-calculus/check.js.map +1 -0
  101. package/dist/profiles/mu-calculus/ctl-translate.d.ts +61 -0
  102. package/dist/profiles/mu-calculus/ctl-translate.d.ts.map +1 -0
  103. package/dist/profiles/mu-calculus/ctl-translate.js +181 -0
  104. package/dist/profiles/mu-calculus/ctl-translate.js.map +1 -0
  105. package/dist/profiles/mu-calculus/index.d.ts +7 -0
  106. package/dist/profiles/mu-calculus/index.d.ts.map +1 -0
  107. package/dist/profiles/mu-calculus/index.js +33 -0
  108. package/dist/profiles/mu-calculus/index.js.map +1 -0
  109. package/dist/profiles/mu-calculus/types.d.ts +51 -0
  110. package/dist/profiles/mu-calculus/types.d.ts.map +1 -0
  111. package/dist/profiles/mu-calculus/types.js +42 -0
  112. package/dist/profiles/mu-calculus/types.js.map +1 -0
  113. package/dist/profiles/mu-calculus/wellformed.d.ts +40 -0
  114. package/dist/profiles/mu-calculus/wellformed.d.ts.map +1 -0
  115. package/dist/profiles/mu-calculus/wellformed.js +160 -0
  116. package/dist/profiles/mu-calculus/wellformed.js.map +1 -0
  117. package/dist/profiles/sequent-lk/cut-elimination.d.ts +11 -0
  118. package/dist/profiles/sequent-lk/cut-elimination.d.ts.map +1 -0
  119. package/dist/profiles/sequent-lk/cut-elimination.js +216 -0
  120. package/dist/profiles/sequent-lk/cut-elimination.js.map +1 -0
  121. package/dist/profiles/sequent-lk/index.d.ts +5 -0
  122. package/dist/profiles/sequent-lk/index.d.ts.map +1 -0
  123. package/dist/profiles/sequent-lk/index.js +24 -0
  124. package/dist/profiles/sequent-lk/index.js.map +1 -0
  125. package/dist/profiles/sequent-lk/prover.d.ts +25 -0
  126. package/dist/profiles/sequent-lk/prover.d.ts.map +1 -0
  127. package/dist/profiles/sequent-lk/prover.js +532 -0
  128. package/dist/profiles/sequent-lk/prover.js.map +1 -0
  129. package/dist/profiles/sequent-lk/types.d.ts +55 -0
  130. package/dist/profiles/sequent-lk/types.d.ts.map +1 -0
  131. package/dist/profiles/sequent-lk/types.js +18 -0
  132. package/dist/profiles/sequent-lk/types.js.map +1 -0
  133. package/dist/profiles/sequent-lk/util.d.ts +18 -0
  134. package/dist/profiles/sequent-lk/util.d.ts.map +1 -0
  135. package/dist/profiles/sequent-lk/util.js +71 -0
  136. package/dist/profiles/sequent-lk/util.js.map +1 -0
  137. package/dist/profiles/substructural/index.d.ts +4 -0
  138. package/dist/profiles/substructural/index.d.ts.map +1 -0
  139. package/dist/profiles/substructural/index.js +22 -0
  140. package/dist/profiles/substructural/index.js.map +1 -0
  141. package/dist/profiles/substructural/prover.d.ts +13 -0
  142. package/dist/profiles/substructural/prover.d.ts.map +1 -0
  143. package/dist/profiles/substructural/prover.js +481 -0
  144. package/dist/profiles/substructural/prover.js.map +1 -0
  145. package/dist/profiles/substructural/types.d.ts +72 -0
  146. package/dist/profiles/substructural/types.d.ts.map +1 -0
  147. package/dist/profiles/substructural/types.js +27 -0
  148. package/dist/profiles/substructural/types.js.map +1 -0
  149. package/dist/refinement-types/checker.d.ts +19 -0
  150. package/dist/refinement-types/checker.d.ts.map +1 -0
  151. package/dist/refinement-types/checker.js +248 -0
  152. package/dist/refinement-types/checker.js.map +1 -0
  153. package/dist/refinement-types/index.d.ts +11 -0
  154. package/dist/refinement-types/index.d.ts.map +1 -0
  155. package/dist/refinement-types/index.js +51 -0
  156. package/dist/refinement-types/index.js.map +1 -0
  157. package/dist/refinement-types/predicate.d.ts +31 -0
  158. package/dist/refinement-types/predicate.d.ts.map +1 -0
  159. package/dist/refinement-types/predicate.js +369 -0
  160. package/dist/refinement-types/predicate.js.map +1 -0
  161. package/dist/refinement-types/solver.d.ts +24 -0
  162. package/dist/refinement-types/solver.d.ts.map +1 -0
  163. package/dist/refinement-types/solver.js +207 -0
  164. package/dist/refinement-types/solver.js.map +1 -0
  165. package/dist/refinement-types/subtype.d.ts +14 -0
  166. package/dist/refinement-types/subtype.d.ts.map +1 -0
  167. package/dist/refinement-types/subtype.js +39 -0
  168. package/dist/refinement-types/subtype.js.map +1 -0
  169. package/dist/refinement-types/types.d.ts +64 -0
  170. package/dist/refinement-types/types.d.ts.map +1 -0
  171. package/dist/refinement-types/types.js +130 -0
  172. package/dist/refinement-types/types.js.map +1 -0
  173. package/dist/runtime/abduction/entails.d.ts +21 -0
  174. package/dist/runtime/abduction/entails.d.ts.map +1 -0
  175. package/dist/runtime/abduction/entails.js +308 -0
  176. package/dist/runtime/abduction/entails.js.map +1 -0
  177. package/dist/runtime/abduction/find.d.ts +18 -0
  178. package/dist/runtime/abduction/find.d.ts.map +1 -0
  179. package/dist/runtime/abduction/find.js +202 -0
  180. package/dist/runtime/abduction/find.js.map +1 -0
  181. package/dist/runtime/abduction/index.d.ts +4 -0
  182. package/dist/runtime/abduction/index.d.ts.map +1 -0
  183. package/dist/runtime/abduction/index.js +26 -0
  184. package/dist/runtime/abduction/index.js.map +1 -0
  185. package/dist/runtime/abduction/types.d.ts +78 -0
  186. package/dist/runtime/abduction/types.d.ts.map +1 -0
  187. package/dist/runtime/abduction/types.js +23 -0
  188. package/dist/runtime/abduction/types.js.map +1 -0
  189. package/dist/runtime/anti-unification/anti-unify.d.ts +22 -0
  190. package/dist/runtime/anti-unification/anti-unify.d.ts.map +1 -0
  191. package/dist/runtime/anti-unification/anti-unify.js +154 -0
  192. package/dist/runtime/anti-unification/anti-unify.js.map +1 -0
  193. package/dist/runtime/anti-unification/index.d.ts +6 -0
  194. package/dist/runtime/anti-unification/index.d.ts.map +1 -0
  195. package/dist/runtime/anti-unification/index.js +23 -0
  196. package/dist/runtime/anti-unification/index.js.map +1 -0
  197. package/dist/runtime/anti-unification/many.d.ts +49 -0
  198. package/dist/runtime/anti-unification/many.d.ts.map +1 -0
  199. package/dist/runtime/anti-unification/many.js +185 -0
  200. package/dist/runtime/anti-unification/many.js.map +1 -0
  201. package/dist/runtime/anti-unification/term-utils.d.ts +40 -0
  202. package/dist/runtime/anti-unification/term-utils.d.ts.map +1 -0
  203. package/dist/runtime/anti-unification/term-utils.js +173 -0
  204. package/dist/runtime/anti-unification/term-utils.js.map +1 -0
  205. package/dist/runtime/anti-unification/types.d.ts +41 -0
  206. package/dist/runtime/anti-unification/types.d.ts.map +1 -0
  207. package/dist/runtime/anti-unification/types.js +26 -0
  208. package/dist/runtime/anti-unification/types.js.map +1 -0
  209. package/dist/runtime/bayesian/factor.d.ts +22 -0
  210. package/dist/runtime/bayesian/factor.d.ts.map +1 -0
  211. package/dist/runtime/bayesian/factor.js +249 -0
  212. package/dist/runtime/bayesian/factor.js.map +1 -0
  213. package/dist/runtime/bayesian/index.d.ts +3 -0
  214. package/dist/runtime/bayesian/index.d.ts.map +1 -0
  215. package/dist/runtime/bayesian/index.js +25 -0
  216. package/dist/runtime/bayesian/index.js.map +1 -0
  217. package/dist/runtime/bayesian/inference.d.ts +6 -0
  218. package/dist/runtime/bayesian/inference.d.ts.map +1 -0
  219. package/dist/runtime/bayesian/inference.js +260 -0
  220. package/dist/runtime/bayesian/inference.js.map +1 -0
  221. package/dist/runtime/bayesian/types.d.ts +19 -0
  222. package/dist/runtime/bayesian/types.d.ts.map +1 -0
  223. package/dist/runtime/bayesian/types.js +9 -0
  224. package/dist/runtime/bayesian/types.js.map +1 -0
  225. package/dist/runtime/bisimulation/index.d.ts +4 -0
  226. package/dist/runtime/bisimulation/index.d.ts.map +1 -0
  227. package/dist/runtime/bisimulation/index.js +21 -0
  228. package/dist/runtime/bisimulation/index.js.map +1 -0
  229. package/dist/runtime/bisimulation/operations.d.ts +40 -0
  230. package/dist/runtime/bisimulation/operations.d.ts.map +1 -0
  231. package/dist/runtime/bisimulation/operations.js +219 -0
  232. package/dist/runtime/bisimulation/operations.js.map +1 -0
  233. package/dist/runtime/bisimulation/paige-tarjan.d.ts +8 -0
  234. package/dist/runtime/bisimulation/paige-tarjan.d.ts.map +1 -0
  235. package/dist/runtime/bisimulation/paige-tarjan.js +199 -0
  236. package/dist/runtime/bisimulation/paige-tarjan.js.map +1 -0
  237. package/dist/runtime/bisimulation/types.d.ts +26 -0
  238. package/dist/runtime/bisimulation/types.d.ts.map +1 -0
  239. package/dist/runtime/bisimulation/types.js +22 -0
  240. package/dist/runtime/bisimulation/types.js.map +1 -0
  241. package/dist/runtime/csp/ac3.d.ts +20 -0
  242. package/dist/runtime/csp/ac3.d.ts.map +1 -0
  243. package/dist/runtime/csp/ac3.js +165 -0
  244. package/dist/runtime/csp/ac3.js.map +1 -0
  245. package/dist/runtime/csp/backtrack.d.ts +15 -0
  246. package/dist/runtime/csp/backtrack.d.ts.map +1 -0
  247. package/dist/runtime/csp/backtrack.js +233 -0
  248. package/dist/runtime/csp/backtrack.js.map +1 -0
  249. package/dist/runtime/csp/builtins.d.ts +27 -0
  250. package/dist/runtime/csp/builtins.d.ts.map +1 -0
  251. package/dist/runtime/csp/builtins.js +109 -0
  252. package/dist/runtime/csp/builtins.js.map +1 -0
  253. package/dist/runtime/csp/index.d.ts +5 -0
  254. package/dist/runtime/csp/index.d.ts.map +1 -0
  255. package/dist/runtime/csp/index.js +23 -0
  256. package/dist/runtime/csp/index.js.map +1 -0
  257. package/dist/runtime/csp/types.d.ts +54 -0
  258. package/dist/runtime/csp/types.d.ts.map +1 -0
  259. package/dist/runtime/csp/types.js +14 -0
  260. package/dist/runtime/csp/types.js.map +1 -0
  261. package/dist/runtime/fca/context.d.ts +46 -0
  262. package/dist/runtime/fca/context.d.ts.map +1 -0
  263. package/dist/runtime/fca/context.js +155 -0
  264. package/dist/runtime/fca/context.js.map +1 -0
  265. package/dist/runtime/fca/implications.d.ts +10 -0
  266. package/dist/runtime/fca/implications.d.ts.map +1 -0
  267. package/dist/runtime/fca/implications.js +33 -0
  268. package/dist/runtime/fca/implications.js.map +1 -0
  269. package/dist/runtime/fca/index.d.ts +6 -0
  270. package/dist/runtime/fca/index.d.ts.map +1 -0
  271. package/dist/runtime/fca/index.js +39 -0
  272. package/dist/runtime/fca/index.js.map +1 -0
  273. package/dist/runtime/fca/lattice.d.ts +10 -0
  274. package/dist/runtime/fca/lattice.d.ts.map +1 -0
  275. package/dist/runtime/fca/lattice.js +86 -0
  276. package/dist/runtime/fca/lattice.js.map +1 -0
  277. package/dist/runtime/fca/next-closure.d.ts +12 -0
  278. package/dist/runtime/fca/next-closure.d.ts.map +1 -0
  279. package/dist/runtime/fca/next-closure.js +99 -0
  280. package/dist/runtime/fca/next-closure.js.map +1 -0
  281. package/dist/runtime/fca/types.d.ts +31 -0
  282. package/dist/runtime/fca/types.d.ts.map +1 -0
  283. package/dist/runtime/fca/types.js +30 -0
  284. package/dist/runtime/fca/types.js.map +1 -0
  285. package/dist/runtime/markov-logic/grounding.d.ts +19 -0
  286. package/dist/runtime/markov-logic/grounding.d.ts.map +1 -0
  287. package/dist/runtime/markov-logic/grounding.js +252 -0
  288. package/dist/runtime/markov-logic/grounding.js.map +1 -0
  289. package/dist/runtime/markov-logic/index.d.ts +6 -0
  290. package/dist/runtime/markov-logic/index.d.ts.map +1 -0
  291. package/dist/runtime/markov-logic/index.js +47 -0
  292. package/dist/runtime/markov-logic/index.js.map +1 -0
  293. package/dist/runtime/markov-logic/inference.d.ts +77 -0
  294. package/dist/runtime/markov-logic/inference.d.ts.map +1 -0
  295. package/dist/runtime/markov-logic/inference.js +382 -0
  296. package/dist/runtime/markov-logic/inference.js.map +1 -0
  297. package/dist/runtime/markov-logic/parser.d.ts +25 -0
  298. package/dist/runtime/markov-logic/parser.d.ts.map +1 -0
  299. package/dist/runtime/markov-logic/parser.js +264 -0
  300. package/dist/runtime/markov-logic/parser.js.map +1 -0
  301. package/dist/runtime/markov-logic/types.d.ts +64 -0
  302. package/dist/runtime/markov-logic/types.d.ts.map +1 -0
  303. package/dist/runtime/markov-logic/types.js +17 -0
  304. package/dist/runtime/markov-logic/types.js.map +1 -0
  305. package/dist/runtime/pi-calculus/congruence.d.ts +15 -0
  306. package/dist/runtime/pi-calculus/congruence.d.ts.map +1 -0
  307. package/dist/runtime/pi-calculus/congruence.js +271 -0
  308. package/dist/runtime/pi-calculus/congruence.js.map +1 -0
  309. package/dist/runtime/pi-calculus/index.d.ts +6 -0
  310. package/dist/runtime/pi-calculus/index.d.ts.map +1 -0
  311. package/dist/runtime/pi-calculus/index.js +30 -0
  312. package/dist/runtime/pi-calculus/index.js.map +1 -0
  313. package/dist/runtime/pi-calculus/names.d.ts +28 -0
  314. package/dist/runtime/pi-calculus/names.d.ts.map +1 -0
  315. package/dist/runtime/pi-calculus/names.js +182 -0
  316. package/dist/runtime/pi-calculus/names.js.map +1 -0
  317. package/dist/runtime/pi-calculus/reduction.d.ts +25 -0
  318. package/dist/runtime/pi-calculus/reduction.d.ts.map +1 -0
  319. package/dist/runtime/pi-calculus/reduction.js +338 -0
  320. package/dist/runtime/pi-calculus/reduction.js.map +1 -0
  321. package/dist/runtime/pi-calculus/substitution.d.ts +11 -0
  322. package/dist/runtime/pi-calculus/substitution.d.ts.map +1 -0
  323. package/dist/runtime/pi-calculus/substitution.js +109 -0
  324. package/dist/runtime/pi-calculus/substitution.js.map +1 -0
  325. package/dist/runtime/pi-calculus/types.d.ts +38 -0
  326. package/dist/runtime/pi-calculus/types.d.ts.map +1 -0
  327. package/dist/runtime/pi-calculus/types.js +22 -0
  328. package/dist/runtime/pi-calculus/types.js.map +1 -0
  329. package/dist/runtime/planning/astar.d.ts +10 -0
  330. package/dist/runtime/planning/astar.d.ts.map +1 -0
  331. package/dist/runtime/planning/astar.js +155 -0
  332. package/dist/runtime/planning/astar.js.map +1 -0
  333. package/dist/runtime/planning/bfs.d.ts +17 -0
  334. package/dist/runtime/planning/bfs.d.ts.map +1 -0
  335. package/dist/runtime/planning/bfs.js +87 -0
  336. package/dist/runtime/planning/bfs.js.map +1 -0
  337. package/dist/runtime/planning/ground.d.ts +55 -0
  338. package/dist/runtime/planning/ground.d.ts.map +1 -0
  339. package/dist/runtime/planning/ground.js +154 -0
  340. package/dist/runtime/planning/ground.js.map +1 -0
  341. package/dist/runtime/planning/heuristic.d.ts +29 -0
  342. package/dist/runtime/planning/heuristic.d.ts.map +1 -0
  343. package/dist/runtime/planning/heuristic.js +172 -0
  344. package/dist/runtime/planning/heuristic.js.map +1 -0
  345. package/dist/runtime/planning/index.d.ts +6 -0
  346. package/dist/runtime/planning/index.d.ts.map +1 -0
  347. package/dist/runtime/planning/index.js +38 -0
  348. package/dist/runtime/planning/index.js.map +1 -0
  349. package/dist/runtime/planning/types.d.ts +100 -0
  350. package/dist/runtime/planning/types.d.ts.map +1 -0
  351. package/dist/runtime/planning/types.js +22 -0
  352. package/dist/runtime/planning/types.js.map +1 -0
  353. package/dist/runtime/proof-minify/index.d.ts +3 -0
  354. package/dist/runtime/proof-minify/index.d.ts.map +1 -0
  355. package/dist/runtime/proof-minify/index.js +13 -0
  356. package/dist/runtime/proof-minify/index.js.map +1 -0
  357. package/dist/runtime/proof-minify/minify.d.ts +13 -0
  358. package/dist/runtime/proof-minify/minify.d.ts.map +1 -0
  359. package/dist/runtime/proof-minify/minify.js +540 -0
  360. package/dist/runtime/proof-minify/minify.js.map +1 -0
  361. package/dist/runtime/proof-minify/types.d.ts +89 -0
  362. package/dist/runtime/proof-minify/types.d.ts.map +1 -0
  363. package/dist/runtime/proof-minify/types.js +16 -0
  364. package/dist/runtime/proof-minify/types.js.map +1 -0
  365. package/dist/runtime/symbolic-diff/constructors.d.ts +16 -0
  366. package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -0
  367. package/dist/runtime/symbolic-diff/constructors.js +75 -0
  368. package/dist/runtime/symbolic-diff/constructors.js.map +1 -0
  369. package/dist/runtime/symbolic-diff/differentiate.d.ts +22 -0
  370. package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -0
  371. package/dist/runtime/symbolic-diff/differentiate.js +107 -0
  372. package/dist/runtime/symbolic-diff/differentiate.js.map +1 -0
  373. package/dist/runtime/symbolic-diff/evaluate.d.ts +3 -0
  374. package/dist/runtime/symbolic-diff/evaluate.d.ts.map +1 -0
  375. package/dist/runtime/symbolic-diff/evaluate.js +47 -0
  376. package/dist/runtime/symbolic-diff/evaluate.js.map +1 -0
  377. package/dist/runtime/symbolic-diff/index.d.ts +9 -0
  378. package/dist/runtime/symbolic-diff/index.d.ts.map +1 -0
  379. package/dist/runtime/symbolic-diff/index.js +34 -0
  380. package/dist/runtime/symbolic-diff/index.js.map +1 -0
  381. package/dist/runtime/symbolic-diff/parse.d.ts +16 -0
  382. package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -0
  383. package/dist/runtime/symbolic-diff/parse.js +212 -0
  384. package/dist/runtime/symbolic-diff/parse.js.map +1 -0
  385. package/dist/runtime/symbolic-diff/simplify.d.ts +11 -0
  386. package/dist/runtime/symbolic-diff/simplify.d.ts.map +1 -0
  387. package/dist/runtime/symbolic-diff/simplify.js +214 -0
  388. package/dist/runtime/symbolic-diff/simplify.js.map +1 -0
  389. package/dist/runtime/symbolic-diff/stringify.d.ts +3 -0
  390. package/dist/runtime/symbolic-diff/stringify.d.ts.map +1 -0
  391. package/dist/runtime/symbolic-diff/stringify.js +69 -0
  392. package/dist/runtime/symbolic-diff/stringify.js.map +1 -0
  393. package/dist/runtime/symbolic-diff/types.d.ts +35 -0
  394. package/dist/runtime/symbolic-diff/types.d.ts.map +1 -0
  395. package/dist/runtime/symbolic-diff/types.js +9 -0
  396. package/dist/runtime/symbolic-diff/types.js.map +1 -0
  397. package/dist/runtime/term-rewriting/critical-pairs.d.ts +38 -0
  398. package/dist/runtime/term-rewriting/critical-pairs.d.ts.map +1 -0
  399. package/dist/runtime/term-rewriting/critical-pairs.js +109 -0
  400. package/dist/runtime/term-rewriting/critical-pairs.js.map +1 -0
  401. package/dist/runtime/term-rewriting/index.d.ts +9 -0
  402. package/dist/runtime/term-rewriting/index.d.ts.map +1 -0
  403. package/dist/runtime/term-rewriting/index.js +38 -0
  404. package/dist/runtime/term-rewriting/index.js.map +1 -0
  405. package/dist/runtime/term-rewriting/knuth-bendix.d.ts +29 -0
  406. package/dist/runtime/term-rewriting/knuth-bendix.d.ts.map +1 -0
  407. package/dist/runtime/term-rewriting/knuth-bendix.js +196 -0
  408. package/dist/runtime/term-rewriting/knuth-bendix.js.map +1 -0
  409. package/dist/runtime/term-rewriting/lpo.d.ts +17 -0
  410. package/dist/runtime/term-rewriting/lpo.d.ts.map +1 -0
  411. package/dist/runtime/term-rewriting/lpo.js +158 -0
  412. package/dist/runtime/term-rewriting/lpo.js.map +1 -0
  413. package/dist/runtime/term-rewriting/rewrite.d.ts +44 -0
  414. package/dist/runtime/term-rewriting/rewrite.d.ts.map +1 -0
  415. package/dist/runtime/term-rewriting/rewrite.js +189 -0
  416. package/dist/runtime/term-rewriting/rewrite.js.map +1 -0
  417. package/dist/runtime/term-rewriting/term-utils.d.ts +64 -0
  418. package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -0
  419. package/dist/runtime/term-rewriting/term-utils.js +360 -0
  420. package/dist/runtime/term-rewriting/term-utils.js.map +1 -0
  421. package/dist/runtime/term-rewriting/types.d.ts +66 -0
  422. package/dist/runtime/term-rewriting/types.d.ts.map +1 -0
  423. package/dist/runtime/term-rewriting/types.js +21 -0
  424. package/dist/runtime/term-rewriting/types.js.map +1 -0
  425. package/dist/runtime/theorem-cache/cache.d.ts +100 -0
  426. package/dist/runtime/theorem-cache/cache.d.ts.map +1 -0
  427. package/dist/runtime/theorem-cache/cache.js +213 -0
  428. package/dist/runtime/theorem-cache/cache.js.map +1 -0
  429. package/dist/runtime/theorem-cache/canonical.d.ts +59 -0
  430. package/dist/runtime/theorem-cache/canonical.d.ts.map +1 -0
  431. package/dist/runtime/theorem-cache/canonical.js +105 -0
  432. package/dist/runtime/theorem-cache/canonical.js.map +1 -0
  433. package/dist/runtime/theorem-cache/index.d.ts +6 -0
  434. package/dist/runtime/theorem-cache/index.d.ts.map +1 -0
  435. package/dist/runtime/theorem-cache/index.js +16 -0
  436. package/dist/runtime/theorem-cache/index.js.map +1 -0
  437. package/dist/runtime/theorem-cache/pattern.d.ts +24 -0
  438. package/dist/runtime/theorem-cache/pattern.d.ts.map +1 -0
  439. package/dist/runtime/theorem-cache/pattern.js +80 -0
  440. package/dist/runtime/theorem-cache/pattern.js.map +1 -0
  441. package/dist/system-f/index.d.ts +7 -0
  442. package/dist/system-f/index.d.ts.map +1 -0
  443. package/dist/system-f/index.js +48 -0
  444. package/dist/system-f/index.js.map +1 -0
  445. package/dist/system-f/infer.d.ts +9 -0
  446. package/dist/system-f/infer.d.ts.map +1 -0
  447. package/dist/system-f/infer.js +94 -0
  448. package/dist/system-f/infer.js.map +1 -0
  449. package/dist/system-f/reduce.d.ts +15 -0
  450. package/dist/system-f/reduce.d.ts.map +1 -0
  451. package/dist/system-f/reduce.js +259 -0
  452. package/dist/system-f/reduce.js.map +1 -0
  453. package/dist/system-f/types.d.ts +53 -0
  454. package/dist/system-f/types.d.ts.map +1 -0
  455. package/dist/system-f/types.js +157 -0
  456. package/dist/system-f/types.js.map +1 -0
  457. package/dist/tests/abduction/abduction.test.d.ts +2 -0
  458. package/dist/tests/abduction/abduction.test.d.ts.map +1 -0
  459. package/dist/tests/abduction/abduction.test.js +380 -0
  460. package/dist/tests/abduction/abduction.test.js.map +1 -0
  461. package/dist/tests/anti-unification/anti-unify.test.d.ts +2 -0
  462. package/dist/tests/anti-unification/anti-unify.test.d.ts.map +1 -0
  463. package/dist/tests/anti-unification/anti-unify.test.js +219 -0
  464. package/dist/tests/anti-unification/anti-unify.test.js.map +1 -0
  465. package/dist/tests/bayesian/bayesian.test.d.ts +2 -0
  466. package/dist/tests/bayesian/bayesian.test.d.ts.map +1 -0
  467. package/dist/tests/bayesian/bayesian.test.js +328 -0
  468. package/dist/tests/bayesian/bayesian.test.js.map +1 -0
  469. package/dist/tests/bisimulation/paige-tarjan.test.d.ts +2 -0
  470. package/dist/tests/bisimulation/paige-tarjan.test.d.ts.map +1 -0
  471. package/dist/tests/bisimulation/paige-tarjan.test.js +254 -0
  472. package/dist/tests/bisimulation/paige-tarjan.test.js.map +1 -0
  473. package/dist/tests/coverage-fill-aristotelian.test.js +1 -1
  474. package/dist/tests/coverage-fill-aristotelian.test.js.map +1 -1
  475. package/dist/tests/coverage-fill-fallacies.test.js +1 -1
  476. package/dist/tests/coverage-fill-fallacies.test.js.map +1 -1
  477. package/dist/tests/coverage-fill-format.test.js +1 -1
  478. package/dist/tests/coverage-fill-format.test.js.map +1 -1
  479. package/dist/tests/coverage-fill-intuitionistic.test.js +1 -1
  480. package/dist/tests/coverage-fill-intuitionistic.test.js.map +1 -1
  481. package/dist/tests/coverage-fill-probabilistic.test.js +1 -1
  482. package/dist/tests/coverage-fill-probabilistic.test.js.map +1 -1
  483. package/dist/tests/csp/csp.test.d.ts +2 -0
  484. package/dist/tests/csp/csp.test.d.ts.map +1 -0
  485. package/dist/tests/csp/csp.test.js +292 -0
  486. package/dist/tests/csp/csp.test.js.map +1 -0
  487. package/dist/tests/fca/fca.test.d.ts +2 -0
  488. package/dist/tests/fca/fca.test.d.ts.map +1 -0
  489. package/dist/tests/fca/fca.test.js +317 -0
  490. package/dist/tests/fca/fca.test.js.map +1 -0
  491. package/dist/tests/intuitionistic-nj/nj.test.d.ts +2 -0
  492. package/dist/tests/intuitionistic-nj/nj.test.d.ts.map +1 -0
  493. package/dist/tests/intuitionistic-nj/nj.test.js +216 -0
  494. package/dist/tests/intuitionistic-nj/nj.test.js.map +1 -0
  495. package/dist/tests/lambda-calc/lambda-calc.test.d.ts +2 -0
  496. package/dist/tests/lambda-calc/lambda-calc.test.d.ts.map +1 -0
  497. package/dist/tests/lambda-calc/lambda-calc.test.js +164 -0
  498. package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -0
  499. package/dist/tests/many-valued/many-valued.test.d.ts +2 -0
  500. package/dist/tests/many-valued/many-valued.test.d.ts.map +1 -0
  501. package/dist/tests/many-valued/many-valued.test.js +150 -0
  502. package/dist/tests/many-valued/many-valued.test.js.map +1 -0
  503. package/dist/tests/markov-logic/markov-logic.test.d.ts +2 -0
  504. package/dist/tests/markov-logic/markov-logic.test.d.ts.map +1 -0
  505. package/dist/tests/markov-logic/markov-logic.test.js +349 -0
  506. package/dist/tests/markov-logic/markov-logic.test.js.map +1 -0
  507. package/dist/tests/mltt/mltt.test.d.ts +2 -0
  508. package/dist/tests/mltt/mltt.test.d.ts.map +1 -0
  509. package/dist/tests/mltt/mltt.test.js +181 -0
  510. package/dist/tests/mltt/mltt.test.js.map +1 -0
  511. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts +2 -0
  512. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts.map +1 -0
  513. package/dist/tests/modal-frame-axioms/frame-axioms.test.js +236 -0
  514. package/dist/tests/modal-frame-axioms/frame-axioms.test.js.map +1 -0
  515. package/dist/tests/mu-calculus/check.test.d.ts +2 -0
  516. package/dist/tests/mu-calculus/check.test.d.ts.map +1 -0
  517. package/dist/tests/mu-calculus/check.test.js +234 -0
  518. package/dist/tests/mu-calculus/check.test.js.map +1 -0
  519. package/dist/tests/pi-calculus/pi-calculus.test.d.ts +2 -0
  520. package/dist/tests/pi-calculus/pi-calculus.test.d.ts.map +1 -0
  521. package/dist/tests/pi-calculus/pi-calculus.test.js +273 -0
  522. package/dist/tests/pi-calculus/pi-calculus.test.js.map +1 -0
  523. package/dist/tests/planning/planning.test.d.ts +2 -0
  524. package/dist/tests/planning/planning.test.d.ts.map +1 -0
  525. package/dist/tests/planning/planning.test.js +397 -0
  526. package/dist/tests/planning/planning.test.js.map +1 -0
  527. package/dist/tests/proof-minify/minify.test.d.ts +2 -0
  528. package/dist/tests/proof-minify/minify.test.d.ts.map +1 -0
  529. package/dist/tests/proof-minify/minify.test.js +281 -0
  530. package/dist/tests/proof-minify/minify.test.js.map +1 -0
  531. package/dist/tests/refinement-types/refinement-types.test.d.ts +2 -0
  532. package/dist/tests/refinement-types/refinement-types.test.d.ts.map +1 -0
  533. package/dist/tests/refinement-types/refinement-types.test.js +174 -0
  534. package/dist/tests/refinement-types/refinement-types.test.js.map +1 -0
  535. package/dist/tests/sequent-lk/prover.test.d.ts +2 -0
  536. package/dist/tests/sequent-lk/prover.test.d.ts.map +1 -0
  537. package/dist/tests/sequent-lk/prover.test.js +317 -0
  538. package/dist/tests/sequent-lk/prover.test.js.map +1 -0
  539. package/dist/tests/substructural/prover.test.d.ts +2 -0
  540. package/dist/tests/substructural/prover.test.d.ts.map +1 -0
  541. package/dist/tests/substructural/prover.test.js +271 -0
  542. package/dist/tests/substructural/prover.test.js.map +1 -0
  543. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts +2 -0
  544. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts.map +1 -0
  545. package/dist/tests/symbolic-diff/symbolic-diff.test.js +278 -0
  546. package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -0
  547. package/dist/tests/system-f/system-f.test.d.ts +2 -0
  548. package/dist/tests/system-f/system-f.test.d.ts.map +1 -0
  549. package/dist/tests/system-f/system-f.test.js +217 -0
  550. package/dist/tests/system-f/system-f.test.js.map +1 -0
  551. package/dist/tests/term-rewriting/critical-pairs.test.d.ts +2 -0
  552. package/dist/tests/term-rewriting/critical-pairs.test.d.ts.map +1 -0
  553. package/dist/tests/term-rewriting/critical-pairs.test.js +34 -0
  554. package/dist/tests/term-rewriting/critical-pairs.test.js.map +1 -0
  555. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts +2 -0
  556. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts.map +1 -0
  557. package/dist/tests/term-rewriting/knuth-bendix.test.js +94 -0
  558. package/dist/tests/term-rewriting/knuth-bendix.test.js.map +1 -0
  559. package/dist/tests/term-rewriting/lpo.test.d.ts +2 -0
  560. package/dist/tests/term-rewriting/lpo.test.d.ts.map +1 -0
  561. package/dist/tests/term-rewriting/lpo.test.js +57 -0
  562. package/dist/tests/term-rewriting/lpo.test.js.map +1 -0
  563. package/dist/tests/term-rewriting/rewrite.test.d.ts +2 -0
  564. package/dist/tests/term-rewriting/rewrite.test.d.ts.map +1 -0
  565. package/dist/tests/term-rewriting/rewrite.test.js +56 -0
  566. package/dist/tests/term-rewriting/rewrite.test.js.map +1 -0
  567. package/dist/tests/term-rewriting/term-utils.test.d.ts +2 -0
  568. package/dist/tests/term-rewriting/term-utils.test.d.ts.map +1 -0
  569. package/dist/tests/term-rewriting/term-utils.test.js +58 -0
  570. package/dist/tests/term-rewriting/term-utils.test.js.map +1 -0
  571. package/dist/tests/theorem-cache/cache.test.d.ts +2 -0
  572. package/dist/tests/theorem-cache/cache.test.d.ts.map +1 -0
  573. package/dist/tests/theorem-cache/cache.test.js +510 -0
  574. package/dist/tests/theorem-cache/cache.test.js.map +1 -0
  575. package/package.json +1 -1
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Abduction — Núcleo: búsqueda de explicaciones
4
+ // ============================================================
5
+ //
6
+ // Estrategia: enumeración por tamaño creciente (BFS sobre subsets).
7
+ //
8
+ // for k in 0..maxSize:
9
+ // for cada subset H ⊆ abducibles con |H| = k:
10
+ // si KB ∪ H ⊨ O y KB ∪ H consistent:
11
+ // registrar H como explicación
12
+ // marcar todos sus supersets como redundantes (no parsimoniosos)
13
+ //
14
+ // Las explicaciones se reportan ordenadas por tamaño ascendente. La
15
+ // minimalidad por inclusión se verifica al final con una pasada O(N²)
16
+ // sobre las explicaciones encontradas (suficiente para |explicaciones|
17
+ // ≲ algunos miles; en problemas grandes acotar `maxHypotheses`).
18
+ //
19
+ // Para `preferred = 'minimal'`, solo se reportan las parsimoniosas.
20
+ // Para `minimum-cardinality`, se reportan únicamente las de tamaño
21
+ // igual al mínimo encontrado. Para `minimum-cost`, las de costo
22
+ // mínimo (requiere costFunction o se usa size).
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.findExplanations = findExplanations;
25
+ exports.bestExplanation = bestExplanation;
26
+ const entails_1 = require("./entails");
27
+ function resolveOptions(abducibles, opts) {
28
+ const entails = opts?.entails ?? (0, entails_1.defaultEntails)();
29
+ const consistent = opts?.consistent ?? (0, entails_1.defaultConsistent)();
30
+ return {
31
+ entails,
32
+ consistent,
33
+ maxHypotheses: opts?.maxHypotheses ?? 1024,
34
+ maxSize: opts?.maxSize ?? abducibles.length,
35
+ costFunction: opts?.costFunction ?? (() => 1),
36
+ preferred: opts?.preferred ?? 'minimal',
37
+ };
38
+ }
39
+ /** Itera sobre todos los subsets de [0..n) de tamaño exactamente k (orden lex). */
40
+ function* combinations(n, k) {
41
+ if (k < 0 || k > n)
42
+ return;
43
+ if (k === 0) {
44
+ yield [];
45
+ return;
46
+ }
47
+ const idx = new Array(k);
48
+ for (let i = 0; i < k; i++)
49
+ idx[i] = i;
50
+ while (true) {
51
+ yield idx.slice();
52
+ // Avanzar al siguiente combination en orden lex.
53
+ let i = k - 1;
54
+ while (i >= 0 && idx[i] === n - k + i)
55
+ i--;
56
+ if (i < 0)
57
+ return;
58
+ idx[i] = idx[i] + 1;
59
+ for (let j = i + 1; j < k; j++)
60
+ idx[j] = idx[j - 1] + 1;
61
+ }
62
+ }
63
+ function isSubsetOf(a, b) {
64
+ if (a.length > b.length)
65
+ return false;
66
+ let i = 0;
67
+ let j = 0;
68
+ while (i < a.length && j < b.length) {
69
+ const ai = a[i];
70
+ const bj = b[j];
71
+ if (ai === bj) {
72
+ i++;
73
+ j++;
74
+ }
75
+ else if (ai < bj) {
76
+ return false;
77
+ }
78
+ else {
79
+ j++;
80
+ }
81
+ }
82
+ return i === a.length;
83
+ }
84
+ /**
85
+ * Encuentra todas las explicaciones de un problema abductivo.
86
+ *
87
+ * - Enumera subsets de abducibles en orden creciente de tamaño.
88
+ * - Filtra los inconsistentes y los que no implican la observación.
89
+ * - Calcula minimalidad por inclusión (parsimony) post-hoc.
90
+ * - Aplica el filtro `preferred` para el output final.
91
+ */
92
+ function findExplanations(problem, opts) {
93
+ const { kb, observation, abducibles } = problem;
94
+ const resolved = resolveOptions(abducibles, opts);
95
+ const n = abducibles.length;
96
+ const maxK = Math.min(resolved.maxSize, n);
97
+ // Pre-check: si KB ya implica O sin ninguna hipótesis, la explicación
98
+ // vacía es la única parsimoniosa.
99
+ // (Esto requiere consistencia de KB y derivación.)
100
+ const raw = [];
101
+ if (resolved.consistent(kb) && resolved.entails(kb, observation)) {
102
+ raw.push({ indices: [], hypotheses: [], costScore: 0 });
103
+ }
104
+ // Buscamos también H no vacíos. Si la vacía explica, según
105
+ // `preferred` puede ser todo lo que necesitamos (case-by-case).
106
+ outer: for (let k = 1; k <= maxK; k++) {
107
+ for (const idx of combinations(n, k)) {
108
+ const hypotheses = [];
109
+ let costScore = 0;
110
+ for (const i of idx) {
111
+ const f = abducibles[i];
112
+ if (f === undefined)
113
+ continue;
114
+ hypotheses.push(f);
115
+ costScore += resolved.costFunction(f);
116
+ }
117
+ const combined = [...kb, ...hypotheses];
118
+ // Skip duplicate trivial: si algún subset menor ya está en raw y es
119
+ // subset de este, este NO va a ser parsimonious. Lo enumeramos
120
+ // igual porque `preferred=all` debe verlos, pero podemos saltarlo
121
+ // si `preferred` ∈ {minimal, minimum-cardinality, minimum-cost}.
122
+ if (resolved.preferred !== 'all' &&
123
+ raw.some((r) => r.indices.length < idx.length && isSubsetOf(r.indices, idx))) {
124
+ continue;
125
+ }
126
+ if (!resolved.consistent(combined))
127
+ continue;
128
+ if (!resolved.entails(combined, observation))
129
+ continue;
130
+ raw.push({ indices: idx, hypotheses, costScore });
131
+ if (raw.length >= resolved.maxHypotheses)
132
+ break outer;
133
+ }
134
+ }
135
+ // Determinar parsimony por inclusión: una H es parsimoniosa sii no
136
+ // existe H' ∈ raw con H' ⊂ H (subconjunto propio).
137
+ const parsimonyMap = new Map();
138
+ const keyFor = (r) => r.indices.join(',');
139
+ for (const r of raw) {
140
+ let parsim = true;
141
+ for (const other of raw) {
142
+ if (other === r)
143
+ continue;
144
+ if (other.indices.length >= r.indices.length)
145
+ continue;
146
+ if (isSubsetOf(other.indices, r.indices)) {
147
+ parsim = false;
148
+ break;
149
+ }
150
+ }
151
+ parsimonyMap.set(keyFor(r), parsim);
152
+ }
153
+ // Convertir a Explanation[].
154
+ const explanations = raw.map((r) => ({
155
+ hypotheses: r.hypotheses,
156
+ size: r.hypotheses.length,
157
+ parsimonious: parsimonyMap.get(keyFor(r)) ?? false,
158
+ costScore: r.costScore,
159
+ }));
160
+ return applyPreference(explanations, resolved);
161
+ }
162
+ function applyPreference(expls, resolved) {
163
+ if (expls.length === 0)
164
+ return [];
165
+ switch (resolved.preferred) {
166
+ case 'all':
167
+ return expls.slice();
168
+ case 'minimal':
169
+ return expls.filter((e) => e.parsimonious);
170
+ case 'minimum-cardinality': {
171
+ const minimal = expls.filter((e) => e.parsimonious);
172
+ if (minimal.length === 0)
173
+ return [];
174
+ const minSize = minimal.reduce((m, e) => Math.min(m, e.size), Infinity);
175
+ return minimal.filter((e) => e.size === minSize);
176
+ }
177
+ case 'minimum-cost': {
178
+ const minimal = expls.filter((e) => e.parsimonious);
179
+ if (minimal.length === 0)
180
+ return [];
181
+ const minCost = minimal.reduce((m, e) => Math.min(m, e.costScore ?? Infinity), Infinity);
182
+ return minimal.filter((e) => (e.costScore ?? Infinity) === minCost);
183
+ }
184
+ default:
185
+ return expls.slice();
186
+ }
187
+ }
188
+ /**
189
+ * Devuelve UNA explicación: la "mejor" según `preferred`. Si hay
190
+ * empate, la primera en orden lex (consistente y reproducible).
191
+ *
192
+ * Devuelve `null` si no hay explicación posible.
193
+ */
194
+ function bestExplanation(problem, opts) {
195
+ // Para best-explanation, forzamos minimum-cost si hay costFunction;
196
+ // si no, minimum-cardinality. El cliente puede overridear con
197
+ // opts.preferred.
198
+ const preferred = opts?.preferred ?? (opts?.costFunction ? 'minimum-cost' : 'minimum-cardinality');
199
+ const all = findExplanations(problem, { ...opts, preferred });
200
+ return all.length > 0 ? all[0] : null;
201
+ }
202
+ //# sourceMappingURL=find.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/runtime/abduction/find.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { findExplanations, bestExplanation } from './find';
2
+ export { defaultEntails, defaultConsistent } from './entails';
3
+ export type { AbductionOptions, AbductionProblem, ConsistencyOracle, EntailmentOracle, Explanation, Formula, Preference, } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/abduction/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,UAAU,GACX,MAAM,SAAS,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Abduction — Barrel
4
+ // ============================================================
5
+ //
6
+ // Razonamiento abductivo: dado un knowledge base KB y una observación
7
+ // O, encontrar la hipótesis mínima H ⊆ Abducibles tal que
8
+ // KB ∪ H ⊨ O y KB ∪ H es consistente.
9
+ //
10
+ // API pública:
11
+ // - `findExplanations(problem, opts?)` → todas las explicaciones
12
+ // - `bestExplanation(problem, opts?)` → la mejor según preferencia
13
+ // - `defaultEntails(opts?)` → oráculo entailment Horn-like
14
+ // - `defaultConsistent(opts?)` → oráculo consistencia derivado
15
+ //
16
+ // Tipos: `AbductionProblem`, `Explanation`, `AbductionOptions`,
17
+ // `EntailmentOracle`, `ConsistencyOracle`, `Preference`, `Formula`.
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.defaultConsistent = exports.defaultEntails = exports.bestExplanation = exports.findExplanations = void 0;
20
+ var find_1 = require("./find");
21
+ Object.defineProperty(exports, "findExplanations", { enumerable: true, get: function () { return find_1.findExplanations; } });
22
+ Object.defineProperty(exports, "bestExplanation", { enumerable: true, get: function () { return find_1.bestExplanation; } });
23
+ var entails_1 = require("./entails");
24
+ Object.defineProperty(exports, "defaultEntails", { enumerable: true, get: function () { return entails_1.defaultEntails; } });
25
+ Object.defineProperty(exports, "defaultConsistent", { enumerable: true, get: function () { return entails_1.defaultConsistent; } });
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/abduction/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,wBAAwB;AACxB,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,0DAA0D;AAC1D,sCAAsC;AACtC,EAAE;AACF,eAAe;AACf,oEAAoE;AACpE,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,EAAE;AACF,gEAAgE;AAChE,oEAAoE;;;AAEpE,+BAA2D;AAAlD,wGAAA,gBAAgB,OAAA;AAAE,uGAAA,eAAe,OAAA;AAC1C,qCAA8D;AAArD,yGAAA,cAAc,OAAA;AAAE,4GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,78 @@
1
+ /** Una fórmula (formato libre — strings, opaque al motor). */
2
+ export type Formula = string;
3
+ /**
4
+ * Oráculo de consecuencia lógica: dado un conjunto de premisas P y
5
+ * una fórmula objetivo q, devuelve `true` sii P ⊨ q.
6
+ *
7
+ * El motor abductivo es agnóstico al sistema lógico. Quien usa la
8
+ * librería provee este oráculo (puede ser propositional, FOL,
9
+ * description logic, etc).
10
+ */
11
+ export type EntailmentOracle = (premises: ReadonlyArray<Formula>, target: Formula) => boolean;
12
+ /**
13
+ * Oráculo de consistencia: dado un conjunto de fórmulas, devuelve
14
+ * `true` sii admite al menos un modelo. Default razonable: si no
15
+ * lo dan, decimos consistente sii NO P ⊨ ⊥. Como no tenemos ⊥
16
+ * estándar en strings, en la práctica conviene pasar este oráculo.
17
+ */
18
+ export type ConsistencyOracle = (premises: ReadonlyArray<Formula>) => boolean;
19
+ /**
20
+ * Problema abductivo.
21
+ *
22
+ * - `kb`: background knowledge (axiomas del dominio).
23
+ * - `observation`: fórmula que queremos explicar.
24
+ * - `abducibles`: el conjunto de fórmulas elegibles como hipótesis.
25
+ * El razonador buscará H ⊆ abducibles.
26
+ */
27
+ export interface AbductionProblem {
28
+ kb: ReadonlyArray<Formula>;
29
+ observation: Formula;
30
+ abducibles: ReadonlyArray<Formula>;
31
+ }
32
+ /**
33
+ * Una explicación candidata.
34
+ *
35
+ * - `hypotheses`: subconjunto de abducibles.
36
+ * - `size`: cardinalidad (= hypotheses.length).
37
+ * - `parsimonious`: true sii no existe subconjunto propio que
38
+ * también explique la observación de forma consistente.
39
+ * (Equivale a "minimal por inclusión".)
40
+ * - `costScore`: suma de costos si se proveyó costFunction.
41
+ */
42
+ export interface Explanation {
43
+ hypotheses: ReadonlyArray<Formula>;
44
+ size: number;
45
+ parsimonious: boolean;
46
+ costScore?: number;
47
+ }
48
+ /**
49
+ * Criterio de preferencia sobre el conjunto de explicaciones.
50
+ *
51
+ * - `all`: todas las explicaciones encontradas (no filtra).
52
+ * - `minimal`: solo las minimal-por-inclusión (parsimonious).
53
+ * - `minimum-cardinality`: las de menor |H| entre las minimales.
54
+ * - `minimum-cost`: las de menor costo total (requiere costFunction).
55
+ */
56
+ export type Preference = 'all' | 'minimal' | 'minimum-cardinality' | 'minimum-cost';
57
+ export interface AbductionOptions {
58
+ /** Oráculo de entailment. Default: `defaultEntails` (propositional, ver entails.ts). */
59
+ entails?: EntailmentOracle;
60
+ /** Oráculo de consistencia. Default: derivado de `entails` (no entails ⊥-equiv). */
61
+ consistent?: ConsistencyOracle;
62
+ /**
63
+ * Tope de explicaciones a retornar. Útil cuando hay explosión
64
+ * combinatoria. Default: 1024.
65
+ */
66
+ maxHypotheses?: number;
67
+ /**
68
+ * Tope para |H|. Acota el espacio de búsqueda. Default: igual a
69
+ * |abducibles| (sin tope efectivo). Bajarlo es una buena idea
70
+ * para |abducibles| > 12.
71
+ */
72
+ maxSize?: number;
73
+ /** Función de costo por hipótesis. Default: 1 por hipótesis. */
74
+ costFunction?: (h: Formula) => number;
75
+ /** Cómo filtrar/ordenar el output. Default: `minimal`. */
76
+ preferred?: Preference;
77
+ }
78
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/abduction/types.ts"],"names":[],"mappings":"AAqBA,8DAA8D;AAC9D,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;AAE9F;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,oFAAoF;IACpF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACtC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Abduction — Tipos públicos
4
+ // ============================================================
5
+ //
6
+ // Razonamiento abductivo (Peirce 1903; Reiter 1987): dado un
7
+ // background knowledge KB y una observación O, encontrar
8
+ // hipótesis H ⊆ Abducibles tal que:
9
+ //
10
+ // 1. KB ∪ H ⊨ O (la hipótesis explica la observación)
11
+ // 2. KB ∪ H consistent (la hipótesis es compatible con KB)
12
+ // 3. H es minimal (no hay H' ⊂ H que cumpla 1 y 2)
13
+ //
14
+ // Usos típicos:
15
+ // - Diagnóstico (¿qué fallas explican estos síntomas?)
16
+ // - Inferencia best-fit (la hipótesis más simple/barata gana)
17
+ // - Generación de explicaciones (debugging de cadenas causales)
18
+ //
19
+ // El espacio de hipótesis se enumera sobre 2^|abducibles|. Para
20
+ // |abducibles| ≲ 16 la enumeración exhaustiva es viable. Para más
21
+ // grande, conviene un oráculo SAT incremental.
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/abduction/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;AAC/D,EAAE;AACF,6DAA6D;AAC7D,yDAAyD;AACzD,oCAAoC;AACpC,EAAE;AACF,8DAA8D;AAC9D,6DAA6D;AAC7D,qDAAqD;AACrD,EAAE;AACF,gBAAgB;AAChB,yDAAyD;AACzD,gEAAgE;AAChE,kEAAkE;AAClE,EAAE;AACF,gEAAgE;AAChE,kEAAkE;AAClE,+CAA+C"}
@@ -0,0 +1,22 @@
1
+ import type { AntiUnificationResult, FreshSupply, Term } from './types';
2
+ /**
3
+ * Fuente default de variables frescas: _g0, _g1, _g2, …
4
+ *
5
+ * Se devuelve una NUEVA instancia por llamada para evitar estado
6
+ * compartido entre invocaciones de antiUnify.
7
+ */
8
+ export declare function defaultFreshSupply(prefix?: string): FreshSupply;
9
+ /**
10
+ * Anti-unification de dos términos.
11
+ *
12
+ * Devuelve el lgg (least general generalization) junto con las
13
+ * sustituciones de izquierda y derecha que reconstruyen los
14
+ * términos originales.
15
+ *
16
+ * Complejidad: O(|t1| + |t2|) tiempo si la tabla se implementa con
17
+ * hashing O(1). Usamos `termKey` que serializa, así que es
18
+ * O((|t1| + |t2|)·k) donde k es el tamaño del subtérmino más grande
19
+ * que aparezca en un desacuerdo.
20
+ */
21
+ export declare function antiUnify(t1: Term, t2: Term, freshSupply?: FreshSupply): AntiUnificationResult;
22
+ //# sourceMappingURL=anti-unify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anti-unify.d.ts","sourceRoot":"","sources":["../../../src/runtime/anti-unification/anti-unify.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAGxE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,MAAa,GAAG,WAAW,CAGrE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,qBAAqB,CAc9F"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Anti-Unification — Algoritmo de Plotkin (lgg)
4
+ // ============================================================
5
+ //
6
+ // Algoritmo (Plotkin 1970):
7
+ //
8
+ // au(t1, t2, table):
9
+ // si t1 ≡ t2 estructuralmente:
10
+ // return t1
11
+ // si ambos son func/const con mismo nombre y misma aridad:
12
+ // return func(name, [au(t1.args[i], t2.args[i]) for i])
13
+ // // desacuerdo: introducimos fresh var, reusando si ya existe
14
+ // // una asignada al MISMO par (t1, t2) — esto es clave para que
15
+ // // la generalización sea LEAST (most specific).
16
+ // si table tiene (t1, t2) → v entonces return v
17
+ // v := freshSupply()
18
+ // table[(t1, t2)] := v
19
+ // return v
20
+ //
21
+ // La tabla de correspondencias se mantiene globalmente durante la
22
+ // recursión para que múltiples ocurrencias del mismo desacuerdo
23
+ // reciban la misma fresh var. Sin esta tabla obtendríamos una
24
+ // generalización menos específica (e.g., au(p(a,a), p(b,b)) daría
25
+ // p(X, Y) en vez de p(X, X)).
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.defaultFreshSupply = defaultFreshSupply;
28
+ exports.antiUnify = antiUnify;
29
+ const term_utils_1 = require("./term-utils");
30
+ /**
31
+ * Fuente default de variables frescas: _g0, _g1, _g2, …
32
+ *
33
+ * Se devuelve una NUEVA instancia por llamada para evitar estado
34
+ * compartido entre invocaciones de antiUnify.
35
+ */
36
+ function defaultFreshSupply(prefix = '_g') {
37
+ let counter = 0;
38
+ return () => `${prefix}${counter++}`;
39
+ }
40
+ /**
41
+ * Anti-unification de dos términos.
42
+ *
43
+ * Devuelve el lgg (least general generalization) junto con las
44
+ * sustituciones de izquierda y derecha que reconstruyen los
45
+ * términos originales.
46
+ *
47
+ * Complejidad: O(|t1| + |t2|) tiempo si la tabla se implementa con
48
+ * hashing O(1). Usamos `termKey` que serializa, así que es
49
+ * O((|t1| + |t2|)·k) donde k es el tamaño del subtérmino más grande
50
+ * que aparezca en un desacuerdo.
51
+ */
52
+ function antiUnify(t1, t2, freshSupply) {
53
+ const supply = freshSupply ?? defaultFreshSupply();
54
+ // Tabla de desacuerdos: clave canónica "t1║t2" → nombre de var fresca.
55
+ const table = new Map();
56
+ // Sustituciones de salida: para cada fresh var, qué término iba en
57
+ // cada lado.
58
+ const substLeft = new Map();
59
+ const substRight = new Map();
60
+ // Orden de introducción de las fresh vars (para `variables`).
61
+ const variables = [];
62
+ const generalization = antiUnifyAux(t1, t2, table, substLeft, substRight, variables, supply);
63
+ return { generalization, substLeft, substRight, variables };
64
+ }
65
+ /**
66
+ * Núcleo recursivo del algoritmo. Se mantiene recursivo (no iterativo)
67
+ * porque la mayoría de términos en la práctica son superficiales y la
68
+ * recursión sigue la estructura del término más pequeño.
69
+ *
70
+ * Si en algún momento aparecen términos patológicamente profundos,
71
+ * habría que reescribirlo con un stack explícito siguiendo el patrón
72
+ * de `mapTerm` en term-rewriting/term-utils.ts.
73
+ */
74
+ function antiUnifyAux(t1, t2, table, substLeft, substRight, variables, supply) {
75
+ // Caso base: estructuralmente iguales → la generalización es el
76
+ // término mismo, sin nuevas variables.
77
+ if ((0, term_utils_1.termEquals)(t1, t2))
78
+ return t1;
79
+ // Misma "cabeza" (mismo símbolo, misma aridad, mismo kind func/const)
80
+ // → recursamos argumento a argumento.
81
+ if (sameHead(t1, t2)) {
82
+ const args1 = t1.args ?? [];
83
+ const args2 = t2.args ?? [];
84
+ // sameHead garantiza aridad igual.
85
+ const newArgs = new Array(args1.length);
86
+ for (let i = 0; i < args1.length; i++) {
87
+ const a1 = args1[i];
88
+ const a2 = args2[i];
89
+ if (a1 === undefined || a2 === undefined) {
90
+ // Imposible si sameHead pasó, pero el chequeo apacigua a TS
91
+ // bajo noUncheckedIndexedAccess.
92
+ throw new Error('antiUnify: aridad inconsistente tras sameHead check');
93
+ }
94
+ newArgs[i] = antiUnifyAux(a1, a2, table, substLeft, substRight, variables, supply);
95
+ }
96
+ if (t1.kind === 'const') {
97
+ // const con args=[] ya cayó en termEquals; si llegamos aquí con
98
+ // kind=const es porque ambos tienen mismo nombre y 0 args, lo
99
+ // que ya implicaría termEquals=true. Defensa por si llega un
100
+ // const con args>0 mal construido.
101
+ return { kind: 'const', name: t1.name };
102
+ }
103
+ return { kind: 'func', name: t1.name, args: newArgs };
104
+ }
105
+ // Desacuerdo: pares distintos. Reutilizamos la fresh var si ya
106
+ // habíamos visto este par; de lo contrario generamos una nueva.
107
+ const key = pairKey(t1, t2);
108
+ const existing = table.get(key);
109
+ if (existing !== undefined) {
110
+ return { kind: 'var', name: existing };
111
+ }
112
+ const fresh = supply();
113
+ table.set(key, fresh);
114
+ substLeft.set(fresh, t1);
115
+ substRight.set(fresh, t2);
116
+ variables.push(fresh);
117
+ return { kind: 'var', name: fresh };
118
+ }
119
+ /**
120
+ * ¿t1 y t2 comparten la misma "cabeza" (símbolo + aridad + kind no-var)?
121
+ *
122
+ * Variables NUNCA tienen cabeza común con otra cosa: el caso `var, var`
123
+ * con mismos nombres ya lo absorbe `termEquals` arriba; con nombres
124
+ * distintos es un desacuerdo legítimo. Un `var` contra `func/const`
125
+ * también es desacuerdo (la variable es más general).
126
+ */
127
+ function sameHead(t1, t2) {
128
+ if (t1.kind === 'var' || t2.kind === 'var')
129
+ return false;
130
+ // Tratamos const como func(name, []) para comparar aridad.
131
+ if (t1.name !== t2.name)
132
+ return false;
133
+ const a1 = t1.args ?? [];
134
+ const a2 = t2.args ?? [];
135
+ if (a1.length !== a2.length)
136
+ return false;
137
+ // Si los kinds difieren (func vs const) pero la aridad es 0 y los
138
+ // nombres coinciden, todavía lo aceptamos como "misma cabeza" para
139
+ // ser tolerantes con clientes que mezclen ambas convenciones.
140
+ // Pero antes de aceptar, exigimos que si difieren los kinds, la
141
+ // aridad sea 0 — un `const` con args no debería existir.
142
+ if (t1.kind !== t2.kind && a1.length > 0)
143
+ return false;
144
+ return true;
145
+ }
146
+ /**
147
+ * Clave canónica para un par (t1, t2) usada en la tabla de
148
+ * desacuerdos. Usamos un separador que no puede aparecer en
149
+ * `termKey` para evitar colisiones.
150
+ */
151
+ function pairKey(t1, t2) {
152
+ return `${(0, term_utils_1.termKey)(t1)}║${(0, term_utils_1.termKey)(t2)}`;
153
+ }
154
+ //# sourceMappingURL=anti-unify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anti-unify.js","sourceRoot":"","sources":["../../../src/runtime/anti-unification/anti-unify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type { Term, AntiUnificationResult, FreshSupply } from './types';
2
+ export { antiUnify, defaultFreshSupply } from './anti-unify';
3
+ export { termEquals, termKey, varsOf, applySubst, termSize, v, f, c } from './term-utils';
4
+ export { antiUnifyMany, antiUnifyManyDetailed, generalizationOrder } from './many';
5
+ export type { AntiUnificationManyResult } from './many';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/anti-unification/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEnF,YAAY,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Anti-Unification — Barrel de exportaciones
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generalizationOrder = exports.antiUnifyManyDetailed = exports.antiUnifyMany = exports.c = exports.f = exports.v = exports.termSize = exports.applySubst = exports.varsOf = exports.termKey = exports.termEquals = exports.defaultFreshSupply = exports.antiUnify = void 0;
7
+ var anti_unify_1 = require("./anti-unify");
8
+ Object.defineProperty(exports, "antiUnify", { enumerable: true, get: function () { return anti_unify_1.antiUnify; } });
9
+ Object.defineProperty(exports, "defaultFreshSupply", { enumerable: true, get: function () { return anti_unify_1.defaultFreshSupply; } });
10
+ var term_utils_1 = require("./term-utils");
11
+ Object.defineProperty(exports, "termEquals", { enumerable: true, get: function () { return term_utils_1.termEquals; } });
12
+ Object.defineProperty(exports, "termKey", { enumerable: true, get: function () { return term_utils_1.termKey; } });
13
+ Object.defineProperty(exports, "varsOf", { enumerable: true, get: function () { return term_utils_1.varsOf; } });
14
+ Object.defineProperty(exports, "applySubst", { enumerable: true, get: function () { return term_utils_1.applySubst; } });
15
+ Object.defineProperty(exports, "termSize", { enumerable: true, get: function () { return term_utils_1.termSize; } });
16
+ Object.defineProperty(exports, "v", { enumerable: true, get: function () { return term_utils_1.v; } });
17
+ Object.defineProperty(exports, "f", { enumerable: true, get: function () { return term_utils_1.f; } });
18
+ Object.defineProperty(exports, "c", { enumerable: true, get: function () { return term_utils_1.c; } });
19
+ var many_1 = require("./many");
20
+ Object.defineProperty(exports, "antiUnifyMany", { enumerable: true, get: function () { return many_1.antiUnifyMany; } });
21
+ Object.defineProperty(exports, "antiUnifyManyDetailed", { enumerable: true, get: function () { return many_1.antiUnifyManyDetailed; } });
22
+ Object.defineProperty(exports, "generalizationOrder", { enumerable: true, get: function () { return many_1.generalizationOrder; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/anti-unification/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;;;AAI/D,2CAA6D;AAApD,uGAAA,SAAS,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAEtC,2CAA0F;AAAjF,wGAAA,UAAU,OAAA;AAAE,qGAAA,OAAO,OAAA;AAAE,oGAAA,MAAM,OAAA;AAAE,wGAAA,UAAU,OAAA;AAAE,sGAAA,QAAQ,OAAA;AAAE,+FAAA,CAAC,OAAA;AAAE,+FAAA,CAAC,OAAA;AAAE,+FAAA,CAAC,OAAA;AAEnE,+BAAmF;AAA1E,qGAAA,aAAa,OAAA;AAAE,6GAAA,qBAAqB,OAAA;AAAE,2GAAA,mBAAmB,OAAA"}
@@ -0,0 +1,49 @@
1
+ import type { AntiUnificationResult, FreshSupply, Term } from './types';
2
+ import { applySubst } from './term-utils';
3
+ /**
4
+ * Variante "detailed" del n-way lgg.
5
+ *
6
+ * Devuelve la generalización y un array `substs` de longitud n tal
7
+ * que substs[i] aplicada al generalization reproduce el término i.
8
+ */
9
+ export interface AntiUnificationManyResult {
10
+ generalization: Term;
11
+ substs: Map<string, Term>[];
12
+ variables: string[];
13
+ }
14
+ /**
15
+ * Anti-unification n-aria. Reduce con la versión binaria.
16
+ *
17
+ * Para n=0 lanza error (no hay generalización sensata).
18
+ * Para n=1 devuelve el término sin variables nuevas.
19
+ */
20
+ export declare function antiUnifyMany(terms: Term[], freshSupply?: FreshSupply): AntiUnificationResult;
21
+ /**
22
+ * Versión "detailed" — devuelve las n sustituciones independientes.
23
+ *
24
+ * Esta es la forma más útil para clientes que quieren ver cómo se
25
+ * instancia cada uno de los n términos desde la generalización.
26
+ */
27
+ export declare function antiUnifyManyDetailed(terms: Term[], freshSupply?: FreshSupply): AntiUnificationManyResult;
28
+ /**
29
+ * Orden de generalidad entre dos términos.
30
+ *
31
+ * Definición: g1 ≤ g2 ⇔ existe sustitución σ con σ(g1) = g2.
32
+ * Es decir, g1 es MÁS GENERAL que g2 (g2 es una instancia de g1).
33
+ *
34
+ * Resultados:
35
+ * - -1 si g1 es ESTRICTAMENTE más general que g2 (g1 < g2 en
36
+ * generalidad inversa — equivalente: σ(g1)=g2 pero no
37
+ * σ'(g2)=g1).
38
+ * - 0 si son equivalentes módulo renombre (cada uno instancia
39
+ * del otro vía sustitución de variables).
40
+ * - +1 si g2 es estrictamente más general que g1.
41
+ * - null si son INCOMPARABLES (no hay σ en ningún sentido).
42
+ *
43
+ * Nota: la convención del usuario en la spec es
44
+ * generalizationOrder(X, f(X)) → -1 (X más general).
45
+ * Esto es coherente: X es más general que f(X), y devolvemos -1.
46
+ */
47
+ export declare function generalizationOrder(g1: Term, g2: Term): -1 | 0 | 1 | null;
48
+ export { applySubst };
49
+ //# sourceMappingURL=many.d.ts.map