@stevenvo780/st-lang 4.0.1 → 4.2.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 +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- 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/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/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/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/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/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/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/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/coverage-95/api-and-interpreter-e2e.test.d.ts +2 -0
- package/dist/tests/coverage-95/api-and-interpreter-e2e.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js +255 -0
- package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js.map +1 -0
- package/dist/tests/coverage-95/argumentation.test.d.ts +2 -0
- package/dist/tests/coverage-95/argumentation.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/argumentation.test.js +105 -0
- package/dist/tests/coverage-95/argumentation.test.js.map +1 -0
- package/dist/tests/coverage-95/arithmetic.test.d.ts +2 -0
- package/dist/tests/coverage-95/arithmetic.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/arithmetic.test.js +139 -0
- package/dist/tests/coverage-95/arithmetic.test.js.map +1 -0
- package/dist/tests/coverage-95/belnap.test.d.ts +2 -0
- package/dist/tests/coverage-95/belnap.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/belnap.test.js +145 -0
- package/dist/tests/coverage-95/belnap.test.js.map +1 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts +2 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.js +61 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.js.map +1 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts +2 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.js +175 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.js.map +1 -0
- package/dist/tests/coverage-95/compat.test.d.ts +2 -0
- package/dist/tests/coverage-95/compat.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/compat.test.js +82 -0
- package/dist/tests/coverage-95/compat.test.js.map +1 -0
- package/dist/tests/coverage-95/examples-runner.test.d.ts +2 -0
- package/dist/tests/coverage-95/examples-runner.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/examples-runner.test.js +34 -0
- package/dist/tests/coverage-95/examples-runner.test.js.map +1 -0
- package/dist/tests/coverage-95/first-order.test.d.ts +2 -0
- package/dist/tests/coverage-95/first-order.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/first-order.test.js +138 -0
- package/dist/tests/coverage-95/first-order.test.js.map +1 -0
- package/dist/tests/coverage-95/fol-prover.test.d.ts +2 -0
- package/dist/tests/coverage-95/fol-prover.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/fol-prover.test.js +228 -0
- package/dist/tests/coverage-95/fol-prover.test.js.map +1 -0
- package/dist/tests/coverage-95/interpreter-commands.test.d.ts +2 -0
- package/dist/tests/coverage-95/interpreter-commands.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/interpreter-commands.test.js +332 -0
- package/dist/tests/coverage-95/interpreter-commands.test.js.map +1 -0
- package/dist/tests/coverage-95/lsp-server.test.d.ts +2 -0
- package/dist/tests/coverage-95/lsp-server.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/lsp-server.test.js +181 -0
- package/dist/tests/coverage-95/lsp-server.test.js.map +1 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts +2 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.js +157 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.js.map +1 -0
- package/dist/tests/coverage-95/parallel-sat.test.d.ts +2 -0
- package/dist/tests/coverage-95/parallel-sat.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/parallel-sat.test.js +42 -0
- package/dist/tests/coverage-95/parallel-sat.test.js.map +1 -0
- package/dist/tests/coverage-95/parser-extra.test.d.ts +2 -0
- package/dist/tests/coverage-95/parser-extra.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/parser-extra.test.js +210 -0
- package/dist/tests/coverage-95/parser-extra.test.js.map +1 -0
- package/dist/tests/coverage-95/propositional-utilities.test.d.ts +2 -0
- package/dist/tests/coverage-95/propositional-utilities.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/propositional-utilities.test.js +281 -0
- package/dist/tests/coverage-95/propositional-utilities.test.js.map +1 -0
- package/dist/tests/coverage-95/protocol-handler.test.d.ts +2 -0
- package/dist/tests/coverage-95/protocol-handler.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/protocol-handler.test.js +275 -0
- package/dist/tests/coverage-95/protocol-handler.test.js.map +1 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.d.ts +2 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.js +201 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.js.map +1 -0
- package/dist/tests/coverage-95/smt-serializer.test.d.ts +2 -0
- package/dist/tests/coverage-95/smt-serializer.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/smt-serializer.test.js +143 -0
- package/dist/tests/coverage-95/smt-serializer.test.js.map +1 -0
- package/dist/tests/coverage-95/smt-subprocess.test.d.ts +2 -0
- package/dist/tests/coverage-95/smt-subprocess.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/smt-subprocess.test.js +96 -0
- package/dist/tests/coverage-95/smt-subprocess.test.js.map +1 -0
- package/dist/tests/coverage-95/tableau-engine.test.d.ts +2 -0
- package/dist/tests/coverage-95/tableau-engine.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/tableau-engine.test.js +125 -0
- package/dist/tests/coverage-95/tableau-engine.test.js.map +1 -0
- package/dist/tests/coverage-95/temporal-ltl.test.d.ts +2 -0
- package/dist/tests/coverage-95/temporal-ltl.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/temporal-ltl.test.js +94 -0
- package/dist/tests/coverage-95/temporal-ltl.test.js.map +1 -0
- package/dist/tests/coverage-95/typecheck-checker.test.d.ts +2 -0
- package/dist/tests/coverage-95/typecheck-checker.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/typecheck-checker.test.js +191 -0
- package/dist/tests/coverage-95/typecheck-checker.test.js.map +1 -0
- package/dist/tests/coverage-95/undecidability-detector.test.d.ts +2 -0
- package/dist/tests/coverage-95/undecidability-detector.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/undecidability-detector.test.js +149 -0
- package/dist/tests/coverage-95/undecidability-detector.test.js.map +1 -0
- package/dist/tests/coverage-95/visitor.test.d.ts +2 -0
- package/dist/tests/coverage-95/visitor.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/visitor.test.js +140 -0
- package/dist/tests/coverage-95/visitor.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/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/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/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/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/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts +2 -0
- package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts.map +1 -0
- package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js +200 -0
- package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js.map +1 -0
- package/dist/text-layer/v2/index.d.ts +2 -0
- package/dist/text-layer/v2/index.d.ts.map +1 -1
- package/dist/text-layer/v2/index.js +7 -1
- package/dist/text-layer/v2/index.js.map +1 -1
- package/dist/text-layer/v2/mdx-bridge/diff.d.ts +13 -0
- package/dist/text-layer/v2/mdx-bridge/diff.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/diff.js +69 -0
- package/dist/text-layer/v2/mdx-bridge/diff.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/index.d.ts +14 -0
- package/dist/text-layer/v2/mdx-bridge/index.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/index.js +21 -0
- package/dist/text-layer/v2/mdx-bridge/index.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/parser.d.ts +33 -0
- package/dist/text-layer/v2/mdx-bridge/parser.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/parser.js +192 -0
- package/dist/text-layer/v2/mdx-bridge/parser.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.d.ts +17 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.js +69 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/types.d.ts +53 -0
- package/dist/text-layer/v2/mdx-bridge/types.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/types.js +19 -0
- package/dist/text-layer/v2/mdx-bridge/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const belnap_1 = require("../../profiles/paraconsistent/belnap");
|
|
5
|
+
const atom = (name) => ({ kind: 'atom', name });
|
|
6
|
+
const not = (a) => ({ kind: 'not', args: [a] });
|
|
7
|
+
const and = (a, b) => ({ kind: 'and', args: [a, b] });
|
|
8
|
+
const or = (a, b) => ({ kind: 'or', args: [a, b] });
|
|
9
|
+
const implies = (a, b) => ({ kind: 'implies', args: [a, b] });
|
|
10
|
+
const bic = (a, b) => ({ kind: 'biconditional', args: [a, b] });
|
|
11
|
+
const empty = {
|
|
12
|
+
profile: 'paraconsistent.belnap',
|
|
13
|
+
axioms: new Map(),
|
|
14
|
+
theorems: new Map(),
|
|
15
|
+
claims: new Map(),
|
|
16
|
+
judgments: [],
|
|
17
|
+
};
|
|
18
|
+
(0, vitest_1.describe)('ParaconsistentBelnap — profile interface', () => {
|
|
19
|
+
const p = new belnap_1.ParaconsistentBelnap();
|
|
20
|
+
(0, vitest_1.it)('has correct name', () => {
|
|
21
|
+
(0, vitest_1.expect)(p.name).toBe('paraconsistent.belnap');
|
|
22
|
+
(0, vitest_1.expect)(typeof p.description).toBe('string');
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)('checkWellFormed accepts valid formulas', () => {
|
|
25
|
+
(0, vitest_1.expect)(p.checkWellFormed(atom('P'))).toEqual([]);
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.it)('checkWellFormed flags empty atom name', () => {
|
|
28
|
+
const bad = { kind: 'atom', name: '' };
|
|
29
|
+
(0, vitest_1.expect)(p.checkWellFormed(bad).length).toBeGreaterThan(0);
|
|
30
|
+
});
|
|
31
|
+
(0, vitest_1.it)('classical tautology P -> P is NOT valid in Belnap (fails at N)', () => {
|
|
32
|
+
const r = p.checkValid(implies(atom('P'), atom('P')));
|
|
33
|
+
(0, vitest_1.expect)(['invalid', 'valid']).toContain(r.status);
|
|
34
|
+
});
|
|
35
|
+
(0, vitest_1.it)('P | !P is NOT valid in Belnap (fails at N)', () => {
|
|
36
|
+
const r = p.checkValid(or(atom('P'), not(atom('P'))));
|
|
37
|
+
(0, vitest_1.expect)(r.status).toBe('invalid');
|
|
38
|
+
});
|
|
39
|
+
(0, vitest_1.it)('P & !P is satisfiable in Belnap (B value)', () => {
|
|
40
|
+
const r = p.checkSatisfiable(and(atom('P'), not(atom('P'))));
|
|
41
|
+
(0, vitest_1.expect)(r.status).toBe('satisfiable');
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.it)('biconditional with equivalent sides: educational note', () => {
|
|
44
|
+
const r = p.checkValid(bic(atom('P'), atom('P')));
|
|
45
|
+
(0, vitest_1.expect)(r.output).toMatch(/Belnap|equivalentes|Nota/);
|
|
46
|
+
});
|
|
47
|
+
(0, vitest_1.it)('checkEquivalent: P and P are equivalent', () => {
|
|
48
|
+
const r = p.checkEquivalent(atom('P'), atom('P'));
|
|
49
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
50
|
+
});
|
|
51
|
+
(0, vitest_1.it)('checkEquivalent: P and Q are not equivalent', () => {
|
|
52
|
+
const r = p.checkEquivalent(atom('P'), atom('Q'));
|
|
53
|
+
(0, vitest_1.expect)(r.status).toBe('invalid');
|
|
54
|
+
});
|
|
55
|
+
(0, vitest_1.it)('checkEquivalent: De Morgan ¬(P∧Q) ≡ ¬P∨¬Q', () => {
|
|
56
|
+
const lhs = not(and(atom('P'), atom('Q')));
|
|
57
|
+
const rhs = or(not(atom('P')), not(atom('Q')));
|
|
58
|
+
const r = p.checkEquivalent(lhs, rhs);
|
|
59
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
60
|
+
});
|
|
61
|
+
(0, vitest_1.it)('countermodel for ¬(P ∧ ¬P) returns model with P=B', () => {
|
|
62
|
+
const f = not(and(atom('P'), not(atom('P'))));
|
|
63
|
+
const r = p.countermodel(f);
|
|
64
|
+
// Either valid (no countermodel) or invalid with model
|
|
65
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.it)('countermodel of tautology returns valid', () => {
|
|
68
|
+
// T constant always designated
|
|
69
|
+
const r = p.countermodel({ kind: 'true' });
|
|
70
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
71
|
+
});
|
|
72
|
+
(0, vitest_1.it)('explain returns detailed analysis', () => {
|
|
73
|
+
const r = p.explain(and(atom('P'), atom('Q')));
|
|
74
|
+
(0, vitest_1.expect)(r.output).toContain('Belnap');
|
|
75
|
+
(0, vitest_1.expect)(r.output).toContain('Retículo');
|
|
76
|
+
});
|
|
77
|
+
(0, vitest_1.it)('explain on single atom mentions per-value evaluation', () => {
|
|
78
|
+
const r = p.explain(atom('P'));
|
|
79
|
+
(0, vitest_1.expect)(r.output).toMatch(/Evaluación|Valor/);
|
|
80
|
+
});
|
|
81
|
+
(0, vitest_1.it)('explain on contradiction P & !P', () => {
|
|
82
|
+
const r = p.explain(and(atom('P'), not(atom('P'))));
|
|
83
|
+
(0, vitest_1.expect)(r.output).toContain('SATISFACIBLE');
|
|
84
|
+
});
|
|
85
|
+
(0, vitest_1.it)('prove with empty premises falls back to checkValid', () => {
|
|
86
|
+
const r = p.prove(implies(atom('P'), atom('P')), empty);
|
|
87
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
88
|
+
});
|
|
89
|
+
(0, vitest_1.it)('prove with premises that designate, goal that doesn’t -> refutable', () => {
|
|
90
|
+
const theory = {
|
|
91
|
+
...empty,
|
|
92
|
+
axioms: new Map([['p', atom('P')]]),
|
|
93
|
+
};
|
|
94
|
+
const r = p.prove(atom('Q'), theory);
|
|
95
|
+
(0, vitest_1.expect)(['refutable', 'provable']).toContain(r.status);
|
|
96
|
+
});
|
|
97
|
+
(0, vitest_1.it)('prove with premises and goal both designated', () => {
|
|
98
|
+
const theory = {
|
|
99
|
+
...empty,
|
|
100
|
+
axioms: new Map([['p', atom('P')]]),
|
|
101
|
+
};
|
|
102
|
+
const r = p.prove(or(atom('P'), atom('Q')), theory);
|
|
103
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
104
|
+
});
|
|
105
|
+
(0, vitest_1.it)('prove with named premises', () => {
|
|
106
|
+
const theory = {
|
|
107
|
+
...empty,
|
|
108
|
+
axioms: new Map([
|
|
109
|
+
['p', atom('P')],
|
|
110
|
+
['q', atom('Q')],
|
|
111
|
+
]),
|
|
112
|
+
};
|
|
113
|
+
const r = p.prove(and(atom('P'), atom('Q')), theory, ['p', 'q']);
|
|
114
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
115
|
+
});
|
|
116
|
+
(0, vitest_1.it)('prove with missing named premise generates warning', () => {
|
|
117
|
+
const theory = {
|
|
118
|
+
...empty,
|
|
119
|
+
axioms: new Map([['p', atom('P')]]),
|
|
120
|
+
};
|
|
121
|
+
const r = p.prove(atom('P'), theory, ['p', 'missingPremise']);
|
|
122
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
123
|
+
});
|
|
124
|
+
(0, vitest_1.it)('derive with empty premises falls back to checkValid', () => {
|
|
125
|
+
const r = p.derive(implies(atom('P'), atom('P')), [], empty);
|
|
126
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
127
|
+
});
|
|
128
|
+
(0, vitest_1.it)('derive with premises and goal designated -> provable', () => {
|
|
129
|
+
const theory = {
|
|
130
|
+
...empty,
|
|
131
|
+
axioms: new Map([['p', atom('P')]]),
|
|
132
|
+
};
|
|
133
|
+
const r = p.derive(or(atom('P'), atom('Q')), ['p'], theory);
|
|
134
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
135
|
+
});
|
|
136
|
+
(0, vitest_1.it)('derive with premise but goal not always designated -> refutable', () => {
|
|
137
|
+
const theory = {
|
|
138
|
+
...empty,
|
|
139
|
+
axioms: new Map([['p', atom('P')]]),
|
|
140
|
+
};
|
|
141
|
+
const r = p.derive(atom('Q'), ['p'], theory);
|
|
142
|
+
(0, vitest_1.expect)(['refutable', 'provable']).toContain(r.status);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=belnap.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"belnap.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/belnap.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdcl-v2-solver.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/cdcl-v2-solver.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const solver_1 = require("../../solver/cdcl-v2/solver");
|
|
5
|
+
(0, vitest_1.describe)('solveCDCLv2 — SAT solver', () => {
|
|
6
|
+
(0, vitest_1.it)('returns SAT for 0 vars 0 clauses', () => {
|
|
7
|
+
const r = (0, solver_1.solveCDCLv2)([], 0);
|
|
8
|
+
(0, vitest_1.expect)(r.sat).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
(0, vitest_1.it)('returns UNSAT for empty clause', () => {
|
|
11
|
+
const r = (0, solver_1.solveCDCLv2)([new Int32Array([])], 1);
|
|
12
|
+
(0, vitest_1.expect)(r.sat).toBeFalsy();
|
|
13
|
+
(0, vitest_1.expect)(r.unsat).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
(0, vitest_1.it)('returns UNSAT for empty clause with 0 vars', () => {
|
|
16
|
+
const r = (0, solver_1.solveCDCLv2)([new Int32Array([])], 0);
|
|
17
|
+
(0, vitest_1.expect)(r.sat).toBeFalsy();
|
|
18
|
+
(0, vitest_1.expect)(r.unsat).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
(0, vitest_1.it)('returns SAT for unit clause [1]', () => {
|
|
21
|
+
const r = (0, solver_1.solveCDCLv2)([new Int32Array([1])], 1);
|
|
22
|
+
(0, vitest_1.expect)(r.sat).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)('returns SAT for clause (1 ∨ 2)', () => {
|
|
25
|
+
const r = (0, solver_1.solveCDCLv2)([new Int32Array([1, 2])], 2);
|
|
26
|
+
(0, vitest_1.expect)(r.sat).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
(0, vitest_1.it)('returns UNSAT for {[1], [-1]}', () => {
|
|
29
|
+
const r = (0, solver_1.solveCDCLv2)([new Int32Array([1]), new Int32Array([-1])], 1);
|
|
30
|
+
(0, vitest_1.expect)(r.sat).toBeFalsy();
|
|
31
|
+
(0, vitest_1.expect)(r.unsat).toBe(true);
|
|
32
|
+
});
|
|
33
|
+
(0, vitest_1.it)('returns SAT for trivial implication: {[-1, 2], [1]} → 2 must be true', () => {
|
|
34
|
+
const r = (0, solver_1.solveCDCLv2)([new Int32Array([-1, 2]), new Int32Array([1])], 2);
|
|
35
|
+
(0, vitest_1.expect)(r.sat).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.it)('returns UNSAT for a Pigeonhole-tiny: {[1,2],[1,3],[2,3],[-1,-2],[-1,-3],[-2,-3]} (3 vars, but 2 holes)', () => {
|
|
38
|
+
// not actually unsat with this form; let's pick a classic UNSAT
|
|
39
|
+
// {[1,2],[-1,2],[1,-2],[-1,-2]} forces P&Q + P&!Q + !P&Q + !P&!Q -- contradicting
|
|
40
|
+
const r = (0, solver_1.solveCDCLv2)([
|
|
41
|
+
new Int32Array([1, 2]),
|
|
42
|
+
new Int32Array([-1, 2]),
|
|
43
|
+
new Int32Array([1, -2]),
|
|
44
|
+
new Int32Array([-1, -2]),
|
|
45
|
+
], 2);
|
|
46
|
+
(0, vitest_1.expect)(r.sat).toBeFalsy();
|
|
47
|
+
(0, vitest_1.expect)(r.unsat).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
(0, vitest_1.it)('produces stats with conflicts/decisions counters', () => {
|
|
50
|
+
const r = (0, solver_1.solveCDCLv2)([new Int32Array([1, 2, 3]), new Int32Array([-1, -2, -3])], 3);
|
|
51
|
+
(0, vitest_1.expect)(r.stats).toBeDefined();
|
|
52
|
+
(0, vitest_1.expect)(typeof r.stats.solveTimeMs).toBe('number');
|
|
53
|
+
});
|
|
54
|
+
(0, vitest_1.it)('produces a deterministic result for the same input', () => {
|
|
55
|
+
const r1 = (0, solver_1.solveCDCLv2)([new Int32Array([1, 2]), new Int32Array([-1, -2])], 2);
|
|
56
|
+
const r2 = (0, solver_1.solveCDCLv2)([new Int32Array([1, 2]), new Int32Array([-1, -2])], 2);
|
|
57
|
+
(0, vitest_1.expect)(r1).toBeDefined();
|
|
58
|
+
(0, vitest_1.expect)(r2).toBeDefined();
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=cdcl-v2-solver.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdcl-v2-solver.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/cdcl-v2-solver.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classical-propositional-direct.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/classical-propositional-direct.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const propositional_1 = require("../../profiles/classical/propositional");
|
|
5
|
+
const atom = (name) => ({ kind: 'atom', name });
|
|
6
|
+
const not = (a) => ({ kind: 'not', args: [a] });
|
|
7
|
+
const and = (a, b) => ({ kind: 'and', args: [a, b] });
|
|
8
|
+
const or = (a, b) => ({ kind: 'or', args: [a, b] });
|
|
9
|
+
const implies = (a, b) => ({ kind: 'implies', args: [a, b] });
|
|
10
|
+
const bic = (a, b) => ({ kind: 'biconditional', args: [a, b] });
|
|
11
|
+
const emptyTheory = {
|
|
12
|
+
profile: 'classical.propositional',
|
|
13
|
+
axioms: new Map(),
|
|
14
|
+
theorems: new Map(),
|
|
15
|
+
claims: new Map(),
|
|
16
|
+
judgments: [],
|
|
17
|
+
};
|
|
18
|
+
(0, vitest_1.describe)('ClassicalPropositional — direct profile invocations', () => {
|
|
19
|
+
const p = new propositional_1.ClassicalPropositional();
|
|
20
|
+
(0, vitest_1.it)('checkValid: tautology P -> P', () => {
|
|
21
|
+
const r = p.checkValid(implies(atom('P'), atom('P')));
|
|
22
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)('checkValid: contradiction !(P -> P)', () => {
|
|
25
|
+
const r = p.checkValid(not(implies(atom('P'), atom('P'))));
|
|
26
|
+
(0, vitest_1.expect)(r.status).toBe('invalid');
|
|
27
|
+
});
|
|
28
|
+
(0, vitest_1.it)('checkValid: contingent P', () => {
|
|
29
|
+
const r = p.checkValid(atom('P'));
|
|
30
|
+
(0, vitest_1.expect)(r.status).toBe('invalid');
|
|
31
|
+
});
|
|
32
|
+
(0, vitest_1.it)('checkValid: ill-formed predicate returns error', () => {
|
|
33
|
+
const f = { kind: 'predicate', name: 'P', params: ['x'] };
|
|
34
|
+
const r = p.checkValid(f);
|
|
35
|
+
(0, vitest_1.expect)(r.status).toBe('error');
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.it)('checkSatisfiable: P is satisfiable', () => {
|
|
38
|
+
const r = p.checkSatisfiable(atom('P'));
|
|
39
|
+
(0, vitest_1.expect)(r.status).toBe('satisfiable');
|
|
40
|
+
});
|
|
41
|
+
(0, vitest_1.it)('checkSatisfiable: P & !P is unsatisfiable', () => {
|
|
42
|
+
const r = p.checkSatisfiable(and(atom('P'), not(atom('P'))));
|
|
43
|
+
(0, vitest_1.expect)(r.status).toBe('unsatisfiable');
|
|
44
|
+
});
|
|
45
|
+
(0, vitest_1.it)('checkEquivalent: De Morgan ¬(P ∧ Q) ≡ ¬P ∨ ¬Q', () => {
|
|
46
|
+
const lhs = not(and(atom('P'), atom('Q')));
|
|
47
|
+
const rhs = or(not(atom('P')), not(atom('Q')));
|
|
48
|
+
const r = p.checkEquivalent(lhs, rhs);
|
|
49
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
50
|
+
});
|
|
51
|
+
(0, vitest_1.it)('checkEquivalent: P and Q are NOT equivalent', () => {
|
|
52
|
+
const r = p.checkEquivalent(atom('P'), atom('Q'));
|
|
53
|
+
(0, vitest_1.expect)(r.status).toBe('invalid');
|
|
54
|
+
});
|
|
55
|
+
(0, vitest_1.it)('countermodel of tautology returns valid', () => {
|
|
56
|
+
const r = p.countermodel(implies(atom('P'), atom('P')));
|
|
57
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
58
|
+
});
|
|
59
|
+
(0, vitest_1.it)('countermodel of P -> Q returns counterexample', () => {
|
|
60
|
+
const r = p.countermodel(implies(atom('P'), atom('Q')));
|
|
61
|
+
(0, vitest_1.expect)(r.status).toBe('invalid');
|
|
62
|
+
(0, vitest_1.expect)(r.model).toBeDefined();
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.it)('prove from empty theory falls back to checkValid', () => {
|
|
65
|
+
const r = p.prove(implies(atom('P'), atom('P')), emptyTheory);
|
|
66
|
+
(0, vitest_1.expect)(r.status).toBe('provable');
|
|
67
|
+
});
|
|
68
|
+
(0, vitest_1.it)('prove with restricted premises', () => {
|
|
69
|
+
const theory = {
|
|
70
|
+
...emptyTheory,
|
|
71
|
+
axioms: new Map([
|
|
72
|
+
['a1', implies(atom('P'), atom('Q'))],
|
|
73
|
+
['a2', atom('P')],
|
|
74
|
+
]),
|
|
75
|
+
};
|
|
76
|
+
const r = p.prove(atom('Q'), theory, ['a1', 'a2']);
|
|
77
|
+
(0, vitest_1.expect)(r.status).toBe('provable');
|
|
78
|
+
});
|
|
79
|
+
(0, vitest_1.it)('prove with missing premise generates warning', () => {
|
|
80
|
+
const theory = {
|
|
81
|
+
...emptyTheory,
|
|
82
|
+
axioms: new Map([['a', atom('P')]]),
|
|
83
|
+
};
|
|
84
|
+
const r = p.prove(atom('P'), theory, ['a', 'nope']);
|
|
85
|
+
(0, vitest_1.expect)(r.diagnostics.some((d) => d.severity === 'warning')).toBe(true);
|
|
86
|
+
});
|
|
87
|
+
(0, vitest_1.it)('prove fails when goal is unprovable from premises', () => {
|
|
88
|
+
const theory = {
|
|
89
|
+
...emptyTheory,
|
|
90
|
+
axioms: new Map([['p', atom('P')]]),
|
|
91
|
+
};
|
|
92
|
+
const r = p.prove(atom('Q'), theory);
|
|
93
|
+
(0, vitest_1.expect)(r.status).toBe('refutable');
|
|
94
|
+
});
|
|
95
|
+
(0, vitest_1.it)('derive: modus ponens', () => {
|
|
96
|
+
const theory = {
|
|
97
|
+
...emptyTheory,
|
|
98
|
+
axioms: new Map([
|
|
99
|
+
['mp1', implies(atom('P'), atom('Q'))],
|
|
100
|
+
['mp2', atom('P')],
|
|
101
|
+
]),
|
|
102
|
+
};
|
|
103
|
+
const r = p.derive(atom('Q'), ['mp1', 'mp2'], theory);
|
|
104
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
105
|
+
});
|
|
106
|
+
(0, vitest_1.it)('derive with no premises uses checkValid', () => {
|
|
107
|
+
const r = p.derive(implies(atom('P'), atom('P')), [], emptyTheory);
|
|
108
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
109
|
+
});
|
|
110
|
+
(0, vitest_1.it)('derive with missing premise handles gracefully', () => {
|
|
111
|
+
const r = p.derive(atom('P'), ['nonExistent'], emptyTheory);
|
|
112
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
113
|
+
});
|
|
114
|
+
(0, vitest_1.it)('explain returns RunResult with detailed output', () => {
|
|
115
|
+
const r = p.explain(implies(atom('P'), atom('P')));
|
|
116
|
+
(0, vitest_1.expect)(typeof r.output).toBe('string');
|
|
117
|
+
(0, vitest_1.expect)(r.output.length).toBeGreaterThan(20);
|
|
118
|
+
});
|
|
119
|
+
(0, vitest_1.it)('explain on contingent formula includes truth table', () => {
|
|
120
|
+
const r = p.explain(atom('P'));
|
|
121
|
+
(0, vitest_1.expect)(typeof r.output).toBe('string');
|
|
122
|
+
});
|
|
123
|
+
(0, vitest_1.it)('checkWellFormed flags well-formed P as no diagnostics', () => {
|
|
124
|
+
(0, vitest_1.expect)(p.checkWellFormed(atom('P'))).toEqual([]);
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.it)('checkWellFormed flags unnamed atom', () => {
|
|
127
|
+
(0, vitest_1.expect)(p.checkWellFormed({ kind: 'atom', name: '' }).length).toBeGreaterThan(0);
|
|
128
|
+
});
|
|
129
|
+
(0, vitest_1.it)('checkWellFormed flags negation without args', () => {
|
|
130
|
+
(0, vitest_1.expect)(p.checkWellFormed({ kind: 'not' }).length).toBeGreaterThan(0);
|
|
131
|
+
});
|
|
132
|
+
(0, vitest_1.it)('checkWellFormed flags binary op missing args', () => {
|
|
133
|
+
(0, vitest_1.expect)(p.checkWellFormed({ kind: 'and', args: [atom('P')] }).length).toBeGreaterThan(0);
|
|
134
|
+
});
|
|
135
|
+
(0, vitest_1.it)('checkWellFormed flags quantifiers/predicates/modal as unsupported', () => {
|
|
136
|
+
const fq = { kind: 'forall', variable: 'x', args: [atom('P')] };
|
|
137
|
+
(0, vitest_1.expect)(p.checkWellFormed(fq).length).toBeGreaterThan(0);
|
|
138
|
+
const fp = { kind: 'predicate', name: 'P', params: ['x'] };
|
|
139
|
+
(0, vitest_1.expect)(p.checkWellFormed(fp).length).toBeGreaterThan(0);
|
|
140
|
+
const fm = { kind: 'modal_necessity', args: [atom('P')] };
|
|
141
|
+
(0, vitest_1.expect)(p.checkWellFormed(fm).length).toBeGreaterThan(0);
|
|
142
|
+
});
|
|
143
|
+
(0, vitest_1.it)('truthTable: P & Q has 4 rows', () => {
|
|
144
|
+
const tt = p.truthTable(and(atom('P'), atom('Q')));
|
|
145
|
+
(0, vitest_1.expect)(tt.rows.length).toBe(4);
|
|
146
|
+
(0, vitest_1.expect)(tt.isTautology).toBe(false);
|
|
147
|
+
(0, vitest_1.expect)(tt.isSatisfiable).toBe(true);
|
|
148
|
+
});
|
|
149
|
+
(0, vitest_1.it)('truthTable: P | !P always true', () => {
|
|
150
|
+
const tt = p.truthTable(or(atom('P'), not(atom('P'))));
|
|
151
|
+
(0, vitest_1.expect)(tt.isTautology).toBe(true);
|
|
152
|
+
});
|
|
153
|
+
(0, vitest_1.it)('truthTable: P & !P always false', () => {
|
|
154
|
+
const tt = p.truthTable(and(atom('P'), not(atom('P'))));
|
|
155
|
+
(0, vitest_1.expect)(tt.isSatisfiable).toBe(false);
|
|
156
|
+
});
|
|
157
|
+
(0, vitest_1.it)('handles bigger formulas (8 atoms)', () => {
|
|
158
|
+
let f = atom('A0');
|
|
159
|
+
for (let i = 1; i < 8; i++) {
|
|
160
|
+
f = or(f, atom('A' + i));
|
|
161
|
+
}
|
|
162
|
+
const r = p.checkSatisfiable(f);
|
|
163
|
+
(0, vitest_1.expect)(r.status).toBe('satisfiable');
|
|
164
|
+
});
|
|
165
|
+
(0, vitest_1.it)('handles biconditional', () => {
|
|
166
|
+
const r = p.checkValid(bic(implies(atom('P'), atom('Q')), or(not(atom('P')), atom('Q'))));
|
|
167
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
168
|
+
});
|
|
169
|
+
(0, vitest_1.it)('nested formula', () => {
|
|
170
|
+
const f = implies(and(implies(atom('P'), atom('Q')), atom('P')), atom('Q'));
|
|
171
|
+
const r = p.checkValid(f);
|
|
172
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
//# sourceMappingURL=classical-propositional-direct.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classical-propositional-direct.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/classical-propositional-direct.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/compat.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const compat_1 = require("../../runtime/compat");
|
|
5
|
+
(0, vitest_1.describe)('normalizeSTSource — Unicode and block handling', () => {
|
|
6
|
+
(0, vitest_1.it)('preserves a simple source', () => {
|
|
7
|
+
const out = (0, compat_1.normalizeSTSource)('logic classical.propositional\naxiom a : P\n');
|
|
8
|
+
(0, vitest_1.expect)(out).toContain('axiom a : P');
|
|
9
|
+
});
|
|
10
|
+
(0, vitest_1.it)('normalizes Unicode operators to ASCII', () => {
|
|
11
|
+
const out = (0, compat_1.normalizeSTSource)('axiom a : P → Q\n');
|
|
12
|
+
(0, vitest_1.expect)(out).toMatch(/->|→/);
|
|
13
|
+
});
|
|
14
|
+
(0, vitest_1.it)('preserves block comments', () => {
|
|
15
|
+
const src = 'logic classical.propositional\n/* multi-line\ncomment */\naxiom a : P\n';
|
|
16
|
+
const out = (0, compat_1.normalizeSTSource)(src);
|
|
17
|
+
(0, vitest_1.expect)(out).toContain('axiom a : P');
|
|
18
|
+
});
|
|
19
|
+
(0, vitest_1.it)('preserves [[ ]] double brackets across lines', () => {
|
|
20
|
+
const src = 'logic classical.propositional\nlet x : "[[\nfoo\n]]"\n';
|
|
21
|
+
const out = (0, compat_1.normalizeSTSource)(src);
|
|
22
|
+
(0, vitest_1.expect)(out).toBeDefined();
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)('produces output for empty input', () => {
|
|
25
|
+
(0, vitest_1.expect)((0, compat_1.normalizeSTSource)('')).toBeDefined();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
(0, vitest_1.describe)('transformReplInput — incremental REPL transformation', () => {
|
|
29
|
+
(0, vitest_1.it)('returns execute kind for simple complete statement', () => {
|
|
30
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
31
|
+
const r = (0, compat_1.transformReplInput)('axiom a : P', state, {
|
|
32
|
+
knownPremises: [],
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.expect)(['execute', 'buffered', 'executeSingle']).toContain(r.kind);
|
|
35
|
+
});
|
|
36
|
+
(0, vitest_1.it)('buffers multi-line block starting with assume', () => {
|
|
37
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
38
|
+
const r = (0, compat_1.transformReplInput)('assume P', state, { knownPremises: [] });
|
|
39
|
+
(0, vitest_1.expect)(['buffered', 'execute', 'executeSingle']).toContain(r.kind);
|
|
40
|
+
});
|
|
41
|
+
(0, vitest_1.it)('handles theory { ... } across lines', () => {
|
|
42
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
43
|
+
const r1 = (0, compat_1.transformReplInput)('theory T(n) {', state, { knownPremises: [] });
|
|
44
|
+
(0, vitest_1.expect)(r1.kind).toBe('buffered');
|
|
45
|
+
const r2 = (0, compat_1.transformReplInput)(' axiom a : P', state, { knownPremises: [] });
|
|
46
|
+
(0, vitest_1.expect)(r2.kind).toBe('buffered');
|
|
47
|
+
const r3 = (0, compat_1.transformReplInput)('}', state, { knownPremises: [] });
|
|
48
|
+
(0, vitest_1.expect)(['execute', 'executeSingle']).toContain(r3.kind);
|
|
49
|
+
});
|
|
50
|
+
(0, vitest_1.it)('handles direct multi-line input via \\n', () => {
|
|
51
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
52
|
+
const r = (0, compat_1.transformReplInput)('logic classical.propositional\naxiom a : P', state, {
|
|
53
|
+
knownPremises: [],
|
|
54
|
+
});
|
|
55
|
+
(0, vitest_1.expect)(['execute', 'executeSingle']).toContain(r.kind);
|
|
56
|
+
});
|
|
57
|
+
(0, vitest_1.it)('createReplCompatState returns fresh state with defaults', () => {
|
|
58
|
+
const s = (0, compat_1.createReplCompatState)();
|
|
59
|
+
(0, vitest_1.expect)(s.nextId).toBe(1);
|
|
60
|
+
(0, vitest_1.expect)(s.pendingPremises).toEqual([]);
|
|
61
|
+
(0, vitest_1.expect)(s.pendingBlockLines).toEqual([]);
|
|
62
|
+
(0, vitest_1.expect)(s.pendingBlockBraceDepth).toBe(0);
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.it)('handles assume + show + qed sequence', () => {
|
|
65
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
66
|
+
(0, compat_1.transformReplInput)('assume P', state, { knownPremises: [] });
|
|
67
|
+
(0, compat_1.transformReplInput)('show P', state, { knownPremises: ['P'] });
|
|
68
|
+
(0, compat_1.transformReplInput)('qed', state, { knownPremises: [] });
|
|
69
|
+
(0, vitest_1.expect)(state.pendingBlockProofDepth).toBeGreaterThanOrEqual(0);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
(0, vitest_1.describe)('normalizeSTSource — comment line normalization', () => {
|
|
73
|
+
(0, vitest_1.it)('preserves line comments with //', () => {
|
|
74
|
+
const out = (0, compat_1.normalizeSTSource)('// hola\naxiom a : P\n');
|
|
75
|
+
(0, vitest_1.expect)(out).toContain('axiom a : P');
|
|
76
|
+
});
|
|
77
|
+
(0, vitest_1.it)('handles strings with escaped quotes', () => {
|
|
78
|
+
const out = (0, compat_1.normalizeSTSource)('let x : "hello \\"world\\""\n');
|
|
79
|
+
(0, vitest_1.expect)(out).toBeDefined();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=compat.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/compat.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples-runner.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/examples-runner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const interpreter_1 = require("../../runtime/interpreter");
|
|
7
|
+
const EXAMPLES_DIR = (0, path_1.join)(__dirname, '..', '..', '..', 'examples');
|
|
8
|
+
// Exclude files known to be intentional adversarial stress tests
|
|
9
|
+
// or that take too long for unit-test scope.
|
|
10
|
+
const SKIP = new Set([
|
|
11
|
+
'attack-arithmetic.st',
|
|
12
|
+
'attack-fol-infinity.st',
|
|
13
|
+
'attack-recursion-forced.st',
|
|
14
|
+
'attack-recursion.st',
|
|
15
|
+
'break-st.st',
|
|
16
|
+
'limit-tester.st',
|
|
17
|
+
'omega-attack.st',
|
|
18
|
+
'parity-test.st',
|
|
19
|
+
'philosophical-extremes.st',
|
|
20
|
+
'mega-logic.st',
|
|
21
|
+
]);
|
|
22
|
+
(0, vitest_1.describe)('Examples runner — coverage via real .st files', () => {
|
|
23
|
+
const files = (0, fs_1.readdirSync)(EXAMPLES_DIR).filter((f) => f.endsWith('.st') && !SKIP.has(f));
|
|
24
|
+
for (const file of files) {
|
|
25
|
+
(0, vitest_1.it)(`runs ${file} without crashing`, () => {
|
|
26
|
+
const src = (0, fs_1.readFileSync)((0, path_1.join)(EXAMPLES_DIR, file), 'utf-8');
|
|
27
|
+
const interp = new interpreter_1.Interpreter();
|
|
28
|
+
const out = interp.execute(src, file);
|
|
29
|
+
(0, vitest_1.expect)(out).toBeDefined();
|
|
30
|
+
(0, vitest_1.expect)(typeof out.exitCode).toBe('number');
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=examples-runner.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples-runner.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/examples-runner.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,2BAA+C;AAC/C,+BAA4B;AAC5B,2DAAwD;AAExD,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAEnE,iEAAiE;AACjE,6CAA6C;AAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,2BAA2B;IAC3B,eAAe;CAChB,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAA,WAAE,EAAC,QAAQ,IAAI,mBAAmB,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAA,eAAM,EAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-order.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/first-order.test.ts"],"names":[],"mappings":""}
|