@stevenvo780/st-lang 4.0.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/dist/belief-revision/agm.d.ts +76 -0
  2. package/dist/belief-revision/agm.d.ts.map +1 -0
  3. package/dist/belief-revision/agm.js +249 -0
  4. package/dist/belief-revision/agm.js.map +1 -0
  5. package/dist/belief-revision/index.d.ts +6 -0
  6. package/dist/belief-revision/index.d.ts.map +1 -0
  7. package/dist/belief-revision/index.js +33 -0
  8. package/dist/belief-revision/index.js.map +1 -0
  9. package/dist/belief-revision/parser.d.ts +16 -0
  10. package/dist/belief-revision/parser.d.ts.map +1 -0
  11. package/dist/belief-revision/parser.js +199 -0
  12. package/dist/belief-revision/parser.js.map +1 -0
  13. package/dist/belief-revision/sat.d.ts +19 -0
  14. package/dist/belief-revision/sat.d.ts.map +1 -0
  15. package/dist/belief-revision/sat.js +90 -0
  16. package/dist/belief-revision/sat.js.map +1 -0
  17. package/dist/belief-revision/types.d.ts +51 -0
  18. package/dist/belief-revision/types.d.ts.map +1 -0
  19. package/dist/belief-revision/types.js +10 -0
  20. package/dist/belief-revision/types.js.map +1 -0
  21. package/dist/curry-howard/index.d.ts +7 -0
  22. package/dist/curry-howard/index.d.ts.map +1 -0
  23. package/dist/curry-howard/index.js +46 -0
  24. package/dist/curry-howard/index.js.map +1 -0
  25. package/dist/curry-howard/infer.d.ts +9 -0
  26. package/dist/curry-howard/infer.d.ts.map +1 -0
  27. package/dist/curry-howard/infer.js +129 -0
  28. package/dist/curry-howard/infer.js.map +1 -0
  29. package/dist/curry-howard/proof.d.ts +7 -0
  30. package/dist/curry-howard/proof.d.ts.map +1 -0
  31. package/dist/curry-howard/proof.js +282 -0
  32. package/dist/curry-howard/proof.js.map +1 -0
  33. package/dist/curry-howard/reduce.d.ts +7 -0
  34. package/dist/curry-howard/reduce.d.ts.map +1 -0
  35. package/dist/curry-howard/reduce.js +266 -0
  36. package/dist/curry-howard/reduce.js.map +1 -0
  37. package/dist/curry-howard/types.d.ts +91 -0
  38. package/dist/curry-howard/types.d.ts.map +1 -0
  39. package/dist/curry-howard/types.js +149 -0
  40. package/dist/curry-howard/types.js.map +1 -0
  41. package/dist/fol-prover-equality/demodulate.d.ts +29 -0
  42. package/dist/fol-prover-equality/demodulate.d.ts.map +1 -0
  43. package/dist/fol-prover-equality/demodulate.js +197 -0
  44. package/dist/fol-prover-equality/demodulate.js.map +1 -0
  45. package/dist/fol-prover-equality/index.d.ts +8 -0
  46. package/dist/fol-prover-equality/index.d.ts.map +1 -0
  47. package/dist/fol-prover-equality/index.js +24 -0
  48. package/dist/fol-prover-equality/index.js.map +1 -0
  49. package/dist/fol-prover-equality/paramodulate.d.ts +46 -0
  50. package/dist/fol-prover-equality/paramodulate.d.ts.map +1 -0
  51. package/dist/fol-prover-equality/paramodulate.js +159 -0
  52. package/dist/fol-prover-equality/paramodulate.js.map +1 -0
  53. package/dist/fol-prover-equality/prove.d.ts +7 -0
  54. package/dist/fol-prover-equality/prove.d.ts.map +1 -0
  55. package/dist/fol-prover-equality/prove.js +307 -0
  56. package/dist/fol-prover-equality/prove.js.map +1 -0
  57. package/dist/fol-prover-equality/term-utils.d.ts +43 -0
  58. package/dist/fol-prover-equality/term-utils.d.ts.map +1 -0
  59. package/dist/fol-prover-equality/term-utils.js +230 -0
  60. package/dist/fol-prover-equality/term-utils.js.map +1 -0
  61. package/dist/fol-prover-equality/types.d.ts +20 -0
  62. package/dist/fol-prover-equality/types.d.ts.map +1 -0
  63. package/dist/fol-prover-equality/types.js +5 -0
  64. package/dist/fol-prover-equality/types.js.map +1 -0
  65. package/dist/index.d.ts +4 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +18 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/profiles/ctl/check.d.ts +13 -0
  70. package/dist/profiles/ctl/check.d.ts.map +1 -0
  71. package/dist/profiles/ctl/check.js +359 -0
  72. package/dist/profiles/ctl/check.js.map +1 -0
  73. package/dist/profiles/ctl/index.d.ts +5 -0
  74. package/dist/profiles/ctl/index.d.ts.map +1 -0
  75. package/dist/profiles/ctl/index.js +23 -0
  76. package/dist/profiles/ctl/index.js.map +1 -0
  77. package/dist/profiles/ctl/types.d.ts +74 -0
  78. package/dist/profiles/ctl/types.d.ts.map +1 -0
  79. package/dist/profiles/ctl/types.js +53 -0
  80. package/dist/profiles/ctl/types.js.map +1 -0
  81. package/dist/profiles/ctl/witness.d.ts +20 -0
  82. package/dist/profiles/ctl/witness.d.ts.map +1 -0
  83. package/dist/profiles/ctl/witness.js +149 -0
  84. package/dist/profiles/ctl/witness.js.map +1 -0
  85. package/dist/profiles/default-logic/entailment.d.ts +14 -0
  86. package/dist/profiles/default-logic/entailment.d.ts.map +1 -0
  87. package/dist/profiles/default-logic/entailment.js +36 -0
  88. package/dist/profiles/default-logic/entailment.js.map +1 -0
  89. package/dist/profiles/default-logic/extensions.d.ts +35 -0
  90. package/dist/profiles/default-logic/extensions.d.ts.map +1 -0
  91. package/dist/profiles/default-logic/extensions.js +276 -0
  92. package/dist/profiles/default-logic/extensions.js.map +1 -0
  93. package/dist/profiles/default-logic/index.d.ts +5 -0
  94. package/dist/profiles/default-logic/index.d.ts.map +1 -0
  95. package/dist/profiles/default-logic/index.js +33 -0
  96. package/dist/profiles/default-logic/index.js.map +1 -0
  97. package/dist/profiles/default-logic/types.d.ts +29 -0
  98. package/dist/profiles/default-logic/types.d.ts.map +1 -0
  99. package/dist/profiles/default-logic/types.js +25 -0
  100. package/dist/profiles/default-logic/types.js.map +1 -0
  101. package/dist/profiles/description-logic/index.d.ts +5 -0
  102. package/dist/profiles/description-logic/index.d.ts.map +1 -0
  103. package/dist/profiles/description-logic/index.js +39 -0
  104. package/dist/profiles/description-logic/index.js.map +1 -0
  105. package/dist/profiles/description-logic/nnf.d.ts +13 -0
  106. package/dist/profiles/description-logic/nnf.d.ts.map +1 -0
  107. package/dist/profiles/description-logic/nnf.js +123 -0
  108. package/dist/profiles/description-logic/nnf.js.map +1 -0
  109. package/dist/profiles/description-logic/tableau.d.ts +27 -0
  110. package/dist/profiles/description-logic/tableau.d.ts.map +1 -0
  111. package/dist/profiles/description-logic/tableau.js +491 -0
  112. package/dist/profiles/description-logic/tableau.js.map +1 -0
  113. package/dist/profiles/description-logic/types.d.ts +45 -0
  114. package/dist/profiles/description-logic/types.d.ts.map +1 -0
  115. package/dist/profiles/description-logic/types.js +71 -0
  116. package/dist/profiles/description-logic/types.js.map +1 -0
  117. package/dist/profiles/hybrid-logic/index.d.ts +5 -0
  118. package/dist/profiles/hybrid-logic/index.d.ts.map +1 -0
  119. package/dist/profiles/hybrid-logic/index.js +34 -0
  120. package/dist/profiles/hybrid-logic/index.js.map +1 -0
  121. package/dist/profiles/hybrid-logic/sat.d.ts +15 -0
  122. package/dist/profiles/hybrid-logic/sat.d.ts.map +1 -0
  123. package/dist/profiles/hybrid-logic/sat.js +142 -0
  124. package/dist/profiles/hybrid-logic/sat.js.map +1 -0
  125. package/dist/profiles/hybrid-logic/semantics.d.ts +20 -0
  126. package/dist/profiles/hybrid-logic/semantics.d.ts.map +1 -0
  127. package/dist/profiles/hybrid-logic/semantics.js +107 -0
  128. package/dist/profiles/hybrid-logic/semantics.js.map +1 -0
  129. package/dist/profiles/hybrid-logic/types.d.ts +78 -0
  130. package/dist/profiles/hybrid-logic/types.d.ts.map +1 -0
  131. package/dist/profiles/hybrid-logic/types.js +107 -0
  132. package/dist/profiles/hybrid-logic/types.js.map +1 -0
  133. package/dist/profiles/ltl-sat/index.d.ts +4 -0
  134. package/dist/profiles/ltl-sat/index.d.ts.map +1 -0
  135. package/dist/profiles/ltl-sat/index.js +40 -0
  136. package/dist/profiles/ltl-sat/index.js.map +1 -0
  137. package/dist/profiles/ltl-sat/sat.d.ts +8 -0
  138. package/dist/profiles/ltl-sat/sat.d.ts.map +1 -0
  139. package/dist/profiles/ltl-sat/sat.js +140 -0
  140. package/dist/profiles/ltl-sat/sat.js.map +1 -0
  141. package/dist/profiles/ltl-sat/tableau.d.ts +19 -0
  142. package/dist/profiles/ltl-sat/tableau.d.ts.map +1 -0
  143. package/dist/profiles/ltl-sat/tableau.js +358 -0
  144. package/dist/profiles/ltl-sat/tableau.js.map +1 -0
  145. package/dist/profiles/ltl-sat/types.d.ts +52 -0
  146. package/dist/profiles/ltl-sat/types.d.ts.map +1 -0
  147. package/dist/profiles/ltl-sat/types.js +101 -0
  148. package/dist/profiles/ltl-sat/types.js.map +1 -0
  149. package/dist/profiles/sequent-g3/index.d.ts +5 -0
  150. package/dist/profiles/sequent-g3/index.d.ts.map +1 -0
  151. package/dist/profiles/sequent-g3/index.js +23 -0
  152. package/dist/profiles/sequent-g3/index.js.map +1 -0
  153. package/dist/profiles/sequent-g3/latex.d.ts +7 -0
  154. package/dist/profiles/sequent-g3/latex.d.ts.map +1 -0
  155. package/dist/profiles/sequent-g3/latex.js +107 -0
  156. package/dist/profiles/sequent-g3/latex.js.map +1 -0
  157. package/dist/profiles/sequent-g3/normalize.d.ts +15 -0
  158. package/dist/profiles/sequent-g3/normalize.d.ts.map +1 -0
  159. package/dist/profiles/sequent-g3/normalize.js +121 -0
  160. package/dist/profiles/sequent-g3/normalize.js.map +1 -0
  161. package/dist/profiles/sequent-g3/prover.d.ts +16 -0
  162. package/dist/profiles/sequent-g3/prover.d.ts.map +1 -0
  163. package/dist/profiles/sequent-g3/prover.js +348 -0
  164. package/dist/profiles/sequent-g3/prover.js.map +1 -0
  165. package/dist/profiles/sequent-g3/types.d.ts +30 -0
  166. package/dist/profiles/sequent-g3/types.d.ts.map +1 -0
  167. package/dist/profiles/sequent-g3/types.js +16 -0
  168. package/dist/profiles/sequent-g3/types.js.map +1 -0
  169. package/dist/runtime/countermodel-min/index.d.ts +3 -0
  170. package/dist/runtime/countermodel-min/index.d.ts.map +1 -0
  171. package/dist/runtime/countermodel-min/index.js +9 -0
  172. package/dist/runtime/countermodel-min/index.js.map +1 -0
  173. package/dist/runtime/countermodel-min/minimize.d.ts +17 -0
  174. package/dist/runtime/countermodel-min/minimize.d.ts.map +1 -0
  175. package/dist/runtime/countermodel-min/minimize.js +0 -0
  176. package/dist/runtime/countermodel-min/minimize.js.map +1 -0
  177. package/dist/runtime/countermodel-min/types.d.ts +40 -0
  178. package/dist/runtime/countermodel-min/types.d.ts.map +1 -0
  179. package/dist/runtime/countermodel-min/types.js +6 -0
  180. package/dist/runtime/countermodel-min/types.js.map +1 -0
  181. package/dist/runtime/mus/extract.d.ts +34 -0
  182. package/dist/runtime/mus/extract.d.ts.map +1 -0
  183. package/dist/runtime/mus/extract.js +243 -0
  184. package/dist/runtime/mus/extract.js.map +1 -0
  185. package/dist/runtime/mus/index.d.ts +4 -0
  186. package/dist/runtime/mus/index.d.ts.map +1 -0
  187. package/dist/runtime/mus/index.js +12 -0
  188. package/dist/runtime/mus/index.js.map +1 -0
  189. package/dist/runtime/mus/quickxplain.d.ts +10 -0
  190. package/dist/runtime/mus/quickxplain.d.ts.map +1 -0
  191. package/dist/runtime/mus/quickxplain.js +100 -0
  192. package/dist/runtime/mus/quickxplain.js.map +1 -0
  193. package/dist/runtime/mus/types.d.ts +59 -0
  194. package/dist/runtime/mus/types.d.ts.map +1 -0
  195. package/dist/runtime/mus/types.js +20 -0
  196. package/dist/runtime/mus/types.js.map +1 -0
  197. package/dist/solver/cdcl-v2-incremental/index.d.ts +3 -0
  198. package/dist/solver/cdcl-v2-incremental/index.d.ts.map +1 -0
  199. package/dist/solver/cdcl-v2-incremental/index.js +16 -0
  200. package/dist/solver/cdcl-v2-incremental/index.js.map +1 -0
  201. package/dist/solver/cdcl-v2-incremental/solver.d.ts +83 -0
  202. package/dist/solver/cdcl-v2-incremental/solver.d.ts.map +1 -0
  203. package/dist/solver/cdcl-v2-incremental/solver.js +727 -0
  204. package/dist/solver/cdcl-v2-incremental/solver.js.map +1 -0
  205. package/dist/solver/cdcl-v2-incremental/types.d.ts +47 -0
  206. package/dist/solver/cdcl-v2-incremental/types.d.ts.map +1 -0
  207. package/dist/solver/cdcl-v2-incremental/types.js +13 -0
  208. package/dist/solver/cdcl-v2-incremental/types.js.map +1 -0
  209. package/dist/tests/belief-revision/agm.test.d.ts +2 -0
  210. package/dist/tests/belief-revision/agm.test.d.ts.map +1 -0
  211. package/dist/tests/belief-revision/agm.test.js +173 -0
  212. package/dist/tests/belief-revision/agm.test.js.map +1 -0
  213. package/dist/tests/countermodel-min/minimize.test.d.ts +2 -0
  214. package/dist/tests/countermodel-min/minimize.test.d.ts.map +1 -0
  215. package/dist/tests/countermodel-min/minimize.test.js +241 -0
  216. package/dist/tests/countermodel-min/minimize.test.js.map +1 -0
  217. package/dist/tests/coverage-95/api-and-interpreter-e2e.test.d.ts +2 -0
  218. package/dist/tests/coverage-95/api-and-interpreter-e2e.test.d.ts.map +1 -0
  219. package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js +255 -0
  220. package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js.map +1 -0
  221. package/dist/tests/coverage-95/argumentation.test.d.ts +2 -0
  222. package/dist/tests/coverage-95/argumentation.test.d.ts.map +1 -0
  223. package/dist/tests/coverage-95/argumentation.test.js +105 -0
  224. package/dist/tests/coverage-95/argumentation.test.js.map +1 -0
  225. package/dist/tests/coverage-95/arithmetic.test.d.ts +2 -0
  226. package/dist/tests/coverage-95/arithmetic.test.d.ts.map +1 -0
  227. package/dist/tests/coverage-95/arithmetic.test.js +139 -0
  228. package/dist/tests/coverage-95/arithmetic.test.js.map +1 -0
  229. package/dist/tests/coverage-95/belnap.test.d.ts +2 -0
  230. package/dist/tests/coverage-95/belnap.test.d.ts.map +1 -0
  231. package/dist/tests/coverage-95/belnap.test.js +145 -0
  232. package/dist/tests/coverage-95/belnap.test.js.map +1 -0
  233. package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts +2 -0
  234. package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts.map +1 -0
  235. package/dist/tests/coverage-95/cdcl-v2-solver.test.js +61 -0
  236. package/dist/tests/coverage-95/cdcl-v2-solver.test.js.map +1 -0
  237. package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts +2 -0
  238. package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts.map +1 -0
  239. package/dist/tests/coverage-95/classical-propositional-direct.test.js +175 -0
  240. package/dist/tests/coverage-95/classical-propositional-direct.test.js.map +1 -0
  241. package/dist/tests/coverage-95/compat.test.d.ts +2 -0
  242. package/dist/tests/coverage-95/compat.test.d.ts.map +1 -0
  243. package/dist/tests/coverage-95/compat.test.js +82 -0
  244. package/dist/tests/coverage-95/compat.test.js.map +1 -0
  245. package/dist/tests/coverage-95/examples-runner.test.d.ts +2 -0
  246. package/dist/tests/coverage-95/examples-runner.test.d.ts.map +1 -0
  247. package/dist/tests/coverage-95/examples-runner.test.js +34 -0
  248. package/dist/tests/coverage-95/examples-runner.test.js.map +1 -0
  249. package/dist/tests/coverage-95/first-order.test.d.ts +2 -0
  250. package/dist/tests/coverage-95/first-order.test.d.ts.map +1 -0
  251. package/dist/tests/coverage-95/first-order.test.js +138 -0
  252. package/dist/tests/coverage-95/first-order.test.js.map +1 -0
  253. package/dist/tests/coverage-95/fol-prover.test.d.ts +2 -0
  254. package/dist/tests/coverage-95/fol-prover.test.d.ts.map +1 -0
  255. package/dist/tests/coverage-95/fol-prover.test.js +228 -0
  256. package/dist/tests/coverage-95/fol-prover.test.js.map +1 -0
  257. package/dist/tests/coverage-95/interpreter-commands.test.d.ts +2 -0
  258. package/dist/tests/coverage-95/interpreter-commands.test.d.ts.map +1 -0
  259. package/dist/tests/coverage-95/interpreter-commands.test.js +332 -0
  260. package/dist/tests/coverage-95/interpreter-commands.test.js.map +1 -0
  261. package/dist/tests/coverage-95/lsp-server.test.d.ts +2 -0
  262. package/dist/tests/coverage-95/lsp-server.test.d.ts.map +1 -0
  263. package/dist/tests/coverage-95/lsp-server.test.js +181 -0
  264. package/dist/tests/coverage-95/lsp-server.test.js.map +1 -0
  265. package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts +2 -0
  266. package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts.map +1 -0
  267. package/dist/tests/coverage-95/modal-tableau-profiles.test.js +157 -0
  268. package/dist/tests/coverage-95/modal-tableau-profiles.test.js.map +1 -0
  269. package/dist/tests/coverage-95/parallel-sat.test.d.ts +2 -0
  270. package/dist/tests/coverage-95/parallel-sat.test.d.ts.map +1 -0
  271. package/dist/tests/coverage-95/parallel-sat.test.js +42 -0
  272. package/dist/tests/coverage-95/parallel-sat.test.js.map +1 -0
  273. package/dist/tests/coverage-95/parser-extra.test.d.ts +2 -0
  274. package/dist/tests/coverage-95/parser-extra.test.d.ts.map +1 -0
  275. package/dist/tests/coverage-95/parser-extra.test.js +210 -0
  276. package/dist/tests/coverage-95/parser-extra.test.js.map +1 -0
  277. package/dist/tests/coverage-95/propositional-utilities.test.d.ts +2 -0
  278. package/dist/tests/coverage-95/propositional-utilities.test.d.ts.map +1 -0
  279. package/dist/tests/coverage-95/propositional-utilities.test.js +281 -0
  280. package/dist/tests/coverage-95/propositional-utilities.test.js.map +1 -0
  281. package/dist/tests/coverage-95/protocol-handler.test.d.ts +2 -0
  282. package/dist/tests/coverage-95/protocol-handler.test.d.ts.map +1 -0
  283. package/dist/tests/coverage-95/protocol-handler.test.js +275 -0
  284. package/dist/tests/coverage-95/protocol-handler.test.js.map +1 -0
  285. package/dist/tests/coverage-95/smt-mock-backend.test.d.ts +2 -0
  286. package/dist/tests/coverage-95/smt-mock-backend.test.d.ts.map +1 -0
  287. package/dist/tests/coverage-95/smt-mock-backend.test.js +201 -0
  288. package/dist/tests/coverage-95/smt-mock-backend.test.js.map +1 -0
  289. package/dist/tests/coverage-95/smt-serializer.test.d.ts +2 -0
  290. package/dist/tests/coverage-95/smt-serializer.test.d.ts.map +1 -0
  291. package/dist/tests/coverage-95/smt-serializer.test.js +143 -0
  292. package/dist/tests/coverage-95/smt-serializer.test.js.map +1 -0
  293. package/dist/tests/coverage-95/smt-subprocess.test.d.ts +2 -0
  294. package/dist/tests/coverage-95/smt-subprocess.test.d.ts.map +1 -0
  295. package/dist/tests/coverage-95/smt-subprocess.test.js +96 -0
  296. package/dist/tests/coverage-95/smt-subprocess.test.js.map +1 -0
  297. package/dist/tests/coverage-95/tableau-engine.test.d.ts +2 -0
  298. package/dist/tests/coverage-95/tableau-engine.test.d.ts.map +1 -0
  299. package/dist/tests/coverage-95/tableau-engine.test.js +125 -0
  300. package/dist/tests/coverage-95/tableau-engine.test.js.map +1 -0
  301. package/dist/tests/coverage-95/temporal-ltl.test.d.ts +2 -0
  302. package/dist/tests/coverage-95/temporal-ltl.test.d.ts.map +1 -0
  303. package/dist/tests/coverage-95/temporal-ltl.test.js +94 -0
  304. package/dist/tests/coverage-95/temporal-ltl.test.js.map +1 -0
  305. package/dist/tests/coverage-95/typecheck-checker.test.d.ts +2 -0
  306. package/dist/tests/coverage-95/typecheck-checker.test.d.ts.map +1 -0
  307. package/dist/tests/coverage-95/typecheck-checker.test.js +191 -0
  308. package/dist/tests/coverage-95/typecheck-checker.test.js.map +1 -0
  309. package/dist/tests/coverage-95/undecidability-detector.test.d.ts +2 -0
  310. package/dist/tests/coverage-95/undecidability-detector.test.d.ts.map +1 -0
  311. package/dist/tests/coverage-95/undecidability-detector.test.js +149 -0
  312. package/dist/tests/coverage-95/undecidability-detector.test.js.map +1 -0
  313. package/dist/tests/coverage-95/visitor.test.d.ts +2 -0
  314. package/dist/tests/coverage-95/visitor.test.d.ts.map +1 -0
  315. package/dist/tests/coverage-95/visitor.test.js +140 -0
  316. package/dist/tests/coverage-95/visitor.test.js.map +1 -0
  317. package/dist/tests/ctl/check.test.d.ts +2 -0
  318. package/dist/tests/ctl/check.test.d.ts.map +1 -0
  319. package/dist/tests/ctl/check.test.js +337 -0
  320. package/dist/tests/ctl/check.test.js.map +1 -0
  321. package/dist/tests/curry-howard/infer.test.d.ts +2 -0
  322. package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
  323. package/dist/tests/curry-howard/infer.test.js +93 -0
  324. package/dist/tests/curry-howard/infer.test.js.map +1 -0
  325. package/dist/tests/curry-howard/proof.test.d.ts +2 -0
  326. package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
  327. package/dist/tests/curry-howard/proof.test.js +105 -0
  328. package/dist/tests/curry-howard/proof.test.js.map +1 -0
  329. package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
  330. package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
  331. package/dist/tests/curry-howard/reduce.test.js +109 -0
  332. package/dist/tests/curry-howard/reduce.test.js.map +1 -0
  333. package/dist/tests/default-logic/extensions.test.d.ts +2 -0
  334. package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
  335. package/dist/tests/default-logic/extensions.test.js +323 -0
  336. package/dist/tests/default-logic/extensions.test.js.map +1 -0
  337. package/dist/tests/description-logic/alc.test.d.ts +2 -0
  338. package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
  339. package/dist/tests/description-logic/alc.test.js +253 -0
  340. package/dist/tests/description-logic/alc.test.js.map +1 -0
  341. package/dist/tests/fol-prover-equality/prove.test.d.ts +2 -0
  342. package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
  343. package/dist/tests/fol-prover-equality/prove.test.js +179 -0
  344. package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
  345. package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
  346. package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
  347. package/dist/tests/hybrid-logic/semantics.test.js +169 -0
  348. package/dist/tests/hybrid-logic/semantics.test.js.map +1 -0
  349. package/dist/tests/ltl-sat/sat.test.d.ts +2 -0
  350. package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
  351. package/dist/tests/ltl-sat/sat.test.js +160 -0
  352. package/dist/tests/ltl-sat/sat.test.js.map +1 -0
  353. package/dist/tests/mus/extract.test.d.ts +2 -0
  354. package/dist/tests/mus/extract.test.d.ts.map +1 -0
  355. package/dist/tests/mus/extract.test.js +352 -0
  356. package/dist/tests/mus/extract.test.js.map +1 -0
  357. package/dist/tests/sat-v2-incremental/basic.test.d.ts +2 -0
  358. package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
  359. package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
  360. package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
  361. package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
  362. package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
  363. package/dist/tests/sequent-g3/prover.test.js +205 -0
  364. package/dist/tests/sequent-g3/prover.test.js.map +1 -0
  365. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts +2 -0
  366. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts.map +1 -0
  367. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js +200 -0
  368. package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js.map +1 -0
  369. package/dist/text-layer/v2/index.d.ts +2 -0
  370. package/dist/text-layer/v2/index.d.ts.map +1 -1
  371. package/dist/text-layer/v2/index.js +7 -1
  372. package/dist/text-layer/v2/index.js.map +1 -1
  373. package/dist/text-layer/v2/mdx-bridge/diff.d.ts +13 -0
  374. package/dist/text-layer/v2/mdx-bridge/diff.d.ts.map +1 -0
  375. package/dist/text-layer/v2/mdx-bridge/diff.js +69 -0
  376. package/dist/text-layer/v2/mdx-bridge/diff.js.map +1 -0
  377. package/dist/text-layer/v2/mdx-bridge/index.d.ts +14 -0
  378. package/dist/text-layer/v2/mdx-bridge/index.d.ts.map +1 -0
  379. package/dist/text-layer/v2/mdx-bridge/index.js +21 -0
  380. package/dist/text-layer/v2/mdx-bridge/index.js.map +1 -0
  381. package/dist/text-layer/v2/mdx-bridge/parser.d.ts +33 -0
  382. package/dist/text-layer/v2/mdx-bridge/parser.d.ts.map +1 -0
  383. package/dist/text-layer/v2/mdx-bridge/parser.js +192 -0
  384. package/dist/text-layer/v2/mdx-bridge/parser.js.map +1 -0
  385. package/dist/text-layer/v2/mdx-bridge/serializer.d.ts +17 -0
  386. package/dist/text-layer/v2/mdx-bridge/serializer.d.ts.map +1 -0
  387. package/dist/text-layer/v2/mdx-bridge/serializer.js +69 -0
  388. package/dist/text-layer/v2/mdx-bridge/serializer.js.map +1 -0
  389. package/dist/text-layer/v2/mdx-bridge/types.d.ts +53 -0
  390. package/dist/text-layer/v2/mdx-bridge/types.d.ts.map +1 -0
  391. package/dist/text-layer/v2/mdx-bridge/types.js +19 -0
  392. package/dist/text-layer/v2/mdx-bridge/types.js.map +1 -0
  393. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Hybrid Logic — API pública del fragmento H(@, ↓, ∃)
4
+ // ============================================================
5
+ // Hybrid logic = modal logic + nominales (i, j, k) + @-operator +
6
+ // ↓-binder + ∃-world quantifier. Permite hablar internamente de
7
+ // mundos identificables — útil para razonar sobre identidad de
8
+ // estados en sistemas Kripke (procesos, módulos epistémicos).
9
+ //
10
+ // Este módulo es independiente del ProfileRegistry textual (igual
11
+ // que description-logic): provee la semántica relacional y un
12
+ // decisor de satisfacibilidad por búsqueda finita acotada.
13
+ // ============================================================
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.isSatisfiable = exports.isSatisfiableInFrame = exports.satisfies = exports.formulaToString = exports.existsWorld = exports.down = exports.at = exports.diamond = exports.box = exports.implies = exports.or = exports.and = exports.not = exports.nominal = exports.atom = void 0;
16
+ var types_1 = require("./types");
17
+ Object.defineProperty(exports, "atom", { enumerable: true, get: function () { return types_1.atom; } });
18
+ Object.defineProperty(exports, "nominal", { enumerable: true, get: function () { return types_1.nominal; } });
19
+ Object.defineProperty(exports, "not", { enumerable: true, get: function () { return types_1.not; } });
20
+ Object.defineProperty(exports, "and", { enumerable: true, get: function () { return types_1.and; } });
21
+ Object.defineProperty(exports, "or", { enumerable: true, get: function () { return types_1.or; } });
22
+ Object.defineProperty(exports, "implies", { enumerable: true, get: function () { return types_1.implies; } });
23
+ Object.defineProperty(exports, "box", { enumerable: true, get: function () { return types_1.box; } });
24
+ Object.defineProperty(exports, "diamond", { enumerable: true, get: function () { return types_1.diamond; } });
25
+ Object.defineProperty(exports, "at", { enumerable: true, get: function () { return types_1.at; } });
26
+ Object.defineProperty(exports, "down", { enumerable: true, get: function () { return types_1.down; } });
27
+ Object.defineProperty(exports, "existsWorld", { enumerable: true, get: function () { return types_1.existsWorld; } });
28
+ Object.defineProperty(exports, "formulaToString", { enumerable: true, get: function () { return types_1.formulaToString; } });
29
+ var semantics_1 = require("./semantics");
30
+ Object.defineProperty(exports, "satisfies", { enumerable: true, get: function () { return semantics_1.satisfies; } });
31
+ Object.defineProperty(exports, "isSatisfiableInFrame", { enumerable: true, get: function () { return semantics_1.isSatisfiableInFrame; } });
32
+ var sat_1 = require("./sat");
33
+ Object.defineProperty(exports, "isSatisfiable", { enumerable: true, get: function () { return sat_1.isSatisfiable; } });
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/hybrid-logic/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAC/D,kEAAkE;AAClE,gEAAgE;AAChE,+DAA+D;AAC/D,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,8DAA8D;AAC9D,2DAA2D;AAC3D,+DAA+D;;;AAI/D,iCAaiB;AAZf,6FAAA,IAAI,OAAA;AACJ,gGAAA,OAAO,OAAA;AACP,4FAAA,GAAG,OAAA;AACH,4FAAA,GAAG,OAAA;AACH,2FAAA,EAAE,OAAA;AACF,gGAAA,OAAO,OAAA;AACP,4FAAA,GAAG,OAAA;AACH,gGAAA,OAAO,OAAA;AACP,2FAAA,EAAE,OAAA;AACF,6FAAA,IAAI,OAAA;AACJ,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AAGjB,yCAA8D;AAArD,sGAAA,SAAS,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAExC,6BAAsC;AAA7B,oGAAA,aAAa,OAAA"}
@@ -0,0 +1,15 @@
1
+ import type { HybridFormula, HybridFrame } from './types';
2
+ /**
3
+ * Búsqueda exhaustiva de modelo en frames de tamaño ≤ `maxWorlds`.
4
+ *
5
+ * Para una explosión combinatoria controlada, sólo intentamos
6
+ * tamaños desde 1 hasta `maxWorlds`. Es completo dentro de ese rango.
7
+ */
8
+ export declare function isSatisfiable(phi: HybridFormula, options?: {
9
+ maxWorlds?: number;
10
+ }): {
11
+ sat: boolean;
12
+ frame?: HybridFrame;
13
+ world?: string;
14
+ };
15
+ //# sourceMappingURL=sat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../../../src/profiles/hybrid-logic/sat.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAwG1D;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBvD"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Hybrid Logic — Decisor de satisfacibilidad (búsqueda acotada)
4
+ // ============================================================
5
+ // La satisfacibilidad del fragmento H(@, ↓, ∃) es indecidible en
6
+ // general (Areces, Blackburn & Marx 1999). Aquí implementamos un
7
+ // búsqueda finita acotada: enumeramos frames con ≤ N mundos y
8
+ // probamos cada uno. Es completo para fórmulas con modelo finito
9
+ // pequeño y robusto para los tests del perfil.
10
+ //
11
+ // La cota se elige en función del tamaño sintáctico de φ:
12
+ // bound = max(2, atoms + nominals + 2)
13
+ // suficiente para todas las patologías clásicas (loops, modelos
14
+ // con varios mundos para ∃, etc.).
15
+ // ============================================================
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.isSatisfiable = isSatisfiable;
18
+ const semantics_1 = require("./semantics");
19
+ /** Recolecta átomos y nominales libres (los ligados por ↓/∃ no cuentan). */
20
+ function collectSyntax(phi) {
21
+ const atoms = new Set();
22
+ const free = new Set();
23
+ const visit = (node, bound) => {
24
+ switch (node.kind) {
25
+ case 'atom':
26
+ atoms.add(node.name);
27
+ return;
28
+ case 'nominal':
29
+ if (!bound.has(node.name))
30
+ free.add(node.name);
31
+ return;
32
+ case 'not':
33
+ visit(node.arg, bound);
34
+ return;
35
+ case 'and':
36
+ case 'or':
37
+ for (const sub of node.args)
38
+ visit(sub, bound);
39
+ return;
40
+ case 'implies':
41
+ visit(node.left, bound);
42
+ visit(node.right, bound);
43
+ return;
44
+ case 'box':
45
+ case 'diamond':
46
+ visit(node.arg, bound);
47
+ return;
48
+ case 'at':
49
+ if (!bound.has(node.nominal))
50
+ free.add(node.nominal);
51
+ visit(node.arg, bound);
52
+ return;
53
+ case 'down':
54
+ case 'exists-world': {
55
+ const inner = new Set(bound);
56
+ inner.add(node.bind);
57
+ visit(node.arg, inner);
58
+ return;
59
+ }
60
+ }
61
+ };
62
+ visit(phi, new Set());
63
+ return { atoms: [...atoms], freeNominals: [...free] };
64
+ }
65
+ /** Genera todos los subconjuntos de `items` como Set<string>. */
66
+ function* powerset(items) {
67
+ const n = items.length;
68
+ for (let mask = 0; mask < 1 << n; mask++) {
69
+ const out = [];
70
+ for (let i = 0; i < n; i++) {
71
+ if (mask & (1 << i))
72
+ out.push(items[i]);
73
+ }
74
+ yield out;
75
+ }
76
+ }
77
+ /** Genera todas las asignaciones de los nominales libres a worlds. */
78
+ function* nominalAssignments(noms, worlds) {
79
+ if (noms.length === 0) {
80
+ yield {};
81
+ return;
82
+ }
83
+ const [head, ...rest] = noms;
84
+ for (const w of worlds) {
85
+ for (const sub of nominalAssignments(rest, worlds)) {
86
+ yield { ...sub, [head]: w };
87
+ }
88
+ }
89
+ }
90
+ /** Genera todas las valuaciones posibles sobre `atoms` y `worlds`. */
91
+ function* valuations(atoms, worlds) {
92
+ if (atoms.length === 0) {
93
+ yield {};
94
+ return;
95
+ }
96
+ const [head, ...rest] = atoms;
97
+ for (const subset of powerset(worlds)) {
98
+ for (const sub of valuations(rest, worlds)) {
99
+ yield { ...sub, [head]: new Set(subset) };
100
+ }
101
+ }
102
+ }
103
+ /** Genera todas las relaciones binarias sobre `worlds`. */
104
+ function* accessibilities(worlds) {
105
+ const pairs = [];
106
+ for (const u of worlds) {
107
+ for (const v of worlds)
108
+ pairs.push([u, v]);
109
+ }
110
+ for (const subset of powerset(pairs)) {
111
+ yield subset;
112
+ }
113
+ }
114
+ /**
115
+ * Búsqueda exhaustiva de modelo en frames de tamaño ≤ `maxWorlds`.
116
+ *
117
+ * Para una explosión combinatoria controlada, sólo intentamos
118
+ * tamaños desde 1 hasta `maxWorlds`. Es completo dentro de ese rango.
119
+ */
120
+ function isSatisfiable(phi, options = {}) {
121
+ const { atoms, freeNominals } = collectSyntax(phi);
122
+ const defaultBound = Math.max(2, atoms.length + freeNominals.length + 2);
123
+ const maxWorlds = options.maxWorlds ?? defaultBound;
124
+ for (let size = 1; size <= maxWorlds; size++) {
125
+ const worlds = [];
126
+ for (let i = 0; i < size; i++)
127
+ worlds.push(`w${i}`);
128
+ for (const accessibility of accessibilities(worlds)) {
129
+ for (const nominals of nominalAssignments(freeNominals, worlds)) {
130
+ for (const valuation of valuations(atoms, worlds)) {
131
+ const frame = { worlds, accessibility, nominals, valuation };
132
+ const w = (0, semantics_1.isSatisfiableInFrame)(frame, phi);
133
+ if (w !== undefined) {
134
+ return { sat: true, frame, world: w };
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ return { sat: false };
141
+ }
142
+ //# sourceMappingURL=sat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sat.js","sourceRoot":"","sources":["../../../src/profiles/hybrid-logic/sat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { HybridFormula, HybridFrame } from './types';
2
+ /**
3
+ * Verdad relativa a un mundo.
4
+ *
5
+ * - `atom` consulta la valuación.
6
+ * - `nominal` es verdadero en w sii la asignación combinada lo manda a w.
7
+ * - `box`/`diamond` cuantifican sobre R-sucesores.
8
+ * - `@i φ` saltamos al mundo nombrado por i (ignora el mundo actual).
9
+ * - `↓i. φ` extiende env con i := w y evalúa φ en w.
10
+ * - `∃i. φ` busca algún mundo w' tal que con i := w' la fórmula
11
+ * se satisfaga en el mundo actual (¡el "punto de evaluación" no
12
+ * cambia con ∃; sólo se introduce un nombre nuevo).
13
+ */
14
+ export declare function satisfies(frame: HybridFrame, world: string, phi: HybridFormula, env?: Record<string, string>): boolean;
15
+ /**
16
+ * Verdad global: ∃w ∈ W. M, w ⊨ φ.
17
+ * Útil para chequear satisfacibilidad sobre un frame concreto.
18
+ */
19
+ export declare function isSatisfiableInFrame(frame: HybridFrame, phi: HybridFormula): string | undefined;
20
+ //# sourceMappingURL=semantics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics.d.ts","sourceRoot":"","sources":["../../../src/profiles/hybrid-logic/semantics.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAS1D;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,aAAa,EAClB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAC/B,OAAO,CAiET;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAK/F"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Hybrid Logic — Semántica relacional con asignación de nominales
4
+ // ============================================================
5
+ // `satisfies(F, w, φ, env)` decide si M, w ⊨ φ donde
6
+ // M = (W, R, V, g) — frame Kripke + asignación g de nominales,
7
+ // env extiende g con los binds introducidos por ↓ y ∃.
8
+ //
9
+ // La distinción entre `nominals` (en el frame) y `env` (de evaluación)
10
+ // es estándar en la presentación de Blackburn et al.: los nominales
11
+ // libres se resuelven con la asignación global; los ligados por ↓/∃
12
+ // extienden el entorno localmente.
13
+ // ============================================================
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.satisfies = satisfies;
16
+ exports.isSatisfiableInFrame = isSatisfiableInFrame;
17
+ /** Resuelve un nombre de nominal/variable de mundo. env tiene prioridad. */
18
+ function lookup(name, frame, env) {
19
+ if (Object.prototype.hasOwnProperty.call(env, name))
20
+ return env[name];
21
+ if (Object.prototype.hasOwnProperty.call(frame.nominals, name))
22
+ return frame.nominals[name];
23
+ return undefined;
24
+ }
25
+ /**
26
+ * Verdad relativa a un mundo.
27
+ *
28
+ * - `atom` consulta la valuación.
29
+ * - `nominal` es verdadero en w sii la asignación combinada lo manda a w.
30
+ * - `box`/`diamond` cuantifican sobre R-sucesores.
31
+ * - `@i φ` saltamos al mundo nombrado por i (ignora el mundo actual).
32
+ * - `↓i. φ` extiende env con i := w y evalúa φ en w.
33
+ * - `∃i. φ` busca algún mundo w' tal que con i := w' la fórmula
34
+ * se satisfaga en el mundo actual (¡el "punto de evaluación" no
35
+ * cambia con ∃; sólo se introduce un nombre nuevo).
36
+ */
37
+ function satisfies(frame, world, phi, env = {}) {
38
+ switch (phi.kind) {
39
+ case 'atom': {
40
+ const set = frame.valuation[phi.name];
41
+ return set !== undefined && set.has(world);
42
+ }
43
+ case 'nominal': {
44
+ const target = lookup(phi.name, frame, env);
45
+ if (target === undefined) {
46
+ throw new Error(`Nominal no asignado: ${phi.name}`);
47
+ }
48
+ return target === world;
49
+ }
50
+ case 'not':
51
+ return !satisfies(frame, world, phi.arg, env);
52
+ case 'and':
53
+ return phi.args.every((sub) => satisfies(frame, world, sub, env));
54
+ case 'or':
55
+ return phi.args.some((sub) => satisfies(frame, world, sub, env));
56
+ case 'implies':
57
+ return !satisfies(frame, world, phi.left, env) || satisfies(frame, world, phi.right, env);
58
+ case 'box': {
59
+ for (const [u, v] of frame.accessibility) {
60
+ if (u === world && !satisfies(frame, v, phi.arg, env))
61
+ return false;
62
+ }
63
+ return true;
64
+ }
65
+ case 'diamond': {
66
+ for (const [u, v] of frame.accessibility) {
67
+ if (u === world && satisfies(frame, v, phi.arg, env))
68
+ return true;
69
+ }
70
+ return false;
71
+ }
72
+ case 'at': {
73
+ const target = lookup(phi.nominal, frame, env);
74
+ if (target === undefined) {
75
+ throw new Error(`@-operator sobre nominal no asignado: ${phi.nominal}`);
76
+ }
77
+ return satisfies(frame, target, phi.arg, env);
78
+ }
79
+ case 'down': {
80
+ // ↓i. φ evaluado en w: extiende env con i := w y evalúa φ en w.
81
+ const next = { ...env, [phi.bind]: world };
82
+ return satisfies(frame, world, phi.arg, next);
83
+ }
84
+ case 'exists-world': {
85
+ // ∃i. φ: existe un mundo w' tal que con i := w' la fórmula se
86
+ // satisface en el punto de evaluación actual.
87
+ for (const w2 of frame.worlds) {
88
+ const next = { ...env, [phi.bind]: w2 };
89
+ if (satisfies(frame, world, phi.arg, next))
90
+ return true;
91
+ }
92
+ return false;
93
+ }
94
+ }
95
+ }
96
+ /**
97
+ * Verdad global: ∃w ∈ W. M, w ⊨ φ.
98
+ * Útil para chequear satisfacibilidad sobre un frame concreto.
99
+ */
100
+ function isSatisfiableInFrame(frame, phi) {
101
+ for (const w of frame.worlds) {
102
+ if (satisfies(frame, w, phi, {}))
103
+ return w;
104
+ }
105
+ return undefined;
106
+ }
107
+ //# sourceMappingURL=semantics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics.js","sourceRoot":"","sources":["../../../src/profiles/hybrid-logic/semantics.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qEAAqE;AACrE,+DAA+D;AAC/D,qDAAqD;AACrD,mEAAmE;AACnE,yDAAyD;AACzD,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,oEAAoE;AACpE,mCAAmC;AACnC,+DAA+D;;AAuB/D,8BAsEC;AAMD,oDAKC;AApGD,4EAA4E;AAC5E,SAAS,MAAM,CAAC,IAAY,EAAE,KAAkB,EAAE,GAA2B;IAC3E,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CACvB,KAAkB,EAClB,KAAa,EACb,GAAkB,EAClB,MAA8B,EAAE;IAEhC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,MAAM,KAAK,KAAK,CAAC;QAC1B,CAAC;QAED,KAAK,KAAK;YACR,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhD,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpE,KAAK,IAAI;YACP,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEnE,KAAK,SAAS;YACZ,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5F,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;YACtE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;YACpE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,gEAAgE;YAChE,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,8DAA8D;YAC9D,8CAA8C;YAC9C,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBACxC,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC1D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,KAAkB,EAAE,GAAkB;IACzE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,78 @@
1
+ /** Constructores sintácticos del fragmento. */
2
+ export type HybridFormulaKind = 'atom' | 'nominal' | 'not' | 'and' | 'or' | 'implies' | 'box' | 'diamond' | 'at' | 'down' | 'exists-world';
3
+ /**
4
+ * AST de fórmulas híbridas.
5
+ *
6
+ * Las "variables de mundo" producidas por ↓ y ∃ comparten espacio de
7
+ * nombres con los nominales libres; ambas se resuelven al mismo
8
+ * mundo del frame en tiempo de evaluación (vía `env`).
9
+ */
10
+ export type HybridFormula = {
11
+ kind: 'atom';
12
+ name: string;
13
+ } | {
14
+ kind: 'nominal';
15
+ name: string;
16
+ } | {
17
+ kind: 'not';
18
+ arg: HybridFormula;
19
+ } | {
20
+ kind: 'and';
21
+ args: HybridFormula[];
22
+ } | {
23
+ kind: 'or';
24
+ args: HybridFormula[];
25
+ } | {
26
+ kind: 'implies';
27
+ left: HybridFormula;
28
+ right: HybridFormula;
29
+ } | {
30
+ kind: 'box';
31
+ arg: HybridFormula;
32
+ } | {
33
+ kind: 'diamond';
34
+ arg: HybridFormula;
35
+ } | {
36
+ kind: 'at';
37
+ nominal: string;
38
+ arg: HybridFormula;
39
+ } | {
40
+ kind: 'down';
41
+ bind: string;
42
+ arg: HybridFormula;
43
+ } | {
44
+ kind: 'exists-world';
45
+ bind: string;
46
+ arg: HybridFormula;
47
+ };
48
+ /**
49
+ * Modelo de Kripke enriquecido con asignación de nominales.
50
+ *
51
+ * - `worlds` : identificadores de los mundos.
52
+ * - `accessibility` : relación R ⊆ W × W (pares ordenados).
53
+ * - `nominals` : nominal-name → world-id (función parcial total
54
+ * sobre los nominales libres usados por la
55
+ * fórmula que se evalúa).
56
+ * - `valuation` : atom-name → set de mundos donde el átomo es
57
+ * verdadero.
58
+ */
59
+ export interface HybridFrame {
60
+ worlds: string[];
61
+ accessibility: Array<[string, string]>;
62
+ nominals: Record<string, string>;
63
+ valuation: Record<string, Set<string>>;
64
+ }
65
+ export declare function atom(name: string): HybridFormula;
66
+ export declare function nominal(name: string): HybridFormula;
67
+ export declare function not(arg: HybridFormula): HybridFormula;
68
+ export declare function and(...args: HybridFormula[]): HybridFormula;
69
+ export declare function or(...args: HybridFormula[]): HybridFormula;
70
+ export declare function implies(left: HybridFormula, right: HybridFormula): HybridFormula;
71
+ export declare function box(arg: HybridFormula): HybridFormula;
72
+ export declare function diamond(arg: HybridFormula): HybridFormula;
73
+ export declare function at(nominalName: string, arg: HybridFormula): HybridFormula;
74
+ export declare function down(bind: string, arg: HybridFormula): HybridFormula;
75
+ export declare function existsWorld(bind: string, arg: HybridFormula): HybridFormula;
76
+ /** Renderiza una fórmula híbrida en notación textual estándar. */
77
+ export declare function formulaToString(phi: HybridFormula): string;
78
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/profiles/hybrid-logic/types.ts"],"names":[],"mappings":"AAaA,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,SAAS,GACT,KAAK,GACL,KAAK,GACL,IAAI,GACJ,SAAS,GACT,KAAK,GACL,SAAS,GACT,IAAI,GACJ,MAAM,GACN,cAAc,CAAC;AAEnB;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,CAAC;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC;AAID,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAEhD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAEnD;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAErD;AAED,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,aAAa,EAAE,GAAG,aAAa,CAI3D;AAED,wBAAgB,EAAE,CAAC,GAAG,IAAI,EAAE,aAAa,EAAE,GAAG,aAAa,CAI1D;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,CAEhF;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAErD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,CAEzD;AAED,wBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CAEzE;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CAEpE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,aAAa,CAE3E;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAyB1D"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Hybrid Logic — Tipos del fragmento H(@, ↓, ∃)
4
+ // ============================================================
5
+ // Hybrid logic extiende la modal estándar con:
6
+ // - nominales i, j, k ... — proposiciones que denotan UN único
7
+ // mundo del frame.
8
+ // - @i φ — "φ se satisface en el mundo nombrado por i".
9
+ // - ↓i. φ — bind el mundo actual como nominal i en φ.
10
+ // - ∃i. φ — existe un mundo i tal que φ se satisface allí.
11
+ //
12
+ // Referencias: Blackburn, Areces & ten Cate (2007), "Hybrid Logic".
13
+ // ============================================================
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.atom = atom;
16
+ exports.nominal = nominal;
17
+ exports.not = not;
18
+ exports.and = and;
19
+ exports.or = or;
20
+ exports.implies = implies;
21
+ exports.box = box;
22
+ exports.diamond = diamond;
23
+ exports.at = at;
24
+ exports.down = down;
25
+ exports.existsWorld = existsWorld;
26
+ exports.formulaToString = formulaToString;
27
+ // ── Constructores de conveniencia ──────────────────────────
28
+ function atom(name) {
29
+ return { kind: 'atom', name };
30
+ }
31
+ function nominal(name) {
32
+ return { kind: 'nominal', name };
33
+ }
34
+ function not(arg) {
35
+ return { kind: 'not', arg };
36
+ }
37
+ function and(...args) {
38
+ if (args.length === 0)
39
+ throw new Error('and: aridad >= 1 requerida');
40
+ if (args.length === 1)
41
+ return args[0];
42
+ return { kind: 'and', args };
43
+ }
44
+ function or(...args) {
45
+ if (args.length === 0)
46
+ throw new Error('or: aridad >= 1 requerida');
47
+ if (args.length === 1)
48
+ return args[0];
49
+ return { kind: 'or', args };
50
+ }
51
+ function implies(left, right) {
52
+ return { kind: 'implies', left, right };
53
+ }
54
+ function box(arg) {
55
+ return { kind: 'box', arg };
56
+ }
57
+ function diamond(arg) {
58
+ return { kind: 'diamond', arg };
59
+ }
60
+ function at(nominalName, arg) {
61
+ return { kind: 'at', nominal: nominalName, arg };
62
+ }
63
+ function down(bind, arg) {
64
+ return { kind: 'down', bind, arg };
65
+ }
66
+ function existsWorld(bind, arg) {
67
+ return { kind: 'exists-world', bind, arg };
68
+ }
69
+ /** Renderiza una fórmula híbrida en notación textual estándar. */
70
+ function formulaToString(phi) {
71
+ switch (phi.kind) {
72
+ case 'atom':
73
+ return phi.name;
74
+ case 'nominal':
75
+ return phi.name;
76
+ case 'not':
77
+ return `¬${wrap(phi.arg)}`;
78
+ case 'and':
79
+ return `(${phi.args.map(formulaToString).join(' ∧ ')})`;
80
+ case 'or':
81
+ return `(${phi.args.map(formulaToString).join(' ∨ ')})`;
82
+ case 'implies':
83
+ return `(${formulaToString(phi.left)} → ${formulaToString(phi.right)})`;
84
+ case 'box':
85
+ return `□${wrap(phi.arg)}`;
86
+ case 'diamond':
87
+ return `◇${wrap(phi.arg)}`;
88
+ case 'at':
89
+ return `@${phi.nominal} ${wrap(phi.arg)}`;
90
+ case 'down':
91
+ return `↓${phi.bind}. ${wrap(phi.arg)}`;
92
+ case 'exists-world':
93
+ return `∃${phi.bind}. ${wrap(phi.arg)}`;
94
+ }
95
+ }
96
+ function wrap(phi) {
97
+ if (phi.kind === 'atom' ||
98
+ phi.kind === 'nominal' ||
99
+ phi.kind === 'not' ||
100
+ phi.kind === 'box' ||
101
+ phi.kind === 'diamond' ||
102
+ phi.kind === 'at') {
103
+ return formulaToString(phi);
104
+ }
105
+ return `(${formulaToString(phi)})`;
106
+ }
107
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/hybrid-logic/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export { isSatisfiable, isValid, toBuchi } from './sat';
3
+ export { toNNF, closure, enumerateAtoms, transitions } from './tableau';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/index.ts"],"names":[],"mappings":"AAaA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST LTL-SAT — Procedimiento de decisión LTL vía tableau
4
+ // ============================================================
5
+ // API pública:
6
+ // isSatisfiable(φ): { sat, witness? } — SAT explícito con lazo
7
+ // isValid(φ): boolean — ¬sat(¬φ)
8
+ // toBuchi(φ): { states, accepting } — estimación de tamaño
9
+ //
10
+ // Operadores soportados: atom, ¬, ∧, ∨, X, F, G, U, R. El operador
11
+ // derivado W (weak until) está disponible vía `weakUntil(φ,ψ)` y se
12
+ // expande a `(φ U ψ) ∨ G φ` en la entrada.
13
+ // ============================================================
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.transitions = exports.enumerateAtoms = exports.closure = exports.toNNF = exports.toBuchi = exports.isValid = exports.isSatisfiable = void 0;
30
+ __exportStar(require("./types"), exports);
31
+ var sat_1 = require("./sat");
32
+ Object.defineProperty(exports, "isSatisfiable", { enumerable: true, get: function () { return sat_1.isSatisfiable; } });
33
+ Object.defineProperty(exports, "isValid", { enumerable: true, get: function () { return sat_1.isValid; } });
34
+ Object.defineProperty(exports, "toBuchi", { enumerable: true, get: function () { return sat_1.toBuchi; } });
35
+ var tableau_1 = require("./tableau");
36
+ Object.defineProperty(exports, "toNNF", { enumerable: true, get: function () { return tableau_1.toNNF; } });
37
+ Object.defineProperty(exports, "closure", { enumerable: true, get: function () { return tableau_1.closure; } });
38
+ Object.defineProperty(exports, "enumerateAtoms", { enumerable: true, get: function () { return tableau_1.enumerateAtoms; } });
39
+ Object.defineProperty(exports, "transitions", { enumerable: true, get: function () { return tableau_1.transitions; } });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAC/D,eAAe;AACf,mEAAmE;AACnE,qDAAqD;AACrD,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,2CAA2C;AAC3C,+DAA+D;;;;;;;;;;;;;;;;;AAE/D,0CAAwB;AACxB,6BAAwD;AAA/C,oGAAA,aAAa,OAAA;AAAE,8FAAA,OAAO,OAAA;AAAE,8FAAA,OAAO,OAAA;AACxC,qCAAwE;AAA/D,gGAAA,KAAK,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,sGAAA,WAAW,OAAA"}
@@ -0,0 +1,8 @@
1
+ import { LTLFormula, SatResult } from './types';
2
+ export declare function isSatisfiable(phi: LTLFormula): SatResult;
3
+ export declare function isValid(phi: LTLFormula): boolean;
4
+ export declare function toBuchi(phi: LTLFormula): {
5
+ states: number;
6
+ accepting: number;
7
+ };
8
+ //# sourceMappingURL=sat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/sat.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAc,UAAU,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAsG1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CASxD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAGhD;AAKD,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAO9E"}