@stevenvo780/st-lang 4.9.0 → 4.11.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 (241) 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/proof-systems/distributed-exchange/index.d.ts +101 -0
  18. package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -0
  19. package/dist/proof-systems/distributed-exchange/index.js +408 -0
  20. package/dist/proof-systems/distributed-exchange/index.js.map +1 -0
  21. package/dist/reasoning/automata/dfa.d.ts +17 -0
  22. package/dist/reasoning/automata/dfa.d.ts.map +1 -0
  23. package/dist/reasoning/automata/dfa.js +276 -0
  24. package/dist/reasoning/automata/dfa.js.map +1 -0
  25. package/dist/reasoning/automata/index.d.ts +8 -0
  26. package/dist/reasoning/automata/index.d.ts.map +1 -0
  27. package/dist/reasoning/automata/index.js +64 -0
  28. package/dist/reasoning/automata/index.js.map +1 -0
  29. package/dist/reasoning/automata/languages.d.ts +10 -0
  30. package/dist/reasoning/automata/languages.d.ts.map +1 -0
  31. package/dist/reasoning/automata/languages.js +78 -0
  32. package/dist/reasoning/automata/languages.js.map +1 -0
  33. package/dist/reasoning/automata/nfa.d.ts +8 -0
  34. package/dist/reasoning/automata/nfa.d.ts.map +1 -0
  35. package/dist/reasoning/automata/nfa.js +122 -0
  36. package/dist/reasoning/automata/nfa.js.map +1 -0
  37. package/dist/reasoning/automata/pda.d.ts +10 -0
  38. package/dist/reasoning/automata/pda.d.ts.map +1 -0
  39. package/dist/reasoning/automata/pda.js +169 -0
  40. package/dist/reasoning/automata/pda.js.map +1 -0
  41. package/dist/reasoning/automata/regex.d.ts +6 -0
  42. package/dist/reasoning/automata/regex.d.ts.map +1 -0
  43. package/dist/reasoning/automata/regex.js +259 -0
  44. package/dist/reasoning/automata/regex.js.map +1 -0
  45. package/dist/reasoning/automata/types.d.ts +69 -0
  46. package/dist/reasoning/automata/types.d.ts.map +1 -0
  47. package/dist/reasoning/automata/types.js +29 -0
  48. package/dist/reasoning/automata/types.js.map +1 -0
  49. package/dist/reasoning/computability/index.d.ts +239 -0
  50. package/dist/reasoning/computability/index.d.ts.map +1 -0
  51. package/dist/reasoning/computability/index.js +851 -0
  52. package/dist/reasoning/computability/index.js.map +1 -0
  53. package/dist/reasoning/graph-theory/index.d.ts +63 -0
  54. package/dist/reasoning/graph-theory/index.d.ts.map +1 -0
  55. package/dist/reasoning/graph-theory/index.js +1043 -0
  56. package/dist/reasoning/graph-theory/index.js.map +1 -0
  57. package/dist/reasoning/group-presentation/cayley.d.ts +8 -0
  58. package/dist/reasoning/group-presentation/cayley.d.ts.map +1 -0
  59. package/dist/reasoning/group-presentation/cayley.js +38 -0
  60. package/dist/reasoning/group-presentation/cayley.js.map +1 -0
  61. package/dist/reasoning/group-presentation/index.d.ts +8 -0
  62. package/dist/reasoning/group-presentation/index.d.ts.map +1 -0
  63. package/dist/reasoning/group-presentation/index.js +36 -0
  64. package/dist/reasoning/group-presentation/index.js.map +1 -0
  65. package/dist/reasoning/group-presentation/standard-groups.d.ts +6 -0
  66. package/dist/reasoning/group-presentation/standard-groups.d.ts.map +1 -0
  67. package/dist/reasoning/group-presentation/standard-groups.js +93 -0
  68. package/dist/reasoning/group-presentation/standard-groups.js.map +1 -0
  69. package/dist/reasoning/group-presentation/todd-coxeter.d.ts +10 -0
  70. package/dist/reasoning/group-presentation/todd-coxeter.d.ts.map +1 -0
  71. package/dist/reasoning/group-presentation/todd-coxeter.js +362 -0
  72. package/dist/reasoning/group-presentation/todd-coxeter.js.map +1 -0
  73. package/dist/reasoning/group-presentation/types.d.ts +7 -0
  74. package/dist/reasoning/group-presentation/types.d.ts.map +1 -0
  75. package/dist/reasoning/group-presentation/types.js +22 -0
  76. package/dist/reasoning/group-presentation/types.js.map +1 -0
  77. package/dist/reasoning/group-presentation/words.d.ts +10 -0
  78. package/dist/reasoning/group-presentation/words.d.ts.map +1 -0
  79. package/dist/reasoning/group-presentation/words.js +109 -0
  80. package/dist/reasoning/group-presentation/words.js.map +1 -0
  81. package/dist/reasoning/number-theory/crt.d.ts +9 -0
  82. package/dist/reasoning/number-theory/crt.d.ts.map +1 -0
  83. package/dist/reasoning/number-theory/crt.js +39 -0
  84. package/dist/reasoning/number-theory/crt.js.map +1 -0
  85. package/dist/reasoning/number-theory/diophantine.d.ts +10 -0
  86. package/dist/reasoning/number-theory/diophantine.d.ts.map +1 -0
  87. package/dist/reasoning/number-theory/diophantine.js +87 -0
  88. package/dist/reasoning/number-theory/diophantine.js.map +1 -0
  89. package/dist/reasoning/number-theory/factorization.d.ts +12 -0
  90. package/dist/reasoning/number-theory/factorization.d.ts.map +1 -0
  91. package/dist/reasoning/number-theory/factorization.js +136 -0
  92. package/dist/reasoning/number-theory/factorization.js.map +1 -0
  93. package/dist/reasoning/number-theory/gcd.d.ts +8 -0
  94. package/dist/reasoning/number-theory/gcd.d.ts.map +1 -0
  95. package/dist/reasoning/number-theory/gcd.js +51 -0
  96. package/dist/reasoning/number-theory/gcd.js.map +1 -0
  97. package/dist/reasoning/number-theory/index.d.ts +9 -0
  98. package/dist/reasoning/number-theory/index.d.ts.map +1 -0
  99. package/dist/reasoning/number-theory/index.js +46 -0
  100. package/dist/reasoning/number-theory/index.js.map +1 -0
  101. package/dist/reasoning/number-theory/modular.d.ts +6 -0
  102. package/dist/reasoning/number-theory/modular.d.ts.map +1 -0
  103. package/dist/reasoning/number-theory/modular.js +75 -0
  104. package/dist/reasoning/number-theory/modular.js.map +1 -0
  105. package/dist/reasoning/number-theory/primality.d.ts +6 -0
  106. package/dist/reasoning/number-theory/primality.d.ts.map +1 -0
  107. package/dist/reasoning/number-theory/primality.js +144 -0
  108. package/dist/reasoning/number-theory/primality.js.map +1 -0
  109. package/dist/reasoning/number-theory/symbols.d.ts +3 -0
  110. package/dist/reasoning/number-theory/symbols.d.ts.map +1 -0
  111. package/dist/reasoning/number-theory/symbols.js +57 -0
  112. package/dist/reasoning/number-theory/symbols.js.map +1 -0
  113. package/dist/reasoning/real-analysis/index.d.ts +127 -0
  114. package/dist/reasoning/real-analysis/index.d.ts.map +1 -0
  115. package/dist/reasoning/real-analysis/index.js +638 -0
  116. package/dist/reasoning/real-analysis/index.js.map +1 -0
  117. package/dist/reasoning/topology/index.d.ts +41 -0
  118. package/dist/reasoning/topology/index.d.ts.map +1 -0
  119. package/dist/reasoning/topology/index.js +739 -0
  120. package/dist/reasoning/topology/index.js.map +1 -0
  121. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts +2 -0
  122. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts.map +1 -0
  123. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js +288 -0
  124. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js.map +1 -0
  125. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.d.ts +2 -0
  126. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.d.ts.map +1 -0
  127. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.js +328 -0
  128. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.js.map +1 -0
  129. package/dist/tests/reasoning/automata/automata.test.d.ts +2 -0
  130. package/dist/tests/reasoning/automata/automata.test.d.ts.map +1 -0
  131. package/dist/tests/reasoning/automata/automata.test.js +310 -0
  132. package/dist/tests/reasoning/automata/automata.test.js.map +1 -0
  133. package/dist/tests/reasoning/computability/computability.test.d.ts +2 -0
  134. package/dist/tests/reasoning/computability/computability.test.d.ts.map +1 -0
  135. package/dist/tests/reasoning/computability/computability.test.js +246 -0
  136. package/dist/tests/reasoning/computability/computability.test.js.map +1 -0
  137. package/dist/tests/reasoning/graph-theory/graph-theory.test.d.ts +2 -0
  138. package/dist/tests/reasoning/graph-theory/graph-theory.test.d.ts.map +1 -0
  139. package/dist/tests/reasoning/graph-theory/graph-theory.test.js +363 -0
  140. package/dist/tests/reasoning/graph-theory/graph-theory.test.js.map +1 -0
  141. package/dist/tests/reasoning/group-presentation/group-presentation.test.d.ts +2 -0
  142. package/dist/tests/reasoning/group-presentation/group-presentation.test.d.ts.map +1 -0
  143. package/dist/tests/reasoning/group-presentation/group-presentation.test.js +229 -0
  144. package/dist/tests/reasoning/group-presentation/group-presentation.test.js.map +1 -0
  145. package/dist/tests/reasoning/number-theory/number-theory.test.d.ts +2 -0
  146. package/dist/tests/reasoning/number-theory/number-theory.test.d.ts.map +1 -0
  147. package/dist/tests/reasoning/number-theory/number-theory.test.js +170 -0
  148. package/dist/tests/reasoning/number-theory/number-theory.test.js.map +1 -0
  149. package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts +2 -0
  150. package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts.map +1 -0
  151. package/dist/tests/reasoning/real-analysis/real-analysis.test.js +197 -0
  152. package/dist/tests/reasoning/real-analysis/real-analysis.test.js.map +1 -0
  153. package/dist/tests/reasoning/topology/topology.test.d.ts +2 -0
  154. package/dist/tests/reasoning/topology/topology.test.d.ts.map +1 -0
  155. package/dist/tests/reasoning/topology/topology.test.js +327 -0
  156. package/dist/tests/reasoning/topology/topology.test.js.map +1 -0
  157. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.d.ts +2 -0
  158. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.d.ts.map +1 -0
  159. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.js +411 -0
  160. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.js.map +1 -0
  161. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts +2 -0
  162. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts.map +1 -0
  163. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js +473 -0
  164. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js.map +1 -0
  165. package/dist/tests/tooling/lemma-library/lemma-library.test.d.ts +2 -0
  166. package/dist/tests/tooling/lemma-library/lemma-library.test.d.ts.map +1 -0
  167. package/dist/tests/tooling/lemma-library/lemma-library.test.js +197 -0
  168. package/dist/tests/tooling/lemma-library/lemma-library.test.js.map +1 -0
  169. package/dist/tests/tooling/provenance/ledger.test.d.ts +2 -0
  170. package/dist/tests/tooling/provenance/ledger.test.d.ts.map +1 -0
  171. package/dist/tests/tooling/provenance/ledger.test.js +545 -0
  172. package/dist/tests/tooling/provenance/ledger.test.js.map +1 -0
  173. package/dist/tooling/exporters/coq-v2/index.d.ts +68 -0
  174. package/dist/tooling/exporters/coq-v2/index.d.ts.map +1 -0
  175. package/dist/tooling/exporters/coq-v2/index.js +692 -0
  176. package/dist/tooling/exporters/coq-v2/index.js.map +1 -0
  177. package/dist/tooling/exporters/lean4/index.d.ts +47 -0
  178. package/dist/tooling/exporters/lean4/index.d.ts.map +1 -0
  179. package/dist/tooling/exporters/lean4/index.js +423 -0
  180. package/dist/tooling/exporters/lean4/index.js.map +1 -0
  181. package/dist/tooling/lemma-library/apply.d.ts +9 -0
  182. package/dist/tooling/lemma-library/apply.d.ts.map +1 -0
  183. package/dist/tooling/lemma-library/apply.js +94 -0
  184. package/dist/tooling/lemma-library/apply.js.map +1 -0
  185. package/dist/tooling/lemma-library/arithmetic.d.ts +3 -0
  186. package/dist/tooling/lemma-library/arithmetic.d.ts.map +1 -0
  187. package/dist/tooling/lemma-library/arithmetic.js +176 -0
  188. package/dist/tooling/lemma-library/arithmetic.js.map +1 -0
  189. package/dist/tooling/lemma-library/firstorder.d.ts +3 -0
  190. package/dist/tooling/lemma-library/firstorder.d.ts.map +1 -0
  191. package/dist/tooling/lemma-library/firstorder.js +136 -0
  192. package/dist/tooling/lemma-library/firstorder.js.map +1 -0
  193. package/dist/tooling/lemma-library/index.d.ts +13 -0
  194. package/dist/tooling/lemma-library/index.d.ts.map +1 -0
  195. package/dist/tooling/lemma-library/index.js +32 -0
  196. package/dist/tooling/lemma-library/index.js.map +1 -0
  197. package/dist/tooling/lemma-library/library.d.ts +34 -0
  198. package/dist/tooling/lemma-library/library.d.ts.map +1 -0
  199. package/dist/tooling/lemma-library/library.js +126 -0
  200. package/dist/tooling/lemma-library/library.js.map +1 -0
  201. package/dist/tooling/lemma-library/modal.d.ts +3 -0
  202. package/dist/tooling/lemma-library/modal.d.ts.map +1 -0
  203. package/dist/tooling/lemma-library/modal.js +138 -0
  204. package/dist/tooling/lemma-library/modal.js.map +1 -0
  205. package/dist/tooling/lemma-library/propositional.d.ts +3 -0
  206. package/dist/tooling/lemma-library/propositional.d.ts.map +1 -0
  207. package/dist/tooling/lemma-library/propositional.js +265 -0
  208. package/dist/tooling/lemma-library/propositional.js.map +1 -0
  209. package/dist/tooling/lemma-library/set-theory.d.ts +3 -0
  210. package/dist/tooling/lemma-library/set-theory.d.ts.map +1 -0
  211. package/dist/tooling/lemma-library/set-theory.js +134 -0
  212. package/dist/tooling/lemma-library/set-theory.js.map +1 -0
  213. package/dist/tooling/lemma-library/standard.d.ts +3 -0
  214. package/dist/tooling/lemma-library/standard.d.ts.map +1 -0
  215. package/dist/tooling/lemma-library/standard.js +27 -0
  216. package/dist/tooling/lemma-library/standard.js.map +1 -0
  217. package/dist/tooling/lemma-library/tfidf.d.ts +5 -0
  218. package/dist/tooling/lemma-library/tfidf.d.ts.map +1 -0
  219. package/dist/tooling/lemma-library/tfidf.js +100 -0
  220. package/dist/tooling/lemma-library/tfidf.js.map +1 -0
  221. package/dist/tooling/lemma-library/tokenize.d.ts +2 -0
  222. package/dist/tooling/lemma-library/tokenize.d.ts.map +1 -0
  223. package/dist/tooling/lemma-library/tokenize.js +74 -0
  224. package/dist/tooling/lemma-library/tokenize.js.map +1 -0
  225. package/dist/tooling/lemma-library/types.d.ts +53 -0
  226. package/dist/tooling/lemma-library/types.d.ts.map +1 -0
  227. package/dist/tooling/lemma-library/types.js +10 -0
  228. package/dist/tooling/lemma-library/types.js.map +1 -0
  229. package/dist/tooling/provenance/index.d.ts +3 -0
  230. package/dist/tooling/provenance/index.d.ts.map +1 -0
  231. package/dist/tooling/provenance/index.js +16 -0
  232. package/dist/tooling/provenance/index.js.map +1 -0
  233. package/dist/tooling/provenance/ledger.d.ts +89 -0
  234. package/dist/tooling/provenance/ledger.d.ts.map +1 -0
  235. package/dist/tooling/provenance/ledger.js +439 -0
  236. package/dist/tooling/provenance/ledger.js.map +1 -0
  237. package/dist/tooling/provenance/types.d.ts +70 -0
  238. package/dist/tooling/provenance/types.d.ts.map +1 -0
  239. package/dist/tooling/provenance/types.js +14 -0
  240. package/dist/tooling/provenance/types.js.map +1 -0
  241. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ import { NKFormula } from './types';
2
+ /**
3
+ * Clave sintáctica estable para deduplicación / memoización.
4
+ */
5
+ export declare function formulaKey(f: NKFormula): string;
6
+ export declare function formulaEquals(a: NKFormula, b: NKFormula): boolean;
7
+ export declare function formulaToString(f: NKFormula): string;
8
+ /**
9
+ * Recolecta los átomos proposicionales que aparecen en `f`.
10
+ */
11
+ export declare function collectAtoms(f: NKFormula, out?: Set<string>): Set<string>;
12
+ export declare const atom: (name: string) => NKFormula;
13
+ export declare const bottom: () => NKFormula;
14
+ export declare const not: (arg: NKFormula) => NKFormula;
15
+ export declare const and: (left: NKFormula, right: NKFormula) => NKFormula;
16
+ export declare const or: (left: NKFormula, right: NKFormula) => NKFormula;
17
+ export declare const implies: (left: NKFormula, right: NKFormula) => NKFormula;
18
+ //# sourceMappingURL=formula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../../../src/logic/profiles/natural-deduction-nk/formula.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAe/C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAEjE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAepD;AAOD;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAepF;AAID,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,KAAG,SAAqC,CAAC;AAC1E,eAAO,MAAM,MAAM,QAAO,SAAiC,CAAC;AAC5D,eAAO,MAAM,GAAG,GAAI,KAAK,SAAS,KAAG,SAAmC,CAAC;AACzE,eAAO,MAAM,GAAG,GAAI,MAAM,SAAS,EAAE,OAAO,SAAS,KAAG,SAItD,CAAC;AACH,eAAO,MAAM,EAAE,GAAI,MAAM,SAAS,EAAE,OAAO,SAAS,KAAG,SAIrD,CAAC;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,SAAS,EAAE,OAAO,SAAS,KAAG,SAI1D,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Helpers de fórmulas clásicas (NK)
4
+ // ============================================================
5
+ //
6
+ // Estructuralmente idéntico al de NJ; la diferencia con la
7
+ // lógica intuicionista no está en la sintaxis sino en las reglas
8
+ // admisibles.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.implies = exports.or = exports.and = exports.not = exports.bottom = exports.atom = void 0;
11
+ exports.formulaKey = formulaKey;
12
+ exports.formulaEquals = formulaEquals;
13
+ exports.formulaToString = formulaToString;
14
+ exports.collectAtoms = collectAtoms;
15
+ /**
16
+ * Clave sintáctica estable para deduplicación / memoización.
17
+ */
18
+ function formulaKey(f) {
19
+ switch (f.kind) {
20
+ case 'atom':
21
+ return `A(${f.name})`;
22
+ case 'bottom':
23
+ return '⊥';
24
+ case 'not':
25
+ return `N(${formulaKey(f.arg)})`;
26
+ case 'and':
27
+ return `&(${formulaKey(f.left)},${formulaKey(f.right)})`;
28
+ case 'or':
29
+ return `|(${formulaKey(f.left)},${formulaKey(f.right)})`;
30
+ case 'implies':
31
+ return `>(${formulaKey(f.left)},${formulaKey(f.right)})`;
32
+ }
33
+ }
34
+ function formulaEquals(a, b) {
35
+ return formulaKey(a) === formulaKey(b);
36
+ }
37
+ function formulaToString(f) {
38
+ switch (f.kind) {
39
+ case 'atom':
40
+ return f.name;
41
+ case 'bottom':
42
+ return '⊥';
43
+ case 'not':
44
+ return `¬${parens(f.arg)}`;
45
+ case 'and':
46
+ return `(${formulaToString(f.left)} ∧ ${formulaToString(f.right)})`;
47
+ case 'or':
48
+ return `(${formulaToString(f.left)} ∨ ${formulaToString(f.right)})`;
49
+ case 'implies':
50
+ return `(${formulaToString(f.left)} → ${formulaToString(f.right)})`;
51
+ }
52
+ }
53
+ function parens(f) {
54
+ if (f.kind === 'atom' || f.kind === 'bottom')
55
+ return formulaToString(f);
56
+ return `(${formulaToString(f)})`;
57
+ }
58
+ /**
59
+ * Recolecta los átomos proposicionales que aparecen en `f`.
60
+ */
61
+ function collectAtoms(f, out = new Set()) {
62
+ switch (f.kind) {
63
+ case 'atom':
64
+ out.add(f.name);
65
+ return out;
66
+ case 'bottom':
67
+ return out;
68
+ case 'not':
69
+ return collectAtoms(f.arg, out);
70
+ case 'and':
71
+ case 'or':
72
+ case 'implies':
73
+ collectAtoms(f.left, out);
74
+ return collectAtoms(f.right, out);
75
+ }
76
+ }
77
+ // Constructores ergonómicos -----------------------------------
78
+ const atom = (name) => ({ kind: 'atom', name });
79
+ exports.atom = atom;
80
+ const bottom = () => ({ kind: 'bottom' });
81
+ exports.bottom = bottom;
82
+ const not = (arg) => ({ kind: 'not', arg });
83
+ exports.not = not;
84
+ const and = (left, right) => ({
85
+ kind: 'and',
86
+ left,
87
+ right,
88
+ });
89
+ exports.and = and;
90
+ const or = (left, right) => ({
91
+ kind: 'or',
92
+ left,
93
+ right,
94
+ });
95
+ exports.or = or;
96
+ const implies = (left, right) => ({
97
+ kind: 'implies',
98
+ left,
99
+ right,
100
+ });
101
+ exports.implies = implies;
102
+ //# sourceMappingURL=formula.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula.js","sourceRoot":"","sources":["../../../../src/logic/profiles/natural-deduction-nk/formula.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { NKFormula, NKRule, NKProof } from './types';
2
+ export { CLASSICAL_ONLY_RULES } from './types';
3
+ export { formulaKey, formulaEquals, formulaToString, collectAtoms, atom, bottom, not, and, or, implies, } from './formula';
4
+ export { proveClassically, proveIntuitOnly, verifyProof, provedPeirce, provedDNE, provedLEM, nkToNJ, } from './prover';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/logic/profiles/natural-deduction-nk/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,GAAG,EACH,GAAG,EACH,EAAE,EACF,OAAO,GACR,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,MAAM,GACP,MAAM,UAAU,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Natural Deduction NK (classical) — Entrada pública
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.nkToNJ = exports.provedLEM = exports.provedDNE = exports.provedPeirce = exports.verifyProof = exports.proveIntuitOnly = exports.proveClassically = exports.implies = exports.or = exports.and = exports.not = exports.bottom = exports.atom = exports.collectAtoms = exports.formulaToString = exports.formulaEquals = exports.formulaKey = exports.CLASSICAL_ONLY_RULES = void 0;
7
+ var types_1 = require("./types");
8
+ Object.defineProperty(exports, "CLASSICAL_ONLY_RULES", { enumerable: true, get: function () { return types_1.CLASSICAL_ONLY_RULES; } });
9
+ var formula_1 = require("./formula");
10
+ Object.defineProperty(exports, "formulaKey", { enumerable: true, get: function () { return formula_1.formulaKey; } });
11
+ Object.defineProperty(exports, "formulaEquals", { enumerable: true, get: function () { return formula_1.formulaEquals; } });
12
+ Object.defineProperty(exports, "formulaToString", { enumerable: true, get: function () { return formula_1.formulaToString; } });
13
+ Object.defineProperty(exports, "collectAtoms", { enumerable: true, get: function () { return formula_1.collectAtoms; } });
14
+ Object.defineProperty(exports, "atom", { enumerable: true, get: function () { return formula_1.atom; } });
15
+ Object.defineProperty(exports, "bottom", { enumerable: true, get: function () { return formula_1.bottom; } });
16
+ Object.defineProperty(exports, "not", { enumerable: true, get: function () { return formula_1.not; } });
17
+ Object.defineProperty(exports, "and", { enumerable: true, get: function () { return formula_1.and; } });
18
+ Object.defineProperty(exports, "or", { enumerable: true, get: function () { return formula_1.or; } });
19
+ Object.defineProperty(exports, "implies", { enumerable: true, get: function () { return formula_1.implies; } });
20
+ var prover_1 = require("./prover");
21
+ Object.defineProperty(exports, "proveClassically", { enumerable: true, get: function () { return prover_1.proveClassically; } });
22
+ Object.defineProperty(exports, "proveIntuitOnly", { enumerable: true, get: function () { return prover_1.proveIntuitOnly; } });
23
+ Object.defineProperty(exports, "verifyProof", { enumerable: true, get: function () { return prover_1.verifyProof; } });
24
+ Object.defineProperty(exports, "provedPeirce", { enumerable: true, get: function () { return prover_1.provedPeirce; } });
25
+ Object.defineProperty(exports, "provedDNE", { enumerable: true, get: function () { return prover_1.provedDNE; } });
26
+ Object.defineProperty(exports, "provedLEM", { enumerable: true, get: function () { return prover_1.provedLEM; } });
27
+ Object.defineProperty(exports, "nkToNJ", { enumerable: true, get: function () { return prover_1.nkToNJ; } });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/logic/profiles/natural-deduction-nk/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qDAAqD;AACrD,+DAA+D;;;AAG/D,iCAA+C;AAAtC,6GAAA,oBAAoB,OAAA;AAE7B,qCAWmB;AAVjB,qGAAA,UAAU,OAAA;AACV,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,uGAAA,YAAY,OAAA;AACZ,+FAAA,IAAI,OAAA;AACJ,iGAAA,MAAM,OAAA;AACN,8FAAA,GAAG,OAAA;AACH,8FAAA,GAAG,OAAA;AACH,6FAAA,EAAE,OAAA;AACF,kGAAA,OAAO,OAAA;AAGT,mCAQkB;AAPhB,0GAAA,gBAAgB,OAAA;AAChB,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AACZ,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,gGAAA,MAAM,OAAA"}
@@ -0,0 +1,49 @@
1
+ import { NKFormula, NKProof } from './types';
2
+ /**
3
+ * API pública: prueba clásica.
4
+ *
5
+ * Devuelve un árbol NK que demuestra `goal` a partir de las
6
+ * `premises` dadas, o `null` si no encontró prueba.
7
+ */
8
+ export declare function proveClassically(premises: NKFormula[], goal: NKFormula, options?: {
9
+ budget?: number;
10
+ }): NKProof | null;
11
+ /**
12
+ * Variante restringida: intenta probar usando sólo reglas
13
+ * intuicionistas (NJ). Útil internamente para `nkToNJ`.
14
+ */
15
+ export declare function proveIntuitOnly(premises: NKFormula[], goal: NKFormula, options?: {
16
+ budget?: number;
17
+ }): NKProof | null;
18
+ /**
19
+ * Verifica recursivamente el árbol NK. Comprueba cada regla
20
+ * localmente contra su conclusión y contexto.
21
+ */
22
+ export declare function verifyProof(proof: NKProof, initialContext?: NKFormula[]): boolean;
23
+ /**
24
+ * Devuelve una prueba NK de la ley de Peirce: ((P→Q)→P)→P.
25
+ */
26
+ export declare function provedPeirce(): NKProof;
27
+ /**
28
+ * Devuelve una prueba NK de la eliminación de doble negación: ¬¬P → P.
29
+ */
30
+ export declare function provedDNE(): NKProof;
31
+ /**
32
+ * Devuelve una prueba NK del tercero excluido: P ∨ ¬P.
33
+ */
34
+ export declare function provedLEM(): NKProof;
35
+ /**
36
+ * Indica si una prueba NK puede traducirse a NJ sin pérdida.
37
+ * Si contiene alguna regla puramente clásica, la traducción
38
+ * falla con `reason`. Si es puramente intuicionista, se
39
+ * devuelve la prueba intacta (cast estructural a NJProof).
40
+ *
41
+ * No intentamos la traducción de Glivenko ni doble-negación
42
+ * uniforme aquí: el objetivo es detectar si la prueba ya está
43
+ * en el fragmento intuicionista.
44
+ */
45
+ export declare function nkToNJ(proof: NKProof): {
46
+ converted?: NKProof;
47
+ reason?: string;
48
+ };
49
+ //# sourceMappingURL=prover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prover.d.ts","sourceRoot":"","sources":["../../../../src/logic/profiles/natural-deduction-nk/prover.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAgC,MAAM,SAAS,CAAC;AA8Q3E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,EAAE,EACrB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,GAAG,IAAI,CAGhB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,EAAE,EACrB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,GAAG,IAAI,CAGhB;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,GAAE,SAAS,EAAO,GAAG,OAAO,CAErF;AAuJD;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAatC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAgBnC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAUnC;AAID;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAU/E"}