@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,36 @@
|
|
|
1
|
+
export type Polarity = 'pos' | 'neg';
|
|
2
|
+
export type MLLFormula = {
|
|
3
|
+
kind: 'atom';
|
|
4
|
+
name: string;
|
|
5
|
+
polarity: Polarity;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'tensor';
|
|
8
|
+
left: MLLFormula;
|
|
9
|
+
right: MLLFormula;
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'par';
|
|
12
|
+
left: MLLFormula;
|
|
13
|
+
right: MLLFormula;
|
|
14
|
+
};
|
|
15
|
+
export type LinkKind = 'axiom' | 'cut' | 'tensor' | 'par';
|
|
16
|
+
export interface ProofNetLink {
|
|
17
|
+
kind: LinkKind;
|
|
18
|
+
ports: number[];
|
|
19
|
+
}
|
|
20
|
+
export interface ProofNetNode {
|
|
21
|
+
id: number;
|
|
22
|
+
formula: MLLFormula;
|
|
23
|
+
}
|
|
24
|
+
export interface ProofNet {
|
|
25
|
+
nodes: ProofNetNode[];
|
|
26
|
+
links: ProofNetLink[];
|
|
27
|
+
conclusions: number[];
|
|
28
|
+
}
|
|
29
|
+
export declare const atomPos: (name: string) => MLLFormula;
|
|
30
|
+
export declare const atomNeg: (name: string) => MLLFormula;
|
|
31
|
+
export declare const tensor: (left: MLLFormula, right: MLLFormula) => MLLFormula;
|
|
32
|
+
export declare const par: (left: MLLFormula, right: MLLFormula) => MLLFormula;
|
|
33
|
+
export declare function dual(f: MLLFormula): MLLFormula;
|
|
34
|
+
export declare function formulaEquals(a: MLLFormula, b: MLLFormula): boolean;
|
|
35
|
+
export declare function formulaToString(f: MLLFormula): string;
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/proof-nets/types.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAErC,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;AAO1D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAID,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,KAAG,UAIrC,CAAC;AAEH,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,KAAG,UAIrC,CAAC;AAEH,eAAO,MAAM,MAAM,GAAI,MAAM,UAAU,EAAE,OAAO,UAAU,KAAG,UAI3D,CAAC;AAEH,eAAO,MAAM,GAAG,GAAI,MAAM,UAAU,EAAE,OAAO,UAAU,KAAG,UAIxD,CAAC;AAGH,wBAAgB,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,CAS9C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAWnE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CASrD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Proof Nets — Tipos para MLL (Multiplicative Linear Logic)
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Proof nets de Girard: representación gráfica de pruebas en
|
|
7
|
+
// linear logic sin "bureaucracy" de orden estructural.
|
|
8
|
+
//
|
|
9
|
+
// Para MLL puro sólo aparecen dos conectivos:
|
|
10
|
+
// ⊗ (tensor) — multiplicativo positivo
|
|
11
|
+
// ⅋ (par) — multiplicativo negativo
|
|
12
|
+
//
|
|
13
|
+
// Los átomos llevan polaridad explícita (A vs A⊥); la dualidad
|
|
14
|
+
// satisface (A⊥)⊥ = A, (A⊗B)⊥ = A⊥ ⅋ B⊥, (A⅋B)⊥ = A⊥ ⊗ B⊥.
|
|
15
|
+
//
|
|
16
|
+
// Un nodo del net es la ocurrencia de una fórmula en algún punto
|
|
17
|
+
// del grafo. Un link une nodos con la semántica habitual:
|
|
18
|
+
// axiom : dos nodos duales, frescos como hojas del net.
|
|
19
|
+
// cut : dos nodos duales, no aportan a la conclusión.
|
|
20
|
+
// tensor : tres nodos {premisa-izq, premisa-der, conclusión}.
|
|
21
|
+
// par : tres nodos {premisa-izq, premisa-der, conclusión}.
|
|
22
|
+
//
|
|
23
|
+
// Las conclusiones del net son los ids de los nodos que viven en
|
|
24
|
+
// el "borde": ni premisa de tensor/par, ni participan en un cut.
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.par = exports.tensor = exports.atomNeg = exports.atomPos = void 0;
|
|
27
|
+
exports.dual = dual;
|
|
28
|
+
exports.formulaEquals = formulaEquals;
|
|
29
|
+
exports.formulaToString = formulaToString;
|
|
30
|
+
// ---------- Constructores convenientes para fórmulas ----------
|
|
31
|
+
const atomPos = (name) => ({
|
|
32
|
+
kind: 'atom',
|
|
33
|
+
name,
|
|
34
|
+
polarity: 'pos',
|
|
35
|
+
});
|
|
36
|
+
exports.atomPos = atomPos;
|
|
37
|
+
const atomNeg = (name) => ({
|
|
38
|
+
kind: 'atom',
|
|
39
|
+
name,
|
|
40
|
+
polarity: 'neg',
|
|
41
|
+
});
|
|
42
|
+
exports.atomNeg = atomNeg;
|
|
43
|
+
const tensor = (left, right) => ({
|
|
44
|
+
kind: 'tensor',
|
|
45
|
+
left,
|
|
46
|
+
right,
|
|
47
|
+
});
|
|
48
|
+
exports.tensor = tensor;
|
|
49
|
+
const par = (left, right) => ({
|
|
50
|
+
kind: 'par',
|
|
51
|
+
left,
|
|
52
|
+
right,
|
|
53
|
+
});
|
|
54
|
+
exports.par = par;
|
|
55
|
+
// Dualidad lineal: involutiva, distribuye De Morgan sobre ⊗ / ⅋.
|
|
56
|
+
function dual(f) {
|
|
57
|
+
switch (f.kind) {
|
|
58
|
+
case 'atom':
|
|
59
|
+
return { kind: 'atom', name: f.name, polarity: f.polarity === 'pos' ? 'neg' : 'pos' };
|
|
60
|
+
case 'tensor':
|
|
61
|
+
return { kind: 'par', left: dual(f.left), right: dual(f.right) };
|
|
62
|
+
case 'par':
|
|
63
|
+
return { kind: 'tensor', left: dual(f.left), right: dual(f.right) };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function formulaEquals(a, b) {
|
|
67
|
+
if (a.kind !== b.kind)
|
|
68
|
+
return false;
|
|
69
|
+
switch (a.kind) {
|
|
70
|
+
case 'atom':
|
|
71
|
+
return a.name === b.name && a.polarity === b.polarity;
|
|
72
|
+
case 'tensor':
|
|
73
|
+
case 'par': {
|
|
74
|
+
const bb = b;
|
|
75
|
+
return formulaEquals(a.left, bb.left) && formulaEquals(a.right, bb.right);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function formulaToString(f) {
|
|
80
|
+
switch (f.kind) {
|
|
81
|
+
case 'atom':
|
|
82
|
+
return f.polarity === 'pos' ? f.name : `${f.name}⊥`;
|
|
83
|
+
case 'tensor':
|
|
84
|
+
return `(${formulaToString(f.left)} ⊗ ${formulaToString(f.right)})`;
|
|
85
|
+
case 'par':
|
|
86
|
+
return `(${formulaToString(f.left)} ⅋ ${formulaToString(f.right)})`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/proof-nets/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type RefType, type RTerm } from './types';
|
|
2
|
+
export interface TypeCheckResult {
|
|
3
|
+
ok: boolean;
|
|
4
|
+
errors: string[];
|
|
5
|
+
type?: RefType;
|
|
6
|
+
vcs: string[];
|
|
7
|
+
}
|
|
8
|
+
export type RCtx = Map<string, RefType>;
|
|
9
|
+
/**
|
|
10
|
+
* typeCheck — API principal: chequea o sintetiza el tipo de `term`.
|
|
11
|
+
* Si `expected` se provee, valida contra ese tipo.
|
|
12
|
+
*/
|
|
13
|
+
export declare function typeCheck(term: RTerm, expected?: RefType, ctx?: RCtx): TypeCheckResult;
|
|
14
|
+
/**
|
|
15
|
+
* generateVC — colecta los predicados que deben mantenerse para que
|
|
16
|
+
* `term` sea bien tipado en `ctx`. Útil para inspección / debugging.
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateVC(term: RTerm, ctx?: RCtx): string[];
|
|
19
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/refinement-types/checker.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAOX,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,MAAM,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAgNxC;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,GAAE,IAAgB,GAAG,eAAe,CASjG;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAE,IAAgB,GAAG,MAAM,EAAE,CAKvE"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Refinement types — Type checker bidireccional
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// El checker es bidireccional en el sentido estándar:
|
|
7
|
+
// - synth : term → RefType (inferir el tipo)
|
|
8
|
+
// - check : term × RefType (chequear contra un tipo esperado)
|
|
9
|
+
//
|
|
10
|
+
// Genera predicados de verificación (VCs) cuando es necesario:
|
|
11
|
+
// - Aplicación: el argumento debe cumplir la precondición del parámetro.
|
|
12
|
+
// - Anotación let: el valor debe cumplir el predicado anotado.
|
|
13
|
+
// - Anotación contra `expected`: el tipo inferido debe ser subtipo.
|
|
14
|
+
//
|
|
15
|
+
// Las VCs se descargan con el solver acotado.
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.typeCheck = typeCheck;
|
|
18
|
+
exports.generateVC = generateVC;
|
|
19
|
+
const types_1 = require("./types");
|
|
20
|
+
const subtype_1 = require("./subtype");
|
|
21
|
+
const predicate_1 = require("./predicate");
|
|
22
|
+
function freshBinding(used, base = 'v') {
|
|
23
|
+
let i = 0;
|
|
24
|
+
let name = `_${base}${i}`;
|
|
25
|
+
while (used.has(name)) {
|
|
26
|
+
i++;
|
|
27
|
+
name = `_${base}${i}`;
|
|
28
|
+
}
|
|
29
|
+
used.add(name);
|
|
30
|
+
return name;
|
|
31
|
+
}
|
|
32
|
+
function ctxAssumptions(ctx) {
|
|
33
|
+
const out = [];
|
|
34
|
+
for (const [name, ty] of ctx.entries()) {
|
|
35
|
+
const pred = ty.predicate.trim();
|
|
36
|
+
if (pred === '' || pred === 'true')
|
|
37
|
+
continue;
|
|
38
|
+
if (typeof ty.base !== 'string')
|
|
39
|
+
continue; // arrows no aportan asunciones aritméticas
|
|
40
|
+
out.push((0, predicate_1.renameVar)(pred, ty.binding, name));
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
function singletonInt(value) {
|
|
45
|
+
return { base: 'Int', binding: 'v', predicate: `v == ${value}` };
|
|
46
|
+
}
|
|
47
|
+
function singletonBool(value) {
|
|
48
|
+
return { base: 'Bool', binding: 'v', predicate: `v == ${value}` };
|
|
49
|
+
}
|
|
50
|
+
function singletonString() {
|
|
51
|
+
return (0, types_1.tString)('v', 'true');
|
|
52
|
+
}
|
|
53
|
+
function eqBase(a, b) {
|
|
54
|
+
if (typeof a === 'string' || typeof b === 'string')
|
|
55
|
+
return a === b;
|
|
56
|
+
return eqBase(a.from.base, b.from.base) && eqBase(a.to.base, b.to.base);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* synthesize — infiere un RefType para `term` en el contexto dado.
|
|
60
|
+
* Devuelve también la lista de VCs acumuladas y los errores fatales.
|
|
61
|
+
*/
|
|
62
|
+
function synthesize(term, ctx, errors, vcs) {
|
|
63
|
+
switch (term.kind) {
|
|
64
|
+
case 'lit':
|
|
65
|
+
if (typeof term.value === 'number')
|
|
66
|
+
return singletonInt(term.value);
|
|
67
|
+
if (typeof term.value === 'boolean')
|
|
68
|
+
return singletonBool(term.value);
|
|
69
|
+
return singletonString();
|
|
70
|
+
case 'var': {
|
|
71
|
+
const ty = ctx.get(term.name);
|
|
72
|
+
if (!ty) {
|
|
73
|
+
errors.push(`variable libre "${term.name}"`);
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
// Reflejamos el predicado de ctx como singleton sobre la variable.
|
|
77
|
+
if (typeof ty.base === 'string') {
|
|
78
|
+
const used = new Set(ctx.keys());
|
|
79
|
+
used.add(term.name);
|
|
80
|
+
const fresh = freshBinding(used);
|
|
81
|
+
const refl = `${fresh} == ${term.name}`;
|
|
82
|
+
const renamedPred = ty.predicate.trim() === '' || ty.predicate.trim() === 'true'
|
|
83
|
+
? refl
|
|
84
|
+
: `(${refl}) && ${(0, predicate_1.renameVar)(ty.predicate, ty.binding, term.name)}`;
|
|
85
|
+
return { base: ty.base, binding: fresh, predicate: renamedPred };
|
|
86
|
+
}
|
|
87
|
+
return ty;
|
|
88
|
+
}
|
|
89
|
+
case 'binop': {
|
|
90
|
+
const lt = synthesize(term.left, ctx, errors, vcs);
|
|
91
|
+
const rt = synthesize(term.right, ctx, errors, vcs);
|
|
92
|
+
if (!lt || !rt)
|
|
93
|
+
return undefined;
|
|
94
|
+
const arith = ['+', '-', '*'].includes(term.op);
|
|
95
|
+
const cmp = ['<', '<=', '>', '>=', '==', '!='].includes(term.op);
|
|
96
|
+
const bool = ['&&', '||'].includes(term.op);
|
|
97
|
+
if (arith) {
|
|
98
|
+
if (lt.base !== 'Int' || rt.base !== 'Int') {
|
|
99
|
+
errors.push(`binop ${term.op}: requiere Int, recibido ${(0, types_1.refTypeToString)(lt)} y ${(0, types_1.refTypeToString)(rt)}`);
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
return (0, types_1.tInt)('v', 'true');
|
|
103
|
+
}
|
|
104
|
+
if (cmp) {
|
|
105
|
+
if (lt.base !== rt.base) {
|
|
106
|
+
errors.push(`binop ${term.op}: lados de tipos distintos`);
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
return (0, types_1.tBool)('v', 'true');
|
|
110
|
+
}
|
|
111
|
+
if (bool) {
|
|
112
|
+
if (lt.base !== 'Bool' || rt.base !== 'Bool') {
|
|
113
|
+
errors.push(`binop ${term.op}: requiere Bool`);
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
return (0, types_1.tBool)('v', 'true');
|
|
117
|
+
}
|
|
118
|
+
errors.push(`binop desconocido ${term.op}`);
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
case 'if': {
|
|
122
|
+
const ct = synthesize(term.cond, ctx, errors, vcs);
|
|
123
|
+
if (!ct)
|
|
124
|
+
return undefined;
|
|
125
|
+
if (ct.base !== 'Bool') {
|
|
126
|
+
errors.push(`if: condición no booleana: ${(0, types_1.refTypeToString)(ct)}`);
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
const tt = synthesize(term.then, ctx, errors, vcs);
|
|
130
|
+
const et = synthesize(term.else, ctx, errors, vcs);
|
|
131
|
+
if (!tt || !et)
|
|
132
|
+
return undefined;
|
|
133
|
+
if (!eqBase(tt.base, et.base)) {
|
|
134
|
+
errors.push(`if: ramas de tipos distintos (${(0, types_1.refTypeToString)(tt)} vs ${(0, types_1.refTypeToString)(et)})`);
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
return { base: tt.base, binding: '_v', predicate: 'true' };
|
|
138
|
+
}
|
|
139
|
+
case 'lam': {
|
|
140
|
+
const newCtx = new Map(ctx);
|
|
141
|
+
newCtx.set(term.param, term.paramType);
|
|
142
|
+
const bodyTy = synthesize(term.body, newCtx, errors, vcs);
|
|
143
|
+
if (!bodyTy)
|
|
144
|
+
return undefined;
|
|
145
|
+
return {
|
|
146
|
+
base: { kind: 'arrow', from: term.paramType, to: bodyTy },
|
|
147
|
+
binding: '_f',
|
|
148
|
+
predicate: 'true',
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
case 'app': {
|
|
152
|
+
const ft = synthesize(term.fn, ctx, errors, vcs);
|
|
153
|
+
if (!ft)
|
|
154
|
+
return undefined;
|
|
155
|
+
if (typeof ft.base === 'string' || ft.base.kind !== 'arrow') {
|
|
156
|
+
errors.push(`app: lado izquierdo no es función: ${(0, types_1.refTypeToString)(ft)}`);
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const paramTy = ft.base.from;
|
|
160
|
+
const resTy = ft.base.to;
|
|
161
|
+
// Chequeamos que el argumento sea subtipo del paramType.
|
|
162
|
+
const ok = check(term.arg, paramTy, ctx, errors, vcs);
|
|
163
|
+
if (!ok)
|
|
164
|
+
return undefined;
|
|
165
|
+
return resTy;
|
|
166
|
+
}
|
|
167
|
+
case 'let': {
|
|
168
|
+
const valTy = synthesize(term.value, ctx, errors, vcs);
|
|
169
|
+
if (!valTy)
|
|
170
|
+
return undefined;
|
|
171
|
+
let boundTy = valTy;
|
|
172
|
+
if (term.bindType) {
|
|
173
|
+
const ok = check(term.value, term.bindType, ctx, errors, vcs);
|
|
174
|
+
if (!ok)
|
|
175
|
+
return undefined;
|
|
176
|
+
boundTy = term.bindType;
|
|
177
|
+
}
|
|
178
|
+
const newCtx = new Map(ctx);
|
|
179
|
+
newCtx.set(term.bind, boundTy);
|
|
180
|
+
return synthesize(term.body, newCtx, errors, vcs);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function check(term, expected, ctx, errors, vcs) {
|
|
185
|
+
const synth = synthesize(term, ctx, errors, vcs);
|
|
186
|
+
if (!synth)
|
|
187
|
+
return false;
|
|
188
|
+
if (!eqBase(synth.base, expected.base)) {
|
|
189
|
+
errors.push(`check: tipo base esperado ${(0, types_1.refTypeToString)(expected)}, obtenido ${(0, types_1.refTypeToString)(synth)} en ${(0, types_1.termToString)(term)}`);
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
// Fast-path: si el término es un literal, evaluamos el predicado esperado
|
|
193
|
+
// sustituyendo concretamente — esto es exacto y evita depender de la cota
|
|
194
|
+
// del solver bounded para literales grandes.
|
|
195
|
+
if (term.kind === 'lit') {
|
|
196
|
+
const predSrc = expected.predicate.trim();
|
|
197
|
+
if (predSrc === '' || predSrc === 'true')
|
|
198
|
+
return true;
|
|
199
|
+
try {
|
|
200
|
+
const ast = (0, predicate_1.parsePredicate)(predSrc);
|
|
201
|
+
const val = (0, predicate_1.evalPredicate)(ast, { [expected.binding]: term.value });
|
|
202
|
+
if (val === true)
|
|
203
|
+
return true;
|
|
204
|
+
const vc = `${expected.binding} = ${JSON.stringify(term.value)} ⇒ ${predSrc}`;
|
|
205
|
+
vcs.push(vc);
|
|
206
|
+
errors.push(`check: literal ${(0, types_1.termToString)(term)} no satisface ${(0, types_1.refTypeToString)(expected)}`);
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
errors.push(`check: error evaluando predicado: ${String(err)}`);
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
const assumptions = ctxAssumptions(ctx);
|
|
215
|
+
const sub = (0, subtype_1.isSubtype)(synth, expected, { extraAssumptions: assumptions });
|
|
216
|
+
if (!sub) {
|
|
217
|
+
const vc = `${synth.predicate} ⇒ ${expected.predicate}`;
|
|
218
|
+
vcs.push(vc);
|
|
219
|
+
errors.push(`check: no se pudo verificar ${(0, types_1.refTypeToString)(synth)} <: ${(0, types_1.refTypeToString)(expected)} (VC: ${vc})`);
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* typeCheck — API principal: chequea o sintetiza el tipo de `term`.
|
|
226
|
+
* Si `expected` se provee, valida contra ese tipo.
|
|
227
|
+
*/
|
|
228
|
+
function typeCheck(term, expected, ctx = new Map()) {
|
|
229
|
+
const errors = [];
|
|
230
|
+
const vcs = [];
|
|
231
|
+
if (expected) {
|
|
232
|
+
const ok = check(term, expected, ctx, errors, vcs);
|
|
233
|
+
return { ok, errors, type: ok ? expected : undefined, vcs };
|
|
234
|
+
}
|
|
235
|
+
const ty = synthesize(term, ctx, errors, vcs);
|
|
236
|
+
return { ok: errors.length === 0, errors, type: ty, vcs };
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* generateVC — colecta los predicados que deben mantenerse para que
|
|
240
|
+
* `term` sea bien tipado en `ctx`. Útil para inspección / debugging.
|
|
241
|
+
*/
|
|
242
|
+
function generateVC(term, ctx = new Map()) {
|
|
243
|
+
const errors = [];
|
|
244
|
+
const vcs = [];
|
|
245
|
+
synthesize(term, ctx, errors, vcs);
|
|
246
|
+
return vcs;
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/refinement-types/checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { BaseType, RefType, RTerm } from './types';
|
|
2
|
+
export { tInt, tBool, tString, tArrow, refine, rLit, rVar, rBinop, rIf, rLam, rApp, rLet, eqBase, eqRefType, baseToString, refTypeToString, termToString, } from './types';
|
|
3
|
+
export { typeCheck, generateVC } from './checker';
|
|
4
|
+
export type { TypeCheckResult, RCtx } from './checker';
|
|
5
|
+
export { isSubtype } from './subtype';
|
|
6
|
+
export type { SubtypeOpts } from './subtype';
|
|
7
|
+
export { checkVC, implies } from './solver';
|
|
8
|
+
export type { CheckResult, SolverOpts } from './solver';
|
|
9
|
+
export { parsePredicate, evalPredicate, freeVars as predicateFreeVars, substVar as predicateSubstVar, renameVar as predicateRenameVar, predicateToString, } from './predicate';
|
|
10
|
+
export type { PExpr, PEnv, PValue } from './predicate';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/refinement-types/index.ts"],"names":[],"mappings":"AAeA,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EACL,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EACL,cAAc,EACd,aAAa,EACb,QAAQ,IAAI,iBAAiB,EAC7B,QAAQ,IAAI,iBAAiB,EAC7B,SAAS,IAAI,kBAAkB,EAC/B,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Refinement types — Punto de entrada público
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Tipos refinados al estilo Liquid Haskell didáctico:
|
|
7
|
+
// { x : Int | P(x) }
|
|
8
|
+
//
|
|
9
|
+
// Capacidades:
|
|
10
|
+
// - typeCheck : sintetiza o chequea tipos refinados con VC
|
|
11
|
+
// generation y descarga acotada.
|
|
12
|
+
// - isSubtype : subtipado por implicación, contravarianza en
|
|
13
|
+
// parámetros de arrow.
|
|
14
|
+
// - generateVC: extrae los predicados que deben mantenerse.
|
|
15
|
+
// - checkVC : solver acotado SAT-like sobre enteros + booleanos.
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.predicateToString = exports.predicateRenameVar = exports.predicateSubstVar = exports.predicateFreeVars = exports.evalPredicate = exports.parsePredicate = exports.implies = exports.checkVC = exports.isSubtype = exports.generateVC = exports.typeCheck = exports.termToString = exports.refTypeToString = exports.baseToString = exports.eqRefType = exports.eqBase = exports.rLet = exports.rApp = exports.rLam = exports.rIf = exports.rBinop = exports.rVar = exports.rLit = exports.refine = exports.tArrow = exports.tString = exports.tBool = exports.tInt = void 0;
|
|
18
|
+
var types_1 = require("./types");
|
|
19
|
+
Object.defineProperty(exports, "tInt", { enumerable: true, get: function () { return types_1.tInt; } });
|
|
20
|
+
Object.defineProperty(exports, "tBool", { enumerable: true, get: function () { return types_1.tBool; } });
|
|
21
|
+
Object.defineProperty(exports, "tString", { enumerable: true, get: function () { return types_1.tString; } });
|
|
22
|
+
Object.defineProperty(exports, "tArrow", { enumerable: true, get: function () { return types_1.tArrow; } });
|
|
23
|
+
Object.defineProperty(exports, "refine", { enumerable: true, get: function () { return types_1.refine; } });
|
|
24
|
+
Object.defineProperty(exports, "rLit", { enumerable: true, get: function () { return types_1.rLit; } });
|
|
25
|
+
Object.defineProperty(exports, "rVar", { enumerable: true, get: function () { return types_1.rVar; } });
|
|
26
|
+
Object.defineProperty(exports, "rBinop", { enumerable: true, get: function () { return types_1.rBinop; } });
|
|
27
|
+
Object.defineProperty(exports, "rIf", { enumerable: true, get: function () { return types_1.rIf; } });
|
|
28
|
+
Object.defineProperty(exports, "rLam", { enumerable: true, get: function () { return types_1.rLam; } });
|
|
29
|
+
Object.defineProperty(exports, "rApp", { enumerable: true, get: function () { return types_1.rApp; } });
|
|
30
|
+
Object.defineProperty(exports, "rLet", { enumerable: true, get: function () { return types_1.rLet; } });
|
|
31
|
+
Object.defineProperty(exports, "eqBase", { enumerable: true, get: function () { return types_1.eqBase; } });
|
|
32
|
+
Object.defineProperty(exports, "eqRefType", { enumerable: true, get: function () { return types_1.eqRefType; } });
|
|
33
|
+
Object.defineProperty(exports, "baseToString", { enumerable: true, get: function () { return types_1.baseToString; } });
|
|
34
|
+
Object.defineProperty(exports, "refTypeToString", { enumerable: true, get: function () { return types_1.refTypeToString; } });
|
|
35
|
+
Object.defineProperty(exports, "termToString", { enumerable: true, get: function () { return types_1.termToString; } });
|
|
36
|
+
var checker_1 = require("./checker");
|
|
37
|
+
Object.defineProperty(exports, "typeCheck", { enumerable: true, get: function () { return checker_1.typeCheck; } });
|
|
38
|
+
Object.defineProperty(exports, "generateVC", { enumerable: true, get: function () { return checker_1.generateVC; } });
|
|
39
|
+
var subtype_1 = require("./subtype");
|
|
40
|
+
Object.defineProperty(exports, "isSubtype", { enumerable: true, get: function () { return subtype_1.isSubtype; } });
|
|
41
|
+
var solver_1 = require("./solver");
|
|
42
|
+
Object.defineProperty(exports, "checkVC", { enumerable: true, get: function () { return solver_1.checkVC; } });
|
|
43
|
+
Object.defineProperty(exports, "implies", { enumerable: true, get: function () { return solver_1.implies; } });
|
|
44
|
+
var predicate_1 = require("./predicate");
|
|
45
|
+
Object.defineProperty(exports, "parsePredicate", { enumerable: true, get: function () { return predicate_1.parsePredicate; } });
|
|
46
|
+
Object.defineProperty(exports, "evalPredicate", { enumerable: true, get: function () { return predicate_1.evalPredicate; } });
|
|
47
|
+
Object.defineProperty(exports, "predicateFreeVars", { enumerable: true, get: function () { return predicate_1.freeVars; } });
|
|
48
|
+
Object.defineProperty(exports, "predicateSubstVar", { enumerable: true, get: function () { return predicate_1.substVar; } });
|
|
49
|
+
Object.defineProperty(exports, "predicateRenameVar", { enumerable: true, get: function () { return predicate_1.renameVar; } });
|
|
50
|
+
Object.defineProperty(exports, "predicateToString", { enumerable: true, get: function () { return predicate_1.predicateToString; } });
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/refinement-types/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,8CAA8C;AAC9C,+DAA+D;AAC/D,EAAE;AACF,sDAAsD;AACtD,uBAAuB;AACvB,EAAE;AACF,eAAe;AACf,6DAA6D;AAC7D,iDAAiD;AACjD,+DAA+D;AAC/D,uCAAuC;AACvC,8DAA8D;AAC9D,qEAAqE;;;AAGrE,iCAkBiB;AAjBf,6FAAA,IAAI,OAAA;AACJ,8FAAA,KAAK,OAAA;AACL,gGAAA,OAAO,OAAA;AACP,+FAAA,MAAM,OAAA;AACN,+FAAA,MAAM,OAAA;AACN,6FAAA,IAAI,OAAA;AACJ,6FAAA,IAAI,OAAA;AACJ,+FAAA,MAAM,OAAA;AACN,4FAAA,GAAG,OAAA;AACH,6FAAA,IAAI,OAAA;AACJ,6FAAA,IAAI,OAAA;AACJ,6FAAA,IAAI,OAAA;AACJ,+FAAA,MAAM,OAAA;AACN,kGAAA,SAAS,OAAA;AACT,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA;AACf,qGAAA,YAAY,OAAA;AAGd,qCAAkD;AAAzC,oGAAA,SAAS,OAAA;AAAE,qGAAA,UAAU,OAAA;AAG9B,qCAAsC;AAA7B,oGAAA,SAAS,OAAA;AAGlB,mCAA4C;AAAnC,iGAAA,OAAO,OAAA;AAAE,iGAAA,OAAO,OAAA;AAGzB,yCAOqB;AANnB,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,8GAAA,QAAQ,OAAqB;AAC7B,8GAAA,QAAQ,OAAqB;AAC7B,+GAAA,SAAS,OAAsB;AAC/B,8GAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type PExpr = {
|
|
2
|
+
kind: 'num';
|
|
3
|
+
value: number;
|
|
4
|
+
} | {
|
|
5
|
+
kind: 'bool';
|
|
6
|
+
value: boolean;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'str';
|
|
9
|
+
value: string;
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'var';
|
|
12
|
+
name: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'unop';
|
|
15
|
+
op: '!' | '-';
|
|
16
|
+
arg: PExpr;
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'binop';
|
|
19
|
+
op: '+' | '-' | '*' | '/' | '<' | '<=' | '>' | '>=' | '==' | '!=' | '&&' | '||';
|
|
20
|
+
left: PExpr;
|
|
21
|
+
right: PExpr;
|
|
22
|
+
};
|
|
23
|
+
export declare function parsePredicate(src: string): PExpr;
|
|
24
|
+
export declare function freeVars(e: PExpr, acc?: Set<string>): Set<string>;
|
|
25
|
+
export declare function substVar(e: PExpr, name: string, replacement: PExpr): PExpr;
|
|
26
|
+
export declare function renameVar(predicate: string, fromName: string, toName: string): string;
|
|
27
|
+
export declare function predicateToString(e: PExpr): string;
|
|
28
|
+
export type PValue = number | boolean | string;
|
|
29
|
+
export type PEnv = Record<string, PValue>;
|
|
30
|
+
export declare function evalPredicate(e: PExpr, env: PEnv): PValue;
|
|
31
|
+
//# sourceMappingURL=predicate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../../src/refinement-types/predicate.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,KAAK,GACb;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,GAC3C;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAChF,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAoNN,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CASjD;AAID,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAgB5E;AAID,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,KAAK,CAkB1E;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrF;AAID,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAelD;AAID,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1C,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAkEzD"}
|