@stevenvo780/st-lang 4.2.0 → 4.4.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/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -1
- package/dist/index.js.map +1 -1
- package/dist/lambda-calc/church.d.ts +8 -0
- package/dist/lambda-calc/church.d.ts.map +1 -0
- package/dist/lambda-calc/church.js +67 -0
- package/dist/lambda-calc/church.js.map +1 -0
- package/dist/lambda-calc/combinators.d.ts +8 -0
- package/dist/lambda-calc/combinators.d.ts.map +1 -0
- package/dist/lambda-calc/combinators.js +24 -0
- package/dist/lambda-calc/combinators.js.map +1 -0
- package/dist/lambda-calc/index.d.ts +8 -0
- package/dist/lambda-calc/index.d.ts.map +1 -0
- package/dist/lambda-calc/index.js +48 -0
- package/dist/lambda-calc/index.js.map +1 -0
- package/dist/lambda-calc/reduce.d.ts +18 -0
- package/dist/lambda-calc/reduce.d.ts.map +1 -0
- package/dist/lambda-calc/reduce.js +174 -0
- package/dist/lambda-calc/reduce.js.map +1 -0
- package/dist/lambda-calc/substitution.d.ts +6 -0
- package/dist/lambda-calc/substitution.d.ts.map +1 -0
- package/dist/lambda-calc/substitution.js +120 -0
- package/dist/lambda-calc/substitution.js.map +1 -0
- package/dist/lambda-calc/types.d.ts +19 -0
- package/dist/lambda-calc/types.d.ts.map +1 -0
- package/dist/lambda-calc/types.js +72 -0
- package/dist/lambda-calc/types.js.map +1 -0
- 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/profiles/intuitionistic-nj/formula.d.ts +19 -0
- package/dist/profiles/intuitionistic-nj/formula.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/formula.js +99 -0
- package/dist/profiles/intuitionistic-nj/formula.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/index.d.ts +5 -0
- package/dist/profiles/intuitionistic-nj/index.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/index.js +24 -0
- package/dist/profiles/intuitionistic-nj/index.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/kripke.d.ts +17 -0
- package/dist/profiles/intuitionistic-nj/kripke.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/kripke.js +206 -0
- package/dist/profiles/intuitionistic-nj/kripke.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/prover.d.ts +13 -0
- package/dist/profiles/intuitionistic-nj/prover.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/prover.js +418 -0
- package/dist/profiles/intuitionistic-nj/prover.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/types.d.ts +55 -0
- package/dist/profiles/intuitionistic-nj/types.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/types.js +21 -0
- package/dist/profiles/intuitionistic-nj/types.js.map +1 -0
- package/dist/profiles/many-valued/index.d.ts +39 -0
- package/dist/profiles/many-valued/index.d.ts.map +1 -0
- package/dist/profiles/many-valued/index.js +250 -0
- package/dist/profiles/many-valued/index.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/formula.d.ts +23 -0
- package/dist/profiles/modal-frame-axioms/formula.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/formula.js +158 -0
- package/dist/profiles/modal-frame-axioms/formula.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/index.d.ts +6 -0
- package/dist/profiles/modal-frame-axioms/index.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/index.js +41 -0
- package/dist/profiles/modal-frame-axioms/index.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/systems.d.ts +29 -0
- package/dist/profiles/modal-frame-axioms/systems.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/systems.js +96 -0
- package/dist/profiles/modal-frame-axioms/systems.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/tableau.d.ts +12 -0
- package/dist/profiles/modal-frame-axioms/tableau.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/tableau.js +299 -0
- package/dist/profiles/modal-frame-axioms/tableau.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/types.d.ts +61 -0
- package/dist/profiles/modal-frame-axioms/types.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/types.js +27 -0
- package/dist/profiles/modal-frame-axioms/types.js.map +1 -0
- 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/profiles/substructural/index.d.ts +4 -0
- package/dist/profiles/substructural/index.d.ts.map +1 -0
- package/dist/profiles/substructural/index.js +22 -0
- package/dist/profiles/substructural/index.js.map +1 -0
- package/dist/profiles/substructural/prover.d.ts +13 -0
- package/dist/profiles/substructural/prover.d.ts.map +1 -0
- package/dist/profiles/substructural/prover.js +481 -0
- package/dist/profiles/substructural/prover.js.map +1 -0
- package/dist/profiles/substructural/types.d.ts +72 -0
- package/dist/profiles/substructural/types.d.ts.map +1 -0
- package/dist/profiles/substructural/types.js +27 -0
- package/dist/profiles/substructural/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/abduction/entails.d.ts +21 -0
- package/dist/runtime/abduction/entails.d.ts.map +1 -0
- package/dist/runtime/abduction/entails.js +308 -0
- package/dist/runtime/abduction/entails.js.map +1 -0
- package/dist/runtime/abduction/find.d.ts +18 -0
- package/dist/runtime/abduction/find.d.ts.map +1 -0
- package/dist/runtime/abduction/find.js +202 -0
- package/dist/runtime/abduction/find.js.map +1 -0
- package/dist/runtime/abduction/index.d.ts +4 -0
- package/dist/runtime/abduction/index.d.ts.map +1 -0
- package/dist/runtime/abduction/index.js +26 -0
- package/dist/runtime/abduction/index.js.map +1 -0
- package/dist/runtime/abduction/types.d.ts +78 -0
- package/dist/runtime/abduction/types.d.ts.map +1 -0
- package/dist/runtime/abduction/types.js +23 -0
- package/dist/runtime/abduction/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/bayesian/factor.d.ts +22 -0
- package/dist/runtime/bayesian/factor.d.ts.map +1 -0
- package/dist/runtime/bayesian/factor.js +249 -0
- package/dist/runtime/bayesian/factor.js.map +1 -0
- package/dist/runtime/bayesian/index.d.ts +3 -0
- package/dist/runtime/bayesian/index.d.ts.map +1 -0
- package/dist/runtime/bayesian/index.js +25 -0
- package/dist/runtime/bayesian/index.js.map +1 -0
- package/dist/runtime/bayesian/inference.d.ts +6 -0
- package/dist/runtime/bayesian/inference.d.ts.map +1 -0
- package/dist/runtime/bayesian/inference.js +260 -0
- package/dist/runtime/bayesian/inference.js.map +1 -0
- package/dist/runtime/bayesian/types.d.ts +19 -0
- package/dist/runtime/bayesian/types.d.ts.map +1 -0
- package/dist/runtime/bayesian/types.js +9 -0
- package/dist/runtime/bayesian/types.js.map +1 -0
- package/dist/runtime/bisimulation/index.d.ts +4 -0
- package/dist/runtime/bisimulation/index.d.ts.map +1 -0
- package/dist/runtime/bisimulation/index.js +21 -0
- package/dist/runtime/bisimulation/index.js.map +1 -0
- package/dist/runtime/bisimulation/operations.d.ts +40 -0
- package/dist/runtime/bisimulation/operations.d.ts.map +1 -0
- package/dist/runtime/bisimulation/operations.js +219 -0
- package/dist/runtime/bisimulation/operations.js.map +1 -0
- package/dist/runtime/bisimulation/paige-tarjan.d.ts +8 -0
- package/dist/runtime/bisimulation/paige-tarjan.d.ts.map +1 -0
- package/dist/runtime/bisimulation/paige-tarjan.js +199 -0
- package/dist/runtime/bisimulation/paige-tarjan.js.map +1 -0
- package/dist/runtime/bisimulation/types.d.ts +26 -0
- package/dist/runtime/bisimulation/types.d.ts.map +1 -0
- package/dist/runtime/bisimulation/types.js +22 -0
- package/dist/runtime/bisimulation/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/fca/context.d.ts +46 -0
- package/dist/runtime/fca/context.d.ts.map +1 -0
- package/dist/runtime/fca/context.js +155 -0
- package/dist/runtime/fca/context.js.map +1 -0
- package/dist/runtime/fca/implications.d.ts +10 -0
- package/dist/runtime/fca/implications.d.ts.map +1 -0
- package/dist/runtime/fca/implications.js +33 -0
- package/dist/runtime/fca/implications.js.map +1 -0
- package/dist/runtime/fca/index.d.ts +6 -0
- package/dist/runtime/fca/index.d.ts.map +1 -0
- package/dist/runtime/fca/index.js +39 -0
- package/dist/runtime/fca/index.js.map +1 -0
- package/dist/runtime/fca/lattice.d.ts +10 -0
- package/dist/runtime/fca/lattice.d.ts.map +1 -0
- package/dist/runtime/fca/lattice.js +86 -0
- package/dist/runtime/fca/lattice.js.map +1 -0
- package/dist/runtime/fca/next-closure.d.ts +12 -0
- package/dist/runtime/fca/next-closure.d.ts.map +1 -0
- package/dist/runtime/fca/next-closure.js +99 -0
- package/dist/runtime/fca/next-closure.js.map +1 -0
- package/dist/runtime/fca/types.d.ts +31 -0
- package/dist/runtime/fca/types.d.ts.map +1 -0
- package/dist/runtime/fca/types.js +30 -0
- package/dist/runtime/fca/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/proof-minify/index.d.ts +3 -0
- package/dist/runtime/proof-minify/index.d.ts.map +1 -0
- package/dist/runtime/proof-minify/index.js +13 -0
- package/dist/runtime/proof-minify/index.js.map +1 -0
- package/dist/runtime/proof-minify/minify.d.ts +13 -0
- package/dist/runtime/proof-minify/minify.d.ts.map +1 -0
- package/dist/runtime/proof-minify/minify.js +540 -0
- package/dist/runtime/proof-minify/minify.js.map +1 -0
- package/dist/runtime/proof-minify/types.d.ts +89 -0
- package/dist/runtime/proof-minify/types.d.ts.map +1 -0
- package/dist/runtime/proof-minify/types.js +16 -0
- package/dist/runtime/proof-minify/types.js.map +1 -0
- package/dist/runtime/symbolic-diff/constructors.d.ts +16 -0
- package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/constructors.js +75 -0
- package/dist/runtime/symbolic-diff/constructors.js.map +1 -0
- package/dist/runtime/symbolic-diff/differentiate.d.ts +22 -0
- package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/differentiate.js +107 -0
- package/dist/runtime/symbolic-diff/differentiate.js.map +1 -0
- package/dist/runtime/symbolic-diff/evaluate.d.ts +3 -0
- package/dist/runtime/symbolic-diff/evaluate.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/evaluate.js +47 -0
- package/dist/runtime/symbolic-diff/evaluate.js.map +1 -0
- package/dist/runtime/symbolic-diff/index.d.ts +9 -0
- package/dist/runtime/symbolic-diff/index.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/index.js +34 -0
- package/dist/runtime/symbolic-diff/index.js.map +1 -0
- package/dist/runtime/symbolic-diff/parse.d.ts +16 -0
- package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/parse.js +212 -0
- package/dist/runtime/symbolic-diff/parse.js.map +1 -0
- package/dist/runtime/symbolic-diff/simplify.d.ts +11 -0
- package/dist/runtime/symbolic-diff/simplify.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/simplify.js +214 -0
- package/dist/runtime/symbolic-diff/simplify.js.map +1 -0
- package/dist/runtime/symbolic-diff/stringify.d.ts +3 -0
- package/dist/runtime/symbolic-diff/stringify.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/stringify.js +69 -0
- package/dist/runtime/symbolic-diff/stringify.js.map +1 -0
- package/dist/runtime/symbolic-diff/types.d.ts +35 -0
- package/dist/runtime/symbolic-diff/types.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/types.js +9 -0
- package/dist/runtime/symbolic-diff/types.js.map +1 -0
- package/dist/runtime/term-rewriting/critical-pairs.d.ts +38 -0
- package/dist/runtime/term-rewriting/critical-pairs.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/critical-pairs.js +109 -0
- package/dist/runtime/term-rewriting/critical-pairs.js.map +1 -0
- package/dist/runtime/term-rewriting/index.d.ts +9 -0
- package/dist/runtime/term-rewriting/index.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/index.js +38 -0
- package/dist/runtime/term-rewriting/index.js.map +1 -0
- package/dist/runtime/term-rewriting/knuth-bendix.d.ts +29 -0
- package/dist/runtime/term-rewriting/knuth-bendix.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/knuth-bendix.js +196 -0
- package/dist/runtime/term-rewriting/knuth-bendix.js.map +1 -0
- package/dist/runtime/term-rewriting/lpo.d.ts +17 -0
- package/dist/runtime/term-rewriting/lpo.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/lpo.js +158 -0
- package/dist/runtime/term-rewriting/lpo.js.map +1 -0
- package/dist/runtime/term-rewriting/rewrite.d.ts +44 -0
- package/dist/runtime/term-rewriting/rewrite.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/rewrite.js +189 -0
- package/dist/runtime/term-rewriting/rewrite.js.map +1 -0
- package/dist/runtime/term-rewriting/term-utils.d.ts +64 -0
- package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/term-utils.js +360 -0
- package/dist/runtime/term-rewriting/term-utils.js.map +1 -0
- package/dist/runtime/term-rewriting/types.d.ts +66 -0
- package/dist/runtime/term-rewriting/types.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/types.js +21 -0
- package/dist/runtime/term-rewriting/types.js.map +1 -0
- 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/tests/abduction/abduction.test.d.ts +2 -0
- package/dist/tests/abduction/abduction.test.d.ts.map +1 -0
- package/dist/tests/abduction/abduction.test.js +380 -0
- package/dist/tests/abduction/abduction.test.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/bayesian/bayesian.test.d.ts +2 -0
- package/dist/tests/bayesian/bayesian.test.d.ts.map +1 -0
- package/dist/tests/bayesian/bayesian.test.js +328 -0
- package/dist/tests/bayesian/bayesian.test.js.map +1 -0
- package/dist/tests/bisimulation/paige-tarjan.test.d.ts +2 -0
- package/dist/tests/bisimulation/paige-tarjan.test.d.ts.map +1 -0
- package/dist/tests/bisimulation/paige-tarjan.test.js +254 -0
- package/dist/tests/bisimulation/paige-tarjan.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/fca/fca.test.d.ts +2 -0
- package/dist/tests/fca/fca.test.d.ts.map +1 -0
- package/dist/tests/fca/fca.test.js +317 -0
- package/dist/tests/fca/fca.test.js.map +1 -0
- package/dist/tests/intuitionistic-nj/nj.test.d.ts +2 -0
- package/dist/tests/intuitionistic-nj/nj.test.d.ts.map +1 -0
- package/dist/tests/intuitionistic-nj/nj.test.js +216 -0
- package/dist/tests/intuitionistic-nj/nj.test.js.map +1 -0
- package/dist/tests/lambda-calc/lambda-calc.test.d.ts +2 -0
- package/dist/tests/lambda-calc/lambda-calc.test.d.ts.map +1 -0
- package/dist/tests/lambda-calc/lambda-calc.test.js +164 -0
- package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -0
- package/dist/tests/many-valued/many-valued.test.d.ts +2 -0
- package/dist/tests/many-valued/many-valued.test.d.ts.map +1 -0
- package/dist/tests/many-valued/many-valued.test.js +150 -0
- package/dist/tests/many-valued/many-valued.test.js.map +1 -0
- 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/modal-frame-axioms/frame-axioms.test.d.ts +2 -0
- package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts.map +1 -0
- package/dist/tests/modal-frame-axioms/frame-axioms.test.js +236 -0
- package/dist/tests/modal-frame-axioms/frame-axioms.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/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/proof-minify/minify.test.d.ts +2 -0
- package/dist/tests/proof-minify/minify.test.d.ts.map +1 -0
- package/dist/tests/proof-minify/minify.test.js +281 -0
- package/dist/tests/proof-minify/minify.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/substructural/prover.test.d.ts +2 -0
- package/dist/tests/substructural/prover.test.d.ts.map +1 -0
- package/dist/tests/substructural/prover.test.js +271 -0
- package/dist/tests/substructural/prover.test.js.map +1 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts +2 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts.map +1 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.js +278 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -0
- 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/term-rewriting/critical-pairs.test.d.ts +2 -0
- package/dist/tests/term-rewriting/critical-pairs.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/critical-pairs.test.js +34 -0
- package/dist/tests/term-rewriting/critical-pairs.test.js.map +1 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.d.ts +2 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.js +94 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.js.map +1 -0
- package/dist/tests/term-rewriting/lpo.test.d.ts +2 -0
- package/dist/tests/term-rewriting/lpo.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/lpo.test.js +57 -0
- package/dist/tests/term-rewriting/lpo.test.js.map +1 -0
- package/dist/tests/term-rewriting/rewrite.test.d.ts +2 -0
- package/dist/tests/term-rewriting/rewrite.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/rewrite.test.js +56 -0
- package/dist/tests/term-rewriting/rewrite.test.js.map +1 -0
- package/dist/tests/term-rewriting/term-utils.test.d.ts +2 -0
- package/dist/tests/term-rewriting/term-utils.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/term-utils.test.js +58 -0
- package/dist/tests/term-rewriting/term-utils.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,382 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Markov Logic — Inferencia
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Funciones:
|
|
7
|
+
// - `weight(theory, world)` → log-prob no normalizada del mundo
|
|
8
|
+
// - `probability(theory, world, Z)` → P(world) dada la partición
|
|
9
|
+
// - `gibbsSample(theory, evidence, iters)` → cadena de mundos
|
|
10
|
+
// - `mapInference(theory, evidence)` → mundo más probable
|
|
11
|
+
// (aproximado vía MaxWalkSAT).
|
|
12
|
+
//
|
|
13
|
+
// Convenciones:
|
|
14
|
+
// - El log-score de un mundo es `Σ_i w_i · satisfied_i(W)`. Los
|
|
15
|
+
// hard constraints (`w_i = ±Infinity`) se tratan aparte: si están
|
|
16
|
+
// violados, el log-score es `-Infinity` (probabilidad 0).
|
|
17
|
+
// - Atoms ausentes del mundo se interpretan como `false`.
|
|
18
|
+
// - Las funciones que dependen de RNG aceptan `rng?: () => number`
|
|
19
|
+
// opcional para tests deterministas.
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.weight = weight;
|
|
22
|
+
exports.probability = probability;
|
|
23
|
+
exports.exactPartition = exactPartition;
|
|
24
|
+
exports.exactMarginals = exactMarginals;
|
|
25
|
+
exports.gibbsSample = gibbsSample;
|
|
26
|
+
exports.gibbsMarginals = gibbsMarginals;
|
|
27
|
+
exports.mapInference = mapInference;
|
|
28
|
+
const grounding_1 = require("./grounding");
|
|
29
|
+
/**
|
|
30
|
+
* Log-score (no normalizado) de un mundo:
|
|
31
|
+
* logZW = Σ_i w_i · satisfied_i(world)
|
|
32
|
+
*
|
|
33
|
+
* Si la teoría tiene un hard constraint violado, devuelve
|
|
34
|
+
* `-Infinity` (lo cual hace P(world)=0).
|
|
35
|
+
*/
|
|
36
|
+
function weight(theory, world) {
|
|
37
|
+
const grounded = (0, grounding_1.ground)(theory);
|
|
38
|
+
return weightFromGrounded(grounded, world);
|
|
39
|
+
}
|
|
40
|
+
function weightFromGrounded(grounded, world) {
|
|
41
|
+
let score = 0;
|
|
42
|
+
for (const g of grounded) {
|
|
43
|
+
const sat = g.satisfied(world);
|
|
44
|
+
if (!Number.isFinite(g.weight)) {
|
|
45
|
+
// hard constraint
|
|
46
|
+
if (g.weight > 0 && !sat)
|
|
47
|
+
return Number.NEGATIVE_INFINITY;
|
|
48
|
+
if (g.weight < 0 && sat)
|
|
49
|
+
return Number.NEGATIVE_INFINITY;
|
|
50
|
+
// hard constraint satisfecho → no aporta al score
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (sat)
|
|
54
|
+
score += g.weight;
|
|
55
|
+
}
|
|
56
|
+
return score;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Probabilidad de un mundo dada una aproximación de la partición Z.
|
|
60
|
+
*
|
|
61
|
+
* P(world) = exp(weight(world)) / partitionApprox
|
|
62
|
+
*
|
|
63
|
+
* `partitionApprox` debe estar en el mismo "espacio" (no log).
|
|
64
|
+
* Si `weight(world) === -Infinity` devuelve 0.
|
|
65
|
+
*/
|
|
66
|
+
function probability(theory, world, partitionApprox) {
|
|
67
|
+
if (partitionApprox <= 0 || !Number.isFinite(partitionApprox)) {
|
|
68
|
+
throw new Error('partitionApprox debe ser un número positivo finito');
|
|
69
|
+
}
|
|
70
|
+
const w = weight(theory, world);
|
|
71
|
+
if (!Number.isFinite(w))
|
|
72
|
+
return 0;
|
|
73
|
+
return Math.exp(w) / partitionApprox;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Calcula la partición Z exactamente sumando sobre todos los mundos
|
|
77
|
+
* posibles. SOLO viable para teorías pequeñas (≤ ~20 ground atoms).
|
|
78
|
+
* Útil para tests.
|
|
79
|
+
*/
|
|
80
|
+
function exactPartition(theory) {
|
|
81
|
+
const atoms = (0, grounding_1.allGroundAtoms)(theory);
|
|
82
|
+
if (atoms.length > 24) {
|
|
83
|
+
throw new Error(`exactPartition no es viable con ${atoms.length} atoms (> 24). Usá muestreo.`);
|
|
84
|
+
}
|
|
85
|
+
const grounded = (0, grounding_1.ground)(theory);
|
|
86
|
+
const n = atoms.length;
|
|
87
|
+
const total = 1 << n;
|
|
88
|
+
let Z = 0;
|
|
89
|
+
const world = { groundAtoms: {} };
|
|
90
|
+
for (let mask = 0; mask < total; mask++) {
|
|
91
|
+
for (let i = 0; i < n; i++) {
|
|
92
|
+
world.groundAtoms[atoms[i]] = (mask & (1 << i)) !== 0;
|
|
93
|
+
}
|
|
94
|
+
const w = weightFromGrounded(grounded, world);
|
|
95
|
+
if (Number.isFinite(w))
|
|
96
|
+
Z += Math.exp(w);
|
|
97
|
+
}
|
|
98
|
+
return Z;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Marginales exactas P(atom = true) sobre todos los mundos.
|
|
102
|
+
* Mismo costo exponencial que `exactPartition`. Sólo para tests.
|
|
103
|
+
*/
|
|
104
|
+
function exactMarginals(theory) {
|
|
105
|
+
const atoms = (0, grounding_1.allGroundAtoms)(theory);
|
|
106
|
+
if (atoms.length > 24) {
|
|
107
|
+
throw new Error(`exactMarginals no viable con ${atoms.length} atoms (> 24).`);
|
|
108
|
+
}
|
|
109
|
+
const grounded = (0, grounding_1.ground)(theory);
|
|
110
|
+
const n = atoms.length;
|
|
111
|
+
const total = 1 << n;
|
|
112
|
+
let Z = 0;
|
|
113
|
+
const trueMass = {};
|
|
114
|
+
for (const a of atoms)
|
|
115
|
+
trueMass[a] = 0;
|
|
116
|
+
const world = { groundAtoms: {} };
|
|
117
|
+
for (let mask = 0; mask < total; mask++) {
|
|
118
|
+
for (let i = 0; i < n; i++) {
|
|
119
|
+
world.groundAtoms[atoms[i]] = (mask & (1 << i)) !== 0;
|
|
120
|
+
}
|
|
121
|
+
const w = weightFromGrounded(grounded, world);
|
|
122
|
+
if (!Number.isFinite(w))
|
|
123
|
+
continue;
|
|
124
|
+
const p = Math.exp(w);
|
|
125
|
+
Z += p;
|
|
126
|
+
for (let i = 0; i < n; i++) {
|
|
127
|
+
if ((mask & (1 << i)) !== 0) {
|
|
128
|
+
trueMass[atoms[i]] += p;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (Z === 0) {
|
|
133
|
+
// toda probabilidad concentrada en mundos violadores → distribución indefinida
|
|
134
|
+
const out = {};
|
|
135
|
+
for (const a of atoms)
|
|
136
|
+
out[a] = 0;
|
|
137
|
+
return out;
|
|
138
|
+
}
|
|
139
|
+
const out = {};
|
|
140
|
+
for (const a of atoms)
|
|
141
|
+
out[a] = (trueMass[a] ?? 0) / Z;
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Gibbs sampling sobre los ground atoms NO evidenciados.
|
|
146
|
+
*
|
|
147
|
+
* En cada paso elige un atom no fijo y resamplea su valor según
|
|
148
|
+
* P(atom=true | resto). Para MLN, esa condicional es la sigmoide del
|
|
149
|
+
* "delta" de log-score al flippear:
|
|
150
|
+
*
|
|
151
|
+
* P(atom=true | ·) = σ( logScore(true) − logScore(false) )
|
|
152
|
+
*
|
|
153
|
+
* Devuelve una secuencia de `iterations` mundos coleccionados tras
|
|
154
|
+
* `burnIn` pasos de calentamiento, con thinning opcional.
|
|
155
|
+
*/
|
|
156
|
+
function gibbsSample(theory, evidence = {}, iterations, options = {}) {
|
|
157
|
+
if (iterations <= 0)
|
|
158
|
+
return [];
|
|
159
|
+
const rng = options.rng ?? Math.random;
|
|
160
|
+
const burnIn = Math.max(0, options.burnIn ?? 0);
|
|
161
|
+
const thin = Math.max(1, options.thin ?? 1);
|
|
162
|
+
const grounded = (0, grounding_1.ground)(theory);
|
|
163
|
+
const allAtoms = (0, grounding_1.allGroundAtoms)(theory);
|
|
164
|
+
const evidenceAtoms = evidence.groundAtoms ?? {};
|
|
165
|
+
const fixed = new Set(Object.keys(evidenceAtoms));
|
|
166
|
+
// Inicial: respetá evidence; atoms libres → coin flip.
|
|
167
|
+
const current = options.initial ? cloneWorld(options.initial) : { groundAtoms: {} };
|
|
168
|
+
for (const a of allAtoms) {
|
|
169
|
+
if (fixed.has(a)) {
|
|
170
|
+
current.groundAtoms[a] = evidenceAtoms[a] === true;
|
|
171
|
+
}
|
|
172
|
+
else if (current.groundAtoms[a] === undefined) {
|
|
173
|
+
current.groundAtoms[a] = rng() < 0.5;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Index: qué ground formulas tocan qué atom (Markov blanket de cada atom).
|
|
177
|
+
const touchedBy = new Map();
|
|
178
|
+
for (let i = 0; i < grounded.length; i++) {
|
|
179
|
+
for (const a of grounded[i].atoms) {
|
|
180
|
+
let arr = touchedBy.get(a);
|
|
181
|
+
if (!arr) {
|
|
182
|
+
arr = [];
|
|
183
|
+
touchedBy.set(a, arr);
|
|
184
|
+
}
|
|
185
|
+
arr.push(i);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const samples = [];
|
|
189
|
+
const freeAtoms = allAtoms.filter((a) => !fixed.has(a));
|
|
190
|
+
if (freeAtoms.length === 0) {
|
|
191
|
+
// todos los átomos son evidencia → la única muestra posible es la evidencia.
|
|
192
|
+
for (let k = 0; k < iterations; k++)
|
|
193
|
+
samples.push(cloneWorld(current));
|
|
194
|
+
return samples;
|
|
195
|
+
}
|
|
196
|
+
const totalSteps = burnIn + iterations * thin;
|
|
197
|
+
let collected = 0;
|
|
198
|
+
let stepsAfterBurnIn = 0;
|
|
199
|
+
for (let step = 0; step < totalSteps; step++) {
|
|
200
|
+
const idx = Math.floor(rng() * freeAtoms.length);
|
|
201
|
+
const atom = freeAtoms[idx];
|
|
202
|
+
const local = touchedBy.get(atom) ?? [];
|
|
203
|
+
// logScore parcial con valor actual: sólo necesitamos las fórmulas que tocan `atom`.
|
|
204
|
+
const prev = current.groundAtoms[atom] === true;
|
|
205
|
+
current.groundAtoms[atom] = true;
|
|
206
|
+
const sTrue = partialLogScore(grounded, local, current);
|
|
207
|
+
current.groundAtoms[atom] = false;
|
|
208
|
+
const sFalse = partialLogScore(grounded, local, current);
|
|
209
|
+
let pTrue;
|
|
210
|
+
if (!Number.isFinite(sTrue) && !Number.isFinite(sFalse)) {
|
|
211
|
+
// ambos imposibles (hard constraint contradictorio) → quedate como estabas.
|
|
212
|
+
current.groundAtoms[atom] = prev;
|
|
213
|
+
}
|
|
214
|
+
else if (!Number.isFinite(sTrue)) {
|
|
215
|
+
pTrue = 0;
|
|
216
|
+
current.groundAtoms[atom] = rng() < pTrue;
|
|
217
|
+
}
|
|
218
|
+
else if (!Number.isFinite(sFalse)) {
|
|
219
|
+
pTrue = 1;
|
|
220
|
+
current.groundAtoms[atom] = rng() < pTrue;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
pTrue = sigmoid(sTrue - sFalse);
|
|
224
|
+
current.groundAtoms[atom] = rng() < pTrue;
|
|
225
|
+
}
|
|
226
|
+
if (step >= burnIn) {
|
|
227
|
+
stepsAfterBurnIn++;
|
|
228
|
+
if (stepsAfterBurnIn % thin === 0 && collected < iterations) {
|
|
229
|
+
samples.push(cloneWorld(current));
|
|
230
|
+
collected++;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return samples;
|
|
235
|
+
}
|
|
236
|
+
function partialLogScore(grounded, indices, world) {
|
|
237
|
+
let s = 0;
|
|
238
|
+
for (const i of indices) {
|
|
239
|
+
const g = grounded[i];
|
|
240
|
+
const sat = g.satisfied(world);
|
|
241
|
+
if (!Number.isFinite(g.weight)) {
|
|
242
|
+
if (g.weight > 0 && !sat)
|
|
243
|
+
return Number.NEGATIVE_INFINITY;
|
|
244
|
+
if (g.weight < 0 && sat)
|
|
245
|
+
return Number.NEGATIVE_INFINITY;
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (sat)
|
|
249
|
+
s += g.weight;
|
|
250
|
+
}
|
|
251
|
+
return s;
|
|
252
|
+
}
|
|
253
|
+
function sigmoid(x) {
|
|
254
|
+
if (x >= 0) {
|
|
255
|
+
const e = Math.exp(-x);
|
|
256
|
+
return 1 / (1 + e);
|
|
257
|
+
}
|
|
258
|
+
const e = Math.exp(x);
|
|
259
|
+
return e / (1 + e);
|
|
260
|
+
}
|
|
261
|
+
function cloneWorld(w) {
|
|
262
|
+
return { groundAtoms: { ...w.groundAtoms } };
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Marginales aproximadas: corre Gibbs y promedia indicadores.
|
|
266
|
+
*/
|
|
267
|
+
function gibbsMarginals(theory, evidence, iterations, options = {}) {
|
|
268
|
+
const samples = gibbsSample(theory, evidence, iterations, options);
|
|
269
|
+
if (samples.length === 0)
|
|
270
|
+
return {};
|
|
271
|
+
const atoms = (0, grounding_1.allGroundAtoms)(theory);
|
|
272
|
+
const counts = {};
|
|
273
|
+
for (const a of atoms)
|
|
274
|
+
counts[a] = 0;
|
|
275
|
+
for (const s of samples) {
|
|
276
|
+
for (const a of atoms) {
|
|
277
|
+
if (s.groundAtoms[a] === true)
|
|
278
|
+
counts[a] += 1;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
const out = {};
|
|
282
|
+
for (const a of atoms)
|
|
283
|
+
out[a] = (counts[a] ?? 0) / samples.length;
|
|
284
|
+
return out;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* MAP inference: encuentra el mundo de mayor `weight`. Aproximado
|
|
288
|
+
* mediante MaxWalkSAT con múltiples restarts: en cada paso, elige
|
|
289
|
+
* una ground formula INSATISFECHA y flippea uno de sus atoms; con
|
|
290
|
+
* probabilidad `noise` lo elige al azar (random walk), con `1-noise`
|
|
291
|
+
* elige el flip que más mejora el score (greedy).
|
|
292
|
+
*
|
|
293
|
+
* Respeta `evidence`: nunca flippea atoms fijos.
|
|
294
|
+
*/
|
|
295
|
+
function mapInference(theory, evidence = {}, options = {}) {
|
|
296
|
+
const rng = options.rng ?? Math.random;
|
|
297
|
+
const maxFlips = Math.max(1, options.maxFlips ?? 5000);
|
|
298
|
+
const restarts = Math.max(1, options.restarts ?? 5);
|
|
299
|
+
const noise = clamp(options.noise ?? 0.3, 0, 1);
|
|
300
|
+
const grounded = (0, grounding_1.ground)(theory);
|
|
301
|
+
const allAtoms = (0, grounding_1.allGroundAtoms)(theory);
|
|
302
|
+
const evidenceAtoms = evidence.groundAtoms ?? {};
|
|
303
|
+
const fixed = new Set(Object.keys(evidenceAtoms));
|
|
304
|
+
const freeAtoms = allAtoms.filter((a) => !fixed.has(a));
|
|
305
|
+
// Index: cada atom → qué ground formulas lo tocan.
|
|
306
|
+
const touchedBy = new Map();
|
|
307
|
+
for (let i = 0; i < grounded.length; i++) {
|
|
308
|
+
for (const a of grounded[i].atoms) {
|
|
309
|
+
let arr = touchedBy.get(a);
|
|
310
|
+
if (!arr) {
|
|
311
|
+
arr = [];
|
|
312
|
+
touchedBy.set(a, arr);
|
|
313
|
+
}
|
|
314
|
+
arr.push(i);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
let bestWorld = null;
|
|
318
|
+
let bestScore = Number.NEGATIVE_INFINITY;
|
|
319
|
+
for (let restart = 0; restart < restarts; restart++) {
|
|
320
|
+
const world = { groundAtoms: {} };
|
|
321
|
+
for (const a of allAtoms) {
|
|
322
|
+
world.groundAtoms[a] = fixed.has(a) ? evidenceAtoms[a] === true : rng() < 0.5;
|
|
323
|
+
}
|
|
324
|
+
let currentScore = weightFromGrounded(grounded, world);
|
|
325
|
+
if (currentScore > bestScore) {
|
|
326
|
+
bestScore = currentScore;
|
|
327
|
+
bestWorld = cloneWorld(world);
|
|
328
|
+
}
|
|
329
|
+
for (let flip = 0; flip < maxFlips; flip++) {
|
|
330
|
+
// recolectar ground formulas no satisfechas
|
|
331
|
+
const unsat = [];
|
|
332
|
+
for (let i = 0; i < grounded.length; i++) {
|
|
333
|
+
if (!grounded[i].satisfied(world))
|
|
334
|
+
unsat.push(i);
|
|
335
|
+
}
|
|
336
|
+
if (unsat.length === 0)
|
|
337
|
+
break; // todas las fórmulas satisfechas (caso raro)
|
|
338
|
+
const pick = unsat[Math.floor(rng() * unsat.length)];
|
|
339
|
+
const candidates = grounded[pick].atoms.filter((a) => !fixed.has(a));
|
|
340
|
+
if (candidates.length === 0)
|
|
341
|
+
continue;
|
|
342
|
+
let chosen;
|
|
343
|
+
if (rng() < noise) {
|
|
344
|
+
// random walk
|
|
345
|
+
chosen = candidates[Math.floor(rng() * candidates.length)];
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
// greedy: elige el flip que maximiza el score
|
|
349
|
+
let bestFlipScore = Number.NEGATIVE_INFINITY;
|
|
350
|
+
let bestFlipAtom = candidates[0];
|
|
351
|
+
for (const c of candidates) {
|
|
352
|
+
world.groundAtoms[c] = !world.groundAtoms[c];
|
|
353
|
+
const s = weightFromGrounded(grounded, world);
|
|
354
|
+
if (s > bestFlipScore) {
|
|
355
|
+
bestFlipScore = s;
|
|
356
|
+
bestFlipAtom = c;
|
|
357
|
+
}
|
|
358
|
+
world.groundAtoms[c] = !world.groundAtoms[c]; // revert
|
|
359
|
+
}
|
|
360
|
+
chosen = bestFlipAtom;
|
|
361
|
+
}
|
|
362
|
+
world.groundAtoms[chosen] = !world.groundAtoms[chosen];
|
|
363
|
+
currentScore = weightFromGrounded(grounded, world);
|
|
364
|
+
if (currentScore > bestScore) {
|
|
365
|
+
bestScore = currentScore;
|
|
366
|
+
bestWorld = cloneWorld(world);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
// Si no hay free atoms el primer restart ya nos da la única solución posible.
|
|
370
|
+
if (freeAtoms.length === 0)
|
|
371
|
+
break;
|
|
372
|
+
}
|
|
373
|
+
return bestWorld ?? { groundAtoms: { ...evidenceAtoms } };
|
|
374
|
+
}
|
|
375
|
+
function clamp(x, lo, hi) {
|
|
376
|
+
if (x < lo)
|
|
377
|
+
return lo;
|
|
378
|
+
if (x > hi)
|
|
379
|
+
return hi;
|
|
380
|
+
return x;
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=inference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference.js","sourceRoot":"","sources":["../../../src/runtime/markov-logic/inference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type FOLNode = {
|
|
2
|
+
kind: 'atom';
|
|
3
|
+
predicate: string;
|
|
4
|
+
args: string[];
|
|
5
|
+
} | {
|
|
6
|
+
kind: 'not';
|
|
7
|
+
arg: FOLNode;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'and';
|
|
10
|
+
left: FOLNode;
|
|
11
|
+
right: FOLNode;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'or';
|
|
14
|
+
left: FOLNode;
|
|
15
|
+
right: FOLNode;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'implies';
|
|
18
|
+
left: FOLNode;
|
|
19
|
+
right: FOLNode;
|
|
20
|
+
};
|
|
21
|
+
export declare function parseFOL(input: string): FOLNode;
|
|
22
|
+
/** Devuelve las variables libres (lowercase) que aparecen en `node`. */
|
|
23
|
+
export declare function freeVariables(node: FOLNode): string[];
|
|
24
|
+
export declare function isVariable(name: string): boolean;
|
|
25
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/runtime/markov-logic/parser.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,CAIrD;AAmBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKhD"}
|