@stevenvo780/st-lang 4.3.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/coinduction/index.d.ts +136 -0
- package/dist/coinduction/index.d.ts.map +1 -0
- package/dist/coinduction/index.js +318 -0
- package/dist/coinduction/index.js.map +1 -0
- package/dist/combinators-ski/abstract.d.ts +5 -0
- package/dist/combinators-ski/abstract.d.ts.map +1 -0
- package/dist/combinators-ski/abstract.js +88 -0
- package/dist/combinators-ski/abstract.js.map +1 -0
- package/dist/combinators-ski/index.d.ts +6 -0
- package/dist/combinators-ski/index.d.ts.map +1 -0
- package/dist/combinators-ski/index.js +30 -0
- package/dist/combinators-ski/index.js.map +1 -0
- package/dist/combinators-ski/reduce.d.ts +10 -0
- package/dist/combinators-ski/reduce.d.ts.map +1 -0
- package/dist/combinators-ski/reduce.js +118 -0
- package/dist/combinators-ski/reduce.js.map +1 -0
- package/dist/combinators-ski/types.d.ts +23 -0
- package/dist/combinators-ski/types.d.ts.map +1 -0
- package/dist/combinators-ski/types.js +102 -0
- package/dist/combinators-ski/types.js.map +1 -0
- package/dist/constructive-reals/index.d.ts +132 -0
- package/dist/constructive-reals/index.d.ts.map +1 -0
- package/dist/constructive-reals/index.js +723 -0
- package/dist/constructive-reals/index.js.map +1 -0
- package/dist/game-semantics/convert.d.ts +4 -0
- package/dist/game-semantics/convert.d.ts.map +1 -0
- package/dist/game-semantics/convert.js +28 -0
- package/dist/game-semantics/convert.js.map +1 -0
- package/dist/game-semantics/index.d.ts +6 -0
- package/dist/game-semantics/index.d.ts.map +1 -0
- package/dist/game-semantics/index.js +28 -0
- package/dist/game-semantics/index.js.map +1 -0
- package/dist/game-semantics/strategy.d.ts +34 -0
- package/dist/game-semantics/strategy.d.ts.map +1 -0
- package/dist/game-semantics/strategy.js +336 -0
- package/dist/game-semantics/strategy.js.map +1 -0
- package/dist/game-semantics/types.d.ts +64 -0
- package/dist/game-semantics/types.d.ts.map +1 -0
- package/dist/game-semantics/types.js +78 -0
- package/dist/game-semantics/types.js.map +1 -0
- package/dist/higher-order-unify/index.d.ts +5 -0
- package/dist/higher-order-unify/index.d.ts.map +1 -0
- package/dist/higher-order-unify/index.js +27 -0
- package/dist/higher-order-unify/index.js.map +1 -0
- package/dist/higher-order-unify/normalize.d.ts +14 -0
- package/dist/higher-order-unify/normalize.d.ts.map +1 -0
- package/dist/higher-order-unify/normalize.js +191 -0
- package/dist/higher-order-unify/normalize.js.map +1 -0
- package/dist/higher-order-unify/pattern.d.ts +4 -0
- package/dist/higher-order-unify/pattern.d.ts.map +1 -0
- package/dist/higher-order-unify/pattern.js +70 -0
- package/dist/higher-order-unify/pattern.js.map +1 -0
- package/dist/higher-order-unify/types.d.ts +19 -0
- package/dist/higher-order-unify/types.d.ts.map +1 -0
- package/dist/higher-order-unify/types.js +14 -0
- package/dist/higher-order-unify/types.js.map +1 -0
- package/dist/higher-order-unify/unify.d.ts +5 -0
- package/dist/higher-order-unify/unify.d.ts.map +1 -0
- package/dist/higher-order-unify/unify.js +306 -0
- package/dist/higher-order-unify/unify.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -2
- package/dist/index.js.map +1 -1
- package/dist/lambda-calc/church.d.ts.map +1 -1
- package/dist/lambda-calc/church.js.map +1 -1
- package/dist/lambda-calc/combinators.d.ts.map +1 -1
- package/dist/lambda-calc/combinators.js.map +1 -1
- package/dist/lambda-calc/index.d.ts +1 -1
- package/dist/lambda-calc/index.d.ts.map +1 -1
- package/dist/lambda-calc/index.js.map +1 -1
- package/dist/mltt/equality.d.ts +9 -0
- package/dist/mltt/equality.d.ts.map +1 -0
- package/dist/mltt/equality.js +79 -0
- package/dist/mltt/equality.js.map +1 -0
- package/dist/mltt/index.d.ts +8 -0
- package/dist/mltt/index.d.ts.map +1 -0
- package/dist/mltt/index.js +49 -0
- package/dist/mltt/index.js.map +1 -0
- package/dist/mltt/infer.d.ts +17 -0
- package/dist/mltt/infer.d.ts.map +1 -0
- package/dist/mltt/infer.js +269 -0
- package/dist/mltt/infer.js.map +1 -0
- package/dist/mltt/normalize.d.ts +7 -0
- package/dist/mltt/normalize.d.ts.map +1 -0
- package/dist/mltt/normalize.js +131 -0
- package/dist/mltt/normalize.js.map +1 -0
- package/dist/mltt/substitute.d.ts +4 -0
- package/dist/mltt/substitute.d.ts.map +1 -0
- package/dist/mltt/substitute.js +94 -0
- package/dist/mltt/substitute.js.map +1 -0
- package/dist/mltt/types.d.ts +72 -0
- package/dist/mltt/types.d.ts.map +1 -0
- package/dist/mltt/types.js +211 -0
- package/dist/mltt/types.js.map +1 -0
- package/dist/nbe/index.d.ts +3 -0
- package/dist/nbe/index.d.ts.map +1 -0
- package/dist/nbe/index.js +25 -0
- package/dist/nbe/index.js.map +1 -0
- package/dist/nbe/nbe.d.ts +7 -0
- package/dist/nbe/nbe.d.ts.map +1 -0
- package/dist/nbe/nbe.js +118 -0
- package/dist/nbe/nbe.js.map +1 -0
- package/dist/nbe/types.d.ts +54 -0
- package/dist/nbe/types.d.ts.map +1 -0
- package/dist/nbe/types.js +117 -0
- package/dist/nbe/types.js.map +1 -0
- package/dist/profile-bridge/index.d.ts +64 -0
- package/dist/profile-bridge/index.d.ts.map +1 -0
- package/dist/profile-bridge/index.js +328 -0
- package/dist/profile-bridge/index.js.map +1 -0
- package/dist/profiles/many-valued/index.d.ts.map +1 -1
- package/dist/profiles/many-valued/index.js.map +1 -1
- package/dist/profiles/mu-calculus/check.d.ts +15 -0
- package/dist/profiles/mu-calculus/check.d.ts.map +1 -0
- package/dist/profiles/mu-calculus/check.js +172 -0
- package/dist/profiles/mu-calculus/check.js.map +1 -0
- package/dist/profiles/mu-calculus/ctl-translate.d.ts +61 -0
- package/dist/profiles/mu-calculus/ctl-translate.d.ts.map +1 -0
- package/dist/profiles/mu-calculus/ctl-translate.js +181 -0
- package/dist/profiles/mu-calculus/ctl-translate.js.map +1 -0
- package/dist/profiles/mu-calculus/index.d.ts +7 -0
- package/dist/profiles/mu-calculus/index.d.ts.map +1 -0
- package/dist/profiles/mu-calculus/index.js +33 -0
- package/dist/profiles/mu-calculus/index.js.map +1 -0
- package/dist/profiles/mu-calculus/types.d.ts +51 -0
- package/dist/profiles/mu-calculus/types.d.ts.map +1 -0
- package/dist/profiles/mu-calculus/types.js +42 -0
- package/dist/profiles/mu-calculus/types.js.map +1 -0
- package/dist/profiles/mu-calculus/wellformed.d.ts +40 -0
- package/dist/profiles/mu-calculus/wellformed.d.ts.map +1 -0
- package/dist/profiles/mu-calculus/wellformed.js +160 -0
- package/dist/profiles/mu-calculus/wellformed.js.map +1 -0
- package/dist/profiles/sequent-lk/cut-elimination.d.ts +11 -0
- package/dist/profiles/sequent-lk/cut-elimination.d.ts.map +1 -0
- package/dist/profiles/sequent-lk/cut-elimination.js +216 -0
- package/dist/profiles/sequent-lk/cut-elimination.js.map +1 -0
- package/dist/profiles/sequent-lk/index.d.ts +5 -0
- package/dist/profiles/sequent-lk/index.d.ts.map +1 -0
- package/dist/profiles/sequent-lk/index.js +24 -0
- package/dist/profiles/sequent-lk/index.js.map +1 -0
- package/dist/profiles/sequent-lk/prover.d.ts +25 -0
- package/dist/profiles/sequent-lk/prover.d.ts.map +1 -0
- package/dist/profiles/sequent-lk/prover.js +532 -0
- package/dist/profiles/sequent-lk/prover.js.map +1 -0
- package/dist/profiles/sequent-lk/types.d.ts +55 -0
- package/dist/profiles/sequent-lk/types.d.ts.map +1 -0
- package/dist/profiles/sequent-lk/types.js +18 -0
- package/dist/profiles/sequent-lk/types.js.map +1 -0
- package/dist/profiles/sequent-lk/util.d.ts +18 -0
- package/dist/profiles/sequent-lk/util.d.ts.map +1 -0
- package/dist/profiles/sequent-lk/util.js +71 -0
- package/dist/profiles/sequent-lk/util.js.map +1 -0
- package/dist/proof-nets/construct.d.ts +3 -0
- package/dist/proof-nets/construct.d.ts.map +1 -0
- package/dist/proof-nets/construct.js +85 -0
- package/dist/proof-nets/construct.js.map +1 -0
- package/dist/proof-nets/correctness.d.ts +3 -0
- package/dist/proof-nets/correctness.d.ts.map +1 -0
- package/dist/proof-nets/correctness.js +213 -0
- package/dist/proof-nets/correctness.js.map +1 -0
- package/dist/proof-nets/cut-elim.d.ts +9 -0
- package/dist/proof-nets/cut-elim.d.ts.map +1 -0
- package/dist/proof-nets/cut-elim.js +149 -0
- package/dist/proof-nets/cut-elim.js.map +1 -0
- package/dist/proof-nets/index.d.ts +6 -0
- package/dist/proof-nets/index.d.ts.map +1 -0
- package/dist/proof-nets/index.js +33 -0
- package/dist/proof-nets/index.js.map +1 -0
- package/dist/proof-nets/types.d.ts +36 -0
- package/dist/proof-nets/types.d.ts.map +1 -0
- package/dist/proof-nets/types.js +89 -0
- package/dist/proof-nets/types.js.map +1 -0
- package/dist/refinement-types/checker.d.ts +19 -0
- package/dist/refinement-types/checker.d.ts.map +1 -0
- package/dist/refinement-types/checker.js +248 -0
- package/dist/refinement-types/checker.js.map +1 -0
- package/dist/refinement-types/index.d.ts +11 -0
- package/dist/refinement-types/index.d.ts.map +1 -0
- package/dist/refinement-types/index.js +51 -0
- package/dist/refinement-types/index.js.map +1 -0
- package/dist/refinement-types/predicate.d.ts +31 -0
- package/dist/refinement-types/predicate.d.ts.map +1 -0
- package/dist/refinement-types/predicate.js +369 -0
- package/dist/refinement-types/predicate.js.map +1 -0
- package/dist/refinement-types/solver.d.ts +24 -0
- package/dist/refinement-types/solver.d.ts.map +1 -0
- package/dist/refinement-types/solver.js +207 -0
- package/dist/refinement-types/solver.js.map +1 -0
- package/dist/refinement-types/subtype.d.ts +14 -0
- package/dist/refinement-types/subtype.d.ts.map +1 -0
- package/dist/refinement-types/subtype.js +39 -0
- package/dist/refinement-types/subtype.js.map +1 -0
- package/dist/refinement-types/types.d.ts +64 -0
- package/dist/refinement-types/types.d.ts.map +1 -0
- package/dist/refinement-types/types.js +130 -0
- package/dist/refinement-types/types.js.map +1 -0
- package/dist/runtime/anti-unification/anti-unify.d.ts +22 -0
- package/dist/runtime/anti-unification/anti-unify.d.ts.map +1 -0
- package/dist/runtime/anti-unification/anti-unify.js +154 -0
- package/dist/runtime/anti-unification/anti-unify.js.map +1 -0
- package/dist/runtime/anti-unification/index.d.ts +6 -0
- package/dist/runtime/anti-unification/index.d.ts.map +1 -0
- package/dist/runtime/anti-unification/index.js +23 -0
- package/dist/runtime/anti-unification/index.js.map +1 -0
- package/dist/runtime/anti-unification/many.d.ts +49 -0
- package/dist/runtime/anti-unification/many.d.ts.map +1 -0
- package/dist/runtime/anti-unification/many.js +185 -0
- package/dist/runtime/anti-unification/many.js.map +1 -0
- package/dist/runtime/anti-unification/term-utils.d.ts +40 -0
- package/dist/runtime/anti-unification/term-utils.d.ts.map +1 -0
- package/dist/runtime/anti-unification/term-utils.js +173 -0
- package/dist/runtime/anti-unification/term-utils.js.map +1 -0
- package/dist/runtime/anti-unification/types.d.ts +41 -0
- package/dist/runtime/anti-unification/types.d.ts.map +1 -0
- package/dist/runtime/anti-unification/types.js +26 -0
- package/dist/runtime/anti-unification/types.js.map +1 -0
- package/dist/runtime/csp/ac3.d.ts +20 -0
- package/dist/runtime/csp/ac3.d.ts.map +1 -0
- package/dist/runtime/csp/ac3.js +165 -0
- package/dist/runtime/csp/ac3.js.map +1 -0
- package/dist/runtime/csp/backtrack.d.ts +15 -0
- package/dist/runtime/csp/backtrack.d.ts.map +1 -0
- package/dist/runtime/csp/backtrack.js +233 -0
- package/dist/runtime/csp/backtrack.js.map +1 -0
- package/dist/runtime/csp/builtins.d.ts +27 -0
- package/dist/runtime/csp/builtins.d.ts.map +1 -0
- package/dist/runtime/csp/builtins.js +109 -0
- package/dist/runtime/csp/builtins.js.map +1 -0
- package/dist/runtime/csp/index.d.ts +5 -0
- package/dist/runtime/csp/index.d.ts.map +1 -0
- package/dist/runtime/csp/index.js +23 -0
- package/dist/runtime/csp/index.js.map +1 -0
- package/dist/runtime/csp/types.d.ts +54 -0
- package/dist/runtime/csp/types.d.ts.map +1 -0
- package/dist/runtime/csp/types.js +14 -0
- package/dist/runtime/csp/types.js.map +1 -0
- package/dist/runtime/markov-logic/grounding.d.ts +19 -0
- package/dist/runtime/markov-logic/grounding.d.ts.map +1 -0
- package/dist/runtime/markov-logic/grounding.js +252 -0
- package/dist/runtime/markov-logic/grounding.js.map +1 -0
- package/dist/runtime/markov-logic/index.d.ts +6 -0
- package/dist/runtime/markov-logic/index.d.ts.map +1 -0
- package/dist/runtime/markov-logic/index.js +47 -0
- package/dist/runtime/markov-logic/index.js.map +1 -0
- package/dist/runtime/markov-logic/inference.d.ts +77 -0
- package/dist/runtime/markov-logic/inference.d.ts.map +1 -0
- package/dist/runtime/markov-logic/inference.js +382 -0
- package/dist/runtime/markov-logic/inference.js.map +1 -0
- package/dist/runtime/markov-logic/parser.d.ts +25 -0
- package/dist/runtime/markov-logic/parser.d.ts.map +1 -0
- package/dist/runtime/markov-logic/parser.js +264 -0
- package/dist/runtime/markov-logic/parser.js.map +1 -0
- package/dist/runtime/markov-logic/types.d.ts +64 -0
- package/dist/runtime/markov-logic/types.d.ts.map +1 -0
- package/dist/runtime/markov-logic/types.js +17 -0
- package/dist/runtime/markov-logic/types.js.map +1 -0
- package/dist/runtime/pi-calculus/congruence.d.ts +15 -0
- package/dist/runtime/pi-calculus/congruence.d.ts.map +1 -0
- package/dist/runtime/pi-calculus/congruence.js +271 -0
- package/dist/runtime/pi-calculus/congruence.js.map +1 -0
- package/dist/runtime/pi-calculus/index.d.ts +6 -0
- package/dist/runtime/pi-calculus/index.d.ts.map +1 -0
- package/dist/runtime/pi-calculus/index.js +30 -0
- package/dist/runtime/pi-calculus/index.js.map +1 -0
- package/dist/runtime/pi-calculus/names.d.ts +28 -0
- package/dist/runtime/pi-calculus/names.d.ts.map +1 -0
- package/dist/runtime/pi-calculus/names.js +182 -0
- package/dist/runtime/pi-calculus/names.js.map +1 -0
- package/dist/runtime/pi-calculus/reduction.d.ts +25 -0
- package/dist/runtime/pi-calculus/reduction.d.ts.map +1 -0
- package/dist/runtime/pi-calculus/reduction.js +338 -0
- package/dist/runtime/pi-calculus/reduction.js.map +1 -0
- package/dist/runtime/pi-calculus/substitution.d.ts +11 -0
- package/dist/runtime/pi-calculus/substitution.d.ts.map +1 -0
- package/dist/runtime/pi-calculus/substitution.js +109 -0
- package/dist/runtime/pi-calculus/substitution.js.map +1 -0
- package/dist/runtime/pi-calculus/types.d.ts +38 -0
- package/dist/runtime/pi-calculus/types.d.ts.map +1 -0
- package/dist/runtime/pi-calculus/types.js +22 -0
- package/dist/runtime/pi-calculus/types.js.map +1 -0
- package/dist/runtime/planning/astar.d.ts +10 -0
- package/dist/runtime/planning/astar.d.ts.map +1 -0
- package/dist/runtime/planning/astar.js +155 -0
- package/dist/runtime/planning/astar.js.map +1 -0
- package/dist/runtime/planning/bfs.d.ts +17 -0
- package/dist/runtime/planning/bfs.d.ts.map +1 -0
- package/dist/runtime/planning/bfs.js +87 -0
- package/dist/runtime/planning/bfs.js.map +1 -0
- package/dist/runtime/planning/ground.d.ts +55 -0
- package/dist/runtime/planning/ground.d.ts.map +1 -0
- package/dist/runtime/planning/ground.js +154 -0
- package/dist/runtime/planning/ground.js.map +1 -0
- package/dist/runtime/planning/heuristic.d.ts +29 -0
- package/dist/runtime/planning/heuristic.d.ts.map +1 -0
- package/dist/runtime/planning/heuristic.js +172 -0
- package/dist/runtime/planning/heuristic.js.map +1 -0
- package/dist/runtime/planning/index.d.ts +6 -0
- package/dist/runtime/planning/index.d.ts.map +1 -0
- package/dist/runtime/planning/index.js +38 -0
- package/dist/runtime/planning/index.js.map +1 -0
- package/dist/runtime/planning/types.d.ts +100 -0
- package/dist/runtime/planning/types.d.ts.map +1 -0
- package/dist/runtime/planning/types.js +22 -0
- package/dist/runtime/planning/types.js.map +1 -0
- package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -1
- package/dist/runtime/symbolic-diff/differentiate.js.map +1 -1
- package/dist/runtime/symbolic-diff/index.d.ts +1 -1
- package/dist/runtime/symbolic-diff/index.d.ts.map +1 -1
- package/dist/runtime/symbolic-diff/index.js.map +1 -1
- package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -1
- package/dist/runtime/symbolic-diff/parse.js +7 -1
- package/dist/runtime/symbolic-diff/parse.js.map +1 -1
- package/dist/runtime/theorem-cache/cache.d.ts +100 -0
- package/dist/runtime/theorem-cache/cache.d.ts.map +1 -0
- package/dist/runtime/theorem-cache/cache.js +213 -0
- package/dist/runtime/theorem-cache/cache.js.map +1 -0
- package/dist/runtime/theorem-cache/canonical.d.ts +59 -0
- package/dist/runtime/theorem-cache/canonical.d.ts.map +1 -0
- package/dist/runtime/theorem-cache/canonical.js +105 -0
- package/dist/runtime/theorem-cache/canonical.js.map +1 -0
- package/dist/runtime/theorem-cache/index.d.ts +6 -0
- package/dist/runtime/theorem-cache/index.d.ts.map +1 -0
- package/dist/runtime/theorem-cache/index.js +16 -0
- package/dist/runtime/theorem-cache/index.js.map +1 -0
- package/dist/runtime/theorem-cache/pattern.d.ts +24 -0
- package/dist/runtime/theorem-cache/pattern.d.ts.map +1 -0
- package/dist/runtime/theorem-cache/pattern.js +80 -0
- package/dist/runtime/theorem-cache/pattern.js.map +1 -0
- package/dist/system-f/index.d.ts +7 -0
- package/dist/system-f/index.d.ts.map +1 -0
- package/dist/system-f/index.js +48 -0
- package/dist/system-f/index.js.map +1 -0
- package/dist/system-f/infer.d.ts +9 -0
- package/dist/system-f/infer.d.ts.map +1 -0
- package/dist/system-f/infer.js +94 -0
- package/dist/system-f/infer.js.map +1 -0
- package/dist/system-f/reduce.d.ts +15 -0
- package/dist/system-f/reduce.d.ts.map +1 -0
- package/dist/system-f/reduce.js +259 -0
- package/dist/system-f/reduce.js.map +1 -0
- package/dist/system-f/types.d.ts +53 -0
- package/dist/system-f/types.d.ts.map +1 -0
- package/dist/system-f/types.js +157 -0
- package/dist/system-f/types.js.map +1 -0
- package/dist/tableau-framework/TableauProver.d.ts +10 -0
- package/dist/tableau-framework/TableauProver.d.ts.map +1 -0
- package/dist/tableau-framework/TableauProver.js +118 -0
- package/dist/tableau-framework/TableauProver.js.map +1 -0
- package/dist/tableau-framework/index.d.ts +5 -0
- package/dist/tableau-framework/index.d.ts.map +1 -0
- package/dist/tableau-framework/index.js +11 -0
- package/dist/tableau-framework/index.js.map +1 -0
- package/dist/tableau-framework/propositional.d.ts +11 -0
- package/dist/tableau-framework/propositional.d.ts.map +1 -0
- package/dist/tableau-framework/propositional.js +143 -0
- package/dist/tableau-framework/propositional.js.map +1 -0
- package/dist/tableau-framework/types.d.ts +32 -0
- package/dist/tableau-framework/types.d.ts.map +1 -0
- package/dist/tableau-framework/types.js +6 -0
- package/dist/tableau-framework/types.js.map +1 -0
- package/dist/tests/anti-unification/anti-unify.test.d.ts +2 -0
- package/dist/tests/anti-unification/anti-unify.test.d.ts.map +1 -0
- package/dist/tests/anti-unification/anti-unify.test.js +219 -0
- package/dist/tests/anti-unification/anti-unify.test.js.map +1 -0
- package/dist/tests/coinduction/coinduction.test.d.ts +2 -0
- package/dist/tests/coinduction/coinduction.test.d.ts.map +1 -0
- package/dist/tests/coinduction/coinduction.test.js +217 -0
- package/dist/tests/coinduction/coinduction.test.js.map +1 -0
- package/dist/tests/combinators-ski/combinators-ski.test.d.ts +2 -0
- package/dist/tests/combinators-ski/combinators-ski.test.d.ts.map +1 -0
- package/dist/tests/combinators-ski/combinators-ski.test.js +211 -0
- package/dist/tests/combinators-ski/combinators-ski.test.js.map +1 -0
- package/dist/tests/constructive-reals/constructive-reals.test.d.ts +2 -0
- package/dist/tests/constructive-reals/constructive-reals.test.d.ts.map +1 -0
- package/dist/tests/constructive-reals/constructive-reals.test.js +357 -0
- package/dist/tests/constructive-reals/constructive-reals.test.js.map +1 -0
- package/dist/tests/coverage-fill-aristotelian.test.js +1 -1
- package/dist/tests/coverage-fill-aristotelian.test.js.map +1 -1
- package/dist/tests/coverage-fill-fallacies.test.js +1 -1
- package/dist/tests/coverage-fill-fallacies.test.js.map +1 -1
- package/dist/tests/coverage-fill-format.test.js +1 -1
- package/dist/tests/coverage-fill-format.test.js.map +1 -1
- package/dist/tests/coverage-fill-intuitionistic.test.js +1 -1
- package/dist/tests/coverage-fill-intuitionistic.test.js.map +1 -1
- package/dist/tests/coverage-fill-probabilistic.test.js +1 -1
- package/dist/tests/coverage-fill-probabilistic.test.js.map +1 -1
- package/dist/tests/csp/csp.test.d.ts +2 -0
- package/dist/tests/csp/csp.test.d.ts.map +1 -0
- package/dist/tests/csp/csp.test.js +292 -0
- package/dist/tests/csp/csp.test.js.map +1 -0
- package/dist/tests/game-semantics/game-semantics.test.d.ts +2 -0
- package/dist/tests/game-semantics/game-semantics.test.d.ts.map +1 -0
- package/dist/tests/game-semantics/game-semantics.test.js +143 -0
- package/dist/tests/game-semantics/game-semantics.test.js.map +1 -0
- package/dist/tests/higher-order-unify/ho-unify.test.d.ts +2 -0
- package/dist/tests/higher-order-unify/ho-unify.test.d.ts.map +1 -0
- package/dist/tests/higher-order-unify/ho-unify.test.js +264 -0
- package/dist/tests/higher-order-unify/ho-unify.test.js.map +1 -0
- package/dist/tests/integration/cross-modules.test.d.ts +8 -0
- package/dist/tests/integration/cross-modules.test.d.ts.map +1 -0
- package/dist/tests/integration/cross-modules.test.js +668 -0
- package/dist/tests/integration/cross-modules.test.js.map +1 -0
- package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -1
- package/dist/tests/many-valued/many-valued.test.js.map +1 -1
- package/dist/tests/markov-logic/markov-logic.test.d.ts +2 -0
- package/dist/tests/markov-logic/markov-logic.test.d.ts.map +1 -0
- package/dist/tests/markov-logic/markov-logic.test.js +349 -0
- package/dist/tests/markov-logic/markov-logic.test.js.map +1 -0
- package/dist/tests/mltt/mltt.test.d.ts +2 -0
- package/dist/tests/mltt/mltt.test.d.ts.map +1 -0
- package/dist/tests/mltt/mltt.test.js +181 -0
- package/dist/tests/mltt/mltt.test.js.map +1 -0
- package/dist/tests/mu-calculus/check.test.d.ts +2 -0
- package/dist/tests/mu-calculus/check.test.d.ts.map +1 -0
- package/dist/tests/mu-calculus/check.test.js +234 -0
- package/dist/tests/mu-calculus/check.test.js.map +1 -0
- package/dist/tests/nbe/nbe.test.d.ts +2 -0
- package/dist/tests/nbe/nbe.test.d.ts.map +1 -0
- package/dist/tests/nbe/nbe.test.js +121 -0
- package/dist/tests/nbe/nbe.test.js.map +1 -0
- package/dist/tests/pi-calculus/pi-calculus.test.d.ts +2 -0
- package/dist/tests/pi-calculus/pi-calculus.test.d.ts.map +1 -0
- package/dist/tests/pi-calculus/pi-calculus.test.js +273 -0
- package/dist/tests/pi-calculus/pi-calculus.test.js.map +1 -0
- package/dist/tests/planning/planning.test.d.ts +2 -0
- package/dist/tests/planning/planning.test.d.ts.map +1 -0
- package/dist/tests/planning/planning.test.js +397 -0
- package/dist/tests/planning/planning.test.js.map +1 -0
- package/dist/tests/profile-bridge/translations.test.d.ts +2 -0
- package/dist/tests/profile-bridge/translations.test.d.ts.map +1 -0
- package/dist/tests/profile-bridge/translations.test.js +266 -0
- package/dist/tests/profile-bridge/translations.test.js.map +1 -0
- package/dist/tests/proof-nets/proof-nets.test.d.ts +2 -0
- package/dist/tests/proof-nets/proof-nets.test.d.ts.map +1 -0
- package/dist/tests/proof-nets/proof-nets.test.js +263 -0
- package/dist/tests/proof-nets/proof-nets.test.js.map +1 -0
- package/dist/tests/refinement-types/refinement-types.test.d.ts +2 -0
- package/dist/tests/refinement-types/refinement-types.test.d.ts.map +1 -0
- package/dist/tests/refinement-types/refinement-types.test.js +174 -0
- package/dist/tests/refinement-types/refinement-types.test.js.map +1 -0
- package/dist/tests/sequent-lk/prover.test.d.ts +2 -0
- package/dist/tests/sequent-lk/prover.test.d.ts.map +1 -0
- package/dist/tests/sequent-lk/prover.test.js +317 -0
- package/dist/tests/sequent-lk/prover.test.js.map +1 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -1
- package/dist/tests/system-f/system-f.test.d.ts +2 -0
- package/dist/tests/system-f/system-f.test.d.ts.map +1 -0
- package/dist/tests/system-f/system-f.test.js +217 -0
- package/dist/tests/system-f/system-f.test.js.map +1 -0
- package/dist/tests/tableau-framework/tableau.test.d.ts +2 -0
- package/dist/tests/tableau-framework/tableau.test.d.ts.map +1 -0
- package/dist/tests/tableau-framework/tableau.test.js +196 -0
- package/dist/tests/tableau-framework/tableau.test.js.map +1 -0
- package/dist/tests/theorem-cache/cache.test.d.ts +2 -0
- package/dist/tests/theorem-cache/cache.test.d.ts.map +1 -0
- package/dist/tests/theorem-cache/cache.test.js +510 -0
- package/dist/tests/theorem-cache/cache.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Higher-order unification — Algoritmo de unificación Miller
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Implementa el fragmento de patrón de la unificación de orden superior.
|
|
7
|
+
// Referencia: Dale Miller, "A Logic Programming Language with Lambda
|
|
8
|
+
// Abstraction, Function Variables, and Simple Unification", 1991.
|
|
9
|
+
//
|
|
10
|
+
// Garantías del fragmento de patrón:
|
|
11
|
+
// - Decidible (siempre termina).
|
|
12
|
+
// - Unicidad: si existe unificador, existe un único MGU (most general
|
|
13
|
+
// unifier) módulo α-equivalencia.
|
|
14
|
+
//
|
|
15
|
+
// Manejo de terms no-patrón:
|
|
16
|
+
// Los pares que involucran meta-variables aplicadas a no-variables o
|
|
17
|
+
// variables repetidas/libres se rechazan (retornan null) para mantener
|
|
18
|
+
// la decidibilidad. Ver `isPattern` en pattern.ts.
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.unifyPattern = unifyPattern;
|
|
21
|
+
exports.buildLambdaBinding = buildLambdaBinding;
|
|
22
|
+
exports.unifyMetaApp = unifyMetaApp;
|
|
23
|
+
const normalize_1 = require("./normalize");
|
|
24
|
+
const pattern_1 = require("./pattern");
|
|
25
|
+
// Unifica dos HOTerms usando el algoritmo de patrón Miller.
|
|
26
|
+
// Devuelve la sustitución de meta-variables (MGU) o null si no unifican.
|
|
27
|
+
function unifyPattern(t1, t2) {
|
|
28
|
+
const subst = {};
|
|
29
|
+
const ok = unify((0, normalize_1.normalize)(t1), (0, normalize_1.normalize)(t2), subst, new Map(), new Map());
|
|
30
|
+
return ok ? subst : null;
|
|
31
|
+
}
|
|
32
|
+
// Función recursiva de unificación.
|
|
33
|
+
// `envL` / `envR` mapean nombres de variables ligadas a índices de De Bruijn
|
|
34
|
+
// para comparación α-invariante de variables ligadas.
|
|
35
|
+
function unify(t1, t2, subst, envL, envR) {
|
|
36
|
+
// Expandir meta-variables si ya tienen binding
|
|
37
|
+
const s1 = deref(t1, subst);
|
|
38
|
+
const s2 = deref(t2, subst);
|
|
39
|
+
// Ambas son meta iguales sin binding → trivialmente iguales
|
|
40
|
+
if (s1.kind === 'meta' && s2.kind === 'meta' && s1.name === s2.name)
|
|
41
|
+
return true;
|
|
42
|
+
// Meta del lado izquierdo
|
|
43
|
+
if (s1.kind === 'meta') {
|
|
44
|
+
return bindMeta(s1.name, s2, subst, envR);
|
|
45
|
+
}
|
|
46
|
+
// Meta del lado derecho
|
|
47
|
+
if (s2.kind === 'meta') {
|
|
48
|
+
return bindMeta(s2.name, s1, subst, envL);
|
|
49
|
+
}
|
|
50
|
+
// Variables libres/ligadas
|
|
51
|
+
if (s1.kind === 'var' && s2.kind === 'var') {
|
|
52
|
+
const i1 = envL.get(s1.name);
|
|
53
|
+
const i2 = envR.get(s2.name);
|
|
54
|
+
if (i1 !== undefined && i2 !== undefined)
|
|
55
|
+
return i1 === i2; // ambas ligadas
|
|
56
|
+
if (i1 === undefined && i2 === undefined)
|
|
57
|
+
return s1.name === s2.name; // ambas libres
|
|
58
|
+
return false; // una ligada, una libre
|
|
59
|
+
}
|
|
60
|
+
// Abstracciones: introducir binder fresco para comparación
|
|
61
|
+
if (s1.kind === 'abs' && s2.kind === 'abs') {
|
|
62
|
+
const idx = envL.size; // índice único para este nivel de ligado
|
|
63
|
+
const newEnvL = new Map(envL);
|
|
64
|
+
newEnvL.set(s1.param, idx);
|
|
65
|
+
const newEnvR = new Map(envR);
|
|
66
|
+
newEnvR.set(s2.param, idx);
|
|
67
|
+
return unify(s1.body, s2.body, subst, newEnvL, newEnvR);
|
|
68
|
+
}
|
|
69
|
+
// Aplicaciones: detectar el caso Miller (meta aplicada a vars ligadas)
|
|
70
|
+
if (s1.kind === 'app' || s2.kind === 'app') {
|
|
71
|
+
const f1 = s1.kind === 'app' ? flatHead(s1) : { fn: s1, args: [] };
|
|
72
|
+
const f2 = s2.kind === 'app' ? flatHead(s2) : { fn: s2, args: [] };
|
|
73
|
+
// Caso Miller: meta en cabeza de una app
|
|
74
|
+
// Verificamos la condición de patrón: args deben ser variables ligadas distintas
|
|
75
|
+
if (f1.fn.kind === 'meta' && f1.fn !== f2.fn) {
|
|
76
|
+
if (!isMetaPatternApp(f1.args, envL))
|
|
77
|
+
return false;
|
|
78
|
+
return bindMetaApp(f1.fn.name, f1.args, s2, subst, envL, envR);
|
|
79
|
+
}
|
|
80
|
+
if (f2.fn.kind === 'meta' && f2.fn !== f1.fn) {
|
|
81
|
+
if (!isMetaPatternApp(f2.args, envR))
|
|
82
|
+
return false;
|
|
83
|
+
return bindMetaApp(f2.fn.name, f2.args, s1, subst, envR, envL);
|
|
84
|
+
}
|
|
85
|
+
// Caso rigid-rigid: ambas cabezas son constructores concretos
|
|
86
|
+
if (s1.kind === 'app' && s2.kind === 'app') {
|
|
87
|
+
if (!unify(f1.fn, f2.fn, subst, envL, envR))
|
|
88
|
+
return false;
|
|
89
|
+
if (f1.args.length !== f2.args.length)
|
|
90
|
+
return false;
|
|
91
|
+
for (let i = 0; i < f1.args.length; i++) {
|
|
92
|
+
if (!unify(f1.args[i], f2.args[i], subst, envL, envR))
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return false; // kinds distintos, no se unifican
|
|
99
|
+
}
|
|
100
|
+
// Verifica que los args de una app con cabeza meta son todas variables
|
|
101
|
+
// ligadas y distintas (condición de patrón Miller).
|
|
102
|
+
function isMetaPatternApp(args, env) {
|
|
103
|
+
const seen = new Set();
|
|
104
|
+
for (const a of args) {
|
|
105
|
+
if (a.kind !== 'var')
|
|
106
|
+
return false;
|
|
107
|
+
const idx = env.get(a.name);
|
|
108
|
+
if (idx === undefined)
|
|
109
|
+
return false; // variable libre, no ligada
|
|
110
|
+
if (seen.has(idx))
|
|
111
|
+
return false; // repetida
|
|
112
|
+
seen.add(idx);
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
// Resuelve el caso Miller: metaName aplicado a [y₁…yₙ] (vars ligadas distintas)
|
|
117
|
+
// debe unificar con `rhs`. Construye M ↦ λy₁…yₙ. rhs' donde rhs' es rhs
|
|
118
|
+
// expresado en términos de los parámetros formales.
|
|
119
|
+
// envMeta es el entorno del lado donde vive la meta; envRhs es el del rhs.
|
|
120
|
+
function bindMetaApp(metaName, metaArgs, rhs, subst, envMeta, envRhs) {
|
|
121
|
+
// Los parámetros formales de la lambda que vamos a construir son
|
|
122
|
+
// los nombres reales de las vars ligadas (de izquierda a derecha).
|
|
123
|
+
const params = metaArgs.map((a) => a.name);
|
|
124
|
+
// Para construir el binding correcto de M, necesitamos reescribir `rhs`
|
|
125
|
+
// sustituyendo las variables del envRhs que corresponden a los params
|
|
126
|
+
// de envMeta por los mismos nombres que usaremos en la lambda.
|
|
127
|
+
// En el caso más simple (mismo conjunto de binders) es la identidad.
|
|
128
|
+
// Construimos: M ↦ λp₁…pₙ. rhs_reescrito
|
|
129
|
+
const lambda = buildLambdaForMeta(params, rhs, envMeta, envRhs);
|
|
130
|
+
if (lambda === null)
|
|
131
|
+
return false;
|
|
132
|
+
// Occurs check
|
|
133
|
+
if (metaOccurs(metaName, lambda, subst))
|
|
134
|
+
return false;
|
|
135
|
+
subst[metaName] = lambda;
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
// Construye λp₁…pₙ. body donde body es `rhs` con las variables ligadas
|
|
139
|
+
// de envRhs que tienen el mismo índice que los params en envMeta
|
|
140
|
+
// renombradas a p₁…pₙ.
|
|
141
|
+
function buildLambdaForMeta(params, rhs, envMeta, envRhs) {
|
|
142
|
+
// Mapeamos índices de De Bruijn del meta → nombre de param formal
|
|
143
|
+
const idxToParam = new Map();
|
|
144
|
+
for (const p of params) {
|
|
145
|
+
const idx = envMeta.get(p);
|
|
146
|
+
if (idx === undefined)
|
|
147
|
+
return null;
|
|
148
|
+
idxToParam.set(idx, p);
|
|
149
|
+
}
|
|
150
|
+
// Renombramos en rhs las variables ligadas cuyos índices correspondan
|
|
151
|
+
// a los parámetros de la meta.
|
|
152
|
+
const body = renameByIndex(rhs, envRhs, idxToParam);
|
|
153
|
+
if (body === null)
|
|
154
|
+
return null;
|
|
155
|
+
// Construir λp₁. λp₂. … body
|
|
156
|
+
let result = body;
|
|
157
|
+
for (let i = params.length - 1; i >= 0; i--) {
|
|
158
|
+
result = { kind: 'abs', param: params[i], body: result };
|
|
159
|
+
}
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
// Renombra las variables libres de `t` (en el sentido de `env`) que tienen
|
|
163
|
+
// un índice en `idxToParam` con el nombre param correspondiente.
|
|
164
|
+
// Devuelve null si alguna variable ligada del scope local no está en
|
|
165
|
+
// idxToParam (implicaría que rhs menciona una variable local que no es
|
|
166
|
+
// argumento del meta → escapa de scope).
|
|
167
|
+
function renameByIndex(t, env, idxToParam) {
|
|
168
|
+
switch (t.kind) {
|
|
169
|
+
case 'meta':
|
|
170
|
+
return t;
|
|
171
|
+
case 'var': {
|
|
172
|
+
const idx = env.get(t.name);
|
|
173
|
+
if (idx === undefined)
|
|
174
|
+
return t; // variable libre del objeto-lenguaje: OK
|
|
175
|
+
const param = idxToParam.get(idx);
|
|
176
|
+
if (param === undefined)
|
|
177
|
+
return null; // ligada local no en scope del meta: escapa
|
|
178
|
+
return { kind: 'var', name: param };
|
|
179
|
+
}
|
|
180
|
+
case 'abs': {
|
|
181
|
+
// El param del abs introduce un índice nuevo; no lo incluimos en env
|
|
182
|
+
// (o usamos un índice negativo para "más interno")
|
|
183
|
+
const newEnv = new Map(env);
|
|
184
|
+
// Damos un índice fresco negativo para indicar "ligada más internamente"
|
|
185
|
+
// que todas las del contexto actual → nunca está en idxToParam.
|
|
186
|
+
const innerIdx = -(newEnv.size + 1);
|
|
187
|
+
newEnv.set(t.param, innerIdx);
|
|
188
|
+
const b = renameByIndex(t.body, newEnv, idxToParam);
|
|
189
|
+
if (b === null)
|
|
190
|
+
return null;
|
|
191
|
+
return { kind: 'abs', param: t.param, body: b };
|
|
192
|
+
}
|
|
193
|
+
case 'app': {
|
|
194
|
+
const fn = renameByIndex(t.fn, env, idxToParam);
|
|
195
|
+
if (fn === null)
|
|
196
|
+
return null;
|
|
197
|
+
const args = [];
|
|
198
|
+
for (const a of t.args) {
|
|
199
|
+
const a2 = renameByIndex(a, env, idxToParam);
|
|
200
|
+
if (a2 === null)
|
|
201
|
+
return null;
|
|
202
|
+
args.push(a2);
|
|
203
|
+
}
|
|
204
|
+
return { kind: 'app', fn, args };
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Aplana app anidadas para facilitar comparación cabeza-argumentos.
|
|
209
|
+
function flatHead(t) {
|
|
210
|
+
if (t.kind !== 'app')
|
|
211
|
+
return { fn: t, args: [] };
|
|
212
|
+
const inner = flatHead(t.fn);
|
|
213
|
+
return { fn: inner.fn, args: [...inner.args, ...t.args] };
|
|
214
|
+
}
|
|
215
|
+
// Expande una meta-variable si tiene binding en subst.
|
|
216
|
+
function deref(t, subst) {
|
|
217
|
+
if (t.kind === 'meta') {
|
|
218
|
+
const binding = subst[t.name];
|
|
219
|
+
if (binding !== undefined)
|
|
220
|
+
return deref((0, normalize_1.normalize)((0, normalize_1.applyHOSubst)(binding, subst)), subst);
|
|
221
|
+
}
|
|
222
|
+
return t;
|
|
223
|
+
}
|
|
224
|
+
// Intenta ligar la meta-variable `metaName` al término `value`.
|
|
225
|
+
// `env` es el entorno de variables ligadas del lado donde vive `value`.
|
|
226
|
+
function bindMeta(metaName, value, subst, env) {
|
|
227
|
+
// Occurs check: la meta no puede aparecer en su propio binding
|
|
228
|
+
if (metaOccurs(metaName, value, subst))
|
|
229
|
+
return false;
|
|
230
|
+
// Verificar que el valor es un pattern en el contexto dado
|
|
231
|
+
// (necesitamos reconstruir el scope de variables ligadas desde `env`)
|
|
232
|
+
const boundScope = new Set(env.keys());
|
|
233
|
+
if (!(0, pattern_1.isPattern)(value, boundScope))
|
|
234
|
+
return false;
|
|
235
|
+
// El binding debe ser cerrado: las variables libres del valor deben
|
|
236
|
+
// estar disponibles en el scope del meta (conservador: aceptamos si
|
|
237
|
+
// las FV son todas libres en el objeto-lenguaje, no ligadas locales
|
|
238
|
+
// que no estarán en scope del meta).
|
|
239
|
+
// Para el fragmento de patrón el check de scope es:
|
|
240
|
+
// FV(value) ∩ bound_vars_local = ∅ (variables ligadas localmente
|
|
241
|
+
// no pueden escapar a través del meta).
|
|
242
|
+
// En nuestro caso `env` contiene exactamente las variables ligadas del
|
|
243
|
+
// lado donde nace `value`; las FV del value que NO están en `env` son
|
|
244
|
+
// variables libres del objeto-lenguaje, que sí pueden aparecer en el
|
|
245
|
+
// binding del meta.
|
|
246
|
+
const fv = (0, normalize_1.freeVarsHO)(value);
|
|
247
|
+
for (const v of fv) {
|
|
248
|
+
if (env.has(v))
|
|
249
|
+
return false; // variable ligada local escapa → rechazar
|
|
250
|
+
}
|
|
251
|
+
subst[metaName] = value;
|
|
252
|
+
return true;
|
|
253
|
+
}
|
|
254
|
+
// ¿La meta `name` aparece (directa o transitivamente) en `t`?
|
|
255
|
+
function metaOccurs(name, t, subst) {
|
|
256
|
+
switch (t.kind) {
|
|
257
|
+
case 'var':
|
|
258
|
+
return false;
|
|
259
|
+
case 'meta': {
|
|
260
|
+
if (t.name === name)
|
|
261
|
+
return true;
|
|
262
|
+
const binding = subst[t.name];
|
|
263
|
+
return binding !== undefined ? metaOccurs(name, binding, subst) : false;
|
|
264
|
+
}
|
|
265
|
+
case 'abs':
|
|
266
|
+
return metaOccurs(name, t.body, subst);
|
|
267
|
+
case 'app':
|
|
268
|
+
if (metaOccurs(name, t.fn, subst))
|
|
269
|
+
return true;
|
|
270
|
+
for (const a of t.args) {
|
|
271
|
+
if (metaOccurs(name, a, subst))
|
|
272
|
+
return true;
|
|
273
|
+
}
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
// ---- Utilidad: proyección inversa para meta aplicada a variables ----
|
|
278
|
+
//
|
|
279
|
+
// Cuando se une M[y₁…yₙ] ≈ body (pattern case), el MGU es
|
|
280
|
+
// M ↦ λy₁…yₙ. body
|
|
281
|
+
// Esta función construye ese lambda dado el binding encontrado.
|
|
282
|
+
function buildLambdaBinding(params, body, avoidNames) {
|
|
283
|
+
// Usamos los params tal cual; si hay conflictos de nombres en body,
|
|
284
|
+
// la sustitución capture-avoiding de applyHOSubst se encarga.
|
|
285
|
+
let result = body;
|
|
286
|
+
for (let i = params.length - 1; i >= 0; i--) {
|
|
287
|
+
const p = params[i];
|
|
288
|
+
result = { kind: 'abs', param: p, body: result };
|
|
289
|
+
}
|
|
290
|
+
void avoidNames; // reservado para extensión
|
|
291
|
+
return result;
|
|
292
|
+
}
|
|
293
|
+
// Unifica M aplicada a variables ligadas con un cuerpo.
|
|
294
|
+
// Caso central del fragmento Miller: (M y₁ … yₙ) ≈ body
|
|
295
|
+
// donde yᵢ son variables ligadas distintas.
|
|
296
|
+
// Retorna HOSubst con M ↦ λy₁…yₙ. body, o null si no es patrón.
|
|
297
|
+
function unifyMetaApp(metaName, boundVars, body) {
|
|
298
|
+
// Verificar que boundVars son distintos
|
|
299
|
+
if (new Set(boundVars).size !== boundVars.length)
|
|
300
|
+
return null;
|
|
301
|
+
// Construir la abstracción
|
|
302
|
+
const avoid = (0, normalize_1.allNamesHO)(body);
|
|
303
|
+
const lambda = buildLambdaBinding(boundVars, body, avoid);
|
|
304
|
+
return { [metaName]: lambda };
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=unify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unify.js","sourceRoot":"","sources":["../../src/higher-order-unify/unify.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ export { solveCDCLv2 } from './solver/cdcl-v2';
|
|
|
33
33
|
export { evalParallel, shutdownPool } from './runtime/parallel';
|
|
34
34
|
export type { ParallelEvalOptions, ParallelEvalResult } from './runtime/parallel';
|
|
35
35
|
export { DerivationCache, hashFormula } from './runtime/memo';
|
|
36
|
+
export { TheoremCache, tryReuseProof } from './runtime/theorem-cache';
|
|
37
|
+
export type { CachedTheorem, CacheOptions as TheoremCacheOptions, CacheStats as TheoremCacheStats, ReuseResult as TheoremReuseResult, } from './runtime/theorem-cache';
|
|
36
38
|
export { streamEval } from './runtime/streaming';
|
|
37
39
|
export type { StreamEvent } from './runtime/streaming';
|
|
38
40
|
export { minimizeCountermodel } from './runtime/countermodel-min';
|
|
@@ -55,6 +57,8 @@ export { deriveWithCitations, explainProof } from './citation-reasoning';
|
|
|
55
57
|
export type { CitedClaim, CitationDerivation, CitationDerivationResult, DerivationStep, Evaluator, } from './citation-reasoning';
|
|
56
58
|
export { inferType, isInferError, reduceBeta, normalize, isNormal, termToProof, proofToTerm, proofIsConsistent, ProofConversionError, typeToString as chTypeToString, termToString as chTermToString, eqType as chEqType, } from './curry-howard';
|
|
57
59
|
export type { PropType, LambdaTerm, ProofTree, ProofRule, Context as CHContext, InferResult, } from './curry-howard';
|
|
60
|
+
export { mVar, mUniverse, mPi, mLam, mApp, mSigma, mPair, mFst, mSnd, mId, mRefl, mNat, mZero, mSucc, mArrow, inferType as mlttInferType, checkType as mlttCheckType, isInferError as mlttIsInferError, normalize as mlttNormalize, reduceStep as mlttReduceStep, isNormal as mlttIsNormal, alphaEq as mlttAlphaEq, alphaBetaEq as mlttAlphaBetaEq, substitute as mlttSubstitute, freeVars as mlttFreeVars, occursFree as mlttOccursFree, termToString as mlttTermToString, } from './mltt';
|
|
61
|
+
export type { MLTTTerm, InferContext as MLTTInferContext, InferResult as MLTTInferResult, } from './mltt';
|
|
58
62
|
export { v as lcVar, lam as lcLam, ap as lcAp, apN as lcApN, alphaEq as lcAlphaEq, termToString as lcTermToString, freeVars as lcFreeVars, substitute as lcSubstitute, alphaRename as lcAlphaRename, makeFreshSupply as lcMakeFreshSupply, betaStep as lcBetaStep, etaStep as lcEtaStep, normalize as lcNormalize, isNormalForm as lcIsNormalForm, isWeakHeadNormalForm as lcIsWHNF, I as lcI, K as lcK, S as lcS, Y as lcY, omega as lcOmega, omegaSmall as lcOmegaSmall, churchNumeral as lcChurchNumeral, decodeChurch as lcDecodeChurch, evalChurch as lcEvalChurch, churchSucc as lcChurchSucc, churchAdd as lcChurchAdd, churchMul as lcChurchMul, } from './lambda-calc';
|
|
59
63
|
export type { Term as LCTerm, BetaStrategy as LCBetaStrategy, NormalStrategy as LCNormalStrategy, NormalizeOpts as LCNormalizeOpts, NormalizeResult as LCNormalizeResult, } from './lambda-calc';
|
|
60
64
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,OAAO,EACP,cAAc,EACd,UAAU,EACV,MAAM,EACN,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,OAAO,CAAC;AAGf,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG5D,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGzF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG3F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,OAAO,EACP,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpG,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG3E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnG,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,SAAS,GACV,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,IAAI,cAAc,EAC9B,YAAY,IAAI,cAAc,EAC9B,MAAM,IAAI,QAAQ,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,IAAI,SAAS,EACpB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,CAAC,IAAI,KAAK,EACV,GAAG,IAAI,KAAK,EACZ,EAAE,IAAI,IAAI,EACV,GAAG,IAAI,KAAK,EACZ,OAAO,IAAI,SAAS,EACpB,YAAY,IAAI,cAAc,EAC9B,QAAQ,IAAI,UAAU,EACtB,UAAU,IAAI,YAAY,EAC1B,WAAW,IAAI,aAAa,EAC5B,eAAe,IAAI,iBAAiB,EACpC,QAAQ,IAAI,UAAU,EACtB,OAAO,IAAI,SAAS,EACpB,SAAS,IAAI,WAAW,EACxB,YAAY,IAAI,cAAc,EAC9B,oBAAoB,IAAI,QAAQ,EAChC,CAAC,IAAI,GAAG,EACR,CAAC,IAAI,GAAG,EACR,CAAC,IAAI,GAAG,EACR,CAAC,IAAI,GAAG,EACR,KAAK,IAAI,OAAO,EAChB,UAAU,IAAI,YAAY,EAC1B,aAAa,IAAI,eAAe,EAChC,YAAY,IAAI,cAAc,EAC9B,UAAU,IAAI,YAAY,EAC1B,UAAU,IAAI,YAAY,EAC1B,SAAS,IAAI,WAAW,EACxB,SAAS,IAAI,WAAW,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,IAAI,IAAI,MAAM,EACd,YAAY,IAAI,cAAc,EAC9B,cAAc,IAAI,gBAAgB,EAClC,aAAa,IAAI,eAAe,EAChC,eAAe,IAAI,iBAAiB,GACrC,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,8 +18,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
exports.TypeChecker = exports.typeCheck = exports.REPL = exports.ProtocolHandler = exports.Interpreter = exports.CycleError = exports.ClaimGraph = exports.registerInterpretation = exports.registerSource = exports.registerDefinition = exports.compileClaimsToTheory = exports.registerContext = exports.registerConfidence = exports.registerSupport = exports.registerClaim = exports.registerFormalization = exports.registerPassage = exports.parseAnchorPath = exports.createTextLayerState = exports.detectFallacies = exports.formulaToLaTeX = exports.formulaToUnicode = exports.PARALLEL_THRESHOLD = exports.workersAvailable = exports.dpllAsync = exports.dpll = exports.cdclAsync = exports.cdcl = exports.ParaconsistentBelnap = exports.ModalK = exports.ClassicalFirstOrder = exports.formulaToString = exports.ClassicalPropositional = exports.registry = exports.ProfileRegistry = exports.Parser = exports.KEYWORDS = exports.TokenType = exports.Lexer = exports.render = exports.completion = exports.gotoDefinition = exports.symbols = exports.hover = exports.listProfiles = exports.createInterpreter = exports.quickEval = exports.check = exports.parse = exports.evaluate = void 0;
|
|
21
|
-
exports.
|
|
22
|
-
exports.
|
|
21
|
+
exports.proofIsConsistent = exports.proofToTerm = exports.termToProof = exports.isNormal = exports.normalize = exports.reduceBeta = exports.isInferError = exports.inferType = exports.explainProof = exports.deriveWithCitations = exports.detectAvailableSMT = exports.SubprocessSMTBackend = exports.MockSMTBackend = exports.toSMTLIB = exports.generateLessonPath = exports.checkAnswer = exports.generateExercise = exports.SnapshotStore = exports.captureSnapshot = exports.generateKeyPair = exports.verifyProof = exports.signProof = exports.hashProof = exports.canonicalize = exports.toCNF = exports.skolemize = exports.unify = exports.proveFOL = exports.dotExport = exports.defends = exports.isConflictFree = exports.isAdmissible = exports.computeExtensions = exports.exportProofToCoq = exports.exportToCoq = exports.removeUnusedSubproofs = exports.compactModusPonensChain = exports.minifyProof = exports.minimizeCountermodel = exports.streamEval = exports.tryReuseProof = exports.TheoremCache = exports.hashFormula = exports.DerivationCache = exports.shutdownPool = exports.evalParallel = exports.solveCDCLv2 = exports.BaseASTVisitor = exports.visitProgram = exports.visit = void 0;
|
|
22
|
+
exports.lcY = exports.lcS = exports.lcK = exports.lcI = exports.lcIsWHNF = exports.lcIsNormalForm = exports.lcNormalize = exports.lcEtaStep = exports.lcBetaStep = exports.lcMakeFreshSupply = exports.lcAlphaRename = exports.lcSubstitute = exports.lcFreeVars = exports.lcTermToString = exports.lcAlphaEq = exports.lcApN = exports.lcAp = exports.lcLam = exports.lcVar = exports.mlttTermToString = exports.mlttOccursFree = exports.mlttFreeVars = exports.mlttSubstitute = exports.mlttAlphaBetaEq = exports.mlttAlphaEq = exports.mlttIsNormal = exports.mlttReduceStep = exports.mlttNormalize = exports.mlttIsInferError = exports.mlttCheckType = exports.mlttInferType = exports.mArrow = exports.mSucc = exports.mZero = exports.mNat = exports.mRefl = exports.mId = exports.mSnd = exports.mFst = exports.mPair = exports.mSigma = exports.mApp = exports.mLam = exports.mPi = exports.mUniverse = exports.mVar = exports.chEqType = exports.chTermToString = exports.chTypeToString = exports.ProofConversionError = void 0;
|
|
23
|
+
exports.lcChurchMul = exports.lcChurchAdd = exports.lcChurchSucc = exports.lcEvalChurch = exports.lcDecodeChurch = exports.lcChurchNumeral = exports.lcOmegaSmall = exports.lcOmega = void 0;
|
|
23
24
|
// API programática (uso recomendado para integración)
|
|
24
25
|
var api_1 = require("./api");
|
|
25
26
|
Object.defineProperty(exports, "evaluate", { enumerable: true, get: function () { return api_1.evaluate; } });
|
|
@@ -123,6 +124,10 @@ Object.defineProperty(exports, "shutdownPool", { enumerable: true, get: function
|
|
|
123
124
|
var memo_1 = require("./runtime/memo");
|
|
124
125
|
Object.defineProperty(exports, "DerivationCache", { enumerable: true, get: function () { return memo_1.DerivationCache; } });
|
|
125
126
|
Object.defineProperty(exports, "hashFormula", { enumerable: true, get: function () { return memo_1.hashFormula; } });
|
|
127
|
+
// Theorem cache (proof reuse persistente)
|
|
128
|
+
var theorem_cache_1 = require("./runtime/theorem-cache");
|
|
129
|
+
Object.defineProperty(exports, "TheoremCache", { enumerable: true, get: function () { return theorem_cache_1.TheoremCache; } });
|
|
130
|
+
Object.defineProperty(exports, "tryReuseProof", { enumerable: true, get: function () { return theorem_cache_1.tryReuseProof; } });
|
|
126
131
|
// Streaming
|
|
127
132
|
var streaming_1 = require("./runtime/streaming");
|
|
128
133
|
Object.defineProperty(exports, "streamEval", { enumerable: true, get: function () { return streaming_1.streamEval; } });
|
|
@@ -191,6 +196,35 @@ Object.defineProperty(exports, "ProofConversionError", { enumerable: true, get:
|
|
|
191
196
|
Object.defineProperty(exports, "chTypeToString", { enumerable: true, get: function () { return curry_howard_1.typeToString; } });
|
|
192
197
|
Object.defineProperty(exports, "chTermToString", { enumerable: true, get: function () { return curry_howard_1.termToString; } });
|
|
193
198
|
Object.defineProperty(exports, "chEqType", { enumerable: true, get: function () { return curry_howard_1.eqType; } });
|
|
199
|
+
// MLTT — Martin-Löf Type Theory (Π/Σ/Id/Nat + universos)
|
|
200
|
+
var mltt_1 = require("./mltt");
|
|
201
|
+
Object.defineProperty(exports, "mVar", { enumerable: true, get: function () { return mltt_1.mVar; } });
|
|
202
|
+
Object.defineProperty(exports, "mUniverse", { enumerable: true, get: function () { return mltt_1.mUniverse; } });
|
|
203
|
+
Object.defineProperty(exports, "mPi", { enumerable: true, get: function () { return mltt_1.mPi; } });
|
|
204
|
+
Object.defineProperty(exports, "mLam", { enumerable: true, get: function () { return mltt_1.mLam; } });
|
|
205
|
+
Object.defineProperty(exports, "mApp", { enumerable: true, get: function () { return mltt_1.mApp; } });
|
|
206
|
+
Object.defineProperty(exports, "mSigma", { enumerable: true, get: function () { return mltt_1.mSigma; } });
|
|
207
|
+
Object.defineProperty(exports, "mPair", { enumerable: true, get: function () { return mltt_1.mPair; } });
|
|
208
|
+
Object.defineProperty(exports, "mFst", { enumerable: true, get: function () { return mltt_1.mFst; } });
|
|
209
|
+
Object.defineProperty(exports, "mSnd", { enumerable: true, get: function () { return mltt_1.mSnd; } });
|
|
210
|
+
Object.defineProperty(exports, "mId", { enumerable: true, get: function () { return mltt_1.mId; } });
|
|
211
|
+
Object.defineProperty(exports, "mRefl", { enumerable: true, get: function () { return mltt_1.mRefl; } });
|
|
212
|
+
Object.defineProperty(exports, "mNat", { enumerable: true, get: function () { return mltt_1.mNat; } });
|
|
213
|
+
Object.defineProperty(exports, "mZero", { enumerable: true, get: function () { return mltt_1.mZero; } });
|
|
214
|
+
Object.defineProperty(exports, "mSucc", { enumerable: true, get: function () { return mltt_1.mSucc; } });
|
|
215
|
+
Object.defineProperty(exports, "mArrow", { enumerable: true, get: function () { return mltt_1.mArrow; } });
|
|
216
|
+
Object.defineProperty(exports, "mlttInferType", { enumerable: true, get: function () { return mltt_1.inferType; } });
|
|
217
|
+
Object.defineProperty(exports, "mlttCheckType", { enumerable: true, get: function () { return mltt_1.checkType; } });
|
|
218
|
+
Object.defineProperty(exports, "mlttIsInferError", { enumerable: true, get: function () { return mltt_1.isInferError; } });
|
|
219
|
+
Object.defineProperty(exports, "mlttNormalize", { enumerable: true, get: function () { return mltt_1.normalize; } });
|
|
220
|
+
Object.defineProperty(exports, "mlttReduceStep", { enumerable: true, get: function () { return mltt_1.reduceStep; } });
|
|
221
|
+
Object.defineProperty(exports, "mlttIsNormal", { enumerable: true, get: function () { return mltt_1.isNormal; } });
|
|
222
|
+
Object.defineProperty(exports, "mlttAlphaEq", { enumerable: true, get: function () { return mltt_1.alphaEq; } });
|
|
223
|
+
Object.defineProperty(exports, "mlttAlphaBetaEq", { enumerable: true, get: function () { return mltt_1.alphaBetaEq; } });
|
|
224
|
+
Object.defineProperty(exports, "mlttSubstitute", { enumerable: true, get: function () { return mltt_1.substitute; } });
|
|
225
|
+
Object.defineProperty(exports, "mlttFreeVars", { enumerable: true, get: function () { return mltt_1.freeVars; } });
|
|
226
|
+
Object.defineProperty(exports, "mlttOccursFree", { enumerable: true, get: function () { return mltt_1.occursFree; } });
|
|
227
|
+
Object.defineProperty(exports, "mlttTermToString", { enumerable: true, get: function () { return mltt_1.termToString; } });
|
|
194
228
|
// λ-cálculo untyped puro — β/η, estrategias, combinadores, Church numerals
|
|
195
229
|
var lambda_calc_1 = require("./lambda-calc");
|
|
196
230
|
Object.defineProperty(exports, "lcVar", { enumerable: true, get: function () { return lambda_calc_1.v; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"church.d.ts","sourceRoot":"","sources":["../../src/lambda-calc/church.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAKpC,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAO7C;AAKD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAenD;AAID,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,SAAO,GAAG,MAAM,GAAG,IAAI,CAIlE;AAGD,eAAO,MAAM,UAAU,EAAE,IAGxB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"church.d.ts","sourceRoot":"","sources":["../../src/lambda-calc/church.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAKpC,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAO7C;AAKD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAenD;AAID,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,SAAO,GAAG,MAAM,GAAG,IAAI,CAIlE;AAGD,eAAO,MAAM,UAAU,EAAE,IAGxB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,IAGvB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,IAAmE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"church.js","sourceRoot":"","sources":["../../src/lambda-calc/church.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gEAAgE;AAChE,+DAA+D;AAC/D,EAAE;AACF,+DAA+D;AAC/D,eAAe;AACf,iBAAiB;AACjB,EAAE;AACF,6BAA6B;AAC7B,kCAAkC;AAClC,2BAA2B;;;AAO3B,sCAOC;AAKD,oCAeC;AAID,gCAIC;AAvCD,mCAA0C;AAC1C,qCAAqC;AAErC,+CAA+C;AAC/C,SAAgB,aAAa,CAAC,CAAS;IACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,IAAI,GAAS,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,oEAAoE;AACpE,qEAAqE;AACrE,wDAAwD;AACxD,SAAgB,YAAY,CAAC,CAAO;IAClC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;IACrB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,GAAG,GAAS,KAAK,CAAC,IAAI,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAChE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACd,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6DAA6D;AAC7D,iCAAiC;AACjC,SAAgB,UAAU,CAAC,CAAO,EAAE,QAAQ,GAAG,IAAI;IACjD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,6BAA6B;AAChB,QAAA,UAAU,GAAS,IAAA,WAAG,EACjC,GAAG,EACH,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,WAAG,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC;AAEF,kCAAkC;AACrB,QAAA,SAAS,GAAS,IAAA,WAAG,EAChC,GAAG,EACH,IAAA,WAAG,
|
|
1
|
+
{"version":3,"file":"church.js","sourceRoot":"","sources":["../../src/lambda-calc/church.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combinators.d.ts","sourceRoot":"","sources":["../../src/lambda-calc/combinators.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAGpC,eAAO,MAAM,CAAC,EAAE,IAAuB,CAAC;AAExC,eAAO,MAAM,CAAC,EAAE,IAAiC,CAAC;AAElD,eAAO,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"combinators.d.ts","sourceRoot":"","sources":["../../src/lambda-calc/combinators.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAGpC,eAAO,MAAM,CAAC,EAAE,IAAuB,CAAC;AAExC,eAAO,MAAM,CAAC,EAAE,IAAiC,CAAC;AAElD,eAAO,MAAM,CAAC,EAAE,IAA4E,CAAC;AAG7F,eAAO,MAAM,CAAC,EAAE,IAGf,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,IAAmC,CAAC;AAG7D,eAAO,MAAM,KAAK,EAAE,IAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combinators.js","sourceRoot":"","sources":["../../src/lambda-calc/combinators.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,EAAE;AACF,cAAc;AACd,iBAAiB;AACjB,2BAA2B;AAC3B,wEAAwE;AACxE,eAAe;AACf,oEAAoE;;;AAGpE,mCAA0C;AAE7B,QAAA,CAAC,GAAS,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC;AAE3B,QAAA,CAAC,GAAS,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAErC,QAAA,CAAC,GAAS,IAAA,WAAG,
|
|
1
|
+
{"version":3,"file":"combinators.js","sourceRoot":"","sources":["../../src/lambda-calc/combinators.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,EAAE;AACF,cAAc;AACd,iBAAiB;AACjB,2BAA2B;AAC3B,wEAAwE;AACxE,eAAe;AACf,oEAAoE;;;AAGpE,mCAA0C;AAE7B,QAAA,CAAC,GAAS,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC;AAE3B,QAAA,CAAC,GAAS,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAErC,QAAA,CAAC,GAAS,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,WAAG,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7F,wBAAwB;AACX,QAAA,CAAC,GAAS,IAAA,WAAG,EACxB,GAAG,EACH,IAAA,UAAE,EAAC,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACvF,CAAC;AAEF,YAAY;AACC,QAAA,UAAU,GAAS,IAAA,WAAG,EAAC,GAAG,EAAE,IAAA,UAAE,EAAC,IAAA,SAAC,EAAC,GAAG,CAAC,EAAE,IAAA,SAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE7D,0DAA0D;AAC7C,QAAA,KAAK,GAAS,IAAA,UAAE,EAAC,kBAAU,EAAE,kBAAU,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { Term } from './types';
|
|
2
2
|
export { v, lam, ap, apN, alphaEq, termToString } from './types';
|
|
3
3
|
export { freeVars, substitute, alphaRename, makeFreshSupply } from './substitution';
|
|
4
|
-
export { betaStep, etaStep, normalize, isNormalForm, isWeakHeadNormalForm
|
|
4
|
+
export { betaStep, etaStep, normalize, isNormalForm, isWeakHeadNormalForm } from './reduce';
|
|
5
5
|
export type { BetaStrategy, NormalStrategy, NormalizeOpts, NormalizeResult } from './reduce';
|
|
6
6
|
export { I, K, S, Y, omega, omegaSmall } from './combinators';
|
|
7
7
|
export { churchNumeral, decodeChurch, evalChurch, churchSucc, churchAdd, churchMul, } from './church';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lambda-calc/index.ts"],"names":[],"mappings":"AAaA,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEpF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lambda-calc/index.ts"],"names":[],"mappings":"AAaA,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lambda-calc/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+CAA+C;AAC/C,+DAA+D;AAC/D,EAAE;AACF,OAAO;AACP,wCAAwC;AACxC,qCAAqC;AACrC,2DAA2D;AAC3D,2EAA2E;AAC3E,kDAAkD;AAClD,gEAAgE;AAChE,yDAAyD;;;AAGzD,iCAAiE;AAAxD,0FAAA,CAAC,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,2FAAA,EAAE,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,qGAAA,YAAY,OAAA;AAE/C,+CAAoF;AAA3E,wGAAA,QAAQ,OAAA;AAAE,0GAAA,UAAU,OAAA;AAAE,2GAAA,WAAW,OAAA;AAAE,+GAAA,eAAe,OAAA;AAE3D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lambda-calc/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+CAA+C;AAC/C,+DAA+D;AAC/D,EAAE;AACF,OAAO;AACP,wCAAwC;AACxC,qCAAqC;AACrC,2DAA2D;AAC3D,2EAA2E;AAC3E,kDAAkD;AAClD,gEAAgE;AAChE,yDAAyD;;;AAGzD,iCAAiE;AAAxD,0FAAA,CAAC,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,2FAAA,EAAE,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,qGAAA,YAAY,OAAA;AAE/C,+CAAoF;AAA3E,wGAAA,QAAQ,OAAA;AAAE,0GAAA,UAAU,OAAA;AAAE,2GAAA,WAAW,OAAA;AAAE,+GAAA,eAAe,OAAA;AAE3D,mCAA4F;AAAnF,kGAAA,QAAQ,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAGzE,6CAA8D;AAArD,gGAAA,CAAC,OAAA;AAAE,gGAAA,CAAC,OAAA;AAAE,gGAAA,CAAC,OAAA;AAAE,gGAAA,CAAC,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,yGAAA,UAAU,OAAA;AAEtC,mCAOkB;AANhB,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MLTTTerm } from './types';
|
|
2
|
+
/** α-equivalencia estructural sobre términos (no normaliza). */
|
|
3
|
+
export declare function alphaEq(a: MLTTTerm, b: MLTTTerm): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Igualdad αβ (definicional): normaliza ambos y luego compara α.
|
|
6
|
+
* `ctx` reservado para implementaciones futuras (η, definitional unfolding).
|
|
7
|
+
*/
|
|
8
|
+
export declare function alphaBetaEq(a: MLTTTerm, b: MLTTTerm, _ctx?: Map<string, MLTTTerm>): boolean;
|
|
9
|
+
//# sourceMappingURL=equality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equality.d.ts","sourceRoot":"","sources":["../../src/mltt/equality.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAyDzD;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,OAAO,CAE3F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// MLTT — α-equivalencia y igualdad definicional (αβ-equality)
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Igualdad definicional ≡ normalizamos ambos lados (β + ι) y
|
|
7
|
+
// comparamos módulo α-renombrado de binders.
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.alphaEq = alphaEq;
|
|
10
|
+
exports.alphaBetaEq = alphaBetaEq;
|
|
11
|
+
const normalize_1 = require("./normalize");
|
|
12
|
+
const substitute_1 = require("./substitute");
|
|
13
|
+
/** α-equivalencia estructural sobre términos (no normaliza). */
|
|
14
|
+
function alphaEq(a, b) {
|
|
15
|
+
if (a.kind !== b.kind)
|
|
16
|
+
return false;
|
|
17
|
+
switch (a.kind) {
|
|
18
|
+
case 'var':
|
|
19
|
+
return a.name === b.name;
|
|
20
|
+
case 'universe':
|
|
21
|
+
return a.level === b.level;
|
|
22
|
+
case 'nat':
|
|
23
|
+
case 'zero':
|
|
24
|
+
return true;
|
|
25
|
+
case 'succ':
|
|
26
|
+
return alphaEq(a.arg, b.arg);
|
|
27
|
+
case 'app': {
|
|
28
|
+
const bb = b;
|
|
29
|
+
return alphaEq(a.fn, bb.fn) && alphaEq(a.arg, bb.arg);
|
|
30
|
+
}
|
|
31
|
+
case 'pair': {
|
|
32
|
+
const bb = b;
|
|
33
|
+
return alphaEq(a.fst, bb.fst) && alphaEq(a.snd, bb.snd);
|
|
34
|
+
}
|
|
35
|
+
case 'fst':
|
|
36
|
+
case 'snd': {
|
|
37
|
+
const bb = b;
|
|
38
|
+
return alphaEq(a.pair, bb.pair);
|
|
39
|
+
}
|
|
40
|
+
case 'identity': {
|
|
41
|
+
const bb = b;
|
|
42
|
+
return alphaEq(a.type, bb.type) && alphaEq(a.left, bb.left) && alphaEq(a.right, bb.right);
|
|
43
|
+
}
|
|
44
|
+
case 'refl':
|
|
45
|
+
return alphaEq(a.term, b.term);
|
|
46
|
+
case 'pi':
|
|
47
|
+
case 'sigma': {
|
|
48
|
+
const bb = b;
|
|
49
|
+
const aDom = a.kind === 'pi' ? a.domain : a.first;
|
|
50
|
+
const bDom = bb.kind === 'pi' ? bb.domain : bb.first;
|
|
51
|
+
const aCod = a.kind === 'pi' ? a.codomain : a.second;
|
|
52
|
+
const bCod = bb.kind === 'pi' ? bb.codomain : bb.second;
|
|
53
|
+
if (!alphaEq(aDom, bDom))
|
|
54
|
+
return false;
|
|
55
|
+
if (a.bind === bb.bind)
|
|
56
|
+
return alphaEq(aCod, bCod);
|
|
57
|
+
const fresh = `__α${alphaCounter++}`;
|
|
58
|
+
return alphaEq((0, substitute_1.substitute)(aCod, a.bind, { kind: 'var', name: fresh }), (0, substitute_1.substitute)(bCod, bb.bind, { kind: 'var', name: fresh }));
|
|
59
|
+
}
|
|
60
|
+
case 'lam': {
|
|
61
|
+
const bb = b;
|
|
62
|
+
if (!alphaEq(a.domain, bb.domain))
|
|
63
|
+
return false;
|
|
64
|
+
if (a.bind === bb.bind)
|
|
65
|
+
return alphaEq(a.body, bb.body);
|
|
66
|
+
const fresh = `__α${alphaCounter++}`;
|
|
67
|
+
return alphaEq((0, substitute_1.substitute)(a.body, a.bind, { kind: 'var', name: fresh }), (0, substitute_1.substitute)(bb.body, bb.bind, { kind: 'var', name: fresh }));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
let alphaCounter = 0;
|
|
72
|
+
/**
|
|
73
|
+
* Igualdad αβ (definicional): normaliza ambos y luego compara α.
|
|
74
|
+
* `ctx` reservado para implementaciones futuras (η, definitional unfolding).
|
|
75
|
+
*/
|
|
76
|
+
function alphaBetaEq(a, b, _ctx) {
|
|
77
|
+
return alphaEq((0, normalize_1.normalize)(a), (0, normalize_1.normalize)(b));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=equality.js.map
|