@stevenvo780/st-lang 4.2.0 → 4.3.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.
Files changed (293) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +36 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lambda-calc/church.d.ts +8 -0
  6. package/dist/lambda-calc/church.d.ts.map +1 -0
  7. package/dist/lambda-calc/church.js +67 -0
  8. package/dist/lambda-calc/church.js.map +1 -0
  9. package/dist/lambda-calc/combinators.d.ts +8 -0
  10. package/dist/lambda-calc/combinators.d.ts.map +1 -0
  11. package/dist/lambda-calc/combinators.js +24 -0
  12. package/dist/lambda-calc/combinators.js.map +1 -0
  13. package/dist/lambda-calc/index.d.ts +8 -0
  14. package/dist/lambda-calc/index.d.ts.map +1 -0
  15. package/dist/lambda-calc/index.js +48 -0
  16. package/dist/lambda-calc/index.js.map +1 -0
  17. package/dist/lambda-calc/reduce.d.ts +18 -0
  18. package/dist/lambda-calc/reduce.d.ts.map +1 -0
  19. package/dist/lambda-calc/reduce.js +174 -0
  20. package/dist/lambda-calc/reduce.js.map +1 -0
  21. package/dist/lambda-calc/substitution.d.ts +6 -0
  22. package/dist/lambda-calc/substitution.d.ts.map +1 -0
  23. package/dist/lambda-calc/substitution.js +120 -0
  24. package/dist/lambda-calc/substitution.js.map +1 -0
  25. package/dist/lambda-calc/types.d.ts +19 -0
  26. package/dist/lambda-calc/types.d.ts.map +1 -0
  27. package/dist/lambda-calc/types.js +72 -0
  28. package/dist/lambda-calc/types.js.map +1 -0
  29. package/dist/profiles/intuitionistic-nj/formula.d.ts +19 -0
  30. package/dist/profiles/intuitionistic-nj/formula.d.ts.map +1 -0
  31. package/dist/profiles/intuitionistic-nj/formula.js +99 -0
  32. package/dist/profiles/intuitionistic-nj/formula.js.map +1 -0
  33. package/dist/profiles/intuitionistic-nj/index.d.ts +5 -0
  34. package/dist/profiles/intuitionistic-nj/index.d.ts.map +1 -0
  35. package/dist/profiles/intuitionistic-nj/index.js +24 -0
  36. package/dist/profiles/intuitionistic-nj/index.js.map +1 -0
  37. package/dist/profiles/intuitionistic-nj/kripke.d.ts +17 -0
  38. package/dist/profiles/intuitionistic-nj/kripke.d.ts.map +1 -0
  39. package/dist/profiles/intuitionistic-nj/kripke.js +206 -0
  40. package/dist/profiles/intuitionistic-nj/kripke.js.map +1 -0
  41. package/dist/profiles/intuitionistic-nj/prover.d.ts +13 -0
  42. package/dist/profiles/intuitionistic-nj/prover.d.ts.map +1 -0
  43. package/dist/profiles/intuitionistic-nj/prover.js +418 -0
  44. package/dist/profiles/intuitionistic-nj/prover.js.map +1 -0
  45. package/dist/profiles/intuitionistic-nj/types.d.ts +55 -0
  46. package/dist/profiles/intuitionistic-nj/types.d.ts.map +1 -0
  47. package/dist/profiles/intuitionistic-nj/types.js +21 -0
  48. package/dist/profiles/intuitionistic-nj/types.js.map +1 -0
  49. package/dist/profiles/many-valued/index.d.ts +39 -0
  50. package/dist/profiles/many-valued/index.d.ts.map +1 -0
  51. package/dist/profiles/many-valued/index.js +250 -0
  52. package/dist/profiles/many-valued/index.js.map +1 -0
  53. package/dist/profiles/modal-frame-axioms/formula.d.ts +23 -0
  54. package/dist/profiles/modal-frame-axioms/formula.d.ts.map +1 -0
  55. package/dist/profiles/modal-frame-axioms/formula.js +158 -0
  56. package/dist/profiles/modal-frame-axioms/formula.js.map +1 -0
  57. package/dist/profiles/modal-frame-axioms/index.d.ts +6 -0
  58. package/dist/profiles/modal-frame-axioms/index.d.ts.map +1 -0
  59. package/dist/profiles/modal-frame-axioms/index.js +41 -0
  60. package/dist/profiles/modal-frame-axioms/index.js.map +1 -0
  61. package/dist/profiles/modal-frame-axioms/systems.d.ts +29 -0
  62. package/dist/profiles/modal-frame-axioms/systems.d.ts.map +1 -0
  63. package/dist/profiles/modal-frame-axioms/systems.js +96 -0
  64. package/dist/profiles/modal-frame-axioms/systems.js.map +1 -0
  65. package/dist/profiles/modal-frame-axioms/tableau.d.ts +12 -0
  66. package/dist/profiles/modal-frame-axioms/tableau.d.ts.map +1 -0
  67. package/dist/profiles/modal-frame-axioms/tableau.js +299 -0
  68. package/dist/profiles/modal-frame-axioms/tableau.js.map +1 -0
  69. package/dist/profiles/modal-frame-axioms/types.d.ts +61 -0
  70. package/dist/profiles/modal-frame-axioms/types.d.ts.map +1 -0
  71. package/dist/profiles/modal-frame-axioms/types.js +27 -0
  72. package/dist/profiles/modal-frame-axioms/types.js.map +1 -0
  73. package/dist/profiles/substructural/index.d.ts +4 -0
  74. package/dist/profiles/substructural/index.d.ts.map +1 -0
  75. package/dist/profiles/substructural/index.js +22 -0
  76. package/dist/profiles/substructural/index.js.map +1 -0
  77. package/dist/profiles/substructural/prover.d.ts +13 -0
  78. package/dist/profiles/substructural/prover.d.ts.map +1 -0
  79. package/dist/profiles/substructural/prover.js +481 -0
  80. package/dist/profiles/substructural/prover.js.map +1 -0
  81. package/dist/profiles/substructural/types.d.ts +72 -0
  82. package/dist/profiles/substructural/types.d.ts.map +1 -0
  83. package/dist/profiles/substructural/types.js +27 -0
  84. package/dist/profiles/substructural/types.js.map +1 -0
  85. package/dist/runtime/abduction/entails.d.ts +21 -0
  86. package/dist/runtime/abduction/entails.d.ts.map +1 -0
  87. package/dist/runtime/abduction/entails.js +308 -0
  88. package/dist/runtime/abduction/entails.js.map +1 -0
  89. package/dist/runtime/abduction/find.d.ts +18 -0
  90. package/dist/runtime/abduction/find.d.ts.map +1 -0
  91. package/dist/runtime/abduction/find.js +202 -0
  92. package/dist/runtime/abduction/find.js.map +1 -0
  93. package/dist/runtime/abduction/index.d.ts +4 -0
  94. package/dist/runtime/abduction/index.d.ts.map +1 -0
  95. package/dist/runtime/abduction/index.js +26 -0
  96. package/dist/runtime/abduction/index.js.map +1 -0
  97. package/dist/runtime/abduction/types.d.ts +78 -0
  98. package/dist/runtime/abduction/types.d.ts.map +1 -0
  99. package/dist/runtime/abduction/types.js +23 -0
  100. package/dist/runtime/abduction/types.js.map +1 -0
  101. package/dist/runtime/bayesian/factor.d.ts +22 -0
  102. package/dist/runtime/bayesian/factor.d.ts.map +1 -0
  103. package/dist/runtime/bayesian/factor.js +249 -0
  104. package/dist/runtime/bayesian/factor.js.map +1 -0
  105. package/dist/runtime/bayesian/index.d.ts +3 -0
  106. package/dist/runtime/bayesian/index.d.ts.map +1 -0
  107. package/dist/runtime/bayesian/index.js +25 -0
  108. package/dist/runtime/bayesian/index.js.map +1 -0
  109. package/dist/runtime/bayesian/inference.d.ts +6 -0
  110. package/dist/runtime/bayesian/inference.d.ts.map +1 -0
  111. package/dist/runtime/bayesian/inference.js +260 -0
  112. package/dist/runtime/bayesian/inference.js.map +1 -0
  113. package/dist/runtime/bayesian/types.d.ts +19 -0
  114. package/dist/runtime/bayesian/types.d.ts.map +1 -0
  115. package/dist/runtime/bayesian/types.js +9 -0
  116. package/dist/runtime/bayesian/types.js.map +1 -0
  117. package/dist/runtime/bisimulation/index.d.ts +4 -0
  118. package/dist/runtime/bisimulation/index.d.ts.map +1 -0
  119. package/dist/runtime/bisimulation/index.js +21 -0
  120. package/dist/runtime/bisimulation/index.js.map +1 -0
  121. package/dist/runtime/bisimulation/operations.d.ts +40 -0
  122. package/dist/runtime/bisimulation/operations.d.ts.map +1 -0
  123. package/dist/runtime/bisimulation/operations.js +219 -0
  124. package/dist/runtime/bisimulation/operations.js.map +1 -0
  125. package/dist/runtime/bisimulation/paige-tarjan.d.ts +8 -0
  126. package/dist/runtime/bisimulation/paige-tarjan.d.ts.map +1 -0
  127. package/dist/runtime/bisimulation/paige-tarjan.js +199 -0
  128. package/dist/runtime/bisimulation/paige-tarjan.js.map +1 -0
  129. package/dist/runtime/bisimulation/types.d.ts +26 -0
  130. package/dist/runtime/bisimulation/types.d.ts.map +1 -0
  131. package/dist/runtime/bisimulation/types.js +22 -0
  132. package/dist/runtime/bisimulation/types.js.map +1 -0
  133. package/dist/runtime/fca/context.d.ts +46 -0
  134. package/dist/runtime/fca/context.d.ts.map +1 -0
  135. package/dist/runtime/fca/context.js +155 -0
  136. package/dist/runtime/fca/context.js.map +1 -0
  137. package/dist/runtime/fca/implications.d.ts +10 -0
  138. package/dist/runtime/fca/implications.d.ts.map +1 -0
  139. package/dist/runtime/fca/implications.js +33 -0
  140. package/dist/runtime/fca/implications.js.map +1 -0
  141. package/dist/runtime/fca/index.d.ts +6 -0
  142. package/dist/runtime/fca/index.d.ts.map +1 -0
  143. package/dist/runtime/fca/index.js +39 -0
  144. package/dist/runtime/fca/index.js.map +1 -0
  145. package/dist/runtime/fca/lattice.d.ts +10 -0
  146. package/dist/runtime/fca/lattice.d.ts.map +1 -0
  147. package/dist/runtime/fca/lattice.js +86 -0
  148. package/dist/runtime/fca/lattice.js.map +1 -0
  149. package/dist/runtime/fca/next-closure.d.ts +12 -0
  150. package/dist/runtime/fca/next-closure.d.ts.map +1 -0
  151. package/dist/runtime/fca/next-closure.js +99 -0
  152. package/dist/runtime/fca/next-closure.js.map +1 -0
  153. package/dist/runtime/fca/types.d.ts +31 -0
  154. package/dist/runtime/fca/types.d.ts.map +1 -0
  155. package/dist/runtime/fca/types.js +30 -0
  156. package/dist/runtime/fca/types.js.map +1 -0
  157. package/dist/runtime/proof-minify/index.d.ts +3 -0
  158. package/dist/runtime/proof-minify/index.d.ts.map +1 -0
  159. package/dist/runtime/proof-minify/index.js +13 -0
  160. package/dist/runtime/proof-minify/index.js.map +1 -0
  161. package/dist/runtime/proof-minify/minify.d.ts +13 -0
  162. package/dist/runtime/proof-minify/minify.d.ts.map +1 -0
  163. package/dist/runtime/proof-minify/minify.js +540 -0
  164. package/dist/runtime/proof-minify/minify.js.map +1 -0
  165. package/dist/runtime/proof-minify/types.d.ts +89 -0
  166. package/dist/runtime/proof-minify/types.d.ts.map +1 -0
  167. package/dist/runtime/proof-minify/types.js +16 -0
  168. package/dist/runtime/proof-minify/types.js.map +1 -0
  169. package/dist/runtime/symbolic-diff/constructors.d.ts +16 -0
  170. package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -0
  171. package/dist/runtime/symbolic-diff/constructors.js +75 -0
  172. package/dist/runtime/symbolic-diff/constructors.js.map +1 -0
  173. package/dist/runtime/symbolic-diff/differentiate.d.ts +22 -0
  174. package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -0
  175. package/dist/runtime/symbolic-diff/differentiate.js +107 -0
  176. package/dist/runtime/symbolic-diff/differentiate.js.map +1 -0
  177. package/dist/runtime/symbolic-diff/evaluate.d.ts +3 -0
  178. package/dist/runtime/symbolic-diff/evaluate.d.ts.map +1 -0
  179. package/dist/runtime/symbolic-diff/evaluate.js +47 -0
  180. package/dist/runtime/symbolic-diff/evaluate.js.map +1 -0
  181. package/dist/runtime/symbolic-diff/index.d.ts +9 -0
  182. package/dist/runtime/symbolic-diff/index.d.ts.map +1 -0
  183. package/dist/runtime/symbolic-diff/index.js +34 -0
  184. package/dist/runtime/symbolic-diff/index.js.map +1 -0
  185. package/dist/runtime/symbolic-diff/parse.d.ts +16 -0
  186. package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -0
  187. package/dist/runtime/symbolic-diff/parse.js +206 -0
  188. package/dist/runtime/symbolic-diff/parse.js.map +1 -0
  189. package/dist/runtime/symbolic-diff/simplify.d.ts +11 -0
  190. package/dist/runtime/symbolic-diff/simplify.d.ts.map +1 -0
  191. package/dist/runtime/symbolic-diff/simplify.js +214 -0
  192. package/dist/runtime/symbolic-diff/simplify.js.map +1 -0
  193. package/dist/runtime/symbolic-diff/stringify.d.ts +3 -0
  194. package/dist/runtime/symbolic-diff/stringify.d.ts.map +1 -0
  195. package/dist/runtime/symbolic-diff/stringify.js +69 -0
  196. package/dist/runtime/symbolic-diff/stringify.js.map +1 -0
  197. package/dist/runtime/symbolic-diff/types.d.ts +35 -0
  198. package/dist/runtime/symbolic-diff/types.d.ts.map +1 -0
  199. package/dist/runtime/symbolic-diff/types.js +9 -0
  200. package/dist/runtime/symbolic-diff/types.js.map +1 -0
  201. package/dist/runtime/term-rewriting/critical-pairs.d.ts +38 -0
  202. package/dist/runtime/term-rewriting/critical-pairs.d.ts.map +1 -0
  203. package/dist/runtime/term-rewriting/critical-pairs.js +109 -0
  204. package/dist/runtime/term-rewriting/critical-pairs.js.map +1 -0
  205. package/dist/runtime/term-rewriting/index.d.ts +9 -0
  206. package/dist/runtime/term-rewriting/index.d.ts.map +1 -0
  207. package/dist/runtime/term-rewriting/index.js +38 -0
  208. package/dist/runtime/term-rewriting/index.js.map +1 -0
  209. package/dist/runtime/term-rewriting/knuth-bendix.d.ts +29 -0
  210. package/dist/runtime/term-rewriting/knuth-bendix.d.ts.map +1 -0
  211. package/dist/runtime/term-rewriting/knuth-bendix.js +196 -0
  212. package/dist/runtime/term-rewriting/knuth-bendix.js.map +1 -0
  213. package/dist/runtime/term-rewriting/lpo.d.ts +17 -0
  214. package/dist/runtime/term-rewriting/lpo.d.ts.map +1 -0
  215. package/dist/runtime/term-rewriting/lpo.js +158 -0
  216. package/dist/runtime/term-rewriting/lpo.js.map +1 -0
  217. package/dist/runtime/term-rewriting/rewrite.d.ts +44 -0
  218. package/dist/runtime/term-rewriting/rewrite.d.ts.map +1 -0
  219. package/dist/runtime/term-rewriting/rewrite.js +189 -0
  220. package/dist/runtime/term-rewriting/rewrite.js.map +1 -0
  221. package/dist/runtime/term-rewriting/term-utils.d.ts +64 -0
  222. package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -0
  223. package/dist/runtime/term-rewriting/term-utils.js +360 -0
  224. package/dist/runtime/term-rewriting/term-utils.js.map +1 -0
  225. package/dist/runtime/term-rewriting/types.d.ts +66 -0
  226. package/dist/runtime/term-rewriting/types.d.ts.map +1 -0
  227. package/dist/runtime/term-rewriting/types.js +21 -0
  228. package/dist/runtime/term-rewriting/types.js.map +1 -0
  229. package/dist/tests/abduction/abduction.test.d.ts +2 -0
  230. package/dist/tests/abduction/abduction.test.d.ts.map +1 -0
  231. package/dist/tests/abduction/abduction.test.js +380 -0
  232. package/dist/tests/abduction/abduction.test.js.map +1 -0
  233. package/dist/tests/bayesian/bayesian.test.d.ts +2 -0
  234. package/dist/tests/bayesian/bayesian.test.d.ts.map +1 -0
  235. package/dist/tests/bayesian/bayesian.test.js +328 -0
  236. package/dist/tests/bayesian/bayesian.test.js.map +1 -0
  237. package/dist/tests/bisimulation/paige-tarjan.test.d.ts +2 -0
  238. package/dist/tests/bisimulation/paige-tarjan.test.d.ts.map +1 -0
  239. package/dist/tests/bisimulation/paige-tarjan.test.js +254 -0
  240. package/dist/tests/bisimulation/paige-tarjan.test.js.map +1 -0
  241. package/dist/tests/fca/fca.test.d.ts +2 -0
  242. package/dist/tests/fca/fca.test.d.ts.map +1 -0
  243. package/dist/tests/fca/fca.test.js +317 -0
  244. package/dist/tests/fca/fca.test.js.map +1 -0
  245. package/dist/tests/intuitionistic-nj/nj.test.d.ts +2 -0
  246. package/dist/tests/intuitionistic-nj/nj.test.d.ts.map +1 -0
  247. package/dist/tests/intuitionistic-nj/nj.test.js +216 -0
  248. package/dist/tests/intuitionistic-nj/nj.test.js.map +1 -0
  249. package/dist/tests/lambda-calc/lambda-calc.test.d.ts +2 -0
  250. package/dist/tests/lambda-calc/lambda-calc.test.d.ts.map +1 -0
  251. package/dist/tests/lambda-calc/lambda-calc.test.js +164 -0
  252. package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -0
  253. package/dist/tests/many-valued/many-valued.test.d.ts +2 -0
  254. package/dist/tests/many-valued/many-valued.test.d.ts.map +1 -0
  255. package/dist/tests/many-valued/many-valued.test.js +150 -0
  256. package/dist/tests/many-valued/many-valued.test.js.map +1 -0
  257. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts +2 -0
  258. package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts.map +1 -0
  259. package/dist/tests/modal-frame-axioms/frame-axioms.test.js +236 -0
  260. package/dist/tests/modal-frame-axioms/frame-axioms.test.js.map +1 -0
  261. package/dist/tests/proof-minify/minify.test.d.ts +2 -0
  262. package/dist/tests/proof-minify/minify.test.d.ts.map +1 -0
  263. package/dist/tests/proof-minify/minify.test.js +281 -0
  264. package/dist/tests/proof-minify/minify.test.js.map +1 -0
  265. package/dist/tests/substructural/prover.test.d.ts +2 -0
  266. package/dist/tests/substructural/prover.test.d.ts.map +1 -0
  267. package/dist/tests/substructural/prover.test.js +271 -0
  268. package/dist/tests/substructural/prover.test.js.map +1 -0
  269. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts +2 -0
  270. package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts.map +1 -0
  271. package/dist/tests/symbolic-diff/symbolic-diff.test.js +278 -0
  272. package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -0
  273. package/dist/tests/term-rewriting/critical-pairs.test.d.ts +2 -0
  274. package/dist/tests/term-rewriting/critical-pairs.test.d.ts.map +1 -0
  275. package/dist/tests/term-rewriting/critical-pairs.test.js +34 -0
  276. package/dist/tests/term-rewriting/critical-pairs.test.js.map +1 -0
  277. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts +2 -0
  278. package/dist/tests/term-rewriting/knuth-bendix.test.d.ts.map +1 -0
  279. package/dist/tests/term-rewriting/knuth-bendix.test.js +94 -0
  280. package/dist/tests/term-rewriting/knuth-bendix.test.js.map +1 -0
  281. package/dist/tests/term-rewriting/lpo.test.d.ts +2 -0
  282. package/dist/tests/term-rewriting/lpo.test.d.ts.map +1 -0
  283. package/dist/tests/term-rewriting/lpo.test.js +57 -0
  284. package/dist/tests/term-rewriting/lpo.test.js.map +1 -0
  285. package/dist/tests/term-rewriting/rewrite.test.d.ts +2 -0
  286. package/dist/tests/term-rewriting/rewrite.test.d.ts.map +1 -0
  287. package/dist/tests/term-rewriting/rewrite.test.js +56 -0
  288. package/dist/tests/term-rewriting/rewrite.test.js.map +1 -0
  289. package/dist/tests/term-rewriting/term-utils.test.d.ts +2 -0
  290. package/dist/tests/term-rewriting/term-utils.test.d.ts.map +1 -0
  291. package/dist/tests/term-rewriting/term-utils.test.js +58 -0
  292. package/dist/tests/term-rewriting/term-utils.test.js.map +1 -0
  293. package/package.json +1 -1
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // FCA — diagrama de Hasse del concept lattice.
4
+ // ============================================================
5
+ // Para un conjunto B(K) de conceptos ordenado por inclusión de extent
6
+ // (A1, B1) ≤ (A2, B2) ⇔ A1 ⊆ A2
7
+ // la relación de cobertura es:
8
+ // c ≺ p sii c < p y no existe q con c < q < p.
9
+ //
10
+ // El "diagrama de Hasse" representa B(K) como un DAG con sólo las aristas
11
+ // de cobertura. Implementación O(|B(K)|² · |M|):
12
+ // 1. Por cada par (i, j) con i ≠ j, marcar i < j ⇔ extent_i ⊊ extent_j.
13
+ // 2. Para cada arista i < j, ver si existe k con i < k < j; si no,
14
+ // es cobertura.
15
+ //
16
+ // Para retículos de hasta unos pocos miles de conceptos esto es práctico;
17
+ // para tamaños mayores conviene un algoritmo dedicado (e.g. Lindig).
18
+ // ============================================================
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.lattice = lattice;
21
+ function isSubset(a, b) {
22
+ if (a.size > b.size)
23
+ return false;
24
+ for (const x of a)
25
+ if (!b.has(x))
26
+ return false;
27
+ return true;
28
+ }
29
+ function isStrictSubset(a, b) {
30
+ return a.size < b.size && isSubset(a, b);
31
+ }
32
+ /**
33
+ * Computa el diagrama de Hasse del concept lattice como lista de aristas
34
+ * de cobertura `[child, parent]` (índices en `concepts`).
35
+ *
36
+ * La orientación es de "específico" a "general":
37
+ * `[i, j]` significa `extent_i ⊊ extent_j` y la inclusión es inmediata.
38
+ */
39
+ function lattice(concepts) {
40
+ const n = concepts.length;
41
+ // Pre-computar la matriz <. lt[i][j] = true ⇔ extent_i ⊊ extent_j.
42
+ const lt = Array.from({ length: n }, () => new Array(n).fill(false));
43
+ for (let i = 0; i < n; i++) {
44
+ const ci = concepts[i];
45
+ if (!ci)
46
+ continue;
47
+ for (let j = 0; j < n; j++) {
48
+ if (i === j)
49
+ continue;
50
+ const cj = concepts[j];
51
+ if (!cj)
52
+ continue;
53
+ if (isStrictSubset(ci.extent, cj.extent)) {
54
+ const row = lt[i];
55
+ if (row)
56
+ row[j] = true;
57
+ }
58
+ }
59
+ }
60
+ const edges = [];
61
+ for (let i = 0; i < n; i++) {
62
+ const row = lt[i];
63
+ if (!row)
64
+ continue;
65
+ for (let j = 0; j < n; j++) {
66
+ if (!row[j])
67
+ continue;
68
+ // ¿existe k con i < k < j? Si sí, (i,j) NO es cobertura.
69
+ let coversImmediately = true;
70
+ for (let k = 0; k < n; k++) {
71
+ if (k === i || k === j)
72
+ continue;
73
+ const rk = lt[i];
74
+ const rkj = lt[k];
75
+ if (rk && rkj && rk[k] && rkj[j]) {
76
+ coversImmediately = false;
77
+ break;
78
+ }
79
+ }
80
+ if (coversImmediately)
81
+ edges.push([i, j]);
82
+ }
83
+ }
84
+ return { edges };
85
+ }
86
+ //# sourceMappingURL=lattice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lattice.js","sourceRoot":"","sources":["../../../src/runtime/fca/lattice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { FormalConcept, FormalContext } from './types';
2
+ /**
3
+ * Enumera todos los conceptos formales de `ctx` mediante Next Closure.
4
+ *
5
+ * Garantías:
6
+ * - Cada concepto aparece exactamente una vez.
7
+ * - El orden de salida es lectic sobre intents (creciente).
8
+ * - Incluye el Top concept (G, G') y el Bottom concept (M', M) cuando
9
+ * existen como cerrados (siempre existen).
10
+ */
11
+ export declare function allConcepts(ctx: FormalContext): FormalConcept[];
12
+ //# sourceMappingURL=next-closure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-closure.d.ts","sourceRoot":"","sources":["../../../src/runtime/fca/next-closure.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoD5D;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,aAAa,EAAE,CAiB/D"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // FCA — Next Closure algorithm (Ganter, 1984).
4
+ // ============================================================
5
+ // Enumera todos los conjuntos cerrados de un operador de clausura
6
+ // (aquí, la clausura de intents B → B'') en orden lexicográfico
7
+ // respecto a un orden total fijado sobre M.
8
+ //
9
+ // Idea clave:
10
+ // 1. Fijamos M = {m_0, m_1, ..., m_{n-1}} con un orden total.
11
+ // 2. Para un conjunto cerrado B, calculamos el "siguiente" cerrado:
12
+ // para i desde n-1 hasta 0:
13
+ // - si m_i ∈ B, sáltalo;
14
+ // - sea C = closure( (B ∩ {m_0,...,m_{i-1}}) ∪ {m_i} ).
15
+ // - si C \ B no contiene ningún m_j con j < i, devolver C.
16
+ // Si ninguno funciona, terminamos.
17
+ // 3. Empezamos por closure(∅) (que es M', el intent del Top concept
18
+ // en su forma de atributos comunes a todos los objetos) y
19
+ // enumeramos sucesores hasta agotar.
20
+ //
21
+ // La complejidad es O(|B(K)| · |M|² · |G|) en peor caso, pero amortizado
22
+ // es excelente para contextos densos pequeños y medianos. La salida está
23
+ // libre de duplicados por construcción (cada cerrado se visita una sola
24
+ // vez gracias al test "C \ B no contiene m_j para j < i").
25
+ // ============================================================
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.allConcepts = allConcepts;
28
+ const context_1 = require("./context");
29
+ /**
30
+ * Compara dos subconjuntos de M en el orden "lectic" de Ganter, definido
31
+ * sobre la indexación posicional de `order`. NO usado externamente pero
32
+ * documentado: A <_i B ⇔ m_i ∈ B \ A y A ∩ {m_0,..,m_{i-1}} = B ∩ {m_0,..,m_{i-1}}.
33
+ *
34
+ * La función de sucesión usa una variante eficiente que no necesita
35
+ * comparar pares: solo verifica la condición de "no hay m_j más pequeño
36
+ * en la diferencia".
37
+ */
38
+ /**
39
+ * Devuelve el siguiente cerrado en orden lectic, o `null` si `current` ya
40
+ * es el último (closure(M) = M).
41
+ */
42
+ function nextClosure(ctx, order, current) {
43
+ for (let i = order.length - 1; i >= 0; i--) {
44
+ const mi = order[i];
45
+ if (mi === undefined)
46
+ continue;
47
+ if (current.has(mi))
48
+ continue;
49
+ // B^+ = (B ∩ {m_0,..,m_{i-1}}) ∪ {m_i}
50
+ const seed = new Set();
51
+ for (let j = 0; j < i; j++) {
52
+ const mj = order[j];
53
+ if (mj !== undefined && current.has(mj))
54
+ seed.add(mj);
55
+ }
56
+ seed.add(mi);
57
+ const closed = (0, context_1.closeIntent)(ctx, seed);
58
+ // Test lectic: el cerrado no debe contener m_j con j < i que no estuviera
59
+ // ya en current. Equivale a: (closed \ current) ∩ {m_0,...,m_{i-1}} = ∅.
60
+ let valid = true;
61
+ for (let j = 0; j < i; j++) {
62
+ const mj = order[j];
63
+ if (mj === undefined)
64
+ continue;
65
+ if (closed.has(mj) && !current.has(mj)) {
66
+ valid = false;
67
+ break;
68
+ }
69
+ }
70
+ if (valid)
71
+ return closed;
72
+ }
73
+ return null;
74
+ }
75
+ /**
76
+ * Enumera todos los conceptos formales de `ctx` mediante Next Closure.
77
+ *
78
+ * Garantías:
79
+ * - Cada concepto aparece exactamente una vez.
80
+ * - El orden de salida es lectic sobre intents (creciente).
81
+ * - Incluye el Top concept (G, G') y el Bottom concept (M', M) cuando
82
+ * existen como cerrados (siempre existen).
83
+ */
84
+ function allConcepts(ctx) {
85
+ const order = [...ctx.attributes];
86
+ const concepts = [];
87
+ // Punto de arranque: clausura del conjunto vacío.
88
+ // ∅' = G (todos los objetos satisfacen trivialmente "ningún atributo"),
89
+ // luego (∅')' = G' = atributos comunes a todos los objetos.
90
+ let current = (0, context_1.closeIntent)(ctx, new Set());
91
+ while (current !== null) {
92
+ const intent = current;
93
+ const extent = (0, context_1.derivativeObjects)(ctx, intent);
94
+ concepts.push({ extent, intent });
95
+ current = nextClosure(ctx, order, current);
96
+ }
97
+ return concepts;
98
+ }
99
+ //# sourceMappingURL=next-closure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-closure.js","sourceRoot":"","sources":["../../../src/runtime/fca/next-closure.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+CAA+C;AAC/C,+DAA+D;AAC/D,kEAAkE;AAClE,gEAAgE;AAChE,4CAA4C;AAC5C,EAAE;AACF,cAAc;AACd,gEAAgE;AAChE,sEAAsE;AACtE,iCAAiC;AACjC,gCAAgC;AAChC,+DAA+D;AAC/D,kEAAkE;AAClE,wCAAwC;AACxC,sEAAsE;AACtE,+DAA+D;AAC/D,0CAA0C;AAC1C,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,2DAA2D;AAC3D,+DAA+D;;AAgE/D,kCAiBC;AA/ED,uCAA2D;AAG3D;;;;;;;;GAQG;AAEH;;;GAGG;AACH,SAAS,WAAW,CAClB,GAAkB,EAClB,KAAe,EACf,OAAoB;IAEpB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAE9B,uCAAuC;QACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEb,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEtC,0EAA0E;QAC1E,yEAAyE;QACzE,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,KAAK,SAAS;gBAAE,SAAS;YAC/B,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvC,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,KAAK;YAAE,OAAO,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,GAAkB;IAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,kDAAkD;IAClD,wEAAwE;IACxE,4DAA4D;IAC5D,IAAI,OAAO,GAAuB,IAAA,qBAAW,EAAC,GAAG,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;IAEtE,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC;QACvB,MAAM,MAAM,GAAG,IAAA,2BAAiB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAClC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Contexto formal K = (G, M, I).
3
+ * - `objects` G como lista finita ordenada.
4
+ * - `attributes` M como lista finita ordenada.
5
+ * - `incidence` representación canónica como conjunto de pares
6
+ * codificados "objeto|atributo" para test O(1).
7
+ */
8
+ export interface FormalContext {
9
+ objects: string[];
10
+ attributes: string[];
11
+ incidence: Set<string>;
12
+ }
13
+ /**
14
+ * Concepto formal (A, B) con A = extent, B = intent.
15
+ * Invariante: A' = B y B' = A (verificable con `isConcept`).
16
+ */
17
+ export interface FormalConcept {
18
+ extent: Set<string>;
19
+ intent: Set<string>;
20
+ }
21
+ /**
22
+ * Diagrama de Hasse del concept lattice como lista de aristas de cobertura.
23
+ * `edges[i] = [child, parent]` significa que el concepto `child` está cubierto
24
+ * inmediatamente por `parent` (no hay concepto intermedio estricto).
25
+ * Los índices son posiciones en el array de conceptos devuelto por
26
+ * `allConcepts`.
27
+ */
28
+ export interface HasseLattice {
29
+ edges: Array<[number, number]>;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/fca/types.ts"],"names":[],"mappings":"AA4BA;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Formal Concept Analysis (FCA) — tipos públicos
4
+ // ============================================================
5
+ // Marco matemático de Wille (1982) para extraer una jerarquía conceptual
6
+ // a partir de una relación binaria objeto-atributo.
7
+ //
8
+ // Contexto formal:
9
+ // K = (G, M, I)
10
+ // G conjunto finito de "objetos"
11
+ // M conjunto finito de "atributos"
12
+ // I ⊆ G × M relación de incidencia ("el objeto g tiene el atributo m")
13
+ //
14
+ // Operadores de derivación (polares de Galois):
15
+ // A' = { m ∈ M | ∀ g ∈ A. (g, m) ∈ I } (atributos comunes a A ⊆ G)
16
+ // B' = { g ∈ G | ∀ m ∈ B. (g, m) ∈ I } (objetos que poseen todo B ⊆ M)
17
+ //
18
+ // Un concepto formal es un par (A, B) con A ⊆ G, B ⊆ M tal que
19
+ // A' = B y B' = A
20
+ // equivalentemente: A = A'' y B = B'' (clausura).
21
+ //
22
+ // El conjunto B(K) de todos los conceptos, ordenado por
23
+ // (A1, B1) ≤ (A2, B2) ⇔ A1 ⊆ A2 ( ⇔ B2 ⊆ B1 )
24
+ // forma un retículo completo (lattice), el "concept lattice".
25
+ //
26
+ // Top: (G, G') — todos los objetos, atributos comunes.
27
+ // Bottom: (M', M) — atributos en todos, en general ∅ objetos.
28
+ // ============================================================
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/fca/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,iDAAiD;AACjD,+DAA+D;AAC/D,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,mBAAmB;AACnB,kBAAkB;AAClB,sCAAsC;AACtC,wCAAwC;AACxC,4EAA4E;AAC5E,EAAE;AACF,gDAAgD;AAChD,yEAAyE;AACzE,6EAA6E;AAC7E,EAAE;AACF,+DAA+D;AAC/D,sBAAsB;AACtB,sDAAsD;AACtD,EAAE;AACF,wDAAwD;AACxD,iDAAiD;AACjD,8DAA8D;AAC9D,EAAE;AACF,6DAA6D;AAC7D,iEAAiE;AACjE,+DAA+D"}
@@ -0,0 +1,3 @@
1
+ export { minifyProof, compactModusPonensChain, removeUnusedSubproofs, countNodes, depthOf, } from './minify';
2
+ export type { GenericProofNode, MinifyOptions, MinifyResult, MinifyRule } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/proof-minify/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,qBAAqB,EACrB,UAAU,EACV,OAAO,GACR,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Proof Minification — Barrel
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.depthOf = exports.countNodes = exports.removeUnusedSubproofs = exports.compactModusPonensChain = exports.minifyProof = void 0;
7
+ var minify_1 = require("./minify");
8
+ Object.defineProperty(exports, "minifyProof", { enumerable: true, get: function () { return minify_1.minifyProof; } });
9
+ Object.defineProperty(exports, "compactModusPonensChain", { enumerable: true, get: function () { return minify_1.compactModusPonensChain; } });
10
+ Object.defineProperty(exports, "removeUnusedSubproofs", { enumerable: true, get: function () { return minify_1.removeUnusedSubproofs; } });
11
+ Object.defineProperty(exports, "countNodes", { enumerable: true, get: function () { return minify_1.countNodes; } });
12
+ Object.defineProperty(exports, "depthOf", { enumerable: true, get: function () { return minify_1.depthOf; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/proof-minify/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;;;AAE/D,mCAMkB;AALhB,qGAAA,WAAW,OAAA;AACX,iHAAA,uBAAuB,OAAA;AACvB,+GAAA,qBAAqB,OAAA;AACrB,oGAAA,UAAU,OAAA;AACV,iGAAA,OAAO,OAAA"}
@@ -0,0 +1,13 @@
1
+ import type { GenericProofNode, MinifyOptions, MinifyResult } from './types';
2
+ /** Cuenta los nodos de un árbol (raíz incluida). */
3
+ export declare function countNodes(n: GenericProofNode): number;
4
+ /** Profundidad máxima (raíz = 0). */
5
+ export declare function depthOf(n: GenericProofNode): number;
6
+ export declare function compactModusPonensChain(proof: GenericProofNode): GenericProofNode;
7
+ export declare function removeUnusedSubproofs(proof: GenericProofNode): GenericProofNode;
8
+ /**
9
+ * Minifica un árbol de pruebas iterando las reglas hasta punto fijo
10
+ * o agotar `maxIterations`.
11
+ */
12
+ export declare function minifyProof(proof: GenericProofNode, opts?: MinifyOptions): MinifyResult;
13
+ //# sourceMappingURL=minify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minify.d.ts","sourceRoot":"","sources":["../../../src/runtime/proof-minify/minify.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AA2GzF,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAItD;AAED,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAQnD;AAqGD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAwBjF;AAgJD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAG/E;AA8GD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,GAAE,aAAkB,GAAG,YAAY,CAuC3F"}