@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,138 @@
1
+ /** Sort SMT-LIB v2: o bien un símbolo (Int, Real, Bool) o una aplicación. */
2
+ export type SmtSort = {
3
+ kind: 'symbol';
4
+ name: string;
5
+ } | {
6
+ kind: 'app';
7
+ name: string;
8
+ args: SmtSort[];
9
+ };
10
+ /** Tipos de constantes especiales del estándar (spec_constant). */
11
+ export type SmtSpecConstantType = 'numeral' | 'decimal' | 'string' | 'hex' | 'binary';
12
+ /** Término SMT-LIB v2. */
13
+ export type SmtTerm = {
14
+ kind: 'spec-constant';
15
+ type: SmtSpecConstantType;
16
+ value: string;
17
+ } | {
18
+ kind: 'symbol';
19
+ name: string;
20
+ } | {
21
+ kind: 'app';
22
+ fn: string;
23
+ args: SmtTerm[];
24
+ } | {
25
+ kind: 'let';
26
+ bindings: Array<{
27
+ name: string;
28
+ value: SmtTerm;
29
+ }>;
30
+ body: SmtTerm;
31
+ } | {
32
+ kind: 'forall';
33
+ vars: Array<{
34
+ name: string;
35
+ sort: SmtSort;
36
+ }>;
37
+ body: SmtTerm;
38
+ } | {
39
+ kind: 'exists';
40
+ vars: Array<{
41
+ name: string;
42
+ sort: SmtSort;
43
+ }>;
44
+ body: SmtTerm;
45
+ } | {
46
+ kind: 'match';
47
+ scrutinee: SmtTerm;
48
+ cases: Array<{
49
+ pattern: SmtTerm;
50
+ body: SmtTerm;
51
+ }>;
52
+ } | {
53
+ kind: 'annotated';
54
+ term: SmtTerm;
55
+ attrs: Array<{
56
+ key: string;
57
+ value?: string;
58
+ }>;
59
+ };
60
+ /** Comando SMT-LIB v2 (subset operativo del estándar). */
61
+ export type SmtCommand = {
62
+ kind: 'set-logic';
63
+ logic: string;
64
+ } | {
65
+ kind: 'set-option';
66
+ key: string;
67
+ value: string;
68
+ } | {
69
+ kind: 'set-info';
70
+ key: string;
71
+ value: string;
72
+ } | {
73
+ kind: 'declare-sort';
74
+ name: string;
75
+ arity: number;
76
+ } | {
77
+ kind: 'define-sort';
78
+ name: string;
79
+ params: string[];
80
+ body: SmtSort;
81
+ } | {
82
+ kind: 'declare-fun';
83
+ name: string;
84
+ paramSorts: SmtSort[];
85
+ resultSort: SmtSort;
86
+ } | {
87
+ kind: 'define-fun';
88
+ name: string;
89
+ params: Array<{
90
+ name: string;
91
+ sort: SmtSort;
92
+ }>;
93
+ resultSort: SmtSort;
94
+ body: SmtTerm;
95
+ } | {
96
+ kind: 'declare-const';
97
+ name: string;
98
+ sort: SmtSort;
99
+ } | {
100
+ kind: 'assert';
101
+ formula: SmtTerm;
102
+ } | {
103
+ kind: 'check-sat';
104
+ } | {
105
+ kind: 'check-sat-assuming';
106
+ assumptions: SmtTerm[];
107
+ } | {
108
+ kind: 'get-assertions';
109
+ } | {
110
+ kind: 'get-model';
111
+ } | {
112
+ kind: 'get-proof';
113
+ } | {
114
+ kind: 'get-unsat-core';
115
+ } | {
116
+ kind: 'get-value';
117
+ terms: SmtTerm[];
118
+ } | {
119
+ kind: 'push';
120
+ levels: number;
121
+ } | {
122
+ kind: 'pop';
123
+ levels: number;
124
+ } | {
125
+ kind: 'reset';
126
+ } | {
127
+ kind: 'reset-assertions';
128
+ } | {
129
+ kind: 'exit';
130
+ } | {
131
+ kind: 'echo';
132
+ message: string;
133
+ };
134
+ /** Lógicas estándar reconocidas (no exhaustivo). */
135
+ export declare const KNOWN_LOGICS: ReadonlySet<string>;
136
+ /** Identifica si una cabeza de comando es nombre estándar del estándar. */
137
+ export declare const COMMAND_NAMES: ReadonlySet<string>;
138
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/smt-lib/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SMT-LIB v2 — AST de sorts, términos y comandos
4
+ // ============================================================
5
+ //
6
+ // Cubre el grueso del estándar SMT-LIB v2.6:
7
+ // - sorts atómicos y aplicados (e.g. (Array Int Int), (_ BitVec 32))
8
+ // - términos: constantes especiales, símbolos, aplicaciones, let,
9
+ // forall/exists, match, annotated terms (`!`)
10
+ // - comandos: set-logic / set-option / set-info, declare-* / define-*,
11
+ // assert, check-sat / check-sat-assuming, get-*, push/pop, reset*, exit, echo
12
+ //
13
+ // Estos tipos son intencionalmente conservadores: cualquier expresión que el
14
+ // parser no entienda como construcción privilegiada cae a `{ kind: 'app' }`
15
+ // con la cabeza preservada como string, así no perdemos información.
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.COMMAND_NAMES = exports.KNOWN_LOGICS = void 0;
18
+ /** Lógicas estándar reconocidas (no exhaustivo). */
19
+ exports.KNOWN_LOGICS = new Set([
20
+ 'QF_UF',
21
+ 'QF_LIA',
22
+ 'QF_LRA',
23
+ 'QF_LIRA',
24
+ 'QF_NIA',
25
+ 'QF_NRA',
26
+ 'QF_NIRA',
27
+ 'QF_BV',
28
+ 'QF_AX',
29
+ 'QF_ABV',
30
+ 'QF_AUFBV',
31
+ 'QF_AUFLIA',
32
+ 'QF_UFLIA',
33
+ 'QF_UFLRA',
34
+ 'QF_UFNRA',
35
+ 'QF_UFBV',
36
+ 'AUFLIA',
37
+ 'AUFLIRA',
38
+ 'AUFNIA',
39
+ 'AUFNIRA',
40
+ 'LIA',
41
+ 'LRA',
42
+ 'NIA',
43
+ 'NRA',
44
+ 'BV',
45
+ 'UF',
46
+ 'ALL',
47
+ ]);
48
+ /** Identifica si una cabeza de comando es nombre estándar del estándar. */
49
+ exports.COMMAND_NAMES = new Set([
50
+ 'set-logic',
51
+ 'set-option',
52
+ 'set-info',
53
+ 'declare-sort',
54
+ 'define-sort',
55
+ 'declare-fun',
56
+ 'define-fun',
57
+ 'declare-const',
58
+ 'assert',
59
+ 'check-sat',
60
+ 'check-sat-assuming',
61
+ 'get-assertions',
62
+ 'get-model',
63
+ 'get-proof',
64
+ 'get-unsat-core',
65
+ 'get-value',
66
+ 'push',
67
+ 'pop',
68
+ 'reset',
69
+ 'reset-assertions',
70
+ 'exit',
71
+ 'echo',
72
+ ]);
73
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/smt-lib/ast.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,iDAAiD;AACjD,+DAA+D;AAC/D,EAAE;AACF,6CAA6C;AAC7C,uEAAuE;AACvE,oEAAoE;AACpE,kDAAkD;AAClD,yEAAyE;AACzE,kFAAkF;AAClF,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,qEAAqE;;;AAoDrE,oDAAoD;AACvC,QAAA,YAAY,GAAwB,IAAI,GAAG,CAAS;IAC/D,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,OAAO;IACP,QAAQ;IACR,UAAU;IACV,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,KAAK;CACN,CAAC,CAAC;AAEH,2EAA2E;AAC9D,QAAA,aAAa,GAAwB,IAAI,GAAG,CAAS;IAChE,WAAW;IACX,YAAY;IACZ,UAAU;IACV,cAAc;IACd,aAAa;IACb,aAAa;IACb,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,WAAW;IACX,oBAAoB;IACpB,gBAAgB;IAChB,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,WAAW;IACX,MAAM;IACN,KAAK;IACL,OAAO;IACP,kBAAkB;IAClB,MAAM;IACN,MAAM;CACP,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SmtCommand, SmtSort, SmtTerm } from './ast';
2
+ /** Cita un identificador si no es un simple-symbol válido. */
3
+ export declare function quoteSymbol(name: string): string;
4
+ /** Emite un sort SMT-LIB. */
5
+ export declare function emitSort(sort: SmtSort): string;
6
+ /** Emite un término SMT-LIB. */
7
+ export declare function emitTerm(term: SmtTerm): string;
8
+ /** Emite un único comando SMT-LIB. */
9
+ export declare function emitCommand(cmd: SmtCommand): string;
10
+ /** Emite un script entero (1 comando por línea). */
11
+ export declare function emitSmtLib(commands: SmtCommand[]): string;
12
+ //# sourceMappingURL=emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/smt-lib/emitter.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAI1D,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAMD,6BAA6B;AAC7B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAe9C;AAWD,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAgD9C;AAED,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAqDnD;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SMT-LIB v2 — Emitter
4
+ // ============================================================
5
+ //
6
+ // Produce texto SMT-LIB v2 a partir de un árbol `SmtCommand[]`. La salida
7
+ // está pensada para ser parseable por solvers reales (z3, cvc5, yices) y
8
+ // para round-trip estable (parse → emit → parse → emit = idempotente).
9
+ //
10
+ // Convenciones:
11
+ // - paréntesis canónicos, espacio entre tokens.
12
+ // - identificadores se citan con `|...|` si contienen caracteres no
13
+ // simples (espacios, caracteres reservados, vacío, empieza con dígito).
14
+ // - strings emiten escape doble-comilla (SMT-LIB v2.6 §3.1).
15
+ // - hex/binary preservan los prefijos `#x` / `#b`.
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.quoteSymbol = quoteSymbol;
18
+ exports.emitSort = emitSort;
19
+ exports.emitTerm = emitTerm;
20
+ exports.emitCommand = emitCommand;
21
+ exports.emitSmtLib = emitSmtLib;
22
+ const SIMPLE_SYMBOL_FULL = /^[A-Za-z~!@$%^&*_\-+=<>.?/][A-Za-z0-9~!@$%^&*_\-+=<>.?/]*$/;
23
+ /** Cita un identificador si no es un simple-symbol válido. */
24
+ function quoteSymbol(name) {
25
+ if (name.length === 0)
26
+ return '||';
27
+ if (SIMPLE_SYMBOL_FULL.test(name))
28
+ return name;
29
+ // No se permite `|` ni `\` dentro de un pipe-quoted symbol (SMT-LIB v2.6).
30
+ const safe = name.replace(/\|/g, '').replace(/\\/g, '');
31
+ return `|${safe}|`;
32
+ }
33
+ function quoteString(s) {
34
+ return `"${s.replace(/"/g, '""')}"`;
35
+ }
36
+ /** Emite un sort SMT-LIB. */
37
+ function emitSort(sort) {
38
+ if (sort.kind === 'symbol')
39
+ return quoteSymbol(sort.name);
40
+ // app
41
+ if (sort.name.startsWith('_ ')) {
42
+ // identificador indexado preservado por el parser
43
+ const inner = sort.name.slice(2);
44
+ if (sort.args.length === 0) {
45
+ return `(_ ${quoteSymbol(inner)})`;
46
+ }
47
+ return `(_ ${quoteSymbol(inner)} ${sort.args.map((a) => emitIndexArg(a)).join(' ')})`;
48
+ }
49
+ if (sort.args.length === 0) {
50
+ return `(${quoteSymbol(sort.name)})`;
51
+ }
52
+ return `(${quoteSymbol(sort.name)} ${sort.args.map(emitSort).join(' ')})`;
53
+ }
54
+ function emitIndexArg(s) {
55
+ if (s.kind === 'symbol') {
56
+ // numeral o symbol; ambos van crudos
57
+ if (/^[0-9]+$/.test(s.name))
58
+ return s.name;
59
+ return quoteSymbol(s.name);
60
+ }
61
+ return emitSort(s);
62
+ }
63
+ /** Emite un término SMT-LIB. */
64
+ function emitTerm(term) {
65
+ switch (term.kind) {
66
+ case 'spec-constant':
67
+ switch (term.type) {
68
+ case 'numeral':
69
+ case 'decimal':
70
+ return term.value;
71
+ case 'hex':
72
+ return `#x${term.value}`;
73
+ case 'binary':
74
+ return `#b${term.value}`;
75
+ case 'string':
76
+ return quoteString(term.value);
77
+ }
78
+ // exhaustive — fallback (TS no lo necesita pero mantiene shape)
79
+ return JSON.stringify(term.value);
80
+ case 'symbol':
81
+ // si ya tiene forma indexada `(_ ...)`, no la requote
82
+ if (term.name.startsWith('(') && term.name.endsWith(')'))
83
+ return term.name;
84
+ return quoteSymbol(term.name);
85
+ case 'app': {
86
+ // si fn fue preservado como s-expr completa (qualified ident), va literal
87
+ const head = term.fn.startsWith('(') ? term.fn : quoteSymbol(term.fn);
88
+ if (term.args.length === 0)
89
+ return `(${head})`;
90
+ return `(${head} ${term.args.map(emitTerm).join(' ')})`;
91
+ }
92
+ case 'let': {
93
+ const bindings = term.bindings
94
+ .map((b) => `(${quoteSymbol(b.name)} ${emitTerm(b.value)})`)
95
+ .join(' ');
96
+ return `(let (${bindings}) ${emitTerm(term.body)})`;
97
+ }
98
+ case 'forall':
99
+ case 'exists': {
100
+ const vars = term.vars.map((v) => `(${quoteSymbol(v.name)} ${emitSort(v.sort)})`).join(' ');
101
+ return `(${term.kind} (${vars}) ${emitTerm(term.body)})`;
102
+ }
103
+ case 'match': {
104
+ const cases = term.cases.map((c) => `(${emitTerm(c.pattern)} ${emitTerm(c.body)})`).join(' ');
105
+ return `(match ${emitTerm(term.scrutinee)} (${cases}))`;
106
+ }
107
+ case 'annotated': {
108
+ const attrs = term.attrs
109
+ .map((a) => (a.value !== undefined ? `:${a.key} ${a.value}` : `:${a.key}`))
110
+ .join(' ');
111
+ return `(! ${emitTerm(term.term)} ${attrs})`;
112
+ }
113
+ }
114
+ }
115
+ /** Emite un único comando SMT-LIB. */
116
+ function emitCommand(cmd) {
117
+ switch (cmd.kind) {
118
+ case 'set-logic':
119
+ return `(set-logic ${quoteSymbol(cmd.logic)})`;
120
+ case 'set-option':
121
+ return `(set-option :${cmd.key} ${cmd.value})`;
122
+ case 'set-info':
123
+ return `(set-info :${cmd.key} ${cmd.value})`;
124
+ case 'declare-sort':
125
+ return `(declare-sort ${quoteSymbol(cmd.name)} ${cmd.arity})`;
126
+ case 'define-sort':
127
+ return `(define-sort ${quoteSymbol(cmd.name)} (${cmd.params.map(quoteSymbol).join(' ')}) ${emitSort(cmd.body)})`;
128
+ case 'declare-fun': {
129
+ const params = cmd.paramSorts.map(emitSort).join(' ');
130
+ return `(declare-fun ${quoteSymbol(cmd.name)} (${params}) ${emitSort(cmd.resultSort)})`;
131
+ }
132
+ case 'define-fun': {
133
+ const params = cmd.params
134
+ .map((p) => `(${quoteSymbol(p.name)} ${emitSort(p.sort)})`)
135
+ .join(' ');
136
+ return `(define-fun ${quoteSymbol(cmd.name)} (${params}) ${emitSort(cmd.resultSort)} ${emitTerm(cmd.body)})`;
137
+ }
138
+ case 'declare-const':
139
+ return `(declare-const ${quoteSymbol(cmd.name)} ${emitSort(cmd.sort)})`;
140
+ case 'assert':
141
+ return `(assert ${emitTerm(cmd.formula)})`;
142
+ case 'check-sat':
143
+ return `(check-sat)`;
144
+ case 'check-sat-assuming':
145
+ return `(check-sat-assuming (${cmd.assumptions.map(emitTerm).join(' ')}))`;
146
+ case 'get-assertions':
147
+ return `(get-assertions)`;
148
+ case 'get-model':
149
+ return `(get-model)`;
150
+ case 'get-proof':
151
+ return `(get-proof)`;
152
+ case 'get-unsat-core':
153
+ return `(get-unsat-core)`;
154
+ case 'get-value':
155
+ return `(get-value (${cmd.terms.map(emitTerm).join(' ')}))`;
156
+ case 'push':
157
+ return `(push ${cmd.levels})`;
158
+ case 'pop':
159
+ return `(pop ${cmd.levels})`;
160
+ case 'reset':
161
+ return `(reset)`;
162
+ case 'reset-assertions':
163
+ return `(reset-assertions)`;
164
+ case 'exit':
165
+ return `(exit)`;
166
+ case 'echo':
167
+ return `(echo ${quoteString(cmd.message)})`;
168
+ }
169
+ }
170
+ /** Emite un script entero (1 comando por línea). */
171
+ function emitSmtLib(commands) {
172
+ return commands.map(emitCommand).join('\n');
173
+ }
174
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/smt-lib/emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type { SmtCommand, SmtSort, SmtSpecConstantType, SmtTerm } from './ast';
2
+ export { COMMAND_NAMES, KNOWN_LOGICS } from './ast';
3
+ export { SmtTokenizerError, tokenize, type SmtToken, type SmtTokenKind } from './tokenizer';
4
+ export { SmtParserError, parseSmtLib, parseSort, parseTerm } from './parser';
5
+ export { emitCommand, emitSmtLib, emitSort, emitTerm, quoteSymbol } from './emitter';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/smt-lib/index.ts"],"names":[],"mappings":"AAWA,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE/E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SMT-LIB v2 — Barrel
4
+ // ============================================================
5
+ //
6
+ // Parser + emitter de scripts SMT-LIB v2 con soporte para los comandos
7
+ // estándar (set-logic, declare-fun, assert, check-sat, push/pop, etc.) y
8
+ // los constructores de término privilegiados (let, forall, exists, match,
9
+ // annotated). Complementa al serializador específico de ST en
10
+ // `src/runtime/smt/serializer.ts` permitiendo leer archivos `.smt2` y
11
+ // reemitirlos canónicamente.
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.quoteSymbol = exports.emitTerm = exports.emitSort = exports.emitSmtLib = exports.emitCommand = exports.parseTerm = exports.parseSort = exports.parseSmtLib = exports.SmtParserError = exports.tokenize = exports.SmtTokenizerError = exports.KNOWN_LOGICS = exports.COMMAND_NAMES = void 0;
14
+ var ast_1 = require("./ast");
15
+ Object.defineProperty(exports, "COMMAND_NAMES", { enumerable: true, get: function () { return ast_1.COMMAND_NAMES; } });
16
+ Object.defineProperty(exports, "KNOWN_LOGICS", { enumerable: true, get: function () { return ast_1.KNOWN_LOGICS; } });
17
+ var tokenizer_1 = require("./tokenizer");
18
+ Object.defineProperty(exports, "SmtTokenizerError", { enumerable: true, get: function () { return tokenizer_1.SmtTokenizerError; } });
19
+ Object.defineProperty(exports, "tokenize", { enumerable: true, get: function () { return tokenizer_1.tokenize; } });
20
+ var parser_1 = require("./parser");
21
+ Object.defineProperty(exports, "SmtParserError", { enumerable: true, get: function () { return parser_1.SmtParserError; } });
22
+ Object.defineProperty(exports, "parseSmtLib", { enumerable: true, get: function () { return parser_1.parseSmtLib; } });
23
+ Object.defineProperty(exports, "parseSort", { enumerable: true, get: function () { return parser_1.parseSort; } });
24
+ Object.defineProperty(exports, "parseTerm", { enumerable: true, get: function () { return parser_1.parseTerm; } });
25
+ var emitter_1 = require("./emitter");
26
+ Object.defineProperty(exports, "emitCommand", { enumerable: true, get: function () { return emitter_1.emitCommand; } });
27
+ Object.defineProperty(exports, "emitSmtLib", { enumerable: true, get: function () { return emitter_1.emitSmtLib; } });
28
+ Object.defineProperty(exports, "emitSort", { enumerable: true, get: function () { return emitter_1.emitSort; } });
29
+ Object.defineProperty(exports, "emitTerm", { enumerable: true, get: function () { return emitter_1.emitTerm; } });
30
+ Object.defineProperty(exports, "quoteSymbol", { enumerable: true, get: function () { return emitter_1.quoteSymbol; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/smt-lib/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,sBAAsB;AACtB,+DAA+D;AAC/D,EAAE;AACF,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,8DAA8D;AAC9D,sEAAsE;AACtE,6BAA6B;;;AAI7B,6BAAoD;AAA3C,oGAAA,aAAa,OAAA;AAAE,mGAAA,YAAY,OAAA;AAEpC,yCAA4F;AAAnF,8GAAA,iBAAiB,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAEpC,mCAA6E;AAApE,wGAAA,cAAc,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAE1D,qCAAqF;AAA5E,sGAAA,WAAW,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,sGAAA,WAAW,OAAA"}
@@ -0,0 +1,13 @@
1
+ import type { SmtCommand, SmtSort, SmtTerm } from './ast';
2
+ export declare class SmtParserError extends Error {
3
+ readonly line: number;
4
+ readonly col: number;
5
+ constructor(message: string, line: number, col: number);
6
+ }
7
+ /** Parse de un script SMT-LIB completo. */
8
+ export declare function parseSmtLib(input: string): SmtCommand[];
9
+ /** Parse de un único término. Útil para tests y bridges. */
10
+ export declare function parseTerm(input: string): SmtTerm;
11
+ /** Parse de un único sort. */
12
+ export declare function parseSort(input: string): SmtSort;
13
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/smt-lib/parser.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAuB,OAAO,EAAE,MAAM,OAAO,CAAC;AAG/E,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAAE,MAAM;aACZ,GAAG,EAAE,MAAM;gBAF3B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;CAK9B;AA4iBD,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAQvD;AAED,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAShD;AAED,8BAA8B;AAC9B,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAShD"}