@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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Restricción n-aria de un CSP.
|
|
3
|
+
*
|
|
4
|
+
* - `vars` variables sobre las que aplica el predicado, en orden.
|
|
5
|
+
* - `predicate` función que recibe los valores alineados a `vars` y
|
|
6
|
+
* devuelve `true` si la tupla es admisible.
|
|
7
|
+
*
|
|
8
|
+
* Para AC-3 estricto sólo usamos restricciones binarias; para
|
|
9
|
+
* restricciones n-arias el algoritmo cae a forward-checking equivalente:
|
|
10
|
+
* cada restricción se evalúa cuando todas sus variables están asignadas.
|
|
11
|
+
*/
|
|
12
|
+
export interface Constraint<V, D> {
|
|
13
|
+
vars: V[];
|
|
14
|
+
predicate: (vals: D[]) => boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* CSP genérico. `variables` define el orden canónico; `domains` mapea
|
|
18
|
+
* cada variable a sus posibles valores. Las restricciones pueden ser
|
|
19
|
+
* binarias (sweet spot de AC-3) o n-arias.
|
|
20
|
+
*/
|
|
21
|
+
export interface CSP<V, D> {
|
|
22
|
+
variables: V[];
|
|
23
|
+
domains: Map<V, D[]>;
|
|
24
|
+
constraints: Constraint<V, D>[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resultado de una corrida de backtracking.
|
|
28
|
+
* - `solution` asignación completa o `null` si UNSAT.
|
|
29
|
+
* - `iterations` nodos del árbol de búsqueda visitados.
|
|
30
|
+
* - `failures` asignaciones que dispararon backtrack.
|
|
31
|
+
*/
|
|
32
|
+
export interface CSPResult<V, D> {
|
|
33
|
+
solution: Map<V, D> | null;
|
|
34
|
+
iterations: number;
|
|
35
|
+
failures: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Opciones de configuración para el solver.
|
|
39
|
+
* - `useAC3` aplica AC-3 antes de empezar (y opcionalmente tras cada
|
|
40
|
+
* asignación si `maintainAC3` está activo).
|
|
41
|
+
* - `mrv` heurística "Minimum Remaining Values" para elegir la
|
|
42
|
+
* próxima variable: la de dominio reducido más pequeño.
|
|
43
|
+
* - `lcv` heurística "Least Constraining Value" para ordenar
|
|
44
|
+
* valores: probar primero el que menos restringe a vecinos.
|
|
45
|
+
* - `maxIterations` corta la búsqueda tras N nodos (defensa contra
|
|
46
|
+
* explosión combinatoria).
|
|
47
|
+
*/
|
|
48
|
+
export interface BacktrackOptions {
|
|
49
|
+
useAC3?: boolean;
|
|
50
|
+
mrv?: boolean;
|
|
51
|
+
lcv?: boolean;
|
|
52
|
+
maxIterations?: number;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/csp/types.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC;IAC7B,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// CSP — Constraint Satisfaction Problem, tipos públicos.
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Un CSP es una tripla (X, D, C) donde:
|
|
6
|
+
// X = variables
|
|
7
|
+
// D = dominios finitos por variable (D: X → 2^Vals)
|
|
8
|
+
// C = restricciones sobre subconjuntos de variables
|
|
9
|
+
//
|
|
10
|
+
// Cada restricción es un predicado n-ario que decide si una tupla de
|
|
11
|
+
// valores (alineada al orden de `vars`) es admisible.
|
|
12
|
+
// ============================================================
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/csp/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAC/D,wCAAwC;AACxC,kBAAkB;AAClB,sDAAsD;AACtD,sDAAsD;AACtD,EAAE;AACF,qEAAqE;AACrE,sDAAsD;AACtD,+DAA+D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type FOLNode } from './parser';
|
|
2
|
+
import type { GroundedFormula, MLNFormula, MLNTheory, MLNWorld } from './types';
|
|
3
|
+
interface PredicateMap {
|
|
4
|
+
[name: string]: string[];
|
|
5
|
+
}
|
|
6
|
+
/** Canonical key para un ground atom: "Pred(a1,a2,...)". */
|
|
7
|
+
export declare function atomKey(predicate: string, args: string[]): string;
|
|
8
|
+
/** Evalúa un nodo ya groundeado contra un mundo. */
|
|
9
|
+
export declare function evaluateGround(node: FOLNode, world: MLNWorld): boolean;
|
|
10
|
+
/** Renderiza un nodo groundeado a string canónico. */
|
|
11
|
+
export declare function renderGround(node: FOLNode): string;
|
|
12
|
+
/** Groundea una sola fórmula. */
|
|
13
|
+
export declare function groundFormula(formula: MLNFormula, predMap: PredicateMap, constants: Record<string, string[]>): GroundedFormula[];
|
|
14
|
+
/** Groundea TODAS las fórmulas de la teoría. */
|
|
15
|
+
export declare function ground(theory: MLNTheory): GroundedFormula[];
|
|
16
|
+
/** Enumera TODOS los ground atoms de la teoría (Herbrand base). */
|
|
17
|
+
export declare function allGroundAtoms(theory: MLNTheory): string[];
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=grounding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../../src/runtime/markov-logic/grounding.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,OAAO,EAAuC,MAAM,UAAU,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEhF,UAAU,YAAY;IACpB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B;AAmFD,4DAA4D;AAC5D,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEjE;AAoBD,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAetE;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAalD;AA2CD,iCAAiC;AACjC,wBAAgB,aAAa,CAC3B,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAClC,eAAe,EAAE,CAoBnB;AAED,gDAAgD;AAChD,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,EAAE,CAS3D;AAMD,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,CA6B1D"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Markov Logic — Grounding de fórmulas
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// `ground(theory)` produce TODAS las instancias cerradas (sin
|
|
7
|
+
// variables libres) de cada fórmula de la teoría, una por
|
|
8
|
+
// combinación de constantes compatible con los tipos del
|
|
9
|
+
// predicado en el que aparece la variable.
|
|
10
|
+
//
|
|
11
|
+
// La inferencia de tipos por variable se hace en una primera pasada
|
|
12
|
+
// sobre la fórmula: por cada átomo `Pred(x, y, ...)` consultamos
|
|
13
|
+
// `predicates[Pred].types` y asignamos el tipo de cada argumento a la
|
|
14
|
+
// variable correspondiente. Si la misma variable aparece en dos
|
|
15
|
+
// posiciones tipadas distintamente, se reporta error (typing claro
|
|
16
|
+
// como pide la convención del workspace).
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.atomKey = atomKey;
|
|
19
|
+
exports.evaluateGround = evaluateGround;
|
|
20
|
+
exports.renderGround = renderGround;
|
|
21
|
+
exports.groundFormula = groundFormula;
|
|
22
|
+
exports.ground = ground;
|
|
23
|
+
exports.allGroundAtoms = allGroundAtoms;
|
|
24
|
+
const parser_1 = require("./parser");
|
|
25
|
+
function buildPredicateMap(theory) {
|
|
26
|
+
const out = {};
|
|
27
|
+
for (const p of theory.predicates) {
|
|
28
|
+
out[p.name] = p.types;
|
|
29
|
+
}
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
/** Recorre `node` y devuelve `{ variable → tipo }` inferido. */
|
|
33
|
+
function inferVariableTypes(node, predMap, src) {
|
|
34
|
+
const out = {};
|
|
35
|
+
const visit = (n) => {
|
|
36
|
+
switch (n.kind) {
|
|
37
|
+
case 'atom': {
|
|
38
|
+
const types = predMap[n.predicate];
|
|
39
|
+
if (!types) {
|
|
40
|
+
throw new Error(`Predicado "${n.predicate}" no declarado (fórmula: "${src}")`);
|
|
41
|
+
}
|
|
42
|
+
if (types.length !== n.args.length) {
|
|
43
|
+
throw new Error(`Predicado "${n.predicate}" espera ${types.length} args, recibió ${n.args.length} (fórmula: "${src}")`);
|
|
44
|
+
}
|
|
45
|
+
for (let i = 0; i < n.args.length; i++) {
|
|
46
|
+
const arg = n.args[i];
|
|
47
|
+
const t = types[i];
|
|
48
|
+
if ((0, parser_1.isVariable)(arg)) {
|
|
49
|
+
const prev = out[arg];
|
|
50
|
+
if (prev !== undefined && prev !== t) {
|
|
51
|
+
throw new Error(`Variable "${arg}" usada con tipos distintos: "${prev}" vs "${t}" en "${src}"`);
|
|
52
|
+
}
|
|
53
|
+
out[arg] = t;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
case 'not':
|
|
59
|
+
visit(n.arg);
|
|
60
|
+
return;
|
|
61
|
+
case 'and':
|
|
62
|
+
case 'or':
|
|
63
|
+
case 'implies':
|
|
64
|
+
visit(n.left);
|
|
65
|
+
visit(n.right);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
visit(node);
|
|
70
|
+
return out;
|
|
71
|
+
}
|
|
72
|
+
/** Sustituye variables → constantes y devuelve nuevo nodo. */
|
|
73
|
+
function substitute(node, sub) {
|
|
74
|
+
switch (node.kind) {
|
|
75
|
+
case 'atom':
|
|
76
|
+
return {
|
|
77
|
+
kind: 'atom',
|
|
78
|
+
predicate: node.predicate,
|
|
79
|
+
args: node.args.map((a) => ((0, parser_1.isVariable)(a) && sub[a] !== undefined ? sub[a] : a)),
|
|
80
|
+
};
|
|
81
|
+
case 'not':
|
|
82
|
+
return { kind: 'not', arg: substitute(node.arg, sub) };
|
|
83
|
+
case 'and':
|
|
84
|
+
return { kind: 'and', left: substitute(node.left, sub), right: substitute(node.right, sub) };
|
|
85
|
+
case 'or':
|
|
86
|
+
return { kind: 'or', left: substitute(node.left, sub), right: substitute(node.right, sub) };
|
|
87
|
+
case 'implies':
|
|
88
|
+
return {
|
|
89
|
+
kind: 'implies',
|
|
90
|
+
left: substitute(node.left, sub),
|
|
91
|
+
right: substitute(node.right, sub),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** Canonical key para un ground atom: "Pred(a1,a2,...)". */
|
|
96
|
+
function atomKey(predicate, args) {
|
|
97
|
+
return `${predicate}(${args.join(',')})`;
|
|
98
|
+
}
|
|
99
|
+
/** Recopila los atom keys que aparecen en `node`. */
|
|
100
|
+
function collectAtoms(node, acc) {
|
|
101
|
+
switch (node.kind) {
|
|
102
|
+
case 'atom':
|
|
103
|
+
acc.add(atomKey(node.predicate, node.args));
|
|
104
|
+
return;
|
|
105
|
+
case 'not':
|
|
106
|
+
collectAtoms(node.arg, acc);
|
|
107
|
+
return;
|
|
108
|
+
case 'and':
|
|
109
|
+
case 'or':
|
|
110
|
+
case 'implies':
|
|
111
|
+
collectAtoms(node.left, acc);
|
|
112
|
+
collectAtoms(node.right, acc);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** Evalúa un nodo ya groundeado contra un mundo. */
|
|
117
|
+
function evaluateGround(node, world) {
|
|
118
|
+
switch (node.kind) {
|
|
119
|
+
case 'atom': {
|
|
120
|
+
const key = atomKey(node.predicate, node.args);
|
|
121
|
+
return world.groundAtoms[key] === true;
|
|
122
|
+
}
|
|
123
|
+
case 'not':
|
|
124
|
+
return !evaluateGround(node.arg, world);
|
|
125
|
+
case 'and':
|
|
126
|
+
return evaluateGround(node.left, world) && evaluateGround(node.right, world);
|
|
127
|
+
case 'or':
|
|
128
|
+
return evaluateGround(node.left, world) || evaluateGround(node.right, world);
|
|
129
|
+
case 'implies':
|
|
130
|
+
return !evaluateGround(node.left, world) || evaluateGround(node.right, world);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** Renderiza un nodo groundeado a string canónico. */
|
|
134
|
+
function renderGround(node) {
|
|
135
|
+
switch (node.kind) {
|
|
136
|
+
case 'atom':
|
|
137
|
+
return atomKey(node.predicate, node.args);
|
|
138
|
+
case 'not':
|
|
139
|
+
return `¬${renderGround(node.arg)}`;
|
|
140
|
+
case 'and':
|
|
141
|
+
return `(${renderGround(node.left)} ∧ ${renderGround(node.right)})`;
|
|
142
|
+
case 'or':
|
|
143
|
+
return `(${renderGround(node.left)} ∨ ${renderGround(node.right)})`;
|
|
144
|
+
case 'implies':
|
|
145
|
+
return `(${renderGround(node.left)} → ${renderGround(node.right)})`;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/** Producto cartesiano de los dominios de cada variable. */
|
|
149
|
+
function cartesian(vars, varTypes, constants, src) {
|
|
150
|
+
if (vars.length === 0)
|
|
151
|
+
return [{}];
|
|
152
|
+
// build domain per var
|
|
153
|
+
const domains = vars.map((v) => {
|
|
154
|
+
const t = varTypes[v];
|
|
155
|
+
if (!t) {
|
|
156
|
+
throw new Error(`No pude inferir el tipo de la variable "${v}" en "${src}"`);
|
|
157
|
+
}
|
|
158
|
+
const dom = constants[t];
|
|
159
|
+
if (!dom) {
|
|
160
|
+
throw new Error(`Tipo "${t}" no tiene constantes declaradas (fórmula: "${src}")`);
|
|
161
|
+
}
|
|
162
|
+
return dom;
|
|
163
|
+
});
|
|
164
|
+
const out = [];
|
|
165
|
+
const buf = new Array(vars.length).fill('');
|
|
166
|
+
const rec = (i) => {
|
|
167
|
+
if (i === vars.length) {
|
|
168
|
+
const sub = {};
|
|
169
|
+
for (let j = 0; j < vars.length; j++) {
|
|
170
|
+
sub[vars[j]] = buf[j];
|
|
171
|
+
}
|
|
172
|
+
out.push(sub);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const dom = domains[i];
|
|
176
|
+
for (const c of dom) {
|
|
177
|
+
buf[i] = c;
|
|
178
|
+
rec(i + 1);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
rec(0);
|
|
182
|
+
return out;
|
|
183
|
+
}
|
|
184
|
+
/** Groundea una sola fórmula. */
|
|
185
|
+
function groundFormula(formula, predMap, constants) {
|
|
186
|
+
const ast = (0, parser_1.parseFOL)(formula.formula);
|
|
187
|
+
const varTypes = inferVariableTypes(ast, predMap, formula.formula);
|
|
188
|
+
const vars = (0, parser_1.freeVariables)(ast);
|
|
189
|
+
const subs = cartesian(vars, varTypes, constants, formula.formula);
|
|
190
|
+
const out = [];
|
|
191
|
+
for (const sub of subs) {
|
|
192
|
+
const ground = substitute(ast, sub);
|
|
193
|
+
const atomSet = new Set();
|
|
194
|
+
collectAtoms(ground, atomSet);
|
|
195
|
+
const atoms = Array.from(atomSet);
|
|
196
|
+
out.push({
|
|
197
|
+
groundFormula: renderGround(ground),
|
|
198
|
+
weight: formula.weight,
|
|
199
|
+
satisfied: (w) => evaluateGround(ground, w),
|
|
200
|
+
violations: (w) => (evaluateGround(ground, w) ? 0 : 1),
|
|
201
|
+
atoms,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
return out;
|
|
205
|
+
}
|
|
206
|
+
/** Groundea TODAS las fórmulas de la teoría. */
|
|
207
|
+
function ground(theory) {
|
|
208
|
+
const predMap = buildPredicateMap(theory);
|
|
209
|
+
const out = [];
|
|
210
|
+
for (const f of theory.formulas) {
|
|
211
|
+
for (const g of groundFormula(f, predMap, constantsOf(theory))) {
|
|
212
|
+
out.push(g);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return out;
|
|
216
|
+
}
|
|
217
|
+
function constantsOf(theory) {
|
|
218
|
+
return theory.constants;
|
|
219
|
+
}
|
|
220
|
+
/** Enumera TODOS los ground atoms de la teoría (Herbrand base). */
|
|
221
|
+
function allGroundAtoms(theory) {
|
|
222
|
+
const out = [];
|
|
223
|
+
for (const p of theory.predicates) {
|
|
224
|
+
const arity = p.types.length;
|
|
225
|
+
if (arity === 0) {
|
|
226
|
+
out.push(atomKey(p.name, []));
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
// cartesian over each arg's type
|
|
230
|
+
const domains = p.types.map((t) => {
|
|
231
|
+
const d = theory.constants[t];
|
|
232
|
+
if (!d)
|
|
233
|
+
throw new Error(`Tipo "${t}" sin constantes (predicado "${p.name}")`);
|
|
234
|
+
return d;
|
|
235
|
+
});
|
|
236
|
+
const buf = new Array(arity).fill('');
|
|
237
|
+
const rec = (i) => {
|
|
238
|
+
if (i === arity) {
|
|
239
|
+
out.push(atomKey(p.name, buf.slice()));
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const dom = domains[i];
|
|
243
|
+
for (const c of dom) {
|
|
244
|
+
buf[i] = c;
|
|
245
|
+
rec(i + 1);
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
rec(0);
|
|
249
|
+
}
|
|
250
|
+
return out;
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=grounding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../../src/runtime/markov-logic/grounding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { FOLNode } from './parser';
|
|
2
|
+
export { freeVariables, parseFOL } from './parser';
|
|
3
|
+
export type { GroundedFormula, MLNFormula, MLNTheory, MLNWorld } from './types';
|
|
4
|
+
export { allGroundAtoms, atomKey, evaluateGround, ground, groundFormula, renderGround, } from './grounding';
|
|
5
|
+
export { exactMarginals, exactPartition, gibbsMarginals, gibbsSample, mapInference, probability, weight, } from './inference';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/markov-logic/index.ts"],"names":[],"mappings":"AA0BA,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEhF,OAAO,EACL,cAAc,EACd,OAAO,EACP,cAAc,EACd,MAAM,EACN,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,MAAM,GACP,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Markov Logic Networks — Barrel
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Una Markov Logic Network combina FOL con redes de Markov:
|
|
7
|
+
// cada fórmula `F` lleva un peso `w` real; cada mundo `W` tiene
|
|
8
|
+
// probabilidad
|
|
9
|
+
//
|
|
10
|
+
// P(W) ∝ exp( Σ_i w_i · n_i(W) )
|
|
11
|
+
//
|
|
12
|
+
// donde `n_i(W)` es el número de grounding instances de `F_i`
|
|
13
|
+
// SATISFECHAS por `W`. Pesos +∞ representan hard constraints.
|
|
14
|
+
//
|
|
15
|
+
// API pública:
|
|
16
|
+
// - `ground(theory)` → array de GroundedFormula
|
|
17
|
+
// - `weight(theory, world)` → log-prob no normalizada
|
|
18
|
+
// - `probability(theory, world, Z)` → P(world) dada partición Z
|
|
19
|
+
// - `gibbsSample(theory, evidence, n)` → cadena de mundos
|
|
20
|
+
// - `gibbsMarginals(...)` → P(atom=true) aproximada
|
|
21
|
+
// - `mapInference(theory, ev)` → mundo más probable (MaxWalkSAT)
|
|
22
|
+
// - `exactPartition(theory)` → Z exacta (sólo teorías chicas)
|
|
23
|
+
// - `exactMarginals(theory)` → P(atom=true) exacta (chicas)
|
|
24
|
+
//
|
|
25
|
+
// Utilidades de grounding/parsing también expuestas para
|
|
26
|
+
// herramientas (UI, debugging).
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.weight = exports.probability = exports.mapInference = exports.gibbsSample = exports.gibbsMarginals = exports.exactPartition = exports.exactMarginals = exports.renderGround = exports.groundFormula = exports.ground = exports.evaluateGround = exports.atomKey = exports.allGroundAtoms = exports.parseFOL = exports.freeVariables = void 0;
|
|
29
|
+
var parser_1 = require("./parser");
|
|
30
|
+
Object.defineProperty(exports, "freeVariables", { enumerable: true, get: function () { return parser_1.freeVariables; } });
|
|
31
|
+
Object.defineProperty(exports, "parseFOL", { enumerable: true, get: function () { return parser_1.parseFOL; } });
|
|
32
|
+
var grounding_1 = require("./grounding");
|
|
33
|
+
Object.defineProperty(exports, "allGroundAtoms", { enumerable: true, get: function () { return grounding_1.allGroundAtoms; } });
|
|
34
|
+
Object.defineProperty(exports, "atomKey", { enumerable: true, get: function () { return grounding_1.atomKey; } });
|
|
35
|
+
Object.defineProperty(exports, "evaluateGround", { enumerable: true, get: function () { return grounding_1.evaluateGround; } });
|
|
36
|
+
Object.defineProperty(exports, "ground", { enumerable: true, get: function () { return grounding_1.ground; } });
|
|
37
|
+
Object.defineProperty(exports, "groundFormula", { enumerable: true, get: function () { return grounding_1.groundFormula; } });
|
|
38
|
+
Object.defineProperty(exports, "renderGround", { enumerable: true, get: function () { return grounding_1.renderGround; } });
|
|
39
|
+
var inference_1 = require("./inference");
|
|
40
|
+
Object.defineProperty(exports, "exactMarginals", { enumerable: true, get: function () { return inference_1.exactMarginals; } });
|
|
41
|
+
Object.defineProperty(exports, "exactPartition", { enumerable: true, get: function () { return inference_1.exactPartition; } });
|
|
42
|
+
Object.defineProperty(exports, "gibbsMarginals", { enumerable: true, get: function () { return inference_1.gibbsMarginals; } });
|
|
43
|
+
Object.defineProperty(exports, "gibbsSample", { enumerable: true, get: function () { return inference_1.gibbsSample; } });
|
|
44
|
+
Object.defineProperty(exports, "mapInference", { enumerable: true, get: function () { return inference_1.mapInference; } });
|
|
45
|
+
Object.defineProperty(exports, "probability", { enumerable: true, get: function () { return inference_1.probability; } });
|
|
46
|
+
Object.defineProperty(exports, "weight", { enumerable: true, get: function () { return inference_1.weight; } });
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/markov-logic/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAC/D,EAAE;AACF,4DAA4D;AAC5D,gEAAgE;AAChE,eAAe;AACf,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,8DAA8D;AAC9D,8DAA8D;AAC9D,EAAE;AACF,eAAe;AACf,6DAA6D;AAC7D,4DAA4D;AAC5D,kEAAkE;AAClE,4DAA4D;AAC5D,4DAA4D;AAC5D,oEAAoE;AACpE,mEAAmE;AACnE,iEAAiE;AACjE,EAAE;AACF,yDAAyD;AACzD,gCAAgC;;;AAGhC,mCAAmD;AAA1C,uGAAA,aAAa,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAIhC,yCAOqB;AANnB,2GAAA,cAAc,OAAA;AACd,oGAAA,OAAO,OAAA;AACP,2GAAA,cAAc,OAAA;AACd,mGAAA,MAAM,OAAA;AACN,0GAAA,aAAa,OAAA;AACb,yGAAA,YAAY,OAAA;AAGd,yCAQqB;AAPnB,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA;AACX,yGAAA,YAAY,OAAA;AACZ,wGAAA,WAAW,OAAA;AACX,mGAAA,MAAM,OAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { MLNTheory, MLNWorld } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Log-score (no normalizado) de un mundo:
|
|
4
|
+
* logZW = Σ_i w_i · satisfied_i(world)
|
|
5
|
+
*
|
|
6
|
+
* Si la teoría tiene un hard constraint violado, devuelve
|
|
7
|
+
* `-Infinity` (lo cual hace P(world)=0).
|
|
8
|
+
*/
|
|
9
|
+
export declare function weight(theory: MLNTheory, world: MLNWorld): number;
|
|
10
|
+
/**
|
|
11
|
+
* Probabilidad de un mundo dada una aproximación de la partición Z.
|
|
12
|
+
*
|
|
13
|
+
* P(world) = exp(weight(world)) / partitionApprox
|
|
14
|
+
*
|
|
15
|
+
* `partitionApprox` debe estar en el mismo "espacio" (no log).
|
|
16
|
+
* Si `weight(world) === -Infinity` devuelve 0.
|
|
17
|
+
*/
|
|
18
|
+
export declare function probability(theory: MLNTheory, world: MLNWorld, partitionApprox: number): number;
|
|
19
|
+
/**
|
|
20
|
+
* Calcula la partición Z exactamente sumando sobre todos los mundos
|
|
21
|
+
* posibles. SOLO viable para teorías pequeñas (≤ ~20 ground atoms).
|
|
22
|
+
* Útil para tests.
|
|
23
|
+
*/
|
|
24
|
+
export declare function exactPartition(theory: MLNTheory): number;
|
|
25
|
+
/**
|
|
26
|
+
* Marginales exactas P(atom = true) sobre todos los mundos.
|
|
27
|
+
* Mismo costo exponencial que `exactPartition`. Sólo para tests.
|
|
28
|
+
*/
|
|
29
|
+
export declare function exactMarginals(theory: MLNTheory): Record<string, number>;
|
|
30
|
+
interface GibbsOptions {
|
|
31
|
+
/** RNG opcional para reproducibilidad. */
|
|
32
|
+
rng?: () => number;
|
|
33
|
+
/** Mundo inicial; si no se pasa, se randomiza respetando `evidence`. */
|
|
34
|
+
initial?: MLNWorld;
|
|
35
|
+
/** Cuántos warmup steps descartar antes de empezar a coleccionar (default 0). */
|
|
36
|
+
burnIn?: number;
|
|
37
|
+
/** Recolectar 1 cada `thin` pasos (default 1). */
|
|
38
|
+
thin?: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Gibbs sampling sobre los ground atoms NO evidenciados.
|
|
42
|
+
*
|
|
43
|
+
* En cada paso elige un atom no fijo y resamplea su valor según
|
|
44
|
+
* P(atom=true | resto). Para MLN, esa condicional es la sigmoide del
|
|
45
|
+
* "delta" de log-score al flippear:
|
|
46
|
+
*
|
|
47
|
+
* P(atom=true | ·) = σ( logScore(true) − logScore(false) )
|
|
48
|
+
*
|
|
49
|
+
* Devuelve una secuencia de `iterations` mundos coleccionados tras
|
|
50
|
+
* `burnIn` pasos de calentamiento, con thinning opcional.
|
|
51
|
+
*/
|
|
52
|
+
export declare function gibbsSample(theory: MLNTheory, evidence: Partial<MLNWorld> | undefined, iterations: number, options?: GibbsOptions): MLNWorld[];
|
|
53
|
+
/**
|
|
54
|
+
* Marginales aproximadas: corre Gibbs y promedia indicadores.
|
|
55
|
+
*/
|
|
56
|
+
export declare function gibbsMarginals(theory: MLNTheory, evidence: Partial<MLNWorld>, iterations: number, options?: GibbsOptions): Record<string, number>;
|
|
57
|
+
interface MapOptions {
|
|
58
|
+
rng?: () => number;
|
|
59
|
+
/** Pasos máximos (default 5000). */
|
|
60
|
+
maxFlips?: number;
|
|
61
|
+
/** Reinicios independientes (default 5). */
|
|
62
|
+
restarts?: number;
|
|
63
|
+
/** Probabilidad de random walk en lugar de greedy (default 0.3). */
|
|
64
|
+
noise?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* MAP inference: encuentra el mundo de mayor `weight`. Aproximado
|
|
68
|
+
* mediante MaxWalkSAT con múltiples restarts: en cada paso, elige
|
|
69
|
+
* una ground formula INSATISFECHA y flippea uno de sus atoms; con
|
|
70
|
+
* probabilidad `noise` lo elige al azar (random walk), con `1-noise`
|
|
71
|
+
* elige el flip que más mejora el score (greedy).
|
|
72
|
+
*
|
|
73
|
+
* Respeta `evidence`: nunca flippea atoms fijos.
|
|
74
|
+
*/
|
|
75
|
+
export declare function mapInference(theory: MLNTheory, evidence?: Partial<MLNWorld>, options?: MapOptions): MLNWorld;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=inference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../../src/runtime/markov-logic/inference.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAmB,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAGjE;AAkBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAO/F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAkBxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCxE;AAID,UAAU,YAAY;IACpB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAK,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,YAAiB,GACzB,QAAQ,EAAE,CAiFZ;AA8BD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,YAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB;AAID,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,QAAQ,GAAE,OAAO,CAAC,QAAQ,CAAM,EAChC,OAAO,GAAE,UAAe,GACvB,QAAQ,CAkFV"}
|