@stevenvo780/st-lang 4.1.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/dist/belief-revision/agm.d.ts +76 -0
  2. package/dist/belief-revision/agm.d.ts.map +1 -0
  3. package/dist/belief-revision/agm.js +249 -0
  4. package/dist/belief-revision/agm.js.map +1 -0
  5. package/dist/belief-revision/index.d.ts +6 -0
  6. package/dist/belief-revision/index.d.ts.map +1 -0
  7. package/dist/belief-revision/index.js +33 -0
  8. package/dist/belief-revision/index.js.map +1 -0
  9. package/dist/belief-revision/parser.d.ts +16 -0
  10. package/dist/belief-revision/parser.d.ts.map +1 -0
  11. package/dist/belief-revision/parser.js +199 -0
  12. package/dist/belief-revision/parser.js.map +1 -0
  13. package/dist/belief-revision/sat.d.ts +19 -0
  14. package/dist/belief-revision/sat.d.ts.map +1 -0
  15. package/dist/belief-revision/sat.js +90 -0
  16. package/dist/belief-revision/sat.js.map +1 -0
  17. package/dist/belief-revision/types.d.ts +51 -0
  18. package/dist/belief-revision/types.d.ts.map +1 -0
  19. package/dist/belief-revision/types.js +10 -0
  20. package/dist/belief-revision/types.js.map +1 -0
  21. package/dist/curry-howard/index.d.ts +7 -0
  22. package/dist/curry-howard/index.d.ts.map +1 -0
  23. package/dist/curry-howard/index.js +46 -0
  24. package/dist/curry-howard/index.js.map +1 -0
  25. package/dist/curry-howard/infer.d.ts +9 -0
  26. package/dist/curry-howard/infer.d.ts.map +1 -0
  27. package/dist/curry-howard/infer.js +129 -0
  28. package/dist/curry-howard/infer.js.map +1 -0
  29. package/dist/curry-howard/proof.d.ts +7 -0
  30. package/dist/curry-howard/proof.d.ts.map +1 -0
  31. package/dist/curry-howard/proof.js +282 -0
  32. package/dist/curry-howard/proof.js.map +1 -0
  33. package/dist/curry-howard/reduce.d.ts +7 -0
  34. package/dist/curry-howard/reduce.d.ts.map +1 -0
  35. package/dist/curry-howard/reduce.js +266 -0
  36. package/dist/curry-howard/reduce.js.map +1 -0
  37. package/dist/curry-howard/types.d.ts +91 -0
  38. package/dist/curry-howard/types.d.ts.map +1 -0
  39. package/dist/curry-howard/types.js +149 -0
  40. package/dist/curry-howard/types.js.map +1 -0
  41. package/dist/fol-prover-equality/demodulate.d.ts +29 -0
  42. package/dist/fol-prover-equality/demodulate.d.ts.map +1 -0
  43. package/dist/fol-prover-equality/demodulate.js +197 -0
  44. package/dist/fol-prover-equality/demodulate.js.map +1 -0
  45. package/dist/fol-prover-equality/index.d.ts +8 -0
  46. package/dist/fol-prover-equality/index.d.ts.map +1 -0
  47. package/dist/fol-prover-equality/index.js +24 -0
  48. package/dist/fol-prover-equality/index.js.map +1 -0
  49. package/dist/fol-prover-equality/paramodulate.d.ts +46 -0
  50. package/dist/fol-prover-equality/paramodulate.d.ts.map +1 -0
  51. package/dist/fol-prover-equality/paramodulate.js +159 -0
  52. package/dist/fol-prover-equality/paramodulate.js.map +1 -0
  53. package/dist/fol-prover-equality/prove.d.ts +7 -0
  54. package/dist/fol-prover-equality/prove.d.ts.map +1 -0
  55. package/dist/fol-prover-equality/prove.js +307 -0
  56. package/dist/fol-prover-equality/prove.js.map +1 -0
  57. package/dist/fol-prover-equality/term-utils.d.ts +43 -0
  58. package/dist/fol-prover-equality/term-utils.d.ts.map +1 -0
  59. package/dist/fol-prover-equality/term-utils.js +230 -0
  60. package/dist/fol-prover-equality/term-utils.js.map +1 -0
  61. package/dist/fol-prover-equality/types.d.ts +20 -0
  62. package/dist/fol-prover-equality/types.d.ts.map +1 -0
  63. package/dist/fol-prover-equality/types.js +5 -0
  64. package/dist/fol-prover-equality/types.js.map +1 -0
  65. package/dist/index.d.ts +8 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +53 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/lambda-calc/church.d.ts +8 -0
  70. package/dist/lambda-calc/church.d.ts.map +1 -0
  71. package/dist/lambda-calc/church.js +67 -0
  72. package/dist/lambda-calc/church.js.map +1 -0
  73. package/dist/lambda-calc/combinators.d.ts +8 -0
  74. package/dist/lambda-calc/combinators.d.ts.map +1 -0
  75. package/dist/lambda-calc/combinators.js +24 -0
  76. package/dist/lambda-calc/combinators.js.map +1 -0
  77. package/dist/lambda-calc/index.d.ts +8 -0
  78. package/dist/lambda-calc/index.d.ts.map +1 -0
  79. package/dist/lambda-calc/index.js +48 -0
  80. package/dist/lambda-calc/index.js.map +1 -0
  81. package/dist/lambda-calc/reduce.d.ts +18 -0
  82. package/dist/lambda-calc/reduce.d.ts.map +1 -0
  83. package/dist/lambda-calc/reduce.js +174 -0
  84. package/dist/lambda-calc/reduce.js.map +1 -0
  85. package/dist/lambda-calc/substitution.d.ts +6 -0
  86. package/dist/lambda-calc/substitution.d.ts.map +1 -0
  87. package/dist/lambda-calc/substitution.js +120 -0
  88. package/dist/lambda-calc/substitution.js.map +1 -0
  89. package/dist/lambda-calc/types.d.ts +19 -0
  90. package/dist/lambda-calc/types.d.ts.map +1 -0
  91. package/dist/lambda-calc/types.js +72 -0
  92. package/dist/lambda-calc/types.js.map +1 -0
  93. package/dist/profiles/ctl/check.d.ts +13 -0
  94. package/dist/profiles/ctl/check.d.ts.map +1 -0
  95. package/dist/profiles/ctl/check.js +359 -0
  96. package/dist/profiles/ctl/check.js.map +1 -0
  97. package/dist/profiles/ctl/index.d.ts +5 -0
  98. package/dist/profiles/ctl/index.d.ts.map +1 -0
  99. package/dist/profiles/ctl/index.js +23 -0
  100. package/dist/profiles/ctl/index.js.map +1 -0
  101. package/dist/profiles/ctl/types.d.ts +74 -0
  102. package/dist/profiles/ctl/types.d.ts.map +1 -0
  103. package/dist/profiles/ctl/types.js +53 -0
  104. package/dist/profiles/ctl/types.js.map +1 -0
  105. package/dist/profiles/ctl/witness.d.ts +20 -0
  106. package/dist/profiles/ctl/witness.d.ts.map +1 -0
  107. package/dist/profiles/ctl/witness.js +149 -0
  108. package/dist/profiles/ctl/witness.js.map +1 -0
  109. package/dist/profiles/default-logic/entailment.d.ts +14 -0
  110. package/dist/profiles/default-logic/entailment.d.ts.map +1 -0
  111. package/dist/profiles/default-logic/entailment.js +36 -0
  112. package/dist/profiles/default-logic/entailment.js.map +1 -0
  113. package/dist/profiles/default-logic/extensions.d.ts +35 -0
  114. package/dist/profiles/default-logic/extensions.d.ts.map +1 -0
  115. package/dist/profiles/default-logic/extensions.js +276 -0
  116. package/dist/profiles/default-logic/extensions.js.map +1 -0
  117. package/dist/profiles/default-logic/index.d.ts +5 -0
  118. package/dist/profiles/default-logic/index.d.ts.map +1 -0
  119. package/dist/profiles/default-logic/index.js +33 -0
  120. package/dist/profiles/default-logic/index.js.map +1 -0
  121. package/dist/profiles/default-logic/types.d.ts +29 -0
  122. package/dist/profiles/default-logic/types.d.ts.map +1 -0
  123. package/dist/profiles/default-logic/types.js +25 -0
  124. package/dist/profiles/default-logic/types.js.map +1 -0
  125. package/dist/profiles/description-logic/index.d.ts +5 -0
  126. package/dist/profiles/description-logic/index.d.ts.map +1 -0
  127. package/dist/profiles/description-logic/index.js +39 -0
  128. package/dist/profiles/description-logic/index.js.map +1 -0
  129. package/dist/profiles/description-logic/nnf.d.ts +13 -0
  130. package/dist/profiles/description-logic/nnf.d.ts.map +1 -0
  131. package/dist/profiles/description-logic/nnf.js +123 -0
  132. package/dist/profiles/description-logic/nnf.js.map +1 -0
  133. package/dist/profiles/description-logic/tableau.d.ts +27 -0
  134. package/dist/profiles/description-logic/tableau.d.ts.map +1 -0
  135. package/dist/profiles/description-logic/tableau.js +491 -0
  136. package/dist/profiles/description-logic/tableau.js.map +1 -0
  137. package/dist/profiles/description-logic/types.d.ts +45 -0
  138. package/dist/profiles/description-logic/types.d.ts.map +1 -0
  139. package/dist/profiles/description-logic/types.js +71 -0
  140. package/dist/profiles/description-logic/types.js.map +1 -0
  141. package/dist/profiles/hybrid-logic/index.d.ts +5 -0
  142. package/dist/profiles/hybrid-logic/index.d.ts.map +1 -0
  143. package/dist/profiles/hybrid-logic/index.js +34 -0
  144. package/dist/profiles/hybrid-logic/index.js.map +1 -0
  145. package/dist/profiles/hybrid-logic/sat.d.ts +15 -0
  146. package/dist/profiles/hybrid-logic/sat.d.ts.map +1 -0
  147. package/dist/profiles/hybrid-logic/sat.js +142 -0
  148. package/dist/profiles/hybrid-logic/sat.js.map +1 -0
  149. package/dist/profiles/hybrid-logic/semantics.d.ts +20 -0
  150. package/dist/profiles/hybrid-logic/semantics.d.ts.map +1 -0
  151. package/dist/profiles/hybrid-logic/semantics.js +107 -0
  152. package/dist/profiles/hybrid-logic/semantics.js.map +1 -0
  153. package/dist/profiles/hybrid-logic/types.d.ts +78 -0
  154. package/dist/profiles/hybrid-logic/types.d.ts.map +1 -0
  155. package/dist/profiles/hybrid-logic/types.js +107 -0
  156. package/dist/profiles/hybrid-logic/types.js.map +1 -0
  157. package/dist/profiles/intuitionistic-nj/formula.d.ts +19 -0
  158. package/dist/profiles/intuitionistic-nj/formula.d.ts.map +1 -0
  159. package/dist/profiles/intuitionistic-nj/formula.js +99 -0
  160. package/dist/profiles/intuitionistic-nj/formula.js.map +1 -0
  161. package/dist/profiles/intuitionistic-nj/index.d.ts +5 -0
  162. package/dist/profiles/intuitionistic-nj/index.d.ts.map +1 -0
  163. package/dist/profiles/intuitionistic-nj/index.js +24 -0
  164. package/dist/profiles/intuitionistic-nj/index.js.map +1 -0
  165. package/dist/profiles/intuitionistic-nj/kripke.d.ts +17 -0
  166. package/dist/profiles/intuitionistic-nj/kripke.d.ts.map +1 -0
  167. package/dist/profiles/intuitionistic-nj/kripke.js +206 -0
  168. package/dist/profiles/intuitionistic-nj/kripke.js.map +1 -0
  169. package/dist/profiles/intuitionistic-nj/prover.d.ts +13 -0
  170. package/dist/profiles/intuitionistic-nj/prover.d.ts.map +1 -0
  171. package/dist/profiles/intuitionistic-nj/prover.js +418 -0
  172. package/dist/profiles/intuitionistic-nj/prover.js.map +1 -0
  173. package/dist/profiles/intuitionistic-nj/types.d.ts +55 -0
  174. package/dist/profiles/intuitionistic-nj/types.d.ts.map +1 -0
  175. package/dist/profiles/intuitionistic-nj/types.js +21 -0
  176. package/dist/profiles/intuitionistic-nj/types.js.map +1 -0
  177. package/dist/profiles/ltl-sat/index.d.ts +4 -0
  178. package/dist/profiles/ltl-sat/index.d.ts.map +1 -0
  179. package/dist/profiles/ltl-sat/index.js +40 -0
  180. package/dist/profiles/ltl-sat/index.js.map +1 -0
  181. package/dist/profiles/ltl-sat/sat.d.ts +8 -0
  182. package/dist/profiles/ltl-sat/sat.d.ts.map +1 -0
  183. package/dist/profiles/ltl-sat/sat.js +140 -0
  184. package/dist/profiles/ltl-sat/sat.js.map +1 -0
  185. package/dist/profiles/ltl-sat/tableau.d.ts +19 -0
  186. package/dist/profiles/ltl-sat/tableau.d.ts.map +1 -0
  187. package/dist/profiles/ltl-sat/tableau.js +358 -0
  188. package/dist/profiles/ltl-sat/tableau.js.map +1 -0
  189. package/dist/profiles/ltl-sat/types.d.ts +52 -0
  190. package/dist/profiles/ltl-sat/types.d.ts.map +1 -0
  191. package/dist/profiles/ltl-sat/types.js +101 -0
  192. package/dist/profiles/ltl-sat/types.js.map +1 -0
  193. package/dist/profiles/many-valued/index.d.ts +39 -0
  194. package/dist/profiles/many-valued/index.d.ts.map +1 -0
  195. package/dist/profiles/many-valued/index.js +250 -0
  196. package/dist/profiles/many-valued/index.js.map +1 -0
  197. package/dist/profiles/modal-frame-axioms/formula.d.ts +23 -0
  198. package/dist/profiles/modal-frame-axioms/formula.d.ts.map +1 -0
  199. package/dist/profiles/modal-frame-axioms/formula.js +158 -0
  200. package/dist/profiles/modal-frame-axioms/formula.js.map +1 -0
  201. package/dist/profiles/modal-frame-axioms/index.d.ts +6 -0
  202. package/dist/profiles/modal-frame-axioms/index.d.ts.map +1 -0
  203. package/dist/profiles/modal-frame-axioms/index.js +41 -0
  204. package/dist/profiles/modal-frame-axioms/index.js.map +1 -0
  205. package/dist/profiles/modal-frame-axioms/systems.d.ts +29 -0
  206. package/dist/profiles/modal-frame-axioms/systems.d.ts.map +1 -0
  207. package/dist/profiles/modal-frame-axioms/systems.js +96 -0
  208. package/dist/profiles/modal-frame-axioms/systems.js.map +1 -0
  209. package/dist/profiles/modal-frame-axioms/tableau.d.ts +12 -0
  210. package/dist/profiles/modal-frame-axioms/tableau.d.ts.map +1 -0
  211. package/dist/profiles/modal-frame-axioms/tableau.js +299 -0
  212. package/dist/profiles/modal-frame-axioms/tableau.js.map +1 -0
  213. package/dist/profiles/modal-frame-axioms/types.d.ts +61 -0
  214. package/dist/profiles/modal-frame-axioms/types.d.ts.map +1 -0
  215. package/dist/profiles/modal-frame-axioms/types.js +27 -0
  216. package/dist/profiles/modal-frame-axioms/types.js.map +1 -0
  217. package/dist/profiles/sequent-g3/index.d.ts +5 -0
  218. package/dist/profiles/sequent-g3/index.d.ts.map +1 -0
  219. package/dist/profiles/sequent-g3/index.js +23 -0
  220. package/dist/profiles/sequent-g3/index.js.map +1 -0
  221. package/dist/profiles/sequent-g3/latex.d.ts +7 -0
  222. package/dist/profiles/sequent-g3/latex.d.ts.map +1 -0
  223. package/dist/profiles/sequent-g3/latex.js +107 -0
  224. package/dist/profiles/sequent-g3/latex.js.map +1 -0
  225. package/dist/profiles/sequent-g3/normalize.d.ts +15 -0
  226. package/dist/profiles/sequent-g3/normalize.d.ts.map +1 -0
  227. package/dist/profiles/sequent-g3/normalize.js +121 -0
  228. package/dist/profiles/sequent-g3/normalize.js.map +1 -0
  229. package/dist/profiles/sequent-g3/prover.d.ts +16 -0
  230. package/dist/profiles/sequent-g3/prover.d.ts.map +1 -0
  231. package/dist/profiles/sequent-g3/prover.js +348 -0
  232. package/dist/profiles/sequent-g3/prover.js.map +1 -0
  233. package/dist/profiles/sequent-g3/types.d.ts +30 -0
  234. package/dist/profiles/sequent-g3/types.d.ts.map +1 -0
  235. package/dist/profiles/sequent-g3/types.js +16 -0
  236. package/dist/profiles/sequent-g3/types.js.map +1 -0
  237. package/dist/profiles/substructural/index.d.ts +4 -0
  238. package/dist/profiles/substructural/index.d.ts.map +1 -0
  239. package/dist/profiles/substructural/index.js +22 -0
  240. package/dist/profiles/substructural/index.js.map +1 -0
  241. package/dist/profiles/substructural/prover.d.ts +13 -0
  242. package/dist/profiles/substructural/prover.d.ts.map +1 -0
  243. package/dist/profiles/substructural/prover.js +481 -0
  244. package/dist/profiles/substructural/prover.js.map +1 -0
  245. package/dist/profiles/substructural/types.d.ts +72 -0
  246. package/dist/profiles/substructural/types.d.ts.map +1 -0
  247. package/dist/profiles/substructural/types.js +27 -0
  248. package/dist/profiles/substructural/types.js.map +1 -0
  249. package/dist/runtime/abduction/entails.d.ts +21 -0
  250. package/dist/runtime/abduction/entails.d.ts.map +1 -0
  251. package/dist/runtime/abduction/entails.js +308 -0
  252. package/dist/runtime/abduction/entails.js.map +1 -0
  253. package/dist/runtime/abduction/find.d.ts +18 -0
  254. package/dist/runtime/abduction/find.d.ts.map +1 -0
  255. package/dist/runtime/abduction/find.js +202 -0
  256. package/dist/runtime/abduction/find.js.map +1 -0
  257. package/dist/runtime/abduction/index.d.ts +4 -0
  258. package/dist/runtime/abduction/index.d.ts.map +1 -0
  259. package/dist/runtime/abduction/index.js +26 -0
  260. package/dist/runtime/abduction/index.js.map +1 -0
  261. package/dist/runtime/abduction/types.d.ts +78 -0
  262. package/dist/runtime/abduction/types.d.ts.map +1 -0
  263. package/dist/runtime/abduction/types.js +23 -0
  264. package/dist/runtime/abduction/types.js.map +1 -0
  265. package/dist/runtime/bayesian/factor.d.ts +22 -0
  266. package/dist/runtime/bayesian/factor.d.ts.map +1 -0
  267. package/dist/runtime/bayesian/factor.js +249 -0
  268. package/dist/runtime/bayesian/factor.js.map +1 -0
  269. package/dist/runtime/bayesian/index.d.ts +3 -0
  270. package/dist/runtime/bayesian/index.d.ts.map +1 -0
  271. package/dist/runtime/bayesian/index.js +25 -0
  272. package/dist/runtime/bayesian/index.js.map +1 -0
  273. package/dist/runtime/bayesian/inference.d.ts +6 -0
  274. package/dist/runtime/bayesian/inference.d.ts.map +1 -0
  275. package/dist/runtime/bayesian/inference.js +260 -0
  276. package/dist/runtime/bayesian/inference.js.map +1 -0
  277. package/dist/runtime/bayesian/types.d.ts +19 -0
  278. package/dist/runtime/bayesian/types.d.ts.map +1 -0
  279. package/dist/runtime/bayesian/types.js +9 -0
  280. package/dist/runtime/bayesian/types.js.map +1 -0
  281. package/dist/runtime/bisimulation/index.d.ts +4 -0
  282. package/dist/runtime/bisimulation/index.d.ts.map +1 -0
  283. package/dist/runtime/bisimulation/index.js +21 -0
  284. package/dist/runtime/bisimulation/index.js.map +1 -0
  285. package/dist/runtime/bisimulation/operations.d.ts +40 -0
  286. package/dist/runtime/bisimulation/operations.d.ts.map +1 -0
  287. package/dist/runtime/bisimulation/operations.js +219 -0
  288. package/dist/runtime/bisimulation/operations.js.map +1 -0
  289. package/dist/runtime/bisimulation/paige-tarjan.d.ts +8 -0
  290. package/dist/runtime/bisimulation/paige-tarjan.d.ts.map +1 -0
  291. package/dist/runtime/bisimulation/paige-tarjan.js +199 -0
  292. package/dist/runtime/bisimulation/paige-tarjan.js.map +1 -0
  293. package/dist/runtime/bisimulation/types.d.ts +26 -0
  294. package/dist/runtime/bisimulation/types.d.ts.map +1 -0
  295. package/dist/runtime/bisimulation/types.js +22 -0
  296. package/dist/runtime/bisimulation/types.js.map +1 -0
  297. package/dist/runtime/countermodel-min/index.d.ts +3 -0
  298. package/dist/runtime/countermodel-min/index.d.ts.map +1 -0
  299. package/dist/runtime/countermodel-min/index.js +9 -0
  300. package/dist/runtime/countermodel-min/index.js.map +1 -0
  301. package/dist/runtime/countermodel-min/minimize.d.ts +17 -0
  302. package/dist/runtime/countermodel-min/minimize.d.ts.map +1 -0
  303. package/dist/runtime/countermodel-min/minimize.js +0 -0
  304. package/dist/runtime/countermodel-min/minimize.js.map +1 -0
  305. package/dist/runtime/countermodel-min/types.d.ts +40 -0
  306. package/dist/runtime/countermodel-min/types.d.ts.map +1 -0
  307. package/dist/runtime/countermodel-min/types.js +6 -0
  308. package/dist/runtime/countermodel-min/types.js.map +1 -0
  309. package/dist/runtime/fca/context.d.ts +46 -0
  310. package/dist/runtime/fca/context.d.ts.map +1 -0
  311. package/dist/runtime/fca/context.js +155 -0
  312. package/dist/runtime/fca/context.js.map +1 -0
  313. package/dist/runtime/fca/implications.d.ts +10 -0
  314. package/dist/runtime/fca/implications.d.ts.map +1 -0
  315. package/dist/runtime/fca/implications.js +33 -0
  316. package/dist/runtime/fca/implications.js.map +1 -0
  317. package/dist/runtime/fca/index.d.ts +6 -0
  318. package/dist/runtime/fca/index.d.ts.map +1 -0
  319. package/dist/runtime/fca/index.js +39 -0
  320. package/dist/runtime/fca/index.js.map +1 -0
  321. package/dist/runtime/fca/lattice.d.ts +10 -0
  322. package/dist/runtime/fca/lattice.d.ts.map +1 -0
  323. package/dist/runtime/fca/lattice.js +86 -0
  324. package/dist/runtime/fca/lattice.js.map +1 -0
  325. package/dist/runtime/fca/next-closure.d.ts +12 -0
  326. package/dist/runtime/fca/next-closure.d.ts.map +1 -0
  327. package/dist/runtime/fca/next-closure.js +99 -0
  328. package/dist/runtime/fca/next-closure.js.map +1 -0
  329. package/dist/runtime/fca/types.d.ts +31 -0
  330. package/dist/runtime/fca/types.d.ts.map +1 -0
  331. package/dist/runtime/fca/types.js +30 -0
  332. package/dist/runtime/fca/types.js.map +1 -0
  333. package/dist/runtime/mus/extract.d.ts +34 -0
  334. package/dist/runtime/mus/extract.d.ts.map +1 -0
  335. package/dist/runtime/mus/extract.js +243 -0
  336. package/dist/runtime/mus/extract.js.map +1 -0
  337. package/dist/runtime/mus/index.d.ts +4 -0
  338. package/dist/runtime/mus/index.d.ts.map +1 -0
  339. package/dist/runtime/mus/index.js +12 -0
  340. package/dist/runtime/mus/index.js.map +1 -0
  341. package/dist/runtime/mus/quickxplain.d.ts +10 -0
  342. package/dist/runtime/mus/quickxplain.d.ts.map +1 -0
  343. package/dist/runtime/mus/quickxplain.js +100 -0
  344. package/dist/runtime/mus/quickxplain.js.map +1 -0
  345. package/dist/runtime/mus/types.d.ts +59 -0
  346. package/dist/runtime/mus/types.d.ts.map +1 -0
  347. package/dist/runtime/mus/types.js +20 -0
  348. package/dist/runtime/mus/types.js.map +1 -0
  349. package/dist/runtime/proof-minify/index.d.ts +3 -0
  350. package/dist/runtime/proof-minify/index.d.ts.map +1 -0
  351. package/dist/runtime/proof-minify/index.js +13 -0
  352. package/dist/runtime/proof-minify/index.js.map +1 -0
  353. package/dist/runtime/proof-minify/minify.d.ts +13 -0
  354. package/dist/runtime/proof-minify/minify.d.ts.map +1 -0
  355. package/dist/runtime/proof-minify/minify.js +540 -0
  356. package/dist/runtime/proof-minify/minify.js.map +1 -0
  357. package/dist/runtime/proof-minify/types.d.ts +89 -0
  358. package/dist/runtime/proof-minify/types.d.ts.map +1 -0
  359. package/dist/runtime/proof-minify/types.js +16 -0
  360. package/dist/runtime/proof-minify/types.js.map +1 -0
  361. package/dist/runtime/symbolic-diff/constructors.d.ts +16 -0
  362. package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -0
  363. package/dist/runtime/symbolic-diff/constructors.js +75 -0
  364. package/dist/runtime/symbolic-diff/constructors.js.map +1 -0
  365. package/dist/runtime/symbolic-diff/differentiate.d.ts +22 -0
  366. package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -0
  367. package/dist/runtime/symbolic-diff/differentiate.js +107 -0
  368. package/dist/runtime/symbolic-diff/differentiate.js.map +1 -0
  369. package/dist/runtime/symbolic-diff/evaluate.d.ts +3 -0
  370. package/dist/runtime/symbolic-diff/evaluate.d.ts.map +1 -0
  371. package/dist/runtime/symbolic-diff/evaluate.js +47 -0
  372. package/dist/runtime/symbolic-diff/evaluate.js.map +1 -0
  373. package/dist/runtime/symbolic-diff/index.d.ts +9 -0
  374. package/dist/runtime/symbolic-diff/index.d.ts.map +1 -0
  375. package/dist/runtime/symbolic-diff/index.js +34 -0
  376. package/dist/runtime/symbolic-diff/index.js.map +1 -0
  377. package/dist/runtime/symbolic-diff/parse.d.ts +16 -0
  378. package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -0
  379. package/dist/runtime/symbolic-diff/parse.js +206 -0
  380. package/dist/runtime/symbolic-diff/parse.js.map +1 -0
  381. package/dist/runtime/symbolic-diff/simplify.d.ts +11 -0
  382. package/dist/runtime/symbolic-diff/simplify.d.ts.map +1 -0
  383. package/dist/runtime/symbolic-diff/simplify.js +214 -0
  384. package/dist/runtime/symbolic-diff/simplify.js.map +1 -0
  385. package/dist/runtime/symbolic-diff/stringify.d.ts +3 -0
  386. package/dist/runtime/symbolic-diff/stringify.d.ts.map +1 -0
  387. package/dist/runtime/symbolic-diff/stringify.js +69 -0
  388. package/dist/runtime/symbolic-diff/stringify.js.map +1 -0
  389. package/dist/runtime/symbolic-diff/types.d.ts +35 -0
  390. package/dist/runtime/symbolic-diff/types.d.ts.map +1 -0
  391. package/dist/runtime/symbolic-diff/types.js +9 -0
  392. package/dist/runtime/symbolic-diff/types.js.map +1 -0
  393. package/dist/runtime/term-rewriting/critical-pairs.d.ts +38 -0
  394. package/dist/runtime/term-rewriting/critical-pairs.d.ts.map +1 -0
  395. package/dist/runtime/term-rewriting/critical-pairs.js +109 -0
  396. package/dist/runtime/term-rewriting/critical-pairs.js.map +1 -0
  397. package/dist/runtime/term-rewriting/index.d.ts +9 -0
  398. package/dist/runtime/term-rewriting/index.d.ts.map +1 -0
  399. package/dist/runtime/term-rewriting/index.js +38 -0
  400. package/dist/runtime/term-rewriting/index.js.map +1 -0
  401. package/dist/runtime/term-rewriting/knuth-bendix.d.ts +29 -0
  402. package/dist/runtime/term-rewriting/knuth-bendix.d.ts.map +1 -0
  403. package/dist/runtime/term-rewriting/knuth-bendix.js +196 -0
  404. package/dist/runtime/term-rewriting/knuth-bendix.js.map +1 -0
  405. package/dist/runtime/term-rewriting/lpo.d.ts +17 -0
  406. package/dist/runtime/term-rewriting/lpo.d.ts.map +1 -0
  407. package/dist/runtime/term-rewriting/lpo.js +158 -0
  408. package/dist/runtime/term-rewriting/lpo.js.map +1 -0
  409. package/dist/runtime/term-rewriting/rewrite.d.ts +44 -0
  410. package/dist/runtime/term-rewriting/rewrite.d.ts.map +1 -0
  411. package/dist/runtime/term-rewriting/rewrite.js +189 -0
  412. package/dist/runtime/term-rewriting/rewrite.js.map +1 -0
  413. package/dist/runtime/term-rewriting/term-utils.d.ts +64 -0
  414. package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -0
  415. package/dist/runtime/term-rewriting/term-utils.js +360 -0
  416. package/dist/runtime/term-rewriting/term-utils.js.map +1 -0
  417. package/dist/runtime/term-rewriting/types.d.ts +66 -0
  418. package/dist/runtime/term-rewriting/types.d.ts.map +1 -0
  419. package/dist/runtime/term-rewriting/types.js +21 -0
  420. package/dist/runtime/term-rewriting/types.js.map +1 -0
  421. package/dist/solver/cdcl-v2-incremental/index.d.ts +3 -0
  422. package/dist/solver/cdcl-v2-incremental/index.d.ts.map +1 -0
  423. package/dist/solver/cdcl-v2-incremental/index.js +16 -0
  424. package/dist/solver/cdcl-v2-incremental/index.js.map +1 -0
  425. package/dist/solver/cdcl-v2-incremental/solver.d.ts +83 -0
  426. package/dist/solver/cdcl-v2-incremental/solver.d.ts.map +1 -0
  427. package/dist/solver/cdcl-v2-incremental/solver.js +727 -0
  428. package/dist/solver/cdcl-v2-incremental/solver.js.map +1 -0
  429. package/dist/solver/cdcl-v2-incremental/types.d.ts +47 -0
  430. package/dist/solver/cdcl-v2-incremental/types.d.ts.map +1 -0
  431. package/dist/solver/cdcl-v2-incremental/types.js +13 -0
  432. package/dist/solver/cdcl-v2-incremental/types.js.map +1 -0
  433. package/dist/tests/abduction/abduction.test.d.ts +2 -0
  434. package/dist/tests/abduction/abduction.test.d.ts.map +1 -0
  435. package/dist/tests/abduction/abduction.test.js +380 -0
  436. package/dist/tests/abduction/abduction.test.js.map +1 -0
  437. package/dist/tests/bayesian/bayesian.test.d.ts +2 -0
  438. package/dist/tests/bayesian/bayesian.test.d.ts.map +1 -0
  439. package/dist/tests/bayesian/bayesian.test.js +328 -0
  440. package/dist/tests/bayesian/bayesian.test.js.map +1 -0
  441. package/dist/tests/belief-revision/agm.test.d.ts +2 -0
  442. package/dist/tests/belief-revision/agm.test.d.ts.map +1 -0
  443. package/dist/tests/belief-revision/agm.test.js +173 -0
  444. package/dist/tests/belief-revision/agm.test.js.map +1 -0
  445. package/dist/tests/bisimulation/paige-tarjan.test.d.ts +2 -0
  446. package/dist/tests/bisimulation/paige-tarjan.test.d.ts.map +1 -0
  447. package/dist/tests/bisimulation/paige-tarjan.test.js +254 -0
  448. package/dist/tests/bisimulation/paige-tarjan.test.js.map +1 -0
  449. package/dist/tests/countermodel-min/minimize.test.d.ts +2 -0
  450. package/dist/tests/countermodel-min/minimize.test.d.ts.map +1 -0
  451. package/dist/tests/countermodel-min/minimize.test.js +241 -0
  452. package/dist/tests/countermodel-min/minimize.test.js.map +1 -0
  453. package/dist/tests/ctl/check.test.d.ts +2 -0
  454. package/dist/tests/ctl/check.test.d.ts.map +1 -0
  455. package/dist/tests/ctl/check.test.js +337 -0
  456. package/dist/tests/ctl/check.test.js.map +1 -0
  457. package/dist/tests/curry-howard/infer.test.d.ts +2 -0
  458. package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
  459. package/dist/tests/curry-howard/infer.test.js +93 -0
  460. package/dist/tests/curry-howard/infer.test.js.map +1 -0
  461. package/dist/tests/curry-howard/proof.test.d.ts +2 -0
  462. package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
  463. package/dist/tests/curry-howard/proof.test.js +105 -0
  464. package/dist/tests/curry-howard/proof.test.js.map +1 -0
  465. package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
  466. package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
  467. package/dist/tests/curry-howard/reduce.test.js +109 -0
  468. package/dist/tests/curry-howard/reduce.test.js.map +1 -0
  469. package/dist/tests/default-logic/extensions.test.d.ts +2 -0
  470. package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
  471. package/dist/tests/default-logic/extensions.test.js +323 -0
  472. package/dist/tests/default-logic/extensions.test.js.map +1 -0
  473. package/dist/tests/description-logic/alc.test.d.ts +2 -0
  474. package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
  475. package/dist/tests/description-logic/alc.test.js +253 -0
  476. package/dist/tests/description-logic/alc.test.js.map +1 -0
  477. package/dist/tests/fca/fca.test.d.ts +2 -0
  478. package/dist/tests/fca/fca.test.d.ts.map +1 -0
  479. package/dist/tests/fca/fca.test.js +317 -0
  480. package/dist/tests/fca/fca.test.js.map +1 -0
  481. package/dist/tests/fol-prover-equality/prove.test.d.ts +2 -0
  482. package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
  483. package/dist/tests/fol-prover-equality/prove.test.js +179 -0
  484. package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
  485. package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
  486. package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
  487. package/dist/tests/hybrid-logic/semantics.test.js +169 -0
  488. package/dist/tests/hybrid-logic/semantics.test.js.map +1 -0
  489. package/dist/tests/intuitionistic-nj/nj.test.d.ts +2 -0
  490. package/dist/tests/intuitionistic-nj/nj.test.d.ts.map +1 -0
  491. package/dist/tests/intuitionistic-nj/nj.test.js +216 -0
  492. package/dist/tests/intuitionistic-nj/nj.test.js.map +1 -0
  493. package/dist/tests/lambda-calc/lambda-calc.test.d.ts +2 -0
  494. package/dist/tests/lambda-calc/lambda-calc.test.d.ts.map +1 -0
  495. package/dist/tests/lambda-calc/lambda-calc.test.js +164 -0
  496. package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -0
  497. package/dist/tests/ltl-sat/sat.test.d.ts +2 -0
  498. package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
  499. package/dist/tests/ltl-sat/sat.test.js +160 -0
  500. package/dist/tests/ltl-sat/sat.test.js.map +1 -0
  501. package/dist/tests/many-valued/many-valued.test.d.ts +2 -0
  502. package/dist/tests/many-valued/many-valued.test.d.ts.map +1 -0
  503. package/dist/tests/many-valued/many-valued.test.js +150 -0
  504. package/dist/tests/many-valued/many-valued.test.js.map +1 -0
  505. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts +2 -0
  506. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts.map +1 -0
  507. package/dist/tests/modal-frame-axioms/frame-axioms.test.js +236 -0
  508. package/dist/tests/modal-frame-axioms/frame-axioms.test.js.map +1 -0
  509. package/dist/tests/mus/extract.test.d.ts +2 -0
  510. package/dist/tests/mus/extract.test.d.ts.map +1 -0
  511. package/dist/tests/mus/extract.test.js +352 -0
  512. package/dist/tests/mus/extract.test.js.map +1 -0
  513. package/dist/tests/proof-minify/minify.test.d.ts +2 -0
  514. package/dist/tests/proof-minify/minify.test.d.ts.map +1 -0
  515. package/dist/tests/proof-minify/minify.test.js +281 -0
  516. package/dist/tests/proof-minify/minify.test.js.map +1 -0
  517. package/dist/tests/sat-v2-incremental/basic.test.d.ts +2 -0
  518. package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
  519. package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
  520. package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
  521. package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
  522. package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
  523. package/dist/tests/sequent-g3/prover.test.js +205 -0
  524. package/dist/tests/sequent-g3/prover.test.js.map +1 -0
  525. package/dist/tests/substructural/prover.test.d.ts +2 -0
  526. package/dist/tests/substructural/prover.test.d.ts.map +1 -0
  527. package/dist/tests/substructural/prover.test.js +271 -0
  528. package/dist/tests/substructural/prover.test.js.map +1 -0
  529. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts +2 -0
  530. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts.map +1 -0
  531. package/dist/tests/symbolic-diff/symbolic-diff.test.js +278 -0
  532. package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -0
  533. package/dist/tests/term-rewriting/critical-pairs.test.d.ts +2 -0
  534. package/dist/tests/term-rewriting/critical-pairs.test.d.ts.map +1 -0
  535. package/dist/tests/term-rewriting/critical-pairs.test.js +34 -0
  536. package/dist/tests/term-rewriting/critical-pairs.test.js.map +1 -0
  537. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts +2 -0
  538. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts.map +1 -0
  539. package/dist/tests/term-rewriting/knuth-bendix.test.js +94 -0
  540. package/dist/tests/term-rewriting/knuth-bendix.test.js.map +1 -0
  541. package/dist/tests/term-rewriting/lpo.test.d.ts +2 -0
  542. package/dist/tests/term-rewriting/lpo.test.d.ts.map +1 -0
  543. package/dist/tests/term-rewriting/lpo.test.js +57 -0
  544. package/dist/tests/term-rewriting/lpo.test.js.map +1 -0
  545. package/dist/tests/term-rewriting/rewrite.test.d.ts +2 -0
  546. package/dist/tests/term-rewriting/rewrite.test.d.ts.map +1 -0
  547. package/dist/tests/term-rewriting/rewrite.test.js +56 -0
  548. package/dist/tests/term-rewriting/rewrite.test.js.map +1 -0
  549. package/dist/tests/term-rewriting/term-utils.test.d.ts +2 -0
  550. package/dist/tests/term-rewriting/term-utils.test.d.ts.map +1 -0
  551. package/dist/tests/term-rewriting/term-utils.test.js +58 -0
  552. package/dist/tests/term-rewriting/term-utils.test.js.map +1 -0
  553. package/package.json +1 -1
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Witness paths para fórmulas CTL existenciales.
4
+ // ============================================================
5
+ // Solo los operadores existenciales (EX, EF, EG, EU) admiten witness:
6
+ // para AX/AF/AG/AU el "testigo" sería el modelo entero (no hay un
7
+ // único camino que justifique la propiedad). Si el caller pide
8
+ // witness para una fórmula universal devolvemos `null`.
9
+ // ============================================================
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.generateWitness = generateWitness;
12
+ const check_1 = require("./check");
13
+ function compile(M) {
14
+ const states = new Set();
15
+ const succ = new Map();
16
+ const labels = new Map();
17
+ for (const s of M.states) {
18
+ states.add(s.id);
19
+ succ.set(s.id, new Set());
20
+ labels.set(s.id, new Set(s.labels));
21
+ }
22
+ for (const [from, to] of M.transitions) {
23
+ succ.get(from)?.add(to);
24
+ }
25
+ return { states, succ, labels };
26
+ }
27
+ function bfsTo(model, start, isGoal, isStep = () => true, allowStartAsGoal = true) {
28
+ if (allowStartAsGoal && isGoal(start))
29
+ return [start];
30
+ const visited = new Set([start]);
31
+ const parent = new Map();
32
+ const queue = [start];
33
+ while (queue.length > 0) {
34
+ const cur = queue.shift();
35
+ for (const s of model.succ.get(cur) ?? []) {
36
+ if (visited.has(s))
37
+ continue;
38
+ visited.add(s);
39
+ parent.set(s, cur);
40
+ if (isGoal(s)) {
41
+ const path = [s];
42
+ let p = cur;
43
+ while (p !== undefined) {
44
+ path.push(p);
45
+ p = parent.get(p);
46
+ }
47
+ return path.reverse();
48
+ }
49
+ if (isStep(s))
50
+ queue.push(s);
51
+ }
52
+ }
53
+ return null;
54
+ }
55
+ /**
56
+ * Encuentra un camino testigo finito (`stateId[]`) que justifique
57
+ * que `phi` se cumple en `state`. Devuelve `null` si:
58
+ * - `phi` no se cumple en `state`, o
59
+ * - `phi` es universal (AX/AF/AG/AU) — no admite un único witness path, o
60
+ * - `state` no existe en el modelo.
61
+ *
62
+ * Convenciones del path devuelto:
63
+ * - EX φ → `[state, next]` con `next ⊨ φ`.
64
+ * - EF φ → camino más corto desde `state` hasta un estado con `φ`.
65
+ * - EG φ → camino que entra en un ciclo de estados con `φ`;
66
+ * el último elemento del camino aparece dos veces para
67
+ * marcar el lazo (lasso witness).
68
+ * - E[A U B] → camino donde todos los intermedios cumplen A y el
69
+ * último cumple B.
70
+ * - cualquier otro operador no existencial → `null`.
71
+ */
72
+ function generateWitness(M, phi, state) {
73
+ const model = compile(M);
74
+ if (!model.states.has(state))
75
+ return null;
76
+ // Solo damos witness cuando φ se cumple efectivamente.
77
+ const sat = (0, check_1.modelCheckCTL)(M, phi);
78
+ if (!sat.get(state))
79
+ return null;
80
+ switch (phi.kind) {
81
+ case 'EX': {
82
+ const subSat = (0, check_1.modelCheckCTL)(M, phi.arg);
83
+ for (const s of model.succ.get(state) ?? []) {
84
+ if (subSat.get(s))
85
+ return [state, s];
86
+ }
87
+ return null;
88
+ }
89
+ case 'EF': {
90
+ const subSat = (0, check_1.modelCheckCTL)(M, phi.arg);
91
+ return bfsTo(model, state, (id) => subSat.get(id) === true);
92
+ }
93
+ case 'EU': {
94
+ const aSat = (0, check_1.modelCheckCTL)(M, phi.left);
95
+ const bSat = (0, check_1.modelCheckCTL)(M, phi.right);
96
+ // Si state ya cumple B, devolvemos camino trivial.
97
+ if (bSat.get(state))
98
+ return [state];
99
+ // Caminos donde los intermedios cumplen A; el goal cumple B.
100
+ if (!aSat.get(state))
101
+ return null;
102
+ return bfsTo(model, state, (id) => bSat.get(id) === true, (id) => aSat.get(id) === true, false);
103
+ }
104
+ case 'EG': {
105
+ const subSat = (0, check_1.modelCheckCTL)(M, phi.arg);
106
+ // EG φ ⇔ existe camino infinito desde state con φ siempre.
107
+ // En modelos finitos esto equivale a alcanzar un ciclo donde todos los
108
+ // estados del ciclo cumplen φ, pasando por estados que también cumplen φ.
109
+ const egSat = sat; // sat[state] true → existe tal camino
110
+ // Encontrar el camino lazo: BFS desde state por estados que cumplen
111
+ // EG φ, hasta llegar a un estado desde el cual se cierre un ciclo.
112
+ if (!subSat.get(state) || !egSat.get(state))
113
+ return null;
114
+ // DFS para encontrar un ciclo dentro del sub-grafo {s : EG φ holds}.
115
+ const inSubgraph = (id) => egSat.get(id) === true && subSat.get(id) === true;
116
+ const stack = [state];
117
+ const onStack = new Set([state]);
118
+ const visited = new Set([state]);
119
+ const result = dfsLasso(model, state, inSubgraph, stack, onStack, visited);
120
+ return result;
121
+ }
122
+ default:
123
+ return null;
124
+ }
125
+ }
126
+ function dfsLasso(model, current, inSubgraph, stack, onStack, visited) {
127
+ for (const s of model.succ.get(current) ?? []) {
128
+ if (!inSubgraph(s))
129
+ continue;
130
+ if (onStack.has(s)) {
131
+ // Encontramos un back-edge: stack contiene path hasta `current`,
132
+ // y `s` está en stack → ciclo desde s.
133
+ const path = [...stack, s];
134
+ return path;
135
+ }
136
+ if (visited.has(s))
137
+ continue;
138
+ visited.add(s);
139
+ stack.push(s);
140
+ onStack.add(s);
141
+ const r = dfsLasso(model, s, inSubgraph, stack, onStack, visited);
142
+ if (r)
143
+ return r;
144
+ stack.pop();
145
+ onStack.delete(s);
146
+ }
147
+ return null;
148
+ }
149
+ //# sourceMappingURL=witness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"witness.js","sourceRoot":"","sources":["../../../src/profiles/ctl/witness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { DefaultTheory, Extension, ComputeOptions } from './types';
2
+ /** Comprueba si el literal está en la extensión dada. */
3
+ export declare function isInExtension(formula: string, ext: Extension): boolean;
4
+ /**
5
+ * Entailment escéptico: el literal está en TODAS las extensiones.
6
+ * Si la teoría no tiene extensiones, devuelve false (entailment vacuo
7
+ * tampoco — la convención usual es no afirmar nada sin testigos).
8
+ */
9
+ export declare function isSkepticallyEntailed(formula: string, T: DefaultTheory, options?: ComputeOptions): boolean;
10
+ /**
11
+ * Entailment crédulo: el literal está en AL MENOS una extensión.
12
+ */
13
+ export declare function isCredulouslyEntailed(formula: string, T: DefaultTheory, options?: ComputeOptions): boolean;
14
+ //# sourceMappingURL=entailment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entailment.d.ts","sourceRoot":"","sources":["../../../src/profiles/default-logic/entailment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGnE,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,aAAa,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAKT;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,aAAa,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAKT"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Default Logic (Reiter) — Entailment credulous/skeptical
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isInExtension = isInExtension;
7
+ exports.isSkepticallyEntailed = isSkepticallyEntailed;
8
+ exports.isCredulouslyEntailed = isCredulouslyEntailed;
9
+ const extensions_1 = require("./extensions");
10
+ /** Comprueba si el literal está en la extensión dada. */
11
+ function isInExtension(formula, ext) {
12
+ return ext.formulas.has((0, extensions_1.normalizeLiteral)(formula));
13
+ }
14
+ /**
15
+ * Entailment escéptico: el literal está en TODAS las extensiones.
16
+ * Si la teoría no tiene extensiones, devuelve false (entailment vacuo
17
+ * tampoco — la convención usual es no afirmar nada sin testigos).
18
+ */
19
+ function isSkepticallyEntailed(formula, T, options = {}) {
20
+ const exts = (0, extensions_1.computeExtensions)(T, options);
21
+ if (exts.length === 0)
22
+ return false;
23
+ const target = (0, extensions_1.normalizeLiteral)(formula);
24
+ return exts.every((e) => e.formulas.has(target));
25
+ }
26
+ /**
27
+ * Entailment crédulo: el literal está en AL MENOS una extensión.
28
+ */
29
+ function isCredulouslyEntailed(formula, T, options = {}) {
30
+ const exts = (0, extensions_1.computeExtensions)(T, options);
31
+ if (exts.length === 0)
32
+ return false;
33
+ const target = (0, extensions_1.normalizeLiteral)(formula);
34
+ return exts.some((e) => e.formulas.has(target));
35
+ }
36
+ //# sourceMappingURL=entailment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entailment.js","sourceRoot":"","sources":["../../../src/profiles/default-logic/entailment.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;;AAM/D,sCAEC;AAOD,sDASC;AAKD,sDASC;AAnCD,6CAAmE;AAEnE,yDAAyD;AACzD,SAAgB,aAAa,CAAC,OAAe,EAAE,GAAc;IAC3D,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,6BAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,OAAe,EACf,CAAgB,EAChB,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,IAAA,8BAAiB,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,MAAM,GAAG,IAAA,6BAAgB,EAAC,OAAO,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,OAAe,EACf,CAAgB,EAChB,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,IAAA,8BAAiB,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,MAAM,GAAG,IAAA,6BAAgB,EAAC,OAAO,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { DefaultTheory, Extension, ComputeOptions } from './types';
2
+ /**
3
+ * Normaliza un literal a forma canónica:
4
+ * "P", "p" → "P"
5
+ * "¬P", "!P", "~P",
6
+ * "not P", " ¬ P " → "¬P"
7
+ * Quita espacios extra; preserva mayúsculas/minúsculas internas
8
+ * tras el primer carácter (case-sensitive para predicados FOL como
9
+ * "flies(tweety)" vs "Flies(tweety)").
10
+ */
11
+ export declare function normalizeLiteral(lit: string): string;
12
+ /** Devuelve la negación canónica de un literal normalizado. */
13
+ export declare function negate(lit: string): string;
14
+ /** Verifica si un conjunto de literales es consistente (no contiene L y ¬L). */
15
+ export declare function isConsistent(beliefs: ReadonlySet<string>): boolean;
16
+ /**
17
+ * Comprueba si una justificación β es consistente con las creencias:
18
+ * basta con que ¬β no esté en el conjunto.
19
+ */
20
+ export declare function isJustificationConsistent(justification: string, beliefs: ReadonlySet<string>): boolean;
21
+ /**
22
+ * Calcula todas las extensiones de la teoría enumerando órdenes de
23
+ * aplicación de defaults y verificando que el resultado sea un punto
24
+ * fijo del operador Γ_T.
25
+ *
26
+ * Estrategia: para cada subconjunto de defaults, intentamos aplicarlos
27
+ * en algún orden. Como en v1 trabajamos con literales y la aplicación
28
+ * de un default no se desbloquea por reordering una vez fijado el
29
+ * subconjunto consistente, basta enumerar subconjuntos maximales
30
+ * generables por forward-close empezando desde cada permutación
31
+ * heurística. Para acotar costo: probamos todas las permutaciones
32
+ * cuando |defaults| ≤ 6, y un sampling determinista si excede.
33
+ */
34
+ export declare function computeExtensions(T: DefaultTheory, options?: ComputeOptions): Extension[];
35
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/profiles/default-logic/extensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,aAAa,EACb,SAAS,EACT,cAAc,EAGf,MAAM,SAAS,CAAC;AAEjB;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA0CpD;AAED,+DAA+D;AAC/D,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG1C;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAKlE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,OAAO,CAET;AA0ID;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,GAAE,cAAmB,GAAG,SAAS,EAAE,CAqD7F"}
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Default Logic (Reiter) — Cálculo de extensiones
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.normalizeLiteral = normalizeLiteral;
7
+ exports.negate = negate;
8
+ exports.isConsistent = isConsistent;
9
+ exports.isJustificationConsistent = isJustificationConsistent;
10
+ exports.computeExtensions = computeExtensions;
11
+ const types_1 = require("./types");
12
+ /**
13
+ * Normaliza un literal a forma canónica:
14
+ * "P", "p" → "P"
15
+ * "¬P", "!P", "~P",
16
+ * "not P", " ¬ P " → "¬P"
17
+ * Quita espacios extra; preserva mayúsculas/minúsculas internas
18
+ * tras el primer carácter (case-sensitive para predicados FOL como
19
+ * "flies(tweety)" vs "Flies(tweety)").
20
+ */
21
+ function normalizeLiteral(lit) {
22
+ const trimmed = lit.trim();
23
+ if (trimmed === '') {
24
+ throw new Error('Literal vacío');
25
+ }
26
+ // Detectar prefijos de negación
27
+ const negPrefixes = ['¬', '!', '~'];
28
+ const notWordRe = /^not\s+/i;
29
+ let isNeg = false;
30
+ let body = trimmed;
31
+ // Pelar múltiples negaciones (doble negación cancela)
32
+ while (true) {
33
+ let stripped = false;
34
+ for (const p of negPrefixes) {
35
+ if (body.startsWith(p)) {
36
+ body = body.slice(p.length).trim();
37
+ isNeg = !isNeg;
38
+ stripped = true;
39
+ break;
40
+ }
41
+ }
42
+ if (!stripped) {
43
+ const m = body.match(notWordRe);
44
+ if (m) {
45
+ body = body.slice(m[0].length).trim();
46
+ isNeg = !isNeg;
47
+ stripped = true;
48
+ }
49
+ }
50
+ if (!stripped)
51
+ break;
52
+ }
53
+ // Normalizar espacios internos en el cuerpo
54
+ body = body.replace(/\s+/g, '');
55
+ if (body === '') {
56
+ throw new Error(`Literal sin átomo: "${lit}"`);
57
+ }
58
+ return isNeg ? `¬${body}` : body;
59
+ }
60
+ /** Devuelve la negación canónica de un literal normalizado. */
61
+ function negate(lit) {
62
+ const norm = normalizeLiteral(lit);
63
+ return norm.startsWith('¬') ? norm.slice(1) : `¬${norm}`;
64
+ }
65
+ /** Verifica si un conjunto de literales es consistente (no contiene L y ¬L). */
66
+ function isConsistent(beliefs) {
67
+ for (const lit of beliefs) {
68
+ if (beliefs.has(negate(lit)))
69
+ return false;
70
+ }
71
+ return true;
72
+ }
73
+ /**
74
+ * Comprueba si una justificación β es consistente con las creencias:
75
+ * basta con que ¬β no esté en el conjunto.
76
+ */
77
+ function isJustificationConsistent(justification, beliefs) {
78
+ return !beliefs.has(negate(justification));
79
+ }
80
+ function normalizeDefault(d) {
81
+ return {
82
+ id: d.id,
83
+ prerequisite: normalizeLiteral(d.prerequisite),
84
+ justifications: d.justifications.map(normalizeLiteral),
85
+ consequent: normalizeLiteral(d.consequent),
86
+ };
87
+ }
88
+ function normalizeTheory(T, opts) {
89
+ const maxDefaults = opts.maxDefaults ?? types_1.DEFAULT_MAX_DEFAULTS;
90
+ if (T.defaults.length > maxDefaults) {
91
+ throw new Error(`Teoría con ${T.defaults.length} defaults excede el límite (${maxDefaults}). ` +
92
+ `Pase maxDefaults explícitamente si la teoría es legítima.`);
93
+ }
94
+ // Detectar IDs duplicados (rompería el seguimiento de extensiones)
95
+ const seen = new Set();
96
+ for (const d of T.defaults) {
97
+ if (seen.has(d.id)) {
98
+ throw new Error(`ID de default duplicado: "${d.id}"`);
99
+ }
100
+ seen.add(d.id);
101
+ }
102
+ const facts = new Set(T.facts.map(normalizeLiteral));
103
+ if (!isConsistent(facts)) {
104
+ throw new Error('Facts inconsistentes (contienen un literal y su negación)');
105
+ }
106
+ return {
107
+ facts,
108
+ defaults: T.defaults.map(normalizeDefault),
109
+ };
110
+ }
111
+ /**
112
+ * Aplica todos los defaults posibles a partir de un conjunto de creencias,
113
+ * en orden de prioridad por índice. Devuelve el cierre forward y los
114
+ * defaults aplicados. Esta función es determinista para una secuencia fija
115
+ * de defaults, no enumera ramas.
116
+ */
117
+ function forwardClose(initial, defaults, order) {
118
+ const beliefs = new Set(initial);
119
+ const applied = [];
120
+ const usedIdx = new Set();
121
+ let changed = true;
122
+ while (changed) {
123
+ changed = false;
124
+ for (const idx of order) {
125
+ if (usedIdx.has(idx))
126
+ continue;
127
+ const d = defaults[idx];
128
+ if (!beliefs.has(d.prerequisite))
129
+ continue;
130
+ // Todas las justificaciones consistentes con las creencias actuales
131
+ if (!d.justifications.every((j) => isJustificationConsistent(j, beliefs)))
132
+ continue;
133
+ // Aplicar
134
+ const next = new Set(beliefs);
135
+ next.add(d.consequent);
136
+ if (!isConsistent(next))
137
+ continue; // el consequent no debe romper consistencia
138
+ beliefs.add(d.consequent);
139
+ applied.push(d.id);
140
+ usedIdx.add(idx);
141
+ changed = true;
142
+ }
143
+ }
144
+ return { beliefs, applied };
145
+ }
146
+ /**
147
+ * Verifica que un conjunto candidato E sea efectivamente una extensión
148
+ * de la teoría: usando E como contexto de consistencia, los defaults que
149
+ * disparan generan exactamente las creencias de E.
150
+ *
151
+ * Esta es la definición de punto fijo de Reiter (operador Γ): E es
152
+ * extensión si Γ_T(E) = E.
153
+ */
154
+ function isExtension(candidate, appliedIds, facts, defaults) {
155
+ // Construir Γ_T(E): facts + consequents de los defaults cuyas
156
+ // justificaciones son consistentes con E.
157
+ const gamma = new Set(facts);
158
+ // Punto fijo monótono: reaplicar hasta estabilizar (necesario porque
159
+ // el prerequisite de un default puede ser el consequent de otro).
160
+ let changed = true;
161
+ const usedForGamma = new Set();
162
+ while (changed) {
163
+ changed = false;
164
+ for (const d of defaults) {
165
+ if (usedForGamma.has(d.id))
166
+ continue;
167
+ if (!gamma.has(d.prerequisite))
168
+ continue;
169
+ // Justificaciones se chequean contra el candidato E (definición Reiter)
170
+ if (!d.justifications.every((j) => isJustificationConsistent(j, candidate)))
171
+ continue;
172
+ gamma.add(d.consequent);
173
+ usedForGamma.add(d.id);
174
+ changed = true;
175
+ }
176
+ }
177
+ // E es extensión sii Γ_T(E) = E
178
+ if (gamma.size !== candidate.size)
179
+ return false;
180
+ for (const lit of gamma) {
181
+ if (!candidate.has(lit))
182
+ return false;
183
+ }
184
+ // Coherencia: los defaults aplicados deben coincidir con los que Γ usó
185
+ if (usedForGamma.size !== appliedIds.size)
186
+ return false;
187
+ for (const id of usedForGamma) {
188
+ if (!appliedIds.has(id))
189
+ return false;
190
+ }
191
+ return true;
192
+ }
193
+ /**
194
+ * Calcula todas las extensiones de la teoría enumerando órdenes de
195
+ * aplicación de defaults y verificando que el resultado sea un punto
196
+ * fijo del operador Γ_T.
197
+ *
198
+ * Estrategia: para cada subconjunto de defaults, intentamos aplicarlos
199
+ * en algún orden. Como en v1 trabajamos con literales y la aplicación
200
+ * de un default no se desbloquea por reordering una vez fijado el
201
+ * subconjunto consistente, basta enumerar subconjuntos maximales
202
+ * generables por forward-close empezando desde cada permutación
203
+ * heurística. Para acotar costo: probamos todas las permutaciones
204
+ * cuando |defaults| ≤ 6, y un sampling determinista si excede.
205
+ */
206
+ function computeExtensions(T, options = {}) {
207
+ const opts = { ...options };
208
+ const { facts, defaults } = normalizeTheory(T, opts);
209
+ const maxExt = opts.maxExtensions ?? types_1.DEFAULT_MAX_EXTENSIONS;
210
+ if (defaults.length === 0) {
211
+ return [{ formulas: new Set(facts), appliedDefaults: [] }];
212
+ }
213
+ // Conjunto candidato → extension
214
+ const candidates = new Map();
215
+ const tryOrder = (order) => {
216
+ const { beliefs, applied } = forwardClose(facts, defaults, order);
217
+ const appliedSet = new Set(applied);
218
+ if (!isExtension(beliefs, appliedSet, facts, defaults))
219
+ return;
220
+ const key = signatureOf(beliefs);
221
+ if (candidates.has(key))
222
+ return;
223
+ candidates.set(key, {
224
+ formulas: beliefs,
225
+ appliedDefaults: applied,
226
+ });
227
+ };
228
+ const n = defaults.length;
229
+ if (n <= 6) {
230
+ // Enumerar todas las permutaciones
231
+ const idx = Array.from({ length: n }, (_, i) => i);
232
+ for (const perm of permutations(idx)) {
233
+ if (candidates.size >= maxExt)
234
+ break;
235
+ tryOrder(perm);
236
+ }
237
+ }
238
+ else {
239
+ // Heurística: para cada default, intentarlo primero. Esto cubre la
240
+ // típica explosión "Nixon diamond" donde el orden inicial decide qué
241
+ // default queda bloqueado por inconsistencia.
242
+ const base = Array.from({ length: n }, (_, i) => i);
243
+ tryOrder(base);
244
+ for (let i = 0; i < n && candidates.size < maxExt; i++) {
245
+ const order = [i, ...base.filter((j) => j !== i)];
246
+ tryOrder(order);
247
+ }
248
+ // Y todos los pares (i,j) como prefijo
249
+ for (let i = 0; i < n && candidates.size < maxExt; i++) {
250
+ for (let j = 0; j < n && candidates.size < maxExt; j++) {
251
+ if (i === j)
252
+ continue;
253
+ const order = [i, j, ...base.filter((k) => k !== i && k !== j)];
254
+ tryOrder(order);
255
+ }
256
+ }
257
+ }
258
+ return Array.from(candidates.values());
259
+ }
260
+ function signatureOf(set) {
261
+ return Array.from(set).sort().join('|');
262
+ }
263
+ function* permutations(arr) {
264
+ if (arr.length <= 1) {
265
+ yield arr.slice();
266
+ return;
267
+ }
268
+ for (let i = 0; i < arr.length; i++) {
269
+ const head = arr[i];
270
+ const rest = [...arr.slice(0, i), ...arr.slice(i + 1)];
271
+ for (const sub of permutations(rest)) {
272
+ yield [head, ...sub];
273
+ }
274
+ }
275
+ }
276
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/profiles/default-logic/extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { DefaultRule, DefaultTheory, Extension, ComputeOptions } from './types';
2
+ export { DEFAULT_MAX_EXTENSIONS, DEFAULT_MAX_DEFAULTS } from './types';
3
+ export { computeExtensions, normalizeLiteral, negate, isConsistent, isJustificationConsistent, } from './extensions';
4
+ export { isInExtension, isSkepticallyEntailed, isCredulouslyEntailed } from './entailment';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/default-logic/index.ts"],"names":[],"mappings":"AAiBA,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Default Logic (Reiter) — Barrel export
4
+ // ============================================================
5
+ //
6
+ // Lógica default de Reiter (1980): razonamiento no-monotónico
7
+ // basado en reglas `α : β / γ` donde α es el prerequisite, β las
8
+ // justificaciones (consistentes con creencias) y γ el consequent.
9
+ //
10
+ // API pública:
11
+ // - computeExtensions(T): punto fijo del operador Γ_T.
12
+ // - isInExtension(φ, E): pertenencia a una extensión dada.
13
+ // - isSkepticallyEntailed(φ, T): φ en TODAS las extensiones.
14
+ // - isCredulouslyEntailed(φ, T): φ en AL MENOS una extensión.
15
+ //
16
+ // Casos canónicos cubiertos por tests: Tweety, pingüino, Nixon diamond.
17
+ // ============================================================
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.isCredulouslyEntailed = exports.isSkepticallyEntailed = exports.isInExtension = exports.isJustificationConsistent = exports.isConsistent = exports.negate = exports.normalizeLiteral = exports.computeExtensions = exports.DEFAULT_MAX_DEFAULTS = exports.DEFAULT_MAX_EXTENSIONS = void 0;
20
+ var types_1 = require("./types");
21
+ Object.defineProperty(exports, "DEFAULT_MAX_EXTENSIONS", { enumerable: true, get: function () { return types_1.DEFAULT_MAX_EXTENSIONS; } });
22
+ Object.defineProperty(exports, "DEFAULT_MAX_DEFAULTS", { enumerable: true, get: function () { return types_1.DEFAULT_MAX_DEFAULTS; } });
23
+ var extensions_1 = require("./extensions");
24
+ Object.defineProperty(exports, "computeExtensions", { enumerable: true, get: function () { return extensions_1.computeExtensions; } });
25
+ Object.defineProperty(exports, "normalizeLiteral", { enumerable: true, get: function () { return extensions_1.normalizeLiteral; } });
26
+ Object.defineProperty(exports, "negate", { enumerable: true, get: function () { return extensions_1.negate; } });
27
+ Object.defineProperty(exports, "isConsistent", { enumerable: true, get: function () { return extensions_1.isConsistent; } });
28
+ Object.defineProperty(exports, "isJustificationConsistent", { enumerable: true, get: function () { return extensions_1.isJustificationConsistent; } });
29
+ var entailment_1 = require("./entailment");
30
+ Object.defineProperty(exports, "isInExtension", { enumerable: true, get: function () { return entailment_1.isInExtension; } });
31
+ Object.defineProperty(exports, "isSkepticallyEntailed", { enumerable: true, get: function () { return entailment_1.isSkepticallyEntailed; } });
32
+ Object.defineProperty(exports, "isCredulouslyEntailed", { enumerable: true, get: function () { return entailment_1.isCredulouslyEntailed; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/default-logic/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,EAAE;AACF,8DAA8D;AAC9D,iEAAiE;AACjE,kEAAkE;AAClE,EAAE;AACF,eAAe;AACf,yDAAyD;AACzD,6DAA6D;AAC7D,+DAA+D;AAC/D,gEAAgE;AAChE,EAAE;AACF,wEAAwE;AACxE,+DAA+D;;;AAG/D,iCAAuE;AAA9D,+GAAA,sBAAsB,OAAA;AAAE,6GAAA,oBAAoB,OAAA;AACrD,2CAMsB;AALpB,+GAAA,iBAAiB,OAAA;AACjB,8GAAA,gBAAgB,OAAA;AAChB,oGAAA,MAAM,OAAA;AACN,0GAAA,YAAY,OAAA;AACZ,uHAAA,yBAAyB,OAAA;AAE3B,2CAA2F;AAAlF,2GAAA,aAAa,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,mHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,29 @@
1
+ export interface DefaultRule {
2
+ id: string;
3
+ /** Literal que debe estar en las creencias para que el default sea aplicable. */
4
+ prerequisite: string;
5
+ /** Cada literal debe ser consistente con las creencias (¬β no debe estar). */
6
+ justifications: string[];
7
+ /** Literal que se añade a las creencias cuando el default se aplica. */
8
+ consequent: string;
9
+ }
10
+ export interface DefaultTheory {
11
+ /** Hard facts: siempre creídos, base de toda extensión. */
12
+ facts: string[];
13
+ defaults: DefaultRule[];
14
+ }
15
+ export interface Extension {
16
+ /** Cierre de creencias (facts + consequents aplicados). */
17
+ formulas: Set<string>;
18
+ /** IDs de los defaults aplicados en orden de aplicación. */
19
+ appliedDefaults: string[];
20
+ }
21
+ export interface ComputeOptions {
22
+ /** Tope de extensiones a enumerar (evita explosión combinatoria). */
23
+ maxExtensions?: number;
24
+ /** Tope de defaults considerados (evita teorías malformadas). */
25
+ maxDefaults?: number;
26
+ }
27
+ export declare const DEFAULT_MAX_EXTENSIONS = 64;
28
+ export declare const DEFAULT_MAX_DEFAULTS = 64;
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/profiles/default-logic/types.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC"}