@stevenvo780/st-lang 4.5.0 → 4.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -37
- 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/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/index.d.ts +19 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -1
- 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/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/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/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/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/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/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/package.json +3 -1
package/README.md
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
**ST** es un lenguaje ejecutable para lógica, argumentación y formalización documental.
|
|
8
8
|
Combina verificación formal, scripting declarativo, control de flujo, funciones, perfiles lógicos múltiples y una **Text Layer** para conectar fórmulas con texto humano real.
|
|
9
9
|
|
|
10
|
-
[](package.json)
|
|
11
|
+
[]()
|
|
11
12
|
[](LICENSE)
|
|
12
13
|
[]()
|
|
13
14
|
|
|
@@ -37,7 +38,7 @@ Combina verificación formal, scripting declarativo, control de flujo, funciones
|
|
|
37
38
|
### Con npm
|
|
38
39
|
|
|
39
40
|
```bash
|
|
40
|
-
npm install
|
|
41
|
+
npm install @stevenvo780/st-lang@4.5.0
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
### Desde el código fuente
|
|
@@ -52,41 +53,72 @@ npm link
|
|
|
52
53
|
|
|
53
54
|
---
|
|
54
55
|
|
|
55
|
-
##
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
###
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
56
|
+
## What's new in V4 (4.0 → 4.5.0)
|
|
57
|
+
|
|
58
|
+
52+ módulos nuevos. 4041 tests (eran 1583 en v3.3).
|
|
59
|
+
|
|
60
|
+
### Performance & SAT
|
|
61
|
+
- CDCL v2 con VSIDS, clause learning y reinicios Luby.
|
|
62
|
+
- SAT incremental — reutiliza estado entre consultas.
|
|
63
|
+
- MUS (Minimal Unsatisfiable Subsets) para diagnóstico de inconsistencias.
|
|
64
|
+
- Cache de derivaciones con memoización y theorem-cache persistente.
|
|
65
|
+
|
|
66
|
+
### Type theory
|
|
67
|
+
- Curry-Howard: pruebas como programas, términos como tipos.
|
|
68
|
+
- System F con polimorfismo paramétrico.
|
|
69
|
+
- MLTT (Martin-Löf Type Theory) con tipos dependientes.
|
|
70
|
+
- NbE (Normalización por Evaluación) para reducción eficiente.
|
|
71
|
+
- Refinement types sobre términos base.
|
|
72
|
+
|
|
73
|
+
### Modal & temporal
|
|
74
|
+
- Frame axioms K / T / B / 4 / 5 / D; sistemas S4, S5, KD45 completos.
|
|
75
|
+
- CTL (Computation Tree Logic) con operadores EX/AX/EF/AF/EG/AG.
|
|
76
|
+
- LTL (Linear Temporal Logic) con next/until/release.
|
|
77
|
+
- μ-calculus modal con punto fijo mínimo y máximo.
|
|
78
|
+
- Hybrid logic con operadores de nombrado y satisfacción (@).
|
|
79
|
+
|
|
80
|
+
### Substructural & resource logic
|
|
81
|
+
- Lógica lineal y afín (no-contraction, no-weakening).
|
|
82
|
+
- π-calculus: razonamiento sobre procesos concurrentes.
|
|
83
|
+
- Proof nets: representación canónica de pruebas lineales.
|
|
84
|
+
|
|
85
|
+
### Non-classical
|
|
86
|
+
- Intuicionista NJ (natural deduction intuicionista completa).
|
|
87
|
+
- Lógica many-valued (Łukasiewicz, Gödel) y Belnap four-valued.
|
|
88
|
+
- Paraconsistente — soporte para contradicciones sin explosión.
|
|
89
|
+
|
|
90
|
+
### Decision procedures
|
|
91
|
+
- FOL con igualdad — resolución para fragmentos decidibles.
|
|
92
|
+
- ALC Description Logic (subsumption, instance checking).
|
|
93
|
+
- AC-3 CSP — constraint propagation para problemas de satisfacción.
|
|
94
|
+
- STRIPS — planificación clásica sobre estados y acciones.
|
|
95
|
+
|
|
96
|
+
### Probabilistic & uncertainty
|
|
97
|
+
- Bayesian reasoning con redes y propagación de evidencia.
|
|
98
|
+
- Hyperreal extensions: probabilidad con infinitesimales.
|
|
99
|
+
- Fuzzy logic — valores de verdad continuos en [0,1].
|
|
100
|
+
|
|
101
|
+
### Term mechanics
|
|
102
|
+
- TRS + KB (Term Rewriting Systems + Knuth-Bendix completion).
|
|
103
|
+
- Anti-unification — lgg (least general generalization) de términos.
|
|
104
|
+
- HO-unify (Higher-Order Unification).
|
|
105
|
+
- SKI combinators y reducción.
|
|
106
|
+
- λ-calculus con α/β/η reducción.
|
|
107
|
+
|
|
108
|
+
### Integration
|
|
109
|
+
- Text Layer v2 con invalidación propagada de claims.
|
|
110
|
+
- MDX bridge bidireccional: prosa ↔ ST sincronizados.
|
|
111
|
+
- Proof exchange Ed25519: pruebas firmadas y compartibles entre workspaces.
|
|
112
|
+
- Time-travel: snapshots ST por commit de workspace.
|
|
113
|
+
- Plugin system: perfiles lógicos custom registrables en runtime.
|
|
114
|
+
|
|
115
|
+
### Knowledge & argumentation
|
|
116
|
+
- FCA (Formal Concept Analysis) — retículos de conceptos formales.
|
|
117
|
+
- Dung argumentation — grafos de ataque, extensiones admisibles/estables.
|
|
118
|
+
- Default logic — inferencia por defecto con excepciones.
|
|
119
|
+
- AGM belief revision — cambio de creencias con postulados AGM.
|
|
120
|
+
- Abduction — inferencia a la mejor explicación.
|
|
121
|
+
- Profile bridge — mapeo semántico entre perfiles lógicos.
|
|
90
122
|
|
|
91
123
|
---
|
|
92
124
|
|
|
@@ -403,6 +435,15 @@ st.exec('logic arithmetic');
|
|
|
403
435
|
st.exec('explain 2 + 3 * 4');
|
|
404
436
|
```
|
|
405
437
|
|
|
438
|
+
### Subpaths disponibles
|
|
439
|
+
|
|
440
|
+
| Subpath | Uso |
|
|
441
|
+
|---------|-----|
|
|
442
|
+
| `@stevenvo780/st-lang` | Entrypoint principal: `evaluate`, `typeCheck`, `createInterpreter` |
|
|
443
|
+
| `@stevenvo780/st-lang/api` | API pura sin CLI: `evaluate`, `createInterpreter` |
|
|
444
|
+
| `@stevenvo780/st-lang/types` | Tipos TypeScript exportados (AST, perfiles, resultados) |
|
|
445
|
+
| `@stevenvo780/st-lang/protocol` | `ProtocolHandler` para integraciones de editor |
|
|
446
|
+
|
|
406
447
|
---
|
|
407
448
|
|
|
408
449
|
## Carpeta `examples/`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bdd/index.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST BDD — Punto de entrada público
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Reduced Ordered Binary Decision Diagrams (ROBDDs) de Bryant (1986).
|
|
7
|
+
//
|
|
8
|
+
// API principal:
|
|
9
|
+
// - `BDDManager(numVars)` crea un manager con orden por defecto 0..n-1.
|
|
10
|
+
// - `variable(i)`, `not_`, `and_`, `or_`, `xor`, `implies`, `iff`, `ite`
|
|
11
|
+
// construyen y combinan BDDs canónicos.
|
|
12
|
+
// - `exists(v, b)`, `forall(v, b)` cuantifican.
|
|
13
|
+
// - `satCount`, `isSatisfiable`, `isValid`, `equivalent`, `evaluate`
|
|
14
|
+
// consultan.
|
|
15
|
+
// - `fromCNF(clauses)` ingiere SAT en formato DIMACS.
|
|
16
|
+
// - `fromFormula(ast)` ingiere árboles simbólicos.
|
|
17
|
+
//
|
|
18
|
+
// Garantías:
|
|
19
|
+
// - Canonicidad estructural: dos BDDs equivalentes son la misma
|
|
20
|
+
// referencia (apt para `equivalent` en O(1)).
|
|
21
|
+
// - Apply algorithm con memoización: AND/OR/XOR en O(|G1|·|G2|).
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.nodeId = exports.isTerminal = exports.BDDManager = void 0;
|
|
24
|
+
var manager_1 = require("./manager");
|
|
25
|
+
Object.defineProperty(exports, "BDDManager", { enumerable: true, get: function () { return manager_1.BDDManager; } });
|
|
26
|
+
var types_1 = require("./types");
|
|
27
|
+
Object.defineProperty(exports, "isTerminal", { enumerable: true, get: function () { return types_1.isTerminal; } });
|
|
28
|
+
Object.defineProperty(exports, "nodeId", { enumerable: true, get: function () { return types_1.nodeId; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bdd/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,EAAE;AACF,iBAAiB;AACjB,0EAA0E;AAC1E,2EAA2E;AAC3E,4CAA4C;AAC5C,kDAAkD;AAClD,uEAAuE;AACvE,iBAAiB;AACjB,wDAAwD;AACxD,qDAAqD;AACrD,EAAE;AACF,aAAa;AACb,kEAAkE;AAClE,kDAAkD;AAClD,mEAAmE;;;AAEnE,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAEnB,iCAA6C;AAApC,mGAAA,UAAU,OAAA;AAAE,+FAAA,MAAM,OAAA"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { BDDNode, BDDStats } from './types';
|
|
2
|
+
export declare class BDDManager {
|
|
3
|
+
numVars: number;
|
|
4
|
+
private readonly TRUE;
|
|
5
|
+
private readonly FALSE;
|
|
6
|
+
private uniqueTable;
|
|
7
|
+
private nextId;
|
|
8
|
+
private reductions;
|
|
9
|
+
private memoAnd;
|
|
10
|
+
private memoOr;
|
|
11
|
+
private memoXor;
|
|
12
|
+
private memoIte;
|
|
13
|
+
private memoNot;
|
|
14
|
+
varOrder: number[];
|
|
15
|
+
constructor(numVars: number);
|
|
16
|
+
/**
|
|
17
|
+
* Cambia el orden global de variables. Invalida memo caches porque
|
|
18
|
+
* el orden afecta la estructura de los nodos. NO reordena nodos ya
|
|
19
|
+
* construidos — si los reutilizas tras setVarOrder pueden quedar
|
|
20
|
+
* inconsistentes; recomendado para sesiones nuevas.
|
|
21
|
+
*/
|
|
22
|
+
setVarOrder(order: number[]): void;
|
|
23
|
+
/** Posición de la variable v dentro del orden actual (0 = top). */
|
|
24
|
+
private orderPos;
|
|
25
|
+
/** Devuelve la variable "top" de un nodo o +∞ si es terminal. */
|
|
26
|
+
private topVarPos;
|
|
27
|
+
true_(): BDDNode;
|
|
28
|
+
false_(): BDDNode;
|
|
29
|
+
/**
|
|
30
|
+
* Crea/recupera un nodo interno con reducción (R1) + (R2).
|
|
31
|
+
*/
|
|
32
|
+
private makeNode;
|
|
33
|
+
/** BDD de la variable i: nodo (i, FALSE, TRUE). */
|
|
34
|
+
variable(i: number): BDDNode;
|
|
35
|
+
/**
|
|
36
|
+
* Negación: implementada como ITE(b, FALSE, TRUE).
|
|
37
|
+
* Con memo dedicado para evitar recomputación.
|
|
38
|
+
*/
|
|
39
|
+
not_(b: BDDNode): BDDNode;
|
|
40
|
+
and_(a: BDDNode, b: BDDNode): BDDNode;
|
|
41
|
+
or_(a: BDDNode, b: BDDNode): BDDNode;
|
|
42
|
+
xor(a: BDDNode, b: BDDNode): BDDNode;
|
|
43
|
+
/** A → B ≡ ¬A ∨ B */
|
|
44
|
+
implies(a: BDDNode, b: BDDNode): BDDNode;
|
|
45
|
+
/** A ↔ B ≡ ¬(A ⊕ B) */
|
|
46
|
+
iff(a: BDDNode, b: BDDNode): BDDNode;
|
|
47
|
+
/**
|
|
48
|
+
* If-Then-Else canónico: ite(c, t, e).
|
|
49
|
+
* Equivale a (c ∧ t) ∨ (¬c ∧ e). Implementado con descomposición
|
|
50
|
+
* Shannon directa para mejor caché.
|
|
51
|
+
*/
|
|
52
|
+
ite(cond: BDDNode, thenB: BDDNode, elseB: BDDNode): BDDNode;
|
|
53
|
+
/**
|
|
54
|
+
* Cofactor de b respecto a (variable v = val).
|
|
55
|
+
* Si v no aparece o aparece más profundo, retorna b sin cambios.
|
|
56
|
+
*/
|
|
57
|
+
private cofactor;
|
|
58
|
+
/**
|
|
59
|
+
* Apply algorithm de Bryant — combinador binario con memoization.
|
|
60
|
+
* Maneja AND, OR, XOR (los más usados); el resto se deriva.
|
|
61
|
+
*/
|
|
62
|
+
private applyOp;
|
|
63
|
+
private memoFor;
|
|
64
|
+
private applyTerminal;
|
|
65
|
+
/** ∃v. b ≡ b[v:=0] ∨ b[v:=1] */
|
|
66
|
+
exists(v: number, b: BDDNode): BDDNode;
|
|
67
|
+
/** ∀v. b ≡ b[v:=0] ∧ b[v:=1] */
|
|
68
|
+
forall(v: number, b: BDDNode): BDDNode;
|
|
69
|
+
/**
|
|
70
|
+
* Cuenta el número de asignaciones satisfactorias sobre `numVars`.
|
|
71
|
+
* Usa bigint para soportar funciones con muchas variables.
|
|
72
|
+
*/
|
|
73
|
+
satCount(b: BDDNode): bigint;
|
|
74
|
+
/**
|
|
75
|
+
* Conteo con "skip" de variables ausentes en la rama:
|
|
76
|
+
* cada variable saltada multiplica por 2.
|
|
77
|
+
*/
|
|
78
|
+
private satCountAt;
|
|
79
|
+
isSatisfiable(b: BDDNode): boolean;
|
|
80
|
+
isValid(b: BDDNode): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Equivalencia estructural. Como el manager canonicaliza, basta con
|
|
83
|
+
* comparar identidad de referencias.
|
|
84
|
+
*/
|
|
85
|
+
equivalent(a: BDDNode, b: BDDNode): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Evalúa b sobre una asignación `assignment[i] = valor de la var i`.
|
|
88
|
+
*/
|
|
89
|
+
evaluate(b: BDDNode, assignment: boolean[]): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Construye un BDD desde CNF. Cada clausula es un array de literales
|
|
92
|
+
* en la convención DIMACS:
|
|
93
|
+
* - literal i > 0 → variable (i-1) positiva
|
|
94
|
+
* - literal i < 0 → variable (-i-1) negada
|
|
95
|
+
* El resultado es el AND de las disyunciones de cada clausula.
|
|
96
|
+
*
|
|
97
|
+
* Optimización: ordena clausulas por longitud creciente para que la
|
|
98
|
+
* unidad de propagación temprana mantenga el BDD pequeño.
|
|
99
|
+
*/
|
|
100
|
+
fromCNF(clauses: number[][]): BDDNode;
|
|
101
|
+
/**
|
|
102
|
+
* Construye un BDD desde una fórmula simbólica con sintaxis libre.
|
|
103
|
+
* Soporta: `{ kind: 'var', index: number }`, `{ kind: 'true' }`,
|
|
104
|
+
* `{ kind: 'false' }`, `{ kind: 'not', child }`,
|
|
105
|
+
* `{ kind: 'and'|'or'|'xor'|'implies'|'iff', left, right }`,
|
|
106
|
+
* `{ kind: 'ite', cond, then, else }`.
|
|
107
|
+
*
|
|
108
|
+
* Si llega algo no reconocido lanza error — el formato es estricto
|
|
109
|
+
* para evitar `any` silenciosos.
|
|
110
|
+
*/
|
|
111
|
+
fromFormula(formula: {
|
|
112
|
+
kind: string;
|
|
113
|
+
[k: string]: unknown;
|
|
114
|
+
}): BDDNode;
|
|
115
|
+
stats(): BDDStats;
|
|
116
|
+
/**
|
|
117
|
+
* Cuenta los nodos alcanzables desde `b` (sin contar terminales).
|
|
118
|
+
* Útil para comparar tamaños bajo distintos órdenes de variables.
|
|
119
|
+
*/
|
|
120
|
+
countReachable(b: BDDNode): number;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/bdd/manager.ts"],"names":[],"mappings":"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"}
|