@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,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Categorical — Monoidal Category (FinSet con producto ×)
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Construcción concreta de la categoría monoidal estricta
|
|
6
|
+
// (FinSet, ×, 1) donde 1 = {*} y A×B se define elemento a elemento.
|
|
7
|
+
// Verifica unitor izquierdo / derecho y asociador por igualdad
|
|
8
|
+
// estricta sobre los carriers (suficiente porque elegimos los
|
|
9
|
+
// nombres canónicos: "*∥x" se mapea a "x", etc.).
|
|
10
|
+
// ============================================================
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FinSetMonoidal = FinSetMonoidal;
|
|
13
|
+
const fin_set_1 = require("./fin-set");
|
|
14
|
+
/**
|
|
15
|
+
* Construye la categoría monoidal (FinSet, ×, 1). Recibe la lista
|
|
16
|
+
* de objetos generadores; añade automáticamente la unidad 1.
|
|
17
|
+
*
|
|
18
|
+
* Esta versión es estricta hasta isomorfismo canónico: los unitores
|
|
19
|
+
* y asociador se comprueban por igualdad estructural de los
|
|
20
|
+
* elementos serializados (`x` vs `*∥x` vs `x∥*`), siguiendo la
|
|
21
|
+
* convención `mkProductObj`. En lugar de verificar conmutatividad
|
|
22
|
+
* de diagramas complejos, comparamos los carriers normalizados.
|
|
23
|
+
*/
|
|
24
|
+
function FinSetMonoidal(objs, generators = []) {
|
|
25
|
+
const unit = { name: '1', elements: ['*'] };
|
|
26
|
+
const allObjs = [unit, ...objs];
|
|
27
|
+
// Cerramos productos relevantes para que verifyAssociator/unitors
|
|
28
|
+
// puedan buscar objetos producto sin construir uno nuevo cada vez.
|
|
29
|
+
const objsByName = new Map();
|
|
30
|
+
for (const o of allObjs)
|
|
31
|
+
objsByName.set(o.name, o);
|
|
32
|
+
function productObj(a, b) {
|
|
33
|
+
const name = `${a.name}×${b.name}`;
|
|
34
|
+
const cached = objsByName.get(name);
|
|
35
|
+
if (cached)
|
|
36
|
+
return cached;
|
|
37
|
+
const elements = [];
|
|
38
|
+
for (const x of a.elements) {
|
|
39
|
+
for (const y of b.elements) {
|
|
40
|
+
elements.push(`${x}∥${y}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const o = { name, elements };
|
|
44
|
+
objsByName.set(name, o);
|
|
45
|
+
return o;
|
|
46
|
+
}
|
|
47
|
+
// Generar tensorial de unidades y de generators para asegurar
|
|
48
|
+
// que la categoría base tenga las identidades para esos objetos.
|
|
49
|
+
const expandedObjs = [...allObjs];
|
|
50
|
+
for (const a of allObjs) {
|
|
51
|
+
for (const b of allObjs) {
|
|
52
|
+
const p = productObj(a, b);
|
|
53
|
+
if (!expandedObjs.some((o) => o.name === p.name))
|
|
54
|
+
expandedObjs.push(p);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const baseCat = (0, fin_set_1.FinSet)(expandedObjs, generators);
|
|
58
|
+
function tensor(a, b) {
|
|
59
|
+
return productObj(a, b);
|
|
60
|
+
}
|
|
61
|
+
function tensorMor(f, g) {
|
|
62
|
+
// f×g : A×B → A'×B', (a,b) ↦ (f(a), g(b))
|
|
63
|
+
const aObj = Array.from(baseCat.objects).find((o) => o.name === f.src);
|
|
64
|
+
const bObj = Array.from(baseCat.objects).find((o) => o.name === g.src);
|
|
65
|
+
const aTgt = Array.from(baseCat.objects).find((o) => o.name === f.tgt);
|
|
66
|
+
const bTgt = Array.from(baseCat.objects).find((o) => o.name === g.tgt);
|
|
67
|
+
const prodSrc = productObj(aObj, bObj);
|
|
68
|
+
const prodTgt = productObj(aTgt, bTgt);
|
|
69
|
+
const table = {};
|
|
70
|
+
for (const x of aObj.elements) {
|
|
71
|
+
for (const y of bObj.elements) {
|
|
72
|
+
table[`${x}∥${y}`] = `${f.fn.get(x)}∥${g.fn.get(y)}`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Asegurar que los objetos producto existan en la categoría base.
|
|
76
|
+
if (!baseCat.objects.has(prodSrc) || !baseCat.objects.has(prodTgt)) {
|
|
77
|
+
// No deberían faltar con expandedObjs, pero como salvaguarda
|
|
78
|
+
// devolvemos un morfismo standalone.
|
|
79
|
+
}
|
|
80
|
+
return (0, fin_set_1.mkFinSetMor)(`${f.id.split(':').pop()}×${g.id.split(':').pop()}`, prodSrc, prodTgt, table);
|
|
81
|
+
}
|
|
82
|
+
function verifyLeftUnitor() {
|
|
83
|
+
// 1⊗A debe ser isomorfo a A. Concretamente: el carrier de 1×A es
|
|
84
|
+
// { "*∥a" | a∈A }, en biyección con A vía "*∥a" ↔ a.
|
|
85
|
+
for (const a of allObjs) {
|
|
86
|
+
const oneA = tensor(unit, a);
|
|
87
|
+
if (oneA.elements.length !== a.elements.length)
|
|
88
|
+
return false;
|
|
89
|
+
// Cada elemento "*∥a" debe corresponder con un a en A.
|
|
90
|
+
const matches = oneA.elements.every((el) => {
|
|
91
|
+
const [u, x] = el.split('∥');
|
|
92
|
+
return u === '*' && a.elements.includes(x ?? '');
|
|
93
|
+
});
|
|
94
|
+
if (!matches)
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
function verifyRightUnitor() {
|
|
100
|
+
for (const a of allObjs) {
|
|
101
|
+
const aOne = tensor(a, unit);
|
|
102
|
+
if (aOne.elements.length !== a.elements.length)
|
|
103
|
+
return false;
|
|
104
|
+
const matches = aOne.elements.every((el) => {
|
|
105
|
+
const [x, u] = el.split('∥');
|
|
106
|
+
return u === '*' && a.elements.includes(x ?? '');
|
|
107
|
+
});
|
|
108
|
+
if (!matches)
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
function verifyAssociator() {
|
|
114
|
+
// (A⊗B)⊗C y A⊗(B⊗C) deben tener carriers en biyección canónica.
|
|
115
|
+
for (const a of allObjs) {
|
|
116
|
+
for (const b of allObjs) {
|
|
117
|
+
for (const c of allObjs) {
|
|
118
|
+
const lhs = tensor(tensor(a, b), c);
|
|
119
|
+
const rhs = tensor(a, tensor(b, c));
|
|
120
|
+
if (lhs.elements.length !== rhs.elements.length)
|
|
121
|
+
return false;
|
|
122
|
+
// Asociador: "(x∥y)∥z" ↔ "x∥(y∥z)". Como nuestro encoding es
|
|
123
|
+
// strings con ∥ izquierda-asociativo, normalizamos quitando
|
|
124
|
+
// separadores y comparando.
|
|
125
|
+
const lset = new Set(lhs.elements.map((s) => s.replaceAll('∥', '|')));
|
|
126
|
+
const rset = new Set(rhs.elements.map((s) => s.replaceAll('∥', '|')));
|
|
127
|
+
if (lset.size !== rset.size)
|
|
128
|
+
return false;
|
|
129
|
+
for (const s of lset)
|
|
130
|
+
if (!rset.has(s))
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
...baseCat,
|
|
139
|
+
name: 'FinSet⊗',
|
|
140
|
+
unit,
|
|
141
|
+
tensor,
|
|
142
|
+
tensorMor,
|
|
143
|
+
verifyLeftUnitor,
|
|
144
|
+
verifyRightUnitor,
|
|
145
|
+
verifyAssociator,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=monoidal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monoidal.js","sourceRoot":"","sources":["../../src/categorical/monoidal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Category, MorId } from './types';
|
|
2
|
+
/** Morfismo del poset: par origen/destino. Único entre dos objetos. */
|
|
3
|
+
export interface PosetMor {
|
|
4
|
+
readonly id: MorId;
|
|
5
|
+
readonly src: string;
|
|
6
|
+
readonly tgt: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Construye la categoría poset. `elements` define los objetos y
|
|
10
|
+
* `leq` los pares a≤b explícitos. La clausura reflexivo-transitiva
|
|
11
|
+
* se calcula y se realiza como morfismos del Category resultante.
|
|
12
|
+
*/
|
|
13
|
+
export declare function Poset(elements: ReadonlyArray<string>, leq: ReadonlyArray<readonly [string, string]>): Category<string, PosetMor>;
|
|
14
|
+
//# sourceMappingURL=poset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poset.d.ts","sourceRoot":"","sources":["../../src/categorical/poset.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE/C,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CACnB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC5C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAmG5B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Categorical — Poset como categoría
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Un poset (P, ≤) genera una categoría con un único morfismo a→b
|
|
6
|
+
// por cada par (a, b) tal que a ≤ b. La identidad es a ≤ a y la
|
|
7
|
+
// composición es transitividad. Reflexividad y transitividad están
|
|
8
|
+
// validadas por construcción.
|
|
9
|
+
// ============================================================
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.Poset = Poset;
|
|
12
|
+
/**
|
|
13
|
+
* Construye la categoría poset. `elements` define los objetos y
|
|
14
|
+
* `leq` los pares a≤b explícitos. La clausura reflexivo-transitiva
|
|
15
|
+
* se calcula y se realiza como morfismos del Category resultante.
|
|
16
|
+
*/
|
|
17
|
+
function Poset(elements, leq) {
|
|
18
|
+
// Clausura reflexivo-transitiva sobre la relación dada.
|
|
19
|
+
const closure = new Set();
|
|
20
|
+
for (const e of elements)
|
|
21
|
+
closure.add(`${e}|${e}`);
|
|
22
|
+
for (const [a, b] of leq)
|
|
23
|
+
closure.add(`${a}|${b}`);
|
|
24
|
+
let changed = true;
|
|
25
|
+
while (changed) {
|
|
26
|
+
changed = false;
|
|
27
|
+
const snapshot = Array.from(closure).map((s) => s.split('|'));
|
|
28
|
+
for (const [a, b] of snapshot) {
|
|
29
|
+
for (const [c, d] of snapshot) {
|
|
30
|
+
if (b === c) {
|
|
31
|
+
const key = `${a}|${d}`;
|
|
32
|
+
if (!closure.has(key)) {
|
|
33
|
+
closure.add(key);
|
|
34
|
+
changed = true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Antisimetría se asume verificada por el cliente (no la chequeamos
|
|
41
|
+
// aquí — si el cliente da un ciclo, simplemente colapsa elementos en
|
|
42
|
+
// la categoría resultante y los tests lo detectarán).
|
|
43
|
+
const morphisms = new Map();
|
|
44
|
+
for (const key of closure) {
|
|
45
|
+
const [a, b] = key.split('|');
|
|
46
|
+
const mid = `${a}→${b}:leq`;
|
|
47
|
+
morphisms.set(mid, { id: mid, src: a, tgt: b });
|
|
48
|
+
}
|
|
49
|
+
const objectsSet = new Set(elements);
|
|
50
|
+
function identity(obj) {
|
|
51
|
+
const m = morphisms.get(`${obj}→${obj}:leq`);
|
|
52
|
+
if (!m)
|
|
53
|
+
throw new Error(`Poset: missing identity for ${obj}`);
|
|
54
|
+
return m;
|
|
55
|
+
}
|
|
56
|
+
function compose(g, f) {
|
|
57
|
+
if (f.tgt !== g.src) {
|
|
58
|
+
throw new Error(`Poset compose: dom mismatch ${f.id} ; ${g.id}`);
|
|
59
|
+
}
|
|
60
|
+
const id = `${f.src}→${g.tgt}:leq`;
|
|
61
|
+
const m = morphisms.get(id);
|
|
62
|
+
if (!m)
|
|
63
|
+
throw new Error(`Poset compose: missing morphism ${id}`);
|
|
64
|
+
return m;
|
|
65
|
+
}
|
|
66
|
+
function source(m) {
|
|
67
|
+
return m.src;
|
|
68
|
+
}
|
|
69
|
+
function target(m) {
|
|
70
|
+
return m.tgt;
|
|
71
|
+
}
|
|
72
|
+
function eqMor(a, b) {
|
|
73
|
+
return a.id === b.id;
|
|
74
|
+
}
|
|
75
|
+
function eqObj(a, b) {
|
|
76
|
+
return a === b;
|
|
77
|
+
}
|
|
78
|
+
function hom(a, b) {
|
|
79
|
+
const m = morphisms.get(`${a}→${b}:leq`);
|
|
80
|
+
return m ? [m] : [];
|
|
81
|
+
}
|
|
82
|
+
function verifyAssociativity() {
|
|
83
|
+
// En un poset cualquier composición es única, asociativa por
|
|
84
|
+
// construcción.
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
function verifyIdentity() {
|
|
88
|
+
// Reflexividad y composición con identidad: triviales por
|
|
89
|
+
// construcción al estar la clausura reflexiva añadida.
|
|
90
|
+
for (const m of morphisms.values()) {
|
|
91
|
+
const idSrc = identity(m.src);
|
|
92
|
+
const idTgt = identity(m.tgt);
|
|
93
|
+
if (compose(m, idSrc).id !== m.id)
|
|
94
|
+
return false;
|
|
95
|
+
if (compose(idTgt, m).id !== m.id)
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
name: 'Poset',
|
|
102
|
+
objects: objectsSet,
|
|
103
|
+
morphisms,
|
|
104
|
+
identity,
|
|
105
|
+
compose,
|
|
106
|
+
source,
|
|
107
|
+
target,
|
|
108
|
+
eqMor,
|
|
109
|
+
eqObj,
|
|
110
|
+
hom,
|
|
111
|
+
verifyAssociativity,
|
|
112
|
+
verifyIdentity,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=poset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poset.js","sourceRoot":"","sources":["../../src/categorical/poset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identidad estable de un morfismo. Las categorías construidas
|
|
3
|
+
* en este módulo usan strings derivados de `src→tgt:name`, pero
|
|
4
|
+
* un cliente puede definir su propio esquema mientras sea único.
|
|
5
|
+
*/
|
|
6
|
+
export type MorId = string;
|
|
7
|
+
/**
|
|
8
|
+
* Una categoría sobre objetos `Obj` y morfismos `Mor`. Las
|
|
9
|
+
* propiedades `objects` y `morphisms` exponen el grafo subyacente
|
|
10
|
+
* para tests y consumidores que necesiten iterar.
|
|
11
|
+
*
|
|
12
|
+
* Los morfismos viven en un `Map<MorId, Mor>` para que el chequeo
|
|
13
|
+
* de leyes pueda muestrear pares aleatorios sin coste prohibitivo.
|
|
14
|
+
*/
|
|
15
|
+
export interface Category<Obj, Mor> {
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly objects: Set<Obj>;
|
|
18
|
+
readonly morphisms: Map<MorId, Mor>;
|
|
19
|
+
/** Devuelve la identidad para un objeto (axioma: existe y es única). */
|
|
20
|
+
identity(obj: Obj): Mor;
|
|
21
|
+
/** Composición g ∘ f (lee de derecha a izquierda: aplica f y luego g). */
|
|
22
|
+
compose(g: Mor, f: Mor): Mor;
|
|
23
|
+
/** Dominio del morfismo. */
|
|
24
|
+
source(m: Mor): Obj;
|
|
25
|
+
/** Codominio del morfismo. */
|
|
26
|
+
target(m: Mor): Obj;
|
|
27
|
+
/** Igualdad de morfismos (semántica del modelo concreto). */
|
|
28
|
+
eqMor(a: Mor, b: Mor): boolean;
|
|
29
|
+
/** Igualdad de objetos (semántica del modelo concreto). */
|
|
30
|
+
eqObj(a: Obj, b: Obj): boolean;
|
|
31
|
+
/** Devuelve todos los morfismos a→b. Útil para tests y para limits. */
|
|
32
|
+
hom(a: Obj, b: Obj): Mor[];
|
|
33
|
+
/** Verifica asociatividad: (h∘g)∘f = h∘(g∘f) sobre un muestreo. */
|
|
34
|
+
verifyAssociativity(sample?: number): boolean;
|
|
35
|
+
/** Verifica id ∘ f = f y f ∘ id = f. */
|
|
36
|
+
verifyIdentity(sample?: number): boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Functor F : C → D, dado por su acción en objetos y morfismos.
|
|
40
|
+
* Debe preservar identidad y composición; ambas son verificables.
|
|
41
|
+
*/
|
|
42
|
+
export interface Functor<O1, M1, O2, M2> {
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly source: Category<O1, M1>;
|
|
45
|
+
readonly target: Category<O2, M2>;
|
|
46
|
+
onObjects(obj: O1): O2;
|
|
47
|
+
onMorphisms(mor: M1): M2;
|
|
48
|
+
/** F(id_a) = id_{F(a)} para todo objeto. */
|
|
49
|
+
verifyIdentityPreservation(): boolean;
|
|
50
|
+
/** F(g∘f) = F(g)∘F(f). */
|
|
51
|
+
verifyComposition(sample?: number): boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Transformación natural η : F ⇒ G entre functores paralelos
|
|
55
|
+
* F, G : C → D. Cada componente `η_a : F(a) → G(a)`. La condición
|
|
56
|
+
* de naturalidad es G(f) ∘ η_a = η_b ∘ F(f) para f : a→b en C.
|
|
57
|
+
*/
|
|
58
|
+
export interface NaturalTransformation<O1, M1, O2, M2> {
|
|
59
|
+
readonly name: string;
|
|
60
|
+
readonly source: Functor<O1, M1, O2, M2>;
|
|
61
|
+
readonly target: Functor<O1, M1, O2, M2>;
|
|
62
|
+
component(obj: O1): M2;
|
|
63
|
+
verifyNaturality(sample?: number): boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Un diagrama es un functor desde una categoría índice J (típicamente
|
|
67
|
+
* pequeña, finita) a la categoría ambiente C. Para nuestros usos
|
|
68
|
+
* concretos representamos el diagrama por sus vértices (objetos
|
|
69
|
+
* de C imagen) y sus aristas (morfismos forzados entre ellos).
|
|
70
|
+
*/
|
|
71
|
+
export interface Diagram<O, M> {
|
|
72
|
+
readonly vertices: Map<string, O>;
|
|
73
|
+
readonly edges: Array<{
|
|
74
|
+
from: string;
|
|
75
|
+
to: string;
|
|
76
|
+
mor: M;
|
|
77
|
+
}>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Cono sobre un diagrama: un objeto ápice junto con un morfismo
|
|
81
|
+
* (`leg`) hacia cada vértice del diagrama, conmutando con sus aristas.
|
|
82
|
+
*/
|
|
83
|
+
export interface Cone<O, M> {
|
|
84
|
+
apex: O;
|
|
85
|
+
legs: Map<string, M>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Cocono (dual del cono): un ápice con morfismos *desde* cada vértice.
|
|
89
|
+
*/
|
|
90
|
+
export interface Cocone<O, M> {
|
|
91
|
+
apex: O;
|
|
92
|
+
legs: Map<string, M>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Categoría monoidal: añade producto tensorial y unidad sobre
|
|
96
|
+
* la estructura categórica. No imponemos asociadores ni unitores
|
|
97
|
+
* explícitos — los modelos concretos (Set con ×) son estrictos
|
|
98
|
+
* suficiente para verificar α, λ, ρ por igualdad en objetos.
|
|
99
|
+
*/
|
|
100
|
+
export interface MonoidalCategory<O, M> extends Category<O, M> {
|
|
101
|
+
readonly unit: O;
|
|
102
|
+
tensor(a: O, b: O): O;
|
|
103
|
+
tensorMor(f: M, g: M): M;
|
|
104
|
+
/** Unitor izquierdo: 1 ⊗ a ≅ a (verificable por igualdad de objetos). */
|
|
105
|
+
verifyLeftUnitor(sample?: number): boolean;
|
|
106
|
+
/** Unitor derecho: a ⊗ 1 ≅ a. */
|
|
107
|
+
verifyRightUnitor(sample?: number): boolean;
|
|
108
|
+
/** Asociador: (a⊗b)⊗c = a⊗(b⊗c). */
|
|
109
|
+
verifyAssociator(sample?: number): boolean;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/categorical/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Categorical — Tipos públicos
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Definiciones de interfaz para Category, Functor,
|
|
6
|
+
// NaturalTransformation, Cone, Diagram y MonoidalCategory.
|
|
7
|
+
//
|
|
8
|
+
// Decisión de diseño: cada morfismo se identifica por su `id`
|
|
9
|
+
// (clave estable string-able). La categoría es responsable de
|
|
10
|
+
// resolver compose / source / target a partir de la identidad
|
|
11
|
+
// del morfismo. Esto permite igualdad estructural simple por
|
|
12
|
+
// `id`, sin tener que comparar callbacks o funciones.
|
|
13
|
+
// ============================================================
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/categorical/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;AAC/D,mDAAmD;AACnD,2DAA2D;AAC3D,EAAE;AACF,8DAA8D;AAC9D,8DAA8D;AAC9D,8DAA8D;AAC9D,6DAA6D;AAC7D,sDAAsD;AACtD,+DAA+D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { FailurePair, Process, Trace } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Enumera todas las trazas de `p` hasta longitud `maxLength` (inclusive).
|
|
4
|
+
* Incluye la traza vacía (siempre presente) y los prefijos intermedios.
|
|
5
|
+
*
|
|
6
|
+
* Las trazas se devuelven sin duplicados, ordenadas por longitud
|
|
7
|
+
* ascendente, y como copias de arrays inmutables (las modificaciones no
|
|
8
|
+
* afectan el motor).
|
|
9
|
+
*/
|
|
10
|
+
export declare function traces(p: Process, maxLength?: number): Trace[];
|
|
11
|
+
/**
|
|
12
|
+
* Calcula failures hasta `maxLength`. Para cada traza alcanzable, registra
|
|
13
|
+
* los refusal sets posibles iterando todas las resoluciones internas del
|
|
14
|
+
* estado tras la traza.
|
|
15
|
+
*
|
|
16
|
+
* Devuelve una lista (no un set) porque los refusal sets son objetos —
|
|
17
|
+
* agrupamos por igualdad estructural y deduplicamos manualmente.
|
|
18
|
+
*/
|
|
19
|
+
export declare function failures(p: Process, maxLength?: number): FailurePair[];
|
|
20
|
+
/**
|
|
21
|
+
* Hay deadlock si el proceso no ofrece NINGÚN evento (ni siquiera ✓) en
|
|
22
|
+
* ALGUNA resolución interna alcanzable desde el estado inicial.
|
|
23
|
+
*
|
|
24
|
+
* En `STOP` el chequeo es trivial: `nextEvents(STOP) = ∅`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isDeadlocked(p: Process): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Detección heurística de livelock: el proceso recorre eventos ocultos
|
|
29
|
+
* (τ) indefinidamente sin avanzar visiblemente. Implementación: chequea
|
|
30
|
+
* si la profundidad de despliegues internos excede `depth` sin ofrecer
|
|
31
|
+
* eventos visibles.
|
|
32
|
+
*
|
|
33
|
+
* No es decisión: usamos límite acotado. Útil para advertir sobre `μX.X`
|
|
34
|
+
* o `(a → STOP) \ {a}` con loop.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isLiveLocked(p: Process, depth?: number): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* P ⊑_T Q : Q refina a P en trazas sii cada traza de Q es traza de P.
|
|
39
|
+
* Equivalentemente: Q no puede hacer nada que P no pudiera observar.
|
|
40
|
+
*/
|
|
41
|
+
export declare function refinesTraces(spec: Process, impl: Process, maxLength?: number): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* P ⊑_F Q : refinamiento en failures. Q refina a P sii:
|
|
44
|
+
* (a) traces(Q) ⊆ traces(P)
|
|
45
|
+
* (b) failures(Q) ⊆ failures(P)
|
|
46
|
+
*
|
|
47
|
+
* Una falla `(t, R)` de Q debe poder ser exhibida también por P. Esto
|
|
48
|
+
* capta el principio de que Q es "menos no-determinista" que P.
|
|
49
|
+
*/
|
|
50
|
+
export declare function refinesFailures(spec: Process, impl: Process, maxLength?: number): boolean;
|
|
51
|
+
//# sourceMappingURL=analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/csp-hoare/analysis.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAS,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKlE;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,SAAI,GAAG,KAAK,EAAE,CAqCzD;AAuBD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,SAAI,GAAG,WAAW,EAAE,CAoCjE;AAwBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAKhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,SAAK,GAAG,OAAO,CAS5D;AAqDD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,SAAI,GAAG,OAAO,CAOlF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,SAAI,GAAG,OAAO,CA8BpF"}
|