@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,219 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Operaciones derivadas sobre bisimulación.
4
+ // ============================================================
5
+ // - areBisimilar(M, s, t) : ¿s y t están en el mismo bloque?
6
+ // - quotientLTS(M) : LTS mínimo módulo bisimulación.
7
+ // - strongBisimulation(M1, M2) : ¿dos LTS son fuertemente bisimilares?
8
+ // - weakBisimulation(M, τ) : partición que oculta transiciones τ.
9
+ //
10
+ // Para weakBisimulation usamos la construcción estándar:
11
+ // 1. saturar: ⇒ = τ* (con loops auto-incluidos)
12
+ // 2. para cada arista s -a-> t con a ≠ τ, agregar todas las composiciones
13
+ // τ* ; a ; τ*
14
+ // 3. para a = τ, agregar todos los pares (s, t) tales que s ⇒ t (incluido
15
+ // el reflexivo) bajo la acción τ.
16
+ // 4. Aplicar Paige-Tarjan sobre el LTS saturado.
17
+ //
18
+ // El resultado es la partición de bisimulación débil (~_w o "observational
19
+ // equivalence" de Milner).
20
+ // ============================================================
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.areBisimilar = areBisimilar;
23
+ exports.quotientLTS = quotientLTS;
24
+ exports.strongBisimulation = strongBisimulation;
25
+ exports.weakBisimulation = weakBisimulation;
26
+ const paige_tarjan_1 = require("./paige-tarjan");
27
+ /**
28
+ * Devuelve `true` si los estados `s` y `t` caen en el mismo bloque de la
29
+ * partición de bisimulación fuerte. Lanza si alguno no existe en M.
30
+ */
31
+ function areBisimilar(lts, s, t) {
32
+ const known = new Set(lts.states);
33
+ if (!known.has(s))
34
+ throw new Error(`areBisimilar: estado desconocido "${s}"`);
35
+ if (!known.has(t))
36
+ throw new Error(`areBisimilar: estado desconocido "${t}"`);
37
+ const result = (0, paige_tarjan_1.paigeTarjan)(lts);
38
+ return result.partition.get(s) === result.partition.get(t);
39
+ }
40
+ /**
41
+ * Construye el LTS cociente M/~ donde cada bloque de la partición de
42
+ * bisimulación se convierte en un único estado. Las transiciones se
43
+ * deduplican: si s -a-> t, entonces [s] -a-> [t] aparece una sola vez.
44
+ *
45
+ * El labelling del bloque es el labelling común de sus miembros
46
+ * (todos los miembros tienen el mismo labelling por construcción).
47
+ */
48
+ function quotientLTS(lts) {
49
+ const result = (0, paige_tarjan_1.paigeTarjan)(lts);
50
+ const blockName = (idx) => `q${idx}`;
51
+ const newStates = result.blocks.map((_, i) => blockName(i));
52
+ const seen = new Set();
53
+ const newTransitions = [];
54
+ for (const [from, action, to] of lts.transitions) {
55
+ const bf = result.partition.get(from);
56
+ const bt = result.partition.get(to);
57
+ if (bf === undefined || bt === undefined)
58
+ continue;
59
+ const key = `${bf}|${action}|${bt}`;
60
+ if (seen.has(key))
61
+ continue;
62
+ seen.add(key);
63
+ newTransitions.push([blockName(bf), action, blockName(bt)]);
64
+ }
65
+ // Labelling: cada bloque hereda el labelling de cualquiera de sus miembros
66
+ // (los miembros de un mismo bloque coinciden en labelling por bisimulación).
67
+ const labelling = {};
68
+ if (lts.labelling) {
69
+ for (let i = 0; i < result.blocks.length; i++) {
70
+ const cell = result.blocks[i];
71
+ const rep = cell && cell.length > 0 ? cell[0] : undefined;
72
+ if (rep === undefined)
73
+ continue;
74
+ const labs = lts.labelling[rep];
75
+ if (labs && labs.size > 0) {
76
+ labelling[blockName(i)] = new Set(labs);
77
+ }
78
+ }
79
+ }
80
+ const out = {
81
+ states: newStates,
82
+ transitions: newTransitions,
83
+ };
84
+ if (Object.keys(labelling).length > 0)
85
+ out.labelling = labelling;
86
+ return out;
87
+ }
88
+ /**
89
+ * Verifica si dos LTS son fuertemente bisimilares.
90
+ * Los espacios de estados deben ser disjuntos; si no lo son, los renombramos
91
+ * internamente con prefijos "L:" y "R:".
92
+ *
93
+ * El criterio: en el LTS combinado, los conjuntos iniciales (o, en ausencia
94
+ * de iniciales explícitos, todos los estados) deben quedar particionados de
95
+ * forma que cada estado de L tenga al menos un estado equivalente en R y
96
+ * viceversa. Como API simple, se compara la firma de la partición sobre
97
+ * el LTS combinado: dos LTS son bisimilares como sistemas sii existe una
98
+ * biyección entre sus bloques tal que cada bloque contiene estados de ambos
99
+ * lados (interpretación de "los autómatas son indistinguibles").
100
+ */
101
+ function strongBisimulation(lts1, lts2) {
102
+ const prefix = (side, s) => `${side}:${s}`;
103
+ const states = [
104
+ ...lts1.states.map((s) => prefix('L', s)),
105
+ ...lts2.states.map((s) => prefix('R', s)),
106
+ ];
107
+ const transitions = [
108
+ ...lts1.transitions.map(([f, a, t]) => [prefix('L', f), a, prefix('L', t)]),
109
+ ...lts2.transitions.map(([f, a, t]) => [prefix('R', f), a, prefix('R', t)]),
110
+ ];
111
+ const labelling = {};
112
+ if (lts1.labelling) {
113
+ for (const [k, v] of Object.entries(lts1.labelling)) {
114
+ labelling[prefix('L', k)] = new Set(v);
115
+ }
116
+ }
117
+ if (lts2.labelling) {
118
+ for (const [k, v] of Object.entries(lts2.labelling)) {
119
+ labelling[prefix('R', k)] = new Set(v);
120
+ }
121
+ }
122
+ const combined = { states, transitions };
123
+ if (Object.keys(labelling).length > 0)
124
+ combined.labelling = labelling;
125
+ const result = (0, paige_tarjan_1.paigeTarjan)(combined);
126
+ // Para que dos LTS sean "globalmente" bisimilares, cada estado de un lado
127
+ // debe quedar emparejado con al menos un estado del otro: los bloques deben
128
+ // contener miembros de ambos lados (o bloques que toquen sólo un lado son
129
+ // testigos de no-bisimilaridad).
130
+ for (const cell of result.blocks) {
131
+ let hasL = false;
132
+ let hasR = false;
133
+ for (const s of cell) {
134
+ if (s.startsWith('L:'))
135
+ hasL = true;
136
+ else if (s.startsWith('R:'))
137
+ hasR = true;
138
+ if (hasL && hasR)
139
+ break;
140
+ }
141
+ if (!hasL || !hasR)
142
+ return false;
143
+ }
144
+ return true;
145
+ }
146
+ /**
147
+ * Bisimulación débil: oculta transiciones τ y satura ⇒ = τ* antes de aplicar
148
+ * Paige-Tarjan. Útil para CCS / process algebras donde τ representa una
149
+ * acción interna no observable.
150
+ *
151
+ * Cuesta O(n³) por la saturación (transitivos τ); para LTS grandes con muchas
152
+ * acciones reales esto es aceptable. La partición resultante es la mayor
153
+ * relación de bisimulación débil.
154
+ */
155
+ function weakBisimulation(lts, tau) {
156
+ const states = new Set(lts.states);
157
+ // Construir τ-reachability (incluyendo cero pasos: cada s alcanza a sí mismo).
158
+ const tauNext = new Map();
159
+ for (const s of states)
160
+ tauNext.set(s, new Set([s]));
161
+ for (const [f, a, t] of lts.transitions) {
162
+ if (a === tau)
163
+ tauNext.get(f)?.add(t);
164
+ }
165
+ // Cierre transitivo de τ (Floyd-Warshall ingenuo).
166
+ const tauStar = new Map();
167
+ for (const s of states) {
168
+ const reach = new Set([s]);
169
+ const queue = [s];
170
+ while (queue.length > 0) {
171
+ const cur = queue.shift();
172
+ if (cur === undefined)
173
+ continue;
174
+ for (const n of tauNext.get(cur) ?? []) {
175
+ if (!reach.has(n)) {
176
+ reach.add(n);
177
+ queue.push(n);
178
+ }
179
+ }
180
+ }
181
+ tauStar.set(s, reach);
182
+ }
183
+ // Saturación: s ⇒ -a-> ⇐ t ≡ existen u, v con s ⇒ u -a-> v y v ⇒ t.
184
+ // Para τ: s ⇒ t (sólo cuando el LTS original tiene al menos un τ desde s o
185
+ // s ≠ t por algún camino) se traduce a aristas τ explícitas en el saturado.
186
+ const saturated = [];
187
+ const seen = new Set();
188
+ const addEdge = (f, a, t) => {
189
+ const k = `${f}|${a}|${t}`;
190
+ if (seen.has(k))
191
+ return;
192
+ seen.add(k);
193
+ saturated.push([f, a, t]);
194
+ };
195
+ // Saturación de transiciones observables (a ≠ τ):
196
+ // en el LTS saturado, s -a-> u sii existen f, t con s ⇒ f -a-> t ⇒ u.
197
+ // Los τ originales NO se emiten como aristas observables: se "absorben" en
198
+ // ⇒ y desaparecen de la firma local, que es la definición canónica de
199
+ // bisimulación débil de Milner.
200
+ for (const [f, a, t] of lts.transitions) {
201
+ if (a === tau)
202
+ continue;
203
+ for (const s of tauStar.keys()) {
204
+ if (!tauStar.get(s)?.has(f))
205
+ continue;
206
+ for (const u of tauStar.get(t) ?? []) {
207
+ addEdge(s, a, u);
208
+ }
209
+ }
210
+ }
211
+ const satLts = {
212
+ states: [...states],
213
+ transitions: saturated,
214
+ };
215
+ if (lts.labelling)
216
+ satLts.labelling = lts.labelling;
217
+ return (0, paige_tarjan_1.paigeTarjan)(satLts);
218
+ }
219
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/runtime/bisimulation/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { LTS, BisimulationResult } from './types';
2
+ /**
3
+ * Particiona el LTS según bisimulación fuerte usando Paige-Tarjan.
4
+ * Devuelve la partición canónica donde dos estados están en el mismo bloque
5
+ * sii son fuertemente bisimilares.
6
+ */
7
+ export declare function paigeTarjan(lts: LTS): BisimulationResult;
8
+ //# sourceMappingURL=paige-tarjan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paige-tarjan.d.ts","sourceRoot":"","sources":["../../../src/runtime/bisimulation/paige-tarjan.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAyEvD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,kBAAkB,CA+GxD"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Paige-Tarjan — partition refinement para bisimulación fuerte.
4
+ // ============================================================
5
+ // Complejidad O(m log n) sobre LTS finitos, donde m = |→| y n = |S|.
6
+ //
7
+ // Idea:
8
+ // - Comienza con la partición coarsest compatible con el labelling.
9
+ // - Mantiene una cola de "splitters" (B, a): bloque B y acción a.
10
+ // - Para cada splitter, particiona cada bloque X en
11
+ // X₁ = { s ∈ X | ∃ s -a-> t, t ∈ B }
12
+ // X₂ = X \ X₁
13
+ // y si ambos son no vacíos, reemplaza X y agrega el bloque más pequeño
14
+ // como nuevo splitter (heurística que da el factor log n).
15
+ // - Termina cuando no quedan splitters útiles.
16
+ //
17
+ // La implementación usa un Map de aristas inversas por acción
18
+ // inversa[a][to] = { from : ∃ from -a-> to }
19
+ // para que el split sea proporcional a |a-predecessors|.
20
+ // ============================================================
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.paigeTarjan = paigeTarjan;
23
+ function canonicalLabel(labels) {
24
+ if (!labels || labels.size === 0)
25
+ return '∅';
26
+ return [...labels].sort().join('|');
27
+ }
28
+ function compile(lts) {
29
+ const stateSet = new Set(lts.states);
30
+ const actionSet = new Set();
31
+ const inverse = new Map();
32
+ for (const [from, action, to] of lts.transitions) {
33
+ if (!stateSet.has(from)) {
34
+ throw new Error(`Bisimulation: transición desde estado desconocido "${from}"`);
35
+ }
36
+ if (!stateSet.has(to)) {
37
+ throw new Error(`Bisimulation: transición hacia estado desconocido "${to}"`);
38
+ }
39
+ actionSet.add(action);
40
+ let invA = inverse.get(action);
41
+ if (!invA) {
42
+ invA = new Map();
43
+ inverse.set(action, invA);
44
+ }
45
+ let bucket = invA.get(to);
46
+ if (!bucket) {
47
+ bucket = new Set();
48
+ invA.set(to, bucket);
49
+ }
50
+ bucket.add(from);
51
+ }
52
+ const labelKey = new Map();
53
+ for (const s of lts.states) {
54
+ labelKey.set(s, canonicalLabel(lts.labelling?.[s]));
55
+ }
56
+ return {
57
+ states: [...lts.states],
58
+ actions: [...actionSet],
59
+ inverse,
60
+ labelKey,
61
+ };
62
+ }
63
+ /**
64
+ * Calcula los `a-predecessors` de un conjunto target:
65
+ * pre_a(B) = { s | ∃ s -a-> t, t ∈ B }
66
+ */
67
+ function preimage(compiled, action, target) {
68
+ const out = new Set();
69
+ const invA = compiled.inverse.get(action);
70
+ if (!invA)
71
+ return out;
72
+ for (const to of target) {
73
+ const froms = invA.get(to);
74
+ if (!froms)
75
+ continue;
76
+ for (const f of froms)
77
+ out.add(f);
78
+ }
79
+ return out;
80
+ }
81
+ /**
82
+ * Particiona el LTS según bisimulación fuerte usando Paige-Tarjan.
83
+ * Devuelve la partición canónica donde dos estados están en el mismo bloque
84
+ * sii son fuertemente bisimilares.
85
+ */
86
+ function paigeTarjan(lts) {
87
+ const compiled = compile(lts);
88
+ // Partición inicial por labelling (refinement compatible con la condición 1).
89
+ const byLabel = new Map();
90
+ for (const s of compiled.states) {
91
+ const k = compiled.labelKey.get(s) ?? '∅';
92
+ let g = byLabel.get(k);
93
+ if (!g) {
94
+ g = new Set();
95
+ byLabel.set(k, g);
96
+ }
97
+ g.add(s);
98
+ }
99
+ const blocks = [];
100
+ const blockOf = new Map();
101
+ for (const members of byLabel.values()) {
102
+ const id = blocks.length;
103
+ blocks.push({ id, members });
104
+ for (const s of members)
105
+ blockOf.set(s, id);
106
+ }
107
+ // Cola de splitters: pares (blockId, action). Usamos una clave canónica para
108
+ // evitar inserciones duplicadas en la cola.
109
+ const pending = [];
110
+ const pendingKey = new Set();
111
+ const enqueue = (bid, a) => {
112
+ const k = `${bid}|${a}`;
113
+ if (pendingKey.has(k))
114
+ return;
115
+ pendingKey.add(k);
116
+ pending.push([bid, a]);
117
+ };
118
+ // Sembrar la cola con todos los pares (bloque inicial, acción).
119
+ for (const b of blocks) {
120
+ for (const a of compiled.actions)
121
+ enqueue(b.id, a);
122
+ }
123
+ let iterations = 0;
124
+ const maxIter = compiled.states.length * compiled.actions.length * 4 + 16;
125
+ while (pending.length > 0) {
126
+ if (iterations++ > maxIter) {
127
+ // Cinturón de seguridad; Paige-Tarjan termina en O(m log n).
128
+ break;
129
+ }
130
+ const head = pending.shift();
131
+ if (!head)
132
+ break;
133
+ const [splitterId, action] = head;
134
+ pendingKey.delete(`${splitterId}|${action}`);
135
+ const splitter = blocks[splitterId];
136
+ if (!splitter)
137
+ continue;
138
+ // pre_action(splitter.members) — estados que pueden alcanzar el splitter
139
+ // vía la acción dada.
140
+ const pre = preimage(compiled, action, splitter.members);
141
+ if (pre.size === 0)
142
+ continue;
143
+ // Agrupar los preimage por bloque actual (para saber qué bloques tocan).
144
+ const touched = new Map();
145
+ for (const s of pre) {
146
+ const bid = blockOf.get(s);
147
+ if (bid === undefined)
148
+ continue;
149
+ let bucket = touched.get(bid);
150
+ if (!bucket) {
151
+ bucket = new Set();
152
+ touched.set(bid, bucket);
153
+ }
154
+ bucket.add(s);
155
+ }
156
+ for (const [bid, inPre] of touched) {
157
+ const block = blocks[bid];
158
+ if (!block)
159
+ continue;
160
+ if (inPre.size === block.members.size)
161
+ continue; // splitter no separa este bloque.
162
+ // Particionar block en (block ∩ pre, block \ pre).
163
+ const outside = new Set();
164
+ for (const s of block.members) {
165
+ if (!inPre.has(s))
166
+ outside.add(s);
167
+ }
168
+ // Nuevo bloque para `outside`; `block` se queda con `inPre`.
169
+ const newId = blocks.length;
170
+ blocks.push({ id: newId, members: outside });
171
+ block.members = inPre;
172
+ for (const s of outside)
173
+ blockOf.set(s, newId);
174
+ // Heurística Paige-Tarjan: encolar el bloque más pequeño como splitter.
175
+ // El más grande "hereda" su antiguo rol en cola sin necesidad de reencolar.
176
+ const smaller = block.members.size <= outside.size ? block.id : newId;
177
+ for (const a of compiled.actions)
178
+ enqueue(smaller, a);
179
+ }
180
+ }
181
+ // Compactar: filtrar bloques no vacíos y renumerar.
182
+ const finalBlocks = [];
183
+ const partition = new Map();
184
+ for (const b of blocks) {
185
+ if (b.members.size === 0)
186
+ continue;
187
+ const idx = finalBlocks.length;
188
+ finalBlocks.push([...b.members]);
189
+ for (const s of b.members)
190
+ partition.set(s, idx);
191
+ }
192
+ return {
193
+ partition,
194
+ blocks: finalBlocks,
195
+ numBlocks: finalBlocks.length,
196
+ iterations,
197
+ };
198
+ }
199
+ //# sourceMappingURL=paige-tarjan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paige-tarjan.js","sourceRoot":"","sources":["../../../src/runtime/bisimulation/paige-tarjan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Sistema de transiciones etiquetadas.
3
+ * - `states` lista finita de identificadores de estado.
4
+ * - `transitions` triplas [from, action, to] que codifican →.
5
+ * - `labelling` opcional: estado → conjunto de proposiciones atómicas que
6
+ * se cumplen en él. Estados ausentes se tratan como ∅.
7
+ */
8
+ export interface LTS {
9
+ states: string[];
10
+ transitions: Array<[string, string, string]>;
11
+ labelling?: Record<string, Set<string>>;
12
+ }
13
+ /**
14
+ * Resultado de un algoritmo de partition refinement.
15
+ * - `partition` estado → índice de bloque.
16
+ * - `blocks` bloques como listas de estados (índice consistente con partition).
17
+ * - `numBlocks` cardinalidad de la partición final.
18
+ * - `iterations` número de iteraciones de refinamiento ejecutadas.
19
+ */
20
+ export interface BisimulationResult {
21
+ partition: Map<string, number>;
22
+ blocks: string[][];
23
+ numBlocks: number;
24
+ iterations: number;
25
+ }
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/bisimulation/types.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACzC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Bisimulation — tipos públicos
4
+ // ============================================================
5
+ // Sistema de Transiciones Etiquetadas (LTS, Labelled Transition System):
6
+ // M = (S, Act, →, L)
7
+ // S conjunto finito de estados
8
+ // Act alfabeto de acciones
9
+ // → relación de transición ⊆ S × Act × S
10
+ // L función de etiquetado opcional S → 2^AP (proposiciones atómicas)
11
+ //
12
+ // La bisimulación fuerte ~ es la mayor relación R ⊆ S × S tal que (s, t) ∈ R
13
+ // implica:
14
+ // 1. L(s) = L(t) (mismas etiquetas)
15
+ // 2. ∀ s -a-> s'. ∃ t'. t -a-> t' ∧ (s', t') ∈ R (forward simulation)
16
+ // 3. ∀ t -a-> t'. ∃ s'. s -a-> s' ∧ (s', t') ∈ R (backward simulation)
17
+ //
18
+ // La bisimulación débil ignora τ-transiciones internas y compara cadenas
19
+ // s ⇒ s' ≡ s -τ*-> ·-a-> ·-τ*-> s'
20
+ // ============================================================
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/bisimulation/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;AAC/D,yEAAyE;AACzE,uBAAuB;AACvB,yCAAyC;AACzC,mCAAmC;AACnC,mDAAmD;AACnD,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,WAAW;AACX,iFAAiF;AACjF,mFAAmF;AACnF,oFAAoF;AACpF,EAAE;AACF,yEAAyE;AACzE,qCAAqC;AACrC,+DAA+D"}
@@ -0,0 +1,3 @@
1
+ export { minimizeCountermodel } from './minimize';
2
+ export type { CountermodelMinOptions, CountermodelMinAlgorithm, CountermodelAssignment, MinimalCountermodel, } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Countermodel Minimization — Barrel
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.minimizeCountermodel = void 0;
7
+ var minimize_1 = require("./minimize");
8
+ Object.defineProperty(exports, "minimizeCountermodel", { enumerable: true, get: function () { return minimize_1.minimizeCountermodel; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;;;AAE/D,uCAAkD;AAAzC,gHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,17 @@
1
+ import type { Formula } from '../../types';
2
+ import type { CountermodelMinOptions, MinimalCountermodel } from './types';
3
+ /**
4
+ * Minimiza un contramodelo: devuelve el subconjunto más pequeño de
5
+ * asignaciones que aún hace `evaluator(asg) === false` para toda
6
+ * completación de las variables removidas.
7
+ *
8
+ * @param _formula AST de la fórmula (queda en la firma para
9
+ * compatibilidad y futura especialización; el motor
10
+ * trata el evaluator como caja negra).
11
+ * @param fullCounter Contramodelo total: asignación que falsifica F.
12
+ * @param evaluator Función que devuelve `true` si la fórmula es válida
13
+ * bajo la asignación total dada.
14
+ * @param opts Algoritmo y maxSteps.
15
+ */
16
+ export declare function minimizeCountermodel(_formula: Formula, fullCounter: Record<string, boolean>, evaluator: (asg: Record<string, boolean>) => boolean, opts?: CountermodelMinOptions): MinimalCountermodel;
17
+ //# sourceMappingURL=minimize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimize.d.ts","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/minimize.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAWjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,EACpD,IAAI,GAAE,sBAA2B,GAChC,mBAAmB,CAwDrB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimize.js","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/minimize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Algoritmo de minimización a usar.
3
+ *
4
+ * - `one-at-a-time`: O(n) pruebas. Por cada variable intenta removerla;
5
+ * si la fórmula sigue siendo falsada (para ambas completaciones de la
6
+ * variable removida), la elimina permanentemente.
7
+ * - `binary-search`: O(n log n). Divide el conjunto de assignments en
8
+ * mitades y trata de descartar la mitad completa de una vez.
9
+ * - `delta-debug`: O(n log n) en el peor caso, mucho más rápido en la
10
+ * práctica. Granularidad creciente al estilo Zeller 1999. Empieza
11
+ * removiendo bloques grandes y se reduce a granularidad 1.
12
+ */
13
+ export type CountermodelMinAlgorithm = 'delta-debug' | 'binary-search' | 'one-at-a-time';
14
+ export interface CountermodelMinOptions {
15
+ /** Algoritmo a utilizar. Default: `delta-debug`. */
16
+ algorithm?: CountermodelMinAlgorithm;
17
+ /** Tope superior de iteraciones (llamadas a evaluator). Default: 10_000. */
18
+ maxSteps?: number;
19
+ }
20
+ /**
21
+ * Asignación final: para cada variable que queda en el contramodelo
22
+ * mínimo, guardamos su valor.
23
+ *
24
+ * Para perfiles clásicos los valores son `boolean`. Se permite también
25
+ * `'T'`, `'F'`, `'both'`, `'neither'` para perfiles paraconsistentes
26
+ * (Belnap) — la API queda abierta a futuro aunque el algoritmo actual
27
+ * sólo opera sobre `boolean`.
28
+ */
29
+ export type CountermodelAssignment = Record<string, boolean | 'T' | 'F' | 'both' | 'neither'>;
30
+ export interface MinimalCountermodel {
31
+ /** Asignación mínima (solo variables relevantes). */
32
+ assignments: CountermodelAssignment;
33
+ /** Cantidad de variables en `assignments`. */
34
+ size: number;
35
+ /** Variables que el algoritmo eliminó (ordenadas alfabéticamente). */
36
+ removed: string[];
37
+ /** Iteraciones (llamadas a `evaluator`) consumidas. */
38
+ iterations: number;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;AAEzF,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9F,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,WAAW,EAAE,sBAAsB,CAAC;IACpC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Countermodel Minimization — Tipos públicos
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/countermodel-min/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D"}