@stevenvo780/st-lang 4.14.0 → 4.15.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/README.md +6 -6
- package/dist/ast/nodes.d.ts +50 -0
- package/dist/ast/nodes.d.ts.map +1 -1
- package/dist/format/stnb/__tests__/executor.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/executor.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/executor.test.js +140 -0
- package/dist/format/stnb/__tests__/executor.test.js.map +1 -0
- package/dist/format/stnb/__tests__/parser.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/parser.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/parser.test.js +119 -0
- package/dist/format/stnb/__tests__/parser.test.js.map +1 -0
- package/dist/format/stnb/__tests__/renderer.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/renderer.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/renderer.test.js +109 -0
- package/dist/format/stnb/__tests__/renderer.test.js.map +1 -0
- package/dist/format/stnb/__tests__/roundtrip.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/roundtrip.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/roundtrip.test.js +91 -0
- package/dist/format/stnb/__tests__/roundtrip.test.js.map +1 -0
- package/dist/format/stnb/__tests__/serializer.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/serializer.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/serializer.test.js +60 -0
- package/dist/format/stnb/__tests__/serializer.test.js.map +1 -0
- package/dist/format/stnb/executor.d.ts +29 -0
- package/dist/format/stnb/executor.d.ts.map +1 -0
- package/dist/format/stnb/executor.js +139 -0
- package/dist/format/stnb/executor.js.map +1 -0
- package/dist/format/stnb/index.d.ts +19 -0
- package/dist/format/stnb/index.d.ts.map +1 -0
- package/dist/format/stnb/index.js +28 -0
- package/dist/format/stnb/index.js.map +1 -0
- package/dist/format/stnb/parser.d.ts +14 -0
- package/dist/format/stnb/parser.d.ts.map +1 -0
- package/dist/format/stnb/parser.js +123 -0
- package/dist/format/stnb/parser.js.map +1 -0
- package/dist/format/stnb/renderer-html.d.ts +11 -0
- package/dist/format/stnb/renderer-html.d.ts.map +1 -0
- package/dist/format/stnb/renderer-html.js +180 -0
- package/dist/format/stnb/renderer-html.js.map +1 -0
- package/dist/format/stnb/renderer-markdown.d.ts +13 -0
- package/dist/format/stnb/renderer-markdown.d.ts.map +1 -0
- package/dist/format/stnb/renderer-markdown.js +92 -0
- package/dist/format/stnb/renderer-markdown.js.map +1 -0
- package/dist/format/stnb/serializer.d.ts +14 -0
- package/dist/format/stnb/serializer.d.ts.map +1 -0
- package/dist/format/stnb/serializer.js +21 -0
- package/dist/format/stnb/serializer.js.map +1 -0
- package/dist/format/stnb/types.d.ts +45 -0
- package/dist/format/stnb/types.d.ts.map +1 -0
- package/dist/format/stnb/types.js +7 -0
- package/dist/format/stnb/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/logic/profile-bridge/index.d.ts.map +1 -1
- package/dist/logic/profile-bridge/index.js +20 -3
- package/dist/logic/profile-bridge/index.js.map +1 -1
- package/dist/logic/profiles/classical/propositional.d.ts.map +1 -1
- package/dist/logic/profiles/classical/propositional.js.map +1 -1
- package/dist/logic/profiles/ctl/check.d.ts.map +1 -1
- package/dist/logic/profiles/ctl/check.js +21 -11
- package/dist/logic/profiles/ctl/check.js.map +1 -1
- package/dist/logic/profiles/ctl/witness.d.ts.map +1 -1
- package/dist/logic/profiles/ctl/witness.js +2 -0
- package/dist/logic/profiles/ctl/witness.js.map +1 -1
- package/dist/logic/profiles/description-logic/types.d.ts +15 -0
- package/dist/logic/profiles/description-logic/types.d.ts.map +1 -1
- package/dist/logic/profiles/description-logic/types.js +13 -0
- package/dist/logic/profiles/description-logic/types.js.map +1 -1
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js +141 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js +55 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js +149 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js +105 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/ast.d.ts +160 -0
- package/dist/logic/profiles/dl-hybrid/ast.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/ast.js +261 -0
- package/dist/logic/profiles/dl-hybrid/ast.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/differential.d.ts +61 -0
- package/dist/logic/profiles/dl-hybrid/differential.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/differential.js +291 -0
- package/dist/logic/profiles/dl-hybrid/differential.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/index.d.ts +10 -0
- package/dist/logic/profiles/dl-hybrid/index.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/index.js +90 -0
- package/dist/logic/profiles/dl-hybrid/index.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/parser.d.ts +8 -0
- package/dist/logic/profiles/dl-hybrid/parser.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/parser.js +410 -0
- package/dist/logic/profiles/dl-hybrid/parser.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/profile.d.ts +23 -0
- package/dist/logic/profiles/dl-hybrid/profile.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/profile.js +122 -0
- package/dist/logic/profiles/dl-hybrid/profile.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/semantics.d.ts +16 -0
- package/dist/logic/profiles/dl-hybrid/semantics.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/semantics.js +181 -0
- package/dist/logic/profiles/dl-hybrid/semantics.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/tableau.d.ts +38 -0
- package/dist/logic/profiles/dl-hybrid/tableau.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/tableau.js +289 -0
- package/dist/logic/profiles/dl-hybrid/tableau.js.map +1 -0
- package/dist/logic/profiles/hybrid-logic/types.d.ts +17 -0
- package/dist/logic/profiles/hybrid-logic/types.d.ts.map +1 -1
- package/dist/logic/profiles/hybrid-logic/types.js +17 -0
- package/dist/logic/profiles/hybrid-logic/types.js.map +1 -1
- package/dist/logic/profiles/intuitionistic-nj/kripke.d.ts.map +1 -1
- package/dist/logic/profiles/intuitionistic-nj/kripke.js +8 -5
- package/dist/logic/profiles/intuitionistic-nj/kripke.js.map +1 -1
- package/dist/logic/profiles/ltl-sat/tableau.d.ts +31 -0
- package/dist/logic/profiles/ltl-sat/tableau.d.ts.map +1 -1
- package/dist/logic/profiles/ltl-sat/tableau.js +18 -0
- package/dist/logic/profiles/ltl-sat/tableau.js.map +1 -1
- package/dist/logic/profiles/ltl-sat/types.d.ts +15 -0
- package/dist/logic/profiles/ltl-sat/types.d.ts.map +1 -1
- package/dist/logic/profiles/ltl-sat/types.js +2 -1
- package/dist/logic/profiles/ltl-sat/types.js.map +1 -1
- package/dist/logic/profiles/modal-frame-axioms/formula.d.ts +10 -0
- package/dist/logic/profiles/modal-frame-axioms/formula.d.ts.map +1 -1
- package/dist/logic/profiles/modal-frame-axioms/formula.js +10 -0
- package/dist/logic/profiles/modal-frame-axioms/formula.js.map +1 -1
- package/dist/logic/profiles/mu-calculus/check.d.ts.map +1 -1
- package/dist/logic/profiles/mu-calculus/check.js +7 -4
- package/dist/logic/profiles/mu-calculus/check.js.map +1 -1
- package/dist/logic/profiles/natural-deduction-nk/formula.d.ts +8 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -1
- package/dist/logic/profiles/natural-deduction-nk/formula.js +8 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -1
- package/dist/logic/profiles/quantum/index.d.ts.map +1 -1
- package/dist/logic/profiles/quantum/index.js +11 -8
- package/dist/logic/profiles/quantum/index.js.map +1 -1
- package/dist/logic/profiles/sequent-lj/index.d.ts +90 -0
- package/dist/logic/profiles/sequent-lj/index.d.ts.map +1 -0
- package/dist/logic/profiles/sequent-lj/index.js +903 -0
- package/dist/logic/profiles/sequent-lj/index.js.map +1 -0
- package/dist/logic/profiles/shared/tableau-engine.d.ts.map +1 -1
- package/dist/logic/profiles/shared/tableau-engine.js +0 -17
- package/dist/logic/profiles/shared/tableau-engine.js.map +1 -1
- package/dist/namespaces/proof-systems.d.ts +1 -1
- package/dist/namespaces/proof-systems.d.ts.map +1 -1
- package/dist/namespaces/proof-systems.js.map +1 -1
- package/dist/namespaces/semantics.d.ts +1 -1
- package/dist/namespaces/semantics.d.ts.map +1 -1
- package/dist/namespaces/semantics.js.map +1 -1
- package/dist/proof-systems/distributed-exchange/index.d.ts +29 -0
- package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -1
- package/dist/proof-systems/distributed-exchange/index.js +18 -0
- package/dist/proof-systems/distributed-exchange/index.js.map +1 -1
- package/dist/proof-systems/fol-prover/types.d.ts +16 -0
- package/dist/proof-systems/fol-prover/types.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover/types.js +7 -0
- package/dist/proof-systems/fol-prover/types.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/index.d.ts +3 -3
- package/dist/proof-systems/fol-prover-advanced/index.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/index.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/ordering.js +1 -1
- package/dist/proof-systems/fol-prover-advanced/prover.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/prover.js +19 -12
- package/dist/proof-systems/fol-prover-advanced/prover.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/resolve.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/resolve.js +7 -7
- package/dist/proof-systems/fol-prover-advanced/resolve.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/subsumption.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/subsumption.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/types.d.ts +12 -0
- package/dist/proof-systems/fol-prover-advanced/types.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/unify.js +2 -2
- package/dist/proof-systems/fol-prover-equality/term-utils.d.ts +46 -0
- package/dist/proof-systems/fol-prover-equality/term-utils.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-equality/term-utils.js +46 -0
- package/dist/proof-systems/fol-prover-equality/term-utils.js.map +1 -1
- package/dist/proof-systems/proof-nets/correctness.d.ts.map +1 -1
- package/dist/proof-systems/proof-nets/correctness.js +24 -12
- package/dist/proof-systems/proof-nets/correctness.js.map +1 -1
- package/dist/proof-systems/proof-nets/types.d.ts +18 -0
- package/dist/proof-systems/proof-nets/types.d.ts.map +1 -1
- package/dist/proof-systems/proof-nets/types.js +6 -0
- package/dist/proof-systems/proof-nets/types.js.map +1 -1
- package/dist/proof-systems/tableau-framework/TableauProver.d.ts.map +1 -1
- package/dist/proof-systems/tableau-framework/TableauProver.js +5 -5
- package/dist/proof-systems/tableau-framework/TableauProver.js.map +1 -1
- package/dist/proof-systems/tableau-framework/propositional.d.ts.map +1 -1
- package/dist/proof-systems/tableau-framework/propositional.js +21 -21
- package/dist/proof-systems/tableau-framework/propositional.js.map +1 -1
- package/dist/reasoning/ban-logic/terms.d.ts +24 -0
- package/dist/reasoning/ban-logic/terms.d.ts.map +1 -1
- package/dist/reasoning/ban-logic/terms.js +24 -0
- package/dist/reasoning/ban-logic/terms.js.map +1 -1
- package/dist/reasoning/bayesian/factor.js +8 -8
- package/dist/reasoning/bayesian/factor.js.map +1 -1
- package/dist/reasoning/bayesian/inference.d.ts.map +1 -1
- package/dist/reasoning/bayesian/inference.js +11 -5
- package/dist/reasoning/bayesian/inference.js.map +1 -1
- package/dist/reasoning/combinatorics/generators.js.map +1 -1
- package/dist/reasoning/combinatorics/index.d.ts +3 -3
- package/dist/reasoning/combinatorics/index.d.ts.map +1 -1
- package/dist/reasoning/combinatorics/index.js.map +1 -1
- package/dist/reasoning/combinatorics/set-partitions.js.map +1 -1
- package/dist/reasoning/combinatorics/special-numbers.d.ts.map +1 -1
- package/dist/reasoning/combinatorics/special-numbers.js.map +1 -1
- package/dist/reasoning/constructive-analysis/cauchy.js +2 -2
- package/dist/reasoning/constructive-analysis/compact.js +1 -1
- package/dist/reasoning/constructive-analysis/continuity.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/continuity.js +4 -4
- package/dist/reasoning/constructive-analysis/continuity.js.map +1 -1
- package/dist/reasoning/constructive-analysis/index.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/index.js.map +1 -1
- package/dist/reasoning/constructive-analysis/ivt.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/ivt.js +2 -2
- package/dist/reasoning/constructive-analysis/ivt.js.map +1 -1
- package/dist/reasoning/constructive-reals/index.d.ts.map +1 -1
- package/dist/reasoning/constructive-reals/index.js +4 -8
- package/dist/reasoning/constructive-reals/index.js.map +1 -1
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts +2 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js +74 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js.map +1 -0
- package/dist/reasoning/dl-hybrid/index.d.ts +3 -0
- package/dist/reasoning/dl-hybrid/index.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/index.js +16 -0
- package/dist/reasoning/dl-hybrid/index.js.map +1 -0
- package/dist/reasoning/dl-hybrid/invariant-search.d.ts +39 -0
- package/dist/reasoning/dl-hybrid/invariant-search.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/invariant-search.js +188 -0
- package/dist/reasoning/dl-hybrid/invariant-search.js.map +1 -0
- package/dist/reasoning/galois-fields/index.d.ts +64 -0
- package/dist/reasoning/galois-fields/index.d.ts.map +1 -1
- package/dist/reasoning/galois-fields/index.js +56 -6
- package/dist/reasoning/galois-fields/index.js.map +1 -1
- package/dist/reasoning/graph-theory/index.d.ts +31 -0
- package/dist/reasoning/graph-theory/index.d.ts.map +1 -1
- package/dist/reasoning/graph-theory/index.js +28 -10
- package/dist/reasoning/graph-theory/index.js.map +1 -1
- package/dist/reasoning/hoare-logic/index.d.ts +34 -0
- package/dist/reasoning/hoare-logic/index.d.ts.map +1 -1
- package/dist/reasoning/hoare-logic/index.js +26 -0
- package/dist/reasoning/hoare-logic/index.js.map +1 -1
- package/dist/reasoning/hyperreal/index.d.ts +30 -0
- package/dist/reasoning/hyperreal/index.d.ts.map +1 -1
- package/dist/reasoning/hyperreal/index.js +25 -0
- package/dist/reasoning/hyperreal/index.js.map +1 -1
- package/dist/reasoning/information-theory/index.d.ts +34 -0
- package/dist/reasoning/information-theory/index.d.ts.map +1 -1
- package/dist/reasoning/information-theory/index.js +27 -44
- package/dist/reasoning/information-theory/index.js.map +1 -1
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js +72 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.js +102 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.js +40 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.js +136 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js +147 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/benchmarks.d.ts +30 -0
- package/dist/reasoning/lemma-rag/benchmarks.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/benchmarks.js +177 -0
- package/dist/reasoning/lemma-rag/benchmarks.js.map +1 -0
- package/dist/reasoning/lemma-rag/embedding.d.ts +26 -0
- package/dist/reasoning/lemma-rag/embedding.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/embedding.js +243 -0
- package/dist/reasoning/lemma-rag/embedding.js.map +1 -0
- package/dist/reasoning/lemma-rag/index-store.d.ts +35 -0
- package/dist/reasoning/lemma-rag/index-store.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/index-store.js +105 -0
- package/dist/reasoning/lemma-rag/index-store.js.map +1 -0
- package/dist/reasoning/lemma-rag/index.d.ts +9 -0
- package/dist/reasoning/lemma-rag/index.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/index.js +34 -0
- package/dist/reasoning/lemma-rag/index.js.map +1 -0
- package/dist/reasoning/lemma-rag/query.d.ts +48 -0
- package/dist/reasoning/lemma-rag/query.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/query.js +92 -0
- package/dist/reasoning/lemma-rag/query.js.map +1 -0
- package/dist/reasoning/lemma-rag/retrieval.d.ts +33 -0
- package/dist/reasoning/lemma-rag/retrieval.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/retrieval.js +123 -0
- package/dist/reasoning/lemma-rag/retrieval.js.map +1 -0
- package/dist/reasoning/lemma-rag/types.d.ts +52 -0
- package/dist/reasoning/lemma-rag/types.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/types.js +13 -0
- package/dist/reasoning/lemma-rag/types.js.map +1 -0
- package/dist/reasoning/lemma-synthesis/index.d.ts +36 -0
- package/dist/reasoning/lemma-synthesis/index.d.ts.map +1 -1
- package/dist/reasoning/lemma-synthesis/index.js +12 -0
- package/dist/reasoning/lemma-synthesis/index.js.map +1 -1
- package/dist/reasoning/linear-algebra/index.d.ts +38 -0
- package/dist/reasoning/linear-algebra/index.d.ts.map +1 -1
- package/dist/reasoning/linear-algebra/index.js +34 -5
- package/dist/reasoning/linear-algebra/index.js.map +1 -1
- package/dist/reasoning/markov-logic/grounding.js +1 -1
- package/dist/reasoning/markov-logic/grounding.js.map +1 -1
- package/dist/reasoning/markov-logic/inference.js +1 -1
- package/dist/reasoning/markov-logic/inference.js.map +1 -1
- package/dist/reasoning/order-theory/index.d.ts +121 -0
- package/dist/reasoning/order-theory/index.d.ts.map +1 -0
- package/dist/reasoning/order-theory/index.js +562 -0
- package/dist/reasoning/order-theory/index.js.map +1 -0
- package/dist/reasoning/peano-arithmetic/index.d.ts +114 -0
- package/dist/reasoning/peano-arithmetic/index.d.ts.map +1 -0
- package/dist/reasoning/peano-arithmetic/index.js +650 -0
- package/dist/reasoning/peano-arithmetic/index.js.map +1 -0
- package/dist/reasoning/polynomial-ring/index.d.ts +80 -0
- package/dist/reasoning/polynomial-ring/index.d.ts.map +1 -1
- package/dist/reasoning/polynomial-ring/index.js +75 -0
- package/dist/reasoning/polynomial-ring/index.js.map +1 -1
- package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.js +263 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.js +123 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.js +128 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.js +119 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.js +93 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.js.map +1 -0
- package/dist/reasoning/proof-mining/extractor.d.ts +73 -0
- package/dist/reasoning/proof-mining/extractor.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/extractor.js +170 -0
- package/dist/reasoning/proof-mining/extractor.js.map +1 -0
- package/dist/reasoning/proof-mining/generalizer.d.ts +46 -0
- package/dist/reasoning/proof-mining/generalizer.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/generalizer.js +245 -0
- package/dist/reasoning/proof-mining/generalizer.js.map +1 -0
- package/dist/reasoning/proof-mining/index.d.ts +62 -0
- package/dist/reasoning/proof-mining/index.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/index.js +235 -0
- package/dist/reasoning/proof-mining/index.js.map +1 -0
- package/dist/reasoning/proof-mining/persistence.d.ts +35 -0
- package/dist/reasoning/proof-mining/persistence.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/persistence.js +126 -0
- package/dist/reasoning/proof-mining/persistence.js.map +1 -0
- package/dist/reasoning/proof-mining/ranker.d.ts +29 -0
- package/dist/reasoning/proof-mining/ranker.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/ranker.js +71 -0
- package/dist/reasoning/proof-mining/ranker.js.map +1 -0
- package/dist/reasoning/proof-mining/statistics.d.ts +11 -0
- package/dist/reasoning/proof-mining/statistics.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/statistics.js +44 -0
- package/dist/reasoning/proof-mining/statistics.js.map +1 -0
- package/dist/reasoning/proof-mining/types.d.ts +117 -0
- package/dist/reasoning/proof-mining/types.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/types.js +24 -0
- package/dist/reasoning/proof-mining/types.js.map +1 -0
- package/dist/reasoning/separation-logic/index.d.ts +30 -0
- package/dist/reasoning/separation-logic/index.d.ts.map +1 -1
- package/dist/reasoning/separation-logic/index.js +21 -0
- package/dist/reasoning/separation-logic/index.js.map +1 -1
- package/dist/reasoning/set-theory/hf-functions.js +3 -3
- package/dist/reasoning/set-theory/hf-sets.js +1 -1
- package/dist/reasoning/set-theory/index.d.ts +3 -3
- package/dist/reasoning/set-theory/index.d.ts.map +1 -1
- package/dist/reasoning/set-theory/zfc-axioms.js +4 -4
- package/dist/reasoning/tactic-dsl/tactics.d.ts +87 -0
- package/dist/reasoning/tactic-dsl/tactics.d.ts.map +1 -1
- package/dist/reasoning/tactic-dsl/tactics.js +86 -36
- package/dist/reasoning/tactic-dsl/tactics.js.map +1 -1
- package/dist/reasoning/topology/index.d.ts +81 -0
- package/dist/reasoning/topology/index.d.ts.map +1 -1
- package/dist/reasoning/topology/index.js +69 -45
- package/dist/reasoning/topology/index.js.map +1 -1
- package/dist/runtime/countermodel-min/minimize.js +0 -0
- package/dist/runtime/countermodel-min/minimize.js.map +1 -1
- package/dist/runtime/csp-hoare/semantics.d.ts +12 -0
- package/dist/runtime/csp-hoare/semantics.d.ts.map +1 -1
- package/dist/runtime/csp-hoare/semantics.js +12 -0
- package/dist/runtime/csp-hoare/semantics.js.map +1 -1
- package/dist/runtime/symbolic-diff/constructors.d.ts +20 -0
- package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -1
- package/dist/runtime/symbolic-diff/constructors.js +20 -0
- package/dist/runtime/symbolic-diff/constructors.js.map +1 -1
- package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -1
- package/dist/runtime/term-rewriting/term-utils.js +33 -2
- package/dist/runtime/term-rewriting/term-utils.js.map +1 -1
- package/dist/runtime/typecheck/checker.js +2 -2
- package/dist/runtime/typecheck/checker.js.map +1 -1
- package/dist/runtime/typecheck/levenshtein.js +1 -1
- package/dist/runtime/typecheck/levenshtein.js.map +1 -1
- package/dist/semantics/categorical/fin-set.d.ts.map +1 -1
- package/dist/semantics/categorical/fin-set.js +8 -1
- package/dist/semantics/categorical/fin-set.js.map +1 -1
- package/dist/semantics/categorical/free.d.ts.map +1 -1
- package/dist/semantics/categorical/free.js +8 -2
- package/dist/semantics/categorical/free.js.map +1 -1
- package/dist/semantics/categorical/limits.d.ts.map +1 -1
- package/dist/semantics/categorical/limits.js +13 -4
- package/dist/semantics/categorical/limits.js.map +1 -1
- package/dist/semantics/categorical/monoidal.d.ts.map +1 -1
- package/dist/semantics/categorical/monoidal.js +3 -1
- package/dist/semantics/categorical/monoidal.js.map +1 -1
- package/dist/semantics/text-layer/compiler.d.ts +46 -0
- package/dist/semantics/text-layer/compiler.d.ts.map +1 -1
- package/dist/semantics/text-layer/compiler.js +46 -11
- package/dist/semantics/text-layer/compiler.js.map +1 -1
- package/dist/solver/cdcl-v2/index.d.ts +8 -0
- package/dist/solver/cdcl-v2/index.d.ts.map +1 -1
- package/dist/solver/cdcl-v2/index.js +8 -0
- package/dist/solver/cdcl-v2/index.js.map +1 -1
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts +0 -1
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -1
- package/dist/solver/smt-z3/z3-wasm-backend.js +2 -3
- package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -1
- package/dist/tests/agora-integration-fixtures.test.js +7 -2
- package/dist/tests/agora-integration-fixtures.test.js.map +1 -1
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js +123 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js +172 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js +326 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js +418 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js +162 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.js +104 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.js +262 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.js +101 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js +219 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js +154 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js.map +1 -0
- package/dist/tests/coverage-95/first-order.test.js.map +1 -1
- package/dist/tests/coverage-95/fol-prover.test.js.map +1 -1
- package/dist/tests/integration/cross-modules.test.js +43 -19
- package/dist/tests/integration/cross-modules.test.js.map +1 -1
- package/dist/tests/logic/ctl/check.test.js.map +1 -1
- package/dist/tests/logic/profile-bridge/translations.test.js +3 -3
- package/dist/tests/logic/profile-bridge/translations.test.js.map +1 -1
- package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts +2 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts.map +1 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.js +400 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.js.map +1 -0
- package/dist/tests/logic/sequent-g3/prover.test.js.map +1 -1
- package/dist/tests/logic/substructural/prover.test.js.map +1 -1
- package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js +40 -13
- package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js.map +1 -1
- package/dist/tests/proof-systems/higher-order-unify/ho-unify.test.js.map +1 -1
- package/dist/tests/proof-systems/tableau-framework/tableau.test.js +8 -8
- package/dist/tests/proof-systems/tableau-framework/tableau.test.js.map +1 -1
- package/dist/tests/properties/agm.property.test.js +1 -1
- package/dist/tests/properties/agm.property.test.js.map +1 -1
- package/dist/tests/properties/anti-unification.property.test.js.map +1 -1
- package/dist/tests/properties/argumentation.property.test.js.map +1 -1
- package/dist/tests/properties/bisimulation.property.test.js.map +1 -1
- package/dist/tests/properties/cdcl.property.test.js.map +1 -1
- package/dist/tests/properties/coinduction.property.test.js.map +1 -1
- package/dist/tests/properties/constructive-reals.property.test.js.map +1 -1
- package/dist/tests/properties/csp.property.test.js +1 -3
- package/dist/tests/properties/csp.property.test.js.map +1 -1
- package/dist/tests/properties/generators.d.ts +1 -1
- package/dist/tests/properties/generators.d.ts.map +1 -1
- package/dist/tests/properties/generators.js +22 -30
- package/dist/tests/properties/generators.js.map +1 -1
- package/dist/tests/properties/intuit-nj.property.test.js +3 -1
- package/dist/tests/properties/intuit-nj.property.test.js.map +1 -1
- package/dist/tests/properties/lambda-calc.property.test.js.map +1 -1
- package/dist/tests/properties/mln.property.test.js +1 -3
- package/dist/tests/properties/mln.property.test.js.map +1 -1
- package/dist/tests/properties/planning.property.test.js.map +1 -1
- package/dist/tests/properties/profile-bridge.property.test.js.map +1 -1
- package/dist/tests/properties/theorem-cache.property.test.js.map +1 -1
- package/dist/tests/protocol-text-layer.test.js.map +1 -1
- package/dist/tests/reasoning/combinatorics/combinatorics.test.js +1 -1
- package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js +9 -9
- package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js.map +1 -1
- package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js +80 -38
- package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js.map +1 -1
- package/dist/tests/reasoning/order-theory/order-theory.test.d.ts +2 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.d.ts.map +1 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.js +211 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.js.map +1 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts +2 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts.map +1 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.js +159 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.js.map +1 -0
- package/dist/tests/reasoning/set-theory/hf-functions.test.js +11 -11
- package/dist/tests/reasoning/set-theory/zfc-axioms.test.js +1 -1
- package/dist/tests/semantics/text-layer-v2/claim-graph.test.js.map +1 -1
- package/dist/tests/solver/smt-lib/emitter.test.js.map +1 -1
- package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -1
- package/dist/tests/tooling/test-harness/test-harness.test.js +9 -6
- package/dist/tests/tooling/test-harness/test-harness.test.js.map +1 -1
- package/dist/tooling/lsp/types.d.ts +13 -0
- package/dist/tooling/lsp/types.d.ts.map +1 -1
- package/dist/tooling/lsp/types.js +1 -0
- package/dist/tooling/lsp/types.js.map +1 -1
- package/dist/tooling/test-harness/combinators.d.ts.map +1 -1
- package/dist/tooling/test-harness/combinators.js +4 -4
- package/dist/tooling/test-harness/combinators.js.map +1 -1
- package/dist/tooling/test-harness/coverage.js +1 -1
- package/dist/tooling/test-harness/generators.d.ts.map +1 -1
- package/dist/tooling/test-harness/generators.js.map +1 -1
- package/dist/tooling/test-harness/index.d.ts +1 -1
- package/dist/tooling/test-harness/index.d.ts.map +1 -1
- package/dist/tooling/test-harness/index.js.map +1 -1
- package/dist/tooling/test-harness/snapshot.d.ts.map +1 -1
- package/dist/tooling/test-harness/snapshot.js +2 -2
- package/dist/tooling/test-harness/snapshot.js.map +1 -1
- package/dist/type-theory/cubical/types.d.ts +25 -0
- package/dist/type-theory/cubical/types.d.ts.map +1 -1
- package/dist/type-theory/cubical/types.js +20 -0
- package/dist/type-theory/cubical/types.js.map +1 -1
- package/dist/type-theory/curry-howard/types.d.ts +27 -0
- package/dist/type-theory/curry-howard/types.d.ts.map +1 -1
- package/dist/type-theory/curry-howard/types.js +18 -0
- package/dist/type-theory/curry-howard/types.js.map +1 -1
- package/dist/type-theory/hindley-milner/substitution.d.ts +39 -0
- package/dist/type-theory/hindley-milner/substitution.d.ts.map +1 -1
- package/dist/type-theory/hindley-milner/substitution.js +37 -0
- package/dist/type-theory/hindley-milner/substitution.js.map +1 -1
- package/dist/type-theory/hindley-milner/types.d.ts +25 -0
- package/dist/type-theory/hindley-milner/types.d.ts.map +1 -1
- package/dist/type-theory/hindley-milner/types.js +22 -2
- package/dist/type-theory/hindley-milner/types.js.map +1 -1
- package/dist/type-theory/hol/rules.d.ts +36 -0
- package/dist/type-theory/hol/rules.d.ts.map +1 -1
- package/dist/type-theory/hol/rules.js +36 -0
- package/dist/type-theory/hol/rules.js.map +1 -1
- package/dist/type-theory/hott/types.d.ts +32 -0
- package/dist/type-theory/hott/types.d.ts.map +1 -1
- package/dist/type-theory/hott/types.js +31 -1
- package/dist/type-theory/hott/types.js.map +1 -1
- package/dist/type-theory/lambda-cube/types.d.ts +17 -0
- package/dist/type-theory/lambda-cube/types.d.ts.map +1 -1
- package/dist/type-theory/lambda-cube/types.js +13 -0
- package/dist/type-theory/lambda-cube/types.js.map +1 -1
- package/dist/type-theory/mltt/types.d.ts +19 -0
- package/dist/type-theory/mltt/types.d.ts.map +1 -1
- package/dist/type-theory/mltt/types.js +15 -1
- package/dist/type-theory/mltt/types.js.map +1 -1
- package/dist/type-theory/nbe/types.d.ts +21 -0
- package/dist/type-theory/nbe/types.d.ts.map +1 -1
- package/dist/type-theory/nbe/types.js +13 -1
- package/dist/type-theory/nbe/types.js.map +1 -1
- package/dist/type-theory/refinement-types/types.d.ts +38 -0
- package/dist/type-theory/refinement-types/types.d.ts.map +1 -1
- package/dist/type-theory/refinement-types/types.js +35 -0
- package/dist/type-theory/refinement-types/types.js.map +1 -1
- package/dist/type-theory/system-f/types.d.ts +30 -0
- package/dist/type-theory/system-f/types.d.ts.map +1 -1
- package/dist/type-theory/system-f/types.js +24 -3
- package/dist/type-theory/system-f/types.js.map +1 -1
- package/dist/types/index.d.ts +42 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +26 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Proof Mining — Persistencia en theorem-cache
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Bridge entre los MinedLemma y el TheoremCache existente. La idea:
|
|
7
|
+
// los lemmas extraídos viven con primera clase en el cache, igual
|
|
8
|
+
// que cualquier teorema probado, y se benefician del α-canonical
|
|
9
|
+
// hashing + LRU + persistencia a disco.
|
|
10
|
+
//
|
|
11
|
+
// El mapping es directo:
|
|
12
|
+
//
|
|
13
|
+
// MinedLemma.id ← TheoremCache id (recalculado)
|
|
14
|
+
// MinedLemma.statement → CachedTheorem.formula
|
|
15
|
+
// MinedLemma.proof → CachedTheorem.proof (estructura completa)
|
|
16
|
+
// profile → CachedTheorem.profile
|
|
17
|
+
// metadata.provedBy = 'proof-mining'
|
|
18
|
+
// metadata.ms = subproof.cost
|
|
19
|
+
//
|
|
20
|
+
// `persistLemmas(lemmas, cache)` guarda. `recoverLemmas(cache,
|
|
21
|
+
// profile)` recupera todos los mined-lemmas de ese profile.
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.MINED_LEMMA_PROVER = void 0;
|
|
24
|
+
exports.persistLemmas = persistLemmas;
|
|
25
|
+
exports.recoverLemmaFromCache = recoverLemmaFromCache;
|
|
26
|
+
exports.recoverLemmas = recoverLemmas;
|
|
27
|
+
/**
|
|
28
|
+
* Marca metadata.provedBy que identifica un lemma como minado.
|
|
29
|
+
*/
|
|
30
|
+
exports.MINED_LEMMA_PROVER = 'proof-mining';
|
|
31
|
+
/**
|
|
32
|
+
* Guarda una lista de lemmas minados en el cache. Devuelve los ids
|
|
33
|
+
* (post-hash del cache, que puede diferir si el cache normaliza la
|
|
34
|
+
* fórmula de forma distinta).
|
|
35
|
+
*
|
|
36
|
+
* `now` es inyectable para tests deterministas (default `Date.now()`).
|
|
37
|
+
*/
|
|
38
|
+
function persistLemmas(lemmas, cache, now = Date.now) {
|
|
39
|
+
const ids = [];
|
|
40
|
+
for (const l of lemmas) {
|
|
41
|
+
const cached = {
|
|
42
|
+
formula: l.statement,
|
|
43
|
+
normalizedFormula: cache.canonicalize(l.statement),
|
|
44
|
+
profile: l.proof.profile,
|
|
45
|
+
proof: {
|
|
46
|
+
// Estructura del proof completo, sin perder metadata de mining.
|
|
47
|
+
steps: l.proof.steps,
|
|
48
|
+
conclusion: l.proof.conclusion,
|
|
49
|
+
premises: l.proof.premises,
|
|
50
|
+
abstractionLevel: l.abstractionLevel,
|
|
51
|
+
usageCount: l.usageCount,
|
|
52
|
+
savings: l.savings,
|
|
53
|
+
sourceProofs: l.sourceProofs,
|
|
54
|
+
},
|
|
55
|
+
verifier: undefined,
|
|
56
|
+
metadata: {
|
|
57
|
+
provedAt: new Date(now()).toISOString(),
|
|
58
|
+
ms: Math.round(l.proof.cost),
|
|
59
|
+
provedBy: exports.MINED_LEMMA_PROVER,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
const id = cache.store(cached);
|
|
63
|
+
ids.push(id);
|
|
64
|
+
}
|
|
65
|
+
return ids;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Reconstruye un MinedLemma desde una entry cacheada (best-effort).
|
|
69
|
+
* Si la entry no fue persistida vía `persistLemmas`, devuelve
|
|
70
|
+
* `undefined`.
|
|
71
|
+
*/
|
|
72
|
+
function recoverLemmaFromCache(theorem) {
|
|
73
|
+
if (theorem.metadata.provedBy !== exports.MINED_LEMMA_PROVER)
|
|
74
|
+
return undefined;
|
|
75
|
+
const proof = theorem.proof;
|
|
76
|
+
if (!proof ||
|
|
77
|
+
typeof proof !== 'object' ||
|
|
78
|
+
!Array.isArray(proof.steps) ||
|
|
79
|
+
typeof proof.conclusion !== 'string' ||
|
|
80
|
+
!Array.isArray(proof.premises) ||
|
|
81
|
+
typeof proof.abstractionLevel !== 'number' ||
|
|
82
|
+
typeof proof.usageCount !== 'number' ||
|
|
83
|
+
typeof proof.savings !== 'number' ||
|
|
84
|
+
!Array.isArray(proof.sourceProofs)) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
id: theorem.id,
|
|
89
|
+
statement: theorem.formula,
|
|
90
|
+
proof: {
|
|
91
|
+
id: theorem.id,
|
|
92
|
+
conclusion: proof.conclusion,
|
|
93
|
+
premises: proof.premises,
|
|
94
|
+
profile: theorem.profile,
|
|
95
|
+
steps: proof.steps,
|
|
96
|
+
cost: theorem.metadata.ms,
|
|
97
|
+
},
|
|
98
|
+
abstractionLevel: proof.abstractionLevel,
|
|
99
|
+
usageCount: proof.usageCount,
|
|
100
|
+
savings: proof.savings,
|
|
101
|
+
sourceProofs: proof.sourceProofs,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Recupera lemmas minados desde el cache a partir de una lista de
|
|
106
|
+
* statements canónicos esperados. Para cada `(statement, profile)`
|
|
107
|
+
* que efectivamente esté cacheado por `persistLemmas`, devuelve el
|
|
108
|
+
* MinedLemma reconstruido.
|
|
109
|
+
*
|
|
110
|
+
* Esta API existe porque `TheoremCache` no expone iteración total
|
|
111
|
+
* por design (LRU + persistencia). El caller que persistió los
|
|
112
|
+
* lemmas conoce sus statements; los pasa aquí para recuperarlos.
|
|
113
|
+
*/
|
|
114
|
+
function recoverLemmas(cache, entries) {
|
|
115
|
+
const out = [];
|
|
116
|
+
for (const e of entries) {
|
|
117
|
+
const th = cache.retrieve(e.statement, e.profile);
|
|
118
|
+
if (th === undefined)
|
|
119
|
+
continue;
|
|
120
|
+
const recovered = recoverLemmaFromCache(th);
|
|
121
|
+
if (recovered !== undefined)
|
|
122
|
+
out.push(recovered);
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/reasoning/proof-mining/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { MinedLemma } from './types';
|
|
2
|
+
export interface RankingWeights {
|
|
3
|
+
/** Peso del saving total. Default 0.5. */
|
|
4
|
+
savings?: number;
|
|
5
|
+
/** Peso del usage count (normalizado log). Default 0.3. */
|
|
6
|
+
usage?: number;
|
|
7
|
+
/** Peso del abstraction level. Default 0.2. */
|
|
8
|
+
generality?: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Score numérico de un lemma según los pesos. Mayor = mejor.
|
|
12
|
+
*
|
|
13
|
+
* Normalizaciones:
|
|
14
|
+
* - savings: log(1 + savings)
|
|
15
|
+
* - usage: log(1 + usageCount)
|
|
16
|
+
* - generality: abstractionLevel (raw)
|
|
17
|
+
*/
|
|
18
|
+
export declare function scoreLemma(lemma: MinedLemma, weights?: RankingWeights): number;
|
|
19
|
+
/**
|
|
20
|
+
* Ordena los lemmas de mayor a menor score. NO muta el array
|
|
21
|
+
* original. En empates: usageCount desc, luego id asc para
|
|
22
|
+
* determinismo.
|
|
23
|
+
*/
|
|
24
|
+
export declare function rankLemmas(lemmas: MinedLemma[], weights?: RankingWeights): MinedLemma[];
|
|
25
|
+
/**
|
|
26
|
+
* Filtra los top-K lemmas por score.
|
|
27
|
+
*/
|
|
28
|
+
export declare function topK(lemmas: MinedLemma[], k: number, weights?: RankingWeights): MinedLemma[];
|
|
29
|
+
//# sourceMappingURL=ranker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranker.d.ts","sourceRoot":"","sources":["../../../src/reasoning/proof-mining/ranker.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgBD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,CAM9E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,CASvF;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,CAE5F"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Proof Mining — Ranking de lemmas extraídos
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Score de un lemma = combinación lineal de:
|
|
7
|
+
// - usefulness : usageCount (cuánto se reusa)
|
|
8
|
+
// - savings : sum(cost) ahorrado por reusos
|
|
9
|
+
// - generality : abstractionLevel (cuán abstracto es)
|
|
10
|
+
//
|
|
11
|
+
// Default weights privilegian savings (impacto directo en tiempo),
|
|
12
|
+
// luego frecuencia (señal de reuso real), luego generalidad
|
|
13
|
+
// (un lemma muy abstracto es valioso aunque su saving inmediato
|
|
14
|
+
// sea bajo, porque admite más instancias).
|
|
15
|
+
//
|
|
16
|
+
// El caller puede sobreescribir pesos para experimentar.
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.scoreLemma = scoreLemma;
|
|
19
|
+
exports.rankLemmas = rankLemmas;
|
|
20
|
+
exports.topK = topK;
|
|
21
|
+
const DEFAULT_WEIGHTS = {
|
|
22
|
+
savings: 0.5,
|
|
23
|
+
usage: 0.3,
|
|
24
|
+
generality: 0.2,
|
|
25
|
+
};
|
|
26
|
+
function resolveWeights(w) {
|
|
27
|
+
return {
|
|
28
|
+
savings: w?.savings ?? DEFAULT_WEIGHTS.savings,
|
|
29
|
+
usage: w?.usage ?? DEFAULT_WEIGHTS.usage,
|
|
30
|
+
generality: w?.generality ?? DEFAULT_WEIGHTS.generality,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Score numérico de un lemma según los pesos. Mayor = mejor.
|
|
35
|
+
*
|
|
36
|
+
* Normalizaciones:
|
|
37
|
+
* - savings: log(1 + savings)
|
|
38
|
+
* - usage: log(1 + usageCount)
|
|
39
|
+
* - generality: abstractionLevel (raw)
|
|
40
|
+
*/
|
|
41
|
+
function scoreLemma(lemma, weights) {
|
|
42
|
+
const w = resolveWeights(weights);
|
|
43
|
+
const sv = Math.log1p(Math.max(0, lemma.savings));
|
|
44
|
+
const uc = Math.log1p(Math.max(0, lemma.usageCount));
|
|
45
|
+
const ab = Math.max(0, lemma.abstractionLevel);
|
|
46
|
+
return w.savings * sv + w.usage * uc + w.generality * ab;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Ordena los lemmas de mayor a menor score. NO muta el array
|
|
50
|
+
* original. En empates: usageCount desc, luego id asc para
|
|
51
|
+
* determinismo.
|
|
52
|
+
*/
|
|
53
|
+
function rankLemmas(lemmas, weights) {
|
|
54
|
+
const w = resolveWeights(weights);
|
|
55
|
+
const decorated = lemmas.map((l) => ({ l, s: scoreLemma(l, w) }));
|
|
56
|
+
decorated.sort((a, b) => {
|
|
57
|
+
if (b.s !== a.s)
|
|
58
|
+
return b.s - a.s;
|
|
59
|
+
if (b.l.usageCount !== a.l.usageCount)
|
|
60
|
+
return b.l.usageCount - a.l.usageCount;
|
|
61
|
+
return a.l.id.localeCompare(b.l.id);
|
|
62
|
+
});
|
|
63
|
+
return decorated.map((d) => d.l);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Filtra los top-K lemmas por score.
|
|
67
|
+
*/
|
|
68
|
+
function topK(lemmas, k, weights) {
|
|
69
|
+
return rankLemmas(lemmas, weights).slice(0, Math.max(0, k));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=ranker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranker.js","sourceRoot":"","sources":["../../../src/reasoning/proof-mining/ranker.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;AAC/D,EAAE;AACF,6CAA6C;AAC7C,iDAAiD;AACjD,kDAAkD;AAClD,yDAAyD;AACzD,EAAE;AACF,mEAAmE;AACnE,4DAA4D;AAC5D,gEAAgE;AAChE,2CAA2C;AAC3C,EAAE;AACF,yDAAyD;;AAmCzD,gCAMC;AAOD,gCASC;AAKD,oBAEC;AAnDD,MAAM,eAAe,GAA6B;IAChD,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,GAAG;CAChB,CAAC;AAEF,SAAS,cAAc,CAAC,CAAkB;IACxC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,eAAe,CAAC,OAAO;QAC9C,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,eAAe,CAAC,KAAK;QACxC,UAAU,EAAE,CAAC,EAAE,UAAU,IAAI,eAAe,CAAC,UAAU;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,KAAiB,EAAE,OAAwB;IACpE,MAAM,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,MAAoB,EAAE,OAAwB;IACvE,MAAM,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9E,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,IAAI,CAAC,MAAoB,EAAE,CAAS,EAAE,OAAwB;IAC5E,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MinedLemma, UsageStats } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Computa las stats agregadas dado el corpus original y la lista
|
|
4
|
+
* final de lemmas extraídos.
|
|
5
|
+
*/
|
|
6
|
+
export declare function computeStats(proofsAnalyzed: number, candidatesFound: number, lemmas: MinedLemma[]): UsageStats;
|
|
7
|
+
/**
|
|
8
|
+
* Render textual de las stats (para logs / debugging).
|
|
9
|
+
*/
|
|
10
|
+
export declare function statsToString(s: UsageStats): string;
|
|
11
|
+
//# sourceMappingURL=statistics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../../src/reasoning/proof-mining/statistics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,UAAU,EAAE,GACnB,UAAU,CAiBZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CASnD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Proof Mining — Estadísticas
|
|
4
|
+
// ============================================================
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.computeStats = computeStats;
|
|
7
|
+
exports.statsToString = statsToString;
|
|
8
|
+
/**
|
|
9
|
+
* Computa las stats agregadas dado el corpus original y la lista
|
|
10
|
+
* final de lemmas extraídos.
|
|
11
|
+
*/
|
|
12
|
+
function computeStats(proofsAnalyzed, candidatesFound, lemmas) {
|
|
13
|
+
let totalSavings = 0;
|
|
14
|
+
let totalUsage = 0;
|
|
15
|
+
let generalizedCount = 0;
|
|
16
|
+
for (const l of lemmas) {
|
|
17
|
+
totalSavings += l.savings;
|
|
18
|
+
totalUsage += l.usageCount;
|
|
19
|
+
if (l.abstractionLevel > 0)
|
|
20
|
+
generalizedCount++;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
proofsAnalyzed,
|
|
24
|
+
candidatesFound,
|
|
25
|
+
lemmasExtracted: lemmas.length,
|
|
26
|
+
totalSavings,
|
|
27
|
+
averageUsage: lemmas.length === 0 ? 0 : totalUsage / lemmas.length,
|
|
28
|
+
generalizedCount,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Render textual de las stats (para logs / debugging).
|
|
33
|
+
*/
|
|
34
|
+
function statsToString(s) {
|
|
35
|
+
return [
|
|
36
|
+
`proofsAnalyzed=${s.proofsAnalyzed}`,
|
|
37
|
+
`candidates=${s.candidatesFound}`,
|
|
38
|
+
`extracted=${s.lemmasExtracted}`,
|
|
39
|
+
`totalSavings=${s.totalSavings.toFixed(2)}`,
|
|
40
|
+
`avgUsage=${s.averageUsage.toFixed(2)}`,
|
|
41
|
+
`generalized=${s.generalizedCount}`,
|
|
42
|
+
].join(' ');
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=statistics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistics.js","sourceRoot":"","sources":["../../../src/reasoning/proof-mining/statistics.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;;AAQ/D,oCAqBC;AAKD,sCASC;AAvCD;;;GAGG;AACH,SAAgB,YAAY,CAC1B,cAAsB,EACtB,eAAuB,EACvB,MAAoB;IAEpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC;QAC1B,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC;YAAE,gBAAgB,EAAE,CAAC;IACjD,CAAC;IACD,OAAO;QACL,cAAc;QACd,eAAe;QACf,eAAe,EAAE,MAAM,CAAC,MAAM;QAC9B,YAAY;QACZ,YAAY,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM;QAClE,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,CAAa;IACzC,OAAO;QACL,kBAAkB,CAAC,CAAC,cAAc,EAAE;QACpC,cAAc,CAAC,CAAC,eAAe,EAAE;QACjC,aAAa,CAAC,CAAC,eAAe,EAAE;QAChC,gBAAgB,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3C,YAAY,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACvC,eAAe,CAAC,CAAC,gBAAgB,EAAE;KACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Un paso individual de una proof trace. `rule` es el nombre de la
|
|
3
|
+
* regla de inferencia (MP, ∧I, cut, etc.) y `inputs` son los outputs
|
|
4
|
+
* de pasos previos consumidos. `output` es la fórmula derivada.
|
|
5
|
+
*
|
|
6
|
+
* `depth` permite reconstruir el árbol sin tener que cargar punteros:
|
|
7
|
+
* el paso 0 es la conclusión, los pasos con depth+1 son sus hijos
|
|
8
|
+
* inmediatos. Esto se usa internamente para subtree matching.
|
|
9
|
+
*/
|
|
10
|
+
export interface ProofStep {
|
|
11
|
+
/** Nombre de la regla de inferencia usada. */
|
|
12
|
+
rule: string;
|
|
13
|
+
/** Fórmulas (outputs de pasos previos) consumidas por la regla. */
|
|
14
|
+
inputs: string[];
|
|
15
|
+
/** Fórmula derivada por este paso. */
|
|
16
|
+
output: string;
|
|
17
|
+
/** Profundidad en el árbol de prueba (0 = conclusión final). */
|
|
18
|
+
depth: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Traza de una prueba ya derivada. Es la unidad de entrada del
|
|
22
|
+
* miner. La conclusión es la fórmula final; las premisas son las
|
|
23
|
+
* hojas (axiomas, hipótesis). `steps` está en orden top-down: el
|
|
24
|
+
* primer paso es la conclusión, los siguientes profundizan.
|
|
25
|
+
*
|
|
26
|
+
* `cost` es heurístico: longitud de la prueba, depth × branching o
|
|
27
|
+
* tiempo wall-clock. El caller decide. Si la sub-prueba extraída
|
|
28
|
+
* tiene cost K y aparece N veces, el saving total es K·(N-1).
|
|
29
|
+
*/
|
|
30
|
+
export interface ProofTrace {
|
|
31
|
+
/** Identificador opcional de la prueba (e.g. hash original). */
|
|
32
|
+
id?: string;
|
|
33
|
+
/** Fórmula conclusión. */
|
|
34
|
+
conclusion: string;
|
|
35
|
+
/** Hojas: axiomas / hipótesis. */
|
|
36
|
+
premises: string[];
|
|
37
|
+
/** Slug del perfil lógico (clásico, intuicionista, etc.). */
|
|
38
|
+
profile: string;
|
|
39
|
+
/** Pasos del árbol, top-down con `depth`. */
|
|
40
|
+
steps: ProofStep[];
|
|
41
|
+
/** Cost heurístico (longitud, depth × branching, ms, etc.). */
|
|
42
|
+
cost: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Un lemma extraído del corpus.
|
|
46
|
+
*
|
|
47
|
+
* - `id` es el hash α-canónico (compatible con TheoremCache).
|
|
48
|
+
* - `statement` es la conclusión del sub-tree (posiblemente
|
|
49
|
+
* generalizada por anti-unification).
|
|
50
|
+
* - `abstractionLevel` indica cuántas variables fresh introdujo la
|
|
51
|
+
* generalización (0 = literal, n = n-level abstraction).
|
|
52
|
+
* - `usageCount` es la cantidad de proofs donde el lemma calza.
|
|
53
|
+
* - `savings` es la suma de `cost` que se evita al reusar el lemma:
|
|
54
|
+
* cost_subproof × (usageCount − 1).
|
|
55
|
+
* - `sourceProofs` enumera las trazas donde se encontró el match.
|
|
56
|
+
*/
|
|
57
|
+
export interface MinedLemma {
|
|
58
|
+
id: string;
|
|
59
|
+
statement: string;
|
|
60
|
+
proof: ProofTrace;
|
|
61
|
+
abstractionLevel: number;
|
|
62
|
+
usageCount: number;
|
|
63
|
+
savings: number;
|
|
64
|
+
sourceProofs: string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Opciones de minería.
|
|
68
|
+
*/
|
|
69
|
+
export interface MiningOptions {
|
|
70
|
+
/**
|
|
71
|
+
* Umbral mínimo de reutilización para extraer un sub-tree como
|
|
72
|
+
* lemma. Default 2 (debe aparecer al menos en 2 proofs).
|
|
73
|
+
*/
|
|
74
|
+
minReuseThreshold?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Tamaño mínimo del sub-tree (cantidad de pasos) para ser candidato
|
|
77
|
+
* a lemma. Sub-trees de 1 paso son triviales y se descartan.
|
|
78
|
+
* Default 2.
|
|
79
|
+
*/
|
|
80
|
+
minSubtreeSize?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Nivel máximo de generalización. La anti-unificación se aplica
|
|
83
|
+
* iterativamente; cap de seguridad. Default 3.
|
|
84
|
+
*/
|
|
85
|
+
maxAbstractionLevel?: number;
|
|
86
|
+
/**
|
|
87
|
+
* Si `true`, la generalización debe preservar la propiedad de
|
|
88
|
+
* que toda instancia del pattern sea una prueba válida (verificado
|
|
89
|
+
* sobre el corpus original). Default `true`.
|
|
90
|
+
*/
|
|
91
|
+
preserveSemantic?: boolean;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Estadísticas agregadas del proceso de minería.
|
|
95
|
+
*/
|
|
96
|
+
export interface UsageStats {
|
|
97
|
+
/** Cantidad de proofs procesadas. */
|
|
98
|
+
proofsAnalyzed: number;
|
|
99
|
+
/** Sub-trees candidatos encontrados (antes de filtrado). */
|
|
100
|
+
candidatesFound: number;
|
|
101
|
+
/** Lemmas finalmente extraídos (post-filtrado y ranking). */
|
|
102
|
+
lemmasExtracted: number;
|
|
103
|
+
/** Sumatoria de savings de todos los lemmas. */
|
|
104
|
+
totalSavings: number;
|
|
105
|
+
/** Promedio de usageCount por lemma. */
|
|
106
|
+
averageUsage: number;
|
|
107
|
+
/** Cantidad de lemmas que pasaron por generalization. */
|
|
108
|
+
generalizedCount: number;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Resultado completo de una corrida de mining.
|
|
112
|
+
*/
|
|
113
|
+
export interface MiningResult {
|
|
114
|
+
lemmas: MinedLemma[];
|
|
115
|
+
stats: UsageStats;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reasoning/proof-mining/types.ts"],"names":[],"mappings":"AAsBA;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;CACnB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Proof Mining — Tipos públicos
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Proof mining (a.k.a. lemma extraction) toma un corpus de pruebas
|
|
7
|
+
// ya derivadas y extrae sub-pruebas reutilizables como lemmas
|
|
8
|
+
// independientes. La idea: si la misma estructura aparece en 2+
|
|
9
|
+
// pruebas, conviene cachearla con su propia entry para que futuras
|
|
10
|
+
// derivaciones la reusen sin re-trabajar.
|
|
11
|
+
//
|
|
12
|
+
// Diferencia con `lemma-synthesis`:
|
|
13
|
+
// - lemma-synthesis ENUMERA conjeturas a partir de una signatura
|
|
14
|
+
// y un evaluador (theory exploration estilo QuickSpec).
|
|
15
|
+
// - proof-mining EXTRAE lemmas de pruebas que ya existen
|
|
16
|
+
// (bottom-up desde el corpus, sin enumeración).
|
|
17
|
+
//
|
|
18
|
+
// Pipeline:
|
|
19
|
+
// 1. extract: encontrar sub-trees comunes entre pruebas.
|
|
20
|
+
// 2. generalize: anti-unify para subir el nivel de abstracción.
|
|
21
|
+
// 3. rank: ordenar por usefulness (savings · frecuencia · generalidad).
|
|
22
|
+
// 4. persist: meter en TheoremCache con hash α-canónico.
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/reasoning/proof-mining/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,mCAAmC;AACnC,+DAA+D;AAC/D,EAAE;AACF,mEAAmE;AACnE,8DAA8D;AAC9D,gEAAgE;AAChE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,oCAAoC;AACpC,mEAAmE;AACnE,4DAA4D;AAC5D,2DAA2D;AAC3D,oDAAoD;AACpD,EAAE;AACF,YAAY;AACZ,2DAA2D;AAC3D,kEAAkE;AAClE,0EAA0E;AAC1E,2DAA2D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** Valor que puede almacenarse en el heap de separación: entero, dirección o null. */
|
|
1
2
|
export type SLValue = {
|
|
2
3
|
kind: 'int';
|
|
3
4
|
value: number;
|
|
@@ -7,15 +8,20 @@ export type SLValue = {
|
|
|
7
8
|
} | {
|
|
8
9
|
kind: 'null';
|
|
9
10
|
};
|
|
11
|
+
/** Constructor de valor entero del heap de separación. */
|
|
10
12
|
export declare function intVal(value: number): SLValue;
|
|
13
|
+
/** Constructor de valor dirección del heap de separación. */
|
|
11
14
|
export declare function addrVal(loc: number): SLValue;
|
|
15
|
+
/** Singleton null del heap de separación (puntero nulo). */
|
|
12
16
|
export declare function nullVal(): SLValue;
|
|
17
|
+
/** Igualdad estructural entre dos valores del heap de separación. */
|
|
13
18
|
export declare function valueEquals(a: SLValue, b: SLValue): boolean;
|
|
14
19
|
/** Convierte un SLValue a una clave string estable para Maps. */
|
|
15
20
|
export declare function valueKey(v: SLValue): string;
|
|
16
21
|
/** Devuelve la dirección de un SLValue si es addr, o null en cualquier
|
|
17
22
|
* otro caso. La null-location no se direcciona. */
|
|
18
23
|
export declare function asLoc(v: SLValue): number | null;
|
|
24
|
+
/** Heap finito de separación: mapa inmutable de direcciones (number) a valores SL. */
|
|
19
25
|
export interface Heap {
|
|
20
26
|
readonly map: ReadonlyMap<number, SLValue>;
|
|
21
27
|
domain(): number[];
|
|
@@ -26,7 +32,9 @@ export interface Heap {
|
|
|
26
32
|
size(): number;
|
|
27
33
|
clone(): Heap;
|
|
28
34
|
}
|
|
35
|
+
/** Crea un heap vacío. */
|
|
29
36
|
export declare function newHeap(): Heap;
|
|
37
|
+
/** Crea un heap a partir de una lista de pares `[dirección, valor]`. */
|
|
30
38
|
export declare function fromMap(entries: Array<[number, SLValue]>): Heap;
|
|
31
39
|
/** Dos heaps son disjuntos sii sus dominios no se intersectan. */
|
|
32
40
|
export declare function disjoint(h1: Heap, h2: Heap): boolean;
|
|
@@ -40,6 +48,7 @@ export declare function splits(h: Heap): Array<{
|
|
|
40
48
|
h1: Heap;
|
|
41
49
|
h2: Heap;
|
|
42
50
|
}>;
|
|
51
|
+
/** Fórmula de separación lógica (SL). Cubre emp, pointsTo, star (*), magic wand (-*), cuantificadores y lógica proposicional pura. */
|
|
43
52
|
export type SLFormula = {
|
|
44
53
|
kind: 'emp';
|
|
45
54
|
} | {
|
|
@@ -82,20 +91,35 @@ export type SLFormula = {
|
|
|
82
91
|
bind: string;
|
|
83
92
|
body: SLFormula;
|
|
84
93
|
};
|
|
94
|
+
/** Predicado puro de SL: función JavaScript que evalúa una condición sobre la valuación de variables. */
|
|
85
95
|
export type PurePredicate = (val: SLValuation) => boolean;
|
|
96
|
+
/** Heap vacío: `emp`. La fórmula que vale sobre el heap vacío. */
|
|
86
97
|
export declare const emp: () => SLFormula;
|
|
98
|
+
/** `loc ↦ val` — `loc` apunta a `val` (heap de un solo celda). */
|
|
87
99
|
export declare const pointsTo: (loc: SLValue, val: SLValue) => SLFormula;
|
|
100
|
+
/** Conjunción separante `P * Q`: `P` y `Q` valen sobre sub-heaps disjuntos cuya unión es el heap total. */
|
|
88
101
|
export declare const star: (left: SLFormula, right: SLFormula) => SLFormula;
|
|
102
|
+
/** Magic wand `P -* Q`: para cualquier heap disjunto que satisfaga `P`, la unión satisface `Q`. */
|
|
89
103
|
export declare const magicWand: (left: SLFormula, right: SLFormula) => SLFormula;
|
|
104
|
+
/** Fórmula pura `[expr]`: condición sin acceso al heap, evaluada por `predicate`. */
|
|
90
105
|
export declare const pure: (expression: string, predicate: PurePredicate) => SLFormula;
|
|
106
|
+
/** Conjunción clásica de dos fórmulas SL (no separante). */
|
|
91
107
|
export declare const andF: (left: SLFormula, right: SLFormula) => SLFormula;
|
|
108
|
+
/** Disyunción de dos fórmulas SL. */
|
|
92
109
|
export declare const orF: (left: SLFormula, right: SLFormula) => SLFormula;
|
|
110
|
+
/** Implicación clásica entre dos fórmulas SL. */
|
|
93
111
|
export declare const impliesF: (left: SLFormula, right: SLFormula) => SLFormula;
|
|
112
|
+
/** Negación de una fórmula SL. */
|
|
94
113
|
export declare const notF: (body: SLFormula) => SLFormula;
|
|
114
|
+
/** Cuantificador existencial sobre una variable de valuación. */
|
|
95
115
|
export declare const existsF: (bind: string, body: SLFormula) => SLFormula;
|
|
116
|
+
/** Cuantificador universal sobre una variable de valuación. */
|
|
96
117
|
export declare const forallF: (bind: string, body: SLFormula) => SLFormula;
|
|
118
|
+
/** Serializa una fórmula SL a su representación textual estándar. */
|
|
97
119
|
export declare function formulaToString(f: SLFormula): string;
|
|
120
|
+
/** Serializa un valor SL (int, addr, null) a texto legible. */
|
|
98
121
|
export declare function valueToString(v: SLValue): string;
|
|
122
|
+
/** Mapa de variables de SL a valores; permite atar variables lógicas durante la evaluación. */
|
|
99
123
|
export interface SLValuation {
|
|
100
124
|
[varName: string]: SLValue;
|
|
101
125
|
}
|
|
@@ -103,6 +127,7 @@ export interface SLValuation {
|
|
|
103
127
|
export declare function bind(val: SLValuation, name: string, v: SLValue): SLValuation;
|
|
104
128
|
/** `satisfies(P, h, ν)` — el modelo `(h, ν)` satisface la fórmula P. */
|
|
105
129
|
export declare function satisfies(formula: SLFormula, heap: Heap, val: SLValuation): boolean;
|
|
130
|
+
/** Comando de SL: operación de heap que puede modificar el heap y/o la valuación de variables. */
|
|
106
131
|
export interface SLCommand {
|
|
107
132
|
kind: 'alloc' | 'free' | 'load' | 'store' | 'skip' | 'assign';
|
|
108
133
|
/** Variable destino para `alloc`/`load`/`assign`. */
|
|
@@ -112,6 +137,7 @@ export interface SLCommand {
|
|
|
112
137
|
/** Valor a almacenar (para `alloc`, `store`, `assign`). */
|
|
113
138
|
value?: SLValue;
|
|
114
139
|
}
|
|
140
|
+
/** Tripla de Hoare para SL: `{ pre } cmd { post }`. */
|
|
115
141
|
export interface SLTriple {
|
|
116
142
|
pre: SLFormula;
|
|
117
143
|
cmd: SLCommand;
|
|
@@ -128,6 +154,7 @@ export interface ExecResult {
|
|
|
128
154
|
}
|
|
129
155
|
/** Ejecuta un único comando de forma small-step. */
|
|
130
156
|
export declare function executeCommand(cmd: SLCommand, heap: Heap, val: SLValuation): ExecResult;
|
|
157
|
+
/** Opciones para `checkTriple`: heaps candidatos, tamaño de muestreo y semilla RNG. */
|
|
131
158
|
export interface CheckTripleOptions {
|
|
132
159
|
/** Heaps candidatos a probar como precondición. Si no se da, se generan. */
|
|
133
160
|
candidates?: Array<{
|
|
@@ -139,6 +166,7 @@ export interface CheckTripleOptions {
|
|
|
139
166
|
/** Semilla para el RNG (LCG simple) — reproducibilidad. */
|
|
140
167
|
seed?: number;
|
|
141
168
|
}
|
|
169
|
+
/** Resultado de `checkTriple`: validez (o contraejemplo encontrado) y cantidad de modelos evaluados. */
|
|
142
170
|
export interface CheckTripleResult {
|
|
143
171
|
valid: boolean;
|
|
144
172
|
counterexample?: {
|
|
@@ -174,11 +202,13 @@ export declare function satisfiesShape(formula: SLFormula, heap: Heap, val: SLVa
|
|
|
174
202
|
* (loc, loc+1) con los punteros izquierdo y derecho.
|
|
175
203
|
*/
|
|
176
204
|
export declare function tree(root: SLValue): SLFormula;
|
|
205
|
+
/** Comprueba si `heap` representa un árbol binario con raíz `root` (nodos de 2 celdas contiguas). */
|
|
177
206
|
export declare function isTree(root: SLValue, heap: Heap): boolean;
|
|
178
207
|
/** Frame rule: si `{P} c {Q}` y `c` no modifica las variables libres de
|
|
179
208
|
* `R`, entonces `{P * R} c {Q * R}`. Esta función construye la tripla
|
|
180
209
|
* compuesta — la validación queda a cargo de `checkTriple`. */
|
|
181
210
|
export declare function frame(triple: SLTriple, frameFormula: SLFormula): SLTriple;
|
|
211
|
+
/** Constructores convenientes para `SLCommand` (skip, assign, alloc, free, load, store). */
|
|
182
212
|
export declare const Cmd: {
|
|
183
213
|
skip: () => SLCommand;
|
|
184
214
|
assign: (variable: string, value: SLValue) => SLCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/separation-logic/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/separation-logic/index.ts"],"names":[],"mappings":"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"}
|