@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,411 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Tests — Coq exporter V2 (dependent types + hints + strategies)
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const coq_v2_1 = require("../../../../tooling/exporters/coq-v2");
8
+ // ----------------------------------------------------------------
9
+ // Builder helpers
10
+ // ----------------------------------------------------------------
11
+ function atom(name) {
12
+ return { kind: 'atom', name };
13
+ }
14
+ function implies(a, b) {
15
+ return { kind: 'implies', args: [a, b] };
16
+ }
17
+ function and(a, b) {
18
+ return { kind: 'and', args: [a, b] };
19
+ }
20
+ function or(a, b) {
21
+ return { kind: 'or', args: [a, b] };
22
+ }
23
+ function not(f) {
24
+ return { kind: 'not', args: [f] };
25
+ }
26
+ function forall(variable, body) {
27
+ return { kind: 'forall', variable, args: [body] };
28
+ }
29
+ function exists(variable, body) {
30
+ return { kind: 'exists', variable, args: [body] };
31
+ }
32
+ function predicate(name, ...params) {
33
+ return { kind: 'predicate', name, params };
34
+ }
35
+ function equals(a, b) {
36
+ return { kind: 'equals', args: [a, b] };
37
+ }
38
+ function less(a, b) {
39
+ return { kind: 'less', args: [a, b] };
40
+ }
41
+ // ----------------------------------------------------------------
42
+ // Sanity helpers
43
+ // ----------------------------------------------------------------
44
+ function parensBalanced(code) {
45
+ let depth = 0;
46
+ for (const ch of code) {
47
+ if (ch === '(')
48
+ depth++;
49
+ else if (ch === ')')
50
+ depth--;
51
+ if (depth < 0)
52
+ return false;
53
+ }
54
+ return depth === 0;
55
+ }
56
+ // ----------------------------------------------------------------
57
+ // chooseStrategy
58
+ // ----------------------------------------------------------------
59
+ (0, vitest_1.describe)('chooseStrategy — picks tactic by shape', () => {
60
+ (0, vitest_1.it)('forall n, n = n → reflexivity', () => {
61
+ const f = forall('n', equals(atom('n'), atom('n')));
62
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)(f)).toBe('reflexivity');
63
+ });
64
+ (0, vitest_1.it)('aritmética con < → lia', () => {
65
+ const f = forall('n', less(atom('n'), atom('n')));
66
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)(f)).toBe('lia');
67
+ });
68
+ (0, vitest_1.it)('forall x, P x → Q x → firstorder', () => {
69
+ const f = forall('x', implies(predicate('P', 'x'), predicate('Q', 'x')));
70
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)(f)).toBe('firstorder');
71
+ });
72
+ (0, vitest_1.it)('P ∨ ¬P → tauto', () => {
73
+ const f = or(atom('P'), not(atom('P')));
74
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)(f)).toBe('tauto');
75
+ });
76
+ (0, vitest_1.it)('(P → Q) → (Q → R) → P → R → intuition', () => {
77
+ const f = implies(implies(atom('P'), atom('Q')), implies(implies(atom('Q'), atom('R')), implies(atom('P'), atom('R'))));
78
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)(f)).toBe('intuition');
79
+ });
80
+ (0, vitest_1.it)('atom → fallback auto', () => {
81
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)(atom('P'))).toBe('auto');
82
+ });
83
+ (0, vitest_1.it)('non-formula input → auto', () => {
84
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)(null)).toBe('auto');
85
+ (0, vitest_1.expect)((0, coq_v2_1.chooseStrategy)('not a formula')).toBe('auto');
86
+ });
87
+ });
88
+ // ----------------------------------------------------------------
89
+ // formulaToCoqType — dependent sorts
90
+ // ----------------------------------------------------------------
91
+ (0, vitest_1.describe)('formulaToCoqType — dependent types', () => {
92
+ (0, vitest_1.it)('forall x con uso aritmético → nat', () => {
93
+ const f = forall('n', less(atom('n'), atom('n')));
94
+ const t = (0, coq_v2_1.formulaToCoqType)(f);
95
+ (0, vitest_1.expect)(t).toContain('forall n : nat');
96
+ });
97
+ (0, vitest_1.it)('forall x con predicado simbólico → Type', () => {
98
+ const f = forall('x', predicate('P', 'x'));
99
+ const t = (0, coq_v2_1.formulaToCoqType)(f);
100
+ // No aritmética → default Type
101
+ (0, vitest_1.expect)(t).toContain('forall x : Type');
102
+ });
103
+ (0, vitest_1.it)('exists y de naturaleza aritmética → nat', () => {
104
+ const f = exists('k', less(atom('k'), atom('k')));
105
+ const t = (0, coq_v2_1.formulaToCoqType)(f);
106
+ (0, vitest_1.expect)(t).toContain('exists k : nat');
107
+ });
108
+ (0, vitest_1.it)('equality syntáctica preserva =', () => {
109
+ const f = equals(atom('a'), atom('b'));
110
+ const t = (0, coq_v2_1.formulaToCoqType)(f);
111
+ (0, vitest_1.expect)(t).toContain('=');
112
+ });
113
+ (0, vitest_1.it)('non-formula input → Prop', () => {
114
+ (0, vitest_1.expect)((0, coq_v2_1.formulaToCoqType)(null)).toBe('Prop');
115
+ (0, vitest_1.expect)((0, coq_v2_1.formulaToCoqType)({})).toBe('Prop');
116
+ });
117
+ });
118
+ (0, vitest_1.describe)('inferDependentSorts', () => {
119
+ (0, vitest_1.it)('registra todas las variables cuantificadas', () => {
120
+ const f = forall('n', exists('m', less(atom('n'), atom('m'))));
121
+ const sorts = (0, coq_v2_1.inferDependentSorts)(f);
122
+ (0, vitest_1.expect)(sorts.has('n')).toBe(true);
123
+ (0, vitest_1.expect)(sorts.has('m')).toBe(true);
124
+ (0, vitest_1.expect)(sorts.get('n')).toBe('nat');
125
+ (0, vitest_1.expect)(sorts.get('m')).toBe('nat');
126
+ });
127
+ (0, vitest_1.it)('input no-formula → mapa vacío', () => {
128
+ (0, vitest_1.expect)((0, coq_v2_1.inferDependentSorts)(null).size).toBe(0);
129
+ });
130
+ });
131
+ // ----------------------------------------------------------------
132
+ // exportToCoqV2 — derived tactics
133
+ // ----------------------------------------------------------------
134
+ (0, vitest_1.describe)('exportToCoqV2 — derived tactics', () => {
135
+ (0, vitest_1.it)('LEM via Classical: P ∨ ¬P emite tauto', () => {
136
+ const lem = forall('P', or(atom('P'), not(atom('P'))));
137
+ const coq = (0, coq_v2_1.exportToCoqV2)(lem);
138
+ (0, vitest_1.expect)(coq).toContain('Require Import Classical.');
139
+ (0, vitest_1.expect)(coq).toContain('Theorem stmt_proof');
140
+ // forall sobre P (no aritmético) y tauto resuelve disyunción + negación
141
+ (0, vitest_1.expect)(coq).toContain('tauto');
142
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
143
+ });
144
+ (0, vitest_1.it)('tauto sobre P ∧ Q → P ∧ Q (con ¬ no presente → no tauto, intuition o auto)', () => {
145
+ const f = implies(and(atom('P'), atom('Q')), and(atom('P'), atom('Q')));
146
+ const coq = (0, coq_v2_1.exportToCoqV2)(f);
147
+ // No tiene ∨ con ¬, así que cae en intuition/auto. Lo que importa: válido.
148
+ (0, vitest_1.expect)(coq).toContain('Theorem');
149
+ (0, vitest_1.expect)(coq).toContain('Qed.');
150
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
151
+ });
152
+ (0, vitest_1.it)('firstorder sobre (forall x, P x -> Q x) -> (exists x, P x) -> exists x, Q x', () => {
153
+ const f = implies(forall('x', implies(predicate('P', 'x'), predicate('Q', 'x'))), implies(exists('x', predicate('P', 'x')), exists('x', predicate('Q', 'x'))));
154
+ const coq = (0, coq_v2_1.exportToCoqV2)(f);
155
+ (0, vitest_1.expect)(coq).toContain('firstorder');
156
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
157
+ });
158
+ (0, vitest_1.it)('intuition sobre (P → Q) → (Q → R) → P → R', () => {
159
+ const f = implies(implies(atom('P'), atom('Q')), implies(implies(atom('Q'), atom('R')), implies(atom('P'), atom('R'))));
160
+ const coq = (0, coq_v2_1.exportToCoqV2)(f);
161
+ (0, vitest_1.expect)(coq).toContain('intuition');
162
+ });
163
+ (0, vitest_1.it)('dependent: forall n : nat, n = n → reflexivity + Arith import', () => {
164
+ const f = forall('n', equals(atom('n'), atom('n')));
165
+ const coq = (0, coq_v2_1.exportToCoqV2)(f);
166
+ // sort inferido: no aritmético en isolation (equals con atom no es lia-class)
167
+ // pero la estrategia debe ser reflexivity
168
+ (0, vitest_1.expect)(coq).toContain('reflexivity');
169
+ (0, vitest_1.expect)(coq).toContain('Theorem stmt_proof');
170
+ });
171
+ (0, vitest_1.it)('useAuto = false: cae en admit cuando no hay strategy', () => {
172
+ const f = atom('Mystery');
173
+ const coq = (0, coq_v2_1.exportToCoqV2)(f, { useAuto: false });
174
+ (0, vitest_1.expect)(coq).toContain('admit');
175
+ });
176
+ (0, vitest_1.it)('imports custom override inferencia', () => {
177
+ const f = atom('P');
178
+ const coq = (0, coq_v2_1.exportToCoqV2)(f, { imports: ['Bool'] });
179
+ (0, vitest_1.expect)(coq).toContain('Require Import Bool.');
180
+ (0, vitest_1.expect)(coq).not.toContain('Require Import Classical.');
181
+ });
182
+ (0, vitest_1.it)('moduleName custom', () => {
183
+ const coq = (0, coq_v2_1.exportToCoqV2)(atom('P'), { moduleName: 'MyMod' });
184
+ (0, vitest_1.expect)(coq).toContain('Module MyMod.');
185
+ (0, vitest_1.expect)(coq).toContain('End MyMod.');
186
+ });
187
+ (0, vitest_1.it)('emitMode proofterm produce Definition stmt_term', () => {
188
+ const f = implies(atom('P'), atom('P'));
189
+ const coq = (0, coq_v2_1.exportToCoqV2)(f, { emitMode: 'proofterm' });
190
+ (0, vitest_1.expect)(coq).toContain('Definition stmt_term');
191
+ (0, vitest_1.expect)(coq).not.toContain('Theorem stmt_proof');
192
+ });
193
+ (0, vitest_1.it)('emitMode both emite tactic + proofterm', () => {
194
+ const f = implies(atom('P'), atom('P'));
195
+ const coq = (0, coq_v2_1.exportToCoqV2)(f, { emitMode: 'both' });
196
+ (0, vitest_1.expect)(coq).toContain('Theorem stmt_proof');
197
+ (0, vitest_1.expect)(coq).toContain('Definition stmt_term');
198
+ });
199
+ (0, vitest_1.it)('input no formula → comentario y no crashea', () => {
200
+ const coq = (0, coq_v2_1.exportToCoqV2)(null);
201
+ (0, vitest_1.expect)(coq).toContain('not a Formula');
202
+ });
203
+ });
204
+ // ----------------------------------------------------------------
205
+ // exportTheoryToCoqV2
206
+ // ----------------------------------------------------------------
207
+ (0, vitest_1.describe)('exportTheoryToCoqV2 — axioms + theorems + hints', () => {
208
+ (0, vitest_1.it)('2 axioms + 1 theorem + hints generation', () => {
209
+ const axioms = [
210
+ forall('x', implies(predicate('P', 'x'), predicate('Q', 'x'))),
211
+ forall('x', predicate('P', 'x')),
212
+ ];
213
+ const theorems = [forall('x', predicate('Q', 'x'))];
214
+ const coq = (0, coq_v2_1.exportTheoryToCoqV2)(axioms, theorems, { emitHints: true });
215
+ (0, vitest_1.expect)(coq).toContain('Axiom Ax_1');
216
+ (0, vitest_1.expect)(coq).toContain('Axiom Ax_2');
217
+ (0, vitest_1.expect)(coq).toContain('Theorem Th_1');
218
+ (0, vitest_1.expect)(coq).toContain('Hint Resolve');
219
+ (0, vitest_1.expect)(coq).toContain('stdb');
220
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
221
+ });
222
+ (0, vitest_1.it)('teoría vacía sigue siendo válida', () => {
223
+ const coq = (0, coq_v2_1.exportTheoryToCoqV2)([], []);
224
+ (0, vitest_1.expect)(coq).toContain('Module STTheoryV2.');
225
+ (0, vitest_1.expect)(coq).toContain('End STTheoryV2.');
226
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
227
+ });
228
+ (0, vitest_1.it)('filtra inputs no-formula sin crashear', () => {
229
+ const coq = (0, coq_v2_1.exportTheoryToCoqV2)([null, undefined, 'nope', atom('P')], []);
230
+ (0, vitest_1.expect)(coq).toContain('Axiom Ax_4'); // sólo el último (atom P) cuenta como axioma index 4
231
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
232
+ });
233
+ });
234
+ // ----------------------------------------------------------------
235
+ // generateHints
236
+ // ----------------------------------------------------------------
237
+ (0, vitest_1.describe)('generateHints', () => {
238
+ (0, vitest_1.it)('genera Hint Resolve para implicaciones', () => {
239
+ const ax = forall('x', implies(predicate('P', 'x'), predicate('Q', 'x')));
240
+ const hints = (0, coq_v2_1.generateHints)([ax], []);
241
+ (0, vitest_1.expect)(hints.length).toBe(1);
242
+ (0, vitest_1.expect)(hints[0]).toContain('Hint Resolve');
243
+ (0, vitest_1.expect)(hints[0]).toContain('stdb');
244
+ });
245
+ (0, vitest_1.it)('genera Hint Rewrite para equality (incluso bajo forall)', () => {
246
+ const ax = forall('x', equals(atom('x'), atom('x')));
247
+ const hints = (0, coq_v2_1.generateHints)([ax], []);
248
+ (0, vitest_1.expect)(hints[0]).toContain('Hint Rewrite');
249
+ });
250
+ (0, vitest_1.it)('mezcla axiomas y theorems', () => {
251
+ const ax = atom('A');
252
+ const th = atom('T');
253
+ const hints = (0, coq_v2_1.generateHints)([ax], [th]);
254
+ (0, vitest_1.expect)(hints.length).toBe(2);
255
+ (0, vitest_1.expect)(hints.some((h) => h.includes('Ax_1'))).toBe(true);
256
+ (0, vitest_1.expect)(hints.some((h) => h.includes('Th_1'))).toBe(true);
257
+ });
258
+ (0, vitest_1.it)('input no-array → array vacío sin crashear', () => {
259
+ (0, vitest_1.expect)((0, coq_v2_1.generateHints)(null, null)).toEqual([]);
260
+ });
261
+ });
262
+ // ----------------------------------------------------------------
263
+ // ndProofToProofTerm
264
+ // ----------------------------------------------------------------
265
+ (0, vitest_1.describe)('ndProofToProofTerm', () => {
266
+ (0, vitest_1.it)('identidad P → P produce fun H => H', () => {
267
+ const p = { goal: implies(atom('P'), atom('P')), status: 'complete', steps: [] };
268
+ const term = (0, coq_v2_1.ndProofToProofTerm)(p);
269
+ (0, vitest_1.expect)(term).toContain('fun');
270
+ (0, vitest_1.expect)(term).toContain('=> H');
271
+ });
272
+ (0, vitest_1.it)('modus ponens (A → B) → A → B produce H1 H2', () => {
273
+ // (A → B) → A → B ≡ implies(implies(A,B), implies(A,B))
274
+ const p = {
275
+ goal: implies(implies(atom('A'), atom('B')), implies(atom('A'), atom('B'))),
276
+ status: 'complete',
277
+ steps: [],
278
+ };
279
+ const term = (0, coq_v2_1.ndProofToProofTerm)(p);
280
+ (0, vitest_1.expect)(term).toContain('H1 H2');
281
+ });
282
+ (0, vitest_1.it)('and elim left: (P /\\ Q) → P produce match conj HL _', () => {
283
+ const p = {
284
+ goal: implies(and(atom('P'), atom('Q')), atom('P')),
285
+ status: 'complete',
286
+ steps: [],
287
+ };
288
+ const term = (0, coq_v2_1.ndProofToProofTerm)(p);
289
+ (0, vitest_1.expect)(term).toContain('conj HL');
290
+ });
291
+ (0, vitest_1.it)('and elim right: (P /\\ Q) → Q produce match conj _ HR', () => {
292
+ const p = {
293
+ goal: implies(and(atom('P'), atom('Q')), atom('Q')),
294
+ status: 'complete',
295
+ steps: [],
296
+ };
297
+ const term = (0, coq_v2_1.ndProofToProofTerm)(p);
298
+ (0, vitest_1.expect)(term).toContain('conj _ HR');
299
+ });
300
+ (0, vitest_1.it)('forall x, x = x → fun x => eq_refl x', () => {
301
+ const p = {
302
+ goal: forall('n', equals(atom('n'), atom('n'))),
303
+ status: 'complete',
304
+ steps: [],
305
+ };
306
+ const term = (0, coq_v2_1.ndProofToProofTerm)(p);
307
+ (0, vitest_1.expect)(term).toContain('eq_refl');
308
+ });
309
+ (0, vitest_1.it)('shape desconocida → TODO comment', () => {
310
+ const p = {
311
+ goal: forall('x', exists('y', predicate('Weird', 'x', 'y'))),
312
+ status: 'complete',
313
+ steps: [],
314
+ };
315
+ const term = (0, coq_v2_1.ndProofToProofTerm)(p);
316
+ (0, vitest_1.expect)(term).toContain('TODO');
317
+ });
318
+ (0, vitest_1.it)('input no-proof → comentario', () => {
319
+ (0, vitest_1.expect)((0, coq_v2_1.ndProofToProofTerm)(null)).toContain('invalid');
320
+ });
321
+ });
322
+ // ----------------------------------------------------------------
323
+ // exportProofToCoqV2
324
+ // ----------------------------------------------------------------
325
+ (0, vitest_1.describe)('exportProofToCoqV2', () => {
326
+ (0, vitest_1.it)('proof completo emite tactic block', () => {
327
+ const proof = {
328
+ goal: implies(atom('P'), atom('P')),
329
+ status: 'complete',
330
+ steps: [
331
+ {
332
+ stepNumber: 1,
333
+ formula: atom('P'),
334
+ justification: 'premise',
335
+ premises: [],
336
+ source: 'premise',
337
+ },
338
+ {
339
+ stepNumber: 2,
340
+ formula: atom('P'),
341
+ justification: 'exact',
342
+ premises: [1],
343
+ source: 'goal',
344
+ },
345
+ ],
346
+ };
347
+ const coq = (0, coq_v2_1.exportProofToCoqV2)(proof);
348
+ (0, vitest_1.expect)(coq).toContain('Theorem stmt_proof');
349
+ (0, vitest_1.expect)(coq).toContain('Qed.');
350
+ (0, vitest_1.expect)(coq).toContain('exact');
351
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
352
+ });
353
+ (0, vitest_1.it)('proof incompleto cae en fallback strategy (con useAuto)', () => {
354
+ const proof = {
355
+ goal: implies(atom('P'), atom('P')),
356
+ status: 'incomplete',
357
+ steps: [],
358
+ };
359
+ const coq = (0, coq_v2_1.exportProofToCoqV2)(proof, { useAuto: true });
360
+ // strategy de P → P es 'auto', así que debería aparecer
361
+ (0, vitest_1.expect)(coq).toContain('Theorem stmt_proof');
362
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
363
+ });
364
+ (0, vitest_1.it)('emitMode both incluye proofterm reconstruido', () => {
365
+ const proof = {
366
+ goal: implies(atom('P'), atom('P')),
367
+ status: 'complete',
368
+ steps: [
369
+ {
370
+ stepNumber: 1,
371
+ formula: atom('P'),
372
+ justification: 'assumption',
373
+ premises: [],
374
+ source: 'assumption',
375
+ },
376
+ ],
377
+ };
378
+ const coq = (0, coq_v2_1.exportProofToCoqV2)(proof, { emitMode: 'both' });
379
+ (0, vitest_1.expect)(coq).toContain('Definition stmt_term');
380
+ (0, vitest_1.expect)(coq).toContain('Theorem stmt_proof');
381
+ });
382
+ (0, vitest_1.it)('input no-proof → comentario', () => {
383
+ const coq = (0, coq_v2_1.exportProofToCoqV2)(null);
384
+ (0, vitest_1.expect)(coq).toContain('not a Proof');
385
+ });
386
+ });
387
+ // ----------------------------------------------------------------
388
+ // Structural integrity over a battery of formulas
389
+ // ----------------------------------------------------------------
390
+ (0, vitest_1.describe)('coq-v2 — structural linter', () => {
391
+ const cases = [
392
+ ['atom P', atom('P')],
393
+ ['P -> P', implies(atom('P'), atom('P'))],
394
+ ['P /\\ Q', and(atom('P'), atom('Q'))],
395
+ ['P \\/ ~P', or(atom('P'), not(atom('P')))],
396
+ ['forall x, P x', forall('x', predicate('P', 'x'))],
397
+ ['exists y, Q y', exists('y', predicate('Q', 'y'))],
398
+ ['forall n, n = n', forall('n', equals(atom('n'), atom('n')))],
399
+ ['forall n, n < n', forall('n', less(atom('n'), atom('n')))],
400
+ ];
401
+ for (const [label, f] of cases) {
402
+ (0, vitest_1.it)(`${label}: output válido y balanceado`, () => {
403
+ const coq = (0, coq_v2_1.exportToCoqV2)(f);
404
+ (0, vitest_1.expect)(parensBalanced(coq)).toBe(true);
405
+ (0, vitest_1.expect)(coq).toContain('Module');
406
+ (0, vitest_1.expect)(coq).toContain('End');
407
+ (0, vitest_1.expect)(coq).toContain('Theorem stmt_proof');
408
+ });
409
+ }
410
+ });
411
+ //# sourceMappingURL=coq-v2-exporter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coq-v2-exporter.test.js","sourceRoot":"","sources":["../../../../../src/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lean4-exporter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lean4-exporter.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/tooling/exporters/lean4/lean4-exporter.test.ts"],"names":[],"mappings":""}