@stevenvo780/st-lang 4.8.0 → 4.10.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 (265) hide show
  1. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts +18 -0
  2. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -0
  3. package/dist/logic/profiles/natural-deduction-nk/formula.js +102 -0
  4. package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -0
  5. package/dist/logic/profiles/natural-deduction-nk/index.d.ts +5 -0
  6. package/dist/logic/profiles/natural-deduction-nk/index.d.ts.map +1 -0
  7. package/dist/logic/profiles/natural-deduction-nk/index.js +28 -0
  8. package/dist/logic/profiles/natural-deduction-nk/index.js.map +1 -0
  9. package/dist/logic/profiles/natural-deduction-nk/prover.d.ts +49 -0
  10. package/dist/logic/profiles/natural-deduction-nk/prover.d.ts.map +1 -0
  11. package/dist/logic/profiles/natural-deduction-nk/prover.js +557 -0
  12. package/dist/logic/profiles/natural-deduction-nk/prover.js.map +1 -0
  13. package/dist/logic/profiles/natural-deduction-nk/types.d.ts +48 -0
  14. package/dist/logic/profiles/natural-deduction-nk/types.d.ts.map +1 -0
  15. package/dist/logic/profiles/natural-deduction-nk/types.js +35 -0
  16. package/dist/logic/profiles/natural-deduction-nk/types.js.map +1 -0
  17. package/dist/logic/profiles/quantum/index.d.ts +153 -0
  18. package/dist/logic/profiles/quantum/index.d.ts.map +1 -0
  19. package/dist/logic/profiles/quantum/index.js +788 -0
  20. package/dist/logic/profiles/quantum/index.js.map +1 -0
  21. package/dist/namespaces/reasoning.d.ts +2 -1
  22. package/dist/namespaces/reasoning.d.ts.map +1 -1
  23. package/dist/namespaces/reasoning.js +3 -1
  24. package/dist/namespaces/reasoning.js.map +1 -1
  25. package/dist/proof-systems/certificate/canonical.d.ts +18 -0
  26. package/dist/proof-systems/certificate/canonical.d.ts.map +1 -0
  27. package/dist/proof-systems/certificate/canonical.js +79 -0
  28. package/dist/proof-systems/certificate/canonical.js.map +1 -0
  29. package/dist/proof-systems/certificate/generate.d.ts +39 -0
  30. package/dist/proof-systems/certificate/generate.d.ts.map +1 -0
  31. package/dist/proof-systems/certificate/generate.js +259 -0
  32. package/dist/proof-systems/certificate/generate.js.map +1 -0
  33. package/dist/proof-systems/certificate/index.d.ts +7 -0
  34. package/dist/proof-systems/certificate/index.d.ts.map +1 -0
  35. package/dist/proof-systems/certificate/index.js +23 -0
  36. package/dist/proof-systems/certificate/index.js.map +1 -0
  37. package/dist/proof-systems/certificate/lfsc.d.ts +15 -0
  38. package/dist/proof-systems/certificate/lfsc.d.ts.map +1 -0
  39. package/dist/proof-systems/certificate/lfsc.js +395 -0
  40. package/dist/proof-systems/certificate/lfsc.js.map +1 -0
  41. package/dist/proof-systems/certificate/rules.d.ts +8 -0
  42. package/dist/proof-systems/certificate/rules.d.ts.map +1 -0
  43. package/dist/proof-systems/certificate/rules.js +369 -0
  44. package/dist/proof-systems/certificate/rules.js.map +1 -0
  45. package/dist/proof-systems/certificate/types.d.ts +114 -0
  46. package/dist/proof-systems/certificate/types.d.ts.map +1 -0
  47. package/dist/proof-systems/certificate/types.js +18 -0
  48. package/dist/proof-systems/certificate/types.js.map +1 -0
  49. package/dist/proof-systems/certificate/verify.d.ts +20 -0
  50. package/dist/proof-systems/certificate/verify.d.ts.map +1 -0
  51. package/dist/proof-systems/certificate/verify.js +171 -0
  52. package/dist/proof-systems/certificate/verify.js.map +1 -0
  53. package/dist/reasoning/automata/dfa.d.ts +17 -0
  54. package/dist/reasoning/automata/dfa.d.ts.map +1 -0
  55. package/dist/reasoning/automata/dfa.js +276 -0
  56. package/dist/reasoning/automata/dfa.js.map +1 -0
  57. package/dist/reasoning/automata/index.d.ts +8 -0
  58. package/dist/reasoning/automata/index.d.ts.map +1 -0
  59. package/dist/reasoning/automata/index.js +64 -0
  60. package/dist/reasoning/automata/index.js.map +1 -0
  61. package/dist/reasoning/automata/languages.d.ts +10 -0
  62. package/dist/reasoning/automata/languages.d.ts.map +1 -0
  63. package/dist/reasoning/automata/languages.js +78 -0
  64. package/dist/reasoning/automata/languages.js.map +1 -0
  65. package/dist/reasoning/automata/nfa.d.ts +8 -0
  66. package/dist/reasoning/automata/nfa.d.ts.map +1 -0
  67. package/dist/reasoning/automata/nfa.js +122 -0
  68. package/dist/reasoning/automata/nfa.js.map +1 -0
  69. package/dist/reasoning/automata/pda.d.ts +10 -0
  70. package/dist/reasoning/automata/pda.d.ts.map +1 -0
  71. package/dist/reasoning/automata/pda.js +169 -0
  72. package/dist/reasoning/automata/pda.js.map +1 -0
  73. package/dist/reasoning/automata/regex.d.ts +6 -0
  74. package/dist/reasoning/automata/regex.d.ts.map +1 -0
  75. package/dist/reasoning/automata/regex.js +259 -0
  76. package/dist/reasoning/automata/regex.js.map +1 -0
  77. package/dist/reasoning/automata/types.d.ts +69 -0
  78. package/dist/reasoning/automata/types.d.ts.map +1 -0
  79. package/dist/reasoning/automata/types.js +29 -0
  80. package/dist/reasoning/automata/types.js.map +1 -0
  81. package/dist/reasoning/ban-logic/analyze.d.ts +31 -0
  82. package/dist/reasoning/ban-logic/analyze.d.ts.map +1 -0
  83. package/dist/reasoning/ban-logic/analyze.js +113 -0
  84. package/dist/reasoning/ban-logic/analyze.js.map +1 -0
  85. package/dist/reasoning/ban-logic/index.d.ts +7 -0
  86. package/dist/reasoning/ban-logic/index.d.ts.map +1 -0
  87. package/dist/reasoning/ban-logic/index.js +66 -0
  88. package/dist/reasoning/ban-logic/index.js.map +1 -0
  89. package/dist/reasoning/ban-logic/protocols.d.ts +54 -0
  90. package/dist/reasoning/ban-logic/protocols.d.ts.map +1 -0
  91. package/dist/reasoning/ban-logic/protocols.js +219 -0
  92. package/dist/reasoning/ban-logic/protocols.js.map +1 -0
  93. package/dist/reasoning/ban-logic/rules.d.ts +83 -0
  94. package/dist/reasoning/ban-logic/rules.d.ts.map +1 -0
  95. package/dist/reasoning/ban-logic/rules.js +409 -0
  96. package/dist/reasoning/ban-logic/rules.js.map +1 -0
  97. package/dist/reasoning/ban-logic/terms.d.ts +26 -0
  98. package/dist/reasoning/ban-logic/terms.d.ts.map +1 -0
  99. package/dist/reasoning/ban-logic/terms.js +262 -0
  100. package/dist/reasoning/ban-logic/terms.js.map +1 -0
  101. package/dist/reasoning/ban-logic/types.d.ts +107 -0
  102. package/dist/reasoning/ban-logic/types.d.ts.map +1 -0
  103. package/dist/reasoning/ban-logic/types.js +27 -0
  104. package/dist/reasoning/ban-logic/types.js.map +1 -0
  105. package/dist/reasoning/computability/index.d.ts +239 -0
  106. package/dist/reasoning/computability/index.d.ts.map +1 -0
  107. package/dist/reasoning/computability/index.js +851 -0
  108. package/dist/reasoning/computability/index.js.map +1 -0
  109. package/dist/reasoning/differential-privacy/index.d.ts +121 -0
  110. package/dist/reasoning/differential-privacy/index.d.ts.map +1 -0
  111. package/dist/reasoning/differential-privacy/index.js +417 -0
  112. package/dist/reasoning/differential-privacy/index.js.map +1 -0
  113. package/dist/reasoning/number-theory/crt.d.ts +9 -0
  114. package/dist/reasoning/number-theory/crt.d.ts.map +1 -0
  115. package/dist/reasoning/number-theory/crt.js +39 -0
  116. package/dist/reasoning/number-theory/crt.js.map +1 -0
  117. package/dist/reasoning/number-theory/diophantine.d.ts +10 -0
  118. package/dist/reasoning/number-theory/diophantine.d.ts.map +1 -0
  119. package/dist/reasoning/number-theory/diophantine.js +87 -0
  120. package/dist/reasoning/number-theory/diophantine.js.map +1 -0
  121. package/dist/reasoning/number-theory/factorization.d.ts +12 -0
  122. package/dist/reasoning/number-theory/factorization.d.ts.map +1 -0
  123. package/dist/reasoning/number-theory/factorization.js +136 -0
  124. package/dist/reasoning/number-theory/factorization.js.map +1 -0
  125. package/dist/reasoning/number-theory/gcd.d.ts +8 -0
  126. package/dist/reasoning/number-theory/gcd.d.ts.map +1 -0
  127. package/dist/reasoning/number-theory/gcd.js +51 -0
  128. package/dist/reasoning/number-theory/gcd.js.map +1 -0
  129. package/dist/reasoning/number-theory/index.d.ts +9 -0
  130. package/dist/reasoning/number-theory/index.d.ts.map +1 -0
  131. package/dist/reasoning/number-theory/index.js +46 -0
  132. package/dist/reasoning/number-theory/index.js.map +1 -0
  133. package/dist/reasoning/number-theory/modular.d.ts +6 -0
  134. package/dist/reasoning/number-theory/modular.d.ts.map +1 -0
  135. package/dist/reasoning/number-theory/modular.js +75 -0
  136. package/dist/reasoning/number-theory/modular.js.map +1 -0
  137. package/dist/reasoning/number-theory/primality.d.ts +6 -0
  138. package/dist/reasoning/number-theory/primality.d.ts.map +1 -0
  139. package/dist/reasoning/number-theory/primality.js +144 -0
  140. package/dist/reasoning/number-theory/primality.js.map +1 -0
  141. package/dist/reasoning/number-theory/symbols.d.ts +3 -0
  142. package/dist/reasoning/number-theory/symbols.d.ts.map +1 -0
  143. package/dist/reasoning/number-theory/symbols.js +57 -0
  144. package/dist/reasoning/number-theory/symbols.js.map +1 -0
  145. package/dist/reasoning/real-analysis/index.d.ts +127 -0
  146. package/dist/reasoning/real-analysis/index.d.ts.map +1 -0
  147. package/dist/reasoning/real-analysis/index.js +638 -0
  148. package/dist/reasoning/real-analysis/index.js.map +1 -0
  149. package/dist/reasoning/topology/index.d.ts +41 -0
  150. package/dist/reasoning/topology/index.d.ts.map +1 -0
  151. package/dist/reasoning/topology/index.js +739 -0
  152. package/dist/reasoning/topology/index.js.map +1 -0
  153. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts +2 -0
  154. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts.map +1 -0
  155. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js +288 -0
  156. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js.map +1 -0
  157. package/dist/tests/logic/profiles/quantum/quantum.test.d.ts +2 -0
  158. package/dist/tests/logic/profiles/quantum/quantum.test.d.ts.map +1 -0
  159. package/dist/tests/logic/profiles/quantum/quantum.test.js +209 -0
  160. package/dist/tests/logic/profiles/quantum/quantum.test.js.map +1 -0
  161. package/dist/tests/proof-systems/certificate/certificate.test.d.ts +2 -0
  162. package/dist/tests/proof-systems/certificate/certificate.test.d.ts.map +1 -0
  163. package/dist/tests/proof-systems/certificate/certificate.test.js +449 -0
  164. package/dist/tests/proof-systems/certificate/certificate.test.js.map +1 -0
  165. package/dist/tests/reasoning/automata/automata.test.d.ts +2 -0
  166. package/dist/tests/reasoning/automata/automata.test.d.ts.map +1 -0
  167. package/dist/tests/reasoning/automata/automata.test.js +310 -0
  168. package/dist/tests/reasoning/automata/automata.test.js.map +1 -0
  169. package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts +2 -0
  170. package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts.map +1 -0
  171. package/dist/tests/reasoning/ban-logic/ban-logic.test.js +270 -0
  172. package/dist/tests/reasoning/ban-logic/ban-logic.test.js.map +1 -0
  173. package/dist/tests/reasoning/computability/computability.test.d.ts +2 -0
  174. package/dist/tests/reasoning/computability/computability.test.d.ts.map +1 -0
  175. package/dist/tests/reasoning/computability/computability.test.js +246 -0
  176. package/dist/tests/reasoning/computability/computability.test.js.map +1 -0
  177. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts +2 -0
  178. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts.map +1 -0
  179. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js +388 -0
  180. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js.map +1 -0
  181. package/dist/tests/reasoning/number-theory/number-theory.test.d.ts +2 -0
  182. package/dist/tests/reasoning/number-theory/number-theory.test.d.ts.map +1 -0
  183. package/dist/tests/reasoning/number-theory/number-theory.test.js +170 -0
  184. package/dist/tests/reasoning/number-theory/number-theory.test.js.map +1 -0
  185. package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts +2 -0
  186. package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts.map +1 -0
  187. package/dist/tests/reasoning/real-analysis/real-analysis.test.js +197 -0
  188. package/dist/tests/reasoning/real-analysis/real-analysis.test.js.map +1 -0
  189. package/dist/tests/reasoning/topology/topology.test.d.ts +2 -0
  190. package/dist/tests/reasoning/topology/topology.test.d.ts.map +1 -0
  191. package/dist/tests/reasoning/topology/topology.test.js +327 -0
  192. package/dist/tests/reasoning/topology/topology.test.js.map +1 -0
  193. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts +2 -0
  194. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts.map +1 -0
  195. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js +473 -0
  196. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js.map +1 -0
  197. package/dist/tests/tooling/mathlib/mathlib.test.d.ts +2 -0
  198. package/dist/tests/tooling/mathlib/mathlib.test.d.ts.map +1 -0
  199. package/dist/tests/tooling/mathlib/mathlib.test.js +214 -0
  200. package/dist/tests/tooling/mathlib/mathlib.test.js.map +1 -0
  201. package/dist/tests/type-theory/effects/effects.test.d.ts +2 -0
  202. package/dist/tests/type-theory/effects/effects.test.d.ts.map +1 -0
  203. package/dist/tests/type-theory/effects/effects.test.js +242 -0
  204. package/dist/tests/type-theory/effects/effects.test.js.map +1 -0
  205. package/dist/tooling/exporters/lean4/index.d.ts +47 -0
  206. package/dist/tooling/exporters/lean4/index.d.ts.map +1 -0
  207. package/dist/tooling/exporters/lean4/index.js +423 -0
  208. package/dist/tooling/exporters/lean4/index.js.map +1 -0
  209. package/dist/tooling/mathlib/group.d.ts +27 -0
  210. package/dist/tooling/mathlib/group.d.ts.map +1 -0
  211. package/dist/tooling/mathlib/group.js +89 -0
  212. package/dist/tooling/mathlib/group.js.map +1 -0
  213. package/dist/tooling/mathlib/index.d.ts +8 -0
  214. package/dist/tooling/mathlib/index.d.ts.map +1 -0
  215. package/dist/tooling/mathlib/index.js +40 -0
  216. package/dist/tooling/mathlib/index.js.map +1 -0
  217. package/dist/tooling/mathlib/instances.d.ts +29 -0
  218. package/dist/tooling/mathlib/instances.d.ts.map +1 -0
  219. package/dist/tooling/mathlib/instances.js +139 -0
  220. package/dist/tooling/mathlib/instances.js.map +1 -0
  221. package/dist/tooling/mathlib/lemmas.d.ts +3 -0
  222. package/dist/tooling/mathlib/lemmas.d.ts.map +1 -0
  223. package/dist/tooling/mathlib/lemmas.js +72 -0
  224. package/dist/tooling/mathlib/lemmas.js.map +1 -0
  225. package/dist/tooling/mathlib/order.d.ts +29 -0
  226. package/dist/tooling/mathlib/order.d.ts.map +1 -0
  227. package/dist/tooling/mathlib/order.js +91 -0
  228. package/dist/tooling/mathlib/order.js.map +1 -0
  229. package/dist/tooling/mathlib/ring.d.ts +15 -0
  230. package/dist/tooling/mathlib/ring.d.ts.map +1 -0
  231. package/dist/tooling/mathlib/ring.js +91 -0
  232. package/dist/tooling/mathlib/ring.js.map +1 -0
  233. package/dist/tooling/mathlib/types.d.ts +62 -0
  234. package/dist/tooling/mathlib/types.d.ts.map +1 -0
  235. package/dist/tooling/mathlib/types.js +7 -0
  236. package/dist/tooling/mathlib/types.js.map +1 -0
  237. package/dist/type-theory/effects/core.d.ts +27 -0
  238. package/dist/type-theory/effects/core.d.ts.map +1 -0
  239. package/dist/type-theory/effects/core.js +79 -0
  240. package/dist/type-theory/effects/core.js.map +1 -0
  241. package/dist/type-theory/effects/exception.d.ts +18 -0
  242. package/dist/type-theory/effects/exception.d.ts.map +1 -0
  243. package/dist/type-theory/effects/exception.js +59 -0
  244. package/dist/type-theory/effects/exception.js.map +1 -0
  245. package/dist/type-theory/effects/index.d.ts +11 -0
  246. package/dist/type-theory/effects/index.d.ts.map +1 -0
  247. package/dist/type-theory/effects/index.js +50 -0
  248. package/dist/type-theory/effects/index.js.map +1 -0
  249. package/dist/type-theory/effects/reader.d.ts +20 -0
  250. package/dist/type-theory/effects/reader.d.ts.map +1 -0
  251. package/dist/type-theory/effects/reader.js +62 -0
  252. package/dist/type-theory/effects/reader.js.map +1 -0
  253. package/dist/type-theory/effects/state.d.ts +31 -0
  254. package/dist/type-theory/effects/state.d.ts.map +1 -0
  255. package/dist/type-theory/effects/state.js +91 -0
  256. package/dist/type-theory/effects/state.js.map +1 -0
  257. package/dist/type-theory/effects/types.d.ts +45 -0
  258. package/dist/type-theory/effects/types.d.ts.map +1 -0
  259. package/dist/type-theory/effects/types.js +21 -0
  260. package/dist/type-theory/effects/types.js.map +1 -0
  261. package/dist/type-theory/effects/writer.d.ts +30 -0
  262. package/dist/type-theory/effects/writer.d.ts.map +1 -0
  263. package/dist/type-theory/effects/writer.js +79 -0
  264. package/dist/type-theory/effects/writer.js.map +1 -0
  265. package/package.json +1 -1
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Natural Deduction NK (Gentzen classical) — Tipos
4
+ // ============================================================
5
+ //
6
+ // Sistema NK de Gentzen para lógica proposicional clásica.
7
+ // Extiende NJ (intuicionista) con reglas que justifican el
8
+ // tercero excluido / doble negación clásica.
9
+ //
10
+ // Reglas intuicionistas heredadas (idéntico a NJ):
11
+ // - Conjunción: ∧I, ∧EL, ∧ER
12
+ // - Disyunción: ∨IL, ∨IR, ∨E (con descarga)
13
+ // - Implicación: →I (descarga), →E (modus ponens)
14
+ // - Negación: ¬I (descarga, deriva ⊥), ¬E (deriva ⊥)
15
+ // - Falsedad: ⊥E (ex falso quodlibet)
16
+ // - Asunción: hipótesis del contexto
17
+ //
18
+ // Reglas clásicas añadidas:
19
+ // - doubleNegE: ¬¬φ ⊢ φ (eliminación doble negación)
20
+ // - LEM: ⊢ φ ∨ ¬φ (tercero excluido como axioma)
21
+ // - pierce: ⊢ ((φ→ψ)→φ)→φ (ley de Peirce como axioma)
22
+ // - rAA: asume ¬φ, deriva ⊥, concluye φ (reductio ad absurdum)
23
+ //
24
+ // La regla rAA es la dual clásica de ¬I: en NJ, asumiendo φ y
25
+ // derivando ⊥ se concluye ¬φ; en NK, asumiendo ¬φ y derivando
26
+ // ⊥ se concluye φ. Con sólo rAA añadida a NJ se obtiene
27
+ // completitud para la lógica clásica proposicional.
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.CLASSICAL_ONLY_RULES = void 0;
30
+ /**
31
+ * Conjunto de reglas que sólo existen en NK (no en NJ).
32
+ * Útil para detectar si una prueba NK es trasladable a NJ.
33
+ */
34
+ exports.CLASSICAL_ONLY_RULES = ['doubleNegE', 'LEM', 'pierce', 'rAA'];
35
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/logic/profiles/natural-deduction-nk/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D;AAC/D,EAAE;AACF,2DAA2D;AAC3D,2DAA2D;AAC3D,6CAA6C;AAC7C,EAAE;AACF,mDAAmD;AACnD,iCAAiC;AACjC,gDAAgD;AAChD,qDAAqD;AACrD,2DAA2D;AAC3D,4CAA4C;AAC5C,2CAA2C;AAC3C,EAAE;AACF,4BAA4B;AAC5B,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,EAAE;AACF,8DAA8D;AAC9D,8DAA8D;AAC9D,wDAAwD;AACxD,oDAAoD;;;AAiDpD;;;GAGG;AACU,QAAA,oBAAoB,GAA0B,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,153 @@
1
+ export interface Vector {
2
+ values: number[];
3
+ }
4
+ export declare function vec(values: number[]): Vector;
5
+ export declare function dot(a: Vector, b: Vector): number;
6
+ export declare function norm(v: Vector): number;
7
+ export declare function normalize(v: Vector): Vector;
8
+ export declare function isOrthogonal(a: Vector, b: Vector, eps?: number): boolean;
9
+ /**
10
+ * Gram-Schmidt sobre `vectors`. Devuelve la base ortonormal del
11
+ * subespacio que generan (puede tener menos vectores que la entrada
12
+ * si hay dependencias). Devuelve `null` solo si la entrada está vacía.
13
+ */
14
+ export declare function orthonormalBasis(vectors: Vector[], eps?: number): Vector[] | null;
15
+ export interface Subspace {
16
+ basis: Vector[];
17
+ dimension: number;
18
+ ambientDim: number;
19
+ }
20
+ /**
21
+ * Subespacio generado por `vectors`. Si la lista está vacía,
22
+ * `ambientDim` debe pasarse para devolver el subespacio cero del
23
+ * ambiente correcto.
24
+ */
25
+ export declare function span(vectors: Vector[], ambientDim?: number): Subspace;
26
+ /** ¿a ⊆ b? Todos los vectores de la base de a están en b. */
27
+ export declare function isContained(a: Subspace, b: Subspace, eps?: number): boolean;
28
+ export declare function equalsSubspace(a: Subspace, b: Subspace, eps?: number): boolean;
29
+ /**
30
+ * Ortocomplemento de `s` en el ambiente de dimensión `ambientDim`.
31
+ * Algoritmo: tomar la base canónica e_1..e_n, restarle la proyección
32
+ * sobre `s`, y aplicar Gram-Schmidt; los vectores supervivientes
33
+ * forman la base ortonormal de s⊥.
34
+ */
35
+ export declare function orthocomplement(s: Subspace, ambientDim?: number): Subspace;
36
+ /**
37
+ * Join (∨) = span(a.basis ∪ b.basis). Es la operación supremo
38
+ * en el lattice; el resultado siempre contiene tanto a como b.
39
+ */
40
+ export declare function join(a: Subspace, b: Subspace): Subspace;
41
+ /**
42
+ * Meet (∧) = intersección de subespacios. Identidad lattice:
43
+ * a ∧ b = (a⊥ ∨ b⊥)⊥
44
+ */
45
+ export declare function meet(a: Subspace, b: Subspace): Subspace;
46
+ /** Subespacio cero (dimensión 0) en R^n. */
47
+ export declare function zeroSubspace(ambientDim: number): Subspace;
48
+ /** Top: todo el espacio R^n con la base canónica. */
49
+ export declare function topSubspace(ambientDim: number): Subspace;
50
+ export interface QuantumLattice {
51
+ dimensions: number;
52
+ meet: (a: Subspace, b: Subspace) => Subspace;
53
+ join: (a: Subspace, b: Subspace) => Subspace;
54
+ orthocomplement: (s: Subspace) => Subspace;
55
+ zero: Subspace;
56
+ top: Subspace;
57
+ }
58
+ export declare function makeQuantumLattice(dim: number): QuantumLattice;
59
+ /**
60
+ * Distributividad: a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c).
61
+ * En el lattice cuántico FALLA — devolvemos true sólo si se cumple
62
+ * para *toda* muestra (lo cual prácticamente nunca pasa para n ≥ 2).
63
+ */
64
+ export declare function isDistributive(L: QuantumLattice, samples?: number): boolean;
65
+ /**
66
+ * Modularidad: si a ≤ c entonces a ∨ (b ∧ c) = (a ∨ b) ∧ c.
67
+ * En dimensión finita el lattice de subespacios SÍ es modular
68
+ * (resultado clásico). El test forma a' = a ∧ c (siempre ≤ c)
69
+ * para garantizar la hipótesis a' ≤ c.
70
+ */
71
+ export declare function isModular(L: QuantumLattice, samples?: number): boolean;
72
+ /**
73
+ * Ortomodularidad: si a ≤ b entonces b = a ∨ (b ∧ a⊥).
74
+ * Se cumple en el lattice de subespacios de un espacio de Hilbert.
75
+ */
76
+ export declare function isOrthomodular(L: QuantumLattice, samples?: number): boolean;
77
+ export interface KSConfiguration {
78
+ vectors: Vector[];
79
+ /** Tripletes (i,j,k) tales que v_i, v_j, v_k son mutuamente ortogonales. */
80
+ orthoTriples: Array<[number, number, number]>;
81
+ }
82
+ /**
83
+ * Detecta automáticamente todos los triples ortogonales en R^3
84
+ * dentro de `vectors` y los registra. En R^3, tres vectores no
85
+ * nulos mutuamente ortogonales forman base.
86
+ */
87
+ export declare function findOrthogonalTriples(vectors: Vector[], eps?: number): Array<[number, number, number]>;
88
+ /**
89
+ * ¿Existe una coloración {0,1} de los vectores tal que:
90
+ * - dos vectores que generan el mismo rayo reciben el mismo color,
91
+ * - en cada triple ortogonal exactamente uno recibe color 1?
92
+ *
93
+ * Devuelve true si tal coloración existe (configuración "trivial"),
94
+ * false si la configuración es un teorema KS (no coloreable).
95
+ *
96
+ * Algoritmo: backtracking sobre los rayos (no los vectores), con
97
+ * unit-propagation por las restricciones de cada triple.
98
+ */
99
+ export declare function isKSColorable(config: KSConfiguration): boolean;
100
+ /**
101
+ * Configuración estilo-Peres: rayos en R^3 con coordenadas en
102
+ * { -1, 0, 1, ±√2 }, deduplicados por rayo. La cantidad exacta de
103
+ * rayos depende de cuáles dedupliquen (p.ej. (√2,√2,0) define el
104
+ * mismo rayo que (1,1,0)).
105
+ *
106
+ * Aviso histórico: la prueba ORIGINAL de Kochen-Specker (1967)
107
+ * usa 117 vectores en R^3. Asher Peres (1991) la simplificó a 33
108
+ * vectores en R^3, y Cabello-Estebaranz-García (1996) probaron
109
+ * que en R^4 bastan 18 — el mínimo conocido en cualquier
110
+ * dimensión, ver `kochenSpeckerCabello18()`. Aquí construimos
111
+ * la familia clásica de rayos R^3 a partir del cubo unitario;
112
+ * la prueba de no-coloreabilidad rigurosa se delega a la
113
+ * configuración Cabello-18 (R^4), que se incluye en el mismo
114
+ * módulo y es la que usan los tests para el teorema KS.
115
+ */
116
+ export declare function kochenSpeckerTheorem3D(): KSConfiguration;
117
+ /**
118
+ * Configuración Cabello-Estebaranz-García (1996): 18 vectores en
119
+ * R^4 que constituyen el menor conjunto Kochen-Specker conocido
120
+ * en cualquier dimensión. La prueba se basa en 9 "contextos"
121
+ * (bases ortonormales de R^4); cada vector aparece en exactamente
122
+ * 2 contextos, así que cualquier asignación 0/1 que ponga
123
+ * exactamente un "1" por contexto requeriría que la suma global
124
+ * sea 9 (impar), pero como cada vector contribuye 0 ó 2, la suma
125
+ * debe ser par — contradicción.
126
+ *
127
+ * El `KSConfiguration` devuelto es R^4; la función `isKSColorable`
128
+ * funciona idénticamente en cualquier dimensión, sólo verifica
129
+ * la estructura combinatoria de los `orthoTriples` (aquí, en R^4,
130
+ * los "triples" son en realidad CUÁDRUPLAS — para mantener la
131
+ * interfaz, partimos cada cuádrupla {a,b,c,d} en sus C(4,3)=4
132
+ * triples implicados; esto preserva la lógica "exactamente un 1
133
+ * por base" porque sumar exactamente 1 en cada uno de los 4
134
+ * triples implica sumar exactamente 1 en el cuádruplo).
135
+ *
136
+ * Wait: realmente el enunciado correcto en R^4 es "exactamente
137
+ * UN 1 por contexto ortonormal de 4 vectores". El checker actual
138
+ * trabaja en triples (R^3). Para R^4 usamos un solver
139
+ * especializado: `isKSColorableContexts`.
140
+ */
141
+ export declare function kochenSpeckerCabello18(): {
142
+ vectors: Vector[];
143
+ contexts: number[][];
144
+ };
145
+ /**
146
+ * Checker KS para contextos de cualquier aridad (no sólo R^3
147
+ * triples). Verifica que existe una asignación {0,1} a cada rayo
148
+ * tal que en cada contexto se asigna exactamente un 1.
149
+ *
150
+ * Usado para R^4 Cabello-18 (la prueba KS más pequeña conocida).
151
+ */
152
+ export declare function isKSColorableContexts(vectors: Vector[], contexts: number[][]): boolean;
153
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/logic/profiles/quantum/index.ts"],"names":[],"mappings":"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"}