@stevenvo780/st-lang 4.14.0 → 4.15.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 (602) hide show
  1. package/README.md +6 -6
  2. package/dist/ast/nodes.d.ts +50 -0
  3. package/dist/ast/nodes.d.ts.map +1 -1
  4. package/dist/format/stnb/__tests__/executor.test.d.ts +2 -0
  5. package/dist/format/stnb/__tests__/executor.test.d.ts.map +1 -0
  6. package/dist/format/stnb/__tests__/executor.test.js +140 -0
  7. package/dist/format/stnb/__tests__/executor.test.js.map +1 -0
  8. package/dist/format/stnb/__tests__/parser.test.d.ts +2 -0
  9. package/dist/format/stnb/__tests__/parser.test.d.ts.map +1 -0
  10. package/dist/format/stnb/__tests__/parser.test.js +119 -0
  11. package/dist/format/stnb/__tests__/parser.test.js.map +1 -0
  12. package/dist/format/stnb/__tests__/renderer.test.d.ts +2 -0
  13. package/dist/format/stnb/__tests__/renderer.test.d.ts.map +1 -0
  14. package/dist/format/stnb/__tests__/renderer.test.js +109 -0
  15. package/dist/format/stnb/__tests__/renderer.test.js.map +1 -0
  16. package/dist/format/stnb/__tests__/roundtrip.test.d.ts +2 -0
  17. package/dist/format/stnb/__tests__/roundtrip.test.d.ts.map +1 -0
  18. package/dist/format/stnb/__tests__/roundtrip.test.js +91 -0
  19. package/dist/format/stnb/__tests__/roundtrip.test.js.map +1 -0
  20. package/dist/format/stnb/__tests__/serializer.test.d.ts +2 -0
  21. package/dist/format/stnb/__tests__/serializer.test.d.ts.map +1 -0
  22. package/dist/format/stnb/__tests__/serializer.test.js +60 -0
  23. package/dist/format/stnb/__tests__/serializer.test.js.map +1 -0
  24. package/dist/format/stnb/executor.d.ts +29 -0
  25. package/dist/format/stnb/executor.d.ts.map +1 -0
  26. package/dist/format/stnb/executor.js +139 -0
  27. package/dist/format/stnb/executor.js.map +1 -0
  28. package/dist/format/stnb/index.d.ts +19 -0
  29. package/dist/format/stnb/index.d.ts.map +1 -0
  30. package/dist/format/stnb/index.js +28 -0
  31. package/dist/format/stnb/index.js.map +1 -0
  32. package/dist/format/stnb/parser.d.ts +14 -0
  33. package/dist/format/stnb/parser.d.ts.map +1 -0
  34. package/dist/format/stnb/parser.js +123 -0
  35. package/dist/format/stnb/parser.js.map +1 -0
  36. package/dist/format/stnb/renderer-html.d.ts +11 -0
  37. package/dist/format/stnb/renderer-html.d.ts.map +1 -0
  38. package/dist/format/stnb/renderer-html.js +180 -0
  39. package/dist/format/stnb/renderer-html.js.map +1 -0
  40. package/dist/format/stnb/renderer-markdown.d.ts +13 -0
  41. package/dist/format/stnb/renderer-markdown.d.ts.map +1 -0
  42. package/dist/format/stnb/renderer-markdown.js +92 -0
  43. package/dist/format/stnb/renderer-markdown.js.map +1 -0
  44. package/dist/format/stnb/serializer.d.ts +14 -0
  45. package/dist/format/stnb/serializer.d.ts.map +1 -0
  46. package/dist/format/stnb/serializer.js +21 -0
  47. package/dist/format/stnb/serializer.js.map +1 -0
  48. package/dist/format/stnb/types.d.ts +45 -0
  49. package/dist/format/stnb/types.d.ts.map +1 -0
  50. package/dist/format/stnb/types.js +7 -0
  51. package/dist/format/stnb/types.js.map +1 -0
  52. package/dist/index.d.ts +5 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +7 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/logic/profile-bridge/index.d.ts.map +1 -1
  57. package/dist/logic/profile-bridge/index.js +20 -3
  58. package/dist/logic/profile-bridge/index.js.map +1 -1
  59. package/dist/logic/profiles/classical/propositional.d.ts.map +1 -1
  60. package/dist/logic/profiles/classical/propositional.js.map +1 -1
  61. package/dist/logic/profiles/ctl/check.d.ts.map +1 -1
  62. package/dist/logic/profiles/ctl/check.js +21 -11
  63. package/dist/logic/profiles/ctl/check.js.map +1 -1
  64. package/dist/logic/profiles/ctl/witness.d.ts.map +1 -1
  65. package/dist/logic/profiles/ctl/witness.js +2 -0
  66. package/dist/logic/profiles/ctl/witness.js.map +1 -1
  67. package/dist/logic/profiles/description-logic/types.d.ts +15 -0
  68. package/dist/logic/profiles/description-logic/types.d.ts.map +1 -1
  69. package/dist/logic/profiles/description-logic/types.js +13 -0
  70. package/dist/logic/profiles/description-logic/types.js.map +1 -1
  71. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts +2 -0
  72. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts.map +1 -0
  73. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js +141 -0
  74. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js.map +1 -0
  75. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts +2 -0
  76. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts.map +1 -0
  77. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js +55 -0
  78. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js.map +1 -0
  79. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts +2 -0
  80. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts.map +1 -0
  81. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js +149 -0
  82. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js.map +1 -0
  83. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts +2 -0
  84. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts.map +1 -0
  85. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js +105 -0
  86. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js.map +1 -0
  87. package/dist/logic/profiles/dl-hybrid/ast.d.ts +160 -0
  88. package/dist/logic/profiles/dl-hybrid/ast.d.ts.map +1 -0
  89. package/dist/logic/profiles/dl-hybrid/ast.js +261 -0
  90. package/dist/logic/profiles/dl-hybrid/ast.js.map +1 -0
  91. package/dist/logic/profiles/dl-hybrid/differential.d.ts +61 -0
  92. package/dist/logic/profiles/dl-hybrid/differential.d.ts.map +1 -0
  93. package/dist/logic/profiles/dl-hybrid/differential.js +291 -0
  94. package/dist/logic/profiles/dl-hybrid/differential.js.map +1 -0
  95. package/dist/logic/profiles/dl-hybrid/index.d.ts +10 -0
  96. package/dist/logic/profiles/dl-hybrid/index.d.ts.map +1 -0
  97. package/dist/logic/profiles/dl-hybrid/index.js +90 -0
  98. package/dist/logic/profiles/dl-hybrid/index.js.map +1 -0
  99. package/dist/logic/profiles/dl-hybrid/parser.d.ts +8 -0
  100. package/dist/logic/profiles/dl-hybrid/parser.d.ts.map +1 -0
  101. package/dist/logic/profiles/dl-hybrid/parser.js +410 -0
  102. package/dist/logic/profiles/dl-hybrid/parser.js.map +1 -0
  103. package/dist/logic/profiles/dl-hybrid/profile.d.ts +23 -0
  104. package/dist/logic/profiles/dl-hybrid/profile.d.ts.map +1 -0
  105. package/dist/logic/profiles/dl-hybrid/profile.js +122 -0
  106. package/dist/logic/profiles/dl-hybrid/profile.js.map +1 -0
  107. package/dist/logic/profiles/dl-hybrid/semantics.d.ts +16 -0
  108. package/dist/logic/profiles/dl-hybrid/semantics.d.ts.map +1 -0
  109. package/dist/logic/profiles/dl-hybrid/semantics.js +181 -0
  110. package/dist/logic/profiles/dl-hybrid/semantics.js.map +1 -0
  111. package/dist/logic/profiles/dl-hybrid/tableau.d.ts +38 -0
  112. package/dist/logic/profiles/dl-hybrid/tableau.d.ts.map +1 -0
  113. package/dist/logic/profiles/dl-hybrid/tableau.js +289 -0
  114. package/dist/logic/profiles/dl-hybrid/tableau.js.map +1 -0
  115. package/dist/logic/profiles/hybrid-logic/types.d.ts +17 -0
  116. package/dist/logic/profiles/hybrid-logic/types.d.ts.map +1 -1
  117. package/dist/logic/profiles/hybrid-logic/types.js +17 -0
  118. package/dist/logic/profiles/hybrid-logic/types.js.map +1 -1
  119. package/dist/logic/profiles/intuitionistic-nj/kripke.d.ts.map +1 -1
  120. package/dist/logic/profiles/intuitionistic-nj/kripke.js +8 -5
  121. package/dist/logic/profiles/intuitionistic-nj/kripke.js.map +1 -1
  122. package/dist/logic/profiles/ltl-sat/tableau.d.ts +31 -0
  123. package/dist/logic/profiles/ltl-sat/tableau.d.ts.map +1 -1
  124. package/dist/logic/profiles/ltl-sat/tableau.js +18 -0
  125. package/dist/logic/profiles/ltl-sat/tableau.js.map +1 -1
  126. package/dist/logic/profiles/ltl-sat/types.d.ts +15 -0
  127. package/dist/logic/profiles/ltl-sat/types.d.ts.map +1 -1
  128. package/dist/logic/profiles/ltl-sat/types.js +2 -1
  129. package/dist/logic/profiles/ltl-sat/types.js.map +1 -1
  130. package/dist/logic/profiles/modal-frame-axioms/formula.d.ts +10 -0
  131. package/dist/logic/profiles/modal-frame-axioms/formula.d.ts.map +1 -1
  132. package/dist/logic/profiles/modal-frame-axioms/formula.js +10 -0
  133. package/dist/logic/profiles/modal-frame-axioms/formula.js.map +1 -1
  134. package/dist/logic/profiles/mu-calculus/check.d.ts.map +1 -1
  135. package/dist/logic/profiles/mu-calculus/check.js +7 -4
  136. package/dist/logic/profiles/mu-calculus/check.js.map +1 -1
  137. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts +8 -0
  138. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -1
  139. package/dist/logic/profiles/natural-deduction-nk/formula.js +8 -0
  140. package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -1
  141. package/dist/logic/profiles/quantum/index.d.ts.map +1 -1
  142. package/dist/logic/profiles/quantum/index.js +11 -8
  143. package/dist/logic/profiles/quantum/index.js.map +1 -1
  144. package/dist/logic/profiles/sequent-lj/index.d.ts +90 -0
  145. package/dist/logic/profiles/sequent-lj/index.d.ts.map +1 -0
  146. package/dist/logic/profiles/sequent-lj/index.js +903 -0
  147. package/dist/logic/profiles/sequent-lj/index.js.map +1 -0
  148. package/dist/logic/profiles/shared/tableau-engine.d.ts.map +1 -1
  149. package/dist/logic/profiles/shared/tableau-engine.js +0 -17
  150. package/dist/logic/profiles/shared/tableau-engine.js.map +1 -1
  151. package/dist/namespaces/proof-systems.d.ts +1 -1
  152. package/dist/namespaces/proof-systems.d.ts.map +1 -1
  153. package/dist/namespaces/proof-systems.js.map +1 -1
  154. package/dist/namespaces/semantics.d.ts +1 -1
  155. package/dist/namespaces/semantics.d.ts.map +1 -1
  156. package/dist/namespaces/semantics.js.map +1 -1
  157. package/dist/proof-systems/distributed-exchange/index.d.ts +29 -0
  158. package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -1
  159. package/dist/proof-systems/distributed-exchange/index.js +18 -0
  160. package/dist/proof-systems/distributed-exchange/index.js.map +1 -1
  161. package/dist/proof-systems/fol-prover/types.d.ts +16 -0
  162. package/dist/proof-systems/fol-prover/types.d.ts.map +1 -1
  163. package/dist/proof-systems/fol-prover/types.js +7 -0
  164. package/dist/proof-systems/fol-prover/types.js.map +1 -1
  165. package/dist/proof-systems/fol-prover-advanced/index.d.ts +3 -3
  166. package/dist/proof-systems/fol-prover-advanced/index.d.ts.map +1 -1
  167. package/dist/proof-systems/fol-prover-advanced/index.js.map +1 -1
  168. package/dist/proof-systems/fol-prover-advanced/ordering.js +1 -1
  169. package/dist/proof-systems/fol-prover-advanced/prover.d.ts.map +1 -1
  170. package/dist/proof-systems/fol-prover-advanced/prover.js +19 -12
  171. package/dist/proof-systems/fol-prover-advanced/prover.js.map +1 -1
  172. package/dist/proof-systems/fol-prover-advanced/resolve.d.ts.map +1 -1
  173. package/dist/proof-systems/fol-prover-advanced/resolve.js +7 -7
  174. package/dist/proof-systems/fol-prover-advanced/resolve.js.map +1 -1
  175. package/dist/proof-systems/fol-prover-advanced/subsumption.d.ts.map +1 -1
  176. package/dist/proof-systems/fol-prover-advanced/subsumption.js.map +1 -1
  177. package/dist/proof-systems/fol-prover-advanced/types.d.ts +12 -0
  178. package/dist/proof-systems/fol-prover-advanced/types.d.ts.map +1 -1
  179. package/dist/proof-systems/fol-prover-advanced/unify.js +2 -2
  180. package/dist/proof-systems/fol-prover-equality/term-utils.d.ts +46 -0
  181. package/dist/proof-systems/fol-prover-equality/term-utils.d.ts.map +1 -1
  182. package/dist/proof-systems/fol-prover-equality/term-utils.js +46 -0
  183. package/dist/proof-systems/fol-prover-equality/term-utils.js.map +1 -1
  184. package/dist/proof-systems/proof-nets/correctness.d.ts.map +1 -1
  185. package/dist/proof-systems/proof-nets/correctness.js +24 -12
  186. package/dist/proof-systems/proof-nets/correctness.js.map +1 -1
  187. package/dist/proof-systems/proof-nets/types.d.ts +18 -0
  188. package/dist/proof-systems/proof-nets/types.d.ts.map +1 -1
  189. package/dist/proof-systems/proof-nets/types.js +6 -0
  190. package/dist/proof-systems/proof-nets/types.js.map +1 -1
  191. package/dist/proof-systems/tableau-framework/TableauProver.d.ts.map +1 -1
  192. package/dist/proof-systems/tableau-framework/TableauProver.js +5 -5
  193. package/dist/proof-systems/tableau-framework/TableauProver.js.map +1 -1
  194. package/dist/proof-systems/tableau-framework/propositional.d.ts.map +1 -1
  195. package/dist/proof-systems/tableau-framework/propositional.js +21 -21
  196. package/dist/proof-systems/tableau-framework/propositional.js.map +1 -1
  197. package/dist/reasoning/ban-logic/terms.d.ts +24 -0
  198. package/dist/reasoning/ban-logic/terms.d.ts.map +1 -1
  199. package/dist/reasoning/ban-logic/terms.js +24 -0
  200. package/dist/reasoning/ban-logic/terms.js.map +1 -1
  201. package/dist/reasoning/bayesian/factor.js +8 -8
  202. package/dist/reasoning/bayesian/factor.js.map +1 -1
  203. package/dist/reasoning/bayesian/inference.d.ts.map +1 -1
  204. package/dist/reasoning/bayesian/inference.js +11 -5
  205. package/dist/reasoning/bayesian/inference.js.map +1 -1
  206. package/dist/reasoning/combinatorics/generators.js.map +1 -1
  207. package/dist/reasoning/combinatorics/index.d.ts +3 -3
  208. package/dist/reasoning/combinatorics/index.d.ts.map +1 -1
  209. package/dist/reasoning/combinatorics/index.js.map +1 -1
  210. package/dist/reasoning/combinatorics/set-partitions.js.map +1 -1
  211. package/dist/reasoning/combinatorics/special-numbers.d.ts.map +1 -1
  212. package/dist/reasoning/combinatorics/special-numbers.js.map +1 -1
  213. package/dist/reasoning/constructive-analysis/cauchy.js +2 -2
  214. package/dist/reasoning/constructive-analysis/compact.js +1 -1
  215. package/dist/reasoning/constructive-analysis/continuity.d.ts.map +1 -1
  216. package/dist/reasoning/constructive-analysis/continuity.js +4 -4
  217. package/dist/reasoning/constructive-analysis/continuity.js.map +1 -1
  218. package/dist/reasoning/constructive-analysis/index.d.ts.map +1 -1
  219. package/dist/reasoning/constructive-analysis/index.js.map +1 -1
  220. package/dist/reasoning/constructive-analysis/ivt.d.ts.map +1 -1
  221. package/dist/reasoning/constructive-analysis/ivt.js +2 -2
  222. package/dist/reasoning/constructive-analysis/ivt.js.map +1 -1
  223. package/dist/reasoning/constructive-reals/index.d.ts.map +1 -1
  224. package/dist/reasoning/constructive-reals/index.js +4 -8
  225. package/dist/reasoning/constructive-reals/index.js.map +1 -1
  226. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts +2 -0
  227. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts.map +1 -0
  228. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js +74 -0
  229. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js.map +1 -0
  230. package/dist/reasoning/dl-hybrid/index.d.ts +3 -0
  231. package/dist/reasoning/dl-hybrid/index.d.ts.map +1 -0
  232. package/dist/reasoning/dl-hybrid/index.js +16 -0
  233. package/dist/reasoning/dl-hybrid/index.js.map +1 -0
  234. package/dist/reasoning/dl-hybrid/invariant-search.d.ts +39 -0
  235. package/dist/reasoning/dl-hybrid/invariant-search.d.ts.map +1 -0
  236. package/dist/reasoning/dl-hybrid/invariant-search.js +188 -0
  237. package/dist/reasoning/dl-hybrid/invariant-search.js.map +1 -0
  238. package/dist/reasoning/galois-fields/index.d.ts +64 -0
  239. package/dist/reasoning/galois-fields/index.d.ts.map +1 -1
  240. package/dist/reasoning/galois-fields/index.js +56 -6
  241. package/dist/reasoning/galois-fields/index.js.map +1 -1
  242. package/dist/reasoning/graph-theory/index.d.ts +31 -0
  243. package/dist/reasoning/graph-theory/index.d.ts.map +1 -1
  244. package/dist/reasoning/graph-theory/index.js +28 -10
  245. package/dist/reasoning/graph-theory/index.js.map +1 -1
  246. package/dist/reasoning/hoare-logic/index.d.ts +34 -0
  247. package/dist/reasoning/hoare-logic/index.d.ts.map +1 -1
  248. package/dist/reasoning/hoare-logic/index.js +26 -0
  249. package/dist/reasoning/hoare-logic/index.js.map +1 -1
  250. package/dist/reasoning/hyperreal/index.d.ts +30 -0
  251. package/dist/reasoning/hyperreal/index.d.ts.map +1 -1
  252. package/dist/reasoning/hyperreal/index.js +25 -0
  253. package/dist/reasoning/hyperreal/index.js.map +1 -1
  254. package/dist/reasoning/information-theory/index.d.ts +34 -0
  255. package/dist/reasoning/information-theory/index.d.ts.map +1 -1
  256. package/dist/reasoning/information-theory/index.js +27 -44
  257. package/dist/reasoning/information-theory/index.js.map +1 -1
  258. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts +2 -0
  259. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts.map +1 -0
  260. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js +72 -0
  261. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js.map +1 -0
  262. package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts +2 -0
  263. package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts.map +1 -0
  264. package/dist/reasoning/lemma-rag/__tests__/embedding.test.js +102 -0
  265. package/dist/reasoning/lemma-rag/__tests__/embedding.test.js.map +1 -0
  266. package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts +2 -0
  267. package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts.map +1 -0
  268. package/dist/reasoning/lemma-rag/__tests__/integration.test.js +40 -0
  269. package/dist/reasoning/lemma-rag/__tests__/integration.test.js.map +1 -0
  270. package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts +2 -0
  271. package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts.map +1 -0
  272. package/dist/reasoning/lemma-rag/__tests__/query.test.js +136 -0
  273. package/dist/reasoning/lemma-rag/__tests__/query.test.js.map +1 -0
  274. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts +2 -0
  275. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts.map +1 -0
  276. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js +147 -0
  277. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js.map +1 -0
  278. package/dist/reasoning/lemma-rag/benchmarks.d.ts +30 -0
  279. package/dist/reasoning/lemma-rag/benchmarks.d.ts.map +1 -0
  280. package/dist/reasoning/lemma-rag/benchmarks.js +177 -0
  281. package/dist/reasoning/lemma-rag/benchmarks.js.map +1 -0
  282. package/dist/reasoning/lemma-rag/embedding.d.ts +26 -0
  283. package/dist/reasoning/lemma-rag/embedding.d.ts.map +1 -0
  284. package/dist/reasoning/lemma-rag/embedding.js +243 -0
  285. package/dist/reasoning/lemma-rag/embedding.js.map +1 -0
  286. package/dist/reasoning/lemma-rag/index-store.d.ts +35 -0
  287. package/dist/reasoning/lemma-rag/index-store.d.ts.map +1 -0
  288. package/dist/reasoning/lemma-rag/index-store.js +105 -0
  289. package/dist/reasoning/lemma-rag/index-store.js.map +1 -0
  290. package/dist/reasoning/lemma-rag/index.d.ts +9 -0
  291. package/dist/reasoning/lemma-rag/index.d.ts.map +1 -0
  292. package/dist/reasoning/lemma-rag/index.js +34 -0
  293. package/dist/reasoning/lemma-rag/index.js.map +1 -0
  294. package/dist/reasoning/lemma-rag/query.d.ts +48 -0
  295. package/dist/reasoning/lemma-rag/query.d.ts.map +1 -0
  296. package/dist/reasoning/lemma-rag/query.js +92 -0
  297. package/dist/reasoning/lemma-rag/query.js.map +1 -0
  298. package/dist/reasoning/lemma-rag/retrieval.d.ts +33 -0
  299. package/dist/reasoning/lemma-rag/retrieval.d.ts.map +1 -0
  300. package/dist/reasoning/lemma-rag/retrieval.js +123 -0
  301. package/dist/reasoning/lemma-rag/retrieval.js.map +1 -0
  302. package/dist/reasoning/lemma-rag/types.d.ts +52 -0
  303. package/dist/reasoning/lemma-rag/types.d.ts.map +1 -0
  304. package/dist/reasoning/lemma-rag/types.js +13 -0
  305. package/dist/reasoning/lemma-rag/types.js.map +1 -0
  306. package/dist/reasoning/lemma-synthesis/index.d.ts +36 -0
  307. package/dist/reasoning/lemma-synthesis/index.d.ts.map +1 -1
  308. package/dist/reasoning/lemma-synthesis/index.js +12 -0
  309. package/dist/reasoning/lemma-synthesis/index.js.map +1 -1
  310. package/dist/reasoning/linear-algebra/index.d.ts +38 -0
  311. package/dist/reasoning/linear-algebra/index.d.ts.map +1 -1
  312. package/dist/reasoning/linear-algebra/index.js +34 -5
  313. package/dist/reasoning/linear-algebra/index.js.map +1 -1
  314. package/dist/reasoning/markov-logic/grounding.js +1 -1
  315. package/dist/reasoning/markov-logic/grounding.js.map +1 -1
  316. package/dist/reasoning/markov-logic/inference.js +1 -1
  317. package/dist/reasoning/markov-logic/inference.js.map +1 -1
  318. package/dist/reasoning/order-theory/index.d.ts +121 -0
  319. package/dist/reasoning/order-theory/index.d.ts.map +1 -0
  320. package/dist/reasoning/order-theory/index.js +562 -0
  321. package/dist/reasoning/order-theory/index.js.map +1 -0
  322. package/dist/reasoning/peano-arithmetic/index.d.ts +114 -0
  323. package/dist/reasoning/peano-arithmetic/index.d.ts.map +1 -0
  324. package/dist/reasoning/peano-arithmetic/index.js +650 -0
  325. package/dist/reasoning/peano-arithmetic/index.js.map +1 -0
  326. package/dist/reasoning/polynomial-ring/index.d.ts +80 -0
  327. package/dist/reasoning/polynomial-ring/index.d.ts.map +1 -1
  328. package/dist/reasoning/polynomial-ring/index.js +75 -0
  329. package/dist/reasoning/polynomial-ring/index.js.map +1 -1
  330. package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts +2 -0
  331. package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts.map +1 -0
  332. package/dist/reasoning/proof-mining/__tests__/extractor.test.js +263 -0
  333. package/dist/reasoning/proof-mining/__tests__/extractor.test.js.map +1 -0
  334. package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts +2 -0
  335. package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts.map +1 -0
  336. package/dist/reasoning/proof-mining/__tests__/generalizer.test.js +123 -0
  337. package/dist/reasoning/proof-mining/__tests__/generalizer.test.js.map +1 -0
  338. package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts +2 -0
  339. package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts.map +1 -0
  340. package/dist/reasoning/proof-mining/__tests__/integration.test.js +128 -0
  341. package/dist/reasoning/proof-mining/__tests__/integration.test.js.map +1 -0
  342. package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts +2 -0
  343. package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts.map +1 -0
  344. package/dist/reasoning/proof-mining/__tests__/persistence.test.js +119 -0
  345. package/dist/reasoning/proof-mining/__tests__/persistence.test.js.map +1 -0
  346. package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts +2 -0
  347. package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts.map +1 -0
  348. package/dist/reasoning/proof-mining/__tests__/ranker.test.js +93 -0
  349. package/dist/reasoning/proof-mining/__tests__/ranker.test.js.map +1 -0
  350. package/dist/reasoning/proof-mining/extractor.d.ts +73 -0
  351. package/dist/reasoning/proof-mining/extractor.d.ts.map +1 -0
  352. package/dist/reasoning/proof-mining/extractor.js +170 -0
  353. package/dist/reasoning/proof-mining/extractor.js.map +1 -0
  354. package/dist/reasoning/proof-mining/generalizer.d.ts +46 -0
  355. package/dist/reasoning/proof-mining/generalizer.d.ts.map +1 -0
  356. package/dist/reasoning/proof-mining/generalizer.js +245 -0
  357. package/dist/reasoning/proof-mining/generalizer.js.map +1 -0
  358. package/dist/reasoning/proof-mining/index.d.ts +62 -0
  359. package/dist/reasoning/proof-mining/index.d.ts.map +1 -0
  360. package/dist/reasoning/proof-mining/index.js +235 -0
  361. package/dist/reasoning/proof-mining/index.js.map +1 -0
  362. package/dist/reasoning/proof-mining/persistence.d.ts +35 -0
  363. package/dist/reasoning/proof-mining/persistence.d.ts.map +1 -0
  364. package/dist/reasoning/proof-mining/persistence.js +126 -0
  365. package/dist/reasoning/proof-mining/persistence.js.map +1 -0
  366. package/dist/reasoning/proof-mining/ranker.d.ts +29 -0
  367. package/dist/reasoning/proof-mining/ranker.d.ts.map +1 -0
  368. package/dist/reasoning/proof-mining/ranker.js +71 -0
  369. package/dist/reasoning/proof-mining/ranker.js.map +1 -0
  370. package/dist/reasoning/proof-mining/statistics.d.ts +11 -0
  371. package/dist/reasoning/proof-mining/statistics.d.ts.map +1 -0
  372. package/dist/reasoning/proof-mining/statistics.js +44 -0
  373. package/dist/reasoning/proof-mining/statistics.js.map +1 -0
  374. package/dist/reasoning/proof-mining/types.d.ts +117 -0
  375. package/dist/reasoning/proof-mining/types.d.ts.map +1 -0
  376. package/dist/reasoning/proof-mining/types.js +24 -0
  377. package/dist/reasoning/proof-mining/types.js.map +1 -0
  378. package/dist/reasoning/separation-logic/index.d.ts +30 -0
  379. package/dist/reasoning/separation-logic/index.d.ts.map +1 -1
  380. package/dist/reasoning/separation-logic/index.js +21 -0
  381. package/dist/reasoning/separation-logic/index.js.map +1 -1
  382. package/dist/reasoning/set-theory/hf-functions.js +3 -3
  383. package/dist/reasoning/set-theory/hf-sets.js +1 -1
  384. package/dist/reasoning/set-theory/index.d.ts +3 -3
  385. package/dist/reasoning/set-theory/index.d.ts.map +1 -1
  386. package/dist/reasoning/set-theory/zfc-axioms.js +4 -4
  387. package/dist/reasoning/tactic-dsl/tactics.d.ts +87 -0
  388. package/dist/reasoning/tactic-dsl/tactics.d.ts.map +1 -1
  389. package/dist/reasoning/tactic-dsl/tactics.js +86 -36
  390. package/dist/reasoning/tactic-dsl/tactics.js.map +1 -1
  391. package/dist/reasoning/topology/index.d.ts +81 -0
  392. package/dist/reasoning/topology/index.d.ts.map +1 -1
  393. package/dist/reasoning/topology/index.js +69 -45
  394. package/dist/reasoning/topology/index.js.map +1 -1
  395. package/dist/runtime/countermodel-min/minimize.js +0 -0
  396. package/dist/runtime/countermodel-min/minimize.js.map +1 -1
  397. package/dist/runtime/csp-hoare/semantics.d.ts +12 -0
  398. package/dist/runtime/csp-hoare/semantics.d.ts.map +1 -1
  399. package/dist/runtime/csp-hoare/semantics.js +12 -0
  400. package/dist/runtime/csp-hoare/semantics.js.map +1 -1
  401. package/dist/runtime/symbolic-diff/constructors.d.ts +20 -0
  402. package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -1
  403. package/dist/runtime/symbolic-diff/constructors.js +20 -0
  404. package/dist/runtime/symbolic-diff/constructors.js.map +1 -1
  405. package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -1
  406. package/dist/runtime/term-rewriting/term-utils.js +33 -2
  407. package/dist/runtime/term-rewriting/term-utils.js.map +1 -1
  408. package/dist/runtime/typecheck/checker.js +2 -2
  409. package/dist/runtime/typecheck/checker.js.map +1 -1
  410. package/dist/runtime/typecheck/levenshtein.js +1 -1
  411. package/dist/runtime/typecheck/levenshtein.js.map +1 -1
  412. package/dist/semantics/categorical/fin-set.d.ts.map +1 -1
  413. package/dist/semantics/categorical/fin-set.js +8 -1
  414. package/dist/semantics/categorical/fin-set.js.map +1 -1
  415. package/dist/semantics/categorical/free.d.ts.map +1 -1
  416. package/dist/semantics/categorical/free.js +8 -2
  417. package/dist/semantics/categorical/free.js.map +1 -1
  418. package/dist/semantics/categorical/limits.d.ts.map +1 -1
  419. package/dist/semantics/categorical/limits.js +13 -4
  420. package/dist/semantics/categorical/limits.js.map +1 -1
  421. package/dist/semantics/categorical/monoidal.d.ts.map +1 -1
  422. package/dist/semantics/categorical/monoidal.js +3 -1
  423. package/dist/semantics/categorical/monoidal.js.map +1 -1
  424. package/dist/semantics/text-layer/compiler.d.ts +46 -0
  425. package/dist/semantics/text-layer/compiler.d.ts.map +1 -1
  426. package/dist/semantics/text-layer/compiler.js +46 -11
  427. package/dist/semantics/text-layer/compiler.js.map +1 -1
  428. package/dist/solver/cdcl-v2/index.d.ts +8 -0
  429. package/dist/solver/cdcl-v2/index.d.ts.map +1 -1
  430. package/dist/solver/cdcl-v2/index.js +8 -0
  431. package/dist/solver/cdcl-v2/index.js.map +1 -1
  432. package/dist/solver/smt-z3/z3-wasm-backend.d.ts +0 -1
  433. package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -1
  434. package/dist/solver/smt-z3/z3-wasm-backend.js +2 -3
  435. package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -1
  436. package/dist/tests/agora-integration-fixtures.test.js +7 -2
  437. package/dist/tests/agora-integration-fixtures.test.js.map +1 -1
  438. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts +2 -0
  439. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts.map +1 -0
  440. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js +123 -0
  441. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js.map +1 -0
  442. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts +2 -0
  443. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts.map +1 -0
  444. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js +172 -0
  445. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js.map +1 -0
  446. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts +2 -0
  447. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts.map +1 -0
  448. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js +326 -0
  449. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js.map +1 -0
  450. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts +2 -0
  451. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts.map +1 -0
  452. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js +418 -0
  453. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js.map +1 -0
  454. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts +2 -0
  455. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts.map +1 -0
  456. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js +162 -0
  457. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js.map +1 -0
  458. package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts +2 -0
  459. package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts.map +1 -0
  460. package/dist/tests/coverage-90/coverage-90-nk-prover.test.js +104 -0
  461. package/dist/tests/coverage-90/coverage-90-nk-prover.test.js.map +1 -0
  462. package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts +2 -0
  463. package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts.map +1 -0
  464. package/dist/tests/coverage-90/coverage-90-parser-deep.test.js +262 -0
  465. package/dist/tests/coverage-90/coverage-90-parser-deep.test.js.map +1 -0
  466. package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts +2 -0
  467. package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts.map +1 -0
  468. package/dist/tests/coverage-90/coverage-90-sat-engines.test.js +101 -0
  469. package/dist/tests/coverage-90/coverage-90-sat-engines.test.js.map +1 -0
  470. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts +2 -0
  471. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts.map +1 -0
  472. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js +219 -0
  473. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js.map +1 -0
  474. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts +2 -0
  475. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts.map +1 -0
  476. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js +154 -0
  477. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js.map +1 -0
  478. package/dist/tests/coverage-95/first-order.test.js.map +1 -1
  479. package/dist/tests/coverage-95/fol-prover.test.js.map +1 -1
  480. package/dist/tests/integration/cross-modules.test.js +43 -19
  481. package/dist/tests/integration/cross-modules.test.js.map +1 -1
  482. package/dist/tests/logic/ctl/check.test.js.map +1 -1
  483. package/dist/tests/logic/profile-bridge/translations.test.js +3 -3
  484. package/dist/tests/logic/profile-bridge/translations.test.js.map +1 -1
  485. package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts +2 -0
  486. package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts.map +1 -0
  487. package/dist/tests/logic/profiles/sequent-lj/lj.test.js +400 -0
  488. package/dist/tests/logic/profiles/sequent-lj/lj.test.js.map +1 -0
  489. package/dist/tests/logic/sequent-g3/prover.test.js.map +1 -1
  490. package/dist/tests/logic/substructural/prover.test.js.map +1 -1
  491. package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js +40 -13
  492. package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js.map +1 -1
  493. package/dist/tests/proof-systems/higher-order-unify/ho-unify.test.js.map +1 -1
  494. package/dist/tests/proof-systems/tableau-framework/tableau.test.js +8 -8
  495. package/dist/tests/proof-systems/tableau-framework/tableau.test.js.map +1 -1
  496. package/dist/tests/properties/agm.property.test.js +1 -1
  497. package/dist/tests/properties/agm.property.test.js.map +1 -1
  498. package/dist/tests/properties/anti-unification.property.test.js.map +1 -1
  499. package/dist/tests/properties/argumentation.property.test.js.map +1 -1
  500. package/dist/tests/properties/bisimulation.property.test.js.map +1 -1
  501. package/dist/tests/properties/cdcl.property.test.js.map +1 -1
  502. package/dist/tests/properties/coinduction.property.test.js.map +1 -1
  503. package/dist/tests/properties/constructive-reals.property.test.js.map +1 -1
  504. package/dist/tests/properties/csp.property.test.js +1 -3
  505. package/dist/tests/properties/csp.property.test.js.map +1 -1
  506. package/dist/tests/properties/generators.d.ts +1 -1
  507. package/dist/tests/properties/generators.d.ts.map +1 -1
  508. package/dist/tests/properties/generators.js +22 -30
  509. package/dist/tests/properties/generators.js.map +1 -1
  510. package/dist/tests/properties/intuit-nj.property.test.js +3 -1
  511. package/dist/tests/properties/intuit-nj.property.test.js.map +1 -1
  512. package/dist/tests/properties/lambda-calc.property.test.js.map +1 -1
  513. package/dist/tests/properties/mln.property.test.js +1 -3
  514. package/dist/tests/properties/mln.property.test.js.map +1 -1
  515. package/dist/tests/properties/planning.property.test.js.map +1 -1
  516. package/dist/tests/properties/profile-bridge.property.test.js.map +1 -1
  517. package/dist/tests/properties/theorem-cache.property.test.js.map +1 -1
  518. package/dist/tests/protocol-text-layer.test.js.map +1 -1
  519. package/dist/tests/reasoning/combinatorics/combinatorics.test.js +1 -1
  520. package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js +9 -9
  521. package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js.map +1 -1
  522. package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js +80 -38
  523. package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js.map +1 -1
  524. package/dist/tests/reasoning/order-theory/order-theory.test.d.ts +2 -0
  525. package/dist/tests/reasoning/order-theory/order-theory.test.d.ts.map +1 -0
  526. package/dist/tests/reasoning/order-theory/order-theory.test.js +211 -0
  527. package/dist/tests/reasoning/order-theory/order-theory.test.js.map +1 -0
  528. package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts +2 -0
  529. package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts.map +1 -0
  530. package/dist/tests/reasoning/peano-arithmetic/peano.test.js +159 -0
  531. package/dist/tests/reasoning/peano-arithmetic/peano.test.js.map +1 -0
  532. package/dist/tests/reasoning/set-theory/hf-functions.test.js +11 -11
  533. package/dist/tests/reasoning/set-theory/zfc-axioms.test.js +1 -1
  534. package/dist/tests/semantics/text-layer-v2/claim-graph.test.js.map +1 -1
  535. package/dist/tests/solver/smt-lib/emitter.test.js.map +1 -1
  536. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -1
  537. package/dist/tests/tooling/test-harness/test-harness.test.js +9 -6
  538. package/dist/tests/tooling/test-harness/test-harness.test.js.map +1 -1
  539. package/dist/tooling/lsp/types.d.ts +13 -0
  540. package/dist/tooling/lsp/types.d.ts.map +1 -1
  541. package/dist/tooling/lsp/types.js +1 -0
  542. package/dist/tooling/lsp/types.js.map +1 -1
  543. package/dist/tooling/test-harness/combinators.d.ts.map +1 -1
  544. package/dist/tooling/test-harness/combinators.js +4 -4
  545. package/dist/tooling/test-harness/combinators.js.map +1 -1
  546. package/dist/tooling/test-harness/coverage.js +1 -1
  547. package/dist/tooling/test-harness/generators.d.ts.map +1 -1
  548. package/dist/tooling/test-harness/generators.js.map +1 -1
  549. package/dist/tooling/test-harness/index.d.ts +1 -1
  550. package/dist/tooling/test-harness/index.d.ts.map +1 -1
  551. package/dist/tooling/test-harness/index.js.map +1 -1
  552. package/dist/tooling/test-harness/snapshot.d.ts.map +1 -1
  553. package/dist/tooling/test-harness/snapshot.js +2 -2
  554. package/dist/tooling/test-harness/snapshot.js.map +1 -1
  555. package/dist/type-theory/cubical/types.d.ts +25 -0
  556. package/dist/type-theory/cubical/types.d.ts.map +1 -1
  557. package/dist/type-theory/cubical/types.js +20 -0
  558. package/dist/type-theory/cubical/types.js.map +1 -1
  559. package/dist/type-theory/curry-howard/types.d.ts +27 -0
  560. package/dist/type-theory/curry-howard/types.d.ts.map +1 -1
  561. package/dist/type-theory/curry-howard/types.js +18 -0
  562. package/dist/type-theory/curry-howard/types.js.map +1 -1
  563. package/dist/type-theory/hindley-milner/substitution.d.ts +39 -0
  564. package/dist/type-theory/hindley-milner/substitution.d.ts.map +1 -1
  565. package/dist/type-theory/hindley-milner/substitution.js +37 -0
  566. package/dist/type-theory/hindley-milner/substitution.js.map +1 -1
  567. package/dist/type-theory/hindley-milner/types.d.ts +25 -0
  568. package/dist/type-theory/hindley-milner/types.d.ts.map +1 -1
  569. package/dist/type-theory/hindley-milner/types.js +22 -2
  570. package/dist/type-theory/hindley-milner/types.js.map +1 -1
  571. package/dist/type-theory/hol/rules.d.ts +36 -0
  572. package/dist/type-theory/hol/rules.d.ts.map +1 -1
  573. package/dist/type-theory/hol/rules.js +36 -0
  574. package/dist/type-theory/hol/rules.js.map +1 -1
  575. package/dist/type-theory/hott/types.d.ts +32 -0
  576. package/dist/type-theory/hott/types.d.ts.map +1 -1
  577. package/dist/type-theory/hott/types.js +31 -1
  578. package/dist/type-theory/hott/types.js.map +1 -1
  579. package/dist/type-theory/lambda-cube/types.d.ts +17 -0
  580. package/dist/type-theory/lambda-cube/types.d.ts.map +1 -1
  581. package/dist/type-theory/lambda-cube/types.js +13 -0
  582. package/dist/type-theory/lambda-cube/types.js.map +1 -1
  583. package/dist/type-theory/mltt/types.d.ts +19 -0
  584. package/dist/type-theory/mltt/types.d.ts.map +1 -1
  585. package/dist/type-theory/mltt/types.js +15 -1
  586. package/dist/type-theory/mltt/types.js.map +1 -1
  587. package/dist/type-theory/nbe/types.d.ts +21 -0
  588. package/dist/type-theory/nbe/types.d.ts.map +1 -1
  589. package/dist/type-theory/nbe/types.js +13 -1
  590. package/dist/type-theory/nbe/types.js.map +1 -1
  591. package/dist/type-theory/refinement-types/types.d.ts +38 -0
  592. package/dist/type-theory/refinement-types/types.d.ts.map +1 -1
  593. package/dist/type-theory/refinement-types/types.js +35 -0
  594. package/dist/type-theory/refinement-types/types.js.map +1 -1
  595. package/dist/type-theory/system-f/types.d.ts +30 -0
  596. package/dist/type-theory/system-f/types.d.ts.map +1 -1
  597. package/dist/type-theory/system-f/types.js +24 -3
  598. package/dist/type-theory/system-f/types.js.map +1 -1
  599. package/dist/types/index.d.ts +42 -0
  600. package/dist/types/index.d.ts.map +1 -1
  601. package/dist/types/index.js.map +1 -1
  602. package/package.json +26 -1
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST dL-Hybrid — Profile descriptor para registro en ST
4
+ // ============================================================
5
+ // Adaptador entre el AST nativo de dL (DLFormula) y la `LogicProfile`
6
+ // del runtime ST (basada en `Formula` clásica). Por defecto, este perfil
7
+ // se usa programáticamente con el AST nativo (parseFormula + checkValid);
8
+ // el adaptador `LogicProfile` lo expone por el registry global pero
9
+ // degrada graciosamente para fórmulas no-dL (no usa la forma estándar
10
+ // de tableau modal, sino el motor dedicado de dl-hybrid).
11
+ // ============================================================
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DLHybridProfile = void 0;
14
+ exports.runValidity = runValidity;
15
+ exports.runSatisfiability = runSatisfiability;
16
+ const tableau_1 = require("./tableau");
17
+ const ast_1 = require("./ast");
18
+ /**
19
+ * Indicador para que ST sepa que este perfil usa AST nativo paralelo.
20
+ * Si el caller pasa una `Formula` clásica, devolvemos `unknown` con un
21
+ * mensaje informativo. El uso recomendado es vía las funciones exportadas
22
+ * en el index del perfil.
23
+ */
24
+ const UNSUPPORTED_FORMULA = {
25
+ severity: 'info',
26
+ message: 'dl-hybrid usa un AST nativo (DLFormula). Para usar este perfil, parsea con `parseFormula(src)` y usa `checkValid` directamente.',
27
+ };
28
+ class DLHybridProfile {
29
+ name = 'dl-hybrid';
30
+ description = 'Differential Dynamic Logic (Platzer) — verificación de sistemas híbridos (estados continuos + discretos) con ODEs polinomiales lineales en subset decidible.';
31
+ checkWellFormed(_formula) {
32
+ return [UNSUPPORTED_FORMULA];
33
+ }
34
+ checkValid(formula) {
35
+ return this.notApplicable(formula);
36
+ }
37
+ checkSatisfiable(formula) {
38
+ return this.notApplicable(formula);
39
+ }
40
+ prove(goal, _theory, _premises) {
41
+ return this.notApplicable(goal);
42
+ }
43
+ derive(goal, _premises, _theory) {
44
+ return this.notApplicable(goal);
45
+ }
46
+ countermodel(formula) {
47
+ return this.notApplicable(formula);
48
+ }
49
+ explain(formula) {
50
+ return {
51
+ status: 'unknown',
52
+ output: this.explainSystem(),
53
+ diagnostics: [UNSUPPORTED_FORMULA],
54
+ formula,
55
+ };
56
+ }
57
+ notApplicable(formula) {
58
+ return {
59
+ status: 'unknown',
60
+ output: 'dl-hybrid no acepta `Formula` clásica directamente. Use el API nativo: `parseFormula`, `checkValid`, etc.',
61
+ diagnostics: [UNSUPPORTED_FORMULA],
62
+ formula,
63
+ };
64
+ }
65
+ explainSystem() {
66
+ return [
67
+ 'Sistema: dL (Differential Dynamic Logic, Platzer 2008/2010)',
68
+ ' Programas híbridos:',
69
+ ' x := e asignación discreta',
70
+ ' x := * asignación no determinista',
71
+ ' ?ψ test',
72
+ ' α ; β secuencia',
73
+ ' α ++ β choice no determinista (∪)',
74
+ ' α* loop (acotado en la implementación)',
75
+ " {x' = f(x) & Q} evolución continua bajo dominio Q",
76
+ ' Modalidades:',
77
+ ' [α] φ todo trace de α termina en φ',
78
+ ' ⟨α⟩ φ existe un trace de α que termina en φ',
79
+ ' Subset decidible implementado:',
80
+ " - ODE x' = c (constante) → x(t) = x₀ + c·t",
81
+ " - ODE x' = a·x + b lineal desacoplada → cerrada exponencial",
82
+ ' - Loops acotados a N iteraciones',
83
+ ' - Derivada de Lie disponible para invariantes diferenciales',
84
+ ' Aplicaciones: control, robótica, sistemas embebidos.',
85
+ ].join('\n');
86
+ }
87
+ }
88
+ exports.DLHybridProfile = DLHybridProfile;
89
+ /**
90
+ * Adaptador: ejecuta `checkValid` sobre una DLFormula nativa y devuelve
91
+ * un `RunResult` ST-compatible (con witness en `output`).
92
+ */
93
+ function runValidity(formula) {
94
+ const res = (0, tableau_1.checkValid)(formula);
95
+ return {
96
+ status: res.status === 'valid' ? 'valid' : 'invalid',
97
+ output: res.status === 'valid'
98
+ ? `${(0, ast_1.formulaToString)(formula)} es VÁLIDA en dl-hybrid (${res.statesChecked} estados muestreados)`
99
+ : `${(0, ast_1.formulaToString)(formula)} NO es válida (contramodelo en estado ${describeState(res.witness)})`,
100
+ diagnostics: [],
101
+ };
102
+ }
103
+ /** Versión satisfacibilidad. */
104
+ function runSatisfiability(formula) {
105
+ const res = (0, tableau_1.checkSatisfiable)(formula);
106
+ return {
107
+ status: res.status === 'satisfiable' ? 'satisfiable' : 'unsatisfiable',
108
+ output: res.status === 'satisfiable'
109
+ ? `${(0, ast_1.formulaToString)(formula)} es SATISFACIBLE (${res.statesChecked} estados muestreados, testigo: ${describeState(res.witness)})`
110
+ : `${(0, ast_1.formulaToString)(formula)} es INSATISFACIBLE en la malla muestreada (${res.statesChecked} estados)`,
111
+ diagnostics: [],
112
+ };
113
+ }
114
+ function describeState(s) {
115
+ if (!s)
116
+ return '∅';
117
+ const pairs = [];
118
+ for (const [k, v] of s.entries())
119
+ pairs.push(`${k}=${v}`);
120
+ return `{${pairs.join(', ')}}`;
121
+ }
122
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/logic/profiles/dl-hybrid/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { DLTerm, DLFormula, State, CompOp } from './ast';
2
+ /** Evalúa un término sobre un estado concreto. */
3
+ export declare function evalTerm(t: DLTerm, s: State): number;
4
+ /** Evalúa una comparación con tolerancia. */
5
+ export declare function evalComp(op: CompOp, a: number, b: number): boolean;
6
+ /**
7
+ * Evalúa una fórmula proposicional / aritmética (sin modalidades) sobre
8
+ * un estado concreto. Para fórmulas con [α]/⟨α⟩ se requiere el motor de
9
+ * tableau (`tableau.ts`).
10
+ */
11
+ export declare function evalQuantifierFree(f: DLFormula, s: State): boolean;
12
+ /** Substitución de un término por otro dentro de un término. */
13
+ export declare function substTerm(t: DLTerm, varName: string, replacement: DLTerm): DLTerm;
14
+ /** Substitución dentro de una fórmula (sólo a través de comparaciones). */
15
+ export declare function substFormula(f: DLFormula, varName: string, replacement: DLTerm): DLFormula;
16
+ //# sourceMappingURL=semantics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics.d.ts","sourceRoot":"","sources":["../../../../src/logic/profiles/dl-hybrid/semantics.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAI9D,kDAAkD;AAClD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAwBpD;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBlE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAsBlE;AAED,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAmCjF;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CA6C1F"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST dL-Hybrid — Semántica concreta (interpretación de términos y fórmulas)
4
+ // ============================================================
5
+ // Funciones puras que dan significado a términos y fórmulas dL sobre un
6
+ // estado concreto `State = Map<varName, value: number>`. Esta capa NO
7
+ // decide validez universal; sólo evalúa con valores concretos. La capa
8
+ // `tableau.ts` la usa para chequear contramodelos y propagar estados a
9
+ // través de programas híbridos.
10
+ //
11
+ // Convenciones:
12
+ // • División por cero → NaN (la comparación con NaN cae al lado false).
13
+ // • Comparación = sobre flotantes usa tolerancia EPS = 1e-9.
14
+ // • Una variable no presente en el estado se interpreta como 0.
15
+ // ============================================================
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.evalTerm = evalTerm;
18
+ exports.evalComp = evalComp;
19
+ exports.evalQuantifierFree = evalQuantifierFree;
20
+ exports.substTerm = substTerm;
21
+ exports.substFormula = substFormula;
22
+ const EPS = 1e-9;
23
+ /** Evalúa un término sobre un estado concreto. */
24
+ function evalTerm(t, s) {
25
+ switch (t.kind) {
26
+ case 'num':
27
+ return t.value;
28
+ case 'var':
29
+ return s.get(t.name) ?? 0;
30
+ case 'plus':
31
+ return evalTerm(t.left, s) + evalTerm(t.right, s);
32
+ case 'minus':
33
+ return evalTerm(t.left, s) - evalTerm(t.right, s);
34
+ case 'times':
35
+ return evalTerm(t.left, s) * evalTerm(t.right, s);
36
+ case 'div': {
37
+ const den = evalTerm(t.right, s);
38
+ if (Math.abs(den) < EPS)
39
+ return NaN;
40
+ return evalTerm(t.left, s) / den;
41
+ }
42
+ case 'neg':
43
+ return -evalTerm(t.arg, s);
44
+ case 'pow': {
45
+ const b = evalTerm(t.base, s);
46
+ return Math.pow(b, t.exp);
47
+ }
48
+ }
49
+ }
50
+ /** Evalúa una comparación con tolerancia. */
51
+ function evalComp(op, a, b) {
52
+ if (Number.isNaN(a) || Number.isNaN(b))
53
+ return false;
54
+ switch (op) {
55
+ case '=':
56
+ return Math.abs(a - b) < EPS;
57
+ case '!=':
58
+ return Math.abs(a - b) >= EPS;
59
+ case '<':
60
+ return a < b - EPS;
61
+ case '<=':
62
+ return a <= b + EPS;
63
+ case '>':
64
+ return a > b + EPS;
65
+ case '>=':
66
+ return a >= b - EPS;
67
+ }
68
+ }
69
+ /**
70
+ * Evalúa una fórmula proposicional / aritmética (sin modalidades) sobre
71
+ * un estado concreto. Para fórmulas con [α]/⟨α⟩ se requiere el motor de
72
+ * tableau (`tableau.ts`).
73
+ */
74
+ function evalQuantifierFree(f, s) {
75
+ switch (f.kind) {
76
+ case 'true':
77
+ return true;
78
+ case 'false':
79
+ return false;
80
+ case 'comp':
81
+ return evalComp(f.op, evalTerm(f.left, s), evalTerm(f.right, s));
82
+ case 'not':
83
+ return !evalQuantifierFree(f.arg, s);
84
+ case 'and':
85
+ return evalQuantifierFree(f.left, s) && evalQuantifierFree(f.right, s);
86
+ case 'or':
87
+ return evalQuantifierFree(f.left, s) || evalQuantifierFree(f.right, s);
88
+ case 'implies':
89
+ return !evalQuantifierFree(f.left, s) || evalQuantifierFree(f.right, s);
90
+ case 'iff':
91
+ return evalQuantifierFree(f.left, s) === evalQuantifierFree(f.right, s);
92
+ case 'box':
93
+ case 'diamond':
94
+ throw new Error('evalQuantifierFree no maneja modalidades; usar tableau.');
95
+ }
96
+ }
97
+ /** Substitución de un término por otro dentro de un término. */
98
+ function substTerm(t, varName, replacement) {
99
+ switch (t.kind) {
100
+ case 'num':
101
+ return t;
102
+ case 'var':
103
+ return t.name === varName ? replacement : t;
104
+ case 'plus':
105
+ return {
106
+ kind: 'plus',
107
+ left: substTerm(t.left, varName, replacement),
108
+ right: substTerm(t.right, varName, replacement),
109
+ };
110
+ case 'minus':
111
+ return {
112
+ kind: 'minus',
113
+ left: substTerm(t.left, varName, replacement),
114
+ right: substTerm(t.right, varName, replacement),
115
+ };
116
+ case 'times':
117
+ return {
118
+ kind: 'times',
119
+ left: substTerm(t.left, varName, replacement),
120
+ right: substTerm(t.right, varName, replacement),
121
+ };
122
+ case 'div':
123
+ return {
124
+ kind: 'div',
125
+ left: substTerm(t.left, varName, replacement),
126
+ right: substTerm(t.right, varName, replacement),
127
+ };
128
+ case 'neg':
129
+ return { kind: 'neg', arg: substTerm(t.arg, varName, replacement) };
130
+ case 'pow':
131
+ return { kind: 'pow', base: substTerm(t.base, varName, replacement), exp: t.exp };
132
+ }
133
+ }
134
+ /** Substitución dentro de una fórmula (sólo a través de comparaciones). */
135
+ function substFormula(f, varName, replacement) {
136
+ switch (f.kind) {
137
+ case 'true':
138
+ case 'false':
139
+ return f;
140
+ case 'comp':
141
+ return {
142
+ kind: 'comp',
143
+ op: f.op,
144
+ left: substTerm(f.left, varName, replacement),
145
+ right: substTerm(f.right, varName, replacement),
146
+ };
147
+ case 'not':
148
+ return { kind: 'not', arg: substFormula(f.arg, varName, replacement) };
149
+ case 'and':
150
+ return {
151
+ kind: 'and',
152
+ left: substFormula(f.left, varName, replacement),
153
+ right: substFormula(f.right, varName, replacement),
154
+ };
155
+ case 'or':
156
+ return {
157
+ kind: 'or',
158
+ left: substFormula(f.left, varName, replacement),
159
+ right: substFormula(f.right, varName, replacement),
160
+ };
161
+ case 'implies':
162
+ return {
163
+ kind: 'implies',
164
+ left: substFormula(f.left, varName, replacement),
165
+ right: substFormula(f.right, varName, replacement),
166
+ };
167
+ case 'iff':
168
+ return {
169
+ kind: 'iff',
170
+ left: substFormula(f.left, varName, replacement),
171
+ right: substFormula(f.right, varName, replacement),
172
+ };
173
+ case 'box':
174
+ case 'diamond':
175
+ // No se hace alfa-renaming: si la variable es modificada dentro del
176
+ // programa la substitución podría capturar; el tableau se encarga
177
+ // de no introducir estas situaciones (asigna desde el estado actual).
178
+ return f;
179
+ }
180
+ }
181
+ //# sourceMappingURL=semantics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics.js","sourceRoot":"","sources":["../../../../src/logic/profiles/dl-hybrid/semantics.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4EAA4E;AAC5E,+DAA+D;AAC/D,wEAAwE;AACxE,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,gCAAgC;AAChC,EAAE;AACF,gBAAgB;AAChB,0EAA0E;AAC1E,+DAA+D;AAC/D,kEAAkE;AAClE,+DAA+D;;AAO/D,4BAwBC;AAGD,4BAgBC;AAOD,gDAsBC;AAGD,8BAmCC;AAGD,oCA6CC;AAjKD,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB,kDAAkD;AAClD,SAAgB,QAAQ,CAAC,CAAS,EAAE,CAAQ;IAC1C,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;gBAAE,OAAO,GAAG,CAAC;YACpC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QACnC,CAAC;QACD,KAAK,KAAK;YACR,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7B,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,SAAgB,QAAQ,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS;IACvD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,GAAG;YACN,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC/B,KAAK,IAAI;YACP,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACtB,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,CAAY,EAAE,CAAQ;IACvD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,KAAK,KAAK;YACR,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvC,KAAK,KAAK;YACR,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzE,KAAK,IAAI;YACP,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzE,KAAK,SAAS;YACZ,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1E,KAAK,KAAK;YACR,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1E,KAAK,KAAK,CAAC;QACX,KAAK,SAAS;YACZ,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAgB,SAAS,CAAC,CAAS,EAAE,OAAe,EAAE,WAAmB;IACvE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,CAAC,CAAC;QACX,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAC7C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aAChD,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAC7C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aAChD,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAC7C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aAChD,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAC7C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aAChD,CAAC;QACJ,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QACtE,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAgB,YAAY,CAAC,CAAY,EAAE,OAAe,EAAE,WAAmB;IAC7E,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,CAAC,CAAC;QACX,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAC7C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aAChD,CAAC;QACJ,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QACzE,KAAK,KAAK;YACR,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAChD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aACnD,CAAC;QACJ,KAAK,IAAI;YACP,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAChD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aACnD,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAChD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aACnD,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;gBAChD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;aACnD,CAAC;QACJ,KAAK,KAAK,CAAC;QACX,KAAK,SAAS;YACZ,oEAAoE;YACpE,kEAAkE;YAClE,sEAAsE;YACtE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { DLFormula, State } from './ast';
2
+ export interface DLOptions {
3
+ /** Profundidad máxima al desenrollar loops `α*`. */
4
+ loopUnfold?: number;
5
+ /** Cantidad de muestras temporales para evaluar ODEs continuas. */
6
+ odeSamples?: number;
7
+ /** Horizonte temporal máximo a explorar en ODEs. */
8
+ odeHorizon?: number;
9
+ /** Cantidad de valores muestrales para `x := *`. */
10
+ nondetSamples?: number[];
11
+ /** Estados iniciales explícitos. Si vacío, se genera una malla cubriendo las variables relevantes. */
12
+ initialStates?: State[];
13
+ /** Valores muestrales por defecto para construir la malla de iniciales. */
14
+ initialMesh?: number[];
15
+ }
16
+ /** Decisión: la fórmula es válida (vale en todo estado muestreado). */
17
+ export interface DLCheckResult {
18
+ status: 'valid' | 'invalid' | 'satisfiable' | 'unsatisfiable' | 'unknown';
19
+ /** Contramodelo o testigo si aplica. */
20
+ witness?: State;
21
+ /** Cantidad de estados muestreados. */
22
+ statesChecked: number;
23
+ }
24
+ /**
25
+ * Decide si `f` es válida sobre toda la malla muestreada (criterio de
26
+ * validez universal acotada). Si encuentra contraejemplo lo retorna.
27
+ */
28
+ export declare function checkValid(f: DLFormula, opts?: DLOptions): DLCheckResult;
29
+ /** Decide si `f` es satisfacible en algún estado muestreado. */
30
+ export declare function checkSatisfiable(f: DLFormula, opts?: DLOptions): DLCheckResult;
31
+ /**
32
+ * Evalúa la fórmula en un estado específico — útil para casos donde el
33
+ * usuario quiere chequear desde una pre-condición concreta.
34
+ */
35
+ export declare function evalInState(f: DLFormula, s: State, opts?: DLOptions): boolean;
36
+ /** Re-export utilitario: lista de variables relevantes en la fórmula. */
37
+ export declare function relevantVariables(f: DLFormula): string[];
38
+ //# sourceMappingURL=tableau.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableau.d.ts","sourceRoot":"","sources":["../../../../src/logic/profiles/dl-hybrid/tableau.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,SAAS,EAAyB,KAAK,EAAE,MAAM,OAAO,CAAC;AAKrE,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sGAAsG;IACtG,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IACxB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AA0MD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,CAAC;IAC1E,wCAAwC;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,CASxE;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,CAS9E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAE7E;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAgBxD"}
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST dL-Hybrid — Decision procedure tipo tableau (subset)
4
+ // ============================================================
5
+ // Implementación pragmática y *no* completa del cálculo de pruebas de dL.
6
+ // La idea: en lugar de un cálculo simbólico KeYmaera-completo, modelamos
7
+ // el espacio de estados con muestreo sobre un conjunto finito de estados
8
+ // iniciales generados a partir de la fórmula y exploramos las posibles
9
+ // trayectorias del programa híbrido.
10
+ //
11
+ // Decisión:
12
+ // • Para mostrar `validez universal` exigimos que NO exista un estado
13
+ // en el universo finito muestreado que produzca un contraejemplo.
14
+ // • Para `satisfiabilidad` basta con encontrar un estado donde la
15
+ // fórmula se cumple.
16
+ //
17
+ // Este enfoque cubre los ejemplos canónicos del paper de Platzer con
18
+ // dominio acotado y se comporta como un "model-finder con horizonte
19
+ // finito" en lugar de un decision procedure completo. Para ODEs no
20
+ // soportadas (clasifyOde → unsupported) responde `unknown`.
21
+ //
22
+ // Reglas operativas para [α]φ:
23
+ // • [x := e] φ → φ[e/x] evaluado en estado actual
24
+ // • [x := *] φ → ∀v . φ[v/x] aproximado con malla
25
+ // • [?ψ] φ → ψ → φ
26
+ // • [α; β] φ → [α][β] φ
27
+ // • [α ∪ β] φ → [α]φ ∧ [β]φ
28
+ // • [α*] φ → φ ∧ [α]φ ∧ [α;α]φ ∧ … (unfold a profundidad N)
29
+ // • [{x'=f & Q}] φ → ∀t≥0 . (∀s∈[0,t] . Q(x(s))) → φ(x(t))
30
+ // muestreado con malla temporal.
31
+ // ============================================================
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.checkValid = checkValid;
34
+ exports.checkSatisfiable = checkSatisfiable;
35
+ exports.evalInState = evalInState;
36
+ exports.relevantVariables = relevantVariables;
37
+ const ast_1 = require("./ast");
38
+ const semantics_1 = require("./semantics");
39
+ const differential_1 = require("./differential");
40
+ const DEFAULTS = {
41
+ loopUnfold: 3,
42
+ odeSamples: 9,
43
+ odeHorizon: 5,
44
+ nondetSamples: [-2, -1, 0, 1, 2],
45
+ initialStates: [],
46
+ initialMesh: [-1, 0, 1, 2],
47
+ };
48
+ function withDefaults(opts) {
49
+ return { ...DEFAULTS, ...(opts ?? {}) };
50
+ }
51
+ /**
52
+ * Devuelve TODOS los estados de salida posibles tras ejecutar `prog`
53
+ * desde `s`. Para tests bloqueantes devuelve outcomes=[] con blocked=true.
54
+ * No es exhaustivo: muestrea estados.
55
+ */
56
+ function executeProgram(prog, s, opts) {
57
+ switch (prog.kind) {
58
+ case 'assign': {
59
+ const next = (0, ast_1.cloneState)(s);
60
+ next.set(prog.varName, (0, semantics_1.evalTerm)(prog.rhs, s));
61
+ return { outcomes: [next] };
62
+ }
63
+ case 'nondet': {
64
+ const out = [];
65
+ for (const v of opts.nondetSamples) {
66
+ const ns = (0, ast_1.cloneState)(s);
67
+ ns.set(prog.varName, v);
68
+ out.push(ns);
69
+ }
70
+ return { outcomes: out };
71
+ }
72
+ case 'test': {
73
+ if ((0, semantics_1.evalQuantifierFree)(prog.cond, s))
74
+ return { outcomes: [s] };
75
+ return { outcomes: [], blocked: true };
76
+ }
77
+ case 'seq': {
78
+ const first = executeProgram(prog.left, s, opts);
79
+ const combined = [];
80
+ for (const mid of first.outcomes) {
81
+ const after = executeProgram(prog.right, mid, opts);
82
+ combined.push(...after.outcomes);
83
+ }
84
+ return { outcomes: combined };
85
+ }
86
+ case 'choice': {
87
+ const a = executeProgram(prog.left, s, opts);
88
+ const b = executeProgram(prog.right, s, opts);
89
+ return { outcomes: [...a.outcomes, ...b.outcomes] };
90
+ }
91
+ case 'loop': {
92
+ // Desenrolla hasta loopUnfold iteraciones; cada k es una posible salida.
93
+ const outcomes = [(0, ast_1.cloneState)(s)];
94
+ let current = [(0, ast_1.cloneState)(s)];
95
+ for (let k = 0; k < opts.loopUnfold; k++) {
96
+ const next = [];
97
+ for (const st of current) {
98
+ const step = executeProgram(prog.body, st, opts);
99
+ next.push(...step.outcomes);
100
+ }
101
+ if (next.length === 0)
102
+ break;
103
+ outcomes.push(...next);
104
+ current = next;
105
+ }
106
+ return { outcomes };
107
+ }
108
+ case 'ode': {
109
+ const klass = (0, differential_1.classifyOde)(prog.system);
110
+ if (klass.kind === 'unsupported') {
111
+ // No podemos evaluar — devolvemos un outcome especial: el propio
112
+ // estado, marcando blocked si no hay dominio para verificar.
113
+ return { outcomes: [s], blocked: false };
114
+ }
115
+ const out = [];
116
+ const dt = opts.odeHorizon / Math.max(1, opts.odeSamples - 1);
117
+ for (let i = 0; i < opts.odeSamples; i++) {
118
+ const t = i * dt;
119
+ const ns = (0, differential_1.flow)(prog.system, s, t);
120
+ // Verifica dominio: si dominio falla en algún punto del segmento
121
+ // [0, t] descartamos. Aproximamos con malla.
122
+ if (prog.system.domain) {
123
+ let ok = true;
124
+ for (let j = 0; j <= i; j++) {
125
+ const tau = j * dt;
126
+ const inter = (0, differential_1.flow)(prog.system, s, tau);
127
+ if (!(0, semantics_1.evalQuantifierFree)(prog.system.domain, inter)) {
128
+ ok = false;
129
+ break;
130
+ }
131
+ }
132
+ if (!ok)
133
+ continue;
134
+ }
135
+ out.push(ns);
136
+ }
137
+ // Siempre incluir t=0 al menos
138
+ if (out.length === 0)
139
+ out.push((0, ast_1.cloneState)(s));
140
+ return { outcomes: out };
141
+ }
142
+ }
143
+ }
144
+ /**
145
+ * Evalúa una fórmula dL sobre un estado concreto. Para modalidades
146
+ * recurre a `executeProgram`.
147
+ */
148
+ function evalFormula(f, s, opts) {
149
+ switch (f.kind) {
150
+ case 'true':
151
+ return true;
152
+ case 'false':
153
+ return false;
154
+ case 'comp':
155
+ return (0, semantics_1.evalQuantifierFree)(f, s);
156
+ case 'not':
157
+ return !evalFormula(f.arg, s, opts);
158
+ case 'and':
159
+ return evalFormula(f.left, s, opts) && evalFormula(f.right, s, opts);
160
+ case 'or':
161
+ return evalFormula(f.left, s, opts) || evalFormula(f.right, s, opts);
162
+ case 'implies':
163
+ return !evalFormula(f.left, s, opts) || evalFormula(f.right, s, opts);
164
+ case 'iff':
165
+ return evalFormula(f.left, s, opts) === evalFormula(f.right, s, opts);
166
+ case 'box': {
167
+ const step = executeProgram(f.program, s, opts);
168
+ // [α]φ: en TODOS los outcomes φ debe valer.
169
+ // Si el test bloquea (sin outcomes), [?ψ]φ es vacuously true.
170
+ for (const out of step.outcomes) {
171
+ if (!evalFormula(f.post, out, opts))
172
+ return false;
173
+ }
174
+ return true;
175
+ }
176
+ case 'diamond': {
177
+ const step = executeProgram(f.program, s, opts);
178
+ // ⟨α⟩φ: existe un outcome donde φ vale.
179
+ for (const out of step.outcomes) {
180
+ if (evalFormula(f.post, out, opts))
181
+ return true;
182
+ }
183
+ return false;
184
+ }
185
+ }
186
+ }
187
+ /** Genera una malla de estados iniciales según las variables libres de la fórmula. */
188
+ function generateInitialStates(f, opts) {
189
+ if (opts.initialStates.length > 0)
190
+ return opts.initialStates;
191
+ const vars = Array.from((0, ast_1.formulaVars)(f));
192
+ // También variables modificadas dentro de programas (parten de un valor inicial).
193
+ if (vars.length === 0)
194
+ return [new Map()];
195
+ // Producto cartesiano de la malla — limita a 4 vars máx para evitar explosión.
196
+ if (vars.length > 4) {
197
+ // Modo light: usa sólo {0, 1, -1} para cada var y limita combinaciones.
198
+ const mesh = [-1, 0, 1];
199
+ const states = [];
200
+ // Una muestra "todo a v" por cada v
201
+ for (const v of mesh) {
202
+ const s = new Map();
203
+ for (const x of vars)
204
+ s.set(x, v);
205
+ states.push(s);
206
+ }
207
+ // Una muestra mixta: variable individual con valor distinto
208
+ for (let i = 0; i < vars.length; i++) {
209
+ for (const v of mesh) {
210
+ const s = new Map();
211
+ for (let j = 0; j < vars.length; j++) {
212
+ s.set(vars[j] ?? '', j === i ? v : 0);
213
+ }
214
+ states.push(s);
215
+ }
216
+ }
217
+ return states;
218
+ }
219
+ const mesh = opts.initialMesh;
220
+ const result = [];
221
+ const recurse = (idx, current) => {
222
+ if (idx === vars.length) {
223
+ result.push(new Map(current));
224
+ return;
225
+ }
226
+ const v = vars[idx];
227
+ if (!v)
228
+ return;
229
+ for (const val of mesh) {
230
+ current.set(v, val);
231
+ recurse(idx + 1, current);
232
+ }
233
+ };
234
+ recurse(0, new Map());
235
+ return result;
236
+ }
237
+ /**
238
+ * Decide si `f` es válida sobre toda la malla muestreada (criterio de
239
+ * validez universal acotada). Si encuentra contraejemplo lo retorna.
240
+ */
241
+ function checkValid(f, opts) {
242
+ const o = withDefaults(opts);
243
+ const states = generateInitialStates(f, o);
244
+ for (const s of states) {
245
+ if (!evalFormula(f, s, o)) {
246
+ return { status: 'invalid', witness: s, statesChecked: states.length };
247
+ }
248
+ }
249
+ return { status: 'valid', statesChecked: states.length };
250
+ }
251
+ /** Decide si `f` es satisfacible en algún estado muestreado. */
252
+ function checkSatisfiable(f, opts) {
253
+ const o = withDefaults(opts);
254
+ const states = generateInitialStates(f, o);
255
+ for (const s of states) {
256
+ if (evalFormula(f, s, o)) {
257
+ return { status: 'satisfiable', witness: s, statesChecked: states.length };
258
+ }
259
+ }
260
+ return { status: 'unsatisfiable', statesChecked: states.length };
261
+ }
262
+ /**
263
+ * Evalúa la fórmula en un estado específico — útil para casos donde el
264
+ * usuario quiere chequear desde una pre-condición concreta.
265
+ */
266
+ function evalInState(f, s, opts) {
267
+ return evalFormula(f, s, withDefaults(opts));
268
+ }
269
+ /** Re-export utilitario: lista de variables relevantes en la fórmula. */
270
+ function relevantVariables(f) {
271
+ const acc = (0, ast_1.formulaVars)(f);
272
+ // Incluir variables que sólo aparecen dentro de programas modales
273
+ const inner = (g) => {
274
+ if (g.kind === 'box' || g.kind === 'diamond') {
275
+ (0, ast_1.programVars)(g.program, acc);
276
+ inner(g.post);
277
+ }
278
+ else if (g.kind === 'and' || g.kind === 'or' || g.kind === 'implies' || g.kind === 'iff') {
279
+ inner(g.left);
280
+ inner(g.right);
281
+ }
282
+ else if (g.kind === 'not') {
283
+ inner(g.arg);
284
+ }
285
+ };
286
+ inner(f);
287
+ return Array.from(acc);
288
+ }
289
+ //# sourceMappingURL=tableau.js.map