@stevenvo780/st-lang 4.3.0 → 4.4.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 (307) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +36 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/lambda-calc/church.d.ts.map +1 -1
  6. package/dist/lambda-calc/church.js.map +1 -1
  7. package/dist/lambda-calc/combinators.d.ts.map +1 -1
  8. package/dist/lambda-calc/combinators.js.map +1 -1
  9. package/dist/lambda-calc/index.d.ts +1 -1
  10. package/dist/lambda-calc/index.d.ts.map +1 -1
  11. package/dist/lambda-calc/index.js.map +1 -1
  12. package/dist/mltt/equality.d.ts +9 -0
  13. package/dist/mltt/equality.d.ts.map +1 -0
  14. package/dist/mltt/equality.js +79 -0
  15. package/dist/mltt/equality.js.map +1 -0
  16. package/dist/mltt/index.d.ts +8 -0
  17. package/dist/mltt/index.d.ts.map +1 -0
  18. package/dist/mltt/index.js +49 -0
  19. package/dist/mltt/index.js.map +1 -0
  20. package/dist/mltt/infer.d.ts +17 -0
  21. package/dist/mltt/infer.d.ts.map +1 -0
  22. package/dist/mltt/infer.js +269 -0
  23. package/dist/mltt/infer.js.map +1 -0
  24. package/dist/mltt/normalize.d.ts +7 -0
  25. package/dist/mltt/normalize.d.ts.map +1 -0
  26. package/dist/mltt/normalize.js +131 -0
  27. package/dist/mltt/normalize.js.map +1 -0
  28. package/dist/mltt/substitute.d.ts +4 -0
  29. package/dist/mltt/substitute.d.ts.map +1 -0
  30. package/dist/mltt/substitute.js +94 -0
  31. package/dist/mltt/substitute.js.map +1 -0
  32. package/dist/mltt/types.d.ts +72 -0
  33. package/dist/mltt/types.d.ts.map +1 -0
  34. package/dist/mltt/types.js +211 -0
  35. package/dist/mltt/types.js.map +1 -0
  36. package/dist/profiles/many-valued/index.d.ts.map +1 -1
  37. package/dist/profiles/many-valued/index.js.map +1 -1
  38. package/dist/profiles/mu-calculus/check.d.ts +15 -0
  39. package/dist/profiles/mu-calculus/check.d.ts.map +1 -0
  40. package/dist/profiles/mu-calculus/check.js +172 -0
  41. package/dist/profiles/mu-calculus/check.js.map +1 -0
  42. package/dist/profiles/mu-calculus/ctl-translate.d.ts +61 -0
  43. package/dist/profiles/mu-calculus/ctl-translate.d.ts.map +1 -0
  44. package/dist/profiles/mu-calculus/ctl-translate.js +181 -0
  45. package/dist/profiles/mu-calculus/ctl-translate.js.map +1 -0
  46. package/dist/profiles/mu-calculus/index.d.ts +7 -0
  47. package/dist/profiles/mu-calculus/index.d.ts.map +1 -0
  48. package/dist/profiles/mu-calculus/index.js +33 -0
  49. package/dist/profiles/mu-calculus/index.js.map +1 -0
  50. package/dist/profiles/mu-calculus/types.d.ts +51 -0
  51. package/dist/profiles/mu-calculus/types.d.ts.map +1 -0
  52. package/dist/profiles/mu-calculus/types.js +42 -0
  53. package/dist/profiles/mu-calculus/types.js.map +1 -0
  54. package/dist/profiles/mu-calculus/wellformed.d.ts +40 -0
  55. package/dist/profiles/mu-calculus/wellformed.d.ts.map +1 -0
  56. package/dist/profiles/mu-calculus/wellformed.js +160 -0
  57. package/dist/profiles/mu-calculus/wellformed.js.map +1 -0
  58. package/dist/profiles/sequent-lk/cut-elimination.d.ts +11 -0
  59. package/dist/profiles/sequent-lk/cut-elimination.d.ts.map +1 -0
  60. package/dist/profiles/sequent-lk/cut-elimination.js +216 -0
  61. package/dist/profiles/sequent-lk/cut-elimination.js.map +1 -0
  62. package/dist/profiles/sequent-lk/index.d.ts +5 -0
  63. package/dist/profiles/sequent-lk/index.d.ts.map +1 -0
  64. package/dist/profiles/sequent-lk/index.js +24 -0
  65. package/dist/profiles/sequent-lk/index.js.map +1 -0
  66. package/dist/profiles/sequent-lk/prover.d.ts +25 -0
  67. package/dist/profiles/sequent-lk/prover.d.ts.map +1 -0
  68. package/dist/profiles/sequent-lk/prover.js +532 -0
  69. package/dist/profiles/sequent-lk/prover.js.map +1 -0
  70. package/dist/profiles/sequent-lk/types.d.ts +55 -0
  71. package/dist/profiles/sequent-lk/types.d.ts.map +1 -0
  72. package/dist/profiles/sequent-lk/types.js +18 -0
  73. package/dist/profiles/sequent-lk/types.js.map +1 -0
  74. package/dist/profiles/sequent-lk/util.d.ts +18 -0
  75. package/dist/profiles/sequent-lk/util.d.ts.map +1 -0
  76. package/dist/profiles/sequent-lk/util.js +71 -0
  77. package/dist/profiles/sequent-lk/util.js.map +1 -0
  78. package/dist/refinement-types/checker.d.ts +19 -0
  79. package/dist/refinement-types/checker.d.ts.map +1 -0
  80. package/dist/refinement-types/checker.js +248 -0
  81. package/dist/refinement-types/checker.js.map +1 -0
  82. package/dist/refinement-types/index.d.ts +11 -0
  83. package/dist/refinement-types/index.d.ts.map +1 -0
  84. package/dist/refinement-types/index.js +51 -0
  85. package/dist/refinement-types/index.js.map +1 -0
  86. package/dist/refinement-types/predicate.d.ts +31 -0
  87. package/dist/refinement-types/predicate.d.ts.map +1 -0
  88. package/dist/refinement-types/predicate.js +369 -0
  89. package/dist/refinement-types/predicate.js.map +1 -0
  90. package/dist/refinement-types/solver.d.ts +24 -0
  91. package/dist/refinement-types/solver.d.ts.map +1 -0
  92. package/dist/refinement-types/solver.js +207 -0
  93. package/dist/refinement-types/solver.js.map +1 -0
  94. package/dist/refinement-types/subtype.d.ts +14 -0
  95. package/dist/refinement-types/subtype.d.ts.map +1 -0
  96. package/dist/refinement-types/subtype.js +39 -0
  97. package/dist/refinement-types/subtype.js.map +1 -0
  98. package/dist/refinement-types/types.d.ts +64 -0
  99. package/dist/refinement-types/types.d.ts.map +1 -0
  100. package/dist/refinement-types/types.js +130 -0
  101. package/dist/refinement-types/types.js.map +1 -0
  102. package/dist/runtime/anti-unification/anti-unify.d.ts +22 -0
  103. package/dist/runtime/anti-unification/anti-unify.d.ts.map +1 -0
  104. package/dist/runtime/anti-unification/anti-unify.js +154 -0
  105. package/dist/runtime/anti-unification/anti-unify.js.map +1 -0
  106. package/dist/runtime/anti-unification/index.d.ts +6 -0
  107. package/dist/runtime/anti-unification/index.d.ts.map +1 -0
  108. package/dist/runtime/anti-unification/index.js +23 -0
  109. package/dist/runtime/anti-unification/index.js.map +1 -0
  110. package/dist/runtime/anti-unification/many.d.ts +49 -0
  111. package/dist/runtime/anti-unification/many.d.ts.map +1 -0
  112. package/dist/runtime/anti-unification/many.js +185 -0
  113. package/dist/runtime/anti-unification/many.js.map +1 -0
  114. package/dist/runtime/anti-unification/term-utils.d.ts +40 -0
  115. package/dist/runtime/anti-unification/term-utils.d.ts.map +1 -0
  116. package/dist/runtime/anti-unification/term-utils.js +173 -0
  117. package/dist/runtime/anti-unification/term-utils.js.map +1 -0
  118. package/dist/runtime/anti-unification/types.d.ts +41 -0
  119. package/dist/runtime/anti-unification/types.d.ts.map +1 -0
  120. package/dist/runtime/anti-unification/types.js +26 -0
  121. package/dist/runtime/anti-unification/types.js.map +1 -0
  122. package/dist/runtime/csp/ac3.d.ts +20 -0
  123. package/dist/runtime/csp/ac3.d.ts.map +1 -0
  124. package/dist/runtime/csp/ac3.js +165 -0
  125. package/dist/runtime/csp/ac3.js.map +1 -0
  126. package/dist/runtime/csp/backtrack.d.ts +15 -0
  127. package/dist/runtime/csp/backtrack.d.ts.map +1 -0
  128. package/dist/runtime/csp/backtrack.js +233 -0
  129. package/dist/runtime/csp/backtrack.js.map +1 -0
  130. package/dist/runtime/csp/builtins.d.ts +27 -0
  131. package/dist/runtime/csp/builtins.d.ts.map +1 -0
  132. package/dist/runtime/csp/builtins.js +109 -0
  133. package/dist/runtime/csp/builtins.js.map +1 -0
  134. package/dist/runtime/csp/index.d.ts +5 -0
  135. package/dist/runtime/csp/index.d.ts.map +1 -0
  136. package/dist/runtime/csp/index.js +23 -0
  137. package/dist/runtime/csp/index.js.map +1 -0
  138. package/dist/runtime/csp/types.d.ts +54 -0
  139. package/dist/runtime/csp/types.d.ts.map +1 -0
  140. package/dist/runtime/csp/types.js +14 -0
  141. package/dist/runtime/csp/types.js.map +1 -0
  142. package/dist/runtime/markov-logic/grounding.d.ts +19 -0
  143. package/dist/runtime/markov-logic/grounding.d.ts.map +1 -0
  144. package/dist/runtime/markov-logic/grounding.js +252 -0
  145. package/dist/runtime/markov-logic/grounding.js.map +1 -0
  146. package/dist/runtime/markov-logic/index.d.ts +6 -0
  147. package/dist/runtime/markov-logic/index.d.ts.map +1 -0
  148. package/dist/runtime/markov-logic/index.js +47 -0
  149. package/dist/runtime/markov-logic/index.js.map +1 -0
  150. package/dist/runtime/markov-logic/inference.d.ts +77 -0
  151. package/dist/runtime/markov-logic/inference.d.ts.map +1 -0
  152. package/dist/runtime/markov-logic/inference.js +382 -0
  153. package/dist/runtime/markov-logic/inference.js.map +1 -0
  154. package/dist/runtime/markov-logic/parser.d.ts +25 -0
  155. package/dist/runtime/markov-logic/parser.d.ts.map +1 -0
  156. package/dist/runtime/markov-logic/parser.js +264 -0
  157. package/dist/runtime/markov-logic/parser.js.map +1 -0
  158. package/dist/runtime/markov-logic/types.d.ts +64 -0
  159. package/dist/runtime/markov-logic/types.d.ts.map +1 -0
  160. package/dist/runtime/markov-logic/types.js +17 -0
  161. package/dist/runtime/markov-logic/types.js.map +1 -0
  162. package/dist/runtime/pi-calculus/congruence.d.ts +15 -0
  163. package/dist/runtime/pi-calculus/congruence.d.ts.map +1 -0
  164. package/dist/runtime/pi-calculus/congruence.js +271 -0
  165. package/dist/runtime/pi-calculus/congruence.js.map +1 -0
  166. package/dist/runtime/pi-calculus/index.d.ts +6 -0
  167. package/dist/runtime/pi-calculus/index.d.ts.map +1 -0
  168. package/dist/runtime/pi-calculus/index.js +30 -0
  169. package/dist/runtime/pi-calculus/index.js.map +1 -0
  170. package/dist/runtime/pi-calculus/names.d.ts +28 -0
  171. package/dist/runtime/pi-calculus/names.d.ts.map +1 -0
  172. package/dist/runtime/pi-calculus/names.js +182 -0
  173. package/dist/runtime/pi-calculus/names.js.map +1 -0
  174. package/dist/runtime/pi-calculus/reduction.d.ts +25 -0
  175. package/dist/runtime/pi-calculus/reduction.d.ts.map +1 -0
  176. package/dist/runtime/pi-calculus/reduction.js +338 -0
  177. package/dist/runtime/pi-calculus/reduction.js.map +1 -0
  178. package/dist/runtime/pi-calculus/substitution.d.ts +11 -0
  179. package/dist/runtime/pi-calculus/substitution.d.ts.map +1 -0
  180. package/dist/runtime/pi-calculus/substitution.js +109 -0
  181. package/dist/runtime/pi-calculus/substitution.js.map +1 -0
  182. package/dist/runtime/pi-calculus/types.d.ts +38 -0
  183. package/dist/runtime/pi-calculus/types.d.ts.map +1 -0
  184. package/dist/runtime/pi-calculus/types.js +22 -0
  185. package/dist/runtime/pi-calculus/types.js.map +1 -0
  186. package/dist/runtime/planning/astar.d.ts +10 -0
  187. package/dist/runtime/planning/astar.d.ts.map +1 -0
  188. package/dist/runtime/planning/astar.js +155 -0
  189. package/dist/runtime/planning/astar.js.map +1 -0
  190. package/dist/runtime/planning/bfs.d.ts +17 -0
  191. package/dist/runtime/planning/bfs.d.ts.map +1 -0
  192. package/dist/runtime/planning/bfs.js +87 -0
  193. package/dist/runtime/planning/bfs.js.map +1 -0
  194. package/dist/runtime/planning/ground.d.ts +55 -0
  195. package/dist/runtime/planning/ground.d.ts.map +1 -0
  196. package/dist/runtime/planning/ground.js +154 -0
  197. package/dist/runtime/planning/ground.js.map +1 -0
  198. package/dist/runtime/planning/heuristic.d.ts +29 -0
  199. package/dist/runtime/planning/heuristic.d.ts.map +1 -0
  200. package/dist/runtime/planning/heuristic.js +172 -0
  201. package/dist/runtime/planning/heuristic.js.map +1 -0
  202. package/dist/runtime/planning/index.d.ts +6 -0
  203. package/dist/runtime/planning/index.d.ts.map +1 -0
  204. package/dist/runtime/planning/index.js +38 -0
  205. package/dist/runtime/planning/index.js.map +1 -0
  206. package/dist/runtime/planning/types.d.ts +100 -0
  207. package/dist/runtime/planning/types.d.ts.map +1 -0
  208. package/dist/runtime/planning/types.js +22 -0
  209. package/dist/runtime/planning/types.js.map +1 -0
  210. package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -1
  211. package/dist/runtime/symbolic-diff/differentiate.js.map +1 -1
  212. package/dist/runtime/symbolic-diff/index.d.ts +1 -1
  213. package/dist/runtime/symbolic-diff/index.d.ts.map +1 -1
  214. package/dist/runtime/symbolic-diff/index.js.map +1 -1
  215. package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -1
  216. package/dist/runtime/symbolic-diff/parse.js +7 -1
  217. package/dist/runtime/symbolic-diff/parse.js.map +1 -1
  218. package/dist/runtime/theorem-cache/cache.d.ts +100 -0
  219. package/dist/runtime/theorem-cache/cache.d.ts.map +1 -0
  220. package/dist/runtime/theorem-cache/cache.js +213 -0
  221. package/dist/runtime/theorem-cache/cache.js.map +1 -0
  222. package/dist/runtime/theorem-cache/canonical.d.ts +59 -0
  223. package/dist/runtime/theorem-cache/canonical.d.ts.map +1 -0
  224. package/dist/runtime/theorem-cache/canonical.js +105 -0
  225. package/dist/runtime/theorem-cache/canonical.js.map +1 -0
  226. package/dist/runtime/theorem-cache/index.d.ts +6 -0
  227. package/dist/runtime/theorem-cache/index.d.ts.map +1 -0
  228. package/dist/runtime/theorem-cache/index.js +16 -0
  229. package/dist/runtime/theorem-cache/index.js.map +1 -0
  230. package/dist/runtime/theorem-cache/pattern.d.ts +24 -0
  231. package/dist/runtime/theorem-cache/pattern.d.ts.map +1 -0
  232. package/dist/runtime/theorem-cache/pattern.js +80 -0
  233. package/dist/runtime/theorem-cache/pattern.js.map +1 -0
  234. package/dist/system-f/index.d.ts +7 -0
  235. package/dist/system-f/index.d.ts.map +1 -0
  236. package/dist/system-f/index.js +48 -0
  237. package/dist/system-f/index.js.map +1 -0
  238. package/dist/system-f/infer.d.ts +9 -0
  239. package/dist/system-f/infer.d.ts.map +1 -0
  240. package/dist/system-f/infer.js +94 -0
  241. package/dist/system-f/infer.js.map +1 -0
  242. package/dist/system-f/reduce.d.ts +15 -0
  243. package/dist/system-f/reduce.d.ts.map +1 -0
  244. package/dist/system-f/reduce.js +259 -0
  245. package/dist/system-f/reduce.js.map +1 -0
  246. package/dist/system-f/types.d.ts +53 -0
  247. package/dist/system-f/types.d.ts.map +1 -0
  248. package/dist/system-f/types.js +157 -0
  249. package/dist/system-f/types.js.map +1 -0
  250. package/dist/tests/anti-unification/anti-unify.test.d.ts +2 -0
  251. package/dist/tests/anti-unification/anti-unify.test.d.ts.map +1 -0
  252. package/dist/tests/anti-unification/anti-unify.test.js +219 -0
  253. package/dist/tests/anti-unification/anti-unify.test.js.map +1 -0
  254. package/dist/tests/coverage-fill-aristotelian.test.js +1 -1
  255. package/dist/tests/coverage-fill-aristotelian.test.js.map +1 -1
  256. package/dist/tests/coverage-fill-fallacies.test.js +1 -1
  257. package/dist/tests/coverage-fill-fallacies.test.js.map +1 -1
  258. package/dist/tests/coverage-fill-format.test.js +1 -1
  259. package/dist/tests/coverage-fill-format.test.js.map +1 -1
  260. package/dist/tests/coverage-fill-intuitionistic.test.js +1 -1
  261. package/dist/tests/coverage-fill-intuitionistic.test.js.map +1 -1
  262. package/dist/tests/coverage-fill-probabilistic.test.js +1 -1
  263. package/dist/tests/coverage-fill-probabilistic.test.js.map +1 -1
  264. package/dist/tests/csp/csp.test.d.ts +2 -0
  265. package/dist/tests/csp/csp.test.d.ts.map +1 -0
  266. package/dist/tests/csp/csp.test.js +292 -0
  267. package/dist/tests/csp/csp.test.js.map +1 -0
  268. package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -1
  269. package/dist/tests/many-valued/many-valued.test.js.map +1 -1
  270. package/dist/tests/markov-logic/markov-logic.test.d.ts +2 -0
  271. package/dist/tests/markov-logic/markov-logic.test.d.ts.map +1 -0
  272. package/dist/tests/markov-logic/markov-logic.test.js +349 -0
  273. package/dist/tests/markov-logic/markov-logic.test.js.map +1 -0
  274. package/dist/tests/mltt/mltt.test.d.ts +2 -0
  275. package/dist/tests/mltt/mltt.test.d.ts.map +1 -0
  276. package/dist/tests/mltt/mltt.test.js +181 -0
  277. package/dist/tests/mltt/mltt.test.js.map +1 -0
  278. package/dist/tests/mu-calculus/check.test.d.ts +2 -0
  279. package/dist/tests/mu-calculus/check.test.d.ts.map +1 -0
  280. package/dist/tests/mu-calculus/check.test.js +234 -0
  281. package/dist/tests/mu-calculus/check.test.js.map +1 -0
  282. package/dist/tests/pi-calculus/pi-calculus.test.d.ts +2 -0
  283. package/dist/tests/pi-calculus/pi-calculus.test.d.ts.map +1 -0
  284. package/dist/tests/pi-calculus/pi-calculus.test.js +273 -0
  285. package/dist/tests/pi-calculus/pi-calculus.test.js.map +1 -0
  286. package/dist/tests/planning/planning.test.d.ts +2 -0
  287. package/dist/tests/planning/planning.test.d.ts.map +1 -0
  288. package/dist/tests/planning/planning.test.js +397 -0
  289. package/dist/tests/planning/planning.test.js.map +1 -0
  290. package/dist/tests/refinement-types/refinement-types.test.d.ts +2 -0
  291. package/dist/tests/refinement-types/refinement-types.test.d.ts.map +1 -0
  292. package/dist/tests/refinement-types/refinement-types.test.js +174 -0
  293. package/dist/tests/refinement-types/refinement-types.test.js.map +1 -0
  294. package/dist/tests/sequent-lk/prover.test.d.ts +2 -0
  295. package/dist/tests/sequent-lk/prover.test.d.ts.map +1 -0
  296. package/dist/tests/sequent-lk/prover.test.js +317 -0
  297. package/dist/tests/sequent-lk/prover.test.js.map +1 -0
  298. package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -1
  299. package/dist/tests/system-f/system-f.test.d.ts +2 -0
  300. package/dist/tests/system-f/system-f.test.d.ts.map +1 -0
  301. package/dist/tests/system-f/system-f.test.js +217 -0
  302. package/dist/tests/system-f/system-f.test.js.map +1 -0
  303. package/dist/tests/theorem-cache/cache.test.d.ts +2 -0
  304. package/dist/tests/theorem-cache/cache.test.d.ts.map +1 -0
  305. package/dist/tests/theorem-cache/cache.test.js +510 -0
  306. package/dist/tests/theorem-cache/cache.test.js.map +1 -0
  307. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/runtime/symbolic-diff/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/runtime/symbolic-diff/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ export interface CachedTheorem {
2
+ /** Hash determinista derivado de (normalizedFormula, profile). */
3
+ id: string;
4
+ formula: string;
5
+ /** Forma canónica con identificadores normalizados a `?0`, `?1`, … */
6
+ normalizedFormula: string;
7
+ profile: string;
8
+ /** Prueba opaca (ProofTree / NJProof / sequent / …). */
9
+ proof: unknown;
10
+ /** Nombre de la función de verificación, para re-verify. */
11
+ verifier?: string;
12
+ metadata: {
13
+ provedAt: string;
14
+ ms: number;
15
+ provedBy?: string;
16
+ };
17
+ }
18
+ export interface CacheOptions {
19
+ /** Cap de entradas; LRU. Default 10000. */
20
+ maxEntries?: number;
21
+ /**
22
+ * Ruta del archivo de persistencia (JSON). Default
23
+ * `~/.st-theorem-cache/theorems.json`.
24
+ */
25
+ persistPath?: string;
26
+ /** Hash function (default sha1 hex). */
27
+ hashFn?: (formula: string) => string;
28
+ }
29
+ export interface CacheStats {
30
+ entries: number;
31
+ hits: number;
32
+ misses: number;
33
+ storedBytes: number;
34
+ }
35
+ export interface ReuseResult {
36
+ reusable: boolean;
37
+ substitution?: Record<string, string>;
38
+ reusedProof?: unknown;
39
+ }
40
+ export declare class TheoremCache {
41
+ private readonly maxEntries;
42
+ private readonly persistPath;
43
+ private readonly hashFn;
44
+ private entries;
45
+ private hits;
46
+ private misses;
47
+ constructor(opts?: CacheOptions);
48
+ /**
49
+ * Canonicaliza una fórmula a forma estable (placeholders).
50
+ */
51
+ canonicalize(formula: string): string;
52
+ /**
53
+ * Almacena un teorema; retorna el id asignado. Si ya existe una
54
+ * entrada con el mismo (formula canónica, profile), la reemplaza
55
+ * y la promueve a MRU.
56
+ */
57
+ store(theorem: Omit<CachedTheorem, 'id'>): string;
58
+ /**
59
+ * Devuelve el teorema cacheado para una fórmula+profile dados, o
60
+ * `undefined` si no existe. Incrementa hits/misses.
61
+ */
62
+ retrieve(formula: string, profile: string): CachedTheorem | undefined;
63
+ /**
64
+ * Retorna todos los teoremas que matchean el patrón dado.
65
+ *
66
+ * El patrón usa metavariables `?x`. Ej: `?x -> ?x` matchea cualquier
67
+ * teorema cacheado cuya fórmula sea `<id> -> <id>` (mismo lado).
68
+ *
69
+ * El matching opera sobre la fórmula original (no la canónica), de
70
+ * modo que el caller puede inspeccionar los nombres reales.
71
+ */
72
+ retrieveByPattern(pattern: string): CachedTheorem[];
73
+ /**
74
+ * Comprueba si existe una entrada para (formula, profile). NO afecta
75
+ * los contadores hits/misses.
76
+ */
77
+ exists(formula: string, profile: string): boolean;
78
+ remove(id: string): boolean;
79
+ clear(): void;
80
+ saveToDisk(): Promise<void>;
81
+ /**
82
+ * Carga teoremas desde disco. Devuelve cuántas entradas cargó.
83
+ * No-op silencioso si el archivo no existe.
84
+ */
85
+ loadFromDisk(): Promise<number>;
86
+ stats(): CacheStats;
87
+ private evictLru;
88
+ }
89
+ /**
90
+ * Intenta reusar la prueba de un teorema cacheado para un target
91
+ * dado. Si las fórmulas son canónicamente equivalentes (misma
92
+ * estructura, identificadores en el mismo orden), calcula la
93
+ * substitución y reemplaza los nombres en la prueba (cuando la
94
+ * prueba es un string o un objeto JSON que la admita textualmente).
95
+ *
96
+ * Para pruebas opacas no-string, devuelve la prueba original sin
97
+ * tocar — el caller es responsable de re-instanciar.
98
+ */
99
+ export declare function tryReuseProof(theorem: CachedTheorem, targetFormula: string): ReuseResult;
100
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/runtime/theorem-cache/cache.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAcD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;gBAEP,IAAI,CAAC,EAAE,YAAY;IAM/B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIrC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,MAAM;IAmBjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAerE;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAUnD;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAMjD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,KAAK,IAAI,IAAI;IAMP,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAuCrC,KAAK,IAAI,UAAU;IAanB,OAAO,CAAC,QAAQ;CAIjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,CAqBxF"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TheoremCache = void 0;
7
+ exports.tryReuseProof = tryReuseProof;
8
+ const fs_1 = require("fs");
9
+ const path_1 = __importDefault(require("path"));
10
+ const os_1 = __importDefault(require("os"));
11
+ const crypto_1 = require("crypto");
12
+ const canonical_1 = require("./canonical");
13
+ const pattern_1 = require("./pattern");
14
+ function defaultPersistPath() {
15
+ return path_1.default.join(os_1.default.homedir(), '.st-theorem-cache', 'theorems.json');
16
+ }
17
+ function defaultHash(input) {
18
+ return (0, crypto_1.createHash)('sha1').update(input).digest('hex');
19
+ }
20
+ class TheoremCache {
21
+ maxEntries;
22
+ persistPath;
23
+ hashFn;
24
+ entries = new Map();
25
+ hits = 0;
26
+ misses = 0;
27
+ constructor(opts) {
28
+ this.maxEntries = opts?.maxEntries ?? 10000;
29
+ this.persistPath = opts?.persistPath ?? defaultPersistPath();
30
+ this.hashFn = opts?.hashFn ?? defaultHash;
31
+ }
32
+ /**
33
+ * Canonicaliza una fórmula a forma estable (placeholders).
34
+ */
35
+ canonicalize(formula) {
36
+ return (0, canonical_1.canonicalize)(formula).canonical;
37
+ }
38
+ /**
39
+ * Almacena un teorema; retorna el id asignado. Si ya existe una
40
+ * entrada con el mismo (formula canónica, profile), la reemplaza
41
+ * y la promueve a MRU.
42
+ */
43
+ store(theorem) {
44
+ const normalized = theorem.normalizedFormula && theorem.normalizedFormula.length > 0
45
+ ? theorem.normalizedFormula
46
+ : this.canonicalize(theorem.formula);
47
+ const id = this.hashFn(`${theorem.profile}::${normalized}`);
48
+ const full = { ...theorem, normalizedFormula: normalized, id };
49
+ if (this.entries.has(id)) {
50
+ this.entries.delete(id);
51
+ }
52
+ else if (this.entries.size >= this.maxEntries) {
53
+ this.evictLru();
54
+ }
55
+ this.entries.set(id, { theorem: full });
56
+ return id;
57
+ }
58
+ /**
59
+ * Devuelve el teorema cacheado para una fórmula+profile dados, o
60
+ * `undefined` si no existe. Incrementa hits/misses.
61
+ */
62
+ retrieve(formula, profile) {
63
+ const normalized = this.canonicalize(formula);
64
+ const id = this.hashFn(`${profile}::${normalized}`);
65
+ const entry = this.entries.get(id);
66
+ if (entry === undefined) {
67
+ this.misses++;
68
+ return undefined;
69
+ }
70
+ this.hits++;
71
+ // LRU promote.
72
+ this.entries.delete(id);
73
+ this.entries.set(id, entry);
74
+ return entry.theorem;
75
+ }
76
+ /**
77
+ * Retorna todos los teoremas que matchean el patrón dado.
78
+ *
79
+ * El patrón usa metavariables `?x`. Ej: `?x -> ?x` matchea cualquier
80
+ * teorema cacheado cuya fórmula sea `<id> -> <id>` (mismo lado).
81
+ *
82
+ * El matching opera sobre la fórmula original (no la canónica), de
83
+ * modo que el caller puede inspeccionar los nombres reales.
84
+ */
85
+ retrieveByPattern(pattern) {
86
+ const out = [];
87
+ for (const { theorem } of this.entries.values()) {
88
+ if ((0, pattern_1.matchPattern)(pattern, theorem.formula) !== undefined) {
89
+ out.push(theorem);
90
+ }
91
+ }
92
+ return out;
93
+ }
94
+ /**
95
+ * Comprueba si existe una entrada para (formula, profile). NO afecta
96
+ * los contadores hits/misses.
97
+ */
98
+ exists(formula, profile) {
99
+ const normalized = this.canonicalize(formula);
100
+ const id = this.hashFn(`${profile}::${normalized}`);
101
+ return this.entries.has(id);
102
+ }
103
+ remove(id) {
104
+ return this.entries.delete(id);
105
+ }
106
+ clear() {
107
+ this.entries.clear();
108
+ this.hits = 0;
109
+ this.misses = 0;
110
+ }
111
+ async saveToDisk() {
112
+ const dir = path_1.default.dirname(this.persistPath);
113
+ await fs_1.promises.mkdir(dir, { recursive: true });
114
+ const payload = [];
115
+ for (const { theorem } of this.entries.values())
116
+ payload.push(theorem);
117
+ await fs_1.promises.writeFile(this.persistPath, JSON.stringify(payload), 'utf-8');
118
+ }
119
+ /**
120
+ * Carga teoremas desde disco. Devuelve cuántas entradas cargó.
121
+ * No-op silencioso si el archivo no existe.
122
+ */
123
+ async loadFromDisk() {
124
+ let raw;
125
+ try {
126
+ raw = await fs_1.promises.readFile(this.persistPath, 'utf-8');
127
+ }
128
+ catch {
129
+ return 0;
130
+ }
131
+ let parsed;
132
+ try {
133
+ parsed = JSON.parse(raw);
134
+ }
135
+ catch {
136
+ return 0;
137
+ }
138
+ if (!Array.isArray(parsed))
139
+ return 0;
140
+ let loaded = 0;
141
+ for (const item of parsed) {
142
+ if (!item || typeof item !== 'object')
143
+ continue;
144
+ const t = item;
145
+ if (typeof t.id !== 'string' ||
146
+ typeof t.formula !== 'string' ||
147
+ typeof t.normalizedFormula !== 'string' ||
148
+ typeof t.profile !== 'string' ||
149
+ !t.metadata ||
150
+ typeof t.metadata !== 'object') {
151
+ continue;
152
+ }
153
+ if (this.entries.has(t.id))
154
+ continue;
155
+ if (this.entries.size >= this.maxEntries)
156
+ break;
157
+ this.entries.set(t.id, { theorem: t });
158
+ loaded++;
159
+ }
160
+ return loaded;
161
+ }
162
+ stats() {
163
+ let bytes = 0;
164
+ for (const { theorem } of this.entries.values()) {
165
+ bytes += JSON.stringify(theorem).length;
166
+ }
167
+ return {
168
+ entries: this.entries.size,
169
+ hits: this.hits,
170
+ misses: this.misses,
171
+ storedBytes: bytes,
172
+ };
173
+ }
174
+ evictLru() {
175
+ const firstKey = this.entries.keys().next().value;
176
+ if (firstKey !== undefined)
177
+ this.entries.delete(firstKey);
178
+ }
179
+ }
180
+ exports.TheoremCache = TheoremCache;
181
+ /**
182
+ * Intenta reusar la prueba de un teorema cacheado para un target
183
+ * dado. Si las fórmulas son canónicamente equivalentes (misma
184
+ * estructura, identificadores en el mismo orden), calcula la
185
+ * substitución y reemplaza los nombres en la prueba (cuando la
186
+ * prueba es un string o un objeto JSON que la admita textualmente).
187
+ *
188
+ * Para pruebas opacas no-string, devuelve la prueba original sin
189
+ * tocar — el caller es responsable de re-instanciar.
190
+ */
191
+ function tryReuseProof(theorem, targetFormula) {
192
+ const substitution = (0, canonical_1.computeSubstitution)(theorem.formula, targetFormula);
193
+ if (substitution === undefined) {
194
+ return { reusable: false };
195
+ }
196
+ let reusedProof = theorem.proof;
197
+ if (typeof theorem.proof === 'string') {
198
+ reusedProof = (0, canonical_1.applySubstitution)(theorem.proof, substitution);
199
+ }
200
+ else if (theorem.proof && typeof theorem.proof === 'object') {
201
+ // Substitución textual sobre la serialización JSON.
202
+ try {
203
+ const serialized = JSON.stringify(theorem.proof);
204
+ const rewritten = (0, canonical_1.applySubstitution)(serialized, substitution);
205
+ reusedProof = JSON.parse(rewritten);
206
+ }
207
+ catch {
208
+ reusedProof = theorem.proof;
209
+ }
210
+ }
211
+ return { reusable: true, substitution, reusedProof };
212
+ }
213
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/runtime/theorem-cache/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Canonicalización de fórmulas (string-based) para el theorem cache.
3
+ *
4
+ * El objetivo no es parsear lógica completa, sino normalizar:
5
+ * - whitespace
6
+ * - mapear identificadores (átomos / metavariables) a placeholders
7
+ * canónicos en orden de primera aparición, preservando estructura.
8
+ *
9
+ * Resultado: `P -> P` y `Q -> Q` producen la misma forma canónica
10
+ * (`?0 -> ?0`), mientras que `P -> Q` produce `?0 -> ?1`. Esto soporta
11
+ * proof reuse via substitución.
12
+ *
13
+ * Símbolos lógicos reservados (palabras clave) NO se renombran:
14
+ * not, and, or, implies, iff, forall, exists, true, false, ->,
15
+ * →, ∧, ∨, ¬, ↔, ∀, ∃, ⊤, ⊥
16
+ */
17
+ /**
18
+ * Normaliza whitespace: colapsa runs de espacio/tabs/newlines a un solo
19
+ * espacio, y trimea. Mantiene la separación de tokens.
20
+ */
21
+ export declare function normalizeWhitespace(formula: string): string;
22
+ /**
23
+ * Devuelve la forma canónica de una fórmula como string.
24
+ *
25
+ * Cada identificador no reservado se reemplaza por `?N` donde N es el
26
+ * orden de primera aparición. La estructura (operadores, paréntesis,
27
+ * cuantificadores) se preserva intacta tras normalizar whitespace.
28
+ *
29
+ * También devuelve el mapping inverso (canonical → original) para
30
+ * poder reconstruir substituciones.
31
+ */
32
+ export interface CanonicalResult {
33
+ canonical: string;
34
+ /** Mapping de original → placeholder. Ej: `{P: "?0", Q: "?1"}` */
35
+ forward: Map<string, string>;
36
+ /** Mapping de placeholder → original. Ej: `{"?0": "P", "?1": "Q"}` */
37
+ reverse: Map<string, string>;
38
+ }
39
+ export declare function canonicalize(formula: string): CanonicalResult;
40
+ /**
41
+ * Versión simple que sólo devuelve el string canónico.
42
+ */
43
+ export declare function canonicalString(formula: string): string;
44
+ /**
45
+ * Intenta encontrar una substitución que mapee la fórmula cacheada
46
+ * al target. Si las formas canónicas coinciden, calcula el mapping
47
+ * desde los identificadores originales del teorema hacia los del
48
+ * target.
49
+ *
50
+ * Retorna `undefined` si no son canónicamente equivalentes.
51
+ */
52
+ export declare function computeSubstitution(cachedFormula: string, targetFormula: string): Record<string, string> | undefined;
53
+ /**
54
+ * Aplica una substitución textual (mapping original → reemplazo) a
55
+ * una fórmula, respetando límites de identificador. Útil para
56
+ * rehidratar pruebas reutilizadas.
57
+ */
58
+ export declare function applySubstitution(formula: string, substitution: Record<string, string>): string;
59
+ //# sourceMappingURL=canonical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../../src/runtime/theorem-cache/canonical.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoBH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,sEAAsE;IACtE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAkB7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAapC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAK/F"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * Canonicalización de fórmulas (string-based) para el theorem cache.
4
+ *
5
+ * El objetivo no es parsear lógica completa, sino normalizar:
6
+ * - whitespace
7
+ * - mapear identificadores (átomos / metavariables) a placeholders
8
+ * canónicos en orden de primera aparición, preservando estructura.
9
+ *
10
+ * Resultado: `P -> P` y `Q -> Q` producen la misma forma canónica
11
+ * (`?0 -> ?0`), mientras que `P -> Q` produce `?0 -> ?1`. Esto soporta
12
+ * proof reuse via substitución.
13
+ *
14
+ * Símbolos lógicos reservados (palabras clave) NO se renombran:
15
+ * not, and, or, implies, iff, forall, exists, true, false, ->,
16
+ * →, ∧, ∨, ¬, ↔, ∀, ∃, ⊤, ⊥
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.normalizeWhitespace = normalizeWhitespace;
20
+ exports.canonicalize = canonicalize;
21
+ exports.canonicalString = canonicalString;
22
+ exports.computeSubstitution = computeSubstitution;
23
+ exports.applySubstitution = applySubstitution;
24
+ const RESERVED = new Set([
25
+ 'not',
26
+ 'and',
27
+ 'or',
28
+ 'implies',
29
+ 'iff',
30
+ 'forall',
31
+ 'exists',
32
+ 'true',
33
+ 'false',
34
+ 'True',
35
+ 'False',
36
+ 'TRUE',
37
+ 'FALSE',
38
+ ]);
39
+ const IDENT_RE = /[A-Za-z_][A-Za-z0-9_]*/g;
40
+ /**
41
+ * Normaliza whitespace: colapsa runs de espacio/tabs/newlines a un solo
42
+ * espacio, y trimea. Mantiene la separación de tokens.
43
+ */
44
+ function normalizeWhitespace(formula) {
45
+ return formula.replace(/\s+/g, ' ').trim();
46
+ }
47
+ function canonicalize(formula) {
48
+ const normalized = normalizeWhitespace(formula);
49
+ const forward = new Map();
50
+ const reverse = new Map();
51
+ let counter = 0;
52
+ const canonical = normalized.replace(IDENT_RE, (match) => {
53
+ if (RESERVED.has(match))
54
+ return match;
55
+ let placeholder = forward.get(match);
56
+ if (placeholder === undefined) {
57
+ placeholder = `?${counter++}`;
58
+ forward.set(match, placeholder);
59
+ reverse.set(placeholder, match);
60
+ }
61
+ return placeholder;
62
+ });
63
+ return { canonical, forward, reverse };
64
+ }
65
+ /**
66
+ * Versión simple que sólo devuelve el string canónico.
67
+ */
68
+ function canonicalString(formula) {
69
+ return canonicalize(formula).canonical;
70
+ }
71
+ /**
72
+ * Intenta encontrar una substitución que mapee la fórmula cacheada
73
+ * al target. Si las formas canónicas coinciden, calcula el mapping
74
+ * desde los identificadores originales del teorema hacia los del
75
+ * target.
76
+ *
77
+ * Retorna `undefined` si no son canónicamente equivalentes.
78
+ */
79
+ function computeSubstitution(cachedFormula, targetFormula) {
80
+ const c1 = canonicalize(cachedFormula);
81
+ const c2 = canonicalize(targetFormula);
82
+ if (c1.canonical !== c2.canonical)
83
+ return undefined;
84
+ const substitution = {};
85
+ for (const [original, placeholder] of c1.forward) {
86
+ const targetOriginal = c2.reverse.get(placeholder);
87
+ if (targetOriginal === undefined)
88
+ return undefined;
89
+ substitution[original] = targetOriginal;
90
+ }
91
+ return substitution;
92
+ }
93
+ /**
94
+ * Aplica una substitución textual (mapping original → reemplazo) a
95
+ * una fórmula, respetando límites de identificador. Útil para
96
+ * rehidratar pruebas reutilizadas.
97
+ */
98
+ function applySubstitution(formula, substitution) {
99
+ return formula.replace(IDENT_RE, (match) => {
100
+ if (RESERVED.has(match))
101
+ return match;
102
+ return substitution[match] ?? match;
103
+ });
104
+ }
105
+ //# sourceMappingURL=canonical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../../src/runtime/theorem-cache/canonical.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAwBH,kDAEC;AAoBD,oCAkBC;AAKD,0CAEC;AAUD,kDAgBC;AAOD,8CAKC;AA3GD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS;IAC/B,KAAK;IACL,KAAK;IACL,IAAI;IACJ,SAAS;IACT,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAE3C;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAAe;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7C,CAAC;AAoBD,SAAgB,YAAY,CAAC,OAAe;IAC1C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QACvD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,OAAO,EAAE,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,aAAqB,EACrB,aAAqB;IAErB,MAAM,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAEvC,IAAI,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEpD,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACnD,YAAY,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;IAC1C,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,OAAe,EAAE,YAAoC;IACrF,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { TheoremCache, tryReuseProof } from './cache';
2
+ export type { CachedTheorem, CacheOptions, CacheStats, ReuseResult } from './cache';
3
+ export { canonicalize, canonicalString, computeSubstitution, applySubstitution, normalizeWhitespace, } from './canonical';
4
+ export type { CanonicalResult } from './canonical';
5
+ export { matchPattern, patternMatches } from './pattern';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/theorem-cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.patternMatches = exports.matchPattern = exports.normalizeWhitespace = exports.applySubstitution = exports.computeSubstitution = exports.canonicalString = exports.canonicalize = exports.tryReuseProof = exports.TheoremCache = void 0;
4
+ var cache_1 = require("./cache");
5
+ Object.defineProperty(exports, "TheoremCache", { enumerable: true, get: function () { return cache_1.TheoremCache; } });
6
+ Object.defineProperty(exports, "tryReuseProof", { enumerable: true, get: function () { return cache_1.tryReuseProof; } });
7
+ var canonical_1 = require("./canonical");
8
+ Object.defineProperty(exports, "canonicalize", { enumerable: true, get: function () { return canonical_1.canonicalize; } });
9
+ Object.defineProperty(exports, "canonicalString", { enumerable: true, get: function () { return canonical_1.canonicalString; } });
10
+ Object.defineProperty(exports, "computeSubstitution", { enumerable: true, get: function () { return canonical_1.computeSubstitution; } });
11
+ Object.defineProperty(exports, "applySubstitution", { enumerable: true, get: function () { return canonical_1.applySubstitution; } });
12
+ Object.defineProperty(exports, "normalizeWhitespace", { enumerable: true, get: function () { return canonical_1.normalizeWhitespace; } });
13
+ var pattern_1 = require("./pattern");
14
+ Object.defineProperty(exports, "matchPattern", { enumerable: true, get: function () { return pattern_1.matchPattern; } });
15
+ Object.defineProperty(exports, "patternMatches", { enumerable: true, get: function () { return pattern_1.patternMatches; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/theorem-cache/index.ts"],"names":[],"mappings":";;;AAAA,iCAAsD;AAA7C,qGAAA,YAAY,OAAA;AAAE,sGAAA,aAAa,OAAA;AAEpC,yCAMqB;AALnB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AACf,gHAAA,mBAAmB,OAAA;AACnB,8GAAA,iBAAiB,OAAA;AACjB,gHAAA,mBAAmB,OAAA;AAGrB,qCAAyD;AAAhD,uGAAA,YAAY,OAAA;AAAE,yGAAA,cAAc,OAAA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Matching de patrones contra fórmulas cacheadas.
3
+ *
4
+ * Un patrón usa `?x`, `?y`, … como metavariables. Para que un patrón
5
+ * matchee una fórmula, debe existir una asignación consistente
6
+ * (cada metavariable mapea a un único identificador en la fórmula).
7
+ *
8
+ * Ejemplos:
9
+ * patrón `?x -> ?x` matchea `P -> P` (con x=P)
10
+ * patrón `?x -> ?x` NO matchea `P -> Q`
11
+ * patrón `?x -> ?y` matchea `P -> Q` (con x=P, y=Q)
12
+ * patrón `?x -> ?y` matchea `P -> P` (con x=P, y=P)
13
+ */
14
+ /**
15
+ * Intenta matchear un patrón contra una fórmula. Retorna la
16
+ * asignación de metavariables si matchea, o `undefined` si no.
17
+ */
18
+ export declare function matchPattern(pattern: string, formula: string): Record<string, string> | undefined;
19
+ /**
20
+ * Comprueba si un patrón matchea (al menos una vez) sobre la fórmula
21
+ * completa, sin extraer las bindings.
22
+ */
23
+ export declare function patternMatches(pattern: string, formula: string): boolean;
24
+ //# sourceMappingURL=pattern.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/runtime/theorem-cache/pattern.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4BH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CA8BjG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAExE"}