@stevenvo780/st-lang 4.14.0 → 4.14.1

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 (406) hide show
  1. package/README.md +6 -6
  2. package/dist/ast/nodes.d.ts +50 -0
  3. package/dist/ast/nodes.d.ts.map +1 -1
  4. package/dist/format/stnb/parser.d.ts +14 -0
  5. package/dist/format/stnb/parser.d.ts.map +1 -0
  6. package/dist/format/stnb/parser.js +123 -0
  7. package/dist/format/stnb/parser.js.map +1 -0
  8. package/dist/format/stnb/types.d.ts +45 -0
  9. package/dist/format/stnb/types.d.ts.map +1 -0
  10. package/dist/format/stnb/types.js +7 -0
  11. package/dist/format/stnb/types.js.map +1 -0
  12. package/dist/logic/profile-bridge/index.d.ts.map +1 -1
  13. package/dist/logic/profile-bridge/index.js +20 -3
  14. package/dist/logic/profile-bridge/index.js.map +1 -1
  15. package/dist/logic/profiles/classical/propositional.d.ts.map +1 -1
  16. package/dist/logic/profiles/classical/propositional.js.map +1 -1
  17. package/dist/logic/profiles/ctl/check.d.ts.map +1 -1
  18. package/dist/logic/profiles/ctl/check.js +21 -11
  19. package/dist/logic/profiles/ctl/check.js.map +1 -1
  20. package/dist/logic/profiles/ctl/witness.d.ts.map +1 -1
  21. package/dist/logic/profiles/ctl/witness.js +2 -0
  22. package/dist/logic/profiles/ctl/witness.js.map +1 -1
  23. package/dist/logic/profiles/description-logic/types.d.ts +15 -0
  24. package/dist/logic/profiles/description-logic/types.d.ts.map +1 -1
  25. package/dist/logic/profiles/description-logic/types.js +13 -0
  26. package/dist/logic/profiles/description-logic/types.js.map +1 -1
  27. package/dist/logic/profiles/hybrid-logic/types.d.ts +17 -0
  28. package/dist/logic/profiles/hybrid-logic/types.d.ts.map +1 -1
  29. package/dist/logic/profiles/hybrid-logic/types.js +17 -0
  30. package/dist/logic/profiles/hybrid-logic/types.js.map +1 -1
  31. package/dist/logic/profiles/intuitionistic-nj/kripke.d.ts.map +1 -1
  32. package/dist/logic/profiles/intuitionistic-nj/kripke.js +8 -5
  33. package/dist/logic/profiles/intuitionistic-nj/kripke.js.map +1 -1
  34. package/dist/logic/profiles/ltl-sat/tableau.d.ts +31 -0
  35. package/dist/logic/profiles/ltl-sat/tableau.d.ts.map +1 -1
  36. package/dist/logic/profiles/ltl-sat/tableau.js +18 -0
  37. package/dist/logic/profiles/ltl-sat/tableau.js.map +1 -1
  38. package/dist/logic/profiles/ltl-sat/types.d.ts +15 -0
  39. package/dist/logic/profiles/ltl-sat/types.d.ts.map +1 -1
  40. package/dist/logic/profiles/ltl-sat/types.js +2 -1
  41. package/dist/logic/profiles/ltl-sat/types.js.map +1 -1
  42. package/dist/logic/profiles/modal-frame-axioms/formula.d.ts +10 -0
  43. package/dist/logic/profiles/modal-frame-axioms/formula.d.ts.map +1 -1
  44. package/dist/logic/profiles/modal-frame-axioms/formula.js +10 -0
  45. package/dist/logic/profiles/modal-frame-axioms/formula.js.map +1 -1
  46. package/dist/logic/profiles/mu-calculus/check.d.ts.map +1 -1
  47. package/dist/logic/profiles/mu-calculus/check.js +7 -4
  48. package/dist/logic/profiles/mu-calculus/check.js.map +1 -1
  49. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts +8 -0
  50. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -1
  51. package/dist/logic/profiles/natural-deduction-nk/formula.js +8 -0
  52. package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -1
  53. package/dist/logic/profiles/quantum/index.d.ts.map +1 -1
  54. package/dist/logic/profiles/quantum/index.js +11 -8
  55. package/dist/logic/profiles/quantum/index.js.map +1 -1
  56. package/dist/logic/profiles/sequent-lj/index.d.ts +90 -0
  57. package/dist/logic/profiles/sequent-lj/index.d.ts.map +1 -0
  58. package/dist/logic/profiles/sequent-lj/index.js +903 -0
  59. package/dist/logic/profiles/sequent-lj/index.js.map +1 -0
  60. package/dist/logic/profiles/shared/tableau-engine.d.ts.map +1 -1
  61. package/dist/logic/profiles/shared/tableau-engine.js +0 -17
  62. package/dist/logic/profiles/shared/tableau-engine.js.map +1 -1
  63. package/dist/namespaces/proof-systems.d.ts +1 -1
  64. package/dist/namespaces/proof-systems.d.ts.map +1 -1
  65. package/dist/namespaces/proof-systems.js.map +1 -1
  66. package/dist/namespaces/semantics.d.ts +1 -1
  67. package/dist/namespaces/semantics.d.ts.map +1 -1
  68. package/dist/namespaces/semantics.js.map +1 -1
  69. package/dist/proof-systems/distributed-exchange/index.d.ts +29 -0
  70. package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -1
  71. package/dist/proof-systems/distributed-exchange/index.js +18 -0
  72. package/dist/proof-systems/distributed-exchange/index.js.map +1 -1
  73. package/dist/proof-systems/fol-prover/types.d.ts +16 -0
  74. package/dist/proof-systems/fol-prover/types.d.ts.map +1 -1
  75. package/dist/proof-systems/fol-prover/types.js +7 -0
  76. package/dist/proof-systems/fol-prover/types.js.map +1 -1
  77. package/dist/proof-systems/fol-prover-advanced/index.d.ts +3 -3
  78. package/dist/proof-systems/fol-prover-advanced/index.d.ts.map +1 -1
  79. package/dist/proof-systems/fol-prover-advanced/index.js.map +1 -1
  80. package/dist/proof-systems/fol-prover-advanced/ordering.js +1 -1
  81. package/dist/proof-systems/fol-prover-advanced/prover.d.ts.map +1 -1
  82. package/dist/proof-systems/fol-prover-advanced/prover.js +19 -12
  83. package/dist/proof-systems/fol-prover-advanced/prover.js.map +1 -1
  84. package/dist/proof-systems/fol-prover-advanced/resolve.d.ts.map +1 -1
  85. package/dist/proof-systems/fol-prover-advanced/resolve.js +7 -7
  86. package/dist/proof-systems/fol-prover-advanced/resolve.js.map +1 -1
  87. package/dist/proof-systems/fol-prover-advanced/subsumption.d.ts.map +1 -1
  88. package/dist/proof-systems/fol-prover-advanced/subsumption.js.map +1 -1
  89. package/dist/proof-systems/fol-prover-advanced/types.d.ts +12 -0
  90. package/dist/proof-systems/fol-prover-advanced/types.d.ts.map +1 -1
  91. package/dist/proof-systems/fol-prover-advanced/unify.js +2 -2
  92. package/dist/proof-systems/fol-prover-equality/term-utils.d.ts +46 -0
  93. package/dist/proof-systems/fol-prover-equality/term-utils.d.ts.map +1 -1
  94. package/dist/proof-systems/fol-prover-equality/term-utils.js +46 -0
  95. package/dist/proof-systems/fol-prover-equality/term-utils.js.map +1 -1
  96. package/dist/proof-systems/proof-nets/correctness.d.ts.map +1 -1
  97. package/dist/proof-systems/proof-nets/correctness.js +24 -12
  98. package/dist/proof-systems/proof-nets/correctness.js.map +1 -1
  99. package/dist/proof-systems/proof-nets/types.d.ts +18 -0
  100. package/dist/proof-systems/proof-nets/types.d.ts.map +1 -1
  101. package/dist/proof-systems/proof-nets/types.js +6 -0
  102. package/dist/proof-systems/proof-nets/types.js.map +1 -1
  103. package/dist/proof-systems/tableau-framework/TableauProver.d.ts.map +1 -1
  104. package/dist/proof-systems/tableau-framework/TableauProver.js +5 -5
  105. package/dist/proof-systems/tableau-framework/TableauProver.js.map +1 -1
  106. package/dist/proof-systems/tableau-framework/propositional.d.ts.map +1 -1
  107. package/dist/proof-systems/tableau-framework/propositional.js +21 -21
  108. package/dist/proof-systems/tableau-framework/propositional.js.map +1 -1
  109. package/dist/reasoning/ban-logic/terms.d.ts +24 -0
  110. package/dist/reasoning/ban-logic/terms.d.ts.map +1 -1
  111. package/dist/reasoning/ban-logic/terms.js +24 -0
  112. package/dist/reasoning/ban-logic/terms.js.map +1 -1
  113. package/dist/reasoning/bayesian/factor.js +8 -8
  114. package/dist/reasoning/bayesian/factor.js.map +1 -1
  115. package/dist/reasoning/bayesian/inference.d.ts.map +1 -1
  116. package/dist/reasoning/bayesian/inference.js +11 -5
  117. package/dist/reasoning/bayesian/inference.js.map +1 -1
  118. package/dist/reasoning/combinatorics/generators.js.map +1 -1
  119. package/dist/reasoning/combinatorics/index.d.ts +3 -3
  120. package/dist/reasoning/combinatorics/index.d.ts.map +1 -1
  121. package/dist/reasoning/combinatorics/index.js.map +1 -1
  122. package/dist/reasoning/combinatorics/set-partitions.js.map +1 -1
  123. package/dist/reasoning/combinatorics/special-numbers.d.ts.map +1 -1
  124. package/dist/reasoning/combinatorics/special-numbers.js.map +1 -1
  125. package/dist/reasoning/constructive-analysis/cauchy.js +2 -2
  126. package/dist/reasoning/constructive-analysis/compact.js +1 -1
  127. package/dist/reasoning/constructive-analysis/continuity.d.ts.map +1 -1
  128. package/dist/reasoning/constructive-analysis/continuity.js +4 -4
  129. package/dist/reasoning/constructive-analysis/continuity.js.map +1 -1
  130. package/dist/reasoning/constructive-analysis/index.d.ts.map +1 -1
  131. package/dist/reasoning/constructive-analysis/index.js.map +1 -1
  132. package/dist/reasoning/constructive-analysis/ivt.d.ts.map +1 -1
  133. package/dist/reasoning/constructive-analysis/ivt.js +2 -2
  134. package/dist/reasoning/constructive-analysis/ivt.js.map +1 -1
  135. package/dist/reasoning/constructive-reals/index.d.ts.map +1 -1
  136. package/dist/reasoning/constructive-reals/index.js +4 -8
  137. package/dist/reasoning/constructive-reals/index.js.map +1 -1
  138. package/dist/reasoning/galois-fields/index.d.ts +64 -0
  139. package/dist/reasoning/galois-fields/index.d.ts.map +1 -1
  140. package/dist/reasoning/galois-fields/index.js +56 -6
  141. package/dist/reasoning/galois-fields/index.js.map +1 -1
  142. package/dist/reasoning/graph-theory/index.d.ts +31 -0
  143. package/dist/reasoning/graph-theory/index.d.ts.map +1 -1
  144. package/dist/reasoning/graph-theory/index.js +28 -10
  145. package/dist/reasoning/graph-theory/index.js.map +1 -1
  146. package/dist/reasoning/hoare-logic/index.d.ts +34 -0
  147. package/dist/reasoning/hoare-logic/index.d.ts.map +1 -1
  148. package/dist/reasoning/hoare-logic/index.js +26 -0
  149. package/dist/reasoning/hoare-logic/index.js.map +1 -1
  150. package/dist/reasoning/hyperreal/index.d.ts +30 -0
  151. package/dist/reasoning/hyperreal/index.d.ts.map +1 -1
  152. package/dist/reasoning/hyperreal/index.js +25 -0
  153. package/dist/reasoning/hyperreal/index.js.map +1 -1
  154. package/dist/reasoning/information-theory/index.d.ts +34 -0
  155. package/dist/reasoning/information-theory/index.d.ts.map +1 -1
  156. package/dist/reasoning/information-theory/index.js +27 -44
  157. package/dist/reasoning/information-theory/index.js.map +1 -1
  158. package/dist/reasoning/lemma-synthesis/index.d.ts +36 -0
  159. package/dist/reasoning/lemma-synthesis/index.d.ts.map +1 -1
  160. package/dist/reasoning/lemma-synthesis/index.js +12 -0
  161. package/dist/reasoning/lemma-synthesis/index.js.map +1 -1
  162. package/dist/reasoning/linear-algebra/index.d.ts +38 -0
  163. package/dist/reasoning/linear-algebra/index.d.ts.map +1 -1
  164. package/dist/reasoning/linear-algebra/index.js +34 -5
  165. package/dist/reasoning/linear-algebra/index.js.map +1 -1
  166. package/dist/reasoning/markov-logic/grounding.js +1 -1
  167. package/dist/reasoning/markov-logic/grounding.js.map +1 -1
  168. package/dist/reasoning/markov-logic/inference.js +1 -1
  169. package/dist/reasoning/markov-logic/inference.js.map +1 -1
  170. package/dist/reasoning/order-theory/index.d.ts +121 -0
  171. package/dist/reasoning/order-theory/index.d.ts.map +1 -0
  172. package/dist/reasoning/order-theory/index.js +562 -0
  173. package/dist/reasoning/order-theory/index.js.map +1 -0
  174. package/dist/reasoning/peano-arithmetic/index.d.ts +114 -0
  175. package/dist/reasoning/peano-arithmetic/index.d.ts.map +1 -0
  176. package/dist/reasoning/peano-arithmetic/index.js +650 -0
  177. package/dist/reasoning/peano-arithmetic/index.js.map +1 -0
  178. package/dist/reasoning/polynomial-ring/index.d.ts +80 -0
  179. package/dist/reasoning/polynomial-ring/index.d.ts.map +1 -1
  180. package/dist/reasoning/polynomial-ring/index.js +75 -0
  181. package/dist/reasoning/polynomial-ring/index.js.map +1 -1
  182. package/dist/reasoning/separation-logic/index.d.ts +30 -0
  183. package/dist/reasoning/separation-logic/index.d.ts.map +1 -1
  184. package/dist/reasoning/separation-logic/index.js +21 -0
  185. package/dist/reasoning/separation-logic/index.js.map +1 -1
  186. package/dist/reasoning/set-theory/hf-functions.js +3 -3
  187. package/dist/reasoning/set-theory/hf-sets.js +1 -1
  188. package/dist/reasoning/set-theory/index.d.ts +3 -3
  189. package/dist/reasoning/set-theory/index.d.ts.map +1 -1
  190. package/dist/reasoning/set-theory/zfc-axioms.js +4 -4
  191. package/dist/reasoning/tactic-dsl/tactics.d.ts +87 -0
  192. package/dist/reasoning/tactic-dsl/tactics.d.ts.map +1 -1
  193. package/dist/reasoning/tactic-dsl/tactics.js +86 -36
  194. package/dist/reasoning/tactic-dsl/tactics.js.map +1 -1
  195. package/dist/reasoning/topology/index.d.ts +81 -0
  196. package/dist/reasoning/topology/index.d.ts.map +1 -1
  197. package/dist/reasoning/topology/index.js +69 -45
  198. package/dist/reasoning/topology/index.js.map +1 -1
  199. package/dist/runtime/countermodel-min/minimize.js +0 -0
  200. package/dist/runtime/countermodel-min/minimize.js.map +1 -1
  201. package/dist/runtime/csp-hoare/semantics.d.ts +12 -0
  202. package/dist/runtime/csp-hoare/semantics.d.ts.map +1 -1
  203. package/dist/runtime/csp-hoare/semantics.js +12 -0
  204. package/dist/runtime/csp-hoare/semantics.js.map +1 -1
  205. package/dist/runtime/symbolic-diff/constructors.d.ts +20 -0
  206. package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -1
  207. package/dist/runtime/symbolic-diff/constructors.js +20 -0
  208. package/dist/runtime/symbolic-diff/constructors.js.map +1 -1
  209. package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -1
  210. package/dist/runtime/term-rewriting/term-utils.js +33 -2
  211. package/dist/runtime/term-rewriting/term-utils.js.map +1 -1
  212. package/dist/runtime/typecheck/checker.js +2 -2
  213. package/dist/runtime/typecheck/checker.js.map +1 -1
  214. package/dist/runtime/typecheck/levenshtein.js +1 -1
  215. package/dist/runtime/typecheck/levenshtein.js.map +1 -1
  216. package/dist/semantics/categorical/fin-set.d.ts.map +1 -1
  217. package/dist/semantics/categorical/fin-set.js +8 -1
  218. package/dist/semantics/categorical/fin-set.js.map +1 -1
  219. package/dist/semantics/categorical/free.d.ts.map +1 -1
  220. package/dist/semantics/categorical/free.js +8 -2
  221. package/dist/semantics/categorical/free.js.map +1 -1
  222. package/dist/semantics/categorical/limits.d.ts.map +1 -1
  223. package/dist/semantics/categorical/limits.js +13 -4
  224. package/dist/semantics/categorical/limits.js.map +1 -1
  225. package/dist/semantics/categorical/monoidal.d.ts.map +1 -1
  226. package/dist/semantics/categorical/monoidal.js +3 -1
  227. package/dist/semantics/categorical/monoidal.js.map +1 -1
  228. package/dist/semantics/text-layer/compiler.d.ts +46 -0
  229. package/dist/semantics/text-layer/compiler.d.ts.map +1 -1
  230. package/dist/semantics/text-layer/compiler.js +46 -11
  231. package/dist/semantics/text-layer/compiler.js.map +1 -1
  232. package/dist/solver/cdcl-v2/index.d.ts +8 -0
  233. package/dist/solver/cdcl-v2/index.d.ts.map +1 -1
  234. package/dist/solver/cdcl-v2/index.js +8 -0
  235. package/dist/solver/cdcl-v2/index.js.map +1 -1
  236. package/dist/solver/smt-z3/z3-wasm-backend.d.ts +0 -1
  237. package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -1
  238. package/dist/solver/smt-z3/z3-wasm-backend.js +2 -3
  239. package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -1
  240. package/dist/tests/agora-integration-fixtures.test.js +7 -2
  241. package/dist/tests/agora-integration-fixtures.test.js.map +1 -1
  242. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts +2 -0
  243. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts.map +1 -0
  244. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js +123 -0
  245. package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js.map +1 -0
  246. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts +2 -0
  247. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts.map +1 -0
  248. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js +172 -0
  249. package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js.map +1 -0
  250. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts +2 -0
  251. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts.map +1 -0
  252. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js +326 -0
  253. package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js.map +1 -0
  254. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts +2 -0
  255. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts.map +1 -0
  256. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js +418 -0
  257. package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js.map +1 -0
  258. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts +2 -0
  259. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts.map +1 -0
  260. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js +162 -0
  261. package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js.map +1 -0
  262. package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts +2 -0
  263. package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts.map +1 -0
  264. package/dist/tests/coverage-90/coverage-90-nk-prover.test.js +104 -0
  265. package/dist/tests/coverage-90/coverage-90-nk-prover.test.js.map +1 -0
  266. package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts +2 -0
  267. package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts.map +1 -0
  268. package/dist/tests/coverage-90/coverage-90-parser-deep.test.js +262 -0
  269. package/dist/tests/coverage-90/coverage-90-parser-deep.test.js.map +1 -0
  270. package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts +2 -0
  271. package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts.map +1 -0
  272. package/dist/tests/coverage-90/coverage-90-sat-engines.test.js +101 -0
  273. package/dist/tests/coverage-90/coverage-90-sat-engines.test.js.map +1 -0
  274. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts +2 -0
  275. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts.map +1 -0
  276. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js +219 -0
  277. package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js.map +1 -0
  278. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts +2 -0
  279. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts.map +1 -0
  280. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js +154 -0
  281. package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js.map +1 -0
  282. package/dist/tests/coverage-95/first-order.test.js.map +1 -1
  283. package/dist/tests/coverage-95/fol-prover.test.js.map +1 -1
  284. package/dist/tests/integration/cross-modules.test.js +43 -19
  285. package/dist/tests/integration/cross-modules.test.js.map +1 -1
  286. package/dist/tests/logic/ctl/check.test.js.map +1 -1
  287. package/dist/tests/logic/profile-bridge/translations.test.js +3 -3
  288. package/dist/tests/logic/profile-bridge/translations.test.js.map +1 -1
  289. package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts +2 -0
  290. package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts.map +1 -0
  291. package/dist/tests/logic/profiles/sequent-lj/lj.test.js +400 -0
  292. package/dist/tests/logic/profiles/sequent-lj/lj.test.js.map +1 -0
  293. package/dist/tests/logic/sequent-g3/prover.test.js.map +1 -1
  294. package/dist/tests/logic/substructural/prover.test.js.map +1 -1
  295. package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js +40 -13
  296. package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js.map +1 -1
  297. package/dist/tests/proof-systems/higher-order-unify/ho-unify.test.js.map +1 -1
  298. package/dist/tests/proof-systems/tableau-framework/tableau.test.js +8 -8
  299. package/dist/tests/proof-systems/tableau-framework/tableau.test.js.map +1 -1
  300. package/dist/tests/properties/agm.property.test.js +1 -1
  301. package/dist/tests/properties/agm.property.test.js.map +1 -1
  302. package/dist/tests/properties/anti-unification.property.test.js.map +1 -1
  303. package/dist/tests/properties/argumentation.property.test.js.map +1 -1
  304. package/dist/tests/properties/bisimulation.property.test.js.map +1 -1
  305. package/dist/tests/properties/cdcl.property.test.js.map +1 -1
  306. package/dist/tests/properties/coinduction.property.test.js.map +1 -1
  307. package/dist/tests/properties/constructive-reals.property.test.js.map +1 -1
  308. package/dist/tests/properties/csp.property.test.js +1 -3
  309. package/dist/tests/properties/csp.property.test.js.map +1 -1
  310. package/dist/tests/properties/generators.d.ts +1 -1
  311. package/dist/tests/properties/generators.d.ts.map +1 -1
  312. package/dist/tests/properties/generators.js +22 -30
  313. package/dist/tests/properties/generators.js.map +1 -1
  314. package/dist/tests/properties/intuit-nj.property.test.js +3 -1
  315. package/dist/tests/properties/intuit-nj.property.test.js.map +1 -1
  316. package/dist/tests/properties/lambda-calc.property.test.js.map +1 -1
  317. package/dist/tests/properties/mln.property.test.js +1 -3
  318. package/dist/tests/properties/mln.property.test.js.map +1 -1
  319. package/dist/tests/properties/planning.property.test.js.map +1 -1
  320. package/dist/tests/properties/profile-bridge.property.test.js.map +1 -1
  321. package/dist/tests/properties/theorem-cache.property.test.js.map +1 -1
  322. package/dist/tests/protocol-text-layer.test.js.map +1 -1
  323. package/dist/tests/reasoning/combinatorics/combinatorics.test.js +1 -1
  324. package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js +9 -9
  325. package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js.map +1 -1
  326. package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js +80 -38
  327. package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js.map +1 -1
  328. package/dist/tests/reasoning/order-theory/order-theory.test.d.ts +2 -0
  329. package/dist/tests/reasoning/order-theory/order-theory.test.d.ts.map +1 -0
  330. package/dist/tests/reasoning/order-theory/order-theory.test.js +211 -0
  331. package/dist/tests/reasoning/order-theory/order-theory.test.js.map +1 -0
  332. package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts +2 -0
  333. package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts.map +1 -0
  334. package/dist/tests/reasoning/peano-arithmetic/peano.test.js +159 -0
  335. package/dist/tests/reasoning/peano-arithmetic/peano.test.js.map +1 -0
  336. package/dist/tests/reasoning/set-theory/hf-functions.test.js +11 -11
  337. package/dist/tests/reasoning/set-theory/zfc-axioms.test.js +1 -1
  338. package/dist/tests/semantics/text-layer-v2/claim-graph.test.js.map +1 -1
  339. package/dist/tests/solver/smt-lib/emitter.test.js.map +1 -1
  340. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -1
  341. package/dist/tests/tooling/test-harness/test-harness.test.js +9 -6
  342. package/dist/tests/tooling/test-harness/test-harness.test.js.map +1 -1
  343. package/dist/tooling/lsp/types.d.ts +13 -0
  344. package/dist/tooling/lsp/types.d.ts.map +1 -1
  345. package/dist/tooling/lsp/types.js +1 -0
  346. package/dist/tooling/lsp/types.js.map +1 -1
  347. package/dist/tooling/test-harness/combinators.d.ts.map +1 -1
  348. package/dist/tooling/test-harness/combinators.js +4 -4
  349. package/dist/tooling/test-harness/combinators.js.map +1 -1
  350. package/dist/tooling/test-harness/coverage.js +1 -1
  351. package/dist/tooling/test-harness/generators.d.ts.map +1 -1
  352. package/dist/tooling/test-harness/generators.js.map +1 -1
  353. package/dist/tooling/test-harness/index.d.ts +1 -1
  354. package/dist/tooling/test-harness/index.d.ts.map +1 -1
  355. package/dist/tooling/test-harness/index.js.map +1 -1
  356. package/dist/tooling/test-harness/snapshot.d.ts.map +1 -1
  357. package/dist/tooling/test-harness/snapshot.js +2 -2
  358. package/dist/tooling/test-harness/snapshot.js.map +1 -1
  359. package/dist/type-theory/cubical/types.d.ts +25 -0
  360. package/dist/type-theory/cubical/types.d.ts.map +1 -1
  361. package/dist/type-theory/cubical/types.js +20 -0
  362. package/dist/type-theory/cubical/types.js.map +1 -1
  363. package/dist/type-theory/curry-howard/types.d.ts +27 -0
  364. package/dist/type-theory/curry-howard/types.d.ts.map +1 -1
  365. package/dist/type-theory/curry-howard/types.js +18 -0
  366. package/dist/type-theory/curry-howard/types.js.map +1 -1
  367. package/dist/type-theory/hindley-milner/substitution.d.ts +39 -0
  368. package/dist/type-theory/hindley-milner/substitution.d.ts.map +1 -1
  369. package/dist/type-theory/hindley-milner/substitution.js +37 -0
  370. package/dist/type-theory/hindley-milner/substitution.js.map +1 -1
  371. package/dist/type-theory/hindley-milner/types.d.ts +25 -0
  372. package/dist/type-theory/hindley-milner/types.d.ts.map +1 -1
  373. package/dist/type-theory/hindley-milner/types.js +22 -2
  374. package/dist/type-theory/hindley-milner/types.js.map +1 -1
  375. package/dist/type-theory/hol/rules.d.ts +36 -0
  376. package/dist/type-theory/hol/rules.d.ts.map +1 -1
  377. package/dist/type-theory/hol/rules.js +36 -0
  378. package/dist/type-theory/hol/rules.js.map +1 -1
  379. package/dist/type-theory/hott/types.d.ts +32 -0
  380. package/dist/type-theory/hott/types.d.ts.map +1 -1
  381. package/dist/type-theory/hott/types.js +31 -1
  382. package/dist/type-theory/hott/types.js.map +1 -1
  383. package/dist/type-theory/lambda-cube/types.d.ts +17 -0
  384. package/dist/type-theory/lambda-cube/types.d.ts.map +1 -1
  385. package/dist/type-theory/lambda-cube/types.js +13 -0
  386. package/dist/type-theory/lambda-cube/types.js.map +1 -1
  387. package/dist/type-theory/mltt/types.d.ts +19 -0
  388. package/dist/type-theory/mltt/types.d.ts.map +1 -1
  389. package/dist/type-theory/mltt/types.js +15 -1
  390. package/dist/type-theory/mltt/types.js.map +1 -1
  391. package/dist/type-theory/nbe/types.d.ts +21 -0
  392. package/dist/type-theory/nbe/types.d.ts.map +1 -1
  393. package/dist/type-theory/nbe/types.js +13 -1
  394. package/dist/type-theory/nbe/types.js.map +1 -1
  395. package/dist/type-theory/refinement-types/types.d.ts +38 -0
  396. package/dist/type-theory/refinement-types/types.d.ts.map +1 -1
  397. package/dist/type-theory/refinement-types/types.js +35 -0
  398. package/dist/type-theory/refinement-types/types.js.map +1 -1
  399. package/dist/type-theory/system-f/types.d.ts +30 -0
  400. package/dist/type-theory/system-f/types.d.ts.map +1 -1
  401. package/dist/type-theory/system-f/types.js +24 -3
  402. package/dist/type-theory/system-f/types.js.map +1 -1
  403. package/dist/types/index.d.ts +42 -0
  404. package/dist/types/index.d.ts.map +1 -1
  405. package/dist/types/index.js.map +1 -1
  406. package/package.json +1 -1
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Término de Martin-Löf Type Theory (MLTT): tipos y términos comparten el mismo universo.
3
+ * Cubre variables, universos jerárquicos, Π, Σ, λ, app, pares, identidad, Nat y constructores numéricos.
4
+ */
1
5
  export type MLTTTerm = {
2
6
  kind: 'var';
3
7
  name: string;
@@ -49,20 +53,35 @@ export type MLTTTerm = {
49
53
  kind: 'succ';
50
54
  arg: MLTTTerm;
51
55
  };
56
+ /** Variable. */
52
57
  export declare const mVar: (name: string) => MLTTTerm;
58
+ /** Universo `Type level`. */
53
59
  export declare const mUniverse: (level?: number) => MLTTTerm;
60
+ /** Tipo Π dependiente `Π bind:domain. codomain`. */
54
61
  export declare const mPi: (bind: string, domain: MLTTTerm, codomain: MLTTTerm) => MLTTTerm;
62
+ /** Abstracción dependiente `λ bind:domain. body`. */
55
63
  export declare const mLam: (bind: string, domain: MLTTTerm, body: MLTTTerm) => MLTTTerm;
64
+ /** Aplicación `fn arg`. */
56
65
  export declare const mApp: (fn: MLTTTerm, arg: MLTTTerm) => MLTTTerm;
66
+ /** Tipo Σ dependiente `Σ bind:first. second`. */
57
67
  export declare const mSigma: (bind: string, first: MLTTTerm, second: MLTTTerm) => MLTTTerm;
68
+ /** Par dependiente `⟨fst, snd⟩`. */
58
69
  export declare const mPair: (fst: MLTTTerm, snd: MLTTTerm) => MLTTTerm;
70
+ /** Proyección izquierda `fst pair`. */
59
71
  export declare const mFst: (pair: MLTTTerm) => MLTTTerm;
72
+ /** Proyección derecha `snd pair`. */
60
73
  export declare const mSnd: (pair: MLTTTerm) => MLTTTerm;
74
+ /** Tipo identidad `Id(type, left, right)`. */
61
75
  export declare const mId: (type: MLTTTerm, left: MLTTTerm, right: MLTTTerm) => MLTTTerm;
76
+ /** Prueba de reflexividad `refl(term)`. */
62
77
  export declare const mRefl: (term: MLTTTerm) => MLTTTerm;
78
+ /** Tipo de los números naturales `Nat`. */
63
79
  export declare const mNat: () => MLTTTerm;
80
+ /** Constructor `zero : Nat`. */
64
81
  export declare const mZero: () => MLTTTerm;
82
+ /** Sucesor `succ(arg) : Nat`. */
65
83
  export declare const mSucc: (arg: MLTTTerm) => MLTTTerm;
84
+ /** Flecha no-dependiente `from → to` (azúcar: `Π _ : from. to`). */
66
85
  export declare const mArrow: (from: MLTTTerm, to: MLTTTerm) => MLTTTerm;
67
86
  /** ¿`name` aparece libre en `term`? */
68
87
  export declare function occursFree(name: string, term: MLTTTerm): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/type-theory/mltt/types.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,CAAC;AAIpC,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,QAAmC,CAAC;AACxE,eAAO,MAAM,SAAS,GAAI,cAAS,KAAG,QAAyC,CAAC;AAChF,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,EAAE,QAAQ,QAAQ,EAAE,UAAU,QAAQ,KAAG,QAKvE,CAAC;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,EAAE,QAAQ,QAAQ,EAAE,MAAM,QAAQ,KAAG,QAKpE,CAAC;AACH,eAAO,MAAM,IAAI,GAAI,IAAI,QAAQ,EAAE,KAAK,QAAQ,KAAG,QAAsC,CAAC;AAC1F,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,OAAO,QAAQ,EAAE,QAAQ,QAAQ,KAAG,QAKvE,CAAC;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,QAAQ,EAAE,KAAK,QAAQ,KAAG,QAAwC,CAAC;AAC9F,eAAO,MAAM,IAAI,GAAI,MAAM,QAAQ,KAAG,QAAmC,CAAC;AAC1E,eAAO,MAAM,IAAI,GAAI,MAAM,QAAQ,KAAG,QAAmC,CAAC;AAC1E,eAAO,MAAM,GAAG,GAAI,MAAM,QAAQ,EAAE,MAAM,QAAQ,EAAE,OAAO,QAAQ,KAAG,QAKpE,CAAC;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,QAAQ,KAAG,QAAoC,CAAC;AAC5E,eAAO,MAAM,IAAI,QAAO,QAA6B,CAAC;AACtD,eAAO,MAAM,KAAK,QAAO,QAA8B,CAAC;AACxD,eAAO,MAAM,KAAK,GAAI,KAAK,QAAQ,KAAG,QAAmC,CAAC;AAG1E,eAAO,MAAM,MAAM,GAAI,MAAM,QAAQ,EAAE,IAAI,QAAQ,KAAG,QAA8B,CAAC;AAIrF,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAoChE;AAED,oCAAoC;AACpC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAmDlF;AAID,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAkChD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/type-theory/mltt/types.ts"],"names":[],"mappings":"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"}
@@ -25,10 +25,13 @@ exports.occursFree = occursFree;
25
25
  exports.freeVars = freeVars;
26
26
  exports.termToString = termToString;
27
27
  // ---------- Constructores convenientes ----------
28
+ /** Variable. */
28
29
  const mVar = (name) => ({ kind: 'var', name });
29
30
  exports.mVar = mVar;
31
+ /** Universo `Type level`. */
30
32
  const mUniverse = (level = 0) => ({ kind: 'universe', level });
31
33
  exports.mUniverse = mUniverse;
34
+ /** Tipo Π dependiente `Π bind:domain. codomain`. */
32
35
  const mPi = (bind, domain, codomain) => ({
33
36
  kind: 'pi',
34
37
  bind,
@@ -36,6 +39,7 @@ const mPi = (bind, domain, codomain) => ({
36
39
  codomain,
37
40
  });
38
41
  exports.mPi = mPi;
42
+ /** Abstracción dependiente `λ bind:domain. body`. */
39
43
  const mLam = (bind, domain, body) => ({
40
44
  kind: 'lam',
41
45
  bind,
@@ -43,8 +47,10 @@ const mLam = (bind, domain, body) => ({
43
47
  body,
44
48
  });
45
49
  exports.mLam = mLam;
50
+ /** Aplicación `fn arg`. */
46
51
  const mApp = (fn, arg) => ({ kind: 'app', fn, arg });
47
52
  exports.mApp = mApp;
53
+ /** Tipo Σ dependiente `Σ bind:first. second`. */
48
54
  const mSigma = (bind, first, second) => ({
49
55
  kind: 'sigma',
50
56
  bind,
@@ -52,12 +58,16 @@ const mSigma = (bind, first, second) => ({
52
58
  second,
53
59
  });
54
60
  exports.mSigma = mSigma;
61
+ /** Par dependiente `⟨fst, snd⟩`. */
55
62
  const mPair = (fst, snd) => ({ kind: 'pair', fst, snd });
56
63
  exports.mPair = mPair;
64
+ /** Proyección izquierda `fst pair`. */
57
65
  const mFst = (pair) => ({ kind: 'fst', pair });
58
66
  exports.mFst = mFst;
67
+ /** Proyección derecha `snd pair`. */
59
68
  const mSnd = (pair) => ({ kind: 'snd', pair });
60
69
  exports.mSnd = mSnd;
70
+ /** Tipo identidad `Id(type, left, right)`. */
61
71
  const mId = (type, left, right) => ({
62
72
  kind: 'identity',
63
73
  type,
@@ -65,15 +75,19 @@ const mId = (type, left, right) => ({
65
75
  right,
66
76
  });
67
77
  exports.mId = mId;
78
+ /** Prueba de reflexividad `refl(term)`. */
68
79
  const mRefl = (term) => ({ kind: 'refl', term });
69
80
  exports.mRefl = mRefl;
81
+ /** Tipo de los números naturales `Nat`. */
70
82
  const mNat = () => ({ kind: 'nat' });
71
83
  exports.mNat = mNat;
84
+ /** Constructor `zero : Nat`. */
72
85
  const mZero = () => ({ kind: 'zero' });
73
86
  exports.mZero = mZero;
87
+ /** Sucesor `succ(arg) : Nat`. */
74
88
  const mSucc = (arg) => ({ kind: 'succ', arg });
75
89
  exports.mSucc = mSucc;
76
- // Arrow no-dependiente: Π (_ : A). B con B sin referencia a _.
90
+ /** Flecha no-dependiente `from → to` (azúcar: _ : from. to`). */
77
91
  const mArrow = (from, to) => (0, exports.mPi)('_', from, to);
78
92
  exports.mArrow = mArrow;
79
93
  // ---------- Helpers de inspección ----------
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/type-theory/mltt/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/type-theory/mltt/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ /** Tipo del STLC para NbE: tipo base `base` o flecha `from → to`. */
1
2
  export type Type = {
2
3
  kind: 'base';
3
4
  name: string;
@@ -6,6 +7,7 @@ export type Type = {
6
7
  from: Type;
7
8
  to: Type;
8
9
  };
10
+ /** Término sintáctico del STLC: variable, abstracción λ o aplicación. */
9
11
  export type Term = {
10
12
  kind: 'var';
11
13
  name: string;
@@ -19,6 +21,10 @@ export type Term = {
19
21
  fn: Term;
20
22
  arg: Term;
21
23
  };
24
+ /**
25
+ * Valor semántico del NbE para STLC.
26
+ * `'neutral'` = variable libre o aplicación bloqueada; `'closure'` = λ capturada con entorno léxico.
27
+ */
22
28
  export type Value = {
23
29
  kind: 'neutral';
24
30
  head: Neutral;
@@ -29,6 +35,7 @@ export type Value = {
29
35
  paramType: Type;
30
36
  body: Term;
31
37
  };
38
+ /** Término neutral: variable libre o aplicación cuya cabeza es neutral. */
32
39
  export type Neutral = {
33
40
  kind: 'var';
34
41
  name: string;
@@ -37,18 +44,32 @@ export type Neutral = {
37
44
  head: Neutral;
38
45
  arg: Value;
39
46
  };
47
+ /** Entorno léxico para NbE: mapa de variables a valores semánticos. */
40
48
  export type Env = Map<string, Value>;
49
+ /** Tipo base (primitivo) con nombre. */
41
50
  export declare const tBase: (name: string) => Type;
51
+ /** Tipo flecha `from → to`. */
42
52
  export declare const tArr: (from: Type, to: Type) => Type;
53
+ /** Variable sintáctica. */
43
54
  export declare const v: (name: string) => Term;
55
+ /** Abstracción λ sintáctica. */
44
56
  export declare const lam: (param: string, paramType: Type, body: Term) => Term;
57
+ /** Aplicación binaria `fn arg`. */
45
58
  export declare const ap: (fn: Term, arg: Term) => Term;
59
+ /** Aplicación n-aria: `apN(f, a, b, c)` = `((f a) b) c`. */
46
60
  export declare const apN: (head: Term, ...args: Term[]) => Term;
61
+ /** Valor neutral de una variable libre `name`. */
47
62
  export declare const vNeutralVar: (name: string) => Value;
63
+ /** Valor neutral a partir de una cabeza neutral. */
48
64
  export declare const vNeutral: (head: Neutral) => Value;
65
+ /** Valor closure (λ semántica) con entorno léxico. */
49
66
  export declare const vClosure: (env: Env, param: string, paramType: Type, body: Term) => Value;
67
+ /** Igualdad α-equivalente entre términos STLC (renombra binders a posiciones canónicas). */
50
68
  export declare function alphaEq(a: Term, b: Term): boolean;
69
+ /** Igualdad estructural entre dos tipos STLC. */
51
70
  export declare function typeEq(a: Type, b: Type): boolean;
71
+ /** Serializa un tipo STLC a texto (flechas asociativas a la derecha). */
52
72
  export declare function typeToString(t: Type): string;
73
+ /** Serializa un término STLC a texto legible. */
53
74
  export declare function termToString(t: Term): string;
54
75
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/type-theory/nbe/types.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAE5F,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;AAMzC,MAAM,MAAM,KAAK,GACb;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjG,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAGrC,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,IAAgC,CAAC;AACtE,eAAO,MAAM,IAAI,GAAI,MAAM,IAAI,EAAE,IAAI,IAAI,KAAG,IAAqC,CAAC;AAElF,eAAO,MAAM,CAAC,GAAI,MAAM,MAAM,KAAG,IAA+B,CAAC;AACjE,eAAO,MAAM,GAAG,GAAI,OAAO,MAAM,EAAE,WAAW,IAAI,EAAE,MAAM,IAAI,KAAG,IAK/D,CAAC;AACH,eAAO,MAAM,EAAE,GAAI,IAAI,IAAI,EAAE,KAAK,IAAI,KAAG,IAAkC,CAAC;AAC5E,eAAO,MAAM,GAAG,GAAI,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,KAAG,IAA6B,CAAC;AAGhF,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,KAGzC,CAAC;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,OAAO,KAAG,KAAoC,CAAC;AAC9E,eAAO,MAAM,QAAQ,GAAI,KAAK,GAAG,EAAE,OAAO,MAAM,EAAE,WAAW,IAAI,EAAE,MAAM,IAAI,KAAG,KAM9E,CAAC;AAIH,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEjD;AAsCD,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAOhD;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAK5C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAY5C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/type-theory/nbe/types.ts"],"names":[],"mappings":"AAUA,qEAAqE;AACrE,MAAM,MAAM,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAE5F,yEAAyE;AACzE,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,KAAK,GACb;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9E,2EAA2E;AAC3E,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjG,uEAAuE;AACvE,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAGrC,wCAAwC;AACxC,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,IAAgC,CAAC;AACtE,+BAA+B;AAC/B,eAAO,MAAM,IAAI,GAAI,MAAM,IAAI,EAAE,IAAI,IAAI,KAAG,IAAqC,CAAC;AAElF,2BAA2B;AAC3B,eAAO,MAAM,CAAC,GAAI,MAAM,MAAM,KAAG,IAA+B,CAAC;AACjE,gCAAgC;AAChC,eAAO,MAAM,GAAG,GAAI,OAAO,MAAM,EAAE,WAAW,IAAI,EAAE,MAAM,IAAI,KAAG,IAK/D,CAAC;AACH,mCAAmC;AACnC,eAAO,MAAM,EAAE,GAAI,IAAI,IAAI,EAAE,KAAK,IAAI,KAAG,IAAkC,CAAC;AAC5E,4DAA4D;AAC5D,eAAO,MAAM,GAAG,GAAI,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,EAAE,KAAG,IAA6B,CAAC;AAGhF,kDAAkD;AAClD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,KAGzC,CAAC;AACH,oDAAoD;AACpD,eAAO,MAAM,QAAQ,GAAI,MAAM,OAAO,KAAG,KAAoC,CAAC;AAC9E,sDAAsD;AACtD,eAAO,MAAM,QAAQ,GAAI,KAAK,GAAG,EAAE,OAAO,MAAM,EAAE,WAAW,IAAI,EAAE,MAAM,IAAI,KAAG,KAM9E,CAAC;AAGH,4FAA4F;AAC5F,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEjD;AAsCD,iDAAiD;AACjD,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAOhD;AAGD,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAK5C;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAY5C"}
@@ -15,12 +15,16 @@ exports.typeEq = typeEq;
15
15
  exports.typeToString = typeToString;
16
16
  exports.termToString = termToString;
17
17
  // ---------- Constructores sintácticos ----------
18
+ /** Tipo base (primitivo) con nombre. */
18
19
  const tBase = (name) => ({ kind: 'base', name });
19
20
  exports.tBase = tBase;
21
+ /** Tipo flecha `from → to`. */
20
22
  const tArr = (from, to) => ({ kind: 'arrow', from, to });
21
23
  exports.tArr = tArr;
24
+ /** Variable sintáctica. */
22
25
  const v = (name) => ({ kind: 'var', name });
23
26
  exports.v = v;
27
+ /** Abstracción λ sintáctica. */
24
28
  const lam = (param, paramType, body) => ({
25
29
  kind: 'abs',
26
30
  param,
@@ -28,18 +32,23 @@ const lam = (param, paramType, body) => ({
28
32
  body,
29
33
  });
30
34
  exports.lam = lam;
35
+ /** Aplicación binaria `fn arg`. */
31
36
  const ap = (fn, arg) => ({ kind: 'app', fn, arg });
32
37
  exports.ap = ap;
38
+ /** Aplicación n-aria: `apN(f, a, b, c)` = `((f a) b) c`. */
33
39
  const apN = (head, ...args) => args.reduce(exports.ap, head);
34
40
  exports.apN = apN;
35
41
  // ---------- Constructores semánticos ----------
42
+ /** Valor neutral de una variable libre `name`. */
36
43
  const vNeutralVar = (name) => ({
37
44
  kind: 'neutral',
38
45
  head: { kind: 'var', name },
39
46
  });
40
47
  exports.vNeutralVar = vNeutralVar;
48
+ /** Valor neutral a partir de una cabeza neutral. */
41
49
  const vNeutral = (head) => ({ kind: 'neutral', head });
42
50
  exports.vNeutral = vNeutral;
51
+ /** Valor closure (λ semántica) con entorno léxico. */
43
52
  const vClosure = (env, param, paramType, body) => ({
44
53
  kind: 'closure',
45
54
  env,
@@ -49,7 +58,7 @@ const vClosure = (env, param, paramType, body) => ({
49
58
  });
50
59
  exports.vClosure = vClosure;
51
60
  // ---------- Igualdad estructural módulo α ----------
52
- // Renombra binders a posiciones canónicas para comparar.
61
+ /** Igualdad α-equivalente entre términos STLC (renombra binders a posiciones canónicas). */
53
62
  function alphaEq(a, b) {
54
63
  return alphaEqEnv(a, b, new Map(), new Map(), { n: 0 });
55
64
  }
@@ -83,6 +92,7 @@ function alphaEqEnv(a, b, envA, envB, counter) {
83
92
  }
84
93
  }
85
94
  }
95
+ /** Igualdad estructural entre dos tipos STLC. */
86
96
  function typeEq(a, b) {
87
97
  if (a.kind !== b.kind)
88
98
  return false;
@@ -94,6 +104,7 @@ function typeEq(a, b) {
94
104
  return false;
95
105
  }
96
106
  // Pretty-printer mínimo para términos y tipos (útil en tests/debug).
107
+ /** Serializa un tipo STLC a texto (flechas asociativas a la derecha). */
97
108
  function typeToString(t) {
98
109
  if (t.kind === 'base')
99
110
  return t.name;
@@ -101,6 +112,7 @@ function typeToString(t) {
101
112
  const from = t.from.kind === 'arrow' ? `(${typeToString(t.from)})` : typeToString(t.from);
102
113
  return `${from} → ${typeToString(t.to)}`;
103
114
  }
115
+ /** Serializa un término STLC a texto legible. */
104
116
  function termToString(t) {
105
117
  switch (t.kind) {
106
118
  case 'var':
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/type-theory/nbe/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/type-theory/nbe/types.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
+ /** Tipo base de un tipo refinado: primitivo o flecha entre tipos refinados. */
1
2
  export type BaseType = 'Int' | 'Bool' | 'String' | {
2
3
  kind: 'arrow';
3
4
  from: RefType;
4
5
  to: RefType;
5
6
  };
7
+ /** Tipo refinado `{ binding : base | predicate }`. */
6
8
  export interface RefType {
7
9
  base: BaseType;
8
10
  /** Nombre de la variable de binding usada por el predicado (e.g. "x"). */
@@ -10,6 +12,7 @@ export interface RefType {
10
12
  /** Predicado P(binding); cadena vacía o "true" significa "sin refinamiento". */
11
13
  predicate: string;
12
14
  }
15
+ /** Término del lenguaje de refinamiento (AST). */
13
16
  export type RTerm = {
14
17
  kind: 'lit';
15
18
  value: number | boolean | string;
@@ -42,23 +45,58 @@ export type RTerm = {
42
45
  value: RTerm;
43
46
  body: RTerm;
44
47
  };
48
+ /** Construye el tipo refinado `{ binding : Int | predicate }`. */
45
49
  export declare const tInt: (binding?: string, predicate?: string) => RefType;
50
+ /** Construye el tipo refinado `{ binding : Bool | predicate }`. */
46
51
  export declare const tBool: (binding?: string, predicate?: string) => RefType;
52
+ /** Construye el tipo refinado `{ binding : String | predicate }`. */
47
53
  export declare const tString: (binding?: string, predicate?: string) => RefType;
54
+ /**
55
+ * Construye un tipo refinado flecha `{ binding : (from -> to) | predicate }`.
56
+ * @param from - Tipo del parámetro.
57
+ * @param to - Tipo del resultado.
58
+ */
48
59
  export declare const tArrow: (from: RefType, to: RefType, binding?: string, predicate?: string) => RefType;
60
+ /**
61
+ * Construye un tipo refinado a partir de sus partes.
62
+ * @param base - Tipo base (primitivo o flecha).
63
+ * @param binding - Nombre de la variable de binding.
64
+ * @param predicate - Predicado textual sobre la variable.
65
+ */
49
66
  export declare const refine: (base: BaseType, binding: string, predicate: string) => RefType;
67
+ /** Crea un literal (número, booleano o cadena). */
50
68
  export declare const rLit: (value: number | boolean | string) => RTerm;
69
+ /** Crea una referencia a variable por nombre. */
51
70
  export declare const rVar: (name: string) => RTerm;
71
+ /**
72
+ * Crea una expresión binaria con operador `op`.
73
+ * @param op - Operador aritmético, de comparación o lógico.
74
+ */
52
75
  export declare const rBinop: (op: Extract<RTerm, {
53
76
  kind: "binop";
54
77
  }>["op"], left: RTerm, right: RTerm) => RTerm;
78
+ /** Crea una expresión condicional `if cond then t else e`. */
55
79
  export declare const rIf: (cond: RTerm, t: RTerm, e: RTerm) => RTerm;
80
+ /** Crea una abstracción lambda con tipo refinado para el parámetro. */
56
81
  export declare const rLam: (param: string, paramType: RefType, body: RTerm) => RTerm;
82
+ /** Crea una aplicación de función a argumento. */
57
83
  export declare const rApp: (fn: RTerm, arg: RTerm) => RTerm;
84
+ /** Crea un `let bind = value in body` con anotación de tipo opcional. */
58
85
  export declare const rLet: (bind: string, value: RTerm, body: RTerm, bindType?: RefType) => RTerm;
86
+ /**
87
+ * Comprueba igualdad estructural de dos `BaseType`.
88
+ * Para flechas, delega en `eqRefType` para los subtipos.
89
+ */
59
90
  export declare function eqBase(a: BaseType, b: BaseType): boolean;
91
+ /**
92
+ * Comprueba igualdad estructural de dos `RefType` (ignora predicados;
93
+ * la equivalencia semántica la maneja el subtipado).
94
+ */
60
95
  export declare function eqRefType(a: RefType, b: RefType): boolean;
96
+ /** Serializa un `BaseType` en notación legible (e.g. `Int`, `(T) -> (U)`). */
61
97
  export declare function baseToString(b: BaseType): string;
98
+ /** Serializa un `RefType` como `{ v : B | P }` (sin predicado si es trivial). */
62
99
  export declare function refTypeToString(t: RefType): string;
100
+ /** Serializa un `RTerm` en notación legible para debugging y mensajes de error. */
63
101
  export declare function termToString(t: RTerm): string;
64
102
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/type-theory/refinement-types/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/type-theory/refinement-types/types.ts"],"names":[],"mappings":"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"}
@@ -21,30 +21,44 @@ exports.baseToString = baseToString;
21
21
  exports.refTypeToString = refTypeToString;
22
22
  exports.termToString = termToString;
23
23
  // ---------- Constructores convenientes ----------
24
+ /** Construye el tipo refinado `{ binding : Int | predicate }`. */
24
25
  const tInt = (binding = '_v', predicate = 'true') => ({
25
26
  base: 'Int',
26
27
  binding,
27
28
  predicate,
28
29
  });
29
30
  exports.tInt = tInt;
31
+ /** Construye el tipo refinado `{ binding : Bool | predicate }`. */
30
32
  const tBool = (binding = '_v', predicate = 'true') => ({
31
33
  base: 'Bool',
32
34
  binding,
33
35
  predicate,
34
36
  });
35
37
  exports.tBool = tBool;
38
+ /** Construye el tipo refinado `{ binding : String | predicate }`. */
36
39
  const tString = (binding = '_v', predicate = 'true') => ({
37
40
  base: 'String',
38
41
  binding,
39
42
  predicate,
40
43
  });
41
44
  exports.tString = tString;
45
+ /**
46
+ * Construye un tipo refinado flecha `{ binding : (from -> to) | predicate }`.
47
+ * @param from - Tipo del parámetro.
48
+ * @param to - Tipo del resultado.
49
+ */
42
50
  const tArrow = (from, to, binding = '_v', predicate = 'true') => ({
43
51
  base: { kind: 'arrow', from, to },
44
52
  binding,
45
53
  predicate,
46
54
  });
47
55
  exports.tArrow = tArrow;
56
+ /**
57
+ * Construye un tipo refinado a partir de sus partes.
58
+ * @param base - Tipo base (primitivo o flecha).
59
+ * @param binding - Nombre de la variable de binding.
60
+ * @param predicate - Predicado textual sobre la variable.
61
+ */
48
62
  const refine = (base, binding, predicate) => ({
49
63
  base,
50
64
  binding,
@@ -52,12 +66,19 @@ const refine = (base, binding, predicate) => ({
52
66
  });
53
67
  exports.refine = refine;
54
68
  // ---------- Constructores de términos ----------
69
+ /** Crea un literal (número, booleano o cadena). */
55
70
  const rLit = (value) => ({ kind: 'lit', value });
56
71
  exports.rLit = rLit;
72
+ /** Crea una referencia a variable por nombre. */
57
73
  const rVar = (name) => ({ kind: 'var', name });
58
74
  exports.rVar = rVar;
75
+ /**
76
+ * Crea una expresión binaria con operador `op`.
77
+ * @param op - Operador aritmético, de comparación o lógico.
78
+ */
59
79
  const rBinop = (op, left, right) => ({ kind: 'binop', op, left, right });
60
80
  exports.rBinop = rBinop;
81
+ /** Crea una expresión condicional `if cond then t else e`. */
61
82
  const rIf = (cond, t, e) => ({
62
83
  kind: 'if',
63
84
  cond,
@@ -65,6 +86,7 @@ const rIf = (cond, t, e) => ({
65
86
  else: e,
66
87
  });
67
88
  exports.rIf = rIf;
89
+ /** Crea una abstracción lambda con tipo refinado para el parámetro. */
68
90
  const rLam = (param, paramType, body) => ({
69
91
  kind: 'lam',
70
92
  param,
@@ -72,8 +94,10 @@ const rLam = (param, paramType, body) => ({
72
94
  body,
73
95
  });
74
96
  exports.rLam = rLam;
97
+ /** Crea una aplicación de función a argumento. */
75
98
  const rApp = (fn, arg) => ({ kind: 'app', fn, arg });
76
99
  exports.rApp = rApp;
100
+ /** Crea un `let bind = value in body` con anotación de tipo opcional. */
77
101
  const rLet = (bind, value, body, bindType) => ({
78
102
  kind: 'let',
79
103
  bind,
@@ -83,12 +107,20 @@ const rLet = (bind, value, body, bindType) => ({
83
107
  });
84
108
  exports.rLet = rLet;
85
109
  // ---------- Igualdad estructural de tipos base ----------
110
+ /**
111
+ * Comprueba igualdad estructural de dos `BaseType`.
112
+ * Para flechas, delega en `eqRefType` para los subtipos.
113
+ */
86
114
  function eqBase(a, b) {
87
115
  if (typeof a === 'string' || typeof b === 'string')
88
116
  return a === b;
89
117
  // both arrows
90
118
  return eqRefType(a.from, b.from) && eqRefType(a.to, b.to);
91
119
  }
120
+ /**
121
+ * Comprueba igualdad estructural de dos `RefType` (ignora predicados;
122
+ * la equivalencia semántica la maneja el subtipado).
123
+ */
92
124
  function eqRefType(a, b) {
93
125
  if (!eqBase(a.base, b.base))
94
126
  return false;
@@ -97,11 +129,13 @@ function eqRefType(a, b) {
97
129
  return true;
98
130
  }
99
131
  // ---------- Serialización legible ----------
132
+ /** Serializa un `BaseType` en notación legible (e.g. `Int`, `(T) -> (U)`). */
100
133
  function baseToString(b) {
101
134
  if (typeof b === 'string')
102
135
  return b;
103
136
  return `(${refTypeToString(b.from)}) -> (${refTypeToString(b.to)})`;
104
137
  }
138
+ /** Serializa un `RefType` como `{ v : B | P }` (sin predicado si es trivial). */
105
139
  function refTypeToString(t) {
106
140
  const pred = t.predicate.trim();
107
141
  if (pred === '' || pred === 'true') {
@@ -109,6 +143,7 @@ function refTypeToString(t) {
109
143
  }
110
144
  return `{ ${t.binding} : ${baseToString(t.base)} | ${pred} }`;
111
145
  }
146
+ /** Serializa un `RTerm` en notación legible para debugging y mensajes de error. */
112
147
  function termToString(t) {
113
148
  switch (t.kind) {
114
149
  case 'lit':
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/type-theory/refinement-types/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/type-theory/refinement-types/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ /** Tipo en System F: variable atómica, función o cuantificación universal ∀X. */
1
2
  export type FType = {
2
3
  kind: 'atom';
3
4
  name: string;
@@ -10,6 +11,7 @@ export type FType = {
10
11
  bind: string;
11
12
  body: FType;
12
13
  };
14
+ /** Término en System F: variable, abstracción, aplicación, Λ-abstracción y aplicación de tipo. */
13
15
  export type FTerm = {
14
16
  kind: 'var';
15
17
  name: string;
@@ -31,23 +33,51 @@ export type FTerm = {
31
33
  fn: FTerm;
32
34
  typeArg: FType;
33
35
  };
36
+ /** Crea una variable de tipo atómica con nombre `name`. */
34
37
  export declare const fAtom: (name: string) => FType;
38
+ /** Crea el tipo función `from → to`. */
35
39
  export declare const fArrow: (from: FType, to: FType) => FType;
40
+ /** Crea el tipo `∀bind. body`. */
36
41
  export declare const fForall: (bind: string, body: FType) => FType;
42
+ /** Crea una referencia a variable de término. */
37
43
  export declare const fVar: (name: string) => FTerm;
44
+ /** Crea una abstracción `λparam:paramType. body`. */
38
45
  export declare const fAbs: (param: string, paramType: FType, body: FTerm) => FTerm;
46
+ /** Crea una aplicación de término `fn arg`. */
39
47
  export declare const fApp: (fn: FTerm, arg: FTerm) => FTerm;
48
+ /** Crea una abstracción de tipo `Λbind. body`. */
40
49
  export declare const fTAbs: (bind: string, body: FTerm) => FTerm;
50
+ /** Crea una aplicación de tipo `fn [typeArg]`. */
41
51
  export declare const fTApp: (fn: FTerm, typeArg: FType) => FTerm;
52
+ /**
53
+ * Calcula el conjunto de variables de tipo libres en `t`.
54
+ * @param acc - Acumulador (se modifica in-place y se retorna).
55
+ */
42
56
  export declare function freeTypeVars(t: FType, acc?: Set<string>): Set<string>;
57
+ /**
58
+ * Comprueba α-equivalencia entre dos tipos de System F.
59
+ * `∀X. T` y `∀Y. T[X:=Y]` se consideran iguales.
60
+ */
43
61
  export declare function alphaEqType(a: FType, b: FType): boolean;
62
+ /**
63
+ * Indica si `type` está bien formado: todas sus variables libres están
64
+ * declaradas en el contexto de tipos `ctx`.
65
+ */
44
66
  export declare function isWellFormed(type: FType, ctx?: Set<string>): boolean;
67
+ /** Serializa un `FType` en notación matemática (`∀X. …`, `A → B`). */
45
68
  export declare function fTypeToString(t: FType): string;
69
+ /** Serializa un `FTerm` en notación legible para debugging y mensajes de error. */
46
70
  export declare function fTermToString(t: FTerm): string;
71
+ /**
72
+ * Contexto de tipado de System F.
73
+ * Contiene variables de término (con su tipo) y variables de tipo declaradas (Λ las introduce).
74
+ */
47
75
  export interface FContext {
48
76
  term: Map<string, FType>;
49
77
  type: Set<string>;
50
78
  }
79
+ /** Crea un contexto de tipado vacío. */
51
80
  export declare function emptyContext(): FContext;
81
+ /** Crea una copia independiente del contexto para extensiones locales. */
52
82
  export declare function cloneContext(ctx: FContext): FContext;
53
83
  //# sourceMappingURL=types.d.ts.map