@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,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contexto formal K = (G, M, I).
|
|
3
|
+
* - `objects` G como lista finita ordenada.
|
|
4
|
+
* - `attributes` M como lista finita ordenada.
|
|
5
|
+
* - `incidence` representación canónica como conjunto de pares
|
|
6
|
+
* codificados "objeto|atributo" para test O(1).
|
|
7
|
+
*/
|
|
8
|
+
export interface FormalContext {
|
|
9
|
+
objects: string[];
|
|
10
|
+
attributes: string[];
|
|
11
|
+
incidence: Set<string>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Concepto formal (A, B) con A = extent, B = intent.
|
|
15
|
+
* Invariante: A' = B y B' = A (verificable con `isConcept`).
|
|
16
|
+
*/
|
|
17
|
+
export interface FormalConcept {
|
|
18
|
+
extent: Set<string>;
|
|
19
|
+
intent: Set<string>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Diagrama de Hasse del concept lattice como lista de aristas de cobertura.
|
|
23
|
+
* `edges[i] = [child, parent]` significa que el concepto `child` está cubierto
|
|
24
|
+
* inmediatamente por `parent` (no hay concepto intermedio estricto).
|
|
25
|
+
* Los índices son posiciones en el array de conceptos devuelto por
|
|
26
|
+
* `allConcepts`.
|
|
27
|
+
*/
|
|
28
|
+
export interface HasseLattice {
|
|
29
|
+
edges: Array<[number, number]>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/fca/types.ts"],"names":[],"mappings":"AA4BA;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Formal Concept Analysis (FCA) — tipos públicos
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Marco matemático de Wille (1982) para extraer una jerarquía conceptual
|
|
6
|
+
// a partir de una relación binaria objeto-atributo.
|
|
7
|
+
//
|
|
8
|
+
// Contexto formal:
|
|
9
|
+
// K = (G, M, I)
|
|
10
|
+
// G conjunto finito de "objetos"
|
|
11
|
+
// M conjunto finito de "atributos"
|
|
12
|
+
// I ⊆ G × M relación de incidencia ("el objeto g tiene el atributo m")
|
|
13
|
+
//
|
|
14
|
+
// Operadores de derivación (polares de Galois):
|
|
15
|
+
// A' = { m ∈ M | ∀ g ∈ A. (g, m) ∈ I } (atributos comunes a A ⊆ G)
|
|
16
|
+
// B' = { g ∈ G | ∀ m ∈ B. (g, m) ∈ I } (objetos que poseen todo B ⊆ M)
|
|
17
|
+
//
|
|
18
|
+
// Un concepto formal es un par (A, B) con A ⊆ G, B ⊆ M tal que
|
|
19
|
+
// A' = B y B' = A
|
|
20
|
+
// equivalentemente: A = A'' y B = B'' (clausura).
|
|
21
|
+
//
|
|
22
|
+
// El conjunto B(K) de todos los conceptos, ordenado por
|
|
23
|
+
// (A1, B1) ≤ (A2, B2) ⇔ A1 ⊆ A2 ( ⇔ B2 ⊆ B1 )
|
|
24
|
+
// forma un retículo completo (lattice), el "concept lattice".
|
|
25
|
+
//
|
|
26
|
+
// Top: (G, G') — todos los objetos, atributos comunes.
|
|
27
|
+
// Bottom: (M', M) — atributos en todos, en general ∅ objetos.
|
|
28
|
+
// ============================================================
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/fca/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,iDAAiD;AACjD,+DAA+D;AAC/D,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,mBAAmB;AACnB,kBAAkB;AAClB,sCAAsC;AACtC,wCAAwC;AACxC,4EAA4E;AAC5E,EAAE;AACF,gDAAgD;AAChD,yEAAyE;AACzE,6EAA6E;AAC7E,EAAE;AACF,+DAA+D;AAC/D,sBAAsB;AACtB,sDAAsD;AACtD,EAAE;AACF,wDAAwD;AACxD,iDAAiD;AACjD,8DAA8D;AAC9D,EAAE;AACF,6DAA6D;AAC7D,iEAAiE;AACjE,+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"}
|