@stevenvo780/st-lang 4.5.1 → 4.6.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 (465) hide show
  1. package/dist/bdd/index.d.ts +4 -0
  2. package/dist/bdd/index.d.ts.map +1 -0
  3. package/dist/bdd/index.js +29 -0
  4. package/dist/bdd/index.js.map +1 -0
  5. package/dist/bdd/manager.d.ts +122 -0
  6. package/dist/bdd/manager.d.ts.map +1 -0
  7. package/dist/bdd/manager.js +524 -0
  8. package/dist/bdd/manager.js.map +1 -0
  9. package/dist/bdd/types.d.ts +20 -0
  10. package/dist/bdd/types.d.ts.map +1 -0
  11. package/dist/bdd/types.js +28 -0
  12. package/dist/bdd/types.js.map +1 -0
  13. package/dist/categorical/fin-set.d.ts +39 -0
  14. package/dist/categorical/fin-set.d.ts.map +1 -0
  15. package/dist/categorical/fin-set.js +217 -0
  16. package/dist/categorical/fin-set.js.map +1 -0
  17. package/dist/categorical/free.d.ts +23 -0
  18. package/dist/categorical/free.d.ts.map +1 -0
  19. package/dist/categorical/free.js +168 -0
  20. package/dist/categorical/free.js.map +1 -0
  21. package/dist/categorical/functor.d.ts +40 -0
  22. package/dist/categorical/functor.d.ts.map +1 -0
  23. package/dist/categorical/functor.js +139 -0
  24. package/dist/categorical/functor.js.map +1 -0
  25. package/dist/categorical/index.d.ts +11 -0
  26. package/dist/categorical/index.d.ts.map +1 -0
  27. package/dist/categorical/index.js +33 -0
  28. package/dist/categorical/index.js.map +1 -0
  29. package/dist/categorical/limits.d.ts +64 -0
  30. package/dist/categorical/limits.d.ts.map +1 -0
  31. package/dist/categorical/limits.js +248 -0
  32. package/dist/categorical/limits.js.map +1 -0
  33. package/dist/categorical/monoidal.d.ts +14 -0
  34. package/dist/categorical/monoidal.d.ts.map +1 -0
  35. package/dist/categorical/monoidal.js +148 -0
  36. package/dist/categorical/monoidal.js.map +1 -0
  37. package/dist/categorical/poset.d.ts +14 -0
  38. package/dist/categorical/poset.d.ts.map +1 -0
  39. package/dist/categorical/poset.js +115 -0
  40. package/dist/categorical/poset.js.map +1 -0
  41. package/dist/categorical/types.d.ts +111 -0
  42. package/dist/categorical/types.d.ts.map +1 -0
  43. package/dist/categorical/types.js +15 -0
  44. package/dist/categorical/types.js.map +1 -0
  45. package/dist/csp-hoare/analysis.d.ts +51 -0
  46. package/dist/csp-hoare/analysis.d.ts.map +1 -0
  47. package/dist/csp-hoare/analysis.js +317 -0
  48. package/dist/csp-hoare/analysis.js.map +1 -0
  49. package/dist/csp-hoare/examples.d.ts +33 -0
  50. package/dist/csp-hoare/examples.d.ts.map +1 -0
  51. package/dist/csp-hoare/examples.js +108 -0
  52. package/dist/csp-hoare/examples.js.map +1 -0
  53. package/dist/csp-hoare/index.d.ts +6 -0
  54. package/dist/csp-hoare/index.d.ts.map +1 -0
  55. package/dist/csp-hoare/index.js +50 -0
  56. package/dist/csp-hoare/index.js.map +1 -0
  57. package/dist/csp-hoare/semantics.d.ts +49 -0
  58. package/dist/csp-hoare/semantics.d.ts.map +1 -0
  59. package/dist/csp-hoare/semantics.js +494 -0
  60. package/dist/csp-hoare/semantics.js.map +1 -0
  61. package/dist/csp-hoare/types.d.ts +60 -0
  62. package/dist/csp-hoare/types.d.ts.map +1 -0
  63. package/dist/csp-hoare/types.js +31 -0
  64. package/dist/csp-hoare/types.js.map +1 -0
  65. package/dist/game-theory/common-games.d.ts +50 -0
  66. package/dist/game-theory/common-games.d.ts.map +1 -0
  67. package/dist/game-theory/common-games.js +112 -0
  68. package/dist/game-theory/common-games.js.map +1 -0
  69. package/dist/game-theory/dominance.d.ts +26 -0
  70. package/dist/game-theory/dominance.d.ts.map +1 -0
  71. package/dist/game-theory/dominance.js +203 -0
  72. package/dist/game-theory/dominance.js.map +1 -0
  73. package/dist/game-theory/index.d.ts +8 -0
  74. package/dist/game-theory/index.d.ts.map +1 -0
  75. package/dist/game-theory/index.js +47 -0
  76. package/dist/game-theory/index.js.map +1 -0
  77. package/dist/game-theory/lemke-howson.d.ts +3 -0
  78. package/dist/game-theory/lemke-howson.d.ts.map +1 -0
  79. package/dist/game-theory/lemke-howson.js +269 -0
  80. package/dist/game-theory/lemke-howson.js.map +1 -0
  81. package/dist/game-theory/linalg.d.ts +7 -0
  82. package/dist/game-theory/linalg.d.ts.map +1 -0
  83. package/dist/game-theory/linalg.js +69 -0
  84. package/dist/game-theory/linalg.js.map +1 -0
  85. package/dist/game-theory/pure-nash.d.ts +3 -0
  86. package/dist/game-theory/pure-nash.d.ts.map +1 -0
  87. package/dist/game-theory/pure-nash.js +86 -0
  88. package/dist/game-theory/pure-nash.js.map +1 -0
  89. package/dist/game-theory/support-enumeration.d.ts +3 -0
  90. package/dist/game-theory/support-enumeration.d.ts.map +1 -0
  91. package/dist/game-theory/support-enumeration.js +214 -0
  92. package/dist/game-theory/support-enumeration.js.map +1 -0
  93. package/dist/game-theory/types.d.ts +57 -0
  94. package/dist/game-theory/types.d.ts.map +1 -0
  95. package/dist/game-theory/types.js +191 -0
  96. package/dist/game-theory/types.js.map +1 -0
  97. package/dist/hindley-milner/index.d.ts +7 -0
  98. package/dist/hindley-milner/index.d.ts.map +1 -0
  99. package/dist/hindley-milner/index.js +60 -0
  100. package/dist/hindley-milner/index.js.map +1 -0
  101. package/dist/hindley-milner/infer.d.ts +26 -0
  102. package/dist/hindley-milner/infer.d.ts.map +1 -0
  103. package/dist/hindley-milner/infer.js +278 -0
  104. package/dist/hindley-milner/infer.js.map +1 -0
  105. package/dist/hindley-milner/substitution.d.ts +21 -0
  106. package/dist/hindley-milner/substitution.d.ts.map +1 -0
  107. package/dist/hindley-milner/substitution.js +215 -0
  108. package/dist/hindley-milner/substitution.js.map +1 -0
  109. package/dist/hindley-milner/types.d.ts +84 -0
  110. package/dist/hindley-milner/types.d.ts.map +1 -0
  111. package/dist/hindley-milner/types.js +166 -0
  112. package/dist/hindley-milner/types.js.map +1 -0
  113. package/dist/hott/equality.d.ts +4 -0
  114. package/dist/hott/equality.d.ts.map +1 -0
  115. package/dist/hott/equality.js +108 -0
  116. package/dist/hott/equality.js.map +1 -0
  117. package/dist/hott/index.d.ts +13 -0
  118. package/dist/hott/index.d.ts.map +1 -0
  119. package/dist/hott/index.js +77 -0
  120. package/dist/hott/index.js.map +1 -0
  121. package/dist/hott/infer.d.ts +11 -0
  122. package/dist/hott/infer.d.ts.map +1 -0
  123. package/dist/hott/infer.js +465 -0
  124. package/dist/hott/infer.js.map +1 -0
  125. package/dist/hott/normalize.d.ts +5 -0
  126. package/dist/hott/normalize.d.ts.map +1 -0
  127. package/dist/hott/normalize.js +240 -0
  128. package/dist/hott/normalize.js.map +1 -0
  129. package/dist/hott/path-algebra.d.ts +25 -0
  130. package/dist/hott/path-algebra.d.ts.map +1 -0
  131. package/dist/hott/path-algebra.js +67 -0
  132. package/dist/hott/path-algebra.js.map +1 -0
  133. package/dist/hott/substitute.d.ts +3 -0
  134. package/dist/hott/substitute.d.ts.map +1 -0
  135. package/dist/hott/substitute.js +131 -0
  136. package/dist/hott/substitute.js.map +1 -0
  137. package/dist/hott/types.d.ts +126 -0
  138. package/dist/hott/types.d.ts.map +1 -0
  139. package/dist/hott/types.js +346 -0
  140. package/dist/hott/types.js.map +1 -0
  141. package/dist/index.d.ts +16 -1
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +83 -3
  144. package/dist/index.js.map +1 -1
  145. package/dist/information-theory/index.d.ts +29 -0
  146. package/dist/information-theory/index.d.ts.map +1 -0
  147. package/dist/information-theory/index.js +323 -0
  148. package/dist/information-theory/index.js.map +1 -0
  149. package/dist/lemma-synthesis/index.d.ts +124 -0
  150. package/dist/lemma-synthesis/index.d.ts.map +1 -0
  151. package/dist/lemma-synthesis/index.js +640 -0
  152. package/dist/lemma-synthesis/index.js.map +1 -0
  153. package/dist/namespaces/logic.d.ts +42 -0
  154. package/dist/namespaces/logic.d.ts.map +1 -0
  155. package/dist/namespaces/logic.js +112 -0
  156. package/dist/namespaces/logic.js.map +1 -0
  157. package/dist/namespaces/proof-systems.d.ts +18 -0
  158. package/dist/namespaces/proof-systems.d.ts.map +1 -0
  159. package/dist/namespaces/proof-systems.js +59 -0
  160. package/dist/namespaces/proof-systems.js.map +1 -0
  161. package/dist/namespaces/reasoning.d.ts +26 -0
  162. package/dist/namespaces/reasoning.d.ts.map +1 -0
  163. package/dist/namespaces/reasoning.js +72 -0
  164. package/dist/namespaces/reasoning.js.map +1 -0
  165. package/dist/namespaces/semantics.d.ts +21 -0
  166. package/dist/namespaces/semantics.d.ts.map +1 -0
  167. package/dist/namespaces/semantics.js +64 -0
  168. package/dist/namespaces/semantics.js.map +1 -0
  169. package/dist/namespaces/solvers.d.ts +22 -0
  170. package/dist/namespaces/solvers.d.ts.map +1 -0
  171. package/dist/namespaces/solvers.js +66 -0
  172. package/dist/namespaces/solvers.js.map +1 -0
  173. package/dist/namespaces/type-theory.d.ts +22 -0
  174. package/dist/namespaces/type-theory.d.ts.map +1 -0
  175. package/dist/namespaces/type-theory.js +65 -0
  176. package/dist/namespaces/type-theory.js.map +1 -0
  177. package/dist/optimization/branch-and-bound.d.ts +11 -0
  178. package/dist/optimization/branch-and-bound.d.ts.map +1 -0
  179. package/dist/optimization/branch-and-bound.js +311 -0
  180. package/dist/optimization/branch-and-bound.js.map +1 -0
  181. package/dist/optimization/index.d.ts +5 -0
  182. package/dist/optimization/index.d.ts.map +1 -0
  183. package/dist/optimization/index.js +20 -0
  184. package/dist/optimization/index.js.map +1 -0
  185. package/dist/optimization/simplex.d.ts +8 -0
  186. package/dist/optimization/simplex.d.ts.map +1 -0
  187. package/dist/optimization/simplex.js +408 -0
  188. package/dist/optimization/simplex.js.map +1 -0
  189. package/dist/optimization/standard-form.d.ts +11 -0
  190. package/dist/optimization/standard-form.d.ts.map +1 -0
  191. package/dist/optimization/standard-form.js +112 -0
  192. package/dist/optimization/standard-form.js.map +1 -0
  193. package/dist/optimization/types.d.ts +44 -0
  194. package/dist/optimization/types.d.ts.map +1 -0
  195. package/dist/optimization/types.js +15 -0
  196. package/dist/optimization/types.js.map +1 -0
  197. package/dist/profiles/hol/connectives.d.ts +46 -0
  198. package/dist/profiles/hol/connectives.d.ts.map +1 -0
  199. package/dist/profiles/hol/connectives.js +104 -0
  200. package/dist/profiles/hol/connectives.js.map +1 -0
  201. package/dist/profiles/hol/index.d.ts +7 -0
  202. package/dist/profiles/hol/index.d.ts.map +1 -0
  203. package/dist/profiles/hol/index.js +77 -0
  204. package/dist/profiles/hol/index.js.map +1 -0
  205. package/dist/profiles/hol/rules.d.ts +31 -0
  206. package/dist/profiles/hol/rules.d.ts.map +1 -0
  207. package/dist/profiles/hol/rules.js +258 -0
  208. package/dist/profiles/hol/rules.js.map +1 -0
  209. package/dist/profiles/hol/term.d.ts +52 -0
  210. package/dist/profiles/hol/term.d.ts.map +1 -0
  211. package/dist/profiles/hol/term.js +345 -0
  212. package/dist/profiles/hol/term.js.map +1 -0
  213. package/dist/profiles/hol/type-system.d.ts +38 -0
  214. package/dist/profiles/hol/type-system.d.ts.map +1 -0
  215. package/dist/profiles/hol/type-system.js +133 -0
  216. package/dist/profiles/hol/type-system.js.map +1 -0
  217. package/dist/profiles/hol/types.d.ts +59 -0
  218. package/dist/profiles/hol/types.d.ts.map +1 -0
  219. package/dist/profiles/hol/types.js +26 -0
  220. package/dist/profiles/hol/types.js.map +1 -0
  221. package/dist/smt-lib/ast.d.ts +138 -0
  222. package/dist/smt-lib/ast.d.ts.map +1 -0
  223. package/dist/smt-lib/ast.js +73 -0
  224. package/dist/smt-lib/ast.js.map +1 -0
  225. package/dist/smt-lib/emitter.d.ts +12 -0
  226. package/dist/smt-lib/emitter.d.ts.map +1 -0
  227. package/dist/smt-lib/emitter.js +174 -0
  228. package/dist/smt-lib/emitter.js.map +1 -0
  229. package/dist/smt-lib/index.d.ts +6 -0
  230. package/dist/smt-lib/index.d.ts.map +1 -0
  231. package/dist/smt-lib/index.js +31 -0
  232. package/dist/smt-lib/index.js.map +1 -0
  233. package/dist/smt-lib/parser.d.ts +13 -0
  234. package/dist/smt-lib/parser.d.ts.map +1 -0
  235. package/dist/smt-lib/parser.js +614 -0
  236. package/dist/smt-lib/parser.js.map +1 -0
  237. package/dist/smt-lib/tokenizer.d.ts +16 -0
  238. package/dist/smt-lib/tokenizer.d.ts.map +1 -0
  239. package/dist/smt-lib/tokenizer.js +234 -0
  240. package/dist/smt-lib/tokenizer.js.map +1 -0
  241. package/dist/tactic-dsl/combinators.d.ts +6 -0
  242. package/dist/tactic-dsl/combinators.d.ts.map +1 -0
  243. package/dist/tactic-dsl/combinators.js +98 -0
  244. package/dist/tactic-dsl/combinators.js.map +1 -0
  245. package/dist/tactic-dsl/index.d.ts +39 -0
  246. package/dist/tactic-dsl/index.d.ts.map +1 -0
  247. package/dist/tactic-dsl/index.js +162 -0
  248. package/dist/tactic-dsl/index.js.map +1 -0
  249. package/dist/tactic-dsl/tactics.d.ts +21 -0
  250. package/dist/tactic-dsl/tactics.d.ts.map +1 -0
  251. package/dist/tactic-dsl/tactics.js +536 -0
  252. package/dist/tactic-dsl/tactics.js.map +1 -0
  253. package/dist/tactic-dsl/types.d.ts +54 -0
  254. package/dist/tactic-dsl/types.d.ts.map +1 -0
  255. package/dist/tactic-dsl/types.js +226 -0
  256. package/dist/tactic-dsl/types.js.map +1 -0
  257. package/dist/tests/api/namespaces.test.d.ts +9 -0
  258. package/dist/tests/api/namespaces.test.d.ts.map +1 -0
  259. package/dist/tests/api/namespaces.test.js +218 -0
  260. package/dist/tests/api/namespaces.test.js.map +1 -0
  261. package/dist/tests/bdd/manager.test.d.ts +2 -0
  262. package/dist/tests/bdd/manager.test.d.ts.map +1 -0
  263. package/dist/tests/bdd/manager.test.js +472 -0
  264. package/dist/tests/bdd/manager.test.js.map +1 -0
  265. package/dist/tests/categorical/categorical.test.d.ts +2 -0
  266. package/dist/tests/categorical/categorical.test.d.ts.map +1 -0
  267. package/dist/tests/categorical/categorical.test.js +300 -0
  268. package/dist/tests/categorical/categorical.test.js.map +1 -0
  269. package/dist/tests/csp-hoare/csp-hoare.test.d.ts +2 -0
  270. package/dist/tests/csp-hoare/csp-hoare.test.d.ts.map +1 -0
  271. package/dist/tests/csp-hoare/csp-hoare.test.js +313 -0
  272. package/dist/tests/csp-hoare/csp-hoare.test.js.map +1 -0
  273. package/dist/tests/game-theory/game-theory.test.d.ts +2 -0
  274. package/dist/tests/game-theory/game-theory.test.d.ts.map +1 -0
  275. package/dist/tests/game-theory/game-theory.test.js +252 -0
  276. package/dist/tests/game-theory/game-theory.test.js.map +1 -0
  277. package/dist/tests/hindley-milner/hindley-milner.test.d.ts +2 -0
  278. package/dist/tests/hindley-milner/hindley-milner.test.d.ts.map +1 -0
  279. package/dist/tests/hindley-milner/hindley-milner.test.js +327 -0
  280. package/dist/tests/hindley-milner/hindley-milner.test.js.map +1 -0
  281. package/dist/tests/hol/hol.test.d.ts +2 -0
  282. package/dist/tests/hol/hol.test.d.ts.map +1 -0
  283. package/dist/tests/hol/hol.test.js +340 -0
  284. package/dist/tests/hol/hol.test.js.map +1 -0
  285. package/dist/tests/hott/hott.test.d.ts +2 -0
  286. package/dist/tests/hott/hott.test.d.ts.map +1 -0
  287. package/dist/tests/hott/hott.test.js +271 -0
  288. package/dist/tests/hott/hott.test.js.map +1 -0
  289. package/dist/tests/information-theory/information-theory.test.d.ts +2 -0
  290. package/dist/tests/information-theory/information-theory.test.d.ts.map +1 -0
  291. package/dist/tests/information-theory/information-theory.test.js +291 -0
  292. package/dist/tests/information-theory/information-theory.test.js.map +1 -0
  293. package/dist/tests/lemma-synthesis/lemma-synthesis.test.d.ts +2 -0
  294. package/dist/tests/lemma-synthesis/lemma-synthesis.test.d.ts.map +1 -0
  295. package/dist/tests/lemma-synthesis/lemma-synthesis.test.js +460 -0
  296. package/dist/tests/lemma-synthesis/lemma-synthesis.test.js.map +1 -0
  297. package/dist/tests/optimization/ilp.test.d.ts +2 -0
  298. package/dist/tests/optimization/ilp.test.d.ts.map +1 -0
  299. package/dist/tests/optimization/ilp.test.js +204 -0
  300. package/dist/tests/optimization/ilp.test.js.map +1 -0
  301. package/dist/tests/optimization/lp.test.d.ts +2 -0
  302. package/dist/tests/optimization/lp.test.d.ts.map +1 -0
  303. package/dist/tests/optimization/lp.test.js +224 -0
  304. package/dist/tests/optimization/lp.test.js.map +1 -0
  305. package/dist/tests/properties/agm.property.test.d.ts +2 -0
  306. package/dist/tests/properties/agm.property.test.d.ts.map +1 -0
  307. package/dist/tests/properties/agm.property.test.js +75 -0
  308. package/dist/tests/properties/agm.property.test.js.map +1 -0
  309. package/dist/tests/properties/anti-unification.property.test.d.ts +2 -0
  310. package/dist/tests/properties/anti-unification.property.test.d.ts.map +1 -0
  311. package/dist/tests/properties/anti-unification.property.test.js +43 -0
  312. package/dist/tests/properties/anti-unification.property.test.js.map +1 -0
  313. package/dist/tests/properties/argumentation.property.test.d.ts +2 -0
  314. package/dist/tests/properties/argumentation.property.test.d.ts.map +1 -0
  315. package/dist/tests/properties/argumentation.property.test.js +51 -0
  316. package/dist/tests/properties/argumentation.property.test.js.map +1 -0
  317. package/dist/tests/properties/bayesian.property.test.d.ts +2 -0
  318. package/dist/tests/properties/bayesian.property.test.d.ts.map +1 -0
  319. package/dist/tests/properties/bayesian.property.test.js +32 -0
  320. package/dist/tests/properties/bayesian.property.test.js.map +1 -0
  321. package/dist/tests/properties/bisimulation.property.test.d.ts +2 -0
  322. package/dist/tests/properties/bisimulation.property.test.d.ts.map +1 -0
  323. package/dist/tests/properties/bisimulation.property.test.js +50 -0
  324. package/dist/tests/properties/bisimulation.property.test.js.map +1 -0
  325. package/dist/tests/properties/cdcl.property.test.d.ts +2 -0
  326. package/dist/tests/properties/cdcl.property.test.d.ts.map +1 -0
  327. package/dist/tests/properties/cdcl.property.test.js +70 -0
  328. package/dist/tests/properties/cdcl.property.test.js.map +1 -0
  329. package/dist/tests/properties/coinduction.property.test.d.ts +2 -0
  330. package/dist/tests/properties/coinduction.property.test.d.ts.map +1 -0
  331. package/dist/tests/properties/coinduction.property.test.js +34 -0
  332. package/dist/tests/properties/coinduction.property.test.js.map +1 -0
  333. package/dist/tests/properties/constructive-reals.property.test.d.ts +2 -0
  334. package/dist/tests/properties/constructive-reals.property.test.d.ts.map +1 -0
  335. package/dist/tests/properties/constructive-reals.property.test.js +59 -0
  336. package/dist/tests/properties/constructive-reals.property.test.js.map +1 -0
  337. package/dist/tests/properties/csp.property.test.d.ts +2 -0
  338. package/dist/tests/properties/csp.property.test.d.ts.map +1 -0
  339. package/dist/tests/properties/csp.property.test.js +58 -0
  340. package/dist/tests/properties/csp.property.test.js.map +1 -0
  341. package/dist/tests/properties/generators.d.ts +78 -0
  342. package/dist/tests/properties/generators.d.ts.map +1 -0
  343. package/dist/tests/properties/generators.js +348 -0
  344. package/dist/tests/properties/generators.js.map +1 -0
  345. package/dist/tests/properties/ho-unify.property.test.d.ts +2 -0
  346. package/dist/tests/properties/ho-unify.property.test.d.ts.map +1 -0
  347. package/dist/tests/properties/ho-unify.property.test.js +46 -0
  348. package/dist/tests/properties/ho-unify.property.test.js.map +1 -0
  349. package/dist/tests/properties/hyperreal.property.test.d.ts +2 -0
  350. package/dist/tests/properties/hyperreal.property.test.d.ts.map +1 -0
  351. package/dist/tests/properties/hyperreal.property.test.js +33 -0
  352. package/dist/tests/properties/hyperreal.property.test.js.map +1 -0
  353. package/dist/tests/properties/intuit-nj.property.test.d.ts +2 -0
  354. package/dist/tests/properties/intuit-nj.property.test.d.ts.map +1 -0
  355. package/dist/tests/properties/intuit-nj.property.test.js +57 -0
  356. package/dist/tests/properties/intuit-nj.property.test.js.map +1 -0
  357. package/dist/tests/properties/lambda-calc.property.test.d.ts +2 -0
  358. package/dist/tests/properties/lambda-calc.property.test.d.ts.map +1 -0
  359. package/dist/tests/properties/lambda-calc.property.test.js +35 -0
  360. package/dist/tests/properties/lambda-calc.property.test.js.map +1 -0
  361. package/dist/tests/properties/mln.property.test.d.ts +2 -0
  362. package/dist/tests/properties/mln.property.test.d.ts.map +1 -0
  363. package/dist/tests/properties/mln.property.test.js +41 -0
  364. package/dist/tests/properties/mln.property.test.js.map +1 -0
  365. package/dist/tests/properties/mltt.property.test.d.ts +2 -0
  366. package/dist/tests/properties/mltt.property.test.d.ts.map +1 -0
  367. package/dist/tests/properties/mltt.property.test.js +33 -0
  368. package/dist/tests/properties/mltt.property.test.js.map +1 -0
  369. package/dist/tests/properties/nbe.property.test.d.ts +2 -0
  370. package/dist/tests/properties/nbe.property.test.d.ts.map +1 -0
  371. package/dist/tests/properties/nbe.property.test.js +44 -0
  372. package/dist/tests/properties/nbe.property.test.js.map +1 -0
  373. package/dist/tests/properties/planning.property.test.d.ts +2 -0
  374. package/dist/tests/properties/planning.property.test.d.ts.map +1 -0
  375. package/dist/tests/properties/planning.property.test.js +51 -0
  376. package/dist/tests/properties/planning.property.test.js.map +1 -0
  377. package/dist/tests/properties/profile-bridge.property.test.d.ts +2 -0
  378. package/dist/tests/properties/profile-bridge.property.test.d.ts.map +1 -0
  379. package/dist/tests/properties/profile-bridge.property.test.js +71 -0
  380. package/dist/tests/properties/profile-bridge.property.test.js.map +1 -0
  381. package/dist/tests/properties/refinement-types.property.test.d.ts +2 -0
  382. package/dist/tests/properties/refinement-types.property.test.d.ts.map +1 -0
  383. package/dist/tests/properties/refinement-types.property.test.js +37 -0
  384. package/dist/tests/properties/refinement-types.property.test.js.map +1 -0
  385. package/dist/tests/properties/sequent-g3.property.test.d.ts +2 -0
  386. package/dist/tests/properties/sequent-g3.property.test.d.ts.map +1 -0
  387. package/dist/tests/properties/sequent-g3.property.test.js +34 -0
  388. package/dist/tests/properties/sequent-g3.property.test.js.map +1 -0
  389. package/dist/tests/properties/symbolic-diff.property.test.d.ts +2 -0
  390. package/dist/tests/properties/symbolic-diff.property.test.d.ts.map +1 -0
  391. package/dist/tests/properties/symbolic-diff.property.test.js +49 -0
  392. package/dist/tests/properties/symbolic-diff.property.test.js.map +1 -0
  393. package/dist/tests/properties/system-f.property.test.d.ts +2 -0
  394. package/dist/tests/properties/system-f.property.test.d.ts.map +1 -0
  395. package/dist/tests/properties/system-f.property.test.js +37 -0
  396. package/dist/tests/properties/system-f.property.test.js.map +1 -0
  397. package/dist/tests/properties/theorem-cache.property.test.d.ts +2 -0
  398. package/dist/tests/properties/theorem-cache.property.test.d.ts.map +1 -0
  399. package/dist/tests/properties/theorem-cache.property.test.js +38 -0
  400. package/dist/tests/properties/theorem-cache.property.test.js.map +1 -0
  401. package/dist/tests/properties/trs.property.test.d.ts +2 -0
  402. package/dist/tests/properties/trs.property.test.d.ts.map +1 -0
  403. package/dist/tests/properties/trs.property.test.js +34 -0
  404. package/dist/tests/properties/trs.property.test.js.map +1 -0
  405. package/dist/tests/properties/unification.property.test.d.ts +2 -0
  406. package/dist/tests/properties/unification.property.test.d.ts.map +1 -0
  407. package/dist/tests/properties/unification.property.test.js +42 -0
  408. package/dist/tests/properties/unification.property.test.js.map +1 -0
  409. package/dist/tests/smt-lib/emitter.test.d.ts +2 -0
  410. package/dist/tests/smt-lib/emitter.test.d.ts.map +1 -0
  411. package/dist/tests/smt-lib/emitter.test.js +155 -0
  412. package/dist/tests/smt-lib/emitter.test.js.map +1 -0
  413. package/dist/tests/smt-lib/parser.test.d.ts +2 -0
  414. package/dist/tests/smt-lib/parser.test.d.ts.map +1 -0
  415. package/dist/tests/smt-lib/parser.test.js +164 -0
  416. package/dist/tests/smt-lib/parser.test.js.map +1 -0
  417. package/dist/tests/smt-lib/tokenizer.test.d.ts +2 -0
  418. package/dist/tests/smt-lib/tokenizer.test.d.ts.map +1 -0
  419. package/dist/tests/smt-lib/tokenizer.test.js +59 -0
  420. package/dist/tests/smt-lib/tokenizer.test.js.map +1 -0
  421. package/dist/tests/tactic-dsl/tactic-dsl.test.d.ts +2 -0
  422. package/dist/tests/tactic-dsl/tactic-dsl.test.d.ts.map +1 -0
  423. package/dist/tests/tactic-dsl/tactic-dsl.test.js +259 -0
  424. package/dist/tests/tactic-dsl/tactic-dsl.test.js.map +1 -0
  425. package/dist/tests/tptp/bridge.test.d.ts +2 -0
  426. package/dist/tests/tptp/bridge.test.d.ts.map +1 -0
  427. package/dist/tests/tptp/bridge.test.js +154 -0
  428. package/dist/tests/tptp/bridge.test.js.map +1 -0
  429. package/dist/tests/tptp/emitter.test.d.ts +2 -0
  430. package/dist/tests/tptp/emitter.test.d.ts.map +1 -0
  431. package/dist/tests/tptp/emitter.test.js +128 -0
  432. package/dist/tests/tptp/emitter.test.js.map +1 -0
  433. package/dist/tests/tptp/parser.test.d.ts +2 -0
  434. package/dist/tests/tptp/parser.test.d.ts.map +1 -0
  435. package/dist/tests/tptp/parser.test.js +192 -0
  436. package/dist/tests/tptp/parser.test.js.map +1 -0
  437. package/dist/tests/tptp/tokenizer.test.d.ts +2 -0
  438. package/dist/tests/tptp/tokenizer.test.d.ts.map +1 -0
  439. package/dist/tests/tptp/tokenizer.test.js +60 -0
  440. package/dist/tests/tptp/tokenizer.test.js.map +1 -0
  441. package/dist/tptp/ast.d.ts +73 -0
  442. package/dist/tptp/ast.d.ts.map +1 -0
  443. package/dist/tptp/ast.js +35 -0
  444. package/dist/tptp/ast.js.map +1 -0
  445. package/dist/tptp/bridge.d.ts +14 -0
  446. package/dist/tptp/bridge.d.ts.map +1 -0
  447. package/dist/tptp/bridge.js +146 -0
  448. package/dist/tptp/bridge.js.map +1 -0
  449. package/dist/tptp/emitter.d.ts +5 -0
  450. package/dist/tptp/emitter.d.ts.map +1 -0
  451. package/dist/tptp/emitter.js +103 -0
  452. package/dist/tptp/emitter.js.map +1 -0
  453. package/dist/tptp/index.d.ts +7 -0
  454. package/dist/tptp/index.d.ts.map +1 -0
  455. package/dist/tptp/index.js +31 -0
  456. package/dist/tptp/index.js.map +1 -0
  457. package/dist/tptp/parser.d.ts +23 -0
  458. package/dist/tptp/parser.d.ts.map +1 -0
  459. package/dist/tptp/parser.js +440 -0
  460. package/dist/tptp/parser.js.map +1 -0
  461. package/dist/tptp/tokenizer.d.ts +14 -0
  462. package/dist/tptp/tokenizer.d.ts.map +1 -0
  463. package/dist/tptp/tokenizer.js +264 -0
  464. package/dist/tptp/tokenizer.js.map +1 -0
  465. package/package.json +5 -1
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SMT-LIB v2 — Tokenizer
4
+ // ============================================================
5
+ //
6
+ // Genera una secuencia plana de tokens a partir de un script SMT-LIB v2.
7
+ // Soporta:
8
+ // - paréntesis `(` `)`
9
+ // - comentarios de línea `; ...`
10
+ // - símbolos simples (`x`, `+`, `<=`, `+foo!`)
11
+ // - símbolos pipe-quoted `|x con espacios|`
12
+ // - keywords `:keyword`
13
+ // - numerales `123`
14
+ // - decimales `1.5`
15
+ // - hex `#xAB12`
16
+ // - binary `#b1010`
17
+ // - strings `"..."` con escape de comilla `""`
18
+ //
19
+ // El tokenizer no decide semántica: distingue numerales y decimales, pero
20
+ // `+ 1 2` queda como tres tokens-symbol y dos numerales — el parser decide.
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.SmtTokenizerError = void 0;
23
+ exports.tokenize = tokenize;
24
+ class SmtTokenizerError extends Error {
25
+ line;
26
+ col;
27
+ constructor(message, line, col) {
28
+ super(`SMT-LIB tokenizer ${line}:${col}: ${message}`);
29
+ this.line = line;
30
+ this.col = col;
31
+ this.name = 'SmtTokenizerError';
32
+ }
33
+ }
34
+ exports.SmtTokenizerError = SmtTokenizerError;
35
+ // SMT-LIB v2.6 §3.1: simple symbol = (letra | dígito | uno de los siguientes
36
+ // caracteres especiales) salvo que un símbolo no puede empezar por dígito.
37
+ // Caracteres permitidos extra: ~ ! @ $ % ^ & * _ - + = < > . ? /
38
+ const SIMPLE_SYMBOL_START = /[A-Za-z~!@$%^&*_\-+=<>.?/]/;
39
+ const SIMPLE_SYMBOL_REST = /[A-Za-z0-9~!@$%^&*_\-+=<>.?/]/;
40
+ function tokenize(input) {
41
+ const tokens = [];
42
+ let i = 0;
43
+ let line = 1;
44
+ let col = 1;
45
+ const len = input.length;
46
+ const advance = (n = 1) => {
47
+ for (let k = 0; k < n; k++) {
48
+ const ch = input[i];
49
+ if (ch === '\n') {
50
+ line++;
51
+ col = 1;
52
+ }
53
+ else {
54
+ col++;
55
+ }
56
+ i++;
57
+ }
58
+ };
59
+ while (i < len) {
60
+ const ch = input[i] ?? '';
61
+ // whitespace
62
+ if (ch === ' ' || ch === '\t' || ch === '\r' || ch === '\n') {
63
+ advance();
64
+ continue;
65
+ }
66
+ // comentario de línea
67
+ if (ch === ';') {
68
+ while (i < len && input[i] !== '\n')
69
+ advance();
70
+ continue;
71
+ }
72
+ if (ch === '(') {
73
+ tokens.push({ kind: 'lparen', value: '(', line, col });
74
+ advance();
75
+ continue;
76
+ }
77
+ if (ch === ')') {
78
+ tokens.push({ kind: 'rparen', value: ')', line, col });
79
+ advance();
80
+ continue;
81
+ }
82
+ // pipe-quoted symbol
83
+ if (ch === '|') {
84
+ const startLine = line;
85
+ const startCol = col;
86
+ advance(); // consume `|`
87
+ let buf = '';
88
+ while (i < len && input[i] !== '|') {
89
+ if (input[i] === '\\') {
90
+ throw new SmtTokenizerError('backslash no permitido dentro de | ... |', line, col);
91
+ }
92
+ buf += input[i];
93
+ advance();
94
+ }
95
+ if (i >= len) {
96
+ throw new SmtTokenizerError('símbolo |...| sin cerrar', startLine, startCol);
97
+ }
98
+ advance(); // consume closing `|`
99
+ tokens.push({ kind: 'symbol', value: buf, line: startLine, col: startCol });
100
+ continue;
101
+ }
102
+ // keyword `:foo`
103
+ if (ch === ':') {
104
+ const startLine = line;
105
+ const startCol = col;
106
+ advance();
107
+ let buf = '';
108
+ while (i < len) {
109
+ const c = input[i] ?? '';
110
+ if (SIMPLE_SYMBOL_REST.test(c)) {
111
+ buf += c;
112
+ advance();
113
+ }
114
+ else {
115
+ break;
116
+ }
117
+ }
118
+ if (buf.length === 0) {
119
+ throw new SmtTokenizerError('keyword `:` sin nombre', startLine, startCol);
120
+ }
121
+ tokens.push({ kind: 'keyword', value: buf, line: startLine, col: startCol });
122
+ continue;
123
+ }
124
+ // string literal "..." (SMT-LIB v2.6 doblamos comilla para escape)
125
+ if (ch === '"') {
126
+ const startLine = line;
127
+ const startCol = col;
128
+ advance();
129
+ let buf = '';
130
+ let closed = false;
131
+ while (i < len) {
132
+ const c = input[i] ?? '';
133
+ if (c === '"') {
134
+ // posible escape "" o cierre
135
+ if (input[i + 1] === '"') {
136
+ buf += '"';
137
+ advance(2);
138
+ }
139
+ else {
140
+ advance();
141
+ tokens.push({ kind: 'string', value: buf, line: startLine, col: startCol });
142
+ closed = true;
143
+ break;
144
+ }
145
+ }
146
+ else {
147
+ buf += c;
148
+ advance();
149
+ }
150
+ }
151
+ if (!closed) {
152
+ throw new SmtTokenizerError('string sin cerrar', startLine, startCol);
153
+ }
154
+ continue;
155
+ }
156
+ // #xHEX / #bBIN
157
+ if (ch === '#') {
158
+ const startLine = line;
159
+ const startCol = col;
160
+ const next = input[i + 1];
161
+ if (next === 'x') {
162
+ advance(2);
163
+ let buf = '';
164
+ while (i < len && /[0-9A-Fa-f]/.test(input[i] ?? '')) {
165
+ buf += input[i];
166
+ advance();
167
+ }
168
+ if (buf.length === 0) {
169
+ throw new SmtTokenizerError('hex sin dígitos', startLine, startCol);
170
+ }
171
+ tokens.push({ kind: 'hex', value: buf, line: startLine, col: startCol });
172
+ continue;
173
+ }
174
+ if (next === 'b') {
175
+ advance(2);
176
+ let buf = '';
177
+ while (i < len && /[01]/.test(input[i] ?? '')) {
178
+ buf += input[i];
179
+ advance();
180
+ }
181
+ if (buf.length === 0) {
182
+ throw new SmtTokenizerError('binary sin dígitos', startLine, startCol);
183
+ }
184
+ tokens.push({ kind: 'binary', value: buf, line: startLine, col: startCol });
185
+ continue;
186
+ }
187
+ throw new SmtTokenizerError(`literal con # inválido: #${next ?? ''}`, startLine, startCol);
188
+ }
189
+ // numeral / decimal
190
+ if (ch >= '0' && ch <= '9') {
191
+ const startLine = line;
192
+ const startCol = col;
193
+ let buf = '';
194
+ while (i < len && /[0-9]/.test(input[i] ?? '')) {
195
+ buf += input[i];
196
+ advance();
197
+ }
198
+ if (input[i] === '.') {
199
+ buf += '.';
200
+ advance();
201
+ while (i < len && /[0-9]/.test(input[i] ?? '')) {
202
+ buf += input[i];
203
+ advance();
204
+ }
205
+ tokens.push({ kind: 'decimal', value: buf, line: startLine, col: startCol });
206
+ }
207
+ else {
208
+ tokens.push({ kind: 'numeral', value: buf, line: startLine, col: startCol });
209
+ }
210
+ continue;
211
+ }
212
+ // símbolo simple
213
+ if (SIMPLE_SYMBOL_START.test(ch)) {
214
+ const startLine = line;
215
+ const startCol = col;
216
+ let buf = '';
217
+ while (i < len) {
218
+ const c = input[i] ?? '';
219
+ if (SIMPLE_SYMBOL_REST.test(c)) {
220
+ buf += c;
221
+ advance();
222
+ }
223
+ else {
224
+ break;
225
+ }
226
+ }
227
+ tokens.push({ kind: 'symbol', value: buf, line: startLine, col: startCol });
228
+ continue;
229
+ }
230
+ throw new SmtTokenizerError(`carácter inesperado: ${JSON.stringify(ch)}`, line, col);
231
+ }
232
+ return tokens;
233
+ }
234
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../src/smt-lib/tokenizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Tactic } from './types';
2
+ export declare function seq(...tactics: Tactic[]): Tactic;
3
+ export declare function orElse(...tactics: Tactic[]): Tactic;
4
+ export declare function repeat_(t: Tactic, max?: number): Tactic;
5
+ export declare function tryAlt(t: Tactic): Tactic;
6
+ //# sourceMappingURL=combinators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combinators.d.ts","sourceRoot":"","sources":["../../src/tactic-dsl/combinators.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,SAAS,CAAC;AAMlD,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAQhD;AAMD,wBAAgB,MAAM,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAmBnD;AAOD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAqBpD;AAMD,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQxC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Tactic DSL — combinators
4
+ // ============================================================
5
+ //
6
+ // seq / orElse / repeat_ / tryAlt: combinadores estándar al estilo
7
+ // Coq/Ltac. Operan sobre Tactic = (state) => state, lanzando
8
+ // TacticError para señalizar falla.
9
+ //
10
+ // Nota sobre el nombre `seq`: la API conceptual de Lean/Coq usa el
11
+ // nombre `then` o `;`. NO podemos exportar un símbolo top-level
12
+ // llamado `then` desde un módulo ESM porque el bundler de vitest
13
+ // trata al namespace del módulo como un thenable y cuelga el import.
14
+ // Por compatibilidad con la documentación del DSL, el index re-expone
15
+ // `seq` también bajo el alias `then` vía objeto namespace (ver
16
+ // `tactics` exportado desde index.ts).
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.seq = seq;
19
+ exports.orElse = orElse;
20
+ exports.repeat_ = repeat_;
21
+ exports.tryAlt = tryAlt;
22
+ const types_1 = require("./types");
23
+ // ---------- seq ----------
24
+ // Aplica los tactics en secuencia. Si alguno falla, propaga el error
25
+ // (estado intermedio descartado). Equivalente a `then` en Coq.
26
+ function seq(...tactics) {
27
+ return (state) => {
28
+ let cur = state;
29
+ for (const t of tactics) {
30
+ cur = t(cur);
31
+ }
32
+ return cur;
33
+ };
34
+ }
35
+ // ---------- orElse ----------
36
+ // Devuelve el resultado del primer tactic que no lanza. Si todos
37
+ // fallan, lanza TacticError con el último mensaje.
38
+ function orElse(...tactics) {
39
+ return (state) => {
40
+ let lastErr = null;
41
+ for (const t of tactics) {
42
+ try {
43
+ return t(state);
44
+ }
45
+ catch (e) {
46
+ if (e instanceof Error) {
47
+ lastErr = e;
48
+ continue;
49
+ }
50
+ throw e;
51
+ }
52
+ }
53
+ throw new types_1.TacticError('orElse', `todas las alternativas fallaron${lastErr ? `: ${lastErr.message}` : ''}`);
54
+ };
55
+ }
56
+ // ---------- repeat_ ----------
57
+ // Aplica `t` mientras pueda. Detiene cuando lanza o cuando alcanza
58
+ // `max` iteraciones (default 100). Nunca falla: si t no aplica ni
59
+ // una vez, devuelve el estado original.
60
+ function repeat_(t, max = 100) {
61
+ return (state) => {
62
+ let cur = state;
63
+ let i = 0;
64
+ while (i < max) {
65
+ let next;
66
+ try {
67
+ next = t(cur);
68
+ }
69
+ catch {
70
+ return cur;
71
+ }
72
+ // Guard contra punto fijo: si el estado no cambia (mismas goals + history),
73
+ // paramos para evitar bucles tipo `repeat_(trivial())` cuando el goal ya
74
+ // está cerrado.
75
+ if (next === cur)
76
+ return cur;
77
+ if (next.done)
78
+ return next;
79
+ cur = next;
80
+ i++;
81
+ }
82
+ return cur;
83
+ };
84
+ }
85
+ // ---------- tryAlt ----------
86
+ // Aplica `t` ignorando la falla. Util para "intenta esto, sigue
87
+ // adelante si no aplica". Nombre `tryAlt` por colisión con keyword.
88
+ function tryAlt(t) {
89
+ return (state) => {
90
+ try {
91
+ return t(state);
92
+ }
93
+ catch {
94
+ return state;
95
+ }
96
+ };
97
+ }
98
+ //# sourceMappingURL=combinators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combinators.js","sourceRoot":"","sources":["../../src/tactic-dsl/combinators.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,2BAA2B;AAC3B,+DAA+D;AAC/D,EAAE;AACF,mEAAmE;AACnE,6DAA6D;AAC7D,oCAAoC;AACpC,EAAE;AACF,mEAAmE;AACnE,gEAAgE;AAChE,iEAAiE;AACjE,qEAAqE;AACrE,sEAAsE;AACtE,+DAA+D;AAC/D,uCAAuC;;AASvC,kBAQC;AAMD,wBAmBC;AAOD,0BAqBC;AAMD,wBAQC;AAlFD,mCAAsC;AAGtC,4BAA4B;AAC5B,qEAAqE;AACrE,+DAA+D;AAE/D,SAAgB,GAAG,CAAC,GAAG,OAAiB;IACtC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,iEAAiE;AACjE,mDAAmD;AAEnD,SAAgB,MAAM,CAAC,GAAG,OAAiB;IACzC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,OAAO,GAAiB,IAAI,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;oBACvB,OAAO,GAAG,CAAC,CAAC;oBACZ,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,MAAM,IAAI,mBAAW,CACnB,QAAQ,EACR,kCAAkC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1E,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,gCAAgC;AAChC,mEAAmE;AACnE,kEAAkE;AAClE,wCAAwC;AAExC,SAAgB,OAAO,CAAC,CAAS,EAAE,GAAG,GAAG,GAAG;IAC1C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;YACf,IAAI,IAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,CAAC;YACb,CAAC;YACD,4EAA4E;YAC5E,yEAAyE;YACzE,gBAAgB;YAChB,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,GAAG,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC3B,GAAG,GAAG,IAAI,CAAC;YACX,CAAC,EAAE,CAAC;QACN,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,gEAAgE;AAChE,oEAAoE;AAEpE,SAAgB,MAAM,CAAC,CAAS;IAC9B,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { ProofState, Tactic } from './types';
2
+ import { apply, assumption, caseAnalysis, destruct, exact, induction, intro, left as leftTactic, rewrite, rfl, right as rightTactic, simp, split, trivial, unfold } from './tactics';
3
+ import { orElse, repeat_, seq, tryAlt } from './combinators';
4
+ export type { Formula, Goal, ProofState, Tactic, TacticInvocation } from './types';
5
+ export { TacticError, parseFormula, formulaToString, formulaEq, normalizeFormula } from './types';
6
+ export type { DefDictionary } from './tactics';
7
+ export { intro, exact, assumption, apply, rewrite, rfl, trivial, split, destruct, induction, caseAnalysis, unfold, simp, };
8
+ export { leftTactic as left, rightTactic as right };
9
+ export declare const case_: typeof caseAnalysis;
10
+ export { seq, orElse, repeat_, tryAlt };
11
+ export declare const T: {
12
+ intro: typeof intro;
13
+ exact: typeof exact;
14
+ assumption: typeof assumption;
15
+ apply: typeof apply;
16
+ rewrite: typeof rewrite;
17
+ rfl: typeof rfl;
18
+ trivial: typeof trivial;
19
+ split: typeof split;
20
+ left: typeof leftTactic;
21
+ right: typeof rightTactic;
22
+ destruct: typeof destruct;
23
+ induction: typeof induction;
24
+ caseAnalysis: typeof caseAnalysis;
25
+ case_: typeof caseAnalysis;
26
+ unfold: typeof unfold;
27
+ simp: typeof simp;
28
+ seq: typeof seq;
29
+ then: typeof seq;
30
+ orElse: typeof orElse;
31
+ repeat_: typeof repeat_;
32
+ tryAlt: typeof tryAlt;
33
+ };
34
+ export declare function startProof(goal: string, hyps?: Record<string, string>): ProofState;
35
+ export declare function runTactic(state: ProofState, t: Tactic): ProofState;
36
+ export declare function isProven(state: ProofState): boolean;
37
+ export declare function summary(state: ProofState): string;
38
+ export declare function _resetCounters(): void;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tactic-dsl/index.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAEL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,IAAI,IAAI,UAAU,EAClB,OAAO,EACP,GAAG,EACH,KAAK,IAAI,WAAW,EACpB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACP,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE7D,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClG,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EACL,KAAK,EACL,KAAK,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,GAAG,EACH,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,MAAM,EACN,IAAI,GACL,CAAC;AACF,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE,CAAC;AAGpD,eAAO,MAAM,KAAK,qBAAe,CAAC;AAIlC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAKxC,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;CAwBb,CAAC;AAIF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,UAAU,CAkBtF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAElE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAcjD;AA6BD,wBAAgB,cAAc,IAAI,IAAI,CAGrC"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Tactic DSL — entry point
4
+ // ============================================================
5
+ //
6
+ // Pequeño DSL al estilo Lean/Coq para construir pruebas hacia atrás
7
+ // (backwards) a partir de un goal. El motor:
8
+ // - mantiene una lista de goals abiertos
9
+ // - cada tactic transforma el goal frontal
10
+ // - los combinators (seq/orElse/repeat_/tryAlt) componen tactics
11
+ //
12
+ // La meta-prueba se considera completa cuando no quedan goals.
13
+ // El estado lleva un `history` que registra invocaciones para que
14
+ // el caller pueda renderizar el proof script reproducible.
15
+ //
16
+ // Nombres: la API original (Coq/Lean) usa `then` para encadenar
17
+ // tactics. Por interop con vitest/ESM (un módulo ES con export
18
+ // `then` se trata como thenable y bloquea el import), el combinador
19
+ // se llama `seq` a nivel de export. Para mantener el lenguaje
20
+ // Coq-like, exportamos un namespace `T` con `T.then = seq`.
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.T = exports.tryAlt = exports.repeat_ = exports.orElse = exports.seq = exports.case_ = exports.right = exports.left = exports.simp = exports.unfold = exports.caseAnalysis = exports.induction = exports.destruct = exports.split = exports.trivial = exports.rfl = exports.rewrite = exports.apply = exports.assumption = exports.exact = exports.intro = exports.normalizeFormula = exports.formulaEq = exports.formulaToString = exports.parseFormula = exports.TacticError = void 0;
23
+ exports.startProof = startProof;
24
+ exports.runTactic = runTactic;
25
+ exports.isProven = isProven;
26
+ exports.summary = summary;
27
+ exports._resetCounters = _resetCounters;
28
+ const types_1 = require("./types");
29
+ const tactics_1 = require("./tactics");
30
+ Object.defineProperty(exports, "apply", { enumerable: true, get: function () { return tactics_1.apply; } });
31
+ Object.defineProperty(exports, "assumption", { enumerable: true, get: function () { return tactics_1.assumption; } });
32
+ Object.defineProperty(exports, "caseAnalysis", { enumerable: true, get: function () { return tactics_1.caseAnalysis; } });
33
+ Object.defineProperty(exports, "destruct", { enumerable: true, get: function () { return tactics_1.destruct; } });
34
+ Object.defineProperty(exports, "exact", { enumerable: true, get: function () { return tactics_1.exact; } });
35
+ Object.defineProperty(exports, "induction", { enumerable: true, get: function () { return tactics_1.induction; } });
36
+ Object.defineProperty(exports, "intro", { enumerable: true, get: function () { return tactics_1.intro; } });
37
+ Object.defineProperty(exports, "left", { enumerable: true, get: function () { return tactics_1.left; } });
38
+ Object.defineProperty(exports, "rewrite", { enumerable: true, get: function () { return tactics_1.rewrite; } });
39
+ Object.defineProperty(exports, "rfl", { enumerable: true, get: function () { return tactics_1.rfl; } });
40
+ Object.defineProperty(exports, "right", { enumerable: true, get: function () { return tactics_1.right; } });
41
+ Object.defineProperty(exports, "simp", { enumerable: true, get: function () { return tactics_1.simp; } });
42
+ Object.defineProperty(exports, "split", { enumerable: true, get: function () { return tactics_1.split; } });
43
+ Object.defineProperty(exports, "trivial", { enumerable: true, get: function () { return tactics_1.trivial; } });
44
+ Object.defineProperty(exports, "unfold", { enumerable: true, get: function () { return tactics_1.unfold; } });
45
+ const combinators_1 = require("./combinators");
46
+ Object.defineProperty(exports, "orElse", { enumerable: true, get: function () { return combinators_1.orElse; } });
47
+ Object.defineProperty(exports, "repeat_", { enumerable: true, get: function () { return combinators_1.repeat_; } });
48
+ Object.defineProperty(exports, "seq", { enumerable: true, get: function () { return combinators_1.seq; } });
49
+ Object.defineProperty(exports, "tryAlt", { enumerable: true, get: function () { return combinators_1.tryAlt; } });
50
+ var types_2 = require("./types");
51
+ Object.defineProperty(exports, "TacticError", { enumerable: true, get: function () { return types_2.TacticError; } });
52
+ Object.defineProperty(exports, "parseFormula", { enumerable: true, get: function () { return types_2.parseFormula; } });
53
+ Object.defineProperty(exports, "formulaToString", { enumerable: true, get: function () { return types_2.formulaToString; } });
54
+ Object.defineProperty(exports, "formulaEq", { enumerable: true, get: function () { return types_2.formulaEq; } });
55
+ Object.defineProperty(exports, "normalizeFormula", { enumerable: true, get: function () { return types_2.normalizeFormula; } });
56
+ // Alias `case_` para `caseAnalysis` (case es palabra reservada en JS).
57
+ exports.case_ = tactics_1.caseAnalysis;
58
+ // Namespace `T` con todos los tactics y combinators. Aquí sí podemos
59
+ // exponer `then` porque la propiedad vive sobre un objeto, no sobre
60
+ // el module namespace.
61
+ exports.T = {
62
+ // tactics
63
+ intro: tactics_1.intro,
64
+ exact: tactics_1.exact,
65
+ assumption: tactics_1.assumption,
66
+ apply: tactics_1.apply,
67
+ rewrite: tactics_1.rewrite,
68
+ rfl: tactics_1.rfl,
69
+ trivial: tactics_1.trivial,
70
+ split: tactics_1.split,
71
+ left: tactics_1.left,
72
+ right: tactics_1.right,
73
+ destruct: tactics_1.destruct,
74
+ induction: tactics_1.induction,
75
+ caseAnalysis: tactics_1.caseAnalysis,
76
+ case_: tactics_1.caseAnalysis,
77
+ unfold: tactics_1.unfold,
78
+ simp: tactics_1.simp,
79
+ // combinators
80
+ seq: combinators_1.seq,
81
+ then: combinators_1.seq, // alias Coq-style
82
+ orElse: // alias Coq-style
83
+ combinators_1.orElse,
84
+ repeat_: combinators_1.repeat_,
85
+ tryAlt: combinators_1.tryAlt,
86
+ };
87
+ let stateCounter = 0;
88
+ function startProof(goal, hyps = {}) {
89
+ // sanity: el goal debe parsearse limpio.
90
+ (0, types_1.parseFormula)(goal);
91
+ stateCounter++;
92
+ const normalizedHyps = {};
93
+ for (const [n, t] of Object.entries(hyps)) {
94
+ normalizedHyps[n] = (0, types_1.normalizeFormula)(t);
95
+ }
96
+ const g = {
97
+ id: `g${stateCounter}`,
98
+ hyps: normalizedHyps,
99
+ concl: (0, types_1.normalizeFormula)(goal),
100
+ };
101
+ return {
102
+ goals: [g],
103
+ history: [],
104
+ done: false,
105
+ };
106
+ }
107
+ function runTactic(state, t) {
108
+ return t(state);
109
+ }
110
+ function isProven(state) {
111
+ return state.done && state.goals.length === 0;
112
+ }
113
+ function summary(state) {
114
+ if (state.done && state.goals.length === 0) {
115
+ const steps = state.history.map((h) => ` - ${h.tactic}(${formatArgs(h.args)})`);
116
+ return `Proof complete.\nHistory (${state.history.length} steps):\n${steps.join('\n')}`;
117
+ }
118
+ const open = state.goals
119
+ .map((g, idx) => {
120
+ const hyps = Object.entries(g.hyps)
121
+ .map(([n, t]) => ` ${n} : ${t}`)
122
+ .join('\n');
123
+ return `Goal ${idx + 1}/${state.goals.length} (${g.id}):\n${hyps}\n ⊢ ${g.concl}`;
124
+ })
125
+ .join('\n\n');
126
+ return open;
127
+ }
128
+ function formatArgs(args) {
129
+ return args
130
+ .map((a) => {
131
+ if (a === null || a === undefined)
132
+ return '';
133
+ if (Array.isArray(a)) {
134
+ const items = a;
135
+ return `[${items.map((x) => formatScalar(x)).join(',')}]`;
136
+ }
137
+ return formatScalar(a);
138
+ })
139
+ .filter((s) => s.length > 0)
140
+ .join(', ');
141
+ }
142
+ function formatScalar(x) {
143
+ if (typeof x === 'string')
144
+ return x;
145
+ if (typeof x === 'number' || typeof x === 'boolean')
146
+ return String(x);
147
+ if (x === null || x === undefined)
148
+ return '';
149
+ // fallback seguro para evitar [object Object]
150
+ try {
151
+ return JSON.stringify(x);
152
+ }
153
+ catch {
154
+ return '';
155
+ }
156
+ }
157
+ // Test-only helper para resetear contadores y obtener determinismo.
158
+ function _resetCounters() {
159
+ stateCounter = 0;
160
+ (0, tactics_1._resetGoalCounter)();
161
+ }
162
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tactic-dsl/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Tactic } from './types';
2
+ export declare function _resetGoalCounter(): void;
3
+ export declare function intro(name?: string): Tactic;
4
+ export declare function exact(term: string): Tactic;
5
+ export declare function assumption(): Tactic;
6
+ export declare function apply(thm: string, args?: string[]): Tactic;
7
+ export declare function rewrite(eq: string, dir?: 'left-to-right' | 'right-to-left'): Tactic;
8
+ export declare function rfl(): Tactic;
9
+ export declare function trivial(): Tactic;
10
+ export declare function split(): Tactic;
11
+ export declare function left(): Tactic;
12
+ export declare function right(): Tactic;
13
+ export declare function destruct(name: string): Tactic;
14
+ export declare function induction(name: string): Tactic;
15
+ export declare function caseAnalysis(name: string): Tactic;
16
+ export interface DefDictionary {
17
+ [name: string]: string;
18
+ }
19
+ export declare function unfold(def: string, dict?: DefDictionary): Tactic;
20
+ export declare function simp(): Tactic;
21
+ //# sourceMappingURL=tactics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tactics.d.ts","sourceRoot":"","sources":["../../src/tactic-dsl/tactics.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAA6B,MAAM,EAAoB,MAAM,SAAS,CAAC;AASnF,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAwCD,wBAAgB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CA2B3C;AAaD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiB1C;AAKD,wBAAgB,UAAU,IAAI,MAAM,CAcnC;AAeD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAoD1D;AAMD,wBAAgB,OAAO,CACrB,EAAE,EAAE,MAAM,EACV,GAAG,GAAE,eAAe,GAAG,eAAiC,GACvD,MAAM,CA2BR;AAKD,wBAAgB,GAAG,IAAI,MAAM,CAa5B;AAKD,wBAAgB,OAAO,IAAI,MAAM,CAkBhC;AAKD,wBAAgB,KAAK,IAAI,MAAM,CAc9B;AAKD,wBAAgB,IAAI,IAAI,MAAM,CAW7B;AAED,wBAAgB,KAAK,IAAI,MAAM,CAW9B;AAOD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0C7C;AASD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsC9C;AAeD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAQD,MAAM,WAAW,aAAa;IAC5B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAmBpE;AAWD,wBAAgB,IAAI,IAAI,MAAM,CAyB7B"}