@stevenvo780/st-lang 4.5.1 → 4.6.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/bdd/index.d.ts +4 -0
- package/dist/bdd/index.d.ts.map +1 -0
- package/dist/bdd/index.js +29 -0
- package/dist/bdd/index.js.map +1 -0
- package/dist/bdd/manager.d.ts +122 -0
- package/dist/bdd/manager.d.ts.map +1 -0
- package/dist/bdd/manager.js +524 -0
- package/dist/bdd/manager.js.map +1 -0
- package/dist/bdd/types.d.ts +20 -0
- package/dist/bdd/types.d.ts.map +1 -0
- package/dist/bdd/types.js +28 -0
- package/dist/bdd/types.js.map +1 -0
- package/dist/categorical/fin-set.d.ts +39 -0
- package/dist/categorical/fin-set.d.ts.map +1 -0
- package/dist/categorical/fin-set.js +217 -0
- package/dist/categorical/fin-set.js.map +1 -0
- package/dist/categorical/free.d.ts +23 -0
- package/dist/categorical/free.d.ts.map +1 -0
- package/dist/categorical/free.js +168 -0
- package/dist/categorical/free.js.map +1 -0
- package/dist/categorical/functor.d.ts +40 -0
- package/dist/categorical/functor.d.ts.map +1 -0
- package/dist/categorical/functor.js +139 -0
- package/dist/categorical/functor.js.map +1 -0
- package/dist/categorical/index.d.ts +11 -0
- package/dist/categorical/index.d.ts.map +1 -0
- package/dist/categorical/index.js +33 -0
- package/dist/categorical/index.js.map +1 -0
- package/dist/categorical/limits.d.ts +64 -0
- package/dist/categorical/limits.d.ts.map +1 -0
- package/dist/categorical/limits.js +248 -0
- package/dist/categorical/limits.js.map +1 -0
- package/dist/categorical/monoidal.d.ts +14 -0
- package/dist/categorical/monoidal.d.ts.map +1 -0
- package/dist/categorical/monoidal.js +148 -0
- package/dist/categorical/monoidal.js.map +1 -0
- package/dist/categorical/poset.d.ts +14 -0
- package/dist/categorical/poset.d.ts.map +1 -0
- package/dist/categorical/poset.js +115 -0
- package/dist/categorical/poset.js.map +1 -0
- package/dist/categorical/types.d.ts +111 -0
- package/dist/categorical/types.d.ts.map +1 -0
- package/dist/categorical/types.js +15 -0
- package/dist/categorical/types.js.map +1 -0
- package/dist/csp-hoare/analysis.d.ts +51 -0
- package/dist/csp-hoare/analysis.d.ts.map +1 -0
- package/dist/csp-hoare/analysis.js +317 -0
- package/dist/csp-hoare/analysis.js.map +1 -0
- package/dist/csp-hoare/examples.d.ts +33 -0
- package/dist/csp-hoare/examples.d.ts.map +1 -0
- package/dist/csp-hoare/examples.js +108 -0
- package/dist/csp-hoare/examples.js.map +1 -0
- package/dist/csp-hoare/index.d.ts +6 -0
- package/dist/csp-hoare/index.d.ts.map +1 -0
- package/dist/csp-hoare/index.js +50 -0
- package/dist/csp-hoare/index.js.map +1 -0
- package/dist/csp-hoare/semantics.d.ts +49 -0
- package/dist/csp-hoare/semantics.d.ts.map +1 -0
- package/dist/csp-hoare/semantics.js +494 -0
- package/dist/csp-hoare/semantics.js.map +1 -0
- package/dist/csp-hoare/types.d.ts +60 -0
- package/dist/csp-hoare/types.d.ts.map +1 -0
- package/dist/csp-hoare/types.js +31 -0
- package/dist/csp-hoare/types.js.map +1 -0
- package/dist/game-theory/common-games.d.ts +50 -0
- package/dist/game-theory/common-games.d.ts.map +1 -0
- package/dist/game-theory/common-games.js +112 -0
- package/dist/game-theory/common-games.js.map +1 -0
- package/dist/game-theory/dominance.d.ts +26 -0
- package/dist/game-theory/dominance.d.ts.map +1 -0
- package/dist/game-theory/dominance.js +203 -0
- package/dist/game-theory/dominance.js.map +1 -0
- package/dist/game-theory/index.d.ts +8 -0
- package/dist/game-theory/index.d.ts.map +1 -0
- package/dist/game-theory/index.js +47 -0
- package/dist/game-theory/index.js.map +1 -0
- package/dist/game-theory/lemke-howson.d.ts +3 -0
- package/dist/game-theory/lemke-howson.d.ts.map +1 -0
- package/dist/game-theory/lemke-howson.js +269 -0
- package/dist/game-theory/lemke-howson.js.map +1 -0
- package/dist/game-theory/linalg.d.ts +7 -0
- package/dist/game-theory/linalg.d.ts.map +1 -0
- package/dist/game-theory/linalg.js +69 -0
- package/dist/game-theory/linalg.js.map +1 -0
- package/dist/game-theory/pure-nash.d.ts +3 -0
- package/dist/game-theory/pure-nash.d.ts.map +1 -0
- package/dist/game-theory/pure-nash.js +86 -0
- package/dist/game-theory/pure-nash.js.map +1 -0
- package/dist/game-theory/support-enumeration.d.ts +3 -0
- package/dist/game-theory/support-enumeration.d.ts.map +1 -0
- package/dist/game-theory/support-enumeration.js +214 -0
- package/dist/game-theory/support-enumeration.js.map +1 -0
- package/dist/game-theory/types.d.ts +57 -0
- package/dist/game-theory/types.d.ts.map +1 -0
- package/dist/game-theory/types.js +191 -0
- package/dist/game-theory/types.js.map +1 -0
- package/dist/hindley-milner/index.d.ts +7 -0
- package/dist/hindley-milner/index.d.ts.map +1 -0
- package/dist/hindley-milner/index.js +60 -0
- package/dist/hindley-milner/index.js.map +1 -0
- package/dist/hindley-milner/infer.d.ts +26 -0
- package/dist/hindley-milner/infer.d.ts.map +1 -0
- package/dist/hindley-milner/infer.js +278 -0
- package/dist/hindley-milner/infer.js.map +1 -0
- package/dist/hindley-milner/substitution.d.ts +21 -0
- package/dist/hindley-milner/substitution.d.ts.map +1 -0
- package/dist/hindley-milner/substitution.js +215 -0
- package/dist/hindley-milner/substitution.js.map +1 -0
- package/dist/hindley-milner/types.d.ts +84 -0
- package/dist/hindley-milner/types.d.ts.map +1 -0
- package/dist/hindley-milner/types.js +166 -0
- package/dist/hindley-milner/types.js.map +1 -0
- package/dist/hott/equality.d.ts +4 -0
- package/dist/hott/equality.d.ts.map +1 -0
- package/dist/hott/equality.js +108 -0
- package/dist/hott/equality.js.map +1 -0
- package/dist/hott/index.d.ts +13 -0
- package/dist/hott/index.d.ts.map +1 -0
- package/dist/hott/index.js +77 -0
- package/dist/hott/index.js.map +1 -0
- package/dist/hott/infer.d.ts +11 -0
- package/dist/hott/infer.d.ts.map +1 -0
- package/dist/hott/infer.js +465 -0
- package/dist/hott/infer.js.map +1 -0
- package/dist/hott/normalize.d.ts +5 -0
- package/dist/hott/normalize.d.ts.map +1 -0
- package/dist/hott/normalize.js +240 -0
- package/dist/hott/normalize.js.map +1 -0
- package/dist/hott/path-algebra.d.ts +25 -0
- package/dist/hott/path-algebra.d.ts.map +1 -0
- package/dist/hott/path-algebra.js +67 -0
- package/dist/hott/path-algebra.js.map +1 -0
- package/dist/hott/substitute.d.ts +3 -0
- package/dist/hott/substitute.d.ts.map +1 -0
- package/dist/hott/substitute.js +131 -0
- package/dist/hott/substitute.js.map +1 -0
- package/dist/hott/types.d.ts +126 -0
- package/dist/hott/types.d.ts.map +1 -0
- package/dist/hott/types.js +346 -0
- package/dist/hott/types.js.map +1 -0
- package/dist/index.d.ts +16 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -3
- package/dist/index.js.map +1 -1
- package/dist/information-theory/index.d.ts +29 -0
- package/dist/information-theory/index.d.ts.map +1 -0
- package/dist/information-theory/index.js +323 -0
- package/dist/information-theory/index.js.map +1 -0
- package/dist/lemma-synthesis/index.d.ts +124 -0
- package/dist/lemma-synthesis/index.d.ts.map +1 -0
- package/dist/lemma-synthesis/index.js +640 -0
- package/dist/lemma-synthesis/index.js.map +1 -0
- package/dist/namespaces/logic.d.ts +42 -0
- package/dist/namespaces/logic.d.ts.map +1 -0
- package/dist/namespaces/logic.js +112 -0
- package/dist/namespaces/logic.js.map +1 -0
- package/dist/namespaces/proof-systems.d.ts +18 -0
- package/dist/namespaces/proof-systems.d.ts.map +1 -0
- package/dist/namespaces/proof-systems.js +59 -0
- package/dist/namespaces/proof-systems.js.map +1 -0
- package/dist/namespaces/reasoning.d.ts +26 -0
- package/dist/namespaces/reasoning.d.ts.map +1 -0
- package/dist/namespaces/reasoning.js +72 -0
- package/dist/namespaces/reasoning.js.map +1 -0
- package/dist/namespaces/semantics.d.ts +21 -0
- package/dist/namespaces/semantics.d.ts.map +1 -0
- package/dist/namespaces/semantics.js +64 -0
- package/dist/namespaces/semantics.js.map +1 -0
- package/dist/namespaces/solvers.d.ts +22 -0
- package/dist/namespaces/solvers.d.ts.map +1 -0
- package/dist/namespaces/solvers.js +66 -0
- package/dist/namespaces/solvers.js.map +1 -0
- package/dist/namespaces/type-theory.d.ts +22 -0
- package/dist/namespaces/type-theory.d.ts.map +1 -0
- package/dist/namespaces/type-theory.js +65 -0
- package/dist/namespaces/type-theory.js.map +1 -0
- package/dist/optimization/branch-and-bound.d.ts +11 -0
- package/dist/optimization/branch-and-bound.d.ts.map +1 -0
- package/dist/optimization/branch-and-bound.js +311 -0
- package/dist/optimization/branch-and-bound.js.map +1 -0
- package/dist/optimization/index.d.ts +5 -0
- package/dist/optimization/index.d.ts.map +1 -0
- package/dist/optimization/index.js +20 -0
- package/dist/optimization/index.js.map +1 -0
- package/dist/optimization/simplex.d.ts +8 -0
- package/dist/optimization/simplex.d.ts.map +1 -0
- package/dist/optimization/simplex.js +408 -0
- package/dist/optimization/simplex.js.map +1 -0
- package/dist/optimization/standard-form.d.ts +11 -0
- package/dist/optimization/standard-form.d.ts.map +1 -0
- package/dist/optimization/standard-form.js +112 -0
- package/dist/optimization/standard-form.js.map +1 -0
- package/dist/optimization/types.d.ts +44 -0
- package/dist/optimization/types.d.ts.map +1 -0
- package/dist/optimization/types.js +15 -0
- package/dist/optimization/types.js.map +1 -0
- package/dist/profiles/hol/connectives.d.ts +46 -0
- package/dist/profiles/hol/connectives.d.ts.map +1 -0
- package/dist/profiles/hol/connectives.js +104 -0
- package/dist/profiles/hol/connectives.js.map +1 -0
- package/dist/profiles/hol/index.d.ts +7 -0
- package/dist/profiles/hol/index.d.ts.map +1 -0
- package/dist/profiles/hol/index.js +77 -0
- package/dist/profiles/hol/index.js.map +1 -0
- package/dist/profiles/hol/rules.d.ts +31 -0
- package/dist/profiles/hol/rules.d.ts.map +1 -0
- package/dist/profiles/hol/rules.js +258 -0
- package/dist/profiles/hol/rules.js.map +1 -0
- package/dist/profiles/hol/term.d.ts +52 -0
- package/dist/profiles/hol/term.d.ts.map +1 -0
- package/dist/profiles/hol/term.js +345 -0
- package/dist/profiles/hol/term.js.map +1 -0
- package/dist/profiles/hol/type-system.d.ts +38 -0
- package/dist/profiles/hol/type-system.d.ts.map +1 -0
- package/dist/profiles/hol/type-system.js +133 -0
- package/dist/profiles/hol/type-system.js.map +1 -0
- package/dist/profiles/hol/types.d.ts +59 -0
- package/dist/profiles/hol/types.d.ts.map +1 -0
- package/dist/profiles/hol/types.js +26 -0
- package/dist/profiles/hol/types.js.map +1 -0
- package/dist/smt-lib/ast.d.ts +138 -0
- package/dist/smt-lib/ast.d.ts.map +1 -0
- package/dist/smt-lib/ast.js +73 -0
- package/dist/smt-lib/ast.js.map +1 -0
- package/dist/smt-lib/emitter.d.ts +12 -0
- package/dist/smt-lib/emitter.d.ts.map +1 -0
- package/dist/smt-lib/emitter.js +174 -0
- package/dist/smt-lib/emitter.js.map +1 -0
- package/dist/smt-lib/index.d.ts +6 -0
- package/dist/smt-lib/index.d.ts.map +1 -0
- package/dist/smt-lib/index.js +31 -0
- package/dist/smt-lib/index.js.map +1 -0
- package/dist/smt-lib/parser.d.ts +13 -0
- package/dist/smt-lib/parser.d.ts.map +1 -0
- package/dist/smt-lib/parser.js +614 -0
- package/dist/smt-lib/parser.js.map +1 -0
- package/dist/smt-lib/tokenizer.d.ts +16 -0
- package/dist/smt-lib/tokenizer.d.ts.map +1 -0
- package/dist/smt-lib/tokenizer.js +234 -0
- package/dist/smt-lib/tokenizer.js.map +1 -0
- package/dist/tactic-dsl/combinators.d.ts +6 -0
- package/dist/tactic-dsl/combinators.d.ts.map +1 -0
- package/dist/tactic-dsl/combinators.js +98 -0
- package/dist/tactic-dsl/combinators.js.map +1 -0
- package/dist/tactic-dsl/index.d.ts +39 -0
- package/dist/tactic-dsl/index.d.ts.map +1 -0
- package/dist/tactic-dsl/index.js +162 -0
- package/dist/tactic-dsl/index.js.map +1 -0
- package/dist/tactic-dsl/tactics.d.ts +21 -0
- package/dist/tactic-dsl/tactics.d.ts.map +1 -0
- package/dist/tactic-dsl/tactics.js +536 -0
- package/dist/tactic-dsl/tactics.js.map +1 -0
- package/dist/tactic-dsl/types.d.ts +54 -0
- package/dist/tactic-dsl/types.d.ts.map +1 -0
- package/dist/tactic-dsl/types.js +226 -0
- package/dist/tactic-dsl/types.js.map +1 -0
- package/dist/tests/api/namespaces.test.d.ts +9 -0
- package/dist/tests/api/namespaces.test.d.ts.map +1 -0
- package/dist/tests/api/namespaces.test.js +218 -0
- package/dist/tests/api/namespaces.test.js.map +1 -0
- package/dist/tests/bdd/manager.test.d.ts +2 -0
- package/dist/tests/bdd/manager.test.d.ts.map +1 -0
- package/dist/tests/bdd/manager.test.js +472 -0
- package/dist/tests/bdd/manager.test.js.map +1 -0
- package/dist/tests/categorical/categorical.test.d.ts +2 -0
- package/dist/tests/categorical/categorical.test.d.ts.map +1 -0
- package/dist/tests/categorical/categorical.test.js +300 -0
- package/dist/tests/categorical/categorical.test.js.map +1 -0
- package/dist/tests/csp-hoare/csp-hoare.test.d.ts +2 -0
- package/dist/tests/csp-hoare/csp-hoare.test.d.ts.map +1 -0
- package/dist/tests/csp-hoare/csp-hoare.test.js +313 -0
- package/dist/tests/csp-hoare/csp-hoare.test.js.map +1 -0
- package/dist/tests/game-theory/game-theory.test.d.ts +2 -0
- package/dist/tests/game-theory/game-theory.test.d.ts.map +1 -0
- package/dist/tests/game-theory/game-theory.test.js +252 -0
- package/dist/tests/game-theory/game-theory.test.js.map +1 -0
- package/dist/tests/hindley-milner/hindley-milner.test.d.ts +2 -0
- package/dist/tests/hindley-milner/hindley-milner.test.d.ts.map +1 -0
- package/dist/tests/hindley-milner/hindley-milner.test.js +327 -0
- package/dist/tests/hindley-milner/hindley-milner.test.js.map +1 -0
- package/dist/tests/hol/hol.test.d.ts +2 -0
- package/dist/tests/hol/hol.test.d.ts.map +1 -0
- package/dist/tests/hol/hol.test.js +340 -0
- package/dist/tests/hol/hol.test.js.map +1 -0
- package/dist/tests/hott/hott.test.d.ts +2 -0
- package/dist/tests/hott/hott.test.d.ts.map +1 -0
- package/dist/tests/hott/hott.test.js +271 -0
- package/dist/tests/hott/hott.test.js.map +1 -0
- package/dist/tests/information-theory/information-theory.test.d.ts +2 -0
- package/dist/tests/information-theory/information-theory.test.d.ts.map +1 -0
- package/dist/tests/information-theory/information-theory.test.js +291 -0
- package/dist/tests/information-theory/information-theory.test.js.map +1 -0
- package/dist/tests/lemma-synthesis/lemma-synthesis.test.d.ts +2 -0
- package/dist/tests/lemma-synthesis/lemma-synthesis.test.d.ts.map +1 -0
- package/dist/tests/lemma-synthesis/lemma-synthesis.test.js +460 -0
- package/dist/tests/lemma-synthesis/lemma-synthesis.test.js.map +1 -0
- package/dist/tests/optimization/ilp.test.d.ts +2 -0
- package/dist/tests/optimization/ilp.test.d.ts.map +1 -0
- package/dist/tests/optimization/ilp.test.js +204 -0
- package/dist/tests/optimization/ilp.test.js.map +1 -0
- package/dist/tests/optimization/lp.test.d.ts +2 -0
- package/dist/tests/optimization/lp.test.d.ts.map +1 -0
- package/dist/tests/optimization/lp.test.js +224 -0
- package/dist/tests/optimization/lp.test.js.map +1 -0
- package/dist/tests/properties/agm.property.test.d.ts +2 -0
- package/dist/tests/properties/agm.property.test.d.ts.map +1 -0
- package/dist/tests/properties/agm.property.test.js +75 -0
- package/dist/tests/properties/agm.property.test.js.map +1 -0
- package/dist/tests/properties/anti-unification.property.test.d.ts +2 -0
- package/dist/tests/properties/anti-unification.property.test.d.ts.map +1 -0
- package/dist/tests/properties/anti-unification.property.test.js +43 -0
- package/dist/tests/properties/anti-unification.property.test.js.map +1 -0
- package/dist/tests/properties/argumentation.property.test.d.ts +2 -0
- package/dist/tests/properties/argumentation.property.test.d.ts.map +1 -0
- package/dist/tests/properties/argumentation.property.test.js +51 -0
- package/dist/tests/properties/argumentation.property.test.js.map +1 -0
- package/dist/tests/properties/bayesian.property.test.d.ts +2 -0
- package/dist/tests/properties/bayesian.property.test.d.ts.map +1 -0
- package/dist/tests/properties/bayesian.property.test.js +32 -0
- package/dist/tests/properties/bayesian.property.test.js.map +1 -0
- package/dist/tests/properties/bisimulation.property.test.d.ts +2 -0
- package/dist/tests/properties/bisimulation.property.test.d.ts.map +1 -0
- package/dist/tests/properties/bisimulation.property.test.js +50 -0
- package/dist/tests/properties/bisimulation.property.test.js.map +1 -0
- package/dist/tests/properties/cdcl.property.test.d.ts +2 -0
- package/dist/tests/properties/cdcl.property.test.d.ts.map +1 -0
- package/dist/tests/properties/cdcl.property.test.js +70 -0
- package/dist/tests/properties/cdcl.property.test.js.map +1 -0
- package/dist/tests/properties/coinduction.property.test.d.ts +2 -0
- package/dist/tests/properties/coinduction.property.test.d.ts.map +1 -0
- package/dist/tests/properties/coinduction.property.test.js +34 -0
- package/dist/tests/properties/coinduction.property.test.js.map +1 -0
- package/dist/tests/properties/constructive-reals.property.test.d.ts +2 -0
- package/dist/tests/properties/constructive-reals.property.test.d.ts.map +1 -0
- package/dist/tests/properties/constructive-reals.property.test.js +59 -0
- package/dist/tests/properties/constructive-reals.property.test.js.map +1 -0
- package/dist/tests/properties/csp.property.test.d.ts +2 -0
- package/dist/tests/properties/csp.property.test.d.ts.map +1 -0
- package/dist/tests/properties/csp.property.test.js +58 -0
- package/dist/tests/properties/csp.property.test.js.map +1 -0
- package/dist/tests/properties/generators.d.ts +78 -0
- package/dist/tests/properties/generators.d.ts.map +1 -0
- package/dist/tests/properties/generators.js +348 -0
- package/dist/tests/properties/generators.js.map +1 -0
- package/dist/tests/properties/ho-unify.property.test.d.ts +2 -0
- package/dist/tests/properties/ho-unify.property.test.d.ts.map +1 -0
- package/dist/tests/properties/ho-unify.property.test.js +46 -0
- package/dist/tests/properties/ho-unify.property.test.js.map +1 -0
- package/dist/tests/properties/hyperreal.property.test.d.ts +2 -0
- package/dist/tests/properties/hyperreal.property.test.d.ts.map +1 -0
- package/dist/tests/properties/hyperreal.property.test.js +33 -0
- package/dist/tests/properties/hyperreal.property.test.js.map +1 -0
- package/dist/tests/properties/intuit-nj.property.test.d.ts +2 -0
- package/dist/tests/properties/intuit-nj.property.test.d.ts.map +1 -0
- package/dist/tests/properties/intuit-nj.property.test.js +57 -0
- package/dist/tests/properties/intuit-nj.property.test.js.map +1 -0
- package/dist/tests/properties/lambda-calc.property.test.d.ts +2 -0
- package/dist/tests/properties/lambda-calc.property.test.d.ts.map +1 -0
- package/dist/tests/properties/lambda-calc.property.test.js +35 -0
- package/dist/tests/properties/lambda-calc.property.test.js.map +1 -0
- package/dist/tests/properties/mln.property.test.d.ts +2 -0
- package/dist/tests/properties/mln.property.test.d.ts.map +1 -0
- package/dist/tests/properties/mln.property.test.js +41 -0
- package/dist/tests/properties/mln.property.test.js.map +1 -0
- package/dist/tests/properties/mltt.property.test.d.ts +2 -0
- package/dist/tests/properties/mltt.property.test.d.ts.map +1 -0
- package/dist/tests/properties/mltt.property.test.js +33 -0
- package/dist/tests/properties/mltt.property.test.js.map +1 -0
- package/dist/tests/properties/nbe.property.test.d.ts +2 -0
- package/dist/tests/properties/nbe.property.test.d.ts.map +1 -0
- package/dist/tests/properties/nbe.property.test.js +44 -0
- package/dist/tests/properties/nbe.property.test.js.map +1 -0
- package/dist/tests/properties/planning.property.test.d.ts +2 -0
- package/dist/tests/properties/planning.property.test.d.ts.map +1 -0
- package/dist/tests/properties/planning.property.test.js +51 -0
- package/dist/tests/properties/planning.property.test.js.map +1 -0
- package/dist/tests/properties/profile-bridge.property.test.d.ts +2 -0
- package/dist/tests/properties/profile-bridge.property.test.d.ts.map +1 -0
- package/dist/tests/properties/profile-bridge.property.test.js +71 -0
- package/dist/tests/properties/profile-bridge.property.test.js.map +1 -0
- package/dist/tests/properties/refinement-types.property.test.d.ts +2 -0
- package/dist/tests/properties/refinement-types.property.test.d.ts.map +1 -0
- package/dist/tests/properties/refinement-types.property.test.js +37 -0
- package/dist/tests/properties/refinement-types.property.test.js.map +1 -0
- package/dist/tests/properties/sequent-g3.property.test.d.ts +2 -0
- package/dist/tests/properties/sequent-g3.property.test.d.ts.map +1 -0
- package/dist/tests/properties/sequent-g3.property.test.js +34 -0
- package/dist/tests/properties/sequent-g3.property.test.js.map +1 -0
- package/dist/tests/properties/symbolic-diff.property.test.d.ts +2 -0
- package/dist/tests/properties/symbolic-diff.property.test.d.ts.map +1 -0
- package/dist/tests/properties/symbolic-diff.property.test.js +49 -0
- package/dist/tests/properties/symbolic-diff.property.test.js.map +1 -0
- package/dist/tests/properties/system-f.property.test.d.ts +2 -0
- package/dist/tests/properties/system-f.property.test.d.ts.map +1 -0
- package/dist/tests/properties/system-f.property.test.js +37 -0
- package/dist/tests/properties/system-f.property.test.js.map +1 -0
- package/dist/tests/properties/theorem-cache.property.test.d.ts +2 -0
- package/dist/tests/properties/theorem-cache.property.test.d.ts.map +1 -0
- package/dist/tests/properties/theorem-cache.property.test.js +38 -0
- package/dist/tests/properties/theorem-cache.property.test.js.map +1 -0
- package/dist/tests/properties/trs.property.test.d.ts +2 -0
- package/dist/tests/properties/trs.property.test.d.ts.map +1 -0
- package/dist/tests/properties/trs.property.test.js +34 -0
- package/dist/tests/properties/trs.property.test.js.map +1 -0
- package/dist/tests/properties/unification.property.test.d.ts +2 -0
- package/dist/tests/properties/unification.property.test.d.ts.map +1 -0
- package/dist/tests/properties/unification.property.test.js +42 -0
- package/dist/tests/properties/unification.property.test.js.map +1 -0
- package/dist/tests/smt-lib/emitter.test.d.ts +2 -0
- package/dist/tests/smt-lib/emitter.test.d.ts.map +1 -0
- package/dist/tests/smt-lib/emitter.test.js +155 -0
- package/dist/tests/smt-lib/emitter.test.js.map +1 -0
- package/dist/tests/smt-lib/parser.test.d.ts +2 -0
- package/dist/tests/smt-lib/parser.test.d.ts.map +1 -0
- package/dist/tests/smt-lib/parser.test.js +164 -0
- package/dist/tests/smt-lib/parser.test.js.map +1 -0
- package/dist/tests/smt-lib/tokenizer.test.d.ts +2 -0
- package/dist/tests/smt-lib/tokenizer.test.d.ts.map +1 -0
- package/dist/tests/smt-lib/tokenizer.test.js +59 -0
- package/dist/tests/smt-lib/tokenizer.test.js.map +1 -0
- package/dist/tests/tactic-dsl/tactic-dsl.test.d.ts +2 -0
- package/dist/tests/tactic-dsl/tactic-dsl.test.d.ts.map +1 -0
- package/dist/tests/tactic-dsl/tactic-dsl.test.js +259 -0
- package/dist/tests/tactic-dsl/tactic-dsl.test.js.map +1 -0
- package/dist/tests/tptp/bridge.test.d.ts +2 -0
- package/dist/tests/tptp/bridge.test.d.ts.map +1 -0
- package/dist/tests/tptp/bridge.test.js +154 -0
- package/dist/tests/tptp/bridge.test.js.map +1 -0
- package/dist/tests/tptp/emitter.test.d.ts +2 -0
- package/dist/tests/tptp/emitter.test.d.ts.map +1 -0
- package/dist/tests/tptp/emitter.test.js +128 -0
- package/dist/tests/tptp/emitter.test.js.map +1 -0
- package/dist/tests/tptp/parser.test.d.ts +2 -0
- package/dist/tests/tptp/parser.test.d.ts.map +1 -0
- package/dist/tests/tptp/parser.test.js +192 -0
- package/dist/tests/tptp/parser.test.js.map +1 -0
- package/dist/tests/tptp/tokenizer.test.d.ts +2 -0
- package/dist/tests/tptp/tokenizer.test.d.ts.map +1 -0
- package/dist/tests/tptp/tokenizer.test.js +60 -0
- package/dist/tests/tptp/tokenizer.test.js.map +1 -0
- package/dist/tptp/ast.d.ts +73 -0
- package/dist/tptp/ast.d.ts.map +1 -0
- package/dist/tptp/ast.js +35 -0
- package/dist/tptp/ast.js.map +1 -0
- package/dist/tptp/bridge.d.ts +14 -0
- package/dist/tptp/bridge.d.ts.map +1 -0
- package/dist/tptp/bridge.js +146 -0
- package/dist/tptp/bridge.js.map +1 -0
- package/dist/tptp/emitter.d.ts +5 -0
- package/dist/tptp/emitter.d.ts.map +1 -0
- package/dist/tptp/emitter.js +103 -0
- package/dist/tptp/emitter.js.map +1 -0
- package/dist/tptp/index.d.ts +7 -0
- package/dist/tptp/index.d.ts.map +1 -0
- package/dist/tptp/index.js +31 -0
- package/dist/tptp/index.js.map +1 -0
- package/dist/tptp/parser.d.ts +23 -0
- package/dist/tptp/parser.d.ts.map +1 -0
- package/dist/tptp/parser.js +440 -0
- package/dist/tptp/parser.js.map +1 -0
- package/dist/tptp/tokenizer.d.ts +14 -0
- package/dist/tptp/tokenizer.d.ts.map +1 -0
- package/dist/tptp/tokenizer.js +264 -0
- package/dist/tptp/tokenizer.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Property-based testing — Generators compartidos
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Generadores de fast-check para ASTs y estructuras que se
|
|
7
|
+
// usan en múltiples properties. Centralizamos acá para que
|
|
8
|
+
// los tests individuales se mantengan compactos.
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.fc = exports.refTypeIntSimple = exports.hyperrealArb = exports.tinyAF = exports.beliefSetAndFormula = exports.tinyLTS = exports.tinyBayesNet = exports.symExprSafe = exports.symExpr = exports.mlttSimpleTerm = exports.fTermSimple = exports.lamTerm = exports.hoPatternTerm = exports.trsClosedTerm = exports.trsTerm = exports.auTerm = exports.dimacs3SAT = exports.propFormula = exports.constName = exports.funcName = exports.varName = exports.atomName = void 0;
|
|
44
|
+
const fc = __importStar(require("fast-check"));
|
|
45
|
+
exports.fc = fc;
|
|
46
|
+
// ============================================================
|
|
47
|
+
// Identifiers / símbolos
|
|
48
|
+
// ============================================================
|
|
49
|
+
const atomName = () => fc.constantFrom('p', 'q', 'r', 's', 't', 'a', 'b', 'c');
|
|
50
|
+
exports.atomName = atomName;
|
|
51
|
+
const varName = () => fc.constantFrom('x', 'y', 'z', 'u', 'v', 'w');
|
|
52
|
+
exports.varName = varName;
|
|
53
|
+
const funcName = () => fc.constantFrom('f', 'g', 'h', 'k');
|
|
54
|
+
exports.funcName = funcName;
|
|
55
|
+
const constName = () => fc.constantFrom('A', 'B', 'C', 'D', 'E');
|
|
56
|
+
exports.constName = constName;
|
|
57
|
+
// ============================================================
|
|
58
|
+
// Fórmulas proposicionales clásicas (AST de `types.ts`)
|
|
59
|
+
// ============================================================
|
|
60
|
+
const propAtom = () => (0, exports.atomName)().map((name) => ({ kind: 'atom', name }));
|
|
61
|
+
const propFormula = (maxDepth = 3) => {
|
|
62
|
+
const { formula } = fc.letrec((tie) => ({
|
|
63
|
+
formula: fc.oneof({ maxDepth, depthIdentifier: 'prop' }, propAtom(), tie('formula').map((arg) => ({ kind: 'not', args: [arg] })), fc.tuple(tie('formula'), tie('formula')).map(([l, r]) => ({ kind: 'and', args: [l, r] })), fc.tuple(tie('formula'), tie('formula')).map(([l, r]) => ({ kind: 'or', args: [l, r] })), fc.tuple(tie('formula'), tie('formula')).map(([l, r]) => ({ kind: 'implies', args: [l, r] }))),
|
|
64
|
+
}));
|
|
65
|
+
return formula;
|
|
66
|
+
};
|
|
67
|
+
exports.propFormula = propFormula;
|
|
68
|
+
// ============================================================
|
|
69
|
+
// Cláusulas DIMACS (3-SAT random)
|
|
70
|
+
// ============================================================
|
|
71
|
+
/**
|
|
72
|
+
* Genera una instancia 3-SAT pequeña: numVars en [3, maxVars],
|
|
73
|
+
* y cantidad de cláusulas hasta `ratio * numVars`. Cada cláusula
|
|
74
|
+
* tiene 3 literales (con repetición permitida pero forzando que
|
|
75
|
+
* ningún literal y su negación coexistan en la misma cláusula —
|
|
76
|
+
* evitamos cláusulas trivialmente true por tautología).
|
|
77
|
+
*/
|
|
78
|
+
const dimacs3SAT = (maxVars = 8, maxRatio = 4) => fc
|
|
79
|
+
.integer({ min: 3, max: maxVars })
|
|
80
|
+
.chain((numVars) => fc
|
|
81
|
+
.integer({ min: 1, max: Math.max(1, Math.floor(maxRatio * numVars)) })
|
|
82
|
+
.chain((numClauses) => fc
|
|
83
|
+
.array(fc
|
|
84
|
+
.tuple(fc.integer({ min: 1, max: numVars }), fc.boolean(), fc.integer({ min: 1, max: numVars }), fc.boolean(), fc.integer({ min: 1, max: numVars }), fc.boolean())
|
|
85
|
+
.map(([v1, s1, v2, s2, v3, s3]) => {
|
|
86
|
+
const l1 = s1 ? v1 : -v1;
|
|
87
|
+
const l2 = s2 ? v2 : -v2;
|
|
88
|
+
const l3 = s3 ? v3 : -v3;
|
|
89
|
+
// Evitar literal+su-negación en misma cláusula (tautología).
|
|
90
|
+
// Si ocurre, forzamos la misma polaridad.
|
|
91
|
+
const lits = [l1, l2, l3];
|
|
92
|
+
return new Int32Array(lits);
|
|
93
|
+
}), { minLength: numClauses, maxLength: numClauses })
|
|
94
|
+
.map((clauses) => ({ clauses, numVars }))));
|
|
95
|
+
exports.dimacs3SAT = dimacs3SAT;
|
|
96
|
+
// ============================================================
|
|
97
|
+
// Términos de primer orden para anti-unification / TRS
|
|
98
|
+
// ============================================================
|
|
99
|
+
/** Term del módulo anti-unification (admite `const`). */
|
|
100
|
+
const auTerm = (maxDepth = 3) => {
|
|
101
|
+
const { term } = fc.letrec((tie) => ({
|
|
102
|
+
term: fc.oneof({ maxDepth, depthIdentifier: 'au' }, (0, exports.varName)().map((name) => ({ kind: 'var', name })), (0, exports.constName)().map((name) => ({ kind: 'const', name })), fc
|
|
103
|
+
.tuple((0, exports.funcName)(), fc.array(tie('term'), { minLength: 1, maxLength: 3 }))
|
|
104
|
+
.map(([name, args]) => ({ kind: 'func', name, args: args }))),
|
|
105
|
+
}));
|
|
106
|
+
return term;
|
|
107
|
+
};
|
|
108
|
+
exports.auTerm = auTerm;
|
|
109
|
+
/** Term del módulo term-rewriting (sin `const`; usa `func` con []). */
|
|
110
|
+
const trsTerm = (maxDepth = 3) => {
|
|
111
|
+
const { term } = fc.letrec((tie) => ({
|
|
112
|
+
term: fc.oneof({ maxDepth, depthIdentifier: 'trs' }, (0, exports.varName)().map((name) => ({ kind: 'var', name })), (0, exports.constName)().map((name) => ({ kind: 'func', name, args: [] })), fc
|
|
113
|
+
.tuple((0, exports.funcName)(), fc.array(tie('term'), { minLength: 1, maxLength: 3 }))
|
|
114
|
+
.map(([name, args]) => ({ kind: 'func', name, args: args }))),
|
|
115
|
+
}));
|
|
116
|
+
return term;
|
|
117
|
+
};
|
|
118
|
+
exports.trsTerm = trsTerm;
|
|
119
|
+
/** Term sin variables (closed) — útil para que las reglas TRS produzcan
|
|
120
|
+
* reductos completos. */
|
|
121
|
+
const trsClosedTerm = (maxDepth = 3) => {
|
|
122
|
+
const { term } = fc.letrec((tie) => ({
|
|
123
|
+
term: fc.oneof({ maxDepth, depthIdentifier: 'trsC' }, (0, exports.constName)().map((name) => ({ kind: 'func', name, args: [] })), fc
|
|
124
|
+
.tuple((0, exports.funcName)(), fc.array(tie('term'), { minLength: 1, maxLength: 2 }))
|
|
125
|
+
.map(([name, args]) => ({ kind: 'func', name, args: args }))),
|
|
126
|
+
}));
|
|
127
|
+
return term;
|
|
128
|
+
};
|
|
129
|
+
exports.trsClosedTerm = trsClosedTerm;
|
|
130
|
+
// ============================================================
|
|
131
|
+
// HO Terms (Miller patterns)
|
|
132
|
+
// ============================================================
|
|
133
|
+
const metaName = () => fc.constantFrom('M', 'N', 'P', 'Q');
|
|
134
|
+
/**
|
|
135
|
+
* Genera un término HO de la "forma patrón" (Miller): meta-vars
|
|
136
|
+
* aparecen aplicadas únicamente a variables ligadas distintas.
|
|
137
|
+
* Construye términos del tipo λx.λy. M x y, var x, etc.
|
|
138
|
+
*/
|
|
139
|
+
const hoPatternTerm = (maxDepth = 3) => {
|
|
140
|
+
// Generamos un λ-spine con boundVars distintos, luego el cuerpo:
|
|
141
|
+
// variables ligadas o meta aplicada a un subconjunto de boundVars.
|
|
142
|
+
return fc
|
|
143
|
+
.uniqueArray((0, exports.varName)(), { minLength: 0, maxLength: 3 })
|
|
144
|
+
.chain((bvs) => {
|
|
145
|
+
const bodyArb = fc.oneof(
|
|
146
|
+
// var libre o ligada
|
|
147
|
+
(0, exports.varName)().map((n) => ({ kind: 'var', name: n })),
|
|
148
|
+
// var ligada del scope (si hay)
|
|
149
|
+
...(bvs.length > 0
|
|
150
|
+
? [
|
|
151
|
+
fc
|
|
152
|
+
.constantFrom(...bvs)
|
|
153
|
+
.map((n) => ({ kind: 'var', name: n })),
|
|
154
|
+
]
|
|
155
|
+
: []),
|
|
156
|
+
// meta aplicada a vars ligadas distintas
|
|
157
|
+
...(bvs.length > 0
|
|
158
|
+
? [
|
|
159
|
+
fc.tuple(metaName(), fc
|
|
160
|
+
.shuffledSubarray(bvs, { minLength: 1, maxLength: bvs.length })
|
|
161
|
+
.map((sub) => sub.map((n) => ({ kind: 'var', name: n })))).map(([m, args]) => ({
|
|
162
|
+
kind: 'app',
|
|
163
|
+
fn: { kind: 'meta', name: m },
|
|
164
|
+
args: args,
|
|
165
|
+
})),
|
|
166
|
+
]
|
|
167
|
+
: [metaName().map((m) => ({ kind: 'meta', name: m }))]));
|
|
168
|
+
// Envolvemos en λ-spine.
|
|
169
|
+
return bodyArb.map((body) => {
|
|
170
|
+
let t = body;
|
|
171
|
+
for (let i = bvs.length - 1; i >= 0; i--) {
|
|
172
|
+
t = { kind: 'abs', param: bvs[i], body: t };
|
|
173
|
+
}
|
|
174
|
+
return t;
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
exports.hoPatternTerm = hoPatternTerm;
|
|
179
|
+
// ============================================================
|
|
180
|
+
// Lambda calc untyped term
|
|
181
|
+
// ============================================================
|
|
182
|
+
const lamTerm = (maxDepth = 3) => {
|
|
183
|
+
const { term } = fc.letrec((tie) => ({
|
|
184
|
+
term: fc.oneof({ maxDepth, depthIdentifier: 'lam' }, (0, exports.varName)().map((n) => ({ kind: 'var', name: n })), fc
|
|
185
|
+
.tuple((0, exports.varName)(), tie('term'))
|
|
186
|
+
.map(([param, body]) => ({ kind: 'abs', param, body: body })), fc
|
|
187
|
+
.tuple(tie('term'), tie('term'))
|
|
188
|
+
.map(([fn, arg]) => ({ kind: 'app', fn: fn, arg: arg }))),
|
|
189
|
+
}));
|
|
190
|
+
return term;
|
|
191
|
+
};
|
|
192
|
+
exports.lamTerm = lamTerm;
|
|
193
|
+
// ============================================================
|
|
194
|
+
// System F well-typed terms (sub-fragmento controlado)
|
|
195
|
+
// ============================================================
|
|
196
|
+
// Generamos λ²-terms cerrados, simplemente tipados, sin ∀.
|
|
197
|
+
// Foco: identidad, aplicación, abstracción anidada.
|
|
198
|
+
const fTermSimple = () => {
|
|
199
|
+
// Generamos un tipo simple A → A o A → (A → A).
|
|
200
|
+
const atomType = fc.constantFrom({ kind: 'atom', name: 'A' }, { kind: 'atom', name: 'B' });
|
|
201
|
+
const arrowType = fc
|
|
202
|
+
.tuple(atomType, atomType)
|
|
203
|
+
.map(([from, to]) => ({ kind: 'arrow', from, to }));
|
|
204
|
+
// Genera la identidad λx:T. x para T en {A, B, A→A, A→B}.
|
|
205
|
+
return fc.oneof(atomType, arrowType).chain((t) => {
|
|
206
|
+
const idTerm = {
|
|
207
|
+
kind: 'abs',
|
|
208
|
+
param: 'x',
|
|
209
|
+
paramType: t,
|
|
210
|
+
body: { kind: 'var', name: 'x' },
|
|
211
|
+
};
|
|
212
|
+
return fc.constant({
|
|
213
|
+
term: idTerm,
|
|
214
|
+
type: { kind: 'arrow', from: t, to: t },
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
exports.fTermSimple = fTermSimple;
|
|
219
|
+
// ============================================================
|
|
220
|
+
// MLTT well-typed terms básicos
|
|
221
|
+
// ============================================================
|
|
222
|
+
const mlttSimpleTerm = () => fc.oneof(fc.constant({ kind: 'zero' }), fc.constant({ kind: 'nat' }), fc.integer({ min: 0, max: 5 }).map((n) => {
|
|
223
|
+
let t = { kind: 'zero' };
|
|
224
|
+
for (let i = 0; i < n; i++)
|
|
225
|
+
t = { kind: 'succ', arg: t };
|
|
226
|
+
return t;
|
|
227
|
+
}), fc.integer({ min: 0, max: 3 }).map((lvl) => ({ kind: 'universe', level: lvl })));
|
|
228
|
+
exports.mlttSimpleTerm = mlttSimpleTerm;
|
|
229
|
+
// ============================================================
|
|
230
|
+
// Symbolic-diff expressions
|
|
231
|
+
// ============================================================
|
|
232
|
+
const symExpr = (maxDepth = 3) => {
|
|
233
|
+
const { expr } = fc.letrec((tie) => ({
|
|
234
|
+
expr: fc.oneof({ maxDepth, depthIdentifier: 'sym' }, fc
|
|
235
|
+
.integer({ min: -5, max: 5 })
|
|
236
|
+
.map((v) => ({ kind: 'const', value: v })), fc.constantFrom('x', 'y').map((name) => ({ kind: 'var', name })), fc
|
|
237
|
+
.tuple(tie('expr'), tie('expr'))
|
|
238
|
+
.map(([a, b]) => ({ kind: 'add', args: [a, b] })), fc
|
|
239
|
+
.tuple(tie('expr'), tie('expr'))
|
|
240
|
+
.map(([a, b]) => ({ kind: 'mul', args: [a, b] })), fc
|
|
241
|
+
.tuple(tie('expr'), tie('expr'))
|
|
242
|
+
.map(([l, r]) => ({ kind: 'sub', left: l, right: r })),
|
|
243
|
+
// Potencias enteras pequeñas para evitar números absurdos.
|
|
244
|
+
fc
|
|
245
|
+
.tuple(tie('expr'), fc.integer({ min: 0, max: 3 }))
|
|
246
|
+
.map(([base, n]) => ({
|
|
247
|
+
kind: 'pow',
|
|
248
|
+
base: base,
|
|
249
|
+
exp: { kind: 'const', value: n },
|
|
250
|
+
}))),
|
|
251
|
+
}));
|
|
252
|
+
return expr;
|
|
253
|
+
};
|
|
254
|
+
exports.symExpr = symExpr;
|
|
255
|
+
/** Versión "segura" (sin div ni log/exp con base inestable) — derivable
|
|
256
|
+
* numéricamente con diferencias finitas. */
|
|
257
|
+
exports.symExprSafe = exports.symExpr;
|
|
258
|
+
// ============================================================
|
|
259
|
+
// Bayesian networks (chain network mini)
|
|
260
|
+
// ============================================================
|
|
261
|
+
/** Genera una red bayesiana de cadena A → B → C con valores binarios. */
|
|
262
|
+
const tinyBayesNet = () => fc
|
|
263
|
+
.tuple(fc.double({ min: 0.05, max: 0.95, noNaN: true }), fc.double({ min: 0.05, max: 0.95, noNaN: true }), fc.double({ min: 0.05, max: 0.95, noNaN: true }), fc.double({ min: 0.05, max: 0.95, noNaN: true }), fc.double({ min: 0.05, max: 0.95, noNaN: true }))
|
|
264
|
+
.map(([pA, pBT, pBF, pCT, pCF]) => {
|
|
265
|
+
const variables = [
|
|
266
|
+
{ name: 'A', values: ['T', 'F'] },
|
|
267
|
+
{ name: 'B', values: ['T', 'F'] },
|
|
268
|
+
{ name: 'C', values: ['T', 'F'] },
|
|
269
|
+
];
|
|
270
|
+
const cpts = [
|
|
271
|
+
{
|
|
272
|
+
variable: 'A',
|
|
273
|
+
parents: [],
|
|
274
|
+
entries: { '': { T: pA, F: 1 - pA } },
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
variable: 'B',
|
|
278
|
+
parents: ['A'],
|
|
279
|
+
entries: {
|
|
280
|
+
'A=T': { T: pBT, F: 1 - pBT },
|
|
281
|
+
'A=F': { T: pBF, F: 1 - pBF },
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
variable: 'C',
|
|
286
|
+
parents: ['B'],
|
|
287
|
+
entries: {
|
|
288
|
+
'B=T': { T: pCT, F: 1 - pCT },
|
|
289
|
+
'B=F': { T: pCF, F: 1 - pCF },
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
];
|
|
293
|
+
return { variables, cpts };
|
|
294
|
+
});
|
|
295
|
+
exports.tinyBayesNet = tinyBayesNet;
|
|
296
|
+
// ============================================================
|
|
297
|
+
// LTS pequeño (states + transitions etiquetados)
|
|
298
|
+
// ============================================================
|
|
299
|
+
const tinyLTS = () => fc
|
|
300
|
+
.integer({ min: 1, max: 5 })
|
|
301
|
+
.chain((nStates) => fc
|
|
302
|
+
.array(fc
|
|
303
|
+
.tuple(fc.integer({ min: 0, max: nStates - 1 }), fc.constantFrom('a', 'b', 'c', 'tau'), fc.integer({ min: 0, max: nStates - 1 }))
|
|
304
|
+
.map(([i, l, j]) => [`s${i}`, l, `s${j}`]), { minLength: 0, maxLength: 12 })
|
|
305
|
+
.map((transitions) => ({
|
|
306
|
+
states: Array.from({ length: nStates }, (_, i) => `s${i}`),
|
|
307
|
+
transitions,
|
|
308
|
+
})));
|
|
309
|
+
exports.tinyLTS = tinyLTS;
|
|
310
|
+
// ============================================================
|
|
311
|
+
// AGM belief revision: belief set inicial + fórmula
|
|
312
|
+
// ============================================================
|
|
313
|
+
const propAtomString = () => fc.constantFrom('p', 'q', 'r');
|
|
314
|
+
const propLiteral = () => fc.tuple(fc.boolean(), propAtomString()).map(([neg, a]) => (neg ? `!${a}` : a));
|
|
315
|
+
const beliefSetAndFormula = () => fc
|
|
316
|
+
.tuple(fc.array(propLiteral(), { minLength: 0, maxLength: 3 }), propLiteral())
|
|
317
|
+
.map(([initial, phi]) => ({ initial, phi }));
|
|
318
|
+
exports.beliefSetAndFormula = beliefSetAndFormula;
|
|
319
|
+
// ============================================================
|
|
320
|
+
// Argumentation framework pequeño
|
|
321
|
+
// ============================================================
|
|
322
|
+
const tinyAF = () => fc
|
|
323
|
+
.integer({ min: 1, max: 5 })
|
|
324
|
+
.chain((n) => {
|
|
325
|
+
const args = Array.from({ length: n }, (_, i) => `a${i}`);
|
|
326
|
+
return fc
|
|
327
|
+
.array(fc
|
|
328
|
+
.tuple(fc.integer({ min: 0, max: n - 1 }), fc.integer({ min: 0, max: n - 1 }))
|
|
329
|
+
.map(([i, j]) => [args[i], args[j]]), { minLength: 0, maxLength: 8 })
|
|
330
|
+
.map((attacks) => ({ arguments: new Set(args), attacks }));
|
|
331
|
+
});
|
|
332
|
+
exports.tinyAF = tinyAF;
|
|
333
|
+
// ============================================================
|
|
334
|
+
// Hyperreal random
|
|
335
|
+
// ============================================================
|
|
336
|
+
const hyperrealArb = () => fc.tuple(fc.double({ min: -100, max: 100, noNaN: true, noDefaultInfinity: true }), fc.double({ min: -100, max: 100, noNaN: true, noDefaultInfinity: true })).map(([s, i]) => ({ standard: s, infinitesimal: i }));
|
|
337
|
+
exports.hyperrealArb = hyperrealArb;
|
|
338
|
+
const refTypeIntSimple = () => fc.oneof(fc.integer({ min: -20, max: 20 }).map((k) => ({
|
|
339
|
+
base: 'Int',
|
|
340
|
+
binding: 'x',
|
|
341
|
+
predicate: `x > ${k}`,
|
|
342
|
+
})), fc.integer({ min: -20, max: 20 }).map((k) => ({
|
|
343
|
+
base: 'Int',
|
|
344
|
+
binding: 'x',
|
|
345
|
+
predicate: `x >= ${k}`,
|
|
346
|
+
})), fc.constant({ base: 'Int', binding: 'x', predicate: 'true' }));
|
|
347
|
+
exports.refTypeIntSimple = refTypeIntSimple;
|
|
348
|
+
//# sourceMappingURL=generators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../src/tests/properties/generators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ho-unify.property.test.d.ts","sourceRoot":"","sources":["../../../src/tests/properties/ho-unify.property.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Property: HO-Unify (Miller patterns) — determinismo
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// ∀ patterns p, q tales que isPattern(p) ∧ isPattern(q):
|
|
7
|
+
// unifyPattern(p, q) es determinístico: llamarla dos veces
|
|
8
|
+
// produce el mismo resultado (igualdad estructural de la sub).
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const vitest_1 = require("vitest");
|
|
11
|
+
const generators_1 = require("./generators");
|
|
12
|
+
const higher_order_unify_1 = require("../../higher-order-unify");
|
|
13
|
+
(0, vitest_1.describe)('property: HO-unify Miller pattern determinism', () => {
|
|
14
|
+
(0, vitest_1.it)('unifyPattern is deterministic for patterns', () => {
|
|
15
|
+
generators_1.fc.assert(generators_1.fc.property((0, generators_1.hoPatternTerm)(3), (0, generators_1.hoPatternTerm)(3), (p, q) => {
|
|
16
|
+
if (!(0, higher_order_unify_1.isPattern)(p) || !(0, higher_order_unify_1.isPattern)(q))
|
|
17
|
+
return true; // skip — no es pattern
|
|
18
|
+
const r1 = (0, higher_order_unify_1.unifyPattern)(p, q);
|
|
19
|
+
const r2 = (0, higher_order_unify_1.unifyPattern)(p, q);
|
|
20
|
+
// Ambos null o ambos no-null con misma sub.
|
|
21
|
+
if (r1 === null && r2 === null)
|
|
22
|
+
return true;
|
|
23
|
+
if (r1 === null || r2 === null) {
|
|
24
|
+
throw new Error(`Determinismo violado: r1=${r1 === null ? 'null' : 'sub'}, r2=${r2 === null ? 'null' : 'sub'}`);
|
|
25
|
+
}
|
|
26
|
+
const keys1 = Object.keys(r1).sort();
|
|
27
|
+
const keys2 = Object.keys(r2).sort();
|
|
28
|
+
if (JSON.stringify(keys1) !== JSON.stringify(keys2)) {
|
|
29
|
+
throw new Error(`Determinismo violado: keys distintos. ${JSON.stringify(keys1)} vs ${JSON.stringify(keys2)}`);
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}), { numRuns: 100 });
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.it)('unifyPattern(t, t) is never null for any pattern', () => {
|
|
35
|
+
generators_1.fc.assert(generators_1.fc.property((0, generators_1.hoPatternTerm)(3), (t) => {
|
|
36
|
+
if (!(0, higher_order_unify_1.isPattern)(t))
|
|
37
|
+
return true;
|
|
38
|
+
const r = (0, higher_order_unify_1.unifyPattern)(t, t);
|
|
39
|
+
if (r === null) {
|
|
40
|
+
throw new Error(`unifyPattern(t, t) === null para t=${JSON.stringify(t)}`);
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}), { numRuns: 100 });
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=ho-unify.property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ho-unify.property.test.js","sourceRoot":"","sources":["../../../src/tests/properties/ho-unify.property.test.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,sDAAsD;AACtD,+DAA+D;AAC/D,EAAE;AACF,yDAAyD;AACzD,6DAA6D;AAC7D,iEAAiE;;AAEjE,mCAAsC;AACtC,6CAAiD;AACjD,iEAAmE;AAEnE,IAAA,iBAAQ,EAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CAAC,IAAA,0BAAa,EAAC,CAAC,CAAC,EAAE,IAAA,0BAAa,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,IAAI,CAAC,IAAA,8BAAS,EAAC,CAAC,CAAC,IAAI,CAAC,IAAA,8BAAS,EAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;YACxE,MAAM,EAAE,GAAG,IAAA,iCAAY,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,IAAA,iCAAY,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,4CAA4C;YAC5C,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC5C,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb,4BAA4B,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAC/F,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CAAC,IAAA,0BAAa,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,IAAA,8BAAS,EAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/B,MAAM,CAAC,GAAG,IAAA,iCAAY,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperreal.property.test.d.ts","sourceRoot":"","sources":["../../../src/tests/properties/hyperreal.property.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Property: Hyperreal — add commutativo
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// ∀ x, y Hyperreal: add(x, y) === add(y, x).
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
const vitest_1 = require("vitest");
|
|
9
|
+
const generators_1 = require("./generators");
|
|
10
|
+
const hyperreal_1 = require("../../hyperreal");
|
|
11
|
+
(0, vitest_1.describe)('property: hyperreal arithmetic', () => {
|
|
12
|
+
(0, vitest_1.it)('add is commutative', () => {
|
|
13
|
+
generators_1.fc.assert(generators_1.fc.property((0, generators_1.hyperrealArb)(), (0, generators_1.hyperrealArb)(), (x, y) => {
|
|
14
|
+
const a = (0, hyperreal_1.add)(x, y);
|
|
15
|
+
const b = (0, hyperreal_1.add)(y, x);
|
|
16
|
+
if (!(0, hyperreal_1.eq)(a, b)) {
|
|
17
|
+
throw new Error(`add no conmutativa: x=${JSON.stringify(x)}, y=${JSON.stringify(y)}, a=${JSON.stringify(a)}, b=${JSON.stringify(b)}`);
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}), { numRuns: 200 });
|
|
21
|
+
});
|
|
22
|
+
(0, vitest_1.it)('mul is commutative', () => {
|
|
23
|
+
generators_1.fc.assert(generators_1.fc.property((0, generators_1.hyperrealArb)(), (0, generators_1.hyperrealArb)(), (x, y) => {
|
|
24
|
+
const a = (0, hyperreal_1.mul)(x, y);
|
|
25
|
+
const b = (0, hyperreal_1.mul)(y, x);
|
|
26
|
+
if (!(0, hyperreal_1.eq)(a, b)) {
|
|
27
|
+
throw new Error(`mul no conmutativa: a.s=${a.standard}, b.s=${b.standard}, a.i=${a.infinitesimal}, b.i=${b.infinitesimal}`);
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}), { numRuns: 200 });
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=hyperreal.property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperreal.property.test.js","sourceRoot":"","sources":["../../../src/tests/properties/hyperreal.property.test.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;AAC/D,EAAE;AACF,8CAA8C;;AAE9C,mCAAsC;AACtC,6CAAgD;AAChD,+CAA+C;AAE/C,IAAA,iBAAQ,EAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAA,WAAE,EAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CAAC,IAAA,yBAAY,GAAE,EAAE,IAAA,yBAAY,GAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnD,MAAM,CAAC,GAAG,IAAA,eAAG,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,IAAA,eAAG,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,IAAA,cAAE,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CACrH,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CAAC,IAAA,yBAAY,GAAE,EAAE,IAAA,yBAAY,GAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnD,MAAM,CAAC,GAAG,IAAA,eAAG,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,IAAA,eAAG,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,IAAA,cAAE,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,2BAA2B,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,aAAa,SAAS,CAAC,CAAC,aAAa,EAAE,CAC3G,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intuit-nj.property.test.d.ts","sourceRoot":"","sources":["../../../src/tests/properties/intuit-nj.property.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Property: Intuitionistic NJ — intuit ⊆ classical
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// ∀ formula φ tal que proveIntuitionistically(φ) tiene éxito:
|
|
7
|
+
// classical proof también tiene éxito (proveFormula en G3
|
|
8
|
+
// debe encontrar prueba).
|
|
9
|
+
//
|
|
10
|
+
// Es decir: si φ es intuit-provable, también es clásicamente válida.
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
13
|
+
const generators_1 = require("./generators");
|
|
14
|
+
const intuitionistic_nj_1 = require("../../profiles/intuitionistic-nj");
|
|
15
|
+
const sequent_g3_1 = require("../../profiles/sequent-g3");
|
|
16
|
+
// Generador de IntuitFormula simple.
|
|
17
|
+
function intuitFormulaArb(maxDepth = 3) {
|
|
18
|
+
const { f } = generators_1.fc.letrec((tie) => ({
|
|
19
|
+
f: generators_1.fc.oneof({ maxDepth, depthIdentifier: 'i' }, generators_1.fc.constantFrom('p', 'q', 'r').map((n) => (0, intuitionistic_nj_1.atom)(n)), tie('f').map((arg) => (0, intuitionistic_nj_1.not)(arg)), generators_1.fc.tuple(tie('f'), tie('f')).map(([l, r]) => (0, intuitionistic_nj_1.and)(l, r)), generators_1.fc.tuple(tie('f'), tie('f')).map(([l, r]) => (0, intuitionistic_nj_1.or)(l, r)), generators_1.fc.tuple(tie('f'), tie('f')).map(([l, r]) => (0, intuitionistic_nj_1.implies)(l, r))),
|
|
20
|
+
}));
|
|
21
|
+
return f;
|
|
22
|
+
}
|
|
23
|
+
// Convierte IntuitFormula al Formula clásico de `types/index.ts`.
|
|
24
|
+
function intuitToClassical(phi) {
|
|
25
|
+
switch (phi.kind) {
|
|
26
|
+
case 'atom':
|
|
27
|
+
return { kind: 'atom', name: phi.name };
|
|
28
|
+
case 'and':
|
|
29
|
+
return { kind: 'and', args: [intuitToClassical(phi.left), intuitToClassical(phi.right)] };
|
|
30
|
+
case 'or':
|
|
31
|
+
return { kind: 'or', args: [intuitToClassical(phi.left), intuitToClassical(phi.right)] };
|
|
32
|
+
case 'implies':
|
|
33
|
+
return {
|
|
34
|
+
kind: 'implies',
|
|
35
|
+
args: [intuitToClassical(phi.left), intuitToClassical(phi.right)],
|
|
36
|
+
};
|
|
37
|
+
case 'not':
|
|
38
|
+
return { kind: 'not', args: [intuitToClassical(phi.arg)] };
|
|
39
|
+
case 'bottom':
|
|
40
|
+
return { kind: 'false' };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
(0, vitest_1.describe)('property: intuitionistic ⊆ classical', () => {
|
|
44
|
+
(0, vitest_1.it)('intuit-provable ⇒ classical-provable', () => {
|
|
45
|
+
generators_1.fc.assert(generators_1.fc.property(intuitFormulaArb(2), (phi) => {
|
|
46
|
+
const intuitResult = (0, intuitionistic_nj_1.proveIntuitionistically)([], phi, { budget: 3000 });
|
|
47
|
+
if (intuitResult === null)
|
|
48
|
+
return true; // skip — no es intuit-provable
|
|
49
|
+
const classical = (0, sequent_g3_1.proveFormula)(intuitToClassical(phi), { budget: 5000 });
|
|
50
|
+
if (!classical.provable) {
|
|
51
|
+
throw new Error(`intuit-provable pero NO classical: phi=${JSON.stringify(phi)}`);
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}), { numRuns: 100 });
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=intuit-nj.property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intuit-nj.property.test.js","sourceRoot":"","sources":["../../../src/tests/properties/intuit-nj.property.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda-calc.property.test.d.ts","sourceRoot":"","sources":["../../../src/tests/properties/lambda-calc.property.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Property: λ-calc — no captura de variables libres en sub
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// ∀ Term t (cuerpo), Term r (replacement), var x:
|
|
7
|
+
// freeVars(substitute(t, x, r)) ⊆ freeVars(r) ∪ (freeVars(t) \ {x})
|
|
8
|
+
// — la sustitución capture-avoiding no introduce variables libres
|
|
9
|
+
// que no provengan ni de t (sin x) ni de r.
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
const vitest_1 = require("vitest");
|
|
12
|
+
const generators_1 = require("./generators");
|
|
13
|
+
const substitution_1 = require("../../lambda-calc/substitution");
|
|
14
|
+
(0, vitest_1.describe)('property: λ-calc substitution avoids variable capture', () => {
|
|
15
|
+
(0, vitest_1.it)('FV(t[x:=r]) ⊆ FV(r) ∪ (FV(t) \\ {x})', () => {
|
|
16
|
+
generators_1.fc.assert(generators_1.fc.property((0, generators_1.lamTerm)(3), generators_1.fc.constantFrom('x', 'y', 'z'), (0, generators_1.lamTerm)(2), (t, x, r) => {
|
|
17
|
+
const subst = (0, substitution_1.substitute)(t, x, r);
|
|
18
|
+
const fvSubst = (0, substitution_1.freeVars)(subst);
|
|
19
|
+
const fvT = (0, substitution_1.freeVars)(t);
|
|
20
|
+
const fvR = (0, substitution_1.freeVars)(r);
|
|
21
|
+
const allowed = new Set(fvR);
|
|
22
|
+
for (const n of fvT)
|
|
23
|
+
if (n !== x)
|
|
24
|
+
allowed.add(n);
|
|
25
|
+
for (const name of fvSubst) {
|
|
26
|
+
if (!allowed.has(name)) {
|
|
27
|
+
throw new Error(`Captura detectada: substitute introdujo libre "${name}" fuera de FV(r) ∪ (FV(t)\\{${x}}). ` +
|
|
28
|
+
`t=${JSON.stringify(t)}, r=${JSON.stringify(r)}, subst=${JSON.stringify(subst)}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}), { numRuns: 200 });
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=lambda-calc.property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda-calc.property.test.js","sourceRoot":"","sources":["../../../src/tests/properties/lambda-calc.property.test.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,2DAA2D;AAC3D,+DAA+D;AAC/D,EAAE;AACF,kDAAkD;AAClD,sEAAsE;AACtE,kEAAkE;AAClE,4CAA4C;;AAE5C,mCAAsC;AACtC,6CAA2C;AAC3C,iEAAsE;AAEtE,IAAA,iBAAQ,EAAC,uDAAuD,EAAE,GAAG,EAAE;IACrE,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,eAAE,CAAC,MAAM,CACP,eAAE,CAAC,QAAQ,CACT,IAAA,oBAAO,EAAC,CAAC,CAAC,EACV,eAAE,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9B,IAAA,oBAAO,EAAC,CAAC,CAAC,EACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YACV,MAAM,KAAK,GAAG,IAAA,yBAAU,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,IAAA,uBAAQ,EAAC,KAAK,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAA,uBAAQ,EAAC,CAAC,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,IAAA,uBAAQ,EAAC,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,GAAG,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CACb,kDAAkD,IAAI,+BAA+B,CAAC,MAAM;wBAC1F,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mln.property.test.d.ts","sourceRoot":"","sources":["../../../src/tests/properties/mln.property.test.ts"],"names":[],"mappings":""}
|