@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,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// SKI combinatory logic — Reducción
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Reglas (weak reduction, leftmost-outermost):
|
|
7
|
+
// I x → x
|
|
8
|
+
// K x y → x (descarta `y` aunque éste tenga redex propios)
|
|
9
|
+
// S x y z → x z (y z)
|
|
10
|
+
//
|
|
11
|
+
// `reduceStep` aplica un único paso si encuentra un redex en la
|
|
12
|
+
// cabeza o, si no, baja por las ramas siguiendo orden
|
|
13
|
+
// leftmost-outermost. Como no hay binders ni captura, no se requiere
|
|
14
|
+
// renombrar; la sustitución es pegado físico de subárboles.
|
|
15
|
+
//
|
|
16
|
+
// La forma normal SKI puede no existir (e.g. términos divergentes
|
|
17
|
+
// equivalentes a Ω), por lo que `normalize` recibe `maxSteps`.
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.reduceStep = reduceStep;
|
|
20
|
+
exports.normalize = normalize;
|
|
21
|
+
exports.isNormalForm = isNormalForm;
|
|
22
|
+
// Devuelve el término reducido en UN paso, o `null` si no hay redex.
|
|
23
|
+
function reduceStep(t) {
|
|
24
|
+
// Intenta primero un paso en la posición de cabeza.
|
|
25
|
+
const head = reduceHead(t);
|
|
26
|
+
if (head !== null)
|
|
27
|
+
return head;
|
|
28
|
+
// Si no hay redex en cabeza, baja recursivamente.
|
|
29
|
+
switch (t.kind) {
|
|
30
|
+
case 'app': {
|
|
31
|
+
const fn2 = reduceStep(t.fn);
|
|
32
|
+
if (fn2 !== null)
|
|
33
|
+
return { kind: 'app', fn: fn2, arg: t.arg };
|
|
34
|
+
const arg2 = reduceStep(t.arg);
|
|
35
|
+
if (arg2 !== null)
|
|
36
|
+
return { kind: 'app', fn: t.fn, arg: arg2 };
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
default:
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Intenta una reducción en la posición de cabeza del término.
|
|
44
|
+
// Devuelve `null` si no hay redex de cabeza.
|
|
45
|
+
function reduceHead(t) {
|
|
46
|
+
if (t.kind !== 'app')
|
|
47
|
+
return null;
|
|
48
|
+
// Junta la cabeza (combinador o variable) con sus argumentos
|
|
49
|
+
// recorridos por la espina izquierda.
|
|
50
|
+
const spine = [];
|
|
51
|
+
let cursor = t;
|
|
52
|
+
while (cursor.kind === 'app') {
|
|
53
|
+
spine.unshift(cursor.arg);
|
|
54
|
+
cursor = cursor.fn;
|
|
55
|
+
}
|
|
56
|
+
// `cursor` es la cabeza definitiva (S/K/I/var); `spine` son los args
|
|
57
|
+
// aplicados de izquierda a derecha.
|
|
58
|
+
switch (cursor.kind) {
|
|
59
|
+
case 'I': {
|
|
60
|
+
const x = spine[0];
|
|
61
|
+
if (x === undefined)
|
|
62
|
+
return null;
|
|
63
|
+
// I x rest... → x rest...
|
|
64
|
+
return rebuild(x, spine.slice(1));
|
|
65
|
+
}
|
|
66
|
+
case 'K': {
|
|
67
|
+
const x = spine[0];
|
|
68
|
+
const y = spine[1];
|
|
69
|
+
if (x === undefined || y === undefined)
|
|
70
|
+
return null;
|
|
71
|
+
// K x y rest... → x rest... (y se descarta)
|
|
72
|
+
return rebuild(x, spine.slice(2));
|
|
73
|
+
}
|
|
74
|
+
case 'S': {
|
|
75
|
+
const x = spine[0];
|
|
76
|
+
const y = spine[1];
|
|
77
|
+
const z = spine[2];
|
|
78
|
+
if (x === undefined || y === undefined || z === undefined)
|
|
79
|
+
return null;
|
|
80
|
+
// S x y z rest... → (x z (y z)) rest...
|
|
81
|
+
const reduced = {
|
|
82
|
+
kind: 'app',
|
|
83
|
+
fn: { kind: 'app', fn: x, arg: z },
|
|
84
|
+
arg: { kind: 'app', fn: y, arg: z },
|
|
85
|
+
};
|
|
86
|
+
return rebuild(reduced, spine.slice(3));
|
|
87
|
+
}
|
|
88
|
+
default:
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Reconstruye `head arg0 arg1 ...` como aplicación asociativa a la izquierda.
|
|
93
|
+
function rebuild(head, args) {
|
|
94
|
+
let acc = head;
|
|
95
|
+
for (const a of args) {
|
|
96
|
+
acc = { kind: 'app', fn: acc, arg: a };
|
|
97
|
+
}
|
|
98
|
+
return acc;
|
|
99
|
+
}
|
|
100
|
+
// Itera reducciones hasta forma normal o agotar `maxSteps`.
|
|
101
|
+
// `terminated=true` significa que no quedan redex (forma normal SKI);
|
|
102
|
+
// `false` indica que se alcanzó el cap (típico para términos divergentes).
|
|
103
|
+
function normalize(t, maxSteps = 1000) {
|
|
104
|
+
let current = t;
|
|
105
|
+
let steps = 0;
|
|
106
|
+
for (; steps < maxSteps; steps += 1) {
|
|
107
|
+
const next = reduceStep(current);
|
|
108
|
+
if (next === null)
|
|
109
|
+
return { result: current, steps, terminated: true };
|
|
110
|
+
current = next;
|
|
111
|
+
}
|
|
112
|
+
return { result: current, steps, terminated: false };
|
|
113
|
+
}
|
|
114
|
+
// ¿No hay más redex aplicable?
|
|
115
|
+
function isNormalForm(t) {
|
|
116
|
+
return reduceStep(t) === null;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=reduce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../src/combinators-ski/reduce.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type CTerm = {
|
|
2
|
+
kind: 'S';
|
|
3
|
+
} | {
|
|
4
|
+
kind: 'K';
|
|
5
|
+
} | {
|
|
6
|
+
kind: 'I';
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'var';
|
|
9
|
+
name: string;
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'app';
|
|
12
|
+
fn: CTerm;
|
|
13
|
+
arg: CTerm;
|
|
14
|
+
};
|
|
15
|
+
export declare const S: () => CTerm;
|
|
16
|
+
export declare const K: () => CTerm;
|
|
17
|
+
export declare const I: () => CTerm;
|
|
18
|
+
export declare const cvar: (name: string) => CTerm;
|
|
19
|
+
export declare function app(...ts: CTerm[]): CTerm;
|
|
20
|
+
export declare function ctermEq(a: CTerm, b: CTerm): boolean;
|
|
21
|
+
export declare function termToString(t: CTerm): string;
|
|
22
|
+
export declare function freeVars(t: CTerm): Set<string>;
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/combinators-ski/types.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,KAAK,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC;AAG3C,eAAO,MAAM,CAAC,QAAO,KAAwB,CAAC;AAC9C,eAAO,MAAM,CAAC,QAAO,KAAwB,CAAC;AAC9C,eAAO,MAAM,CAAC,QAAO,KAAwB,CAAC;AAC9C,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,KAAgC,CAAC;AAIrE,wBAAgB,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAYzC;AAGD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAcnD;AAID,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAgB7C;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAI9C"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// SKI combinatory logic — Términos y constructores
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Sistema base de combinadores S, K, I (Schönfinkel / Curry). Es
|
|
7
|
+
// Turing-completo y equivalente al λ-cálculo, pero sin variables
|
|
8
|
+
// ligadas: toda función se construye combinando S, K, I y variables
|
|
9
|
+
// libres mediante aplicación. Las λ-abstracciones se "eliminan"
|
|
10
|
+
// vía bracket abstraction (ver `abstract.ts`).
|
|
11
|
+
//
|
|
12
|
+
// Reglas de reducción:
|
|
13
|
+
// I x → x
|
|
14
|
+
// K x y → x
|
|
15
|
+
// S x y z → x z (y z)
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.cvar = exports.I = exports.K = exports.S = void 0;
|
|
18
|
+
exports.app = app;
|
|
19
|
+
exports.ctermEq = ctermEq;
|
|
20
|
+
exports.termToString = termToString;
|
|
21
|
+
exports.freeVars = freeVars;
|
|
22
|
+
// ---------- Constructores convenientes ----------
|
|
23
|
+
const S = () => ({ kind: 'S' });
|
|
24
|
+
exports.S = S;
|
|
25
|
+
const K = () => ({ kind: 'K' });
|
|
26
|
+
exports.K = K;
|
|
27
|
+
const I = () => ({ kind: 'I' });
|
|
28
|
+
exports.I = I;
|
|
29
|
+
const cvar = (name) => ({ kind: 'var', name });
|
|
30
|
+
exports.cvar = cvar;
|
|
31
|
+
// Aplicación n-aria asociativa a la izquierda: app(f, a, b, c) = ((f a) b) c.
|
|
32
|
+
// Con un solo argumento devuelve el término tal cual; sin argumentos lanza.
|
|
33
|
+
function app(...ts) {
|
|
34
|
+
const head = ts[0];
|
|
35
|
+
if (head === undefined) {
|
|
36
|
+
throw new Error('app() requiere al menos un término');
|
|
37
|
+
}
|
|
38
|
+
let acc = head;
|
|
39
|
+
for (let i = 1; i < ts.length; i += 1) {
|
|
40
|
+
const next = ts[i];
|
|
41
|
+
if (next === undefined)
|
|
42
|
+
break;
|
|
43
|
+
acc = { kind: 'app', fn: acc, arg: next };
|
|
44
|
+
}
|
|
45
|
+
return acc;
|
|
46
|
+
}
|
|
47
|
+
// Igualdad estructural (no hay alpha — no hay binders).
|
|
48
|
+
function ctermEq(a, b) {
|
|
49
|
+
if (a.kind !== b.kind)
|
|
50
|
+
return false;
|
|
51
|
+
switch (a.kind) {
|
|
52
|
+
case 'S':
|
|
53
|
+
case 'K':
|
|
54
|
+
case 'I':
|
|
55
|
+
return true;
|
|
56
|
+
case 'var':
|
|
57
|
+
return a.name === b.name;
|
|
58
|
+
case 'app': {
|
|
59
|
+
const bb = b;
|
|
60
|
+
return ctermEq(a.fn, bb.fn) && ctermEq(a.arg, bb.arg);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Pretty-printer. Aplicación asociativa a la izquierda: agrupa con
|
|
65
|
+
// paréntesis sólo cuando el argumento es a su vez una aplicación.
|
|
66
|
+
function termToString(t) {
|
|
67
|
+
switch (t.kind) {
|
|
68
|
+
case 'S':
|
|
69
|
+
return 'S';
|
|
70
|
+
case 'K':
|
|
71
|
+
return 'K';
|
|
72
|
+
case 'I':
|
|
73
|
+
return 'I';
|
|
74
|
+
case 'var':
|
|
75
|
+
return t.name;
|
|
76
|
+
case 'app': {
|
|
77
|
+
const fn = termToString(t.fn);
|
|
78
|
+
const arg = t.arg.kind === 'app' ? `(${termToString(t.arg)})` : termToString(t.arg);
|
|
79
|
+
return `${fn} ${arg}`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Variables libres del término (no hay ligadas en SKI puro).
|
|
84
|
+
function freeVars(t) {
|
|
85
|
+
const acc = new Set();
|
|
86
|
+
collect(t, acc);
|
|
87
|
+
return acc;
|
|
88
|
+
}
|
|
89
|
+
function collect(t, acc) {
|
|
90
|
+
switch (t.kind) {
|
|
91
|
+
case 'var':
|
|
92
|
+
acc.add(t.name);
|
|
93
|
+
return;
|
|
94
|
+
case 'app':
|
|
95
|
+
collect(t.fn, acc);
|
|
96
|
+
collect(t.arg, acc);
|
|
97
|
+
return;
|
|
98
|
+
default:
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/combinators-ski/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export interface CReal {
|
|
2
|
+
/**
|
|
3
|
+
* Devuelve una aproximación dyádica de x con error < 2^{-precision}.
|
|
4
|
+
* numerator / denominator ≈ x, denominator = 2^precision.
|
|
5
|
+
*/
|
|
6
|
+
approx(precision: number): {
|
|
7
|
+
numerator: bigint;
|
|
8
|
+
denominator: bigint;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/** Eleva 2 a un entero no negativo. */
|
|
12
|
+
declare function pow2(n: number): bigint;
|
|
13
|
+
/**
|
|
14
|
+
* Divide entero con "round half away from zero".
|
|
15
|
+
* shiftRight(x, k) ≈ x / 2^k redondeado.
|
|
16
|
+
* Garantiza |shiftRight(x,k) - x/2^k| ≤ 1/2.
|
|
17
|
+
*/
|
|
18
|
+
declare function shiftRight(x: bigint, k: number): bigint;
|
|
19
|
+
/**
|
|
20
|
+
* Calcula el número de bits del entero (|x| en binario).
|
|
21
|
+
* bitLength(0) = 0, bitLength(1) = 1, bitLength(7) = 3, bitLength(8) = 4.
|
|
22
|
+
*/
|
|
23
|
+
declare function bitLength(x: bigint): number;
|
|
24
|
+
export declare function fromInt(n: number | bigint): CReal;
|
|
25
|
+
export declare function fromRational(p: number | bigint, q: number | bigint): CReal;
|
|
26
|
+
export declare function neg(a: CReal): CReal;
|
|
27
|
+
export declare function abs(a: CReal): CReal;
|
|
28
|
+
/**
|
|
29
|
+
* add(a,b) a precisión p:
|
|
30
|
+
* pedimos a y b a precisión p+2.
|
|
31
|
+
* error de cada uno < 2^{-(p+2)} → error en a+b < 2·2^{-(p+2)} = 2^{-(p+1)}.
|
|
32
|
+
* Al pasar de escala p+2 a p (shift de 2), introducimos error
|
|
33
|
+
* de redondeo ≤ 1/2 en la unidad p, = 2^{-(p+1)}.
|
|
34
|
+
* Total: < 2^{-(p+1)} + 2^{-(p+1)} = 2^{-p}. ✓
|
|
35
|
+
*/
|
|
36
|
+
export declare function add(a: CReal, b: CReal): CReal;
|
|
37
|
+
export declare function sub(a: CReal, b: CReal): CReal;
|
|
38
|
+
/**
|
|
39
|
+
* mul(a,b) a precisión p:
|
|
40
|
+
* Necesitamos cotas sobre |a| y |b|. Tomamos una aproximación gruesa
|
|
41
|
+
* a precisión 0 para estimar el tamaño en bits.
|
|
42
|
+
* Sean |a| ≤ 2^A, |b| ≤ 2^B (con A,B no-negativos).
|
|
43
|
+
* Trabajamos a precisión p + A + B + 3.
|
|
44
|
+
* En esa escala el producto cabe y la cota de error queda < 2^{-p}.
|
|
45
|
+
*
|
|
46
|
+
* Detalle del error: si â = a + ε_a con |ε_a| < 2^{-w} y análogamente
|
|
47
|
+
* para b̂ (w = work precision en los operandos), entonces
|
|
48
|
+
* â·b̂ - a·b = a·ε_b + b·ε_a + ε_a·ε_b.
|
|
49
|
+
* |a·ε_b| ≤ 2^A · 2^{-w}, idem para b.
|
|
50
|
+
* Eligiendo w = p + A + B + 3 ese error queda < 2·2^{-(p+B+3)}
|
|
51
|
+
* acotado holgadamente por 2^{-(p+1)}, y el shift final añade otro
|
|
52
|
+
* 2^{-(p+1)}, dando < 2^{-p}.
|
|
53
|
+
*/
|
|
54
|
+
export declare function mul(a: CReal, b: CReal): CReal;
|
|
55
|
+
/**
|
|
56
|
+
* div(a,b) a precisión p (b ≠ 0).
|
|
57
|
+
* Encontramos k tal que |b| ≥ 2^{-k}.
|
|
58
|
+
* Necesitamos también cota superior A_bits sobre |a|.
|
|
59
|
+
* Trabajamos a precisión w = p + 2k + A_bits + 4.
|
|
60
|
+
*
|
|
61
|
+
* Si â = a + ε_a, b̂ = b + ε_b, entonces
|
|
62
|
+
* â/b̂ - a/b = (ε_a · b - a · ε_b) / (b · b̂).
|
|
63
|
+
* |b · b̂| ≥ (2^{-k}) · (2^{-k} - 2^{-w}) ≥ 2^{-2k-1}.
|
|
64
|
+
* |ε_a · b| ≤ 2^{-w} · (|b̂|+2^{-w}).
|
|
65
|
+
* |a · ε_b| ≤ |â+2^{-w}| · 2^{-w}.
|
|
66
|
+
* Tomando w = p + 2k + A_bits + 4 acotamos por < 2^{-p}.
|
|
67
|
+
*/
|
|
68
|
+
export declare function div(a: CReal, b: CReal): CReal;
|
|
69
|
+
/**
|
|
70
|
+
* sqrt(a) para a ≥ 0. Si a < 0 (detectado con cota), lanza.
|
|
71
|
+
* Implementación: Newton-Raphson en bigint sobre x² = N donde
|
|
72
|
+
* N = aprox(a) a precisión 2·prec + buffer. La raíz cuadrada entera
|
|
73
|
+
* de N da nuestra aproximación a √a a precisión prec.
|
|
74
|
+
*/
|
|
75
|
+
export declare function sqrt(a: CReal): CReal;
|
|
76
|
+
/** Raíz cuadrada entera (floor) de n ≥ 0 vía Newton. */
|
|
77
|
+
declare function isqrt(n: bigint): bigint;
|
|
78
|
+
/**
|
|
79
|
+
* compareWithEpsilon(a, b, epsPrec):
|
|
80
|
+
* Si |a - b| < 2^{-epsPrec}, devuelve 0 (indistinguibles).
|
|
81
|
+
* Si a > b + 2^{-epsPrec}, devuelve 1.
|
|
82
|
+
* Si a < b - 2^{-epsPrec}, devuelve -1.
|
|
83
|
+
*
|
|
84
|
+
* Implementación: comparamos aproximaciones a precisión epsPrec + 3.
|
|
85
|
+
* |aw/2^w - a| < 2^{-w}, idem b. Entonces
|
|
86
|
+
* (aw - bw)/2^w está dentro de (a - b) ± 2·2^{-w}.
|
|
87
|
+
* Eligiendo w = epsPrec + 3:
|
|
88
|
+
* • Si (aw - bw) > 2^{w - epsPrec} + 2 = 8 + 2 = 10 (en escala w),
|
|
89
|
+
* entonces a - b > 2^{-epsPrec}, devolvemos 1.
|
|
90
|
+
* • Análogo para -10.
|
|
91
|
+
* • En otro caso, devolvemos 0.
|
|
92
|
+
*/
|
|
93
|
+
export declare function compareWithEpsilon(a: CReal, b: CReal, epsilonPrecision: number): -1 | 0 | 1;
|
|
94
|
+
/**
|
|
95
|
+
* toString(r, digits): representación decimal con `digits` dígitos
|
|
96
|
+
* después del punto. Usa precisión binaria suficiente:
|
|
97
|
+
* 2^p > 10^digits ⇔ p > digits · log2(10) ≈ digits · 3.322.
|
|
98
|
+
* Tomamos p = ceil(digits · 4) + 8 para holgura.
|
|
99
|
+
*/
|
|
100
|
+
export declare function toString(r: CReal, digits: number): string;
|
|
101
|
+
/**
|
|
102
|
+
* exp(x) = Σ x^k / k!. Para que la serie converja rápido reducimos
|
|
103
|
+
* primero el argumento: escribimos x = q · ln(2) + r con |r| ≤ ln(2)/2
|
|
104
|
+
* usando q = round(x / ln(2)). Luego exp(x) = 2^q · exp(r).
|
|
105
|
+
*
|
|
106
|
+
* Para esta versión inicial hacemos una reducción más simple: si
|
|
107
|
+
* |x| > 1, dividimos por 2^k hasta que |x/2^k| < 1, calculamos
|
|
108
|
+
* exp(x/2^k) por serie, y elevamos al cuadrado k veces (exp(y)² = exp(2y)).
|
|
109
|
+
* Esto mantiene la convergencia de la serie acotada a ~prec términos.
|
|
110
|
+
*/
|
|
111
|
+
export declare function exp(x: CReal): CReal;
|
|
112
|
+
export declare function log(x: CReal): CReal;
|
|
113
|
+
export declare function sin(x: CReal): CReal;
|
|
114
|
+
export declare function cos(x: CReal): CReal;
|
|
115
|
+
/**
|
|
116
|
+
* pow(a, b) = exp(b · log(a)) para a > 0.
|
|
117
|
+
* Caso especial: si b es un entero, hacemos exponenciación rápida
|
|
118
|
+
* sobre CReal para evitar log de a (lo que permite a ≤ 0 si b es entero).
|
|
119
|
+
*/
|
|
120
|
+
export declare function pow(a: CReal, b: CReal | number): CReal;
|
|
121
|
+
export declare const PI: CReal;
|
|
122
|
+
export declare const E: CReal;
|
|
123
|
+
export declare const SQRT2: CReal;
|
|
124
|
+
/** @internal Exposed for whitebox tests. */
|
|
125
|
+
export declare const __internals: {
|
|
126
|
+
shiftRight: typeof shiftRight;
|
|
127
|
+
bitLength: typeof bitLength;
|
|
128
|
+
isqrt: typeof isqrt;
|
|
129
|
+
pow2: typeof pow2;
|
|
130
|
+
};
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constructive-reals/index.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,KAAK;IACpB;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAID,uCAAuC;AACvC,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/B;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;GAGG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpC;AA8DD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CASjD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAuB1E;AAID,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAGnC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAMnC;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAQ7C;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAQ7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAoB7C;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CA2B7C;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAoBpC;AAED,wDAAwD;AACxD,iBAAS,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAahC;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAW3F;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAWD;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAqCnC;AAwBD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CA0CnC;AA6CD,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAiBnC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAenC;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAmBtD;AA2CD,eAAO,MAAM,EAAE,EAAE,KAAuC,CAAC;AAmBzD,eAAO,MAAM,CAAC,EAAE,KAAsC,CAAC;AAYvD,eAAO,MAAM,KAAK,EAAE,KAA0C,CAAC;AAI/D,4CAA4C;AAC5C,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC"}
|