@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.
Files changed (286) hide show
  1. package/README.md +78 -37
  2. package/dist/bdd/index.d.ts +4 -0
  3. package/dist/bdd/index.d.ts.map +1 -0
  4. package/dist/bdd/index.js +29 -0
  5. package/dist/bdd/index.js.map +1 -0
  6. package/dist/bdd/manager.d.ts +122 -0
  7. package/dist/bdd/manager.d.ts.map +1 -0
  8. package/dist/bdd/manager.js +524 -0
  9. package/dist/bdd/manager.js.map +1 -0
  10. package/dist/bdd/types.d.ts +20 -0
  11. package/dist/bdd/types.d.ts.map +1 -0
  12. package/dist/bdd/types.js +28 -0
  13. package/dist/bdd/types.js.map +1 -0
  14. package/dist/game-theory/common-games.d.ts +50 -0
  15. package/dist/game-theory/common-games.d.ts.map +1 -0
  16. package/dist/game-theory/common-games.js +112 -0
  17. package/dist/game-theory/common-games.js.map +1 -0
  18. package/dist/game-theory/dominance.d.ts +26 -0
  19. package/dist/game-theory/dominance.d.ts.map +1 -0
  20. package/dist/game-theory/dominance.js +203 -0
  21. package/dist/game-theory/dominance.js.map +1 -0
  22. package/dist/game-theory/index.d.ts +8 -0
  23. package/dist/game-theory/index.d.ts.map +1 -0
  24. package/dist/game-theory/index.js +47 -0
  25. package/dist/game-theory/index.js.map +1 -0
  26. package/dist/game-theory/lemke-howson.d.ts +3 -0
  27. package/dist/game-theory/lemke-howson.d.ts.map +1 -0
  28. package/dist/game-theory/lemke-howson.js +269 -0
  29. package/dist/game-theory/lemke-howson.js.map +1 -0
  30. package/dist/game-theory/linalg.d.ts +7 -0
  31. package/dist/game-theory/linalg.d.ts.map +1 -0
  32. package/dist/game-theory/linalg.js +69 -0
  33. package/dist/game-theory/linalg.js.map +1 -0
  34. package/dist/game-theory/pure-nash.d.ts +3 -0
  35. package/dist/game-theory/pure-nash.d.ts.map +1 -0
  36. package/dist/game-theory/pure-nash.js +86 -0
  37. package/dist/game-theory/pure-nash.js.map +1 -0
  38. package/dist/game-theory/support-enumeration.d.ts +3 -0
  39. package/dist/game-theory/support-enumeration.d.ts.map +1 -0
  40. package/dist/game-theory/support-enumeration.js +214 -0
  41. package/dist/game-theory/support-enumeration.js.map +1 -0
  42. package/dist/game-theory/types.d.ts +57 -0
  43. package/dist/game-theory/types.d.ts.map +1 -0
  44. package/dist/game-theory/types.js +191 -0
  45. package/dist/game-theory/types.js.map +1 -0
  46. package/dist/index.d.ts +19 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +75 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/information-theory/index.d.ts +29 -0
  51. package/dist/information-theory/index.d.ts.map +1 -0
  52. package/dist/information-theory/index.js +323 -0
  53. package/dist/information-theory/index.js.map +1 -0
  54. package/dist/namespaces/logic.d.ts +42 -0
  55. package/dist/namespaces/logic.d.ts.map +1 -0
  56. package/dist/namespaces/logic.js +112 -0
  57. package/dist/namespaces/logic.js.map +1 -0
  58. package/dist/namespaces/proof-systems.d.ts +18 -0
  59. package/dist/namespaces/proof-systems.d.ts.map +1 -0
  60. package/dist/namespaces/proof-systems.js +59 -0
  61. package/dist/namespaces/proof-systems.js.map +1 -0
  62. package/dist/namespaces/reasoning.d.ts +26 -0
  63. package/dist/namespaces/reasoning.d.ts.map +1 -0
  64. package/dist/namespaces/reasoning.js +72 -0
  65. package/dist/namespaces/reasoning.js.map +1 -0
  66. package/dist/namespaces/semantics.d.ts +21 -0
  67. package/dist/namespaces/semantics.d.ts.map +1 -0
  68. package/dist/namespaces/semantics.js +64 -0
  69. package/dist/namespaces/semantics.js.map +1 -0
  70. package/dist/namespaces/solvers.d.ts +22 -0
  71. package/dist/namespaces/solvers.d.ts.map +1 -0
  72. package/dist/namespaces/solvers.js +66 -0
  73. package/dist/namespaces/solvers.js.map +1 -0
  74. package/dist/namespaces/type-theory.d.ts +22 -0
  75. package/dist/namespaces/type-theory.d.ts.map +1 -0
  76. package/dist/namespaces/type-theory.js +65 -0
  77. package/dist/namespaces/type-theory.js.map +1 -0
  78. package/dist/optimization/branch-and-bound.d.ts +11 -0
  79. package/dist/optimization/branch-and-bound.d.ts.map +1 -0
  80. package/dist/optimization/branch-and-bound.js +311 -0
  81. package/dist/optimization/branch-and-bound.js.map +1 -0
  82. package/dist/optimization/index.d.ts +5 -0
  83. package/dist/optimization/index.d.ts.map +1 -0
  84. package/dist/optimization/index.js +20 -0
  85. package/dist/optimization/index.js.map +1 -0
  86. package/dist/optimization/simplex.d.ts +8 -0
  87. package/dist/optimization/simplex.d.ts.map +1 -0
  88. package/dist/optimization/simplex.js +408 -0
  89. package/dist/optimization/simplex.js.map +1 -0
  90. package/dist/optimization/standard-form.d.ts +11 -0
  91. package/dist/optimization/standard-form.d.ts.map +1 -0
  92. package/dist/optimization/standard-form.js +112 -0
  93. package/dist/optimization/standard-form.js.map +1 -0
  94. package/dist/optimization/types.d.ts +44 -0
  95. package/dist/optimization/types.d.ts.map +1 -0
  96. package/dist/optimization/types.js +15 -0
  97. package/dist/optimization/types.js.map +1 -0
  98. package/dist/profiles/hol/connectives.d.ts +46 -0
  99. package/dist/profiles/hol/connectives.d.ts.map +1 -0
  100. package/dist/profiles/hol/connectives.js +104 -0
  101. package/dist/profiles/hol/connectives.js.map +1 -0
  102. package/dist/profiles/hol/index.d.ts +7 -0
  103. package/dist/profiles/hol/index.d.ts.map +1 -0
  104. package/dist/profiles/hol/index.js +77 -0
  105. package/dist/profiles/hol/index.js.map +1 -0
  106. package/dist/profiles/hol/rules.d.ts +31 -0
  107. package/dist/profiles/hol/rules.d.ts.map +1 -0
  108. package/dist/profiles/hol/rules.js +258 -0
  109. package/dist/profiles/hol/rules.js.map +1 -0
  110. package/dist/profiles/hol/term.d.ts +52 -0
  111. package/dist/profiles/hol/term.d.ts.map +1 -0
  112. package/dist/profiles/hol/term.js +345 -0
  113. package/dist/profiles/hol/term.js.map +1 -0
  114. package/dist/profiles/hol/type-system.d.ts +38 -0
  115. package/dist/profiles/hol/type-system.d.ts.map +1 -0
  116. package/dist/profiles/hol/type-system.js +133 -0
  117. package/dist/profiles/hol/type-system.js.map +1 -0
  118. package/dist/profiles/hol/types.d.ts +59 -0
  119. package/dist/profiles/hol/types.d.ts.map +1 -0
  120. package/dist/profiles/hol/types.js +26 -0
  121. package/dist/profiles/hol/types.js.map +1 -0
  122. package/dist/smt-lib/ast.d.ts +138 -0
  123. package/dist/smt-lib/ast.d.ts.map +1 -0
  124. package/dist/smt-lib/ast.js +73 -0
  125. package/dist/smt-lib/ast.js.map +1 -0
  126. package/dist/smt-lib/emitter.d.ts +12 -0
  127. package/dist/smt-lib/emitter.d.ts.map +1 -0
  128. package/dist/smt-lib/emitter.js +174 -0
  129. package/dist/smt-lib/emitter.js.map +1 -0
  130. package/dist/smt-lib/index.d.ts +6 -0
  131. package/dist/smt-lib/index.d.ts.map +1 -0
  132. package/dist/smt-lib/index.js +31 -0
  133. package/dist/smt-lib/index.js.map +1 -0
  134. package/dist/smt-lib/parser.d.ts +13 -0
  135. package/dist/smt-lib/parser.d.ts.map +1 -0
  136. package/dist/smt-lib/parser.js +614 -0
  137. package/dist/smt-lib/parser.js.map +1 -0
  138. package/dist/smt-lib/tokenizer.d.ts +16 -0
  139. package/dist/smt-lib/tokenizer.d.ts.map +1 -0
  140. package/dist/smt-lib/tokenizer.js +234 -0
  141. package/dist/smt-lib/tokenizer.js.map +1 -0
  142. package/dist/tests/api/namespaces.test.d.ts +9 -0
  143. package/dist/tests/api/namespaces.test.d.ts.map +1 -0
  144. package/dist/tests/api/namespaces.test.js +218 -0
  145. package/dist/tests/api/namespaces.test.js.map +1 -0
  146. package/dist/tests/bdd/manager.test.d.ts +2 -0
  147. package/dist/tests/bdd/manager.test.d.ts.map +1 -0
  148. package/dist/tests/bdd/manager.test.js +472 -0
  149. package/dist/tests/bdd/manager.test.js.map +1 -0
  150. package/dist/tests/game-theory/game-theory.test.d.ts +2 -0
  151. package/dist/tests/game-theory/game-theory.test.d.ts.map +1 -0
  152. package/dist/tests/game-theory/game-theory.test.js +252 -0
  153. package/dist/tests/game-theory/game-theory.test.js.map +1 -0
  154. package/dist/tests/hol/hol.test.d.ts +2 -0
  155. package/dist/tests/hol/hol.test.d.ts.map +1 -0
  156. package/dist/tests/hol/hol.test.js +340 -0
  157. package/dist/tests/hol/hol.test.js.map +1 -0
  158. package/dist/tests/information-theory/information-theory.test.d.ts +2 -0
  159. package/dist/tests/information-theory/information-theory.test.d.ts.map +1 -0
  160. package/dist/tests/information-theory/information-theory.test.js +291 -0
  161. package/dist/tests/information-theory/information-theory.test.js.map +1 -0
  162. package/dist/tests/optimization/ilp.test.d.ts +2 -0
  163. package/dist/tests/optimization/ilp.test.d.ts.map +1 -0
  164. package/dist/tests/optimization/ilp.test.js +204 -0
  165. package/dist/tests/optimization/ilp.test.js.map +1 -0
  166. package/dist/tests/optimization/lp.test.d.ts +2 -0
  167. package/dist/tests/optimization/lp.test.d.ts.map +1 -0
  168. package/dist/tests/optimization/lp.test.js +224 -0
  169. package/dist/tests/optimization/lp.test.js.map +1 -0
  170. package/dist/tests/properties/agm.property.test.d.ts +2 -0
  171. package/dist/tests/properties/agm.property.test.d.ts.map +1 -0
  172. package/dist/tests/properties/agm.property.test.js +75 -0
  173. package/dist/tests/properties/agm.property.test.js.map +1 -0
  174. package/dist/tests/properties/anti-unification.property.test.d.ts +2 -0
  175. package/dist/tests/properties/anti-unification.property.test.d.ts.map +1 -0
  176. package/dist/tests/properties/anti-unification.property.test.js +43 -0
  177. package/dist/tests/properties/anti-unification.property.test.js.map +1 -0
  178. package/dist/tests/properties/argumentation.property.test.d.ts +2 -0
  179. package/dist/tests/properties/argumentation.property.test.d.ts.map +1 -0
  180. package/dist/tests/properties/argumentation.property.test.js +51 -0
  181. package/dist/tests/properties/argumentation.property.test.js.map +1 -0
  182. package/dist/tests/properties/bayesian.property.test.d.ts +2 -0
  183. package/dist/tests/properties/bayesian.property.test.d.ts.map +1 -0
  184. package/dist/tests/properties/bayesian.property.test.js +32 -0
  185. package/dist/tests/properties/bayesian.property.test.js.map +1 -0
  186. package/dist/tests/properties/bisimulation.property.test.d.ts +2 -0
  187. package/dist/tests/properties/bisimulation.property.test.d.ts.map +1 -0
  188. package/dist/tests/properties/bisimulation.property.test.js +50 -0
  189. package/dist/tests/properties/bisimulation.property.test.js.map +1 -0
  190. package/dist/tests/properties/cdcl.property.test.d.ts +2 -0
  191. package/dist/tests/properties/cdcl.property.test.d.ts.map +1 -0
  192. package/dist/tests/properties/cdcl.property.test.js +70 -0
  193. package/dist/tests/properties/cdcl.property.test.js.map +1 -0
  194. package/dist/tests/properties/coinduction.property.test.d.ts +2 -0
  195. package/dist/tests/properties/coinduction.property.test.d.ts.map +1 -0
  196. package/dist/tests/properties/coinduction.property.test.js +34 -0
  197. package/dist/tests/properties/coinduction.property.test.js.map +1 -0
  198. package/dist/tests/properties/constructive-reals.property.test.d.ts +2 -0
  199. package/dist/tests/properties/constructive-reals.property.test.d.ts.map +1 -0
  200. package/dist/tests/properties/constructive-reals.property.test.js +59 -0
  201. package/dist/tests/properties/constructive-reals.property.test.js.map +1 -0
  202. package/dist/tests/properties/csp.property.test.d.ts +2 -0
  203. package/dist/tests/properties/csp.property.test.d.ts.map +1 -0
  204. package/dist/tests/properties/csp.property.test.js +58 -0
  205. package/dist/tests/properties/csp.property.test.js.map +1 -0
  206. package/dist/tests/properties/generators.d.ts +78 -0
  207. package/dist/tests/properties/generators.d.ts.map +1 -0
  208. package/dist/tests/properties/generators.js +348 -0
  209. package/dist/tests/properties/generators.js.map +1 -0
  210. package/dist/tests/properties/ho-unify.property.test.d.ts +2 -0
  211. package/dist/tests/properties/ho-unify.property.test.d.ts.map +1 -0
  212. package/dist/tests/properties/ho-unify.property.test.js +46 -0
  213. package/dist/tests/properties/ho-unify.property.test.js.map +1 -0
  214. package/dist/tests/properties/hyperreal.property.test.d.ts +2 -0
  215. package/dist/tests/properties/hyperreal.property.test.d.ts.map +1 -0
  216. package/dist/tests/properties/hyperreal.property.test.js +33 -0
  217. package/dist/tests/properties/hyperreal.property.test.js.map +1 -0
  218. package/dist/tests/properties/intuit-nj.property.test.d.ts +2 -0
  219. package/dist/tests/properties/intuit-nj.property.test.d.ts.map +1 -0
  220. package/dist/tests/properties/intuit-nj.property.test.js +57 -0
  221. package/dist/tests/properties/intuit-nj.property.test.js.map +1 -0
  222. package/dist/tests/properties/lambda-calc.property.test.d.ts +2 -0
  223. package/dist/tests/properties/lambda-calc.property.test.d.ts.map +1 -0
  224. package/dist/tests/properties/lambda-calc.property.test.js +35 -0
  225. package/dist/tests/properties/lambda-calc.property.test.js.map +1 -0
  226. package/dist/tests/properties/mln.property.test.d.ts +2 -0
  227. package/dist/tests/properties/mln.property.test.d.ts.map +1 -0
  228. package/dist/tests/properties/mln.property.test.js +41 -0
  229. package/dist/tests/properties/mln.property.test.js.map +1 -0
  230. package/dist/tests/properties/mltt.property.test.d.ts +2 -0
  231. package/dist/tests/properties/mltt.property.test.d.ts.map +1 -0
  232. package/dist/tests/properties/mltt.property.test.js +33 -0
  233. package/dist/tests/properties/mltt.property.test.js.map +1 -0
  234. package/dist/tests/properties/nbe.property.test.d.ts +2 -0
  235. package/dist/tests/properties/nbe.property.test.d.ts.map +1 -0
  236. package/dist/tests/properties/nbe.property.test.js +44 -0
  237. package/dist/tests/properties/nbe.property.test.js.map +1 -0
  238. package/dist/tests/properties/planning.property.test.d.ts +2 -0
  239. package/dist/tests/properties/planning.property.test.d.ts.map +1 -0
  240. package/dist/tests/properties/planning.property.test.js +51 -0
  241. package/dist/tests/properties/planning.property.test.js.map +1 -0
  242. package/dist/tests/properties/profile-bridge.property.test.d.ts +2 -0
  243. package/dist/tests/properties/profile-bridge.property.test.d.ts.map +1 -0
  244. package/dist/tests/properties/profile-bridge.property.test.js +71 -0
  245. package/dist/tests/properties/profile-bridge.property.test.js.map +1 -0
  246. package/dist/tests/properties/refinement-types.property.test.d.ts +2 -0
  247. package/dist/tests/properties/refinement-types.property.test.d.ts.map +1 -0
  248. package/dist/tests/properties/refinement-types.property.test.js +37 -0
  249. package/dist/tests/properties/refinement-types.property.test.js.map +1 -0
  250. package/dist/tests/properties/sequent-g3.property.test.d.ts +2 -0
  251. package/dist/tests/properties/sequent-g3.property.test.d.ts.map +1 -0
  252. package/dist/tests/properties/sequent-g3.property.test.js +34 -0
  253. package/dist/tests/properties/sequent-g3.property.test.js.map +1 -0
  254. package/dist/tests/properties/symbolic-diff.property.test.d.ts +2 -0
  255. package/dist/tests/properties/symbolic-diff.property.test.d.ts.map +1 -0
  256. package/dist/tests/properties/symbolic-diff.property.test.js +49 -0
  257. package/dist/tests/properties/symbolic-diff.property.test.js.map +1 -0
  258. package/dist/tests/properties/system-f.property.test.d.ts +2 -0
  259. package/dist/tests/properties/system-f.property.test.d.ts.map +1 -0
  260. package/dist/tests/properties/system-f.property.test.js +37 -0
  261. package/dist/tests/properties/system-f.property.test.js.map +1 -0
  262. package/dist/tests/properties/theorem-cache.property.test.d.ts +2 -0
  263. package/dist/tests/properties/theorem-cache.property.test.d.ts.map +1 -0
  264. package/dist/tests/properties/theorem-cache.property.test.js +38 -0
  265. package/dist/tests/properties/theorem-cache.property.test.js.map +1 -0
  266. package/dist/tests/properties/trs.property.test.d.ts +2 -0
  267. package/dist/tests/properties/trs.property.test.d.ts.map +1 -0
  268. package/dist/tests/properties/trs.property.test.js +34 -0
  269. package/dist/tests/properties/trs.property.test.js.map +1 -0
  270. package/dist/tests/properties/unification.property.test.d.ts +2 -0
  271. package/dist/tests/properties/unification.property.test.d.ts.map +1 -0
  272. package/dist/tests/properties/unification.property.test.js +42 -0
  273. package/dist/tests/properties/unification.property.test.js.map +1 -0
  274. package/dist/tests/smt-lib/emitter.test.d.ts +2 -0
  275. package/dist/tests/smt-lib/emitter.test.d.ts.map +1 -0
  276. package/dist/tests/smt-lib/emitter.test.js +155 -0
  277. package/dist/tests/smt-lib/emitter.test.js.map +1 -0
  278. package/dist/tests/smt-lib/parser.test.d.ts +2 -0
  279. package/dist/tests/smt-lib/parser.test.d.ts.map +1 -0
  280. package/dist/tests/smt-lib/parser.test.js +164 -0
  281. package/dist/tests/smt-lib/parser.test.js.map +1 -0
  282. package/dist/tests/smt-lib/tokenizer.test.d.ts +2 -0
  283. package/dist/tests/smt-lib/tokenizer.test.d.ts.map +1 -0
  284. package/dist/tests/smt-lib/tokenizer.test.js +59 -0
  285. package/dist/tests/smt-lib/tokenizer.test.js.map +1 -0
  286. 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
- [![Version](https://img.shields.io/badge/version-3.3.0-blue.svg)](package.json)
10
+ [![Version](https://img.shields.io/badge/version-4.5.0-blue.svg)](package.json)
11
+ [![Tests](https://img.shields.io/badge/tests-4041-brightgreen.svg)]()
11
12
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
12
13
  [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)]()
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 -g @stevenvo780/st-lang
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
- ## Novedades en 3.3
56
-
57
- ### AST visitors tipados
58
-
59
- Refactor del parser monolítico a un sistema de visitors con tipos exhaustivos.
60
-
61
- ```typescript
62
- import { visit, BaseASTVisitor } from '@stevenvo780/st-lang/ast';
63
-
64
- class MyVisitor extends BaseASTVisitor<string> {
65
- visitDerive(node) { return `derive: ${node.conclusion}`; }
66
- // TypeScript exige manejar cada variante del AST
67
- }
68
-
69
- const result = visit(programAST, new MyVisitor());
70
- ```
71
-
72
- ### Type checker en runtime
73
-
74
- Valida programas antes de ejecutarlos. Detecta 7 categorías de error
75
- (TC001–TC008) con sugerencias automáticas vía distancia Levenshtein.
76
-
77
- ```typescript
78
- import { typeCheck, evaluate } from '@stevenvo780/st-lang';
79
-
80
- const errors = typeCheck(programAST, 'classical', 'file.st');
81
- if (errors.length === 0) {
82
- const result = evaluate(programAST, 'classical');
83
- }
84
- ```
85
-
86
- ### Cobertura y benchmarks
87
-
88
- - Tests: 1621 (cobertura 78.81%, subió desde 71%).
89
- - Suite de benchmarks formal con baselines y detección de regresión de rendimiento.
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,4 @@
1
+ export { BDDManager } from './manager';
2
+ export type { BDDNode, BDDStats } from './types';
3
+ export { isTerminal, nodeId } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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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"}