@stevenvo780/st-lang 4.3.0 → 4.5.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 (459) hide show
  1. package/dist/coinduction/index.d.ts +136 -0
  2. package/dist/coinduction/index.d.ts.map +1 -0
  3. package/dist/coinduction/index.js +318 -0
  4. package/dist/coinduction/index.js.map +1 -0
  5. package/dist/combinators-ski/abstract.d.ts +5 -0
  6. package/dist/combinators-ski/abstract.d.ts.map +1 -0
  7. package/dist/combinators-ski/abstract.js +88 -0
  8. package/dist/combinators-ski/abstract.js.map +1 -0
  9. package/dist/combinators-ski/index.d.ts +6 -0
  10. package/dist/combinators-ski/index.d.ts.map +1 -0
  11. package/dist/combinators-ski/index.js +30 -0
  12. package/dist/combinators-ski/index.js.map +1 -0
  13. package/dist/combinators-ski/reduce.d.ts +10 -0
  14. package/dist/combinators-ski/reduce.d.ts.map +1 -0
  15. package/dist/combinators-ski/reduce.js +118 -0
  16. package/dist/combinators-ski/reduce.js.map +1 -0
  17. package/dist/combinators-ski/types.d.ts +23 -0
  18. package/dist/combinators-ski/types.d.ts.map +1 -0
  19. package/dist/combinators-ski/types.js +102 -0
  20. package/dist/combinators-ski/types.js.map +1 -0
  21. package/dist/constructive-reals/index.d.ts +132 -0
  22. package/dist/constructive-reals/index.d.ts.map +1 -0
  23. package/dist/constructive-reals/index.js +723 -0
  24. package/dist/constructive-reals/index.js.map +1 -0
  25. package/dist/game-semantics/convert.d.ts +4 -0
  26. package/dist/game-semantics/convert.d.ts.map +1 -0
  27. package/dist/game-semantics/convert.js +28 -0
  28. package/dist/game-semantics/convert.js.map +1 -0
  29. package/dist/game-semantics/index.d.ts +6 -0
  30. package/dist/game-semantics/index.d.ts.map +1 -0
  31. package/dist/game-semantics/index.js +28 -0
  32. package/dist/game-semantics/index.js.map +1 -0
  33. package/dist/game-semantics/strategy.d.ts +34 -0
  34. package/dist/game-semantics/strategy.d.ts.map +1 -0
  35. package/dist/game-semantics/strategy.js +336 -0
  36. package/dist/game-semantics/strategy.js.map +1 -0
  37. package/dist/game-semantics/types.d.ts +64 -0
  38. package/dist/game-semantics/types.d.ts.map +1 -0
  39. package/dist/game-semantics/types.js +78 -0
  40. package/dist/game-semantics/types.js.map +1 -0
  41. package/dist/higher-order-unify/index.d.ts +5 -0
  42. package/dist/higher-order-unify/index.d.ts.map +1 -0
  43. package/dist/higher-order-unify/index.js +27 -0
  44. package/dist/higher-order-unify/index.js.map +1 -0
  45. package/dist/higher-order-unify/normalize.d.ts +14 -0
  46. package/dist/higher-order-unify/normalize.d.ts.map +1 -0
  47. package/dist/higher-order-unify/normalize.js +191 -0
  48. package/dist/higher-order-unify/normalize.js.map +1 -0
  49. package/dist/higher-order-unify/pattern.d.ts +4 -0
  50. package/dist/higher-order-unify/pattern.d.ts.map +1 -0
  51. package/dist/higher-order-unify/pattern.js +70 -0
  52. package/dist/higher-order-unify/pattern.js.map +1 -0
  53. package/dist/higher-order-unify/types.d.ts +19 -0
  54. package/dist/higher-order-unify/types.d.ts.map +1 -0
  55. package/dist/higher-order-unify/types.js +14 -0
  56. package/dist/higher-order-unify/types.js.map +1 -0
  57. package/dist/higher-order-unify/unify.d.ts +5 -0
  58. package/dist/higher-order-unify/unify.d.ts.map +1 -0
  59. package/dist/higher-order-unify/unify.js +306 -0
  60. package/dist/higher-order-unify/unify.js.map +1 -0
  61. package/dist/index.d.ts +4 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +36 -2
  64. package/dist/index.js.map +1 -1
  65. package/dist/lambda-calc/church.d.ts.map +1 -1
  66. package/dist/lambda-calc/church.js.map +1 -1
  67. package/dist/lambda-calc/combinators.d.ts.map +1 -1
  68. package/dist/lambda-calc/combinators.js.map +1 -1
  69. package/dist/lambda-calc/index.d.ts +1 -1
  70. package/dist/lambda-calc/index.d.ts.map +1 -1
  71. package/dist/lambda-calc/index.js.map +1 -1
  72. package/dist/mltt/equality.d.ts +9 -0
  73. package/dist/mltt/equality.d.ts.map +1 -0
  74. package/dist/mltt/equality.js +79 -0
  75. package/dist/mltt/equality.js.map +1 -0
  76. package/dist/mltt/index.d.ts +8 -0
  77. package/dist/mltt/index.d.ts.map +1 -0
  78. package/dist/mltt/index.js +49 -0
  79. package/dist/mltt/index.js.map +1 -0
  80. package/dist/mltt/infer.d.ts +17 -0
  81. package/dist/mltt/infer.d.ts.map +1 -0
  82. package/dist/mltt/infer.js +269 -0
  83. package/dist/mltt/infer.js.map +1 -0
  84. package/dist/mltt/normalize.d.ts +7 -0
  85. package/dist/mltt/normalize.d.ts.map +1 -0
  86. package/dist/mltt/normalize.js +131 -0
  87. package/dist/mltt/normalize.js.map +1 -0
  88. package/dist/mltt/substitute.d.ts +4 -0
  89. package/dist/mltt/substitute.d.ts.map +1 -0
  90. package/dist/mltt/substitute.js +94 -0
  91. package/dist/mltt/substitute.js.map +1 -0
  92. package/dist/mltt/types.d.ts +72 -0
  93. package/dist/mltt/types.d.ts.map +1 -0
  94. package/dist/mltt/types.js +211 -0
  95. package/dist/mltt/types.js.map +1 -0
  96. package/dist/nbe/index.d.ts +3 -0
  97. package/dist/nbe/index.d.ts.map +1 -0
  98. package/dist/nbe/index.js +25 -0
  99. package/dist/nbe/index.js.map +1 -0
  100. package/dist/nbe/nbe.d.ts +7 -0
  101. package/dist/nbe/nbe.d.ts.map +1 -0
  102. package/dist/nbe/nbe.js +118 -0
  103. package/dist/nbe/nbe.js.map +1 -0
  104. package/dist/nbe/types.d.ts +54 -0
  105. package/dist/nbe/types.d.ts.map +1 -0
  106. package/dist/nbe/types.js +117 -0
  107. package/dist/nbe/types.js.map +1 -0
  108. package/dist/profile-bridge/index.d.ts +64 -0
  109. package/dist/profile-bridge/index.d.ts.map +1 -0
  110. package/dist/profile-bridge/index.js +328 -0
  111. package/dist/profile-bridge/index.js.map +1 -0
  112. package/dist/profiles/many-valued/index.d.ts.map +1 -1
  113. package/dist/profiles/many-valued/index.js.map +1 -1
  114. package/dist/profiles/mu-calculus/check.d.ts +15 -0
  115. package/dist/profiles/mu-calculus/check.d.ts.map +1 -0
  116. package/dist/profiles/mu-calculus/check.js +172 -0
  117. package/dist/profiles/mu-calculus/check.js.map +1 -0
  118. package/dist/profiles/mu-calculus/ctl-translate.d.ts +61 -0
  119. package/dist/profiles/mu-calculus/ctl-translate.d.ts.map +1 -0
  120. package/dist/profiles/mu-calculus/ctl-translate.js +181 -0
  121. package/dist/profiles/mu-calculus/ctl-translate.js.map +1 -0
  122. package/dist/profiles/mu-calculus/index.d.ts +7 -0
  123. package/dist/profiles/mu-calculus/index.d.ts.map +1 -0
  124. package/dist/profiles/mu-calculus/index.js +33 -0
  125. package/dist/profiles/mu-calculus/index.js.map +1 -0
  126. package/dist/profiles/mu-calculus/types.d.ts +51 -0
  127. package/dist/profiles/mu-calculus/types.d.ts.map +1 -0
  128. package/dist/profiles/mu-calculus/types.js +42 -0
  129. package/dist/profiles/mu-calculus/types.js.map +1 -0
  130. package/dist/profiles/mu-calculus/wellformed.d.ts +40 -0
  131. package/dist/profiles/mu-calculus/wellformed.d.ts.map +1 -0
  132. package/dist/profiles/mu-calculus/wellformed.js +160 -0
  133. package/dist/profiles/mu-calculus/wellformed.js.map +1 -0
  134. package/dist/profiles/sequent-lk/cut-elimination.d.ts +11 -0
  135. package/dist/profiles/sequent-lk/cut-elimination.d.ts.map +1 -0
  136. package/dist/profiles/sequent-lk/cut-elimination.js +216 -0
  137. package/dist/profiles/sequent-lk/cut-elimination.js.map +1 -0
  138. package/dist/profiles/sequent-lk/index.d.ts +5 -0
  139. package/dist/profiles/sequent-lk/index.d.ts.map +1 -0
  140. package/dist/profiles/sequent-lk/index.js +24 -0
  141. package/dist/profiles/sequent-lk/index.js.map +1 -0
  142. package/dist/profiles/sequent-lk/prover.d.ts +25 -0
  143. package/dist/profiles/sequent-lk/prover.d.ts.map +1 -0
  144. package/dist/profiles/sequent-lk/prover.js +532 -0
  145. package/dist/profiles/sequent-lk/prover.js.map +1 -0
  146. package/dist/profiles/sequent-lk/types.d.ts +55 -0
  147. package/dist/profiles/sequent-lk/types.d.ts.map +1 -0
  148. package/dist/profiles/sequent-lk/types.js +18 -0
  149. package/dist/profiles/sequent-lk/types.js.map +1 -0
  150. package/dist/profiles/sequent-lk/util.d.ts +18 -0
  151. package/dist/profiles/sequent-lk/util.d.ts.map +1 -0
  152. package/dist/profiles/sequent-lk/util.js +71 -0
  153. package/dist/profiles/sequent-lk/util.js.map +1 -0
  154. package/dist/proof-nets/construct.d.ts +3 -0
  155. package/dist/proof-nets/construct.d.ts.map +1 -0
  156. package/dist/proof-nets/construct.js +85 -0
  157. package/dist/proof-nets/construct.js.map +1 -0
  158. package/dist/proof-nets/correctness.d.ts +3 -0
  159. package/dist/proof-nets/correctness.d.ts.map +1 -0
  160. package/dist/proof-nets/correctness.js +213 -0
  161. package/dist/proof-nets/correctness.js.map +1 -0
  162. package/dist/proof-nets/cut-elim.d.ts +9 -0
  163. package/dist/proof-nets/cut-elim.d.ts.map +1 -0
  164. package/dist/proof-nets/cut-elim.js +149 -0
  165. package/dist/proof-nets/cut-elim.js.map +1 -0
  166. package/dist/proof-nets/index.d.ts +6 -0
  167. package/dist/proof-nets/index.d.ts.map +1 -0
  168. package/dist/proof-nets/index.js +33 -0
  169. package/dist/proof-nets/index.js.map +1 -0
  170. package/dist/proof-nets/types.d.ts +36 -0
  171. package/dist/proof-nets/types.d.ts.map +1 -0
  172. package/dist/proof-nets/types.js +89 -0
  173. package/dist/proof-nets/types.js.map +1 -0
  174. package/dist/refinement-types/checker.d.ts +19 -0
  175. package/dist/refinement-types/checker.d.ts.map +1 -0
  176. package/dist/refinement-types/checker.js +248 -0
  177. package/dist/refinement-types/checker.js.map +1 -0
  178. package/dist/refinement-types/index.d.ts +11 -0
  179. package/dist/refinement-types/index.d.ts.map +1 -0
  180. package/dist/refinement-types/index.js +51 -0
  181. package/dist/refinement-types/index.js.map +1 -0
  182. package/dist/refinement-types/predicate.d.ts +31 -0
  183. package/dist/refinement-types/predicate.d.ts.map +1 -0
  184. package/dist/refinement-types/predicate.js +369 -0
  185. package/dist/refinement-types/predicate.js.map +1 -0
  186. package/dist/refinement-types/solver.d.ts +24 -0
  187. package/dist/refinement-types/solver.d.ts.map +1 -0
  188. package/dist/refinement-types/solver.js +207 -0
  189. package/dist/refinement-types/solver.js.map +1 -0
  190. package/dist/refinement-types/subtype.d.ts +14 -0
  191. package/dist/refinement-types/subtype.d.ts.map +1 -0
  192. package/dist/refinement-types/subtype.js +39 -0
  193. package/dist/refinement-types/subtype.js.map +1 -0
  194. package/dist/refinement-types/types.d.ts +64 -0
  195. package/dist/refinement-types/types.d.ts.map +1 -0
  196. package/dist/refinement-types/types.js +130 -0
  197. package/dist/refinement-types/types.js.map +1 -0
  198. package/dist/runtime/anti-unification/anti-unify.d.ts +22 -0
  199. package/dist/runtime/anti-unification/anti-unify.d.ts.map +1 -0
  200. package/dist/runtime/anti-unification/anti-unify.js +154 -0
  201. package/dist/runtime/anti-unification/anti-unify.js.map +1 -0
  202. package/dist/runtime/anti-unification/index.d.ts +6 -0
  203. package/dist/runtime/anti-unification/index.d.ts.map +1 -0
  204. package/dist/runtime/anti-unification/index.js +23 -0
  205. package/dist/runtime/anti-unification/index.js.map +1 -0
  206. package/dist/runtime/anti-unification/many.d.ts +49 -0
  207. package/dist/runtime/anti-unification/many.d.ts.map +1 -0
  208. package/dist/runtime/anti-unification/many.js +185 -0
  209. package/dist/runtime/anti-unification/many.js.map +1 -0
  210. package/dist/runtime/anti-unification/term-utils.d.ts +40 -0
  211. package/dist/runtime/anti-unification/term-utils.d.ts.map +1 -0
  212. package/dist/runtime/anti-unification/term-utils.js +173 -0
  213. package/dist/runtime/anti-unification/term-utils.js.map +1 -0
  214. package/dist/runtime/anti-unification/types.d.ts +41 -0
  215. package/dist/runtime/anti-unification/types.d.ts.map +1 -0
  216. package/dist/runtime/anti-unification/types.js +26 -0
  217. package/dist/runtime/anti-unification/types.js.map +1 -0
  218. package/dist/runtime/csp/ac3.d.ts +20 -0
  219. package/dist/runtime/csp/ac3.d.ts.map +1 -0
  220. package/dist/runtime/csp/ac3.js +165 -0
  221. package/dist/runtime/csp/ac3.js.map +1 -0
  222. package/dist/runtime/csp/backtrack.d.ts +15 -0
  223. package/dist/runtime/csp/backtrack.d.ts.map +1 -0
  224. package/dist/runtime/csp/backtrack.js +233 -0
  225. package/dist/runtime/csp/backtrack.js.map +1 -0
  226. package/dist/runtime/csp/builtins.d.ts +27 -0
  227. package/dist/runtime/csp/builtins.d.ts.map +1 -0
  228. package/dist/runtime/csp/builtins.js +109 -0
  229. package/dist/runtime/csp/builtins.js.map +1 -0
  230. package/dist/runtime/csp/index.d.ts +5 -0
  231. package/dist/runtime/csp/index.d.ts.map +1 -0
  232. package/dist/runtime/csp/index.js +23 -0
  233. package/dist/runtime/csp/index.js.map +1 -0
  234. package/dist/runtime/csp/types.d.ts +54 -0
  235. package/dist/runtime/csp/types.d.ts.map +1 -0
  236. package/dist/runtime/csp/types.js +14 -0
  237. package/dist/runtime/csp/types.js.map +1 -0
  238. package/dist/runtime/markov-logic/grounding.d.ts +19 -0
  239. package/dist/runtime/markov-logic/grounding.d.ts.map +1 -0
  240. package/dist/runtime/markov-logic/grounding.js +252 -0
  241. package/dist/runtime/markov-logic/grounding.js.map +1 -0
  242. package/dist/runtime/markov-logic/index.d.ts +6 -0
  243. package/dist/runtime/markov-logic/index.d.ts.map +1 -0
  244. package/dist/runtime/markov-logic/index.js +47 -0
  245. package/dist/runtime/markov-logic/index.js.map +1 -0
  246. package/dist/runtime/markov-logic/inference.d.ts +77 -0
  247. package/dist/runtime/markov-logic/inference.d.ts.map +1 -0
  248. package/dist/runtime/markov-logic/inference.js +382 -0
  249. package/dist/runtime/markov-logic/inference.js.map +1 -0
  250. package/dist/runtime/markov-logic/parser.d.ts +25 -0
  251. package/dist/runtime/markov-logic/parser.d.ts.map +1 -0
  252. package/dist/runtime/markov-logic/parser.js +264 -0
  253. package/dist/runtime/markov-logic/parser.js.map +1 -0
  254. package/dist/runtime/markov-logic/types.d.ts +64 -0
  255. package/dist/runtime/markov-logic/types.d.ts.map +1 -0
  256. package/dist/runtime/markov-logic/types.js +17 -0
  257. package/dist/runtime/markov-logic/types.js.map +1 -0
  258. package/dist/runtime/pi-calculus/congruence.d.ts +15 -0
  259. package/dist/runtime/pi-calculus/congruence.d.ts.map +1 -0
  260. package/dist/runtime/pi-calculus/congruence.js +271 -0
  261. package/dist/runtime/pi-calculus/congruence.js.map +1 -0
  262. package/dist/runtime/pi-calculus/index.d.ts +6 -0
  263. package/dist/runtime/pi-calculus/index.d.ts.map +1 -0
  264. package/dist/runtime/pi-calculus/index.js +30 -0
  265. package/dist/runtime/pi-calculus/index.js.map +1 -0
  266. package/dist/runtime/pi-calculus/names.d.ts +28 -0
  267. package/dist/runtime/pi-calculus/names.d.ts.map +1 -0
  268. package/dist/runtime/pi-calculus/names.js +182 -0
  269. package/dist/runtime/pi-calculus/names.js.map +1 -0
  270. package/dist/runtime/pi-calculus/reduction.d.ts +25 -0
  271. package/dist/runtime/pi-calculus/reduction.d.ts.map +1 -0
  272. package/dist/runtime/pi-calculus/reduction.js +338 -0
  273. package/dist/runtime/pi-calculus/reduction.js.map +1 -0
  274. package/dist/runtime/pi-calculus/substitution.d.ts +11 -0
  275. package/dist/runtime/pi-calculus/substitution.d.ts.map +1 -0
  276. package/dist/runtime/pi-calculus/substitution.js +109 -0
  277. package/dist/runtime/pi-calculus/substitution.js.map +1 -0
  278. package/dist/runtime/pi-calculus/types.d.ts +38 -0
  279. package/dist/runtime/pi-calculus/types.d.ts.map +1 -0
  280. package/dist/runtime/pi-calculus/types.js +22 -0
  281. package/dist/runtime/pi-calculus/types.js.map +1 -0
  282. package/dist/runtime/planning/astar.d.ts +10 -0
  283. package/dist/runtime/planning/astar.d.ts.map +1 -0
  284. package/dist/runtime/planning/astar.js +155 -0
  285. package/dist/runtime/planning/astar.js.map +1 -0
  286. package/dist/runtime/planning/bfs.d.ts +17 -0
  287. package/dist/runtime/planning/bfs.d.ts.map +1 -0
  288. package/dist/runtime/planning/bfs.js +87 -0
  289. package/dist/runtime/planning/bfs.js.map +1 -0
  290. package/dist/runtime/planning/ground.d.ts +55 -0
  291. package/dist/runtime/planning/ground.d.ts.map +1 -0
  292. package/dist/runtime/planning/ground.js +154 -0
  293. package/dist/runtime/planning/ground.js.map +1 -0
  294. package/dist/runtime/planning/heuristic.d.ts +29 -0
  295. package/dist/runtime/planning/heuristic.d.ts.map +1 -0
  296. package/dist/runtime/planning/heuristic.js +172 -0
  297. package/dist/runtime/planning/heuristic.js.map +1 -0
  298. package/dist/runtime/planning/index.d.ts +6 -0
  299. package/dist/runtime/planning/index.d.ts.map +1 -0
  300. package/dist/runtime/planning/index.js +38 -0
  301. package/dist/runtime/planning/index.js.map +1 -0
  302. package/dist/runtime/planning/types.d.ts +100 -0
  303. package/dist/runtime/planning/types.d.ts.map +1 -0
  304. package/dist/runtime/planning/types.js +22 -0
  305. package/dist/runtime/planning/types.js.map +1 -0
  306. package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -1
  307. package/dist/runtime/symbolic-diff/differentiate.js.map +1 -1
  308. package/dist/runtime/symbolic-diff/index.d.ts +1 -1
  309. package/dist/runtime/symbolic-diff/index.d.ts.map +1 -1
  310. package/dist/runtime/symbolic-diff/index.js.map +1 -1
  311. package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -1
  312. package/dist/runtime/symbolic-diff/parse.js +7 -1
  313. package/dist/runtime/symbolic-diff/parse.js.map +1 -1
  314. package/dist/runtime/theorem-cache/cache.d.ts +100 -0
  315. package/dist/runtime/theorem-cache/cache.d.ts.map +1 -0
  316. package/dist/runtime/theorem-cache/cache.js +213 -0
  317. package/dist/runtime/theorem-cache/cache.js.map +1 -0
  318. package/dist/runtime/theorem-cache/canonical.d.ts +59 -0
  319. package/dist/runtime/theorem-cache/canonical.d.ts.map +1 -0
  320. package/dist/runtime/theorem-cache/canonical.js +105 -0
  321. package/dist/runtime/theorem-cache/canonical.js.map +1 -0
  322. package/dist/runtime/theorem-cache/index.d.ts +6 -0
  323. package/dist/runtime/theorem-cache/index.d.ts.map +1 -0
  324. package/dist/runtime/theorem-cache/index.js +16 -0
  325. package/dist/runtime/theorem-cache/index.js.map +1 -0
  326. package/dist/runtime/theorem-cache/pattern.d.ts +24 -0
  327. package/dist/runtime/theorem-cache/pattern.d.ts.map +1 -0
  328. package/dist/runtime/theorem-cache/pattern.js +80 -0
  329. package/dist/runtime/theorem-cache/pattern.js.map +1 -0
  330. package/dist/system-f/index.d.ts +7 -0
  331. package/dist/system-f/index.d.ts.map +1 -0
  332. package/dist/system-f/index.js +48 -0
  333. package/dist/system-f/index.js.map +1 -0
  334. package/dist/system-f/infer.d.ts +9 -0
  335. package/dist/system-f/infer.d.ts.map +1 -0
  336. package/dist/system-f/infer.js +94 -0
  337. package/dist/system-f/infer.js.map +1 -0
  338. package/dist/system-f/reduce.d.ts +15 -0
  339. package/dist/system-f/reduce.d.ts.map +1 -0
  340. package/dist/system-f/reduce.js +259 -0
  341. package/dist/system-f/reduce.js.map +1 -0
  342. package/dist/system-f/types.d.ts +53 -0
  343. package/dist/system-f/types.d.ts.map +1 -0
  344. package/dist/system-f/types.js +157 -0
  345. package/dist/system-f/types.js.map +1 -0
  346. package/dist/tableau-framework/TableauProver.d.ts +10 -0
  347. package/dist/tableau-framework/TableauProver.d.ts.map +1 -0
  348. package/dist/tableau-framework/TableauProver.js +118 -0
  349. package/dist/tableau-framework/TableauProver.js.map +1 -0
  350. package/dist/tableau-framework/index.d.ts +5 -0
  351. package/dist/tableau-framework/index.d.ts.map +1 -0
  352. package/dist/tableau-framework/index.js +11 -0
  353. package/dist/tableau-framework/index.js.map +1 -0
  354. package/dist/tableau-framework/propositional.d.ts +11 -0
  355. package/dist/tableau-framework/propositional.d.ts.map +1 -0
  356. package/dist/tableau-framework/propositional.js +143 -0
  357. package/dist/tableau-framework/propositional.js.map +1 -0
  358. package/dist/tableau-framework/types.d.ts +32 -0
  359. package/dist/tableau-framework/types.d.ts.map +1 -0
  360. package/dist/tableau-framework/types.js +6 -0
  361. package/dist/tableau-framework/types.js.map +1 -0
  362. package/dist/tests/anti-unification/anti-unify.test.d.ts +2 -0
  363. package/dist/tests/anti-unification/anti-unify.test.d.ts.map +1 -0
  364. package/dist/tests/anti-unification/anti-unify.test.js +219 -0
  365. package/dist/tests/anti-unification/anti-unify.test.js.map +1 -0
  366. package/dist/tests/coinduction/coinduction.test.d.ts +2 -0
  367. package/dist/tests/coinduction/coinduction.test.d.ts.map +1 -0
  368. package/dist/tests/coinduction/coinduction.test.js +217 -0
  369. package/dist/tests/coinduction/coinduction.test.js.map +1 -0
  370. package/dist/tests/combinators-ski/combinators-ski.test.d.ts +2 -0
  371. package/dist/tests/combinators-ski/combinators-ski.test.d.ts.map +1 -0
  372. package/dist/tests/combinators-ski/combinators-ski.test.js +211 -0
  373. package/dist/tests/combinators-ski/combinators-ski.test.js.map +1 -0
  374. package/dist/tests/constructive-reals/constructive-reals.test.d.ts +2 -0
  375. package/dist/tests/constructive-reals/constructive-reals.test.d.ts.map +1 -0
  376. package/dist/tests/constructive-reals/constructive-reals.test.js +357 -0
  377. package/dist/tests/constructive-reals/constructive-reals.test.js.map +1 -0
  378. package/dist/tests/coverage-fill-aristotelian.test.js +1 -1
  379. package/dist/tests/coverage-fill-aristotelian.test.js.map +1 -1
  380. package/dist/tests/coverage-fill-fallacies.test.js +1 -1
  381. package/dist/tests/coverage-fill-fallacies.test.js.map +1 -1
  382. package/dist/tests/coverage-fill-format.test.js +1 -1
  383. package/dist/tests/coverage-fill-format.test.js.map +1 -1
  384. package/dist/tests/coverage-fill-intuitionistic.test.js +1 -1
  385. package/dist/tests/coverage-fill-intuitionistic.test.js.map +1 -1
  386. package/dist/tests/coverage-fill-probabilistic.test.js +1 -1
  387. package/dist/tests/coverage-fill-probabilistic.test.js.map +1 -1
  388. package/dist/tests/csp/csp.test.d.ts +2 -0
  389. package/dist/tests/csp/csp.test.d.ts.map +1 -0
  390. package/dist/tests/csp/csp.test.js +292 -0
  391. package/dist/tests/csp/csp.test.js.map +1 -0
  392. package/dist/tests/game-semantics/game-semantics.test.d.ts +2 -0
  393. package/dist/tests/game-semantics/game-semantics.test.d.ts.map +1 -0
  394. package/dist/tests/game-semantics/game-semantics.test.js +143 -0
  395. package/dist/tests/game-semantics/game-semantics.test.js.map +1 -0
  396. package/dist/tests/higher-order-unify/ho-unify.test.d.ts +2 -0
  397. package/dist/tests/higher-order-unify/ho-unify.test.d.ts.map +1 -0
  398. package/dist/tests/higher-order-unify/ho-unify.test.js +264 -0
  399. package/dist/tests/higher-order-unify/ho-unify.test.js.map +1 -0
  400. package/dist/tests/integration/cross-modules.test.d.ts +8 -0
  401. package/dist/tests/integration/cross-modules.test.d.ts.map +1 -0
  402. package/dist/tests/integration/cross-modules.test.js +668 -0
  403. package/dist/tests/integration/cross-modules.test.js.map +1 -0
  404. package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -1
  405. package/dist/tests/many-valued/many-valued.test.js.map +1 -1
  406. package/dist/tests/markov-logic/markov-logic.test.d.ts +2 -0
  407. package/dist/tests/markov-logic/markov-logic.test.d.ts.map +1 -0
  408. package/dist/tests/markov-logic/markov-logic.test.js +349 -0
  409. package/dist/tests/markov-logic/markov-logic.test.js.map +1 -0
  410. package/dist/tests/mltt/mltt.test.d.ts +2 -0
  411. package/dist/tests/mltt/mltt.test.d.ts.map +1 -0
  412. package/dist/tests/mltt/mltt.test.js +181 -0
  413. package/dist/tests/mltt/mltt.test.js.map +1 -0
  414. package/dist/tests/mu-calculus/check.test.d.ts +2 -0
  415. package/dist/tests/mu-calculus/check.test.d.ts.map +1 -0
  416. package/dist/tests/mu-calculus/check.test.js +234 -0
  417. package/dist/tests/mu-calculus/check.test.js.map +1 -0
  418. package/dist/tests/nbe/nbe.test.d.ts +2 -0
  419. package/dist/tests/nbe/nbe.test.d.ts.map +1 -0
  420. package/dist/tests/nbe/nbe.test.js +121 -0
  421. package/dist/tests/nbe/nbe.test.js.map +1 -0
  422. package/dist/tests/pi-calculus/pi-calculus.test.d.ts +2 -0
  423. package/dist/tests/pi-calculus/pi-calculus.test.d.ts.map +1 -0
  424. package/dist/tests/pi-calculus/pi-calculus.test.js +273 -0
  425. package/dist/tests/pi-calculus/pi-calculus.test.js.map +1 -0
  426. package/dist/tests/planning/planning.test.d.ts +2 -0
  427. package/dist/tests/planning/planning.test.d.ts.map +1 -0
  428. package/dist/tests/planning/planning.test.js +397 -0
  429. package/dist/tests/planning/planning.test.js.map +1 -0
  430. package/dist/tests/profile-bridge/translations.test.d.ts +2 -0
  431. package/dist/tests/profile-bridge/translations.test.d.ts.map +1 -0
  432. package/dist/tests/profile-bridge/translations.test.js +266 -0
  433. package/dist/tests/profile-bridge/translations.test.js.map +1 -0
  434. package/dist/tests/proof-nets/proof-nets.test.d.ts +2 -0
  435. package/dist/tests/proof-nets/proof-nets.test.d.ts.map +1 -0
  436. package/dist/tests/proof-nets/proof-nets.test.js +263 -0
  437. package/dist/tests/proof-nets/proof-nets.test.js.map +1 -0
  438. package/dist/tests/refinement-types/refinement-types.test.d.ts +2 -0
  439. package/dist/tests/refinement-types/refinement-types.test.d.ts.map +1 -0
  440. package/dist/tests/refinement-types/refinement-types.test.js +174 -0
  441. package/dist/tests/refinement-types/refinement-types.test.js.map +1 -0
  442. package/dist/tests/sequent-lk/prover.test.d.ts +2 -0
  443. package/dist/tests/sequent-lk/prover.test.d.ts.map +1 -0
  444. package/dist/tests/sequent-lk/prover.test.js +317 -0
  445. package/dist/tests/sequent-lk/prover.test.js.map +1 -0
  446. package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -1
  447. package/dist/tests/system-f/system-f.test.d.ts +2 -0
  448. package/dist/tests/system-f/system-f.test.d.ts.map +1 -0
  449. package/dist/tests/system-f/system-f.test.js +217 -0
  450. package/dist/tests/system-f/system-f.test.js.map +1 -0
  451. package/dist/tests/tableau-framework/tableau.test.d.ts +2 -0
  452. package/dist/tests/tableau-framework/tableau.test.d.ts.map +1 -0
  453. package/dist/tests/tableau-framework/tableau.test.js +196 -0
  454. package/dist/tests/tableau-framework/tableau.test.js.map +1 -0
  455. package/dist/tests/theorem-cache/cache.test.d.ts +2 -0
  456. package/dist/tests/theorem-cache/cache.test.d.ts.map +1 -0
  457. package/dist/tests/theorem-cache/cache.test.js +510 -0
  458. package/dist/tests/theorem-cache/cache.test.js.map +1 -0
  459. package/package.json +1 -1
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SKI combinatory logic — Reducción
4
+ // ============================================================
5
+ //
6
+ // Reglas (weak reduction, leftmost-outermost):
7
+ // I x → x
8
+ // K x y → x (descarta `y` aunque éste tenga redex propios)
9
+ // S x y z → x z (y z)
10
+ //
11
+ // `reduceStep` aplica un único paso si encuentra un redex en la
12
+ // cabeza o, si no, baja por las ramas siguiendo orden
13
+ // leftmost-outermost. Como no hay binders ni captura, no se requiere
14
+ // renombrar; la sustitución es pegado físico de subárboles.
15
+ //
16
+ // La forma normal SKI puede no existir (e.g. términos divergentes
17
+ // equivalentes a Ω), por lo que `normalize` recibe `maxSteps`.
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.reduceStep = reduceStep;
20
+ exports.normalize = normalize;
21
+ exports.isNormalForm = isNormalForm;
22
+ // Devuelve el término reducido en UN paso, o `null` si no hay redex.
23
+ function reduceStep(t) {
24
+ // Intenta primero un paso en la posición de cabeza.
25
+ const head = reduceHead(t);
26
+ if (head !== null)
27
+ return head;
28
+ // Si no hay redex en cabeza, baja recursivamente.
29
+ switch (t.kind) {
30
+ case 'app': {
31
+ const fn2 = reduceStep(t.fn);
32
+ if (fn2 !== null)
33
+ return { kind: 'app', fn: fn2, arg: t.arg };
34
+ const arg2 = reduceStep(t.arg);
35
+ if (arg2 !== null)
36
+ return { kind: 'app', fn: t.fn, arg: arg2 };
37
+ return null;
38
+ }
39
+ default:
40
+ return null;
41
+ }
42
+ }
43
+ // Intenta una reducción en la posición de cabeza del término.
44
+ // Devuelve `null` si no hay redex de cabeza.
45
+ function reduceHead(t) {
46
+ if (t.kind !== 'app')
47
+ return null;
48
+ // Junta la cabeza (combinador o variable) con sus argumentos
49
+ // recorridos por la espina izquierda.
50
+ const spine = [];
51
+ let cursor = t;
52
+ while (cursor.kind === 'app') {
53
+ spine.unshift(cursor.arg);
54
+ cursor = cursor.fn;
55
+ }
56
+ // `cursor` es la cabeza definitiva (S/K/I/var); `spine` son los args
57
+ // aplicados de izquierda a derecha.
58
+ switch (cursor.kind) {
59
+ case 'I': {
60
+ const x = spine[0];
61
+ if (x === undefined)
62
+ return null;
63
+ // I x rest... → x rest...
64
+ return rebuild(x, spine.slice(1));
65
+ }
66
+ case 'K': {
67
+ const x = spine[0];
68
+ const y = spine[1];
69
+ if (x === undefined || y === undefined)
70
+ return null;
71
+ // K x y rest... → x rest... (y se descarta)
72
+ return rebuild(x, spine.slice(2));
73
+ }
74
+ case 'S': {
75
+ const x = spine[0];
76
+ const y = spine[1];
77
+ const z = spine[2];
78
+ if (x === undefined || y === undefined || z === undefined)
79
+ return null;
80
+ // S x y z rest... → (x z (y z)) rest...
81
+ const reduced = {
82
+ kind: 'app',
83
+ fn: { kind: 'app', fn: x, arg: z },
84
+ arg: { kind: 'app', fn: y, arg: z },
85
+ };
86
+ return rebuild(reduced, spine.slice(3));
87
+ }
88
+ default:
89
+ return null;
90
+ }
91
+ }
92
+ // Reconstruye `head arg0 arg1 ...` como aplicación asociativa a la izquierda.
93
+ function rebuild(head, args) {
94
+ let acc = head;
95
+ for (const a of args) {
96
+ acc = { kind: 'app', fn: acc, arg: a };
97
+ }
98
+ return acc;
99
+ }
100
+ // Itera reducciones hasta forma normal o agotar `maxSteps`.
101
+ // `terminated=true` significa que no quedan redex (forma normal SKI);
102
+ // `false` indica que se alcanzó el cap (típico para términos divergentes).
103
+ function normalize(t, maxSteps = 1000) {
104
+ let current = t;
105
+ let steps = 0;
106
+ for (; steps < maxSteps; steps += 1) {
107
+ const next = reduceStep(current);
108
+ if (next === null)
109
+ return { result: current, steps, terminated: true };
110
+ current = next;
111
+ }
112
+ return { result: current, steps, terminated: false };
113
+ }
114
+ // ¿No hay más redex aplicable?
115
+ function isNormalForm(t) {
116
+ return reduceStep(t) === null;
117
+ }
118
+ //# sourceMappingURL=reduce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../src/combinators-ski/reduce.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type CTerm = {
2
+ kind: 'S';
3
+ } | {
4
+ kind: 'K';
5
+ } | {
6
+ kind: 'I';
7
+ } | {
8
+ kind: 'var';
9
+ name: string;
10
+ } | {
11
+ kind: 'app';
12
+ fn: CTerm;
13
+ arg: CTerm;
14
+ };
15
+ export declare const S: () => CTerm;
16
+ export declare const K: () => CTerm;
17
+ export declare const I: () => CTerm;
18
+ export declare const cvar: (name: string) => CTerm;
19
+ export declare function app(...ts: CTerm[]): CTerm;
20
+ export declare function ctermEq(a: CTerm, b: CTerm): boolean;
21
+ export declare function termToString(t: CTerm): string;
22
+ export declare function freeVars(t: CTerm): Set<string>;
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/combinators-ski/types.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,KAAK,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC;AAG3C,eAAO,MAAM,CAAC,QAAO,KAAwB,CAAC;AAC9C,eAAO,MAAM,CAAC,QAAO,KAAwB,CAAC;AAC9C,eAAO,MAAM,CAAC,QAAO,KAAwB,CAAC;AAC9C,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,KAAgC,CAAC;AAIrE,wBAAgB,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAYzC;AAGD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAcnD;AAID,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAgB7C;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAI9C"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // SKI combinatory logic — Términos y constructores
4
+ // ============================================================
5
+ //
6
+ // Sistema base de combinadores S, K, I (Schönfinkel / Curry). Es
7
+ // Turing-completo y equivalente al λ-cálculo, pero sin variables
8
+ // ligadas: toda función se construye combinando S, K, I y variables
9
+ // libres mediante aplicación. Las λ-abstracciones se "eliminan"
10
+ // vía bracket abstraction (ver `abstract.ts`).
11
+ //
12
+ // Reglas de reducción:
13
+ // I x → x
14
+ // K x y → x
15
+ // S x y z → x z (y z)
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.cvar = exports.I = exports.K = exports.S = void 0;
18
+ exports.app = app;
19
+ exports.ctermEq = ctermEq;
20
+ exports.termToString = termToString;
21
+ exports.freeVars = freeVars;
22
+ // ---------- Constructores convenientes ----------
23
+ const S = () => ({ kind: 'S' });
24
+ exports.S = S;
25
+ const K = () => ({ kind: 'K' });
26
+ exports.K = K;
27
+ const I = () => ({ kind: 'I' });
28
+ exports.I = I;
29
+ const cvar = (name) => ({ kind: 'var', name });
30
+ exports.cvar = cvar;
31
+ // Aplicación n-aria asociativa a la izquierda: app(f, a, b, c) = ((f a) b) c.
32
+ // Con un solo argumento devuelve el término tal cual; sin argumentos lanza.
33
+ function app(...ts) {
34
+ const head = ts[0];
35
+ if (head === undefined) {
36
+ throw new Error('app() requiere al menos un término');
37
+ }
38
+ let acc = head;
39
+ for (let i = 1; i < ts.length; i += 1) {
40
+ const next = ts[i];
41
+ if (next === undefined)
42
+ break;
43
+ acc = { kind: 'app', fn: acc, arg: next };
44
+ }
45
+ return acc;
46
+ }
47
+ // Igualdad estructural (no hay alpha — no hay binders).
48
+ function ctermEq(a, b) {
49
+ if (a.kind !== b.kind)
50
+ return false;
51
+ switch (a.kind) {
52
+ case 'S':
53
+ case 'K':
54
+ case 'I':
55
+ return true;
56
+ case 'var':
57
+ return a.name === b.name;
58
+ case 'app': {
59
+ const bb = b;
60
+ return ctermEq(a.fn, bb.fn) && ctermEq(a.arg, bb.arg);
61
+ }
62
+ }
63
+ }
64
+ // Pretty-printer. Aplicación asociativa a la izquierda: agrupa con
65
+ // paréntesis sólo cuando el argumento es a su vez una aplicación.
66
+ function termToString(t) {
67
+ switch (t.kind) {
68
+ case 'S':
69
+ return 'S';
70
+ case 'K':
71
+ return 'K';
72
+ case 'I':
73
+ return 'I';
74
+ case 'var':
75
+ return t.name;
76
+ case 'app': {
77
+ const fn = termToString(t.fn);
78
+ const arg = t.arg.kind === 'app' ? `(${termToString(t.arg)})` : termToString(t.arg);
79
+ return `${fn} ${arg}`;
80
+ }
81
+ }
82
+ }
83
+ // Variables libres del término (no hay ligadas en SKI puro).
84
+ function freeVars(t) {
85
+ const acc = new Set();
86
+ collect(t, acc);
87
+ return acc;
88
+ }
89
+ function collect(t, acc) {
90
+ switch (t.kind) {
91
+ case 'var':
92
+ acc.add(t.name);
93
+ return;
94
+ case 'app':
95
+ collect(t.fn, acc);
96
+ collect(t.arg, acc);
97
+ return;
98
+ default:
99
+ return;
100
+ }
101
+ }
102
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/combinators-ski/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D;AAC/D,EAAE;AACF,iEAAiE;AACjE,iEAAiE;AACjE,oEAAoE;AACpE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,uBAAuB;AACvB,iBAAiB;AACjB,iBAAiB;AACjB,yBAAyB;;;AAiBzB,kBAYC;AAGD,0BAcC;AAID,oCAgBC;AAGD,4BAIC;AAhED,mDAAmD;AAC5C,MAAM,CAAC,GAAG,GAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAAjC,QAAA,CAAC,KAAgC;AACvC,MAAM,CAAC,GAAG,GAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAAjC,QAAA,CAAC,KAAgC;AACvC,MAAM,CAAC,GAAG,GAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAAjC,QAAA,CAAC,KAAgC;AACvC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAAxD,QAAA,IAAI,QAAoD;AAErE,8EAA8E;AAC9E,4EAA4E;AAC5E,SAAgB,GAAG,CAAC,GAAG,EAAW;IAChC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,GAAG,GAAU,IAAI,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wDAAwD;AACxD,SAAgB,OAAO,CAAC,CAAQ,EAAE,CAAQ;IACxC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,IAAI,CAAC;QACd,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,IAAI,KAAM,CAAc,CAAC,IAAI,CAAC;QACzC,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,GAAG,CAAa,CAAC;YACzB,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,kEAAkE;AAClE,SAAgB,YAAY,CAAC,CAAQ;IACnC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,GAAG;YACN,OAAO,GAAG,CAAC;QACb,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,IAAI,CAAC;QAChB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpF,OAAO,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAgB,QAAQ,CAAC,CAAQ;IAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,CAAQ,EAAE,GAAgB;IACzC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACR,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpB,OAAO;QACT;YACE,OAAO;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,132 @@
1
+ export interface CReal {
2
+ /**
3
+ * Devuelve una aproximación dyádica de x con error < 2^{-precision}.
4
+ * numerator / denominator ≈ x, denominator = 2^precision.
5
+ */
6
+ approx(precision: number): {
7
+ numerator: bigint;
8
+ denominator: bigint;
9
+ };
10
+ }
11
+ /** Eleva 2 a un entero no negativo. */
12
+ declare function pow2(n: number): bigint;
13
+ /**
14
+ * Divide entero con "round half away from zero".
15
+ * shiftRight(x, k) ≈ x / 2^k redondeado.
16
+ * Garantiza |shiftRight(x,k) - x/2^k| ≤ 1/2.
17
+ */
18
+ declare function shiftRight(x: bigint, k: number): bigint;
19
+ /**
20
+ * Calcula el número de bits del entero (|x| en binario).
21
+ * bitLength(0) = 0, bitLength(1) = 1, bitLength(7) = 3, bitLength(8) = 4.
22
+ */
23
+ declare function bitLength(x: bigint): number;
24
+ export declare function fromInt(n: number | bigint): CReal;
25
+ export declare function fromRational(p: number | bigint, q: number | bigint): CReal;
26
+ export declare function neg(a: CReal): CReal;
27
+ export declare function abs(a: CReal): CReal;
28
+ /**
29
+ * add(a,b) a precisión p:
30
+ * pedimos a y b a precisión p+2.
31
+ * error de cada uno < 2^{-(p+2)} → error en a+b < 2·2^{-(p+2)} = 2^{-(p+1)}.
32
+ * Al pasar de escala p+2 a p (shift de 2), introducimos error
33
+ * de redondeo ≤ 1/2 en la unidad p, = 2^{-(p+1)}.
34
+ * Total: < 2^{-(p+1)} + 2^{-(p+1)} = 2^{-p}. ✓
35
+ */
36
+ export declare function add(a: CReal, b: CReal): CReal;
37
+ export declare function sub(a: CReal, b: CReal): CReal;
38
+ /**
39
+ * mul(a,b) a precisión p:
40
+ * Necesitamos cotas sobre |a| y |b|. Tomamos una aproximación gruesa
41
+ * a precisión 0 para estimar el tamaño en bits.
42
+ * Sean |a| ≤ 2^A, |b| ≤ 2^B (con A,B no-negativos).
43
+ * Trabajamos a precisión p + A + B + 3.
44
+ * En esa escala el producto cabe y la cota de error queda < 2^{-p}.
45
+ *
46
+ * Detalle del error: si â = a + ε_a con |ε_a| < 2^{-w} y análogamente
47
+ * para b̂ (w = work precision en los operandos), entonces
48
+ * â·b̂ - a·b = a·ε_b + b·ε_a + ε_a·ε_b.
49
+ * |a·ε_b| ≤ 2^A · 2^{-w}, idem para b.
50
+ * Eligiendo w = p + A + B + 3 ese error queda < 2·2^{-(p+B+3)}
51
+ * acotado holgadamente por 2^{-(p+1)}, y el shift final añade otro
52
+ * 2^{-(p+1)}, dando < 2^{-p}.
53
+ */
54
+ export declare function mul(a: CReal, b: CReal): CReal;
55
+ /**
56
+ * div(a,b) a precisión p (b ≠ 0).
57
+ * Encontramos k tal que |b| ≥ 2^{-k}.
58
+ * Necesitamos también cota superior A_bits sobre |a|.
59
+ * Trabajamos a precisión w = p + 2k + A_bits + 4.
60
+ *
61
+ * Si â = a + ε_a, b̂ = b + ε_b, entonces
62
+ * â/b̂ - a/b = (ε_a · b - a · ε_b) / (b · b̂).
63
+ * |b · b̂| ≥ (2^{-k}) · (2^{-k} - 2^{-w}) ≥ 2^{-2k-1}.
64
+ * |ε_a · b| ≤ 2^{-w} · (|b̂|+2^{-w}).
65
+ * |a · ε_b| ≤ |â+2^{-w}| · 2^{-w}.
66
+ * Tomando w = p + 2k + A_bits + 4 acotamos por < 2^{-p}.
67
+ */
68
+ export declare function div(a: CReal, b: CReal): CReal;
69
+ /**
70
+ * sqrt(a) para a ≥ 0. Si a < 0 (detectado con cota), lanza.
71
+ * Implementación: Newton-Raphson en bigint sobre x² = N donde
72
+ * N = aprox(a) a precisión 2·prec + buffer. La raíz cuadrada entera
73
+ * de N da nuestra aproximación a √a a precisión prec.
74
+ */
75
+ export declare function sqrt(a: CReal): CReal;
76
+ /** Raíz cuadrada entera (floor) de n ≥ 0 vía Newton. */
77
+ declare function isqrt(n: bigint): bigint;
78
+ /**
79
+ * compareWithEpsilon(a, b, epsPrec):
80
+ * Si |a - b| < 2^{-epsPrec}, devuelve 0 (indistinguibles).
81
+ * Si a > b + 2^{-epsPrec}, devuelve 1.
82
+ * Si a < b - 2^{-epsPrec}, devuelve -1.
83
+ *
84
+ * Implementación: comparamos aproximaciones a precisión epsPrec + 3.
85
+ * |aw/2^w - a| < 2^{-w}, idem b. Entonces
86
+ * (aw - bw)/2^w está dentro de (a - b) ± 2·2^{-w}.
87
+ * Eligiendo w = epsPrec + 3:
88
+ * • Si (aw - bw) > 2^{w - epsPrec} + 2 = 8 + 2 = 10 (en escala w),
89
+ * entonces a - b > 2^{-epsPrec}, devolvemos 1.
90
+ * • Análogo para -10.
91
+ * • En otro caso, devolvemos 0.
92
+ */
93
+ export declare function compareWithEpsilon(a: CReal, b: CReal, epsilonPrecision: number): -1 | 0 | 1;
94
+ /**
95
+ * toString(r, digits): representación decimal con `digits` dígitos
96
+ * después del punto. Usa precisión binaria suficiente:
97
+ * 2^p > 10^digits ⇔ p > digits · log2(10) ≈ digits · 3.322.
98
+ * Tomamos p = ceil(digits · 4) + 8 para holgura.
99
+ */
100
+ export declare function toString(r: CReal, digits: number): string;
101
+ /**
102
+ * exp(x) = Σ x^k / k!. Para que la serie converja rápido reducimos
103
+ * primero el argumento: escribimos x = q · ln(2) + r con |r| ≤ ln(2)/2
104
+ * usando q = round(x / ln(2)). Luego exp(x) = 2^q · exp(r).
105
+ *
106
+ * Para esta versión inicial hacemos una reducción más simple: si
107
+ * |x| > 1, dividimos por 2^k hasta que |x/2^k| < 1, calculamos
108
+ * exp(x/2^k) por serie, y elevamos al cuadrado k veces (exp(y)² = exp(2y)).
109
+ * Esto mantiene la convergencia de la serie acotada a ~prec términos.
110
+ */
111
+ export declare function exp(x: CReal): CReal;
112
+ export declare function log(x: CReal): CReal;
113
+ export declare function sin(x: CReal): CReal;
114
+ export declare function cos(x: CReal): CReal;
115
+ /**
116
+ * pow(a, b) = exp(b · log(a)) para a > 0.
117
+ * Caso especial: si b es un entero, hacemos exponenciación rápida
118
+ * sobre CReal para evitar log de a (lo que permite a ≤ 0 si b es entero).
119
+ */
120
+ export declare function pow(a: CReal, b: CReal | number): CReal;
121
+ export declare const PI: CReal;
122
+ export declare const E: CReal;
123
+ export declare const SQRT2: CReal;
124
+ /** @internal Exposed for whitebox tests. */
125
+ export declare const __internals: {
126
+ shiftRight: typeof shiftRight;
127
+ bitLength: typeof bitLength;
128
+ isqrt: typeof isqrt;
129
+ pow2: typeof pow2;
130
+ };
131
+ export {};
132
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constructive-reals/index.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,KAAK;IACpB;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAID,uCAAuC;AACvC,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/B;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;GAGG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpC;AA8DD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CASjD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAuB1E;AAID,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGnC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAMnC;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAQ7C;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAQ7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAoB7C;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CA2B7C;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAoBpC;AAED,wDAAwD;AACxD,iBAAS,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAahC;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAW3F;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAWD;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAqCnC;AAwBD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CA0CnC;AA6CD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAiBnC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAenC;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAmBtD;AA2CD,eAAO,MAAM,EAAE,EAAE,KAAuC,CAAC;AAmBzD,eAAO,MAAM,CAAC,EAAE,KAAsC,CAAC;AAYvD,eAAO,MAAM,KAAK,EAAE,KAA0C,CAAC;AAI/D,4CAA4C;AAC5C,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC"}