@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,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Categorical — Functor y NaturalTransformation
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Wrappers genéricos para construir functores entre categorías
|
|
6
|
+
// arbitrarias y verificar sus leyes vía muestreo sobre los
|
|
7
|
+
// morfismos del dominio.
|
|
8
|
+
// ============================================================
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.mkFunctor = mkFunctor;
|
|
11
|
+
exports.identityFunctor = identityFunctor;
|
|
12
|
+
exports.composeFunctors = composeFunctors;
|
|
13
|
+
exports.mkNaturalTransformation = mkNaturalTransformation;
|
|
14
|
+
exports.identityNT = identityNT;
|
|
15
|
+
/**
|
|
16
|
+
* Crea un functor verificable. El cliente pasa los mapeos a
|
|
17
|
+
* objetos/morfismos; las verificaciones de leyes se derivan
|
|
18
|
+
* recorriendo los `morphisms` de la categoría fuente.
|
|
19
|
+
*/
|
|
20
|
+
function mkFunctor(opts) {
|
|
21
|
+
const { name, source, target, onObjects, onMorphisms } = opts;
|
|
22
|
+
function verifyIdentityPreservation() {
|
|
23
|
+
for (const o of source.objects) {
|
|
24
|
+
const idC = source.identity(o);
|
|
25
|
+
const Fid = onMorphisms(idC);
|
|
26
|
+
const idDFo = target.identity(onObjects(o));
|
|
27
|
+
if (!target.eqMor(Fid, idDFo))
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
function verifyComposition(sample = 50) {
|
|
33
|
+
const ms = Array.from(source.morphisms.values());
|
|
34
|
+
let checked = 0;
|
|
35
|
+
for (const f of ms) {
|
|
36
|
+
for (const g of ms) {
|
|
37
|
+
if (!source.eqObj(source.target(f), source.source(g)))
|
|
38
|
+
continue;
|
|
39
|
+
const gf = source.compose(g, f);
|
|
40
|
+
const Fgf = onMorphisms(gf);
|
|
41
|
+
const Fg = onMorphisms(g);
|
|
42
|
+
const Ff = onMorphisms(f);
|
|
43
|
+
const FgFf = target.compose(Fg, Ff);
|
|
44
|
+
if (!target.eqMor(Fgf, FgFf))
|
|
45
|
+
return false;
|
|
46
|
+
if (++checked >= sample)
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
name,
|
|
54
|
+
source,
|
|
55
|
+
target,
|
|
56
|
+
onObjects,
|
|
57
|
+
onMorphisms,
|
|
58
|
+
verifyIdentityPreservation,
|
|
59
|
+
verifyComposition,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Functor identidad `Id_C : C → C`. Útil para tests y como elemento
|
|
64
|
+
* neutro de la composición de functores.
|
|
65
|
+
*/
|
|
66
|
+
function identityFunctor(cat) {
|
|
67
|
+
return mkFunctor({
|
|
68
|
+
name: `Id_${cat.name}`,
|
|
69
|
+
source: cat,
|
|
70
|
+
target: cat,
|
|
71
|
+
onObjects: (o) => o,
|
|
72
|
+
onMorphisms: (m) => m,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Composición de functores F ; G = G ∘ F. La firma respeta la
|
|
77
|
+
* categoría source/target original sin perder información de tipos.
|
|
78
|
+
*/
|
|
79
|
+
function composeFunctors(G, F) {
|
|
80
|
+
if (F.target !== G.source) {
|
|
81
|
+
// Permitido si son la misma categoría por valor; pero como las
|
|
82
|
+
// categorías son objetos, exigimos identidad referencial.
|
|
83
|
+
throw new Error(`composeFunctors: F.target (${F.target.name}) !== G.source (${G.source.name})`);
|
|
84
|
+
}
|
|
85
|
+
return mkFunctor({
|
|
86
|
+
name: `${G.name}∘${F.name}`,
|
|
87
|
+
source: F.source,
|
|
88
|
+
target: G.target,
|
|
89
|
+
onObjects: (o) => G.onObjects(F.onObjects(o)),
|
|
90
|
+
onMorphisms: (m) => G.onMorphisms(F.onMorphisms(m)),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Crea una transformación natural η : F ⇒ G verificando su
|
|
95
|
+
* naturalidad por muestreo. El cliente pasa la familia de
|
|
96
|
+
* componentes `component(a) : F(a) → G(a)`.
|
|
97
|
+
*/
|
|
98
|
+
function mkNaturalTransformation(opts) {
|
|
99
|
+
const { name, source: F, target: G, component } = opts;
|
|
100
|
+
if (F.source !== G.source || F.target !== G.target) {
|
|
101
|
+
throw new Error('mkNaturalTransformation: F and G must be parallel functors');
|
|
102
|
+
}
|
|
103
|
+
const C = F.source;
|
|
104
|
+
const D = F.target;
|
|
105
|
+
function verifyNaturality(sample = 50) {
|
|
106
|
+
const ms = Array.from(C.morphisms.values());
|
|
107
|
+
let checked = 0;
|
|
108
|
+
for (const f of ms) {
|
|
109
|
+
const a = C.source(f);
|
|
110
|
+
const b = C.target(f);
|
|
111
|
+
const etaA = component(a);
|
|
112
|
+
const etaB = component(b);
|
|
113
|
+
const Gf = G.onMorphisms(f);
|
|
114
|
+
const Ff = F.onMorphisms(f);
|
|
115
|
+
// G(f) ∘ η_a vs η_b ∘ F(f)
|
|
116
|
+
const left = D.compose(Gf, etaA);
|
|
117
|
+
const right = D.compose(etaB, Ff);
|
|
118
|
+
if (!D.eqMor(left, right))
|
|
119
|
+
return false;
|
|
120
|
+
if (++checked >= sample)
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
return { name, source: F, target: G, component, verifyNaturality };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Transformación natural identidad `id_F : F ⇒ F` con componentes
|
|
129
|
+
* `id_{F(a)}`. Sirve como elemento neutro de composición vertical.
|
|
130
|
+
*/
|
|
131
|
+
function identityNT(F) {
|
|
132
|
+
return mkNaturalTransformation({
|
|
133
|
+
name: `id_${F.name}`,
|
|
134
|
+
source: F,
|
|
135
|
+
target: F,
|
|
136
|
+
component: (a) => F.target.identity(F.onObjects(a)),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=functor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functor.js","sourceRoot":"","sources":["../../src/categorical/functor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { Category, Functor, NaturalTransformation, Cone, Cocone, Diagram, MonoidalCategory, MorId, } from './types';
|
|
2
|
+
export { FinSet, mkFinSetMor } from './fin-set';
|
|
3
|
+
export type { FinSetObj, FinSetMor } from './fin-set';
|
|
4
|
+
export { Poset } from './poset';
|
|
5
|
+
export type { PosetMor } from './poset';
|
|
6
|
+
export { Free } from './free';
|
|
7
|
+
export type { FreeMor } from './free';
|
|
8
|
+
export { mkFunctor, identityFunctor, composeFunctors, mkNaturalTransformation, identityNT, } from './functor';
|
|
9
|
+
export { isCone, isLimit, product, coproduct, equalizer, coequalizer } from './limits';
|
|
10
|
+
export { FinSetMonoidal } from './monoidal';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/categorical/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACV,QAAQ,EACR,OAAO,EACP,qBAAqB,EACrB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,KAAK,GACN,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,UAAU,GACX,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Categorical — Punto de entrada público
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Re-exporta primitivas de teoría de categorías: Category,
|
|
6
|
+
// Functor, NaturalTransformation, límites/colímites concretos
|
|
7
|
+
// en FinSet, y estructura monoidal estricta sobre FinSet.
|
|
8
|
+
// ============================================================
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.FinSetMonoidal = exports.coequalizer = exports.equalizer = exports.coproduct = exports.product = exports.isLimit = exports.isCone = exports.identityNT = exports.mkNaturalTransformation = exports.composeFunctors = exports.identityFunctor = exports.mkFunctor = exports.Free = exports.Poset = exports.mkFinSetMor = exports.FinSet = void 0;
|
|
11
|
+
var fin_set_1 = require("./fin-set");
|
|
12
|
+
Object.defineProperty(exports, "FinSet", { enumerable: true, get: function () { return fin_set_1.FinSet; } });
|
|
13
|
+
Object.defineProperty(exports, "mkFinSetMor", { enumerable: true, get: function () { return fin_set_1.mkFinSetMor; } });
|
|
14
|
+
var poset_1 = require("./poset");
|
|
15
|
+
Object.defineProperty(exports, "Poset", { enumerable: true, get: function () { return poset_1.Poset; } });
|
|
16
|
+
var free_1 = require("./free");
|
|
17
|
+
Object.defineProperty(exports, "Free", { enumerable: true, get: function () { return free_1.Free; } });
|
|
18
|
+
var functor_1 = require("./functor");
|
|
19
|
+
Object.defineProperty(exports, "mkFunctor", { enumerable: true, get: function () { return functor_1.mkFunctor; } });
|
|
20
|
+
Object.defineProperty(exports, "identityFunctor", { enumerable: true, get: function () { return functor_1.identityFunctor; } });
|
|
21
|
+
Object.defineProperty(exports, "composeFunctors", { enumerable: true, get: function () { return functor_1.composeFunctors; } });
|
|
22
|
+
Object.defineProperty(exports, "mkNaturalTransformation", { enumerable: true, get: function () { return functor_1.mkNaturalTransformation; } });
|
|
23
|
+
Object.defineProperty(exports, "identityNT", { enumerable: true, get: function () { return functor_1.identityNT; } });
|
|
24
|
+
var limits_1 = require("./limits");
|
|
25
|
+
Object.defineProperty(exports, "isCone", { enumerable: true, get: function () { return limits_1.isCone; } });
|
|
26
|
+
Object.defineProperty(exports, "isLimit", { enumerable: true, get: function () { return limits_1.isLimit; } });
|
|
27
|
+
Object.defineProperty(exports, "product", { enumerable: true, get: function () { return limits_1.product; } });
|
|
28
|
+
Object.defineProperty(exports, "coproduct", { enumerable: true, get: function () { return limits_1.coproduct; } });
|
|
29
|
+
Object.defineProperty(exports, "equalizer", { enumerable: true, get: function () { return limits_1.equalizer; } });
|
|
30
|
+
Object.defineProperty(exports, "coequalizer", { enumerable: true, get: function () { return limits_1.coequalizer; } });
|
|
31
|
+
var monoidal_1 = require("./monoidal");
|
|
32
|
+
Object.defineProperty(exports, "FinSetMonoidal", { enumerable: true, get: function () { return monoidal_1.FinSetMonoidal; } });
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/categorical/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,2DAA2D;AAC3D,8DAA8D;AAC9D,0DAA0D;AAC1D,+DAA+D;;;AAa/D,qCAAgD;AAAvC,iGAAA,MAAM,OAAA;AAAE,sGAAA,WAAW,OAAA;AAG5B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAGd,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AAGb,qCAMmB;AALjB,oGAAA,SAAS,OAAA;AACT,0GAAA,eAAe,OAAA;AACf,0GAAA,eAAe,OAAA;AACf,kHAAA,uBAAuB,OAAA;AACvB,qGAAA,UAAU,OAAA;AAGZ,mCAAuF;AAA9E,gGAAA,MAAM,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,qGAAA,WAAW,OAAA;AAEpE,uCAA4C;AAAnC,0GAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Category, Cone, Diagram } from './types';
|
|
2
|
+
import { type FinSetMor, type FinSetObj } from './fin-set';
|
|
3
|
+
/**
|
|
4
|
+
* Verifica que `cone` sea un cono sobre `diagram` en `cat`:
|
|
5
|
+
* para cada arista `e: i→j` del diagrama, `e ∘ leg(i) = leg(j)`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isCone<O, M>(cat: Category<O, M>, diagram: Diagram<O, M>, cone: Cone<O, M>): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Comprueba si `cone` es límite del diagrama: para cada otro cono
|
|
10
|
+
* candidato sobre el diagrama, existe un único morfismo `u : apex' → apex`
|
|
11
|
+
* que conmuta con las patas. La búsqueda es por enumeración sobre
|
|
12
|
+
* los morfismos registrados en `cat`; sirve bien para categorías finitas
|
|
13
|
+
* pequeñas (FinSet con objetos chicos).
|
|
14
|
+
*/
|
|
15
|
+
export declare function isLimit<O, M>(cat: Category<O, M>, diagram: Diagram<O, M>, cone: Cone<O, M>): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Producto binario en FinSet: A×B con proyecciones π1, π2.
|
|
18
|
+
* Construye el objeto producto como un nuevo `FinSetObj` con
|
|
19
|
+
* elementos `(a,b)` codificados como `"a∥b"` y lo registra en `cat`.
|
|
20
|
+
*
|
|
21
|
+
* Devuelve `null` si los objetos no pertenecen a la categoría.
|
|
22
|
+
*
|
|
23
|
+
* Nota: la categoría `cat` debe poder admitir nuevos objetos. Para
|
|
24
|
+
* nuestro uso pedimos que sea una `FinSet`-categoría construida con
|
|
25
|
+
* los carriers explícitos. En lugar de mutar `cat`, esta función
|
|
26
|
+
* regresa el producto + las proyecciones y deja al cliente
|
|
27
|
+
* reconstruir una categoría extendida si lo necesita.
|
|
28
|
+
*/
|
|
29
|
+
export declare function product(cat: Category<FinSetObj, FinSetMor>, a: FinSetObj, b: FinSetObj): {
|
|
30
|
+
obj: FinSetObj;
|
|
31
|
+
pi1: FinSetMor;
|
|
32
|
+
pi2: FinSetMor;
|
|
33
|
+
cat: Category<FinSetObj, FinSetMor>;
|
|
34
|
+
} | null;
|
|
35
|
+
/**
|
|
36
|
+
* Coproducto binario en FinSet: unión disjunta A⊔B. Usa prefijos
|
|
37
|
+
* `L:` y `R:` para tag-ear los elementos y produce las inyecciones
|
|
38
|
+
* canónicas in1, in2.
|
|
39
|
+
*/
|
|
40
|
+
export declare function coproduct(cat: Category<FinSetObj, FinSetMor>, a: FinSetObj, b: FinSetObj): {
|
|
41
|
+
obj: FinSetObj;
|
|
42
|
+
in1: FinSetMor;
|
|
43
|
+
in2: FinSetMor;
|
|
44
|
+
cat: Category<FinSetObj, FinSetMor>;
|
|
45
|
+
} | null;
|
|
46
|
+
/**
|
|
47
|
+
* Igualador en FinSet de un par paralelo `f, g : A → B`. El igualador
|
|
48
|
+
* es el subconjunto `E = { x ∈ A | f(x) = g(x) }` con inclusión `eq : E ↪ A`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function equalizer(cat: Category<FinSetObj, FinSetMor>, f: FinSetMor, g: FinSetMor): {
|
|
51
|
+
obj: FinSetObj;
|
|
52
|
+
eq: FinSetMor;
|
|
53
|
+
cat: Category<FinSetObj, FinSetMor>;
|
|
54
|
+
} | null;
|
|
55
|
+
/**
|
|
56
|
+
* Coigualador (colimite dual): cociente A/~ donde x ~ y si existe
|
|
57
|
+
* z ∈ S con f(z)=x ∧ g(z)=y (cierre transitivo-simétrico).
|
|
58
|
+
*/
|
|
59
|
+
export declare function coequalizer(cat: Category<FinSetObj, FinSetMor>, f: FinSetMor, g: FinSetMor): {
|
|
60
|
+
obj: FinSetObj;
|
|
61
|
+
q: FinSetMor;
|
|
62
|
+
cat: Category<FinSetObj, FinSetMor>;
|
|
63
|
+
} | null;
|
|
64
|
+
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/categorical/limits.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAuB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EACzB,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACf,OAAO,CAYT;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAC1B,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACf,OAAO,CA2BT;AAgCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EACnC,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,GACX;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CAAE,GAAG,IAAI,CAuBhG;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EACnC,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,GACX;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CAAE,GAAG,IAAI,CAsBhG;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EACnC,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,GACX;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CAAE,GAAG,IAAI,CAkB/E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EACnC,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,GACX;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,CAAC,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CAAE,GAAG,IAAI,CAkC9E"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Categorical — Límites y colímites
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Construcciones universales en FinSet (las más usadas):
|
|
6
|
+
// • product(a, b) — producto binario A×B
|
|
7
|
+
// • coproduct(a, b) — coproducto binario A⊔B
|
|
8
|
+
// • equalizer(f, g) — igualador de un par paralelo
|
|
9
|
+
//
|
|
10
|
+
// Para casos generales también exponemos `isLimit` que recibe un
|
|
11
|
+
// diagrama y un cono y verifica la propiedad universal por
|
|
12
|
+
// muestreo sobre los conos candidatos del diagrama.
|
|
13
|
+
// ============================================================
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.isCone = isCone;
|
|
16
|
+
exports.isLimit = isLimit;
|
|
17
|
+
exports.product = product;
|
|
18
|
+
exports.coproduct = coproduct;
|
|
19
|
+
exports.equalizer = equalizer;
|
|
20
|
+
exports.coequalizer = coequalizer;
|
|
21
|
+
const fin_set_1 = require("./fin-set");
|
|
22
|
+
/**
|
|
23
|
+
* Verifica que `cone` sea un cono sobre `diagram` en `cat`:
|
|
24
|
+
* para cada arista `e: i→j` del diagrama, `e ∘ leg(i) = leg(j)`.
|
|
25
|
+
*/
|
|
26
|
+
function isCone(cat, diagram, cone) {
|
|
27
|
+
for (const v of diagram.vertices.keys()) {
|
|
28
|
+
if (!cone.legs.has(v))
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
for (const { from, to, mor } of diagram.edges) {
|
|
32
|
+
const legFrom = cone.legs.get(from);
|
|
33
|
+
const legTo = cone.legs.get(to);
|
|
34
|
+
if (!legFrom || !legTo)
|
|
35
|
+
return false;
|
|
36
|
+
const composed = cat.compose(mor, legFrom);
|
|
37
|
+
if (!cat.eqMor(composed, legTo))
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Comprueba si `cone` es límite del diagrama: para cada otro cono
|
|
44
|
+
* candidato sobre el diagrama, existe un único morfismo `u : apex' → apex`
|
|
45
|
+
* que conmuta con las patas. La búsqueda es por enumeración sobre
|
|
46
|
+
* los morfismos registrados en `cat`; sirve bien para categorías finitas
|
|
47
|
+
* pequeñas (FinSet con objetos chicos).
|
|
48
|
+
*/
|
|
49
|
+
function isLimit(cat, diagram, cone) {
|
|
50
|
+
if (!isCone(cat, diagram, cone))
|
|
51
|
+
return false;
|
|
52
|
+
// Enumerar otros conos candidatos: para cada objeto X en cat,
|
|
53
|
+
// todos los tuples de morfismos X→vertices que respeten edges.
|
|
54
|
+
for (const X of cat.objects) {
|
|
55
|
+
const candidates = enumerateCones(cat, diagram, X);
|
|
56
|
+
for (const cand of candidates) {
|
|
57
|
+
// Buscar u : X → apex tal que ∀ v: leg(v) ∘ u = cand.legs(v)
|
|
58
|
+
const candidatesU = cat.hom(X, cone.apex);
|
|
59
|
+
let found = 0;
|
|
60
|
+
for (const u of candidatesU) {
|
|
61
|
+
let ok = true;
|
|
62
|
+
for (const [v, leg] of cone.legs) {
|
|
63
|
+
const composed = cat.compose(leg, u);
|
|
64
|
+
const expected = cand.legs.get(v);
|
|
65
|
+
if (!cat.eqMor(composed, expected)) {
|
|
66
|
+
ok = false;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (ok)
|
|
71
|
+
found++;
|
|
72
|
+
if (found > 1)
|
|
73
|
+
return false; // no único
|
|
74
|
+
}
|
|
75
|
+
if (found !== 1)
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
function enumerateCones(cat, diagram, apex) {
|
|
82
|
+
const vNames = Array.from(diagram.vertices.keys());
|
|
83
|
+
// Para cada vértice, lista de posibles legs apex→vertice.
|
|
84
|
+
const optionsPerVertex = vNames.map((v) => {
|
|
85
|
+
const obj = diagram.vertices.get(v);
|
|
86
|
+
return cat.hom(apex, obj).map((leg) => ({ vName: v, leg }));
|
|
87
|
+
});
|
|
88
|
+
// Producto cartesiano. Para diagramas pequeños es manejable.
|
|
89
|
+
let combos = [new Map()];
|
|
90
|
+
for (const opts of optionsPerVertex) {
|
|
91
|
+
const next = [];
|
|
92
|
+
for (const partial of combos) {
|
|
93
|
+
for (const o of opts) {
|
|
94
|
+
const nm = new Map(partial);
|
|
95
|
+
nm.set(o.vName, o.leg);
|
|
96
|
+
next.push(nm);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
combos = next;
|
|
100
|
+
}
|
|
101
|
+
const out = [];
|
|
102
|
+
for (const legs of combos) {
|
|
103
|
+
const cand = { apex, legs };
|
|
104
|
+
if (isCone(cat, diagram, cand))
|
|
105
|
+
out.push(cand);
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
109
|
+
// ── Construcciones concretas en FinSet ───────────────────────
|
|
110
|
+
/**
|
|
111
|
+
* Producto binario en FinSet: A×B con proyecciones π1, π2.
|
|
112
|
+
* Construye el objeto producto como un nuevo `FinSetObj` con
|
|
113
|
+
* elementos `(a,b)` codificados como `"a∥b"` y lo registra en `cat`.
|
|
114
|
+
*
|
|
115
|
+
* Devuelve `null` si los objetos no pertenecen a la categoría.
|
|
116
|
+
*
|
|
117
|
+
* Nota: la categoría `cat` debe poder admitir nuevos objetos. Para
|
|
118
|
+
* nuestro uso pedimos que sea una `FinSet`-categoría construida con
|
|
119
|
+
* los carriers explícitos. En lugar de mutar `cat`, esta función
|
|
120
|
+
* regresa el producto + las proyecciones y deja al cliente
|
|
121
|
+
* reconstruir una categoría extendida si lo necesita.
|
|
122
|
+
*/
|
|
123
|
+
function product(cat, a, b) {
|
|
124
|
+
if (!cat.objects.has(a) || !cat.objects.has(b))
|
|
125
|
+
return null;
|
|
126
|
+
const sep = '∥';
|
|
127
|
+
const elements = [];
|
|
128
|
+
const pi1Table = {};
|
|
129
|
+
const pi2Table = {};
|
|
130
|
+
for (const x of a.elements) {
|
|
131
|
+
for (const y of b.elements) {
|
|
132
|
+
const tag = `${x}${sep}${y}`;
|
|
133
|
+
elements.push(tag);
|
|
134
|
+
pi1Table[tag] = x;
|
|
135
|
+
pi2Table[tag] = y;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const prod = { name: `${a.name}×${b.name}`, elements };
|
|
139
|
+
const extendedObjs = [...cat.objects, prod];
|
|
140
|
+
// Construimos categoría extendida con los morfismos previos como
|
|
141
|
+
// generadores + π1, π2.
|
|
142
|
+
const oldGens = Array.from(cat.morphisms.values()).filter((m) => !m.id.endsWith(':id'));
|
|
143
|
+
const pi1 = (0, fin_set_1.mkFinSetMor)('π1', prod, a, pi1Table);
|
|
144
|
+
const pi2 = (0, fin_set_1.mkFinSetMor)('π2', prod, b, pi2Table);
|
|
145
|
+
const newCat = (0, fin_set_1.FinSet)(extendedObjs, [...oldGens, pi1, pi2]);
|
|
146
|
+
return { obj: prod, pi1, pi2, cat: newCat };
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Coproducto binario en FinSet: unión disjunta A⊔B. Usa prefijos
|
|
150
|
+
* `L:` y `R:` para tag-ear los elementos y produce las inyecciones
|
|
151
|
+
* canónicas in1, in2.
|
|
152
|
+
*/
|
|
153
|
+
function coproduct(cat, a, b) {
|
|
154
|
+
if (!cat.objects.has(a) || !cat.objects.has(b))
|
|
155
|
+
return null;
|
|
156
|
+
const elements = [];
|
|
157
|
+
const in1Table = {};
|
|
158
|
+
const in2Table = {};
|
|
159
|
+
for (const x of a.elements) {
|
|
160
|
+
const tag = `L:${x}`;
|
|
161
|
+
elements.push(tag);
|
|
162
|
+
in1Table[x] = tag;
|
|
163
|
+
}
|
|
164
|
+
for (const y of b.elements) {
|
|
165
|
+
const tag = `R:${y}`;
|
|
166
|
+
elements.push(tag);
|
|
167
|
+
in2Table[y] = tag;
|
|
168
|
+
}
|
|
169
|
+
const cop = { name: `${a.name}⊔${b.name}`, elements };
|
|
170
|
+
const extendedObjs = [...cat.objects, cop];
|
|
171
|
+
const oldGens = Array.from(cat.morphisms.values()).filter((m) => !m.id.endsWith(':id'));
|
|
172
|
+
const in1 = (0, fin_set_1.mkFinSetMor)('in1', a, cop, in1Table);
|
|
173
|
+
const in2 = (0, fin_set_1.mkFinSetMor)('in2', b, cop, in2Table);
|
|
174
|
+
const newCat = (0, fin_set_1.FinSet)(extendedObjs, [...oldGens, in1, in2]);
|
|
175
|
+
return { obj: cop, in1, in2, cat: newCat };
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Igualador en FinSet de un par paralelo `f, g : A → B`. El igualador
|
|
179
|
+
* es el subconjunto `E = { x ∈ A | f(x) = g(x) }` con inclusión `eq : E ↪ A`.
|
|
180
|
+
*/
|
|
181
|
+
function equalizer(cat, f, g) {
|
|
182
|
+
if (f.src !== g.src || f.tgt !== g.tgt)
|
|
183
|
+
return null;
|
|
184
|
+
const aObj = Array.from(cat.objects).find((o) => o.name === f.src);
|
|
185
|
+
if (!aObj)
|
|
186
|
+
return null;
|
|
187
|
+
const elements = [];
|
|
188
|
+
const eqTable = {};
|
|
189
|
+
for (const x of aObj.elements) {
|
|
190
|
+
if (f.fn.get(x) === g.fn.get(x)) {
|
|
191
|
+
elements.push(x);
|
|
192
|
+
eqTable[x] = x;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const eObj = { name: `Eq(${f.id},${g.id})`, elements };
|
|
196
|
+
const extendedObjs = [...cat.objects, eObj];
|
|
197
|
+
const oldGens = Array.from(cat.morphisms.values()).filter((m) => !m.id.endsWith(':id'));
|
|
198
|
+
const eq = (0, fin_set_1.mkFinSetMor)('eq', eObj, aObj, eqTable);
|
|
199
|
+
const newCat = (0, fin_set_1.FinSet)(extendedObjs, [...oldGens, eq]);
|
|
200
|
+
return { obj: eObj, eq, cat: newCat };
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Coigualador (colimite dual): cociente A/~ donde x ~ y si existe
|
|
204
|
+
* z ∈ S con f(z)=x ∧ g(z)=y (cierre transitivo-simétrico).
|
|
205
|
+
*/
|
|
206
|
+
function coequalizer(cat, f, g) {
|
|
207
|
+
if (f.src !== g.src || f.tgt !== g.tgt)
|
|
208
|
+
return null;
|
|
209
|
+
const aObj = Array.from(cat.objects).find((o) => o.name === f.src);
|
|
210
|
+
const bObj = Array.from(cat.objects).find((o) => o.name === f.tgt);
|
|
211
|
+
if (!aObj || !bObj)
|
|
212
|
+
return null;
|
|
213
|
+
// Union-find sobre elementos de B
|
|
214
|
+
const parent = new Map();
|
|
215
|
+
for (const y of bObj.elements)
|
|
216
|
+
parent.set(y, y);
|
|
217
|
+
function find(x) {
|
|
218
|
+
let p = parent.get(x);
|
|
219
|
+
while (p !== parent.get(p))
|
|
220
|
+
p = parent.get(p);
|
|
221
|
+
parent.set(x, p);
|
|
222
|
+
return p;
|
|
223
|
+
}
|
|
224
|
+
function union(x, y) {
|
|
225
|
+
const px = find(x);
|
|
226
|
+
const py = find(y);
|
|
227
|
+
if (px !== py)
|
|
228
|
+
parent.set(px, py);
|
|
229
|
+
}
|
|
230
|
+
for (const z of aObj.elements) {
|
|
231
|
+
union(f.fn.get(z), g.fn.get(z));
|
|
232
|
+
}
|
|
233
|
+
// Clases canónicas
|
|
234
|
+
const reps = new Set();
|
|
235
|
+
for (const y of bObj.elements)
|
|
236
|
+
reps.add(find(y));
|
|
237
|
+
const elements = Array.from(reps).sort();
|
|
238
|
+
const qTable = {};
|
|
239
|
+
for (const y of bObj.elements)
|
|
240
|
+
qTable[y] = find(y);
|
|
241
|
+
const cObj = { name: `Coeq(${f.id},${g.id})`, elements };
|
|
242
|
+
const extendedObjs = [...cat.objects, cObj];
|
|
243
|
+
const oldGens = Array.from(cat.morphisms.values()).filter((m) => !m.id.endsWith(':id'));
|
|
244
|
+
const q = (0, fin_set_1.mkFinSetMor)('q', bObj, cObj, qTable);
|
|
245
|
+
const newCat = (0, fin_set_1.FinSet)(extendedObjs, [...oldGens, q]);
|
|
246
|
+
return { obj: cObj, q, cat: newCat };
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/categorical/limits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MonoidalCategory } from './types';
|
|
2
|
+
import { type FinSetMor, type FinSetObj } from './fin-set';
|
|
3
|
+
/**
|
|
4
|
+
* Construye la categoría monoidal (FinSet, ×, 1). Recibe la lista
|
|
5
|
+
* de objetos generadores; añade automáticamente la unidad 1.
|
|
6
|
+
*
|
|
7
|
+
* Esta versión es estricta hasta isomorfismo canónico: los unitores
|
|
8
|
+
* y asociador se comprueban por igualdad estructural de los
|
|
9
|
+
* elementos serializados (`x` vs `*∥x` vs `x∥*`), siguiendo la
|
|
10
|
+
* convención `mkProductObj`. En lugar de verificar conmutatividad
|
|
11
|
+
* de diagramas complejos, comparamos los carriers normalizados.
|
|
12
|
+
*/
|
|
13
|
+
export declare function FinSetMonoidal(objs: ReadonlyArray<FinSetObj>, generators?: ReadonlyArray<FinSetMor>): MonoidalCategory<FinSetObj, FinSetMor>;
|
|
14
|
+
//# sourceMappingURL=monoidal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monoidal.d.ts","sourceRoot":"","sources":["../../src/categorical/monoidal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAuB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhF;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,EAC9B,UAAU,GAAE,aAAa,CAAC,SAAS,CAAM,GACxC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CA+HxC"}
|