@stevenvo780/st-lang 4.1.0 → 4.3.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/belief-revision/agm.d.ts +76 -0
- package/dist/belief-revision/agm.d.ts.map +1 -0
- package/dist/belief-revision/agm.js +249 -0
- package/dist/belief-revision/agm.js.map +1 -0
- package/dist/belief-revision/index.d.ts +6 -0
- package/dist/belief-revision/index.d.ts.map +1 -0
- package/dist/belief-revision/index.js +33 -0
- package/dist/belief-revision/index.js.map +1 -0
- package/dist/belief-revision/parser.d.ts +16 -0
- package/dist/belief-revision/parser.d.ts.map +1 -0
- package/dist/belief-revision/parser.js +199 -0
- package/dist/belief-revision/parser.js.map +1 -0
- package/dist/belief-revision/sat.d.ts +19 -0
- package/dist/belief-revision/sat.d.ts.map +1 -0
- package/dist/belief-revision/sat.js +90 -0
- package/dist/belief-revision/sat.js.map +1 -0
- package/dist/belief-revision/types.d.ts +51 -0
- package/dist/belief-revision/types.d.ts.map +1 -0
- package/dist/belief-revision/types.js +10 -0
- package/dist/belief-revision/types.js.map +1 -0
- package/dist/curry-howard/index.d.ts +7 -0
- package/dist/curry-howard/index.d.ts.map +1 -0
- package/dist/curry-howard/index.js +46 -0
- package/dist/curry-howard/index.js.map +1 -0
- package/dist/curry-howard/infer.d.ts +9 -0
- package/dist/curry-howard/infer.d.ts.map +1 -0
- package/dist/curry-howard/infer.js +129 -0
- package/dist/curry-howard/infer.js.map +1 -0
- package/dist/curry-howard/proof.d.ts +7 -0
- package/dist/curry-howard/proof.d.ts.map +1 -0
- package/dist/curry-howard/proof.js +282 -0
- package/dist/curry-howard/proof.js.map +1 -0
- package/dist/curry-howard/reduce.d.ts +7 -0
- package/dist/curry-howard/reduce.d.ts.map +1 -0
- package/dist/curry-howard/reduce.js +266 -0
- package/dist/curry-howard/reduce.js.map +1 -0
- package/dist/curry-howard/types.d.ts +91 -0
- package/dist/curry-howard/types.d.ts.map +1 -0
- package/dist/curry-howard/types.js +149 -0
- package/dist/curry-howard/types.js.map +1 -0
- package/dist/fol-prover-equality/demodulate.d.ts +29 -0
- package/dist/fol-prover-equality/demodulate.d.ts.map +1 -0
- package/dist/fol-prover-equality/demodulate.js +197 -0
- package/dist/fol-prover-equality/demodulate.js.map +1 -0
- package/dist/fol-prover-equality/index.d.ts +8 -0
- package/dist/fol-prover-equality/index.d.ts.map +1 -0
- package/dist/fol-prover-equality/index.js +24 -0
- package/dist/fol-prover-equality/index.js.map +1 -0
- package/dist/fol-prover-equality/paramodulate.d.ts +46 -0
- package/dist/fol-prover-equality/paramodulate.d.ts.map +1 -0
- package/dist/fol-prover-equality/paramodulate.js +159 -0
- package/dist/fol-prover-equality/paramodulate.js.map +1 -0
- package/dist/fol-prover-equality/prove.d.ts +7 -0
- package/dist/fol-prover-equality/prove.d.ts.map +1 -0
- package/dist/fol-prover-equality/prove.js +307 -0
- package/dist/fol-prover-equality/prove.js.map +1 -0
- package/dist/fol-prover-equality/term-utils.d.ts +43 -0
- package/dist/fol-prover-equality/term-utils.d.ts.map +1 -0
- package/dist/fol-prover-equality/term-utils.js +230 -0
- package/dist/fol-prover-equality/term-utils.js.map +1 -0
- package/dist/fol-prover-equality/types.d.ts +20 -0
- package/dist/fol-prover-equality/types.d.ts.map +1 -0
- package/dist/fol-prover-equality/types.js +5 -0
- package/dist/fol-prover-equality/types.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -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/profiles/ctl/check.d.ts +13 -0
- package/dist/profiles/ctl/check.d.ts.map +1 -0
- package/dist/profiles/ctl/check.js +359 -0
- package/dist/profiles/ctl/check.js.map +1 -0
- package/dist/profiles/ctl/index.d.ts +5 -0
- package/dist/profiles/ctl/index.d.ts.map +1 -0
- package/dist/profiles/ctl/index.js +23 -0
- package/dist/profiles/ctl/index.js.map +1 -0
- package/dist/profiles/ctl/types.d.ts +74 -0
- package/dist/profiles/ctl/types.d.ts.map +1 -0
- package/dist/profiles/ctl/types.js +53 -0
- package/dist/profiles/ctl/types.js.map +1 -0
- package/dist/profiles/ctl/witness.d.ts +20 -0
- package/dist/profiles/ctl/witness.d.ts.map +1 -0
- package/dist/profiles/ctl/witness.js +149 -0
- package/dist/profiles/ctl/witness.js.map +1 -0
- package/dist/profiles/default-logic/entailment.d.ts +14 -0
- package/dist/profiles/default-logic/entailment.d.ts.map +1 -0
- package/dist/profiles/default-logic/entailment.js +36 -0
- package/dist/profiles/default-logic/entailment.js.map +1 -0
- package/dist/profiles/default-logic/extensions.d.ts +35 -0
- package/dist/profiles/default-logic/extensions.d.ts.map +1 -0
- package/dist/profiles/default-logic/extensions.js +276 -0
- package/dist/profiles/default-logic/extensions.js.map +1 -0
- package/dist/profiles/default-logic/index.d.ts +5 -0
- package/dist/profiles/default-logic/index.d.ts.map +1 -0
- package/dist/profiles/default-logic/index.js +33 -0
- package/dist/profiles/default-logic/index.js.map +1 -0
- package/dist/profiles/default-logic/types.d.ts +29 -0
- package/dist/profiles/default-logic/types.d.ts.map +1 -0
- package/dist/profiles/default-logic/types.js +25 -0
- package/dist/profiles/default-logic/types.js.map +1 -0
- package/dist/profiles/description-logic/index.d.ts +5 -0
- package/dist/profiles/description-logic/index.d.ts.map +1 -0
- package/dist/profiles/description-logic/index.js +39 -0
- package/dist/profiles/description-logic/index.js.map +1 -0
- package/dist/profiles/description-logic/nnf.d.ts +13 -0
- package/dist/profiles/description-logic/nnf.d.ts.map +1 -0
- package/dist/profiles/description-logic/nnf.js +123 -0
- package/dist/profiles/description-logic/nnf.js.map +1 -0
- package/dist/profiles/description-logic/tableau.d.ts +27 -0
- package/dist/profiles/description-logic/tableau.d.ts.map +1 -0
- package/dist/profiles/description-logic/tableau.js +491 -0
- package/dist/profiles/description-logic/tableau.js.map +1 -0
- package/dist/profiles/description-logic/types.d.ts +45 -0
- package/dist/profiles/description-logic/types.d.ts.map +1 -0
- package/dist/profiles/description-logic/types.js +71 -0
- package/dist/profiles/description-logic/types.js.map +1 -0
- package/dist/profiles/hybrid-logic/index.d.ts +5 -0
- package/dist/profiles/hybrid-logic/index.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/index.js +34 -0
- package/dist/profiles/hybrid-logic/index.js.map +1 -0
- package/dist/profiles/hybrid-logic/sat.d.ts +15 -0
- package/dist/profiles/hybrid-logic/sat.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/sat.js +142 -0
- package/dist/profiles/hybrid-logic/sat.js.map +1 -0
- package/dist/profiles/hybrid-logic/semantics.d.ts +20 -0
- package/dist/profiles/hybrid-logic/semantics.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/semantics.js +107 -0
- package/dist/profiles/hybrid-logic/semantics.js.map +1 -0
- package/dist/profiles/hybrid-logic/types.d.ts +78 -0
- package/dist/profiles/hybrid-logic/types.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/types.js +107 -0
- package/dist/profiles/hybrid-logic/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/ltl-sat/index.d.ts +4 -0
- package/dist/profiles/ltl-sat/index.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/index.js +40 -0
- package/dist/profiles/ltl-sat/index.js.map +1 -0
- package/dist/profiles/ltl-sat/sat.d.ts +8 -0
- package/dist/profiles/ltl-sat/sat.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/sat.js +140 -0
- package/dist/profiles/ltl-sat/sat.js.map +1 -0
- package/dist/profiles/ltl-sat/tableau.d.ts +19 -0
- package/dist/profiles/ltl-sat/tableau.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/tableau.js +358 -0
- package/dist/profiles/ltl-sat/tableau.js.map +1 -0
- package/dist/profiles/ltl-sat/types.d.ts +52 -0
- package/dist/profiles/ltl-sat/types.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/types.js +101 -0
- package/dist/profiles/ltl-sat/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/sequent-g3/index.d.ts +5 -0
- package/dist/profiles/sequent-g3/index.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/index.js +23 -0
- package/dist/profiles/sequent-g3/index.js.map +1 -0
- package/dist/profiles/sequent-g3/latex.d.ts +7 -0
- package/dist/profiles/sequent-g3/latex.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/latex.js +107 -0
- package/dist/profiles/sequent-g3/latex.js.map +1 -0
- package/dist/profiles/sequent-g3/normalize.d.ts +15 -0
- package/dist/profiles/sequent-g3/normalize.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/normalize.js +121 -0
- package/dist/profiles/sequent-g3/normalize.js.map +1 -0
- package/dist/profiles/sequent-g3/prover.d.ts +16 -0
- package/dist/profiles/sequent-g3/prover.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/prover.js +348 -0
- package/dist/profiles/sequent-g3/prover.js.map +1 -0
- package/dist/profiles/sequent-g3/types.d.ts +30 -0
- package/dist/profiles/sequent-g3/types.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/types.js +16 -0
- package/dist/profiles/sequent-g3/types.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/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/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/countermodel-min/index.d.ts +3 -0
- package/dist/runtime/countermodel-min/index.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/index.js +9 -0
- package/dist/runtime/countermodel-min/index.js.map +1 -0
- package/dist/runtime/countermodel-min/minimize.d.ts +17 -0
- package/dist/runtime/countermodel-min/minimize.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/minimize.js +0 -0
- package/dist/runtime/countermodel-min/minimize.js.map +1 -0
- package/dist/runtime/countermodel-min/types.d.ts +40 -0
- package/dist/runtime/countermodel-min/types.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/types.js +6 -0
- package/dist/runtime/countermodel-min/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/mus/extract.d.ts +34 -0
- package/dist/runtime/mus/extract.d.ts.map +1 -0
- package/dist/runtime/mus/extract.js +243 -0
- package/dist/runtime/mus/extract.js.map +1 -0
- package/dist/runtime/mus/index.d.ts +4 -0
- package/dist/runtime/mus/index.d.ts.map +1 -0
- package/dist/runtime/mus/index.js +12 -0
- package/dist/runtime/mus/index.js.map +1 -0
- package/dist/runtime/mus/quickxplain.d.ts +10 -0
- package/dist/runtime/mus/quickxplain.d.ts.map +1 -0
- package/dist/runtime/mus/quickxplain.js +100 -0
- package/dist/runtime/mus/quickxplain.js.map +1 -0
- package/dist/runtime/mus/types.d.ts +59 -0
- package/dist/runtime/mus/types.d.ts.map +1 -0
- package/dist/runtime/mus/types.js +20 -0
- package/dist/runtime/mus/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 +206 -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/solver/cdcl-v2-incremental/index.d.ts +3 -0
- package/dist/solver/cdcl-v2-incremental/index.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/index.js +16 -0
- package/dist/solver/cdcl-v2-incremental/index.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/solver.d.ts +83 -0
- package/dist/solver/cdcl-v2-incremental/solver.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/solver.js +727 -0
- package/dist/solver/cdcl-v2-incremental/solver.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/types.d.ts +47 -0
- package/dist/solver/cdcl-v2-incremental/types.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/types.js +13 -0
- package/dist/solver/cdcl-v2-incremental/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/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/belief-revision/agm.test.d.ts +2 -0
- package/dist/tests/belief-revision/agm.test.d.ts.map +1 -0
- package/dist/tests/belief-revision/agm.test.js +173 -0
- package/dist/tests/belief-revision/agm.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/countermodel-min/minimize.test.d.ts +2 -0
- package/dist/tests/countermodel-min/minimize.test.d.ts.map +1 -0
- package/dist/tests/countermodel-min/minimize.test.js +241 -0
- package/dist/tests/countermodel-min/minimize.test.js.map +1 -0
- package/dist/tests/ctl/check.test.d.ts +2 -0
- package/dist/tests/ctl/check.test.d.ts.map +1 -0
- package/dist/tests/ctl/check.test.js +337 -0
- package/dist/tests/ctl/check.test.js.map +1 -0
- package/dist/tests/curry-howard/infer.test.d.ts +2 -0
- package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/infer.test.js +93 -0
- package/dist/tests/curry-howard/infer.test.js.map +1 -0
- package/dist/tests/curry-howard/proof.test.d.ts +2 -0
- package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/proof.test.js +105 -0
- package/dist/tests/curry-howard/proof.test.js.map +1 -0
- package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
- package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/reduce.test.js +109 -0
- package/dist/tests/curry-howard/reduce.test.js.map +1 -0
- package/dist/tests/default-logic/extensions.test.d.ts +2 -0
- package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
- package/dist/tests/default-logic/extensions.test.js +323 -0
- package/dist/tests/default-logic/extensions.test.js.map +1 -0
- package/dist/tests/description-logic/alc.test.d.ts +2 -0
- package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
- package/dist/tests/description-logic/alc.test.js +253 -0
- package/dist/tests/description-logic/alc.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/fol-prover-equality/prove.test.d.ts +2 -0
- package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
- package/dist/tests/fol-prover-equality/prove.test.js +179 -0
- package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
- package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
- package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
- package/dist/tests/hybrid-logic/semantics.test.js +169 -0
- package/dist/tests/hybrid-logic/semantics.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/ltl-sat/sat.test.d.ts +2 -0
- package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
- package/dist/tests/ltl-sat/sat.test.js +160 -0
- package/dist/tests/ltl-sat/sat.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/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/mus/extract.test.d.ts +2 -0
- package/dist/tests/mus/extract.test.d.ts.map +1 -0
- package/dist/tests/mus/extract.test.js +352 -0
- package/dist/tests/mus/extract.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/sat-v2-incremental/basic.test.d.ts +2 -0
- package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
- package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
- package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
- package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
- package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
- package/dist/tests/sequent-g3/prover.test.js +205 -0
- package/dist/tests/sequent-g3/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/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/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST LTL-SAT — Tipos para el procedimiento de decisión de LTL
|
|
4
|
+
// ============================================================
|
|
5
|
+
// AST nativo de LTL para el decisor por tableau:
|
|
6
|
+
// atom, not, and, or, X (next), F (eventually), G (globally),
|
|
7
|
+
// U (until), R (release).
|
|
8
|
+
//
|
|
9
|
+
// La operación derivada W (weak until) se traduce a R en la
|
|
10
|
+
// normalización: φ W ψ ≡ ψ R (φ ∨ ψ) ≡ (G φ) ∨ (φ U ψ).
|
|
11
|
+
// ============================================================
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.implies = exports.weakUntil = exports.release = exports.until = exports.globally = exports.eventually = exports.next = exports.or = exports.and = exports.not = exports.atom = void 0;
|
|
14
|
+
exports.formulaToString = formulaToString;
|
|
15
|
+
exports.formulaKey = formulaKey;
|
|
16
|
+
// Constructores ergonómicos.
|
|
17
|
+
const atom = (name) => ({ kind: 'atom', name });
|
|
18
|
+
exports.atom = atom;
|
|
19
|
+
const not = (arg) => ({ kind: 'not', arg });
|
|
20
|
+
exports.not = not;
|
|
21
|
+
const and = (...args) => ({ kind: 'and', args });
|
|
22
|
+
exports.and = and;
|
|
23
|
+
const or = (...args) => ({ kind: 'or', args });
|
|
24
|
+
exports.or = or;
|
|
25
|
+
const next = (arg) => ({ kind: 'X', arg });
|
|
26
|
+
exports.next = next;
|
|
27
|
+
const eventually = (arg) => ({ kind: 'F', arg });
|
|
28
|
+
exports.eventually = eventually;
|
|
29
|
+
const globally = (arg) => ({ kind: 'G', arg });
|
|
30
|
+
exports.globally = globally;
|
|
31
|
+
const until = (left, right) => ({
|
|
32
|
+
kind: 'U',
|
|
33
|
+
left,
|
|
34
|
+
right,
|
|
35
|
+
});
|
|
36
|
+
exports.until = until;
|
|
37
|
+
const release = (left, right) => ({
|
|
38
|
+
kind: 'R',
|
|
39
|
+
left,
|
|
40
|
+
right,
|
|
41
|
+
});
|
|
42
|
+
exports.release = release;
|
|
43
|
+
// Weak until: φ W ψ ≡ (φ U ψ) ∨ G φ
|
|
44
|
+
const weakUntil = (left, right) => (0, exports.or)((0, exports.until)(left, right), (0, exports.globally)(left));
|
|
45
|
+
exports.weakUntil = weakUntil;
|
|
46
|
+
// Implicación derivada: φ → ψ ≡ ¬φ ∨ ψ
|
|
47
|
+
const implies = (left, right) => (0, exports.or)((0, exports.not)(left), right);
|
|
48
|
+
exports.implies = implies;
|
|
49
|
+
function formulaToString(f) {
|
|
50
|
+
switch (f.kind) {
|
|
51
|
+
case 'atom':
|
|
52
|
+
return f.name;
|
|
53
|
+
case 'not':
|
|
54
|
+
return `¬${parenthesize(f.arg)}`;
|
|
55
|
+
case 'and':
|
|
56
|
+
return f.args.map(parenthesize).join(' ∧ ');
|
|
57
|
+
case 'or':
|
|
58
|
+
return f.args.map(parenthesize).join(' ∨ ');
|
|
59
|
+
case 'X':
|
|
60
|
+
return `X ${parenthesize(f.arg)}`;
|
|
61
|
+
case 'F':
|
|
62
|
+
return `F ${parenthesize(f.arg)}`;
|
|
63
|
+
case 'G':
|
|
64
|
+
return `G ${parenthesize(f.arg)}`;
|
|
65
|
+
case 'U':
|
|
66
|
+
return `(${formulaToString(f.left)} U ${formulaToString(f.right)})`;
|
|
67
|
+
case 'R':
|
|
68
|
+
return `(${formulaToString(f.left)} R ${formulaToString(f.right)})`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function parenthesize(f) {
|
|
72
|
+
if (f.kind === 'atom')
|
|
73
|
+
return f.name;
|
|
74
|
+
if (f.kind === 'not')
|
|
75
|
+
return formulaToString(f);
|
|
76
|
+
return `(${formulaToString(f)})`;
|
|
77
|
+
}
|
|
78
|
+
// Clave canónica: usada para hashing en sets/maps.
|
|
79
|
+
function formulaKey(f) {
|
|
80
|
+
switch (f.kind) {
|
|
81
|
+
case 'atom':
|
|
82
|
+
return `a:${f.name}`;
|
|
83
|
+
case 'not':
|
|
84
|
+
return `n:${formulaKey(f.arg)}`;
|
|
85
|
+
case 'and':
|
|
86
|
+
return `&:${f.args.map(formulaKey).sort().join(',')}`;
|
|
87
|
+
case 'or':
|
|
88
|
+
return `|:${f.args.map(formulaKey).sort().join(',')}`;
|
|
89
|
+
case 'X':
|
|
90
|
+
return `X:${formulaKey(f.arg)}`;
|
|
91
|
+
case 'F':
|
|
92
|
+
return `F:${formulaKey(f.arg)}`;
|
|
93
|
+
case 'G':
|
|
94
|
+
return `G:${formulaKey(f.arg)}`;
|
|
95
|
+
case 'U':
|
|
96
|
+
return `U:${formulaKey(f.left)};${formulaKey(f.right)}`;
|
|
97
|
+
case 'R':
|
|
98
|
+
return `R:${formulaKey(f.left)};${formulaKey(f.right)}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type FuzzyOperator = 'lukasiewicz' | 'godel' | 'product';
|
|
2
|
+
export interface FuzzyFormula {
|
|
3
|
+
kind: 'atom' | 'not' | 'and' | 'or' | 'implies';
|
|
4
|
+
name?: string;
|
|
5
|
+
arg?: FuzzyFormula;
|
|
6
|
+
left?: FuzzyFormula;
|
|
7
|
+
right?: FuzzyFormula;
|
|
8
|
+
}
|
|
9
|
+
export declare function atom(name: string): FuzzyFormula;
|
|
10
|
+
export declare function not(arg: FuzzyFormula): FuzzyFormula;
|
|
11
|
+
export declare function and(left: FuzzyFormula, right: FuzzyFormula): FuzzyFormula;
|
|
12
|
+
export declare function or(left: FuzzyFormula, right: FuzzyFormula): FuzzyFormula;
|
|
13
|
+
export declare function implies(left: FuzzyFormula, right: FuzzyFormula): FuzzyFormula;
|
|
14
|
+
export declare function collectFuzzyAtoms(formula: FuzzyFormula): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Evalúa una fórmula borrosa bajo un environment que asigna
|
|
17
|
+
* un valor en [0,1] a cada átomo (átomos sin asignar valen 0).
|
|
18
|
+
*/
|
|
19
|
+
export declare function evaluate(formula: FuzzyFormula, env: Record<string, number>, system: FuzzyOperator): number;
|
|
20
|
+
/**
|
|
21
|
+
* Devuelve true si la fórmula evalúa a 1 (módulo EPSILON) en
|
|
22
|
+
* todos los puntos de la rejilla [0,1]^n con `resolution` puntos
|
|
23
|
+
* por átomo. Default: 11 puntos (0, 0.1, ..., 1).
|
|
24
|
+
*
|
|
25
|
+
* Aviso: es una aproximación por sampling. Algunas tautologías
|
|
26
|
+
* "casi" (verdaderas excepto en un conjunto de medida cero)
|
|
27
|
+
* pueden seguir clasificándose correctamente, pero contraejemplos
|
|
28
|
+
* sutiles requieren resolución mayor.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isTautology(formula: FuzzyFormula, system: FuzzyOperator, resolution?: number): boolean;
|
|
31
|
+
/** Verdadera si la fórmula evalúa a 0 en toda la rejilla. */
|
|
32
|
+
export declare function isContradiction(formula: FuzzyFormula, system: FuzzyOperator, resolution?: number): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Busca una valuación (en la rejilla con `resolution` puntos por
|
|
35
|
+
* átomo) tal que `|evaluate(formula) - target| <= tolerance`.
|
|
36
|
+
* Devuelve null si no encuentra ninguna.
|
|
37
|
+
*/
|
|
38
|
+
export declare function findValuation(formula: FuzzyFormula, system: FuzzyOperator, target: number, tolerance?: number, resolution?: number): Record<string, number> | null;
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/many-valued/index.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AA6DD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/C;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY,CAEnD;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAEzE;AAED,wBAAgB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAExE;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,YAAY,GAClB,YAAY,CAEd;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAoBjE;AAID;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,MAAM,EAAE,aAAa,GACpB,MAAM,CA2BR;AA4DD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,aAAa,EACrB,UAAU,GAAE,MAAW,GACtB,OAAO,CAUT;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,aAAa,EACrB,UAAU,GAAE,MAAW,GACtB,OAAO,CAUT;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAa,EACxB,UAAU,GAAE,MAAW,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAU/B"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Many-valued logics — Łukasiewicz, Gödel, Product
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Tres lógicas borrosas / multivaluadas con valores en [0, 1].
|
|
6
|
+
// Cada sistema define sus propias conectivas, con un núcleo
|
|
7
|
+
// común: T-norm + T-conorm + implicación residuada + negación.
|
|
8
|
+
//
|
|
9
|
+
// Sistemas:
|
|
10
|
+
// * lukasiewicz: t-norm = max(0, p+q-1), s-norm = min(1, p+q),
|
|
11
|
+
// imp = min(1, 1-p+q), neg = 1-p (involutiva).
|
|
12
|
+
// * godel: t-norm = min(p, q), s-norm = max(p, q),
|
|
13
|
+
// imp = 1 si p<=q, q en otro caso;
|
|
14
|
+
// neg(p) = 1 si p=0, 0 en otro caso.
|
|
15
|
+
// * product: t-norm = p*q, s-norm = p + q - p*q,
|
|
16
|
+
// imp = 1 si p<=q, q/p en otro caso;
|
|
17
|
+
// neg(p) = 1 si p=0, 0 en otro caso.
|
|
18
|
+
//
|
|
19
|
+
// Una tautología es una fórmula cuyo valor es 1 para toda
|
|
20
|
+
// asignación; aquí "toda asignación" se aproxima por sampling
|
|
21
|
+
// en una rejilla finita (resolution puntos por átomo).
|
|
22
|
+
// ============================================================
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.atom = atom;
|
|
25
|
+
exports.not = not;
|
|
26
|
+
exports.and = and;
|
|
27
|
+
exports.or = or;
|
|
28
|
+
exports.implies = implies;
|
|
29
|
+
exports.collectFuzzyAtoms = collectFuzzyAtoms;
|
|
30
|
+
exports.evaluate = evaluate;
|
|
31
|
+
exports.isTautology = isTautology;
|
|
32
|
+
exports.isContradiction = isContradiction;
|
|
33
|
+
exports.findValuation = findValuation;
|
|
34
|
+
// ── Helpers numéricos ───────────────────────────────────────
|
|
35
|
+
/** Recorta x al intervalo [0,1] absorbiendo error de coma flotante. */
|
|
36
|
+
function clamp01(x) {
|
|
37
|
+
if (Number.isNaN(x))
|
|
38
|
+
return 0;
|
|
39
|
+
if (x < 0)
|
|
40
|
+
return 0;
|
|
41
|
+
if (x > 1)
|
|
42
|
+
return 1;
|
|
43
|
+
return x;
|
|
44
|
+
}
|
|
45
|
+
// ── Conectivas por sistema ──────────────────────────────────
|
|
46
|
+
function tnorm(system, p, q) {
|
|
47
|
+
switch (system) {
|
|
48
|
+
case 'lukasiewicz':
|
|
49
|
+
return clamp01(Math.max(0, p + q - 1));
|
|
50
|
+
case 'godel':
|
|
51
|
+
return Math.min(p, q);
|
|
52
|
+
case 'product':
|
|
53
|
+
return clamp01(p * q);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function snorm(system, p, q) {
|
|
57
|
+
switch (system) {
|
|
58
|
+
case 'lukasiewicz':
|
|
59
|
+
return clamp01(Math.min(1, p + q));
|
|
60
|
+
case 'godel':
|
|
61
|
+
return Math.max(p, q);
|
|
62
|
+
case 'product':
|
|
63
|
+
return clamp01(p + q - p * q);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function implication(system, p, q) {
|
|
67
|
+
switch (system) {
|
|
68
|
+
case 'lukasiewicz':
|
|
69
|
+
return clamp01(Math.min(1, 1 - p + q));
|
|
70
|
+
case 'godel':
|
|
71
|
+
return p <= q ? 1 : q;
|
|
72
|
+
case 'product':
|
|
73
|
+
if (p <= q)
|
|
74
|
+
return 1;
|
|
75
|
+
if (p === 0)
|
|
76
|
+
return 1;
|
|
77
|
+
return clamp01(q / p);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function negation(system, p) {
|
|
81
|
+
switch (system) {
|
|
82
|
+
case 'lukasiewicz':
|
|
83
|
+
return clamp01(1 - p);
|
|
84
|
+
case 'godel':
|
|
85
|
+
case 'product':
|
|
86
|
+
return p === 0 ? 1 : 0;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// ── Constructores de fórmulas ───────────────────────────────
|
|
90
|
+
function atom(name) {
|
|
91
|
+
return { kind: 'atom', name };
|
|
92
|
+
}
|
|
93
|
+
function not(arg) {
|
|
94
|
+
return { kind: 'not', arg };
|
|
95
|
+
}
|
|
96
|
+
function and(left, right) {
|
|
97
|
+
return { kind: 'and', left, right };
|
|
98
|
+
}
|
|
99
|
+
function or(left, right) {
|
|
100
|
+
return { kind: 'or', left, right };
|
|
101
|
+
}
|
|
102
|
+
function implies(left, right) {
|
|
103
|
+
return { kind: 'implies', left, right };
|
|
104
|
+
}
|
|
105
|
+
// ── Atoms collection ────────────────────────────────────────
|
|
106
|
+
function collectFuzzyAtoms(formula) {
|
|
107
|
+
const set = new Set();
|
|
108
|
+
const visit = (f) => {
|
|
109
|
+
switch (f.kind) {
|
|
110
|
+
case 'atom':
|
|
111
|
+
if (f.name)
|
|
112
|
+
set.add(f.name);
|
|
113
|
+
return;
|
|
114
|
+
case 'not':
|
|
115
|
+
if (f.arg)
|
|
116
|
+
visit(f.arg);
|
|
117
|
+
return;
|
|
118
|
+
case 'and':
|
|
119
|
+
case 'or':
|
|
120
|
+
case 'implies':
|
|
121
|
+
if (f.left)
|
|
122
|
+
visit(f.left);
|
|
123
|
+
if (f.right)
|
|
124
|
+
visit(f.right);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
visit(formula);
|
|
129
|
+
return Array.from(set).sort();
|
|
130
|
+
}
|
|
131
|
+
// ── Evaluación ──────────────────────────────────────────────
|
|
132
|
+
/**
|
|
133
|
+
* Evalúa una fórmula borrosa bajo un environment que asigna
|
|
134
|
+
* un valor en [0,1] a cada átomo (átomos sin asignar valen 0).
|
|
135
|
+
*/
|
|
136
|
+
function evaluate(formula, env, system) {
|
|
137
|
+
switch (formula.kind) {
|
|
138
|
+
case 'atom': {
|
|
139
|
+
const v = formula.name ? env[formula.name] : undefined;
|
|
140
|
+
return clamp01(v ?? 0);
|
|
141
|
+
}
|
|
142
|
+
case 'not':
|
|
143
|
+
return negation(system, formula.arg ? evaluate(formula.arg, env, system) : 0);
|
|
144
|
+
case 'and':
|
|
145
|
+
return tnorm(system, formula.left ? evaluate(formula.left, env, system) : 0, formula.right ? evaluate(formula.right, env, system) : 0);
|
|
146
|
+
case 'or':
|
|
147
|
+
return snorm(system, formula.left ? evaluate(formula.left, env, system) : 0, formula.right ? evaluate(formula.right, env, system) : 0);
|
|
148
|
+
case 'implies':
|
|
149
|
+
return implication(system, formula.left ? evaluate(formula.left, env, system) : 0, formula.right ? evaluate(formula.right, env, system) : 0);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// ── Sampling sobre la rejilla [0,1]^n ───────────────────────
|
|
153
|
+
/** Genera la rejilla {0, 1/(r-1), ..., 1} de `resolution` puntos. */
|
|
154
|
+
function gridPoints(resolution) {
|
|
155
|
+
if (resolution < 2)
|
|
156
|
+
return [0, 1];
|
|
157
|
+
const out = [];
|
|
158
|
+
for (let i = 0; i < resolution; i++) {
|
|
159
|
+
out.push(i / (resolution - 1));
|
|
160
|
+
}
|
|
161
|
+
return out;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Itera todas las combinaciones de la rejilla sobre los átomos,
|
|
165
|
+
* llamando a `visit(env, value)` con cada valuación y el valor
|
|
166
|
+
* de la fórmula. Si `visit` devuelve `false`, aborta.
|
|
167
|
+
*/
|
|
168
|
+
function forEachValuation(formula, system, resolution, visit) {
|
|
169
|
+
const atoms = collectFuzzyAtoms(formula);
|
|
170
|
+
if (atoms.length === 0) {
|
|
171
|
+
visit({}, evaluate(formula, {}, system));
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
const grid = gridPoints(resolution);
|
|
175
|
+
const env = {};
|
|
176
|
+
const total = Math.pow(grid.length, atoms.length);
|
|
177
|
+
const indices = new Array(atoms.length).fill(0);
|
|
178
|
+
for (let n = 0; n < total; n++) {
|
|
179
|
+
for (let i = 0; i < atoms.length; i++) {
|
|
180
|
+
const key = atoms[i];
|
|
181
|
+
const gi = indices[i];
|
|
182
|
+
env[key] = grid[gi];
|
|
183
|
+
}
|
|
184
|
+
const value = evaluate(formula, env, system);
|
|
185
|
+
const res = visit({ ...env }, value);
|
|
186
|
+
if (res === false)
|
|
187
|
+
return;
|
|
188
|
+
// increment indices (base = grid.length)
|
|
189
|
+
for (let i = atoms.length - 1; i >= 0; i--) {
|
|
190
|
+
const idx = indices[i] + 1;
|
|
191
|
+
if (idx < grid.length) {
|
|
192
|
+
indices[i] = idx;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
indices[i] = 0;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// ── Tautología / Contradicción ─────────────────────────────
|
|
200
|
+
const EPSILON = 1e-9;
|
|
201
|
+
/**
|
|
202
|
+
* Devuelve true si la fórmula evalúa a 1 (módulo EPSILON) en
|
|
203
|
+
* todos los puntos de la rejilla [0,1]^n con `resolution` puntos
|
|
204
|
+
* por átomo. Default: 11 puntos (0, 0.1, ..., 1).
|
|
205
|
+
*
|
|
206
|
+
* Aviso: es una aproximación por sampling. Algunas tautologías
|
|
207
|
+
* "casi" (verdaderas excepto en un conjunto de medida cero)
|
|
208
|
+
* pueden seguir clasificándose correctamente, pero contraejemplos
|
|
209
|
+
* sutiles requieren resolución mayor.
|
|
210
|
+
*/
|
|
211
|
+
function isTautology(formula, system, resolution = 11) {
|
|
212
|
+
let ok = true;
|
|
213
|
+
forEachValuation(formula, system, resolution, (_env, value) => {
|
|
214
|
+
if (value < 1 - EPSILON) {
|
|
215
|
+
ok = false;
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
return undefined;
|
|
219
|
+
});
|
|
220
|
+
return ok;
|
|
221
|
+
}
|
|
222
|
+
/** Verdadera si la fórmula evalúa a 0 en toda la rejilla. */
|
|
223
|
+
function isContradiction(formula, system, resolution = 11) {
|
|
224
|
+
let ok = true;
|
|
225
|
+
forEachValuation(formula, system, resolution, (_env, value) => {
|
|
226
|
+
if (value > EPSILON) {
|
|
227
|
+
ok = false;
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
return undefined;
|
|
231
|
+
});
|
|
232
|
+
return ok;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Busca una valuación (en la rejilla con `resolution` puntos por
|
|
236
|
+
* átomo) tal que `|evaluate(formula) - target| <= tolerance`.
|
|
237
|
+
* Devuelve null si no encuentra ninguna.
|
|
238
|
+
*/
|
|
239
|
+
function findValuation(formula, system, target, tolerance = 1e-6, resolution = 11) {
|
|
240
|
+
let hit = null;
|
|
241
|
+
forEachValuation(formula, system, resolution, (env, value) => {
|
|
242
|
+
if (Math.abs(value - target) <= tolerance) {
|
|
243
|
+
hit = env;
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
return undefined;
|
|
247
|
+
});
|
|
248
|
+
return hit;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/many-valued/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ModalFormula } from './types';
|
|
2
|
+
declare function unary(f: ModalFormula): ModalFormula;
|
|
3
|
+
declare function binLeft(f: ModalFormula): ModalFormula;
|
|
4
|
+
declare function binRight(f: ModalFormula): ModalFormula;
|
|
5
|
+
export declare const atom: (name: string) => ModalFormula;
|
|
6
|
+
export declare const not: (arg: ModalFormula) => ModalFormula;
|
|
7
|
+
export declare const and: (left: ModalFormula, right: ModalFormula) => ModalFormula;
|
|
8
|
+
export declare const or: (left: ModalFormula, right: ModalFormula) => ModalFormula;
|
|
9
|
+
export declare const implies: (left: ModalFormula, right: ModalFormula) => ModalFormula;
|
|
10
|
+
export declare const box: (arg: ModalFormula) => ModalFormula;
|
|
11
|
+
export declare const diamond: (arg: ModalFormula) => ModalFormula;
|
|
12
|
+
/**
|
|
13
|
+
* Clave sintáctica determinista para deduplicación.
|
|
14
|
+
*/
|
|
15
|
+
export declare function formulaKey(f: ModalFormula): string;
|
|
16
|
+
export declare function formulaEquals(a: ModalFormula, b: ModalFormula): boolean;
|
|
17
|
+
export declare function formulaToString(f: ModalFormula): string;
|
|
18
|
+
export declare function collectAtoms(f: ModalFormula, out?: Set<string>): Set<string>;
|
|
19
|
+
export declare const subUnary: typeof unary;
|
|
20
|
+
export declare const subLeft: typeof binLeft;
|
|
21
|
+
export declare const subRight: typeof binRight;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=formula.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../../src/profiles/modal-frame-axioms/formula.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,iBAAS,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAI5C;AAED,iBAAS,OAAO,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAI9C;AAED,iBAAS,QAAQ,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAI/C;AAMD,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,YAAwC,CAAC;AAE7E,eAAO,MAAM,GAAG,GAAI,KAAK,YAAY,KAAG,YAAmD,CAAC;AAE5F,eAAO,MAAM,GAAG,GAAI,MAAM,YAAY,EAAE,OAAO,YAAY,KAAG,YAK5D,CAAC;AAEH,eAAO,MAAM,EAAE,GAAI,MAAM,YAAY,EAAE,OAAO,YAAY,KAAG,YAK3D,CAAC;AAEH,eAAO,MAAM,OAAO,GAAI,MAAM,YAAY,EAAE,OAAO,YAAY,KAAG,YAKhE,CAAC;AAEH,eAAO,MAAM,GAAG,GAAI,KAAK,YAAY,KAAG,YAAmD,CAAC;AAE5F,eAAO,MAAM,OAAO,GAAI,KAAK,YAAY,KAAG,YAI1C,CAAC;AAMH;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAiBlD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAEvE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAoBvD;AAYD,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAevF;AAID,eAAO,MAAM,QAAQ,cAAQ,CAAC;AAC9B,eAAO,MAAM,OAAO,gBAAU,CAAC;AAC/B,eAAO,MAAM,QAAQ,iBAAW,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Helpers de fórmulas modales
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// La estructura {@link ModalFormula} admite tanto campos
|
|
7
|
+
// específicos (`arg`, `left`, `right`) como un `args` n-ario para
|
|
8
|
+
// flexibilidad. Aquí se normaliza el acceso: las funciones de
|
|
9
|
+
// extracción aceptan ambos formatos y los constructores producen
|
|
10
|
+
// la forma canónica con campos específicos (+ `args` espejo).
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.subRight = exports.subLeft = exports.subUnary = exports.diamond = exports.box = exports.implies = exports.or = exports.and = exports.not = exports.atom = void 0;
|
|
13
|
+
exports.formulaKey = formulaKey;
|
|
14
|
+
exports.formulaEquals = formulaEquals;
|
|
15
|
+
exports.formulaToString = formulaToString;
|
|
16
|
+
exports.collectAtoms = collectAtoms;
|
|
17
|
+
// ------------------------------------------------------------
|
|
18
|
+
// Acceso normalizado a subfórmulas
|
|
19
|
+
// ------------------------------------------------------------
|
|
20
|
+
function unary(f) {
|
|
21
|
+
if (f.arg)
|
|
22
|
+
return f.arg;
|
|
23
|
+
if (f.args && f.args[0])
|
|
24
|
+
return f.args[0];
|
|
25
|
+
throw new Error(`ModalFormula ${f.kind} sin subfórmula`);
|
|
26
|
+
}
|
|
27
|
+
function binLeft(f) {
|
|
28
|
+
if (f.left)
|
|
29
|
+
return f.left;
|
|
30
|
+
if (f.args && f.args[0])
|
|
31
|
+
return f.args[0];
|
|
32
|
+
throw new Error(`ModalFormula ${f.kind} sin lado izquierdo`);
|
|
33
|
+
}
|
|
34
|
+
function binRight(f) {
|
|
35
|
+
if (f.right)
|
|
36
|
+
return f.right;
|
|
37
|
+
if (f.args && f.args[1])
|
|
38
|
+
return f.args[1];
|
|
39
|
+
throw new Error(`ModalFormula ${f.kind} sin lado derecho`);
|
|
40
|
+
}
|
|
41
|
+
// ------------------------------------------------------------
|
|
42
|
+
// Constructores ergonómicos
|
|
43
|
+
// ------------------------------------------------------------
|
|
44
|
+
const atom = (name) => ({ kind: 'atom', name });
|
|
45
|
+
exports.atom = atom;
|
|
46
|
+
const not = (arg) => ({ kind: 'not', arg, args: [arg] });
|
|
47
|
+
exports.not = not;
|
|
48
|
+
const and = (left, right) => ({
|
|
49
|
+
kind: 'and',
|
|
50
|
+
left,
|
|
51
|
+
right,
|
|
52
|
+
args: [left, right],
|
|
53
|
+
});
|
|
54
|
+
exports.and = and;
|
|
55
|
+
const or = (left, right) => ({
|
|
56
|
+
kind: 'or',
|
|
57
|
+
left,
|
|
58
|
+
right,
|
|
59
|
+
args: [left, right],
|
|
60
|
+
});
|
|
61
|
+
exports.or = or;
|
|
62
|
+
const implies = (left, right) => ({
|
|
63
|
+
kind: 'implies',
|
|
64
|
+
left,
|
|
65
|
+
right,
|
|
66
|
+
args: [left, right],
|
|
67
|
+
});
|
|
68
|
+
exports.implies = implies;
|
|
69
|
+
const box = (arg) => ({ kind: 'box', arg, args: [arg] });
|
|
70
|
+
exports.box = box;
|
|
71
|
+
const diamond = (arg) => ({
|
|
72
|
+
kind: 'diamond',
|
|
73
|
+
arg,
|
|
74
|
+
args: [arg],
|
|
75
|
+
});
|
|
76
|
+
exports.diamond = diamond;
|
|
77
|
+
// ------------------------------------------------------------
|
|
78
|
+
// Clave / igualdad / representación
|
|
79
|
+
// ------------------------------------------------------------
|
|
80
|
+
/**
|
|
81
|
+
* Clave sintáctica determinista para deduplicación.
|
|
82
|
+
*/
|
|
83
|
+
function formulaKey(f) {
|
|
84
|
+
switch (f.kind) {
|
|
85
|
+
case 'atom':
|
|
86
|
+
return `A(${f.name ?? '?'})`;
|
|
87
|
+
case 'not':
|
|
88
|
+
return `N(${formulaKey(unary(f))})`;
|
|
89
|
+
case 'box':
|
|
90
|
+
return `B(${formulaKey(unary(f))})`;
|
|
91
|
+
case 'diamond':
|
|
92
|
+
return `D(${formulaKey(unary(f))})`;
|
|
93
|
+
case 'and':
|
|
94
|
+
return `&(${formulaKey(binLeft(f))},${formulaKey(binRight(f))})`;
|
|
95
|
+
case 'or':
|
|
96
|
+
return `|(${formulaKey(binLeft(f))},${formulaKey(binRight(f))})`;
|
|
97
|
+
case 'implies':
|
|
98
|
+
return `>(${formulaKey(binLeft(f))},${formulaKey(binRight(f))})`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function formulaEquals(a, b) {
|
|
102
|
+
return formulaKey(a) === formulaKey(b);
|
|
103
|
+
}
|
|
104
|
+
function formulaToString(f) {
|
|
105
|
+
switch (f.kind) {
|
|
106
|
+
case 'atom':
|
|
107
|
+
return f.name ?? '?';
|
|
108
|
+
case 'not': {
|
|
109
|
+
const inner = unary(f);
|
|
110
|
+
if (inner.kind === 'atom')
|
|
111
|
+
return `¬${formulaToString(inner)}`;
|
|
112
|
+
return `¬(${formulaToString(inner)})`;
|
|
113
|
+
}
|
|
114
|
+
case 'box':
|
|
115
|
+
return `□${parens(unary(f))}`;
|
|
116
|
+
case 'diamond':
|
|
117
|
+
return `◇${parens(unary(f))}`;
|
|
118
|
+
case 'and':
|
|
119
|
+
return `(${formulaToString(binLeft(f))} ∧ ${formulaToString(binRight(f))})`;
|
|
120
|
+
case 'or':
|
|
121
|
+
return `(${formulaToString(binLeft(f))} ∨ ${formulaToString(binRight(f))})`;
|
|
122
|
+
case 'implies':
|
|
123
|
+
return `(${formulaToString(binLeft(f))} → ${formulaToString(binRight(f))})`;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function parens(f) {
|
|
127
|
+
if (f.kind === 'atom')
|
|
128
|
+
return formulaToString(f);
|
|
129
|
+
if (f.kind === 'box' || f.kind === 'diamond')
|
|
130
|
+
return formulaToString(f);
|
|
131
|
+
return `(${formulaToString(f)})`;
|
|
132
|
+
}
|
|
133
|
+
// ------------------------------------------------------------
|
|
134
|
+
// Átomos
|
|
135
|
+
// ------------------------------------------------------------
|
|
136
|
+
function collectAtoms(f, out = new Set()) {
|
|
137
|
+
switch (f.kind) {
|
|
138
|
+
case 'atom':
|
|
139
|
+
if (f.name)
|
|
140
|
+
out.add(f.name);
|
|
141
|
+
return out;
|
|
142
|
+
case 'not':
|
|
143
|
+
case 'box':
|
|
144
|
+
case 'diamond':
|
|
145
|
+
return collectAtoms(unary(f), out);
|
|
146
|
+
case 'and':
|
|
147
|
+
case 'or':
|
|
148
|
+
case 'implies':
|
|
149
|
+
collectAtoms(binLeft(f), out);
|
|
150
|
+
return collectAtoms(binRight(f), out);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Acceso público a las extracciones normalizadas (útil para
|
|
154
|
+
// el motor de tableau y tests).
|
|
155
|
+
exports.subUnary = unary;
|
|
156
|
+
exports.subLeft = binLeft;
|
|
157
|
+
exports.subRight = binRight;
|
|
158
|
+
//# sourceMappingURL=formula.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula.js","sourceRoot":"","sources":["../../../src/profiles/modal-frame-axioms/formula.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { FrameAxiom, ModalSystem, ModalFormula, KripkeModel, TableauResult } from './types';
|
|
2
|
+
export { atom, not, and, or, implies, box, diamond, formulaKey, formulaEquals, formulaToString, collectAtoms, } from './formula';
|
|
3
|
+
export { tableauWithAxioms } from './tableau';
|
|
4
|
+
export type { TableauOptions } from './tableau';
|
|
5
|
+
export { systemAxioms, isSatisfiable, isValid, axiomFormula } from './systems';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/modal-frame-axioms/index.ts"],"names":[],"mappings":"AAmBA,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjG,OAAO,EACL,IAAI,EACJ,GAAG,EACH,GAAG,EACH,EAAE,EACF,OAAO,EACP,GAAG,EACH,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
|