@stevenvo780/st-lang 4.14.0 → 4.15.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.
- package/README.md +6 -6
- package/dist/ast/nodes.d.ts +50 -0
- package/dist/ast/nodes.d.ts.map +1 -1
- package/dist/format/stnb/__tests__/executor.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/executor.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/executor.test.js +140 -0
- package/dist/format/stnb/__tests__/executor.test.js.map +1 -0
- package/dist/format/stnb/__tests__/parser.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/parser.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/parser.test.js +119 -0
- package/dist/format/stnb/__tests__/parser.test.js.map +1 -0
- package/dist/format/stnb/__tests__/renderer.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/renderer.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/renderer.test.js +109 -0
- package/dist/format/stnb/__tests__/renderer.test.js.map +1 -0
- package/dist/format/stnb/__tests__/roundtrip.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/roundtrip.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/roundtrip.test.js +91 -0
- package/dist/format/stnb/__tests__/roundtrip.test.js.map +1 -0
- package/dist/format/stnb/__tests__/serializer.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/serializer.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/serializer.test.js +60 -0
- package/dist/format/stnb/__tests__/serializer.test.js.map +1 -0
- package/dist/format/stnb/executor.d.ts +29 -0
- package/dist/format/stnb/executor.d.ts.map +1 -0
- package/dist/format/stnb/executor.js +139 -0
- package/dist/format/stnb/executor.js.map +1 -0
- package/dist/format/stnb/index.d.ts +19 -0
- package/dist/format/stnb/index.d.ts.map +1 -0
- package/dist/format/stnb/index.js +28 -0
- package/dist/format/stnb/index.js.map +1 -0
- package/dist/format/stnb/parser.d.ts +14 -0
- package/dist/format/stnb/parser.d.ts.map +1 -0
- package/dist/format/stnb/parser.js +123 -0
- package/dist/format/stnb/parser.js.map +1 -0
- package/dist/format/stnb/renderer-html.d.ts +11 -0
- package/dist/format/stnb/renderer-html.d.ts.map +1 -0
- package/dist/format/stnb/renderer-html.js +180 -0
- package/dist/format/stnb/renderer-html.js.map +1 -0
- package/dist/format/stnb/renderer-markdown.d.ts +13 -0
- package/dist/format/stnb/renderer-markdown.d.ts.map +1 -0
- package/dist/format/stnb/renderer-markdown.js +92 -0
- package/dist/format/stnb/renderer-markdown.js.map +1 -0
- package/dist/format/stnb/serializer.d.ts +14 -0
- package/dist/format/stnb/serializer.d.ts.map +1 -0
- package/dist/format/stnb/serializer.js +21 -0
- package/dist/format/stnb/serializer.js.map +1 -0
- package/dist/format/stnb/types.d.ts +45 -0
- package/dist/format/stnb/types.d.ts.map +1 -0
- package/dist/format/stnb/types.js +7 -0
- package/dist/format/stnb/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/logic/profile-bridge/index.d.ts.map +1 -1
- package/dist/logic/profile-bridge/index.js +20 -3
- package/dist/logic/profile-bridge/index.js.map +1 -1
- package/dist/logic/profiles/classical/propositional.d.ts.map +1 -1
- package/dist/logic/profiles/classical/propositional.js.map +1 -1
- package/dist/logic/profiles/ctl/check.d.ts.map +1 -1
- package/dist/logic/profiles/ctl/check.js +21 -11
- package/dist/logic/profiles/ctl/check.js.map +1 -1
- package/dist/logic/profiles/ctl/witness.d.ts.map +1 -1
- package/dist/logic/profiles/ctl/witness.js +2 -0
- package/dist/logic/profiles/ctl/witness.js.map +1 -1
- package/dist/logic/profiles/description-logic/types.d.ts +15 -0
- package/dist/logic/profiles/description-logic/types.d.ts.map +1 -1
- package/dist/logic/profiles/description-logic/types.js +13 -0
- package/dist/logic/profiles/description-logic/types.js.map +1 -1
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js +141 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js +55 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js +149 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js +105 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/ast.d.ts +160 -0
- package/dist/logic/profiles/dl-hybrid/ast.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/ast.js +261 -0
- package/dist/logic/profiles/dl-hybrid/ast.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/differential.d.ts +61 -0
- package/dist/logic/profiles/dl-hybrid/differential.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/differential.js +291 -0
- package/dist/logic/profiles/dl-hybrid/differential.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/index.d.ts +10 -0
- package/dist/logic/profiles/dl-hybrid/index.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/index.js +90 -0
- package/dist/logic/profiles/dl-hybrid/index.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/parser.d.ts +8 -0
- package/dist/logic/profiles/dl-hybrid/parser.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/parser.js +410 -0
- package/dist/logic/profiles/dl-hybrid/parser.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/profile.d.ts +23 -0
- package/dist/logic/profiles/dl-hybrid/profile.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/profile.js +122 -0
- package/dist/logic/profiles/dl-hybrid/profile.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/semantics.d.ts +16 -0
- package/dist/logic/profiles/dl-hybrid/semantics.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/semantics.js +181 -0
- package/dist/logic/profiles/dl-hybrid/semantics.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/tableau.d.ts +38 -0
- package/dist/logic/profiles/dl-hybrid/tableau.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/tableau.js +289 -0
- package/dist/logic/profiles/dl-hybrid/tableau.js.map +1 -0
- package/dist/logic/profiles/hybrid-logic/types.d.ts +17 -0
- package/dist/logic/profiles/hybrid-logic/types.d.ts.map +1 -1
- package/dist/logic/profiles/hybrid-logic/types.js +17 -0
- package/dist/logic/profiles/hybrid-logic/types.js.map +1 -1
- package/dist/logic/profiles/intuitionistic-nj/kripke.d.ts.map +1 -1
- package/dist/logic/profiles/intuitionistic-nj/kripke.js +8 -5
- package/dist/logic/profiles/intuitionistic-nj/kripke.js.map +1 -1
- package/dist/logic/profiles/ltl-sat/tableau.d.ts +31 -0
- package/dist/logic/profiles/ltl-sat/tableau.d.ts.map +1 -1
- package/dist/logic/profiles/ltl-sat/tableau.js +18 -0
- package/dist/logic/profiles/ltl-sat/tableau.js.map +1 -1
- package/dist/logic/profiles/ltl-sat/types.d.ts +15 -0
- package/dist/logic/profiles/ltl-sat/types.d.ts.map +1 -1
- package/dist/logic/profiles/ltl-sat/types.js +2 -1
- package/dist/logic/profiles/ltl-sat/types.js.map +1 -1
- package/dist/logic/profiles/modal-frame-axioms/formula.d.ts +10 -0
- package/dist/logic/profiles/modal-frame-axioms/formula.d.ts.map +1 -1
- package/dist/logic/profiles/modal-frame-axioms/formula.js +10 -0
- package/dist/logic/profiles/modal-frame-axioms/formula.js.map +1 -1
- package/dist/logic/profiles/mu-calculus/check.d.ts.map +1 -1
- package/dist/logic/profiles/mu-calculus/check.js +7 -4
- package/dist/logic/profiles/mu-calculus/check.js.map +1 -1
- package/dist/logic/profiles/natural-deduction-nk/formula.d.ts +8 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -1
- package/dist/logic/profiles/natural-deduction-nk/formula.js +8 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -1
- package/dist/logic/profiles/quantum/index.d.ts.map +1 -1
- package/dist/logic/profiles/quantum/index.js +11 -8
- package/dist/logic/profiles/quantum/index.js.map +1 -1
- package/dist/logic/profiles/sequent-lj/index.d.ts +90 -0
- package/dist/logic/profiles/sequent-lj/index.d.ts.map +1 -0
- package/dist/logic/profiles/sequent-lj/index.js +903 -0
- package/dist/logic/profiles/sequent-lj/index.js.map +1 -0
- package/dist/logic/profiles/shared/tableau-engine.d.ts.map +1 -1
- package/dist/logic/profiles/shared/tableau-engine.js +0 -17
- package/dist/logic/profiles/shared/tableau-engine.js.map +1 -1
- package/dist/namespaces/proof-systems.d.ts +1 -1
- package/dist/namespaces/proof-systems.d.ts.map +1 -1
- package/dist/namespaces/proof-systems.js.map +1 -1
- package/dist/namespaces/semantics.d.ts +1 -1
- package/dist/namespaces/semantics.d.ts.map +1 -1
- package/dist/namespaces/semantics.js.map +1 -1
- package/dist/proof-systems/distributed-exchange/index.d.ts +29 -0
- package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -1
- package/dist/proof-systems/distributed-exchange/index.js +18 -0
- package/dist/proof-systems/distributed-exchange/index.js.map +1 -1
- package/dist/proof-systems/fol-prover/types.d.ts +16 -0
- package/dist/proof-systems/fol-prover/types.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover/types.js +7 -0
- package/dist/proof-systems/fol-prover/types.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/index.d.ts +3 -3
- package/dist/proof-systems/fol-prover-advanced/index.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/index.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/ordering.js +1 -1
- package/dist/proof-systems/fol-prover-advanced/prover.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/prover.js +19 -12
- package/dist/proof-systems/fol-prover-advanced/prover.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/resolve.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/resolve.js +7 -7
- package/dist/proof-systems/fol-prover-advanced/resolve.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/subsumption.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/subsumption.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/types.d.ts +12 -0
- package/dist/proof-systems/fol-prover-advanced/types.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/unify.js +2 -2
- package/dist/proof-systems/fol-prover-equality/term-utils.d.ts +46 -0
- package/dist/proof-systems/fol-prover-equality/term-utils.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-equality/term-utils.js +46 -0
- package/dist/proof-systems/fol-prover-equality/term-utils.js.map +1 -1
- package/dist/proof-systems/proof-nets/correctness.d.ts.map +1 -1
- package/dist/proof-systems/proof-nets/correctness.js +24 -12
- package/dist/proof-systems/proof-nets/correctness.js.map +1 -1
- package/dist/proof-systems/proof-nets/types.d.ts +18 -0
- package/dist/proof-systems/proof-nets/types.d.ts.map +1 -1
- package/dist/proof-systems/proof-nets/types.js +6 -0
- package/dist/proof-systems/proof-nets/types.js.map +1 -1
- package/dist/proof-systems/tableau-framework/TableauProver.d.ts.map +1 -1
- package/dist/proof-systems/tableau-framework/TableauProver.js +5 -5
- package/dist/proof-systems/tableau-framework/TableauProver.js.map +1 -1
- package/dist/proof-systems/tableau-framework/propositional.d.ts.map +1 -1
- package/dist/proof-systems/tableau-framework/propositional.js +21 -21
- package/dist/proof-systems/tableau-framework/propositional.js.map +1 -1
- package/dist/reasoning/ban-logic/terms.d.ts +24 -0
- package/dist/reasoning/ban-logic/terms.d.ts.map +1 -1
- package/dist/reasoning/ban-logic/terms.js +24 -0
- package/dist/reasoning/ban-logic/terms.js.map +1 -1
- package/dist/reasoning/bayesian/factor.js +8 -8
- package/dist/reasoning/bayesian/factor.js.map +1 -1
- package/dist/reasoning/bayesian/inference.d.ts.map +1 -1
- package/dist/reasoning/bayesian/inference.js +11 -5
- package/dist/reasoning/bayesian/inference.js.map +1 -1
- package/dist/reasoning/combinatorics/generators.js.map +1 -1
- package/dist/reasoning/combinatorics/index.d.ts +3 -3
- package/dist/reasoning/combinatorics/index.d.ts.map +1 -1
- package/dist/reasoning/combinatorics/index.js.map +1 -1
- package/dist/reasoning/combinatorics/set-partitions.js.map +1 -1
- package/dist/reasoning/combinatorics/special-numbers.d.ts.map +1 -1
- package/dist/reasoning/combinatorics/special-numbers.js.map +1 -1
- package/dist/reasoning/constructive-analysis/cauchy.js +2 -2
- package/dist/reasoning/constructive-analysis/compact.js +1 -1
- package/dist/reasoning/constructive-analysis/continuity.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/continuity.js +4 -4
- package/dist/reasoning/constructive-analysis/continuity.js.map +1 -1
- package/dist/reasoning/constructive-analysis/index.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/index.js.map +1 -1
- package/dist/reasoning/constructive-analysis/ivt.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/ivt.js +2 -2
- package/dist/reasoning/constructive-analysis/ivt.js.map +1 -1
- package/dist/reasoning/constructive-reals/index.d.ts.map +1 -1
- package/dist/reasoning/constructive-reals/index.js +4 -8
- package/dist/reasoning/constructive-reals/index.js.map +1 -1
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts +2 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js +74 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js.map +1 -0
- package/dist/reasoning/dl-hybrid/index.d.ts +3 -0
- package/dist/reasoning/dl-hybrid/index.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/index.js +16 -0
- package/dist/reasoning/dl-hybrid/index.js.map +1 -0
- package/dist/reasoning/dl-hybrid/invariant-search.d.ts +39 -0
- package/dist/reasoning/dl-hybrid/invariant-search.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/invariant-search.js +188 -0
- package/dist/reasoning/dl-hybrid/invariant-search.js.map +1 -0
- package/dist/reasoning/galois-fields/index.d.ts +64 -0
- package/dist/reasoning/galois-fields/index.d.ts.map +1 -1
- package/dist/reasoning/galois-fields/index.js +56 -6
- package/dist/reasoning/galois-fields/index.js.map +1 -1
- package/dist/reasoning/graph-theory/index.d.ts +31 -0
- package/dist/reasoning/graph-theory/index.d.ts.map +1 -1
- package/dist/reasoning/graph-theory/index.js +28 -10
- package/dist/reasoning/graph-theory/index.js.map +1 -1
- package/dist/reasoning/hoare-logic/index.d.ts +34 -0
- package/dist/reasoning/hoare-logic/index.d.ts.map +1 -1
- package/dist/reasoning/hoare-logic/index.js +26 -0
- package/dist/reasoning/hoare-logic/index.js.map +1 -1
- package/dist/reasoning/hyperreal/index.d.ts +30 -0
- package/dist/reasoning/hyperreal/index.d.ts.map +1 -1
- package/dist/reasoning/hyperreal/index.js +25 -0
- package/dist/reasoning/hyperreal/index.js.map +1 -1
- package/dist/reasoning/information-theory/index.d.ts +34 -0
- package/dist/reasoning/information-theory/index.d.ts.map +1 -1
- package/dist/reasoning/information-theory/index.js +27 -44
- package/dist/reasoning/information-theory/index.js.map +1 -1
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js +72 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.js +102 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.js +40 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.js +136 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js +147 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/benchmarks.d.ts +30 -0
- package/dist/reasoning/lemma-rag/benchmarks.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/benchmarks.js +177 -0
- package/dist/reasoning/lemma-rag/benchmarks.js.map +1 -0
- package/dist/reasoning/lemma-rag/embedding.d.ts +26 -0
- package/dist/reasoning/lemma-rag/embedding.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/embedding.js +243 -0
- package/dist/reasoning/lemma-rag/embedding.js.map +1 -0
- package/dist/reasoning/lemma-rag/index-store.d.ts +35 -0
- package/dist/reasoning/lemma-rag/index-store.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/index-store.js +105 -0
- package/dist/reasoning/lemma-rag/index-store.js.map +1 -0
- package/dist/reasoning/lemma-rag/index.d.ts +9 -0
- package/dist/reasoning/lemma-rag/index.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/index.js +34 -0
- package/dist/reasoning/lemma-rag/index.js.map +1 -0
- package/dist/reasoning/lemma-rag/query.d.ts +48 -0
- package/dist/reasoning/lemma-rag/query.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/query.js +92 -0
- package/dist/reasoning/lemma-rag/query.js.map +1 -0
- package/dist/reasoning/lemma-rag/retrieval.d.ts +33 -0
- package/dist/reasoning/lemma-rag/retrieval.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/retrieval.js +123 -0
- package/dist/reasoning/lemma-rag/retrieval.js.map +1 -0
- package/dist/reasoning/lemma-rag/types.d.ts +52 -0
- package/dist/reasoning/lemma-rag/types.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/types.js +13 -0
- package/dist/reasoning/lemma-rag/types.js.map +1 -0
- package/dist/reasoning/lemma-synthesis/index.d.ts +36 -0
- package/dist/reasoning/lemma-synthesis/index.d.ts.map +1 -1
- package/dist/reasoning/lemma-synthesis/index.js +12 -0
- package/dist/reasoning/lemma-synthesis/index.js.map +1 -1
- package/dist/reasoning/linear-algebra/index.d.ts +38 -0
- package/dist/reasoning/linear-algebra/index.d.ts.map +1 -1
- package/dist/reasoning/linear-algebra/index.js +34 -5
- package/dist/reasoning/linear-algebra/index.js.map +1 -1
- package/dist/reasoning/markov-logic/grounding.js +1 -1
- package/dist/reasoning/markov-logic/grounding.js.map +1 -1
- package/dist/reasoning/markov-logic/inference.js +1 -1
- package/dist/reasoning/markov-logic/inference.js.map +1 -1
- package/dist/reasoning/order-theory/index.d.ts +121 -0
- package/dist/reasoning/order-theory/index.d.ts.map +1 -0
- package/dist/reasoning/order-theory/index.js +562 -0
- package/dist/reasoning/order-theory/index.js.map +1 -0
- package/dist/reasoning/peano-arithmetic/index.d.ts +114 -0
- package/dist/reasoning/peano-arithmetic/index.d.ts.map +1 -0
- package/dist/reasoning/peano-arithmetic/index.js +650 -0
- package/dist/reasoning/peano-arithmetic/index.js.map +1 -0
- package/dist/reasoning/polynomial-ring/index.d.ts +80 -0
- package/dist/reasoning/polynomial-ring/index.d.ts.map +1 -1
- package/dist/reasoning/polynomial-ring/index.js +75 -0
- package/dist/reasoning/polynomial-ring/index.js.map +1 -1
- package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.js +263 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.js +123 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.js +128 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.js +119 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.js +93 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.js.map +1 -0
- package/dist/reasoning/proof-mining/extractor.d.ts +73 -0
- package/dist/reasoning/proof-mining/extractor.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/extractor.js +170 -0
- package/dist/reasoning/proof-mining/extractor.js.map +1 -0
- package/dist/reasoning/proof-mining/generalizer.d.ts +46 -0
- package/dist/reasoning/proof-mining/generalizer.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/generalizer.js +245 -0
- package/dist/reasoning/proof-mining/generalizer.js.map +1 -0
- package/dist/reasoning/proof-mining/index.d.ts +62 -0
- package/dist/reasoning/proof-mining/index.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/index.js +235 -0
- package/dist/reasoning/proof-mining/index.js.map +1 -0
- package/dist/reasoning/proof-mining/persistence.d.ts +35 -0
- package/dist/reasoning/proof-mining/persistence.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/persistence.js +126 -0
- package/dist/reasoning/proof-mining/persistence.js.map +1 -0
- package/dist/reasoning/proof-mining/ranker.d.ts +29 -0
- package/dist/reasoning/proof-mining/ranker.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/ranker.js +71 -0
- package/dist/reasoning/proof-mining/ranker.js.map +1 -0
- package/dist/reasoning/proof-mining/statistics.d.ts +11 -0
- package/dist/reasoning/proof-mining/statistics.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/statistics.js +44 -0
- package/dist/reasoning/proof-mining/statistics.js.map +1 -0
- package/dist/reasoning/proof-mining/types.d.ts +117 -0
- package/dist/reasoning/proof-mining/types.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/types.js +24 -0
- package/dist/reasoning/proof-mining/types.js.map +1 -0
- package/dist/reasoning/separation-logic/index.d.ts +30 -0
- package/dist/reasoning/separation-logic/index.d.ts.map +1 -1
- package/dist/reasoning/separation-logic/index.js +21 -0
- package/dist/reasoning/separation-logic/index.js.map +1 -1
- package/dist/reasoning/set-theory/hf-functions.js +3 -3
- package/dist/reasoning/set-theory/hf-sets.js +1 -1
- package/dist/reasoning/set-theory/index.d.ts +3 -3
- package/dist/reasoning/set-theory/index.d.ts.map +1 -1
- package/dist/reasoning/set-theory/zfc-axioms.js +4 -4
- package/dist/reasoning/tactic-dsl/tactics.d.ts +87 -0
- package/dist/reasoning/tactic-dsl/tactics.d.ts.map +1 -1
- package/dist/reasoning/tactic-dsl/tactics.js +86 -36
- package/dist/reasoning/tactic-dsl/tactics.js.map +1 -1
- package/dist/reasoning/topology/index.d.ts +81 -0
- package/dist/reasoning/topology/index.d.ts.map +1 -1
- package/dist/reasoning/topology/index.js +69 -45
- package/dist/reasoning/topology/index.js.map +1 -1
- package/dist/runtime/countermodel-min/minimize.js +0 -0
- package/dist/runtime/countermodel-min/minimize.js.map +1 -1
- package/dist/runtime/csp-hoare/semantics.d.ts +12 -0
- package/dist/runtime/csp-hoare/semantics.d.ts.map +1 -1
- package/dist/runtime/csp-hoare/semantics.js +12 -0
- package/dist/runtime/csp-hoare/semantics.js.map +1 -1
- package/dist/runtime/symbolic-diff/constructors.d.ts +20 -0
- package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -1
- package/dist/runtime/symbolic-diff/constructors.js +20 -0
- package/dist/runtime/symbolic-diff/constructors.js.map +1 -1
- package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -1
- package/dist/runtime/term-rewriting/term-utils.js +33 -2
- package/dist/runtime/term-rewriting/term-utils.js.map +1 -1
- package/dist/runtime/typecheck/checker.js +2 -2
- package/dist/runtime/typecheck/checker.js.map +1 -1
- package/dist/runtime/typecheck/levenshtein.js +1 -1
- package/dist/runtime/typecheck/levenshtein.js.map +1 -1
- package/dist/semantics/categorical/fin-set.d.ts.map +1 -1
- package/dist/semantics/categorical/fin-set.js +8 -1
- package/dist/semantics/categorical/fin-set.js.map +1 -1
- package/dist/semantics/categorical/free.d.ts.map +1 -1
- package/dist/semantics/categorical/free.js +8 -2
- package/dist/semantics/categorical/free.js.map +1 -1
- package/dist/semantics/categorical/limits.d.ts.map +1 -1
- package/dist/semantics/categorical/limits.js +13 -4
- package/dist/semantics/categorical/limits.js.map +1 -1
- package/dist/semantics/categorical/monoidal.d.ts.map +1 -1
- package/dist/semantics/categorical/monoidal.js +3 -1
- package/dist/semantics/categorical/monoidal.js.map +1 -1
- package/dist/semantics/text-layer/compiler.d.ts +46 -0
- package/dist/semantics/text-layer/compiler.d.ts.map +1 -1
- package/dist/semantics/text-layer/compiler.js +46 -11
- package/dist/semantics/text-layer/compiler.js.map +1 -1
- package/dist/solver/cdcl-v2/index.d.ts +8 -0
- package/dist/solver/cdcl-v2/index.d.ts.map +1 -1
- package/dist/solver/cdcl-v2/index.js +8 -0
- package/dist/solver/cdcl-v2/index.js.map +1 -1
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts +0 -1
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -1
- package/dist/solver/smt-z3/z3-wasm-backend.js +2 -3
- package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -1
- package/dist/tests/agora-integration-fixtures.test.js +7 -2
- package/dist/tests/agora-integration-fixtures.test.js.map +1 -1
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js +123 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js +172 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js +326 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js +418 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js +162 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.js +104 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.js +262 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.js +101 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js +219 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js +154 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js.map +1 -0
- package/dist/tests/coverage-95/first-order.test.js.map +1 -1
- package/dist/tests/coverage-95/fol-prover.test.js.map +1 -1
- package/dist/tests/integration/cross-modules.test.js +43 -19
- package/dist/tests/integration/cross-modules.test.js.map +1 -1
- package/dist/tests/logic/ctl/check.test.js.map +1 -1
- package/dist/tests/logic/profile-bridge/translations.test.js +3 -3
- package/dist/tests/logic/profile-bridge/translations.test.js.map +1 -1
- package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts +2 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts.map +1 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.js +400 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.js.map +1 -0
- package/dist/tests/logic/sequent-g3/prover.test.js.map +1 -1
- package/dist/tests/logic/substructural/prover.test.js.map +1 -1
- package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js +40 -13
- package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js.map +1 -1
- package/dist/tests/proof-systems/higher-order-unify/ho-unify.test.js.map +1 -1
- package/dist/tests/proof-systems/tableau-framework/tableau.test.js +8 -8
- package/dist/tests/proof-systems/tableau-framework/tableau.test.js.map +1 -1
- package/dist/tests/properties/agm.property.test.js +1 -1
- package/dist/tests/properties/agm.property.test.js.map +1 -1
- package/dist/tests/properties/anti-unification.property.test.js.map +1 -1
- package/dist/tests/properties/argumentation.property.test.js.map +1 -1
- package/dist/tests/properties/bisimulation.property.test.js.map +1 -1
- package/dist/tests/properties/cdcl.property.test.js.map +1 -1
- package/dist/tests/properties/coinduction.property.test.js.map +1 -1
- package/dist/tests/properties/constructive-reals.property.test.js.map +1 -1
- package/dist/tests/properties/csp.property.test.js +1 -3
- package/dist/tests/properties/csp.property.test.js.map +1 -1
- package/dist/tests/properties/generators.d.ts +1 -1
- package/dist/tests/properties/generators.d.ts.map +1 -1
- package/dist/tests/properties/generators.js +22 -30
- package/dist/tests/properties/generators.js.map +1 -1
- package/dist/tests/properties/intuit-nj.property.test.js +3 -1
- package/dist/tests/properties/intuit-nj.property.test.js.map +1 -1
- package/dist/tests/properties/lambda-calc.property.test.js.map +1 -1
- package/dist/tests/properties/mln.property.test.js +1 -3
- package/dist/tests/properties/mln.property.test.js.map +1 -1
- package/dist/tests/properties/planning.property.test.js.map +1 -1
- package/dist/tests/properties/profile-bridge.property.test.js.map +1 -1
- package/dist/tests/properties/theorem-cache.property.test.js.map +1 -1
- package/dist/tests/protocol-text-layer.test.js.map +1 -1
- package/dist/tests/reasoning/combinatorics/combinatorics.test.js +1 -1
- package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js +9 -9
- package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js.map +1 -1
- package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js +80 -38
- package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js.map +1 -1
- package/dist/tests/reasoning/order-theory/order-theory.test.d.ts +2 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.d.ts.map +1 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.js +211 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.js.map +1 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts +2 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts.map +1 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.js +159 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.js.map +1 -0
- package/dist/tests/reasoning/set-theory/hf-functions.test.js +11 -11
- package/dist/tests/reasoning/set-theory/zfc-axioms.test.js +1 -1
- package/dist/tests/semantics/text-layer-v2/claim-graph.test.js.map +1 -1
- package/dist/tests/solver/smt-lib/emitter.test.js.map +1 -1
- package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -1
- package/dist/tests/tooling/test-harness/test-harness.test.js +9 -6
- package/dist/tests/tooling/test-harness/test-harness.test.js.map +1 -1
- package/dist/tooling/lsp/types.d.ts +13 -0
- package/dist/tooling/lsp/types.d.ts.map +1 -1
- package/dist/tooling/lsp/types.js +1 -0
- package/dist/tooling/lsp/types.js.map +1 -1
- package/dist/tooling/test-harness/combinators.d.ts.map +1 -1
- package/dist/tooling/test-harness/combinators.js +4 -4
- package/dist/tooling/test-harness/combinators.js.map +1 -1
- package/dist/tooling/test-harness/coverage.js +1 -1
- package/dist/tooling/test-harness/generators.d.ts.map +1 -1
- package/dist/tooling/test-harness/generators.js.map +1 -1
- package/dist/tooling/test-harness/index.d.ts +1 -1
- package/dist/tooling/test-harness/index.d.ts.map +1 -1
- package/dist/tooling/test-harness/index.js.map +1 -1
- package/dist/tooling/test-harness/snapshot.d.ts.map +1 -1
- package/dist/tooling/test-harness/snapshot.js +2 -2
- package/dist/tooling/test-harness/snapshot.js.map +1 -1
- package/dist/type-theory/cubical/types.d.ts +25 -0
- package/dist/type-theory/cubical/types.d.ts.map +1 -1
- package/dist/type-theory/cubical/types.js +20 -0
- package/dist/type-theory/cubical/types.js.map +1 -1
- package/dist/type-theory/curry-howard/types.d.ts +27 -0
- package/dist/type-theory/curry-howard/types.d.ts.map +1 -1
- package/dist/type-theory/curry-howard/types.js +18 -0
- package/dist/type-theory/curry-howard/types.js.map +1 -1
- package/dist/type-theory/hindley-milner/substitution.d.ts +39 -0
- package/dist/type-theory/hindley-milner/substitution.d.ts.map +1 -1
- package/dist/type-theory/hindley-milner/substitution.js +37 -0
- package/dist/type-theory/hindley-milner/substitution.js.map +1 -1
- package/dist/type-theory/hindley-milner/types.d.ts +25 -0
- package/dist/type-theory/hindley-milner/types.d.ts.map +1 -1
- package/dist/type-theory/hindley-milner/types.js +22 -2
- package/dist/type-theory/hindley-milner/types.js.map +1 -1
- package/dist/type-theory/hol/rules.d.ts +36 -0
- package/dist/type-theory/hol/rules.d.ts.map +1 -1
- package/dist/type-theory/hol/rules.js +36 -0
- package/dist/type-theory/hol/rules.js.map +1 -1
- package/dist/type-theory/hott/types.d.ts +32 -0
- package/dist/type-theory/hott/types.d.ts.map +1 -1
- package/dist/type-theory/hott/types.js +31 -1
- package/dist/type-theory/hott/types.js.map +1 -1
- package/dist/type-theory/lambda-cube/types.d.ts +17 -0
- package/dist/type-theory/lambda-cube/types.d.ts.map +1 -1
- package/dist/type-theory/lambda-cube/types.js +13 -0
- package/dist/type-theory/lambda-cube/types.js.map +1 -1
- package/dist/type-theory/mltt/types.d.ts +19 -0
- package/dist/type-theory/mltt/types.d.ts.map +1 -1
- package/dist/type-theory/mltt/types.js +15 -1
- package/dist/type-theory/mltt/types.js.map +1 -1
- package/dist/type-theory/nbe/types.d.ts +21 -0
- package/dist/type-theory/nbe/types.d.ts.map +1 -1
- package/dist/type-theory/nbe/types.js +13 -1
- package/dist/type-theory/nbe/types.js.map +1 -1
- package/dist/type-theory/refinement-types/types.d.ts +38 -0
- package/dist/type-theory/refinement-types/types.d.ts.map +1 -1
- package/dist/type-theory/refinement-types/types.js +35 -0
- package/dist/type-theory/refinement-types/types.js.map +1 -1
- package/dist/type-theory/system-f/types.d.ts +30 -0
- package/dist/type-theory/system-f/types.d.ts.map +1 -1
- package/dist/type-theory/system-f/types.js +24 -3
- package/dist/type-theory/system-f/types.js.map +1 -1
- package/dist/types/index.d.ts +42 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +26 -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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/type-theory/mltt/types.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,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,gBAAgB;AAChB,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,QAAmC,CAAC;AACxE,6BAA6B;AAC7B,eAAO,MAAM,SAAS,GAAI,cAAS,KAAG,QAAyC,CAAC;AAChF,oDAAoD;AACpD,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,EAAE,QAAQ,QAAQ,EAAE,UAAU,QAAQ,KAAG,QAKvE,CAAC;AACH,qDAAqD;AACrD,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,EAAE,QAAQ,QAAQ,EAAE,MAAM,QAAQ,KAAG,QAKpE,CAAC;AACH,2BAA2B;AAC3B,eAAO,MAAM,IAAI,GAAI,IAAI,QAAQ,EAAE,KAAK,QAAQ,KAAG,QAAsC,CAAC;AAC1F,iDAAiD;AACjD,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,OAAO,QAAQ,EAAE,QAAQ,QAAQ,KAAG,QAKvE,CAAC;AACH,oCAAoC;AACpC,eAAO,MAAM,KAAK,GAAI,KAAK,QAAQ,EAAE,KAAK,QAAQ,KAAG,QAAwC,CAAC;AAC9F,uCAAuC;AACvC,eAAO,MAAM,IAAI,GAAI,MAAM,QAAQ,KAAG,QAAmC,CAAC;AAC1E,qCAAqC;AACrC,eAAO,MAAM,IAAI,GAAI,MAAM,QAAQ,KAAG,QAAmC,CAAC;AAC1E,8CAA8C;AAC9C,eAAO,MAAM,GAAG,GAAI,MAAM,QAAQ,EAAE,MAAM,QAAQ,EAAE,OAAO,QAAQ,KAAG,QAKpE,CAAC;AACH,2CAA2C;AAC3C,eAAO,MAAM,KAAK,GAAI,MAAM,QAAQ,KAAG,QAAoC,CAAC;AAC5E,2CAA2C;AAC3C,eAAO,MAAM,IAAI,QAAO,QAA6B,CAAC;AACtD,gCAAgC;AAChC,eAAO,MAAM,KAAK,QAAO,QAA8B,CAAC;AACxD,iCAAiC;AACjC,eAAO,MAAM,KAAK,GAAI,KAAK,QAAQ,KAAG,QAAmC,CAAC;AAE1E,oEAAoE;AACpE,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"}
|
|
@@ -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
|
-
|
|
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":";AAAA,+DAA+D;AAC/D,gEAAgE;AAChE,+DAA+D;AAC/D,EAAE;AACF,oBAAoB;AACpB,mEAAmE;AACnE,oDAAoD;AACpD,oDAAoD;AACpD,qEAAqE;AACrE,oDAAoD;AACpD,EAAE;AACF,+DAA+D;AAC/D,gEAAgE;AAChE,4CAA4C;AAC5C,EAAE;AACF,gBAAgB;AAChB,kDAAkD;AAClD,sCAAsC;AACtC,+DAA+D;AAC/D,gEAAgE;;;
|
|
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;
|
|
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
|
-
|
|
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":";AAAA,+DAA+D;AAC/D,wDAAwD;AACxD,+DAA+D;AAC/D,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,8DAA8D;AAC9D,mEAAmE;AACnE,+CAA+C;;;
|
|
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":";AAAA,+DAA+D;AAC/D,qDAAqD;AACrD,+DAA+D;AAC/D,EAAE;AACF,mDAAmD;AACnD,sDAAsD;AACtD,kCAAkC;AAClC,6DAA6D;AAC7D,gDAAgD;AAChD,EAAE;AACF,iEAAiE;AACjE,+DAA+D;AAC/D,4DAA4D;AAC5D,8DAA8D;;;
|
|
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
|