@stevenvo780/st-lang 4.5.1 → 4.5.2

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 (285) 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/game-theory/common-games.d.ts +50 -0
  14. package/dist/game-theory/common-games.d.ts.map +1 -0
  15. package/dist/game-theory/common-games.js +112 -0
  16. package/dist/game-theory/common-games.js.map +1 -0
  17. package/dist/game-theory/dominance.d.ts +26 -0
  18. package/dist/game-theory/dominance.d.ts.map +1 -0
  19. package/dist/game-theory/dominance.js +203 -0
  20. package/dist/game-theory/dominance.js.map +1 -0
  21. package/dist/game-theory/index.d.ts +8 -0
  22. package/dist/game-theory/index.d.ts.map +1 -0
  23. package/dist/game-theory/index.js +47 -0
  24. package/dist/game-theory/index.js.map +1 -0
  25. package/dist/game-theory/lemke-howson.d.ts +3 -0
  26. package/dist/game-theory/lemke-howson.d.ts.map +1 -0
  27. package/dist/game-theory/lemke-howson.js +269 -0
  28. package/dist/game-theory/lemke-howson.js.map +1 -0
  29. package/dist/game-theory/linalg.d.ts +7 -0
  30. package/dist/game-theory/linalg.d.ts.map +1 -0
  31. package/dist/game-theory/linalg.js +69 -0
  32. package/dist/game-theory/linalg.js.map +1 -0
  33. package/dist/game-theory/pure-nash.d.ts +3 -0
  34. package/dist/game-theory/pure-nash.d.ts.map +1 -0
  35. package/dist/game-theory/pure-nash.js +86 -0
  36. package/dist/game-theory/pure-nash.js.map +1 -0
  37. package/dist/game-theory/support-enumeration.d.ts +3 -0
  38. package/dist/game-theory/support-enumeration.d.ts.map +1 -0
  39. package/dist/game-theory/support-enumeration.js +214 -0
  40. package/dist/game-theory/support-enumeration.js.map +1 -0
  41. package/dist/game-theory/types.d.ts +57 -0
  42. package/dist/game-theory/types.d.ts.map +1 -0
  43. package/dist/game-theory/types.js +191 -0
  44. package/dist/game-theory/types.js.map +1 -0
  45. package/dist/index.d.ts +9 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +36 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/information-theory/index.d.ts +29 -0
  50. package/dist/information-theory/index.d.ts.map +1 -0
  51. package/dist/information-theory/index.js +323 -0
  52. package/dist/information-theory/index.js.map +1 -0
  53. package/dist/namespaces/logic.d.ts +42 -0
  54. package/dist/namespaces/logic.d.ts.map +1 -0
  55. package/dist/namespaces/logic.js +112 -0
  56. package/dist/namespaces/logic.js.map +1 -0
  57. package/dist/namespaces/proof-systems.d.ts +18 -0
  58. package/dist/namespaces/proof-systems.d.ts.map +1 -0
  59. package/dist/namespaces/proof-systems.js +59 -0
  60. package/dist/namespaces/proof-systems.js.map +1 -0
  61. package/dist/namespaces/reasoning.d.ts +26 -0
  62. package/dist/namespaces/reasoning.d.ts.map +1 -0
  63. package/dist/namespaces/reasoning.js +72 -0
  64. package/dist/namespaces/reasoning.js.map +1 -0
  65. package/dist/namespaces/semantics.d.ts +21 -0
  66. package/dist/namespaces/semantics.d.ts.map +1 -0
  67. package/dist/namespaces/semantics.js +64 -0
  68. package/dist/namespaces/semantics.js.map +1 -0
  69. package/dist/namespaces/solvers.d.ts +22 -0
  70. package/dist/namespaces/solvers.d.ts.map +1 -0
  71. package/dist/namespaces/solvers.js +66 -0
  72. package/dist/namespaces/solvers.js.map +1 -0
  73. package/dist/namespaces/type-theory.d.ts +22 -0
  74. package/dist/namespaces/type-theory.d.ts.map +1 -0
  75. package/dist/namespaces/type-theory.js +65 -0
  76. package/dist/namespaces/type-theory.js.map +1 -0
  77. package/dist/optimization/branch-and-bound.d.ts +11 -0
  78. package/dist/optimization/branch-and-bound.d.ts.map +1 -0
  79. package/dist/optimization/branch-and-bound.js +311 -0
  80. package/dist/optimization/branch-and-bound.js.map +1 -0
  81. package/dist/optimization/index.d.ts +5 -0
  82. package/dist/optimization/index.d.ts.map +1 -0
  83. package/dist/optimization/index.js +20 -0
  84. package/dist/optimization/index.js.map +1 -0
  85. package/dist/optimization/simplex.d.ts +8 -0
  86. package/dist/optimization/simplex.d.ts.map +1 -0
  87. package/dist/optimization/simplex.js +408 -0
  88. package/dist/optimization/simplex.js.map +1 -0
  89. package/dist/optimization/standard-form.d.ts +11 -0
  90. package/dist/optimization/standard-form.d.ts.map +1 -0
  91. package/dist/optimization/standard-form.js +112 -0
  92. package/dist/optimization/standard-form.js.map +1 -0
  93. package/dist/optimization/types.d.ts +44 -0
  94. package/dist/optimization/types.d.ts.map +1 -0
  95. package/dist/optimization/types.js +15 -0
  96. package/dist/optimization/types.js.map +1 -0
  97. package/dist/profiles/hol/connectives.d.ts +46 -0
  98. package/dist/profiles/hol/connectives.d.ts.map +1 -0
  99. package/dist/profiles/hol/connectives.js +104 -0
  100. package/dist/profiles/hol/connectives.js.map +1 -0
  101. package/dist/profiles/hol/index.d.ts +7 -0
  102. package/dist/profiles/hol/index.d.ts.map +1 -0
  103. package/dist/profiles/hol/index.js +77 -0
  104. package/dist/profiles/hol/index.js.map +1 -0
  105. package/dist/profiles/hol/rules.d.ts +31 -0
  106. package/dist/profiles/hol/rules.d.ts.map +1 -0
  107. package/dist/profiles/hol/rules.js +258 -0
  108. package/dist/profiles/hol/rules.js.map +1 -0
  109. package/dist/profiles/hol/term.d.ts +52 -0
  110. package/dist/profiles/hol/term.d.ts.map +1 -0
  111. package/dist/profiles/hol/term.js +345 -0
  112. package/dist/profiles/hol/term.js.map +1 -0
  113. package/dist/profiles/hol/type-system.d.ts +38 -0
  114. package/dist/profiles/hol/type-system.d.ts.map +1 -0
  115. package/dist/profiles/hol/type-system.js +133 -0
  116. package/dist/profiles/hol/type-system.js.map +1 -0
  117. package/dist/profiles/hol/types.d.ts +59 -0
  118. package/dist/profiles/hol/types.d.ts.map +1 -0
  119. package/dist/profiles/hol/types.js +26 -0
  120. package/dist/profiles/hol/types.js.map +1 -0
  121. package/dist/smt-lib/ast.d.ts +138 -0
  122. package/dist/smt-lib/ast.d.ts.map +1 -0
  123. package/dist/smt-lib/ast.js +73 -0
  124. package/dist/smt-lib/ast.js.map +1 -0
  125. package/dist/smt-lib/emitter.d.ts +12 -0
  126. package/dist/smt-lib/emitter.d.ts.map +1 -0
  127. package/dist/smt-lib/emitter.js +174 -0
  128. package/dist/smt-lib/emitter.js.map +1 -0
  129. package/dist/smt-lib/index.d.ts +6 -0
  130. package/dist/smt-lib/index.d.ts.map +1 -0
  131. package/dist/smt-lib/index.js +31 -0
  132. package/dist/smt-lib/index.js.map +1 -0
  133. package/dist/smt-lib/parser.d.ts +13 -0
  134. package/dist/smt-lib/parser.d.ts.map +1 -0
  135. package/dist/smt-lib/parser.js +614 -0
  136. package/dist/smt-lib/parser.js.map +1 -0
  137. package/dist/smt-lib/tokenizer.d.ts +16 -0
  138. package/dist/smt-lib/tokenizer.d.ts.map +1 -0
  139. package/dist/smt-lib/tokenizer.js +234 -0
  140. package/dist/smt-lib/tokenizer.js.map +1 -0
  141. package/dist/tests/api/namespaces.test.d.ts +9 -0
  142. package/dist/tests/api/namespaces.test.d.ts.map +1 -0
  143. package/dist/tests/api/namespaces.test.js +218 -0
  144. package/dist/tests/api/namespaces.test.js.map +1 -0
  145. package/dist/tests/bdd/manager.test.d.ts +2 -0
  146. package/dist/tests/bdd/manager.test.d.ts.map +1 -0
  147. package/dist/tests/bdd/manager.test.js +472 -0
  148. package/dist/tests/bdd/manager.test.js.map +1 -0
  149. package/dist/tests/game-theory/game-theory.test.d.ts +2 -0
  150. package/dist/tests/game-theory/game-theory.test.d.ts.map +1 -0
  151. package/dist/tests/game-theory/game-theory.test.js +252 -0
  152. package/dist/tests/game-theory/game-theory.test.js.map +1 -0
  153. package/dist/tests/hol/hol.test.d.ts +2 -0
  154. package/dist/tests/hol/hol.test.d.ts.map +1 -0
  155. package/dist/tests/hol/hol.test.js +340 -0
  156. package/dist/tests/hol/hol.test.js.map +1 -0
  157. package/dist/tests/information-theory/information-theory.test.d.ts +2 -0
  158. package/dist/tests/information-theory/information-theory.test.d.ts.map +1 -0
  159. package/dist/tests/information-theory/information-theory.test.js +291 -0
  160. package/dist/tests/information-theory/information-theory.test.js.map +1 -0
  161. package/dist/tests/optimization/ilp.test.d.ts +2 -0
  162. package/dist/tests/optimization/ilp.test.d.ts.map +1 -0
  163. package/dist/tests/optimization/ilp.test.js +204 -0
  164. package/dist/tests/optimization/ilp.test.js.map +1 -0
  165. package/dist/tests/optimization/lp.test.d.ts +2 -0
  166. package/dist/tests/optimization/lp.test.d.ts.map +1 -0
  167. package/dist/tests/optimization/lp.test.js +224 -0
  168. package/dist/tests/optimization/lp.test.js.map +1 -0
  169. package/dist/tests/properties/agm.property.test.d.ts +2 -0
  170. package/dist/tests/properties/agm.property.test.d.ts.map +1 -0
  171. package/dist/tests/properties/agm.property.test.js +75 -0
  172. package/dist/tests/properties/agm.property.test.js.map +1 -0
  173. package/dist/tests/properties/anti-unification.property.test.d.ts +2 -0
  174. package/dist/tests/properties/anti-unification.property.test.d.ts.map +1 -0
  175. package/dist/tests/properties/anti-unification.property.test.js +43 -0
  176. package/dist/tests/properties/anti-unification.property.test.js.map +1 -0
  177. package/dist/tests/properties/argumentation.property.test.d.ts +2 -0
  178. package/dist/tests/properties/argumentation.property.test.d.ts.map +1 -0
  179. package/dist/tests/properties/argumentation.property.test.js +51 -0
  180. package/dist/tests/properties/argumentation.property.test.js.map +1 -0
  181. package/dist/tests/properties/bayesian.property.test.d.ts +2 -0
  182. package/dist/tests/properties/bayesian.property.test.d.ts.map +1 -0
  183. package/dist/tests/properties/bayesian.property.test.js +32 -0
  184. package/dist/tests/properties/bayesian.property.test.js.map +1 -0
  185. package/dist/tests/properties/bisimulation.property.test.d.ts +2 -0
  186. package/dist/tests/properties/bisimulation.property.test.d.ts.map +1 -0
  187. package/dist/tests/properties/bisimulation.property.test.js +50 -0
  188. package/dist/tests/properties/bisimulation.property.test.js.map +1 -0
  189. package/dist/tests/properties/cdcl.property.test.d.ts +2 -0
  190. package/dist/tests/properties/cdcl.property.test.d.ts.map +1 -0
  191. package/dist/tests/properties/cdcl.property.test.js +70 -0
  192. package/dist/tests/properties/cdcl.property.test.js.map +1 -0
  193. package/dist/tests/properties/coinduction.property.test.d.ts +2 -0
  194. package/dist/tests/properties/coinduction.property.test.d.ts.map +1 -0
  195. package/dist/tests/properties/coinduction.property.test.js +34 -0
  196. package/dist/tests/properties/coinduction.property.test.js.map +1 -0
  197. package/dist/tests/properties/constructive-reals.property.test.d.ts +2 -0
  198. package/dist/tests/properties/constructive-reals.property.test.d.ts.map +1 -0
  199. package/dist/tests/properties/constructive-reals.property.test.js +59 -0
  200. package/dist/tests/properties/constructive-reals.property.test.js.map +1 -0
  201. package/dist/tests/properties/csp.property.test.d.ts +2 -0
  202. package/dist/tests/properties/csp.property.test.d.ts.map +1 -0
  203. package/dist/tests/properties/csp.property.test.js +58 -0
  204. package/dist/tests/properties/csp.property.test.js.map +1 -0
  205. package/dist/tests/properties/generators.d.ts +78 -0
  206. package/dist/tests/properties/generators.d.ts.map +1 -0
  207. package/dist/tests/properties/generators.js +348 -0
  208. package/dist/tests/properties/generators.js.map +1 -0
  209. package/dist/tests/properties/ho-unify.property.test.d.ts +2 -0
  210. package/dist/tests/properties/ho-unify.property.test.d.ts.map +1 -0
  211. package/dist/tests/properties/ho-unify.property.test.js +46 -0
  212. package/dist/tests/properties/ho-unify.property.test.js.map +1 -0
  213. package/dist/tests/properties/hyperreal.property.test.d.ts +2 -0
  214. package/dist/tests/properties/hyperreal.property.test.d.ts.map +1 -0
  215. package/dist/tests/properties/hyperreal.property.test.js +33 -0
  216. package/dist/tests/properties/hyperreal.property.test.js.map +1 -0
  217. package/dist/tests/properties/intuit-nj.property.test.d.ts +2 -0
  218. package/dist/tests/properties/intuit-nj.property.test.d.ts.map +1 -0
  219. package/dist/tests/properties/intuit-nj.property.test.js +57 -0
  220. package/dist/tests/properties/intuit-nj.property.test.js.map +1 -0
  221. package/dist/tests/properties/lambda-calc.property.test.d.ts +2 -0
  222. package/dist/tests/properties/lambda-calc.property.test.d.ts.map +1 -0
  223. package/dist/tests/properties/lambda-calc.property.test.js +35 -0
  224. package/dist/tests/properties/lambda-calc.property.test.js.map +1 -0
  225. package/dist/tests/properties/mln.property.test.d.ts +2 -0
  226. package/dist/tests/properties/mln.property.test.d.ts.map +1 -0
  227. package/dist/tests/properties/mln.property.test.js +41 -0
  228. package/dist/tests/properties/mln.property.test.js.map +1 -0
  229. package/dist/tests/properties/mltt.property.test.d.ts +2 -0
  230. package/dist/tests/properties/mltt.property.test.d.ts.map +1 -0
  231. package/dist/tests/properties/mltt.property.test.js +33 -0
  232. package/dist/tests/properties/mltt.property.test.js.map +1 -0
  233. package/dist/tests/properties/nbe.property.test.d.ts +2 -0
  234. package/dist/tests/properties/nbe.property.test.d.ts.map +1 -0
  235. package/dist/tests/properties/nbe.property.test.js +44 -0
  236. package/dist/tests/properties/nbe.property.test.js.map +1 -0
  237. package/dist/tests/properties/planning.property.test.d.ts +2 -0
  238. package/dist/tests/properties/planning.property.test.d.ts.map +1 -0
  239. package/dist/tests/properties/planning.property.test.js +51 -0
  240. package/dist/tests/properties/planning.property.test.js.map +1 -0
  241. package/dist/tests/properties/profile-bridge.property.test.d.ts +2 -0
  242. package/dist/tests/properties/profile-bridge.property.test.d.ts.map +1 -0
  243. package/dist/tests/properties/profile-bridge.property.test.js +71 -0
  244. package/dist/tests/properties/profile-bridge.property.test.js.map +1 -0
  245. package/dist/tests/properties/refinement-types.property.test.d.ts +2 -0
  246. package/dist/tests/properties/refinement-types.property.test.d.ts.map +1 -0
  247. package/dist/tests/properties/refinement-types.property.test.js +37 -0
  248. package/dist/tests/properties/refinement-types.property.test.js.map +1 -0
  249. package/dist/tests/properties/sequent-g3.property.test.d.ts +2 -0
  250. package/dist/tests/properties/sequent-g3.property.test.d.ts.map +1 -0
  251. package/dist/tests/properties/sequent-g3.property.test.js +34 -0
  252. package/dist/tests/properties/sequent-g3.property.test.js.map +1 -0
  253. package/dist/tests/properties/symbolic-diff.property.test.d.ts +2 -0
  254. package/dist/tests/properties/symbolic-diff.property.test.d.ts.map +1 -0
  255. package/dist/tests/properties/symbolic-diff.property.test.js +49 -0
  256. package/dist/tests/properties/symbolic-diff.property.test.js.map +1 -0
  257. package/dist/tests/properties/system-f.property.test.d.ts +2 -0
  258. package/dist/tests/properties/system-f.property.test.d.ts.map +1 -0
  259. package/dist/tests/properties/system-f.property.test.js +37 -0
  260. package/dist/tests/properties/system-f.property.test.js.map +1 -0
  261. package/dist/tests/properties/theorem-cache.property.test.d.ts +2 -0
  262. package/dist/tests/properties/theorem-cache.property.test.d.ts.map +1 -0
  263. package/dist/tests/properties/theorem-cache.property.test.js +38 -0
  264. package/dist/tests/properties/theorem-cache.property.test.js.map +1 -0
  265. package/dist/tests/properties/trs.property.test.d.ts +2 -0
  266. package/dist/tests/properties/trs.property.test.d.ts.map +1 -0
  267. package/dist/tests/properties/trs.property.test.js +34 -0
  268. package/dist/tests/properties/trs.property.test.js.map +1 -0
  269. package/dist/tests/properties/unification.property.test.d.ts +2 -0
  270. package/dist/tests/properties/unification.property.test.d.ts.map +1 -0
  271. package/dist/tests/properties/unification.property.test.js +42 -0
  272. package/dist/tests/properties/unification.property.test.js.map +1 -0
  273. package/dist/tests/smt-lib/emitter.test.d.ts +2 -0
  274. package/dist/tests/smt-lib/emitter.test.d.ts.map +1 -0
  275. package/dist/tests/smt-lib/emitter.test.js +155 -0
  276. package/dist/tests/smt-lib/emitter.test.js.map +1 -0
  277. package/dist/tests/smt-lib/parser.test.d.ts +2 -0
  278. package/dist/tests/smt-lib/parser.test.d.ts.map +1 -0
  279. package/dist/tests/smt-lib/parser.test.js +164 -0
  280. package/dist/tests/smt-lib/parser.test.js.map +1 -0
  281. package/dist/tests/smt-lib/tokenizer.test.d.ts +2 -0
  282. package/dist/tests/smt-lib/tokenizer.test.d.ts.map +1 -0
  283. package/dist/tests/smt-lib/tokenizer.test.js +59 -0
  284. package/dist/tests/smt-lib/tokenizer.test.js.map +1 -0
  285. package/package.json +2 -1
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Property: TRS normalize — punto fijo
4
+ // ============================================================
5
+ //
6
+ // ∀ term t, rules R: normalize(t, R) es punto fijo —
7
+ // rewriteStep(normalize(t,R), R) === null (no más reducible).
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const vitest_1 = require("vitest");
10
+ const generators_1 = require("./generators");
11
+ const term_rewriting_1 = require("../../runtime/term-rewriting");
12
+ const term_rewriting_2 = require("../../runtime/term-rewriting");
13
+ // Reglas TRS pequeñas, simples y terminantes:
14
+ // f(x) → g(x) — renombrado
15
+ // h(c, x) → x — proyección (elimina la c)
16
+ // g(A) → B — reducción ground
17
+ const RULES = [
18
+ { lhs: (0, term_rewriting_2.f)('f', (0, term_rewriting_2.v)('x')), rhs: (0, term_rewriting_2.f)('g', (0, term_rewriting_2.v)('x')) },
19
+ { lhs: (0, term_rewriting_2.f)('h', (0, term_rewriting_2.c)('A'), (0, term_rewriting_2.v)('x')), rhs: (0, term_rewriting_2.v)('x') },
20
+ { lhs: (0, term_rewriting_2.f)('g', (0, term_rewriting_2.c)('A')), rhs: (0, term_rewriting_2.c)('B') },
21
+ ];
22
+ (0, vitest_1.describe)('property: TRS normalize is a fixed point', () => {
23
+ (0, vitest_1.it)('rewriteStep(normalize(t, R), R) === null', () => {
24
+ generators_1.fc.assert(generators_1.fc.property((0, generators_1.trsTerm)(3), (t) => {
25
+ const normal = (0, term_rewriting_1.normalize)(t, RULES, 2000);
26
+ const step = (0, term_rewriting_1.rewriteStep)(normal, RULES);
27
+ if (step !== null) {
28
+ throw new Error(`normalize no punto fijo: t=${JSON.stringify(t)}, normal=${JSON.stringify(normal)}, step=${JSON.stringify(step)}`);
29
+ }
30
+ return true;
31
+ }), { numRuns: 100 });
32
+ });
33
+ });
34
+ //# sourceMappingURL=trs.property.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trs.property.test.js","sourceRoot":"","sources":["../../../src/tests/properties/trs.property.test.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,+DAA+D;AAC/D,EAAE;AACF,qDAAqD;AACrD,8DAA8D;;AAE9D,mCAAsC;AACtC,6CAA2C;AAC3C,iEAAsE;AACtE,iEAAuD;AAEvD,8CAA8C;AAC9C,qCAAqC;AACrC,oDAAoD;AACpD,2CAA2C;AAC3C,MAAM,KAAK,GAAG;IACZ,EAAE,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,CAAC,CAAC,EAAE;IAC5C,EAAE,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,CAAC,EAAE,IAAA,kBAAC,EAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,CAAC,EAAE;IAC5C,EAAE,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAA,kBAAC,EAAC,GAAG,CAAC,EAAE;CACrC,CAAC;AAEF,IAAA,iBAAQ,EAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,IAAA,WAAE,EAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CAAC,IAAA,oBAAO,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,IAAA,0BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAClH,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=unification.property.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unification.property.test.d.ts","sourceRoot":"","sources":["../../../src/tests/properties/unification.property.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Property: Unification first-order (TRS) — reflexividad
4
+ // ============================================================
5
+ //
6
+ // ∀ random term t, unify(t, t) tiene éxito y devuelve sub vacía.
7
+ // Y para términos arbitrarios, si unify(s, t) = σ, entonces
8
+ // σ(s) === σ(t) estructuralmente.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const vitest_1 = require("vitest");
11
+ const generators_1 = require("./generators");
12
+ const term_rewriting_1 = require("../../runtime/term-rewriting");
13
+ (0, vitest_1.describe)('property: TRS unification reflexivity & coherence', () => {
14
+ (0, vitest_1.it)('unify(t, t) succeeds with empty substitution', () => {
15
+ generators_1.fc.assert(generators_1.fc.property((0, generators_1.trsTerm)(3), (t) => {
16
+ const sub = (0, term_rewriting_1.unify)(t, t);
17
+ if (sub === null) {
18
+ throw new Error(`unify(t, t) === null para t=${JSON.stringify(t)}`);
19
+ }
20
+ // No es estrictamente vacío si t tiene vars (la unif puede generar
21
+ // bindings triviales como x→x), pero applySubst debería preservar t.
22
+ if (!(0, term_rewriting_1.termEquals)((0, term_rewriting_1.applySubst)(t, sub), t)) {
23
+ throw new Error(`unify(t,t) σ tal que σt ≠ t: t=${JSON.stringify(t)}, σ=${JSON.stringify(Array.from(sub.entries()))}`);
24
+ }
25
+ return true;
26
+ }), { numRuns: 200 });
27
+ });
28
+ (0, vitest_1.it)('if unify(s,t) = σ then σ(s) ≡ σ(t)', () => {
29
+ generators_1.fc.assert(generators_1.fc.property((0, generators_1.trsTerm)(3), (0, generators_1.trsTerm)(3), (s, t) => {
30
+ const sub = (0, term_rewriting_1.unify)(s, t);
31
+ if (sub === null)
32
+ return true; // skip no-unifiable
33
+ const lhs = (0, term_rewriting_1.applySubst)(s, sub);
34
+ const rhs = (0, term_rewriting_1.applySubst)(t, sub);
35
+ if (!(0, term_rewriting_1.termEquals)(lhs, rhs)) {
36
+ throw new Error(`unify(s,t)=σ pero σs≠σt: s=${JSON.stringify(s)}, t=${JSON.stringify(t)}, σs=${JSON.stringify(lhs)}, σt=${JSON.stringify(rhs)}`);
37
+ }
38
+ return true;
39
+ }), { numRuns: 200 });
40
+ });
41
+ });
42
+ //# sourceMappingURL=unification.property.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unification.property.test.js","sourceRoot":"","sources":["../../../src/tests/properties/unification.property.test.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAC/D,EAAE;AACF,iEAAiE;AACjE,4DAA4D;AAC5D,kCAAkC;;AAElC,mCAAsC;AACtC,6CAA2C;AAC3C,iEAA6E;AAE7E,IAAA,iBAAQ,EAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,IAAA,WAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CAAC,IAAA,oBAAO,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAA,sBAAK,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,mEAAmE;YACnE,qEAAqE;YACrE,IAAI,CAAC,IAAA,2BAAU,EAAC,IAAA,2BAAU,EAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CACtG,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CAAC,IAAA,oBAAO,EAAC,CAAC,CAAC,EAAE,IAAA,oBAAO,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAA,sBAAK,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,CAAC,oBAAoB;YACnD,MAAM,GAAG,GAAG,IAAA,2BAAU,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAA,2BAAU,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAA,2BAAU,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAChI,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=emitter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.test.d.ts","sourceRoot":"","sources":["../../../src/tests/smt-lib/emitter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SMT-LIB v2 Tests — Emitter y round-trip
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const emitter_1 = require("../../smt-lib/emitter");
8
+ const parser_1 = require("../../smt-lib/parser");
9
+ (0, vitest_1.describe)('SMT-LIB emitter', () => {
10
+ (0, vitest_1.it)('emite (check-sat) y (exit)', () => {
11
+ (0, vitest_1.expect)((0, emitter_1.emitCommand)({ kind: 'check-sat' })).toBe('(check-sat)');
12
+ (0, vitest_1.expect)((0, emitter_1.emitCommand)({ kind: 'exit' })).toBe('(exit)');
13
+ });
14
+ (0, vitest_1.it)('emite declare-fun con varios sorts', () => {
15
+ const out = (0, emitter_1.emitCommand)({
16
+ kind: 'declare-fun',
17
+ name: 'f',
18
+ paramSorts: [
19
+ { kind: 'symbol', name: 'Int' },
20
+ { kind: 'symbol', name: 'Int' },
21
+ ],
22
+ resultSort: { kind: 'symbol', name: 'Bool' },
23
+ });
24
+ (0, vitest_1.expect)(out).toBe('(declare-fun f (Int Int) Bool)');
25
+ });
26
+ (0, vitest_1.it)('emite define-fun con cuerpo', () => {
27
+ const out = (0, emitter_1.emitCommand)({
28
+ kind: 'define-fun',
29
+ name: 'sq',
30
+ params: [{ name: 'x', sort: { kind: 'symbol', name: 'Int' } }],
31
+ resultSort: { kind: 'symbol', name: 'Int' },
32
+ body: {
33
+ kind: 'app',
34
+ fn: '*',
35
+ args: [
36
+ { kind: 'symbol', name: 'x' },
37
+ { kind: 'symbol', name: 'x' },
38
+ ],
39
+ },
40
+ });
41
+ (0, vitest_1.expect)(out).toBe('(define-fun sq ((x Int)) Int (* x x))');
42
+ });
43
+ (0, vitest_1.it)('emite (push N) y (pop N)', () => {
44
+ (0, vitest_1.expect)((0, emitter_1.emitCommand)({ kind: 'push', levels: 3 })).toBe('(push 3)');
45
+ (0, vitest_1.expect)((0, emitter_1.emitCommand)({ kind: 'pop', levels: 1 })).toBe('(pop 1)');
46
+ });
47
+ (0, vitest_1.it)('emite hex y binary preservando prefijos', () => {
48
+ (0, vitest_1.expect)((0, emitter_1.emitTerm)({ kind: 'spec-constant', type: 'hex', value: 'AB' })).toBe('#xAB');
49
+ (0, vitest_1.expect)((0, emitter_1.emitTerm)({ kind: 'spec-constant', type: 'binary', value: '101' })).toBe('#b101');
50
+ });
51
+ (0, vitest_1.it)('cita símbolos con caracteres especiales con | ... |', () => {
52
+ (0, vitest_1.expect)((0, emitter_1.quoteSymbol)('hola mundo')).toBe('|hola mundo|');
53
+ (0, vitest_1.expect)((0, emitter_1.quoteSymbol)('x')).toBe('x');
54
+ (0, vitest_1.expect)((0, emitter_1.quoteSymbol)('')).toBe('||');
55
+ });
56
+ (0, vitest_1.it)('emite sorts indexados (_ BitVec 32)', () => {
57
+ const sort = (0, parser_1.parseSort)('(_ BitVec 32)');
58
+ (0, vitest_1.expect)((0, emitter_1.emitSort)(sort)).toBe('(_ BitVec 32)');
59
+ });
60
+ (0, vitest_1.it)('emite sorts aplicados (Array Int Int)', () => {
61
+ const sort = (0, parser_1.parseSort)('(Array Int Int)');
62
+ (0, vitest_1.expect)((0, emitter_1.emitSort)(sort)).toBe('(Array Int Int)');
63
+ });
64
+ (0, vitest_1.it)('emite strings escapando comilla doble', () => {
65
+ (0, vitest_1.expect)((0, emitter_1.emitTerm)({ kind: 'spec-constant', type: 'string', value: 'hi "bob"' })).toBe('"hi ""bob"""');
66
+ });
67
+ });
68
+ (0, vitest_1.describe)('SMT-LIB round-trip', () => {
69
+ function roundTrip(src) {
70
+ const cmds = (0, parser_1.parseSmtLib)(src);
71
+ return (0, emitter_1.emitSmtLib)(cmds);
72
+ }
73
+ (0, vitest_1.it)('round-trip: programa QF_LIA mínimo', () => {
74
+ const src = [
75
+ '(set-logic QF_LIA)',
76
+ '(declare-const x Int)',
77
+ '(declare-const y Int)',
78
+ '(assert (= (+ x y) 10))',
79
+ '(assert (> x 0))',
80
+ '(check-sat)',
81
+ '(get-model)',
82
+ '(exit)',
83
+ ].join('\n');
84
+ const out1 = roundTrip(src);
85
+ const out2 = roundTrip(out1);
86
+ (0, vitest_1.expect)(out2).toBe(out1);
87
+ });
88
+ (0, vitest_1.it)('round-trip: idempotente sobre forall + let', () => {
89
+ const src = '(assert (forall ((x Int)) (let ((y (* x 2))) (>= y 0))))';
90
+ const out1 = roundTrip(src);
91
+ const out2 = roundTrip(out1);
92
+ (0, vitest_1.expect)(out2).toBe(out1);
93
+ });
94
+ (0, vitest_1.it)('round-trip: programa QF_LRA con 10 comandos', () => {
95
+ const src = [
96
+ '(set-logic QF_LRA)',
97
+ '(set-option :produce-models true)',
98
+ '(declare-const a Real)',
99
+ '(declare-const b Real)',
100
+ '(declare-const c Real)',
101
+ '(assert (> a 0.0))',
102
+ '(assert (< b 1.0))',
103
+ '(assert (= c (+ a b)))',
104
+ '(push 1)',
105
+ '(check-sat)',
106
+ ].join('\n');
107
+ const cmds = (0, parser_1.parseSmtLib)(src);
108
+ (0, vitest_1.expect)(cmds).toHaveLength(10);
109
+ const out1 = (0, emitter_1.emitSmtLib)(cmds);
110
+ const cmds2 = (0, parser_1.parseSmtLib)(out1);
111
+ const out2 = (0, emitter_1.emitSmtLib)(cmds2);
112
+ (0, vitest_1.expect)(out2).toBe(out1);
113
+ });
114
+ (0, vitest_1.it)('round-trip: programa con bit-vectors', () => {
115
+ const src = [
116
+ '(set-logic QF_BV)',
117
+ '(declare-const x (_ BitVec 8))',
118
+ '(assert (= x #xFF))',
119
+ '(check-sat)',
120
+ ].join('\n');
121
+ const cmds = (0, parser_1.parseSmtLib)(src);
122
+ const out1 = (0, emitter_1.emitSmtLib)(cmds);
123
+ const out2 = (0, emitter_1.emitSmtLib)((0, parser_1.parseSmtLib)(out1));
124
+ (0, vitest_1.expect)(out2).toBe(out1);
125
+ });
126
+ (0, vitest_1.it)('round-trip: ignora comentarios y whitespace variable', () => {
127
+ const src = `
128
+ ; inicio del programa
129
+ (set-logic QF_UF)
130
+ (declare-sort A 0)
131
+ (declare-fun f (A) A)
132
+ (assert (= (f (f (f x))) x)) ; un ciclo de orden 3
133
+ (check-sat)
134
+ `;
135
+ const out1 = (0, emitter_1.emitSmtLib)((0, parser_1.parseSmtLib)(src));
136
+ const out2 = (0, emitter_1.emitSmtLib)((0, parser_1.parseSmtLib)(out1));
137
+ (0, vitest_1.expect)(out2).toBe(out1);
138
+ (0, vitest_1.expect)(out1).toContain('(declare-sort A 0)');
139
+ (0, vitest_1.expect)(out1).not.toContain(';');
140
+ });
141
+ (0, vitest_1.it)('round-trip: símbolos pipe-quoted preservados', () => {
142
+ const src = '(declare-const |x con espacios| Real)';
143
+ const out1 = (0, emitter_1.emitSmtLib)((0, parser_1.parseSmtLib)(src));
144
+ (0, vitest_1.expect)(out1).toBe('(declare-const |x con espacios| Real)');
145
+ const out2 = (0, emitter_1.emitSmtLib)((0, parser_1.parseSmtLib)(out1));
146
+ (0, vitest_1.expect)(out2).toBe(out1);
147
+ });
148
+ (0, vitest_1.it)('round-trip: set-info y set-option con valores', () => {
149
+ const src = '(set-info :status sat)(set-option :produce-models true)';
150
+ const out1 = (0, emitter_1.emitSmtLib)((0, parser_1.parseSmtLib)(src));
151
+ (0, vitest_1.expect)(out1).toContain('(set-info :status sat)');
152
+ (0, vitest_1.expect)(out1).toContain('(set-option :produce-models true)');
153
+ });
154
+ });
155
+ //# sourceMappingURL=emitter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.test.js","sourceRoot":"","sources":["../../../src/tests/smt-lib/emitter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../../src/tests/smt-lib/parser.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SMT-LIB v2 Tests — Parser
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const parser_1 = require("../../smt-lib/parser");
8
+ (0, vitest_1.describe)('SMT-LIB parser — comandos', () => {
9
+ (0, vitest_1.it)('parsea (check-sat) como comando único', () => {
10
+ const cmds = (0, parser_1.parseSmtLib)('(check-sat)');
11
+ (0, vitest_1.expect)(cmds).toEqual([{ kind: 'check-sat' }]);
12
+ });
13
+ (0, vitest_1.it)('parsea (set-logic QF_LRA)', () => {
14
+ const cmds = (0, parser_1.parseSmtLib)('(set-logic QF_LRA)');
15
+ (0, vitest_1.expect)(cmds).toEqual([{ kind: 'set-logic', logic: 'QF_LRA' }]);
16
+ });
17
+ (0, vitest_1.it)('parsea (declare-const x Real)', () => {
18
+ const cmds = (0, parser_1.parseSmtLib)('(declare-const x Real)');
19
+ const cmd = cmds[0];
20
+ (0, vitest_1.expect)(cmd.kind).toBe('declare-const');
21
+ (0, vitest_1.expect)(cmd.name).toBe('x');
22
+ (0, vitest_1.expect)(cmd.sort).toEqual({ kind: 'symbol', name: 'Real' });
23
+ });
24
+ (0, vitest_1.it)('parsea (declare-fun f (Int Int) Bool)', () => {
25
+ const cmds = (0, parser_1.parseSmtLib)('(declare-fun f (Int Int) Bool)');
26
+ const cmd = cmds[0];
27
+ (0, vitest_1.expect)(cmd.kind).toBe('declare-fun');
28
+ (0, vitest_1.expect)(cmd.name).toBe('f');
29
+ (0, vitest_1.expect)(cmd.paramSorts).toHaveLength(2);
30
+ (0, vitest_1.expect)(cmd.paramSorts[0]).toEqual({ kind: 'symbol', name: 'Int' });
31
+ (0, vitest_1.expect)(cmd.resultSort).toEqual({ kind: 'symbol', name: 'Bool' });
32
+ });
33
+ (0, vitest_1.it)('parsea (assert (= x 5))', () => {
34
+ const cmds = (0, parser_1.parseSmtLib)('(assert (= x 5))');
35
+ const cmd = cmds[0];
36
+ (0, vitest_1.expect)(cmd.kind).toBe('assert');
37
+ (0, vitest_1.expect)(cmd.formula.kind).toBe('app');
38
+ });
39
+ (0, vitest_1.it)('parsea (push 2) y (pop 1)', () => {
40
+ const cmds = (0, parser_1.parseSmtLib)('(push 2)(pop 1)');
41
+ (0, vitest_1.expect)(cmds).toEqual([
42
+ { kind: 'push', levels: 2 },
43
+ { kind: 'pop', levels: 1 },
44
+ ]);
45
+ });
46
+ (0, vitest_1.it)('parsea (declare-sort A 0)', () => {
47
+ const cmds = (0, parser_1.parseSmtLib)('(declare-sort A 0)');
48
+ (0, vitest_1.expect)(cmds).toEqual([{ kind: 'declare-sort', name: 'A', arity: 0 }]);
49
+ });
50
+ (0, vitest_1.it)('parsea (set-option :produce-models true)', () => {
51
+ const cmds = (0, parser_1.parseSmtLib)('(set-option :produce-models true)');
52
+ const cmd = cmds[0];
53
+ (0, vitest_1.expect)(cmd.kind).toBe('set-option');
54
+ (0, vitest_1.expect)(cmd.key).toBe('produce-models');
55
+ (0, vitest_1.expect)(cmd.value).toBe('true');
56
+ });
57
+ (0, vitest_1.it)('parsea (set-info :status sat)', () => {
58
+ const cmds = (0, parser_1.parseSmtLib)('(set-info :status sat)');
59
+ const cmd = cmds[0];
60
+ (0, vitest_1.expect)(cmd.kind).toBe('set-info');
61
+ (0, vitest_1.expect)(cmd.key).toBe('status');
62
+ });
63
+ (0, vitest_1.it)('parsea (define-fun double ((x Int)) Int (+ x x))', () => {
64
+ const cmds = (0, parser_1.parseSmtLib)('(define-fun double ((x Int)) Int (+ x x))');
65
+ const cmd = cmds[0];
66
+ (0, vitest_1.expect)(cmd.kind).toBe('define-fun');
67
+ (0, vitest_1.expect)(cmd.name).toBe('double');
68
+ (0, vitest_1.expect)(cmd.params).toEqual([{ name: 'x', sort: { kind: 'symbol', name: 'Int' } }]);
69
+ (0, vitest_1.expect)(cmd.resultSort).toEqual({ kind: 'symbol', name: 'Int' });
70
+ (0, vitest_1.expect)(cmd.body.kind).toBe('app');
71
+ });
72
+ (0, vitest_1.it)('parsea (echo "hola")', () => {
73
+ const cmds = (0, parser_1.parseSmtLib)('(echo "hola")');
74
+ (0, vitest_1.expect)(cmds).toEqual([{ kind: 'echo', message: 'hola' }]);
75
+ });
76
+ (0, vitest_1.it)('parsea (get-value (x y z))', () => {
77
+ const cmds = (0, parser_1.parseSmtLib)('(get-value (x y z))');
78
+ const cmd = cmds[0];
79
+ (0, vitest_1.expect)(cmd.kind).toBe('get-value');
80
+ (0, vitest_1.expect)(cmd.terms).toHaveLength(3);
81
+ });
82
+ (0, vitest_1.it)('parsea (check-sat-assuming (p (not q)))', () => {
83
+ const cmds = (0, parser_1.parseSmtLib)('(check-sat-assuming (p (not q)))');
84
+ const cmd = cmds[0];
85
+ (0, vitest_1.expect)(cmd.kind).toBe('check-sat-assuming');
86
+ (0, vitest_1.expect)(cmd.assumptions).toHaveLength(2);
87
+ });
88
+ (0, vitest_1.it)('parsea (reset), (reset-assertions), (exit), (get-model), (get-proof), (get-unsat-core), (get-assertions)', () => {
89
+ const cmds = (0, parser_1.parseSmtLib)('(reset)(reset-assertions)(exit)(get-model)(get-proof)(get-unsat-core)(get-assertions)');
90
+ (0, vitest_1.expect)(cmds.map((c) => c.kind)).toEqual([
91
+ 'reset',
92
+ 'reset-assertions',
93
+ 'exit',
94
+ 'get-model',
95
+ 'get-proof',
96
+ 'get-unsat-core',
97
+ 'get-assertions',
98
+ ]);
99
+ });
100
+ (0, vitest_1.it)('arroja error en comando desconocido', () => {
101
+ (0, vitest_1.expect)(() => (0, parser_1.parseSmtLib)('(foobar 1)')).toThrow(parser_1.SmtParserError);
102
+ });
103
+ });
104
+ (0, vitest_1.describe)('SMT-LIB parser — términos', () => {
105
+ (0, vitest_1.it)('parsea let: (let ((y 5)) (+ x y))', () => {
106
+ const term = (0, parser_1.parseTerm)('(let ((y 5)) (+ x y))');
107
+ (0, vitest_1.expect)(term.kind).toBe('let');
108
+ if (term.kind === 'let') {
109
+ (0, vitest_1.expect)(term.bindings).toHaveLength(1);
110
+ (0, vitest_1.expect)(term.bindings[0].name).toBe('y');
111
+ (0, vitest_1.expect)(term.body.kind).toBe('app');
112
+ }
113
+ });
114
+ (0, vitest_1.it)('parsea forall: (forall ((x Int)) (>= x 0))', () => {
115
+ const term = (0, parser_1.parseTerm)('(forall ((x Int)) (>= x 0))');
116
+ (0, vitest_1.expect)(term.kind).toBe('forall');
117
+ if (term.kind === 'forall') {
118
+ (0, vitest_1.expect)(term.vars).toEqual([{ name: 'x', sort: { kind: 'symbol', name: 'Int' } }]);
119
+ (0, vitest_1.expect)(term.body.kind).toBe('app');
120
+ }
121
+ });
122
+ (0, vitest_1.it)('parsea exists con múltiples variables', () => {
123
+ const term = (0, parser_1.parseTerm)('(exists ((x Int) (y Real)) (= x y))');
124
+ (0, vitest_1.expect)(term.kind).toBe('exists');
125
+ if (term.kind === 'exists') {
126
+ (0, vitest_1.expect)(term.vars).toHaveLength(2);
127
+ (0, vitest_1.expect)(term.vars[1].sort).toEqual({ kind: 'symbol', name: 'Real' });
128
+ }
129
+ });
130
+ (0, vitest_1.it)('parsea identificadores indexados (_ BitVec 32)', () => {
131
+ const sort = (0, parser_1.parseSort)('(_ BitVec 32)');
132
+ (0, vitest_1.expect)(sort.kind).toBe('app');
133
+ if (sort.kind === 'app') {
134
+ (0, vitest_1.expect)(sort.name).toBe('_ BitVec');
135
+ (0, vitest_1.expect)(sort.args).toHaveLength(1);
136
+ }
137
+ });
138
+ (0, vitest_1.it)('parsea sorts aplicados (Array Int Int)', () => {
139
+ const sort = (0, parser_1.parseSort)('(Array Int Int)');
140
+ (0, vitest_1.expect)(sort).toEqual({
141
+ kind: 'app',
142
+ name: 'Array',
143
+ args: [
144
+ { kind: 'symbol', name: 'Int' },
145
+ { kind: 'symbol', name: 'Int' },
146
+ ],
147
+ });
148
+ });
149
+ (0, vitest_1.it)('parsea numerales, decimales, hex y binary como spec-constants', () => {
150
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('42')).toEqual({ kind: 'spec-constant', type: 'numeral', value: '42' });
151
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('3.14')).toEqual({ kind: 'spec-constant', type: 'decimal', value: '3.14' });
152
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('#xFF')).toEqual({ kind: 'spec-constant', type: 'hex', value: 'FF' });
153
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('#b101')).toEqual({ kind: 'spec-constant', type: 'binary', value: '101' });
154
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('"hola"')).toEqual({ kind: 'spec-constant', type: 'string', value: 'hola' });
155
+ });
156
+ (0, vitest_1.it)('parsea término anotado (! x :named foo)', () => {
157
+ const term = (0, parser_1.parseTerm)('(! x :named foo)');
158
+ (0, vitest_1.expect)(term.kind).toBe('annotated');
159
+ if (term.kind === 'annotated') {
160
+ (0, vitest_1.expect)(term.attrs).toEqual([{ key: 'named', value: 'foo' }]);
161
+ }
162
+ });
163
+ });
164
+ //# sourceMappingURL=parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../../src/tests/smt-lib/parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tokenizer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.test.d.ts","sourceRoot":"","sources":["../../../src/tests/smt-lib/tokenizer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SMT-LIB v2 Tests — Tokenizer
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const tokenizer_1 = require("../../smt-lib/tokenizer");
8
+ (0, vitest_1.describe)('SMT-LIB tokenizer', () => {
9
+ (0, vitest_1.it)('tokeniza paréntesis y símbolos básicos', () => {
10
+ const tokens = (0, tokenizer_1.tokenize)('(check-sat)');
11
+ (0, vitest_1.expect)(tokens.map((t) => t.kind)).toEqual(['lparen', 'symbol', 'rparen']);
12
+ (0, vitest_1.expect)(tokens[1].value).toBe('check-sat');
13
+ });
14
+ (0, vitest_1.it)('ignora comentarios de línea', () => {
15
+ const tokens = (0, tokenizer_1.tokenize)('; un comentario\n(assert true)');
16
+ (0, vitest_1.expect)(tokens.map((t) => t.value)).toEqual(['(', 'assert', 'true', ')']);
17
+ });
18
+ (0, vitest_1.it)('reconoce keywords con `:`', () => {
19
+ const tokens = (0, tokenizer_1.tokenize)('(set-option :produce-models true)');
20
+ (0, vitest_1.expect)(tokens[2].kind).toBe('keyword');
21
+ (0, vitest_1.expect)(tokens[2].value).toBe('produce-models');
22
+ });
23
+ (0, vitest_1.it)('reconoce literales hex y binary', () => {
24
+ const tokens = (0, tokenizer_1.tokenize)('#xAB12 #b1010');
25
+ (0, vitest_1.expect)(tokens[0].kind).toBe('hex');
26
+ (0, vitest_1.expect)(tokens[0].value).toBe('AB12');
27
+ (0, vitest_1.expect)(tokens[1].kind).toBe('binary');
28
+ (0, vitest_1.expect)(tokens[1].value).toBe('1010');
29
+ });
30
+ (0, vitest_1.it)('reconoce numerales y decimales', () => {
31
+ const tokens = (0, tokenizer_1.tokenize)('42 3.14');
32
+ (0, vitest_1.expect)(tokens[0].kind).toBe('numeral');
33
+ (0, vitest_1.expect)(tokens[0].value).toBe('42');
34
+ (0, vitest_1.expect)(tokens[1].kind).toBe('decimal');
35
+ (0, vitest_1.expect)(tokens[1].value).toBe('3.14');
36
+ });
37
+ (0, vitest_1.it)('parsea strings con escape de comilla doble', () => {
38
+ const tokens = (0, tokenizer_1.tokenize)('"hola ""mundo"" fin"');
39
+ (0, vitest_1.expect)(tokens[0].kind).toBe('string');
40
+ (0, vitest_1.expect)(tokens[0].value).toBe('hola "mundo" fin');
41
+ });
42
+ (0, vitest_1.it)('parsea símbolos pipe-quoted', () => {
43
+ const tokens = (0, tokenizer_1.tokenize)('|símbolo con espacios|');
44
+ (0, vitest_1.expect)(tokens[0].kind).toBe('symbol');
45
+ (0, vitest_1.expect)(tokens[0].value).toBe('símbolo con espacios');
46
+ });
47
+ (0, vitest_1.it)('arroja error en string sin cerrar', () => {
48
+ (0, vitest_1.expect)(() => (0, tokenizer_1.tokenize)('"hola')).toThrow(tokenizer_1.SmtTokenizerError);
49
+ });
50
+ (0, vitest_1.it)('arroja error en |...| sin cerrar', () => {
51
+ (0, vitest_1.expect)(() => (0, tokenizer_1.tokenize)('|abc')).toThrow(tokenizer_1.SmtTokenizerError);
52
+ });
53
+ (0, vitest_1.it)('mantiene line/col en cada token', () => {
54
+ const tokens = (0, tokenizer_1.tokenize)('(foo\n bar)');
55
+ (0, vitest_1.expect)(tokens[2].line).toBe(2);
56
+ (0, vitest_1.expect)(tokens[2].col).toBe(3);
57
+ });
58
+ });
59
+ //# sourceMappingURL=tokenizer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.test.js","sourceRoot":"","sources":["../../../src/tests/smt-lib/tokenizer.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stevenvo780/st-lang",
3
- "version": "4.5.1",
3
+ "version": "4.5.2",
4
4
  "description": "ST — Lenguaje ejecutable con nucleo logico y capa textual. Motor multi-perfil (11 lógicas), derivaciones, tablas de verdad, contramodelos, aliases modales, Belnap 4-valores y capa textual para formalización de documentos.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -95,6 +95,7 @@
95
95
  "eslint": "^10.0.3",
96
96
  "eslint-config-prettier": "^10.1.8",
97
97
  "eslint-plugin-prettier": "^5.5.5",
98
+ "fast-check": "^4.8.0",
98
99
  "prettier": "^3.8.1",
99
100
  "semver": "^7.8.0",
100
101
  "typescript": "^5.4.0",