@stevenvo780/st-lang 4.7.0 → 4.9.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 (285) hide show
  1. package/dist/logic/profiles/quantum/index.d.ts +153 -0
  2. package/dist/logic/profiles/quantum/index.d.ts.map +1 -0
  3. package/dist/logic/profiles/quantum/index.js +788 -0
  4. package/dist/logic/profiles/quantum/index.js.map +1 -0
  5. package/dist/namespaces/reasoning.d.ts +3 -1
  6. package/dist/namespaces/reasoning.d.ts.map +1 -1
  7. package/dist/namespaces/reasoning.js +5 -1
  8. package/dist/namespaces/reasoning.js.map +1 -1
  9. package/dist/proof-systems/certificate/canonical.d.ts +18 -0
  10. package/dist/proof-systems/certificate/canonical.d.ts.map +1 -0
  11. package/dist/proof-systems/certificate/canonical.js +79 -0
  12. package/dist/proof-systems/certificate/canonical.js.map +1 -0
  13. package/dist/proof-systems/certificate/generate.d.ts +39 -0
  14. package/dist/proof-systems/certificate/generate.d.ts.map +1 -0
  15. package/dist/proof-systems/certificate/generate.js +259 -0
  16. package/dist/proof-systems/certificate/generate.js.map +1 -0
  17. package/dist/proof-systems/certificate/index.d.ts +7 -0
  18. package/dist/proof-systems/certificate/index.d.ts.map +1 -0
  19. package/dist/proof-systems/certificate/index.js +23 -0
  20. package/dist/proof-systems/certificate/index.js.map +1 -0
  21. package/dist/proof-systems/certificate/lfsc.d.ts +15 -0
  22. package/dist/proof-systems/certificate/lfsc.d.ts.map +1 -0
  23. package/dist/proof-systems/certificate/lfsc.js +395 -0
  24. package/dist/proof-systems/certificate/lfsc.js.map +1 -0
  25. package/dist/proof-systems/certificate/rules.d.ts +8 -0
  26. package/dist/proof-systems/certificate/rules.d.ts.map +1 -0
  27. package/dist/proof-systems/certificate/rules.js +369 -0
  28. package/dist/proof-systems/certificate/rules.js.map +1 -0
  29. package/dist/proof-systems/certificate/types.d.ts +114 -0
  30. package/dist/proof-systems/certificate/types.d.ts.map +1 -0
  31. package/dist/proof-systems/certificate/types.js +18 -0
  32. package/dist/proof-systems/certificate/types.js.map +1 -0
  33. package/dist/proof-systems/certificate/verify.d.ts +20 -0
  34. package/dist/proof-systems/certificate/verify.d.ts.map +1 -0
  35. package/dist/proof-systems/certificate/verify.js +171 -0
  36. package/dist/proof-systems/certificate/verify.js.map +1 -0
  37. package/dist/reasoning/ban-logic/analyze.d.ts +31 -0
  38. package/dist/reasoning/ban-logic/analyze.d.ts.map +1 -0
  39. package/dist/reasoning/ban-logic/analyze.js +113 -0
  40. package/dist/reasoning/ban-logic/analyze.js.map +1 -0
  41. package/dist/reasoning/ban-logic/index.d.ts +7 -0
  42. package/dist/reasoning/ban-logic/index.d.ts.map +1 -0
  43. package/dist/reasoning/ban-logic/index.js +66 -0
  44. package/dist/reasoning/ban-logic/index.js.map +1 -0
  45. package/dist/reasoning/ban-logic/protocols.d.ts +54 -0
  46. package/dist/reasoning/ban-logic/protocols.d.ts.map +1 -0
  47. package/dist/reasoning/ban-logic/protocols.js +219 -0
  48. package/dist/reasoning/ban-logic/protocols.js.map +1 -0
  49. package/dist/reasoning/ban-logic/rules.d.ts +83 -0
  50. package/dist/reasoning/ban-logic/rules.d.ts.map +1 -0
  51. package/dist/reasoning/ban-logic/rules.js +409 -0
  52. package/dist/reasoning/ban-logic/rules.js.map +1 -0
  53. package/dist/reasoning/ban-logic/terms.d.ts +26 -0
  54. package/dist/reasoning/ban-logic/terms.d.ts.map +1 -0
  55. package/dist/reasoning/ban-logic/terms.js +262 -0
  56. package/dist/reasoning/ban-logic/terms.js.map +1 -0
  57. package/dist/reasoning/ban-logic/types.d.ts +107 -0
  58. package/dist/reasoning/ban-logic/types.d.ts.map +1 -0
  59. package/dist/reasoning/ban-logic/types.js +27 -0
  60. package/dist/reasoning/ban-logic/types.js.map +1 -0
  61. package/dist/reasoning/combinatorial-games/index.d.ts +105 -0
  62. package/dist/reasoning/combinatorial-games/index.d.ts.map +1 -0
  63. package/dist/reasoning/combinatorial-games/index.js +377 -0
  64. package/dist/reasoning/combinatorial-games/index.js.map +1 -0
  65. package/dist/reasoning/differential-privacy/index.d.ts +121 -0
  66. package/dist/reasoning/differential-privacy/index.d.ts.map +1 -0
  67. package/dist/reasoning/differential-privacy/index.js +417 -0
  68. package/dist/reasoning/differential-privacy/index.js.map +1 -0
  69. package/dist/reasoning/mechanism-design/auctions.d.ts +49 -0
  70. package/dist/reasoning/mechanism-design/auctions.d.ts.map +1 -0
  71. package/dist/reasoning/mechanism-design/auctions.js +179 -0
  72. package/dist/reasoning/mechanism-design/auctions.js.map +1 -0
  73. package/dist/reasoning/mechanism-design/index.d.ts +5 -0
  74. package/dist/reasoning/mechanism-design/index.d.ts.map +1 -0
  75. package/dist/reasoning/mechanism-design/index.js +39 -0
  76. package/dist/reasoning/mechanism-design/index.js.map +1 -0
  77. package/dist/reasoning/mechanism-design/myerson.d.ts +64 -0
  78. package/dist/reasoning/mechanism-design/myerson.d.ts.map +1 -0
  79. package/dist/reasoning/mechanism-design/myerson.js +253 -0
  80. package/dist/reasoning/mechanism-design/myerson.js.map +1 -0
  81. package/dist/reasoning/mechanism-design/types.d.ts +44 -0
  82. package/dist/reasoning/mechanism-design/types.d.ts.map +1 -0
  83. package/dist/reasoning/mechanism-design/types.js +22 -0
  84. package/dist/reasoning/mechanism-design/types.js.map +1 -0
  85. package/dist/reasoning/mechanism-design/vcg.d.ts +29 -0
  86. package/dist/reasoning/mechanism-design/vcg.d.ts.map +1 -0
  87. package/dist/reasoning/mechanism-design/vcg.js +305 -0
  88. package/dist/reasoning/mechanism-design/vcg.js.map +1 -0
  89. package/dist/reasoning/probabilistic/distributions.d.ts +44 -0
  90. package/dist/reasoning/probabilistic/distributions.d.ts.map +1 -0
  91. package/dist/reasoning/probabilistic/distributions.js +207 -0
  92. package/dist/reasoning/probabilistic/distributions.js.map +1 -0
  93. package/dist/reasoning/probabilistic/examples.d.ts +31 -0
  94. package/dist/reasoning/probabilistic/examples.d.ts.map +1 -0
  95. package/dist/reasoning/probabilistic/examples.js +85 -0
  96. package/dist/reasoning/probabilistic/examples.js.map +1 -0
  97. package/dist/reasoning/probabilistic/index.d.ts +6 -0
  98. package/dist/reasoning/probabilistic/index.d.ts.map +1 -0
  99. package/dist/reasoning/probabilistic/index.js +42 -0
  100. package/dist/reasoning/probabilistic/index.js.map +1 -0
  101. package/dist/reasoning/probabilistic/inference.d.ts +45 -0
  102. package/dist/reasoning/probabilistic/inference.d.ts.map +1 -0
  103. package/dist/reasoning/probabilistic/inference.js +579 -0
  104. package/dist/reasoning/probabilistic/inference.js.map +1 -0
  105. package/dist/reasoning/probabilistic/types.d.ts +153 -0
  106. package/dist/reasoning/probabilistic/types.d.ts.map +1 -0
  107. package/dist/reasoning/probabilistic/types.js +37 -0
  108. package/dist/reasoning/probabilistic/types.js.map +1 -0
  109. package/dist/solver/smt-z3/index.d.ts +3 -0
  110. package/dist/solver/smt-z3/index.d.ts.map +1 -0
  111. package/dist/solver/smt-z3/index.js +11 -0
  112. package/dist/solver/smt-z3/index.js.map +1 -0
  113. package/dist/solver/smt-z3/types.d.ts +52 -0
  114. package/dist/solver/smt-z3/types.d.ts.map +1 -0
  115. package/dist/solver/smt-z3/types.js +6 -0
  116. package/dist/solver/smt-z3/types.js.map +1 -0
  117. package/dist/solver/smt-z3/z3-wasm-backend.d.ts +88 -0
  118. package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -0
  119. package/dist/solver/smt-z3/z3-wasm-backend.js +437 -0
  120. package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -0
  121. package/dist/tests/logic/profiles/quantum/quantum.test.d.ts +2 -0
  122. package/dist/tests/logic/profiles/quantum/quantum.test.d.ts.map +1 -0
  123. package/dist/tests/logic/profiles/quantum/quantum.test.js +209 -0
  124. package/dist/tests/logic/profiles/quantum/quantum.test.js.map +1 -0
  125. package/dist/tests/proof-systems/certificate/certificate.test.d.ts +2 -0
  126. package/dist/tests/proof-systems/certificate/certificate.test.d.ts.map +1 -0
  127. package/dist/tests/proof-systems/certificate/certificate.test.js +449 -0
  128. package/dist/tests/proof-systems/certificate/certificate.test.js.map +1 -0
  129. package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts +2 -0
  130. package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts.map +1 -0
  131. package/dist/tests/reasoning/ban-logic/ban-logic.test.js +270 -0
  132. package/dist/tests/reasoning/ban-logic/ban-logic.test.js.map +1 -0
  133. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts +2 -0
  134. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts.map +1 -0
  135. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js +203 -0
  136. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js.map +1 -0
  137. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts +2 -0
  138. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts.map +1 -0
  139. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js +388 -0
  140. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js.map +1 -0
  141. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts +2 -0
  142. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts.map +1 -0
  143. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js +290 -0
  144. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js.map +1 -0
  145. package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts +2 -0
  146. package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts.map +1 -0
  147. package/dist/tests/reasoning/probabilistic/probabilistic.test.js +370 -0
  148. package/dist/tests/reasoning/probabilistic/probabilistic.test.js.map +1 -0
  149. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts +2 -0
  150. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts.map +1 -0
  151. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js +394 -0
  152. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -0
  153. package/dist/tests/tooling/mathlib/mathlib.test.d.ts +2 -0
  154. package/dist/tests/tooling/mathlib/mathlib.test.d.ts.map +1 -0
  155. package/dist/tests/tooling/mathlib/mathlib.test.js +214 -0
  156. package/dist/tests/tooling/mathlib/mathlib.test.js.map +1 -0
  157. package/dist/tests/tooling/proof-guidance/features.test.d.ts +2 -0
  158. package/dist/tests/tooling/proof-guidance/features.test.d.ts.map +1 -0
  159. package/dist/tests/tooling/proof-guidance/features.test.js +72 -0
  160. package/dist/tests/tooling/proof-guidance/features.test.js.map +1 -0
  161. package/dist/tests/tooling/proof-guidance/model.test.d.ts +2 -0
  162. package/dist/tests/tooling/proof-guidance/model.test.d.ts.map +1 -0
  163. package/dist/tests/tooling/proof-guidance/model.test.js +165 -0
  164. package/dist/tests/tooling/proof-guidance/model.test.js.map +1 -0
  165. package/dist/tests/tooling/proof-guidance/search.test.d.ts +2 -0
  166. package/dist/tests/tooling/proof-guidance/search.test.d.ts.map +1 -0
  167. package/dist/tests/tooling/proof-guidance/search.test.js +238 -0
  168. package/dist/tests/tooling/proof-guidance/search.test.js.map +1 -0
  169. package/dist/tests/type-theory/cubical/cubical.test.d.ts +2 -0
  170. package/dist/tests/type-theory/cubical/cubical.test.d.ts.map +1 -0
  171. package/dist/tests/type-theory/cubical/cubical.test.js +207 -0
  172. package/dist/tests/type-theory/cubical/cubical.test.js.map +1 -0
  173. package/dist/tests/type-theory/effects/effects.test.d.ts +2 -0
  174. package/dist/tests/type-theory/effects/effects.test.d.ts.map +1 -0
  175. package/dist/tests/type-theory/effects/effects.test.js +242 -0
  176. package/dist/tests/type-theory/effects/effects.test.js.map +1 -0
  177. package/dist/tooling/mathlib/group.d.ts +27 -0
  178. package/dist/tooling/mathlib/group.d.ts.map +1 -0
  179. package/dist/tooling/mathlib/group.js +89 -0
  180. package/dist/tooling/mathlib/group.js.map +1 -0
  181. package/dist/tooling/mathlib/index.d.ts +8 -0
  182. package/dist/tooling/mathlib/index.d.ts.map +1 -0
  183. package/dist/tooling/mathlib/index.js +40 -0
  184. package/dist/tooling/mathlib/index.js.map +1 -0
  185. package/dist/tooling/mathlib/instances.d.ts +29 -0
  186. package/dist/tooling/mathlib/instances.d.ts.map +1 -0
  187. package/dist/tooling/mathlib/instances.js +139 -0
  188. package/dist/tooling/mathlib/instances.js.map +1 -0
  189. package/dist/tooling/mathlib/lemmas.d.ts +3 -0
  190. package/dist/tooling/mathlib/lemmas.d.ts.map +1 -0
  191. package/dist/tooling/mathlib/lemmas.js +72 -0
  192. package/dist/tooling/mathlib/lemmas.js.map +1 -0
  193. package/dist/tooling/mathlib/order.d.ts +29 -0
  194. package/dist/tooling/mathlib/order.d.ts.map +1 -0
  195. package/dist/tooling/mathlib/order.js +91 -0
  196. package/dist/tooling/mathlib/order.js.map +1 -0
  197. package/dist/tooling/mathlib/ring.d.ts +15 -0
  198. package/dist/tooling/mathlib/ring.d.ts.map +1 -0
  199. package/dist/tooling/mathlib/ring.js +91 -0
  200. package/dist/tooling/mathlib/ring.js.map +1 -0
  201. package/dist/tooling/mathlib/types.d.ts +62 -0
  202. package/dist/tooling/mathlib/types.d.ts.map +1 -0
  203. package/dist/tooling/mathlib/types.js +7 -0
  204. package/dist/tooling/mathlib/types.js.map +1 -0
  205. package/dist/tooling/proof-guidance/features.d.ts +10 -0
  206. package/dist/tooling/proof-guidance/features.d.ts.map +1 -0
  207. package/dist/tooling/proof-guidance/features.js +97 -0
  208. package/dist/tooling/proof-guidance/features.js.map +1 -0
  209. package/dist/tooling/proof-guidance/index.d.ts +5 -0
  210. package/dist/tooling/proof-guidance/index.d.ts.map +1 -0
  211. package/dist/tooling/proof-guidance/index.js +25 -0
  212. package/dist/tooling/proof-guidance/index.js.map +1 -0
  213. package/dist/tooling/proof-guidance/model.d.ts +42 -0
  214. package/dist/tooling/proof-guidance/model.d.ts.map +1 -0
  215. package/dist/tooling/proof-guidance/model.js +149 -0
  216. package/dist/tooling/proof-guidance/model.js.map +1 -0
  217. package/dist/tooling/proof-guidance/search.d.ts +7 -0
  218. package/dist/tooling/proof-guidance/search.d.ts.map +1 -0
  219. package/dist/tooling/proof-guidance/search.js +102 -0
  220. package/dist/tooling/proof-guidance/search.js.map +1 -0
  221. package/dist/tooling/proof-guidance/types.d.ts +77 -0
  222. package/dist/tooling/proof-guidance/types.d.ts.map +1 -0
  223. package/dist/tooling/proof-guidance/types.js +8 -0
  224. package/dist/tooling/proof-guidance/types.js.map +1 -0
  225. package/dist/type-theory/cubical/equality.d.ts +4 -0
  226. package/dist/type-theory/cubical/equality.d.ts.map +1 -0
  227. package/dist/type-theory/cubical/equality.js +78 -0
  228. package/dist/type-theory/cubical/equality.js.map +1 -0
  229. package/dist/type-theory/cubical/index.d.ts +14 -0
  230. package/dist/type-theory/cubical/index.d.ts.map +1 -0
  231. package/dist/type-theory/cubical/index.js +71 -0
  232. package/dist/type-theory/cubical/index.js.map +1 -0
  233. package/dist/type-theory/cubical/infer.d.ts +18 -0
  234. package/dist/type-theory/cubical/infer.d.ts.map +1 -0
  235. package/dist/type-theory/cubical/infer.js +241 -0
  236. package/dist/type-theory/cubical/infer.js.map +1 -0
  237. package/dist/type-theory/cubical/interval.d.ts +12 -0
  238. package/dist/type-theory/cubical/interval.d.ts.map +1 -0
  239. package/dist/type-theory/cubical/interval.js +118 -0
  240. package/dist/type-theory/cubical/interval.js.map +1 -0
  241. package/dist/type-theory/cubical/normalize.d.ts +5 -0
  242. package/dist/type-theory/cubical/normalize.d.ts.map +1 -0
  243. package/dist/type-theory/cubical/normalize.js +191 -0
  244. package/dist/type-theory/cubical/normalize.js.map +1 -0
  245. package/dist/type-theory/cubical/path-algebra.d.ts +12 -0
  246. package/dist/type-theory/cubical/path-algebra.d.ts.map +1 -0
  247. package/dist/type-theory/cubical/path-algebra.js +109 -0
  248. package/dist/type-theory/cubical/path-algebra.js.map +1 -0
  249. package/dist/type-theory/cubical/substitute.d.ts +3 -0
  250. package/dist/type-theory/cubical/substitute.d.ts.map +1 -0
  251. package/dist/type-theory/cubical/substitute.js +109 -0
  252. package/dist/type-theory/cubical/substitute.js.map +1 -0
  253. package/dist/type-theory/cubical/types.d.ts +77 -0
  254. package/dist/type-theory/cubical/types.d.ts.map +1 -0
  255. package/dist/type-theory/cubical/types.js +258 -0
  256. package/dist/type-theory/cubical/types.js.map +1 -0
  257. package/dist/type-theory/effects/core.d.ts +27 -0
  258. package/dist/type-theory/effects/core.d.ts.map +1 -0
  259. package/dist/type-theory/effects/core.js +79 -0
  260. package/dist/type-theory/effects/core.js.map +1 -0
  261. package/dist/type-theory/effects/exception.d.ts +18 -0
  262. package/dist/type-theory/effects/exception.d.ts.map +1 -0
  263. package/dist/type-theory/effects/exception.js +59 -0
  264. package/dist/type-theory/effects/exception.js.map +1 -0
  265. package/dist/type-theory/effects/index.d.ts +11 -0
  266. package/dist/type-theory/effects/index.d.ts.map +1 -0
  267. package/dist/type-theory/effects/index.js +50 -0
  268. package/dist/type-theory/effects/index.js.map +1 -0
  269. package/dist/type-theory/effects/reader.d.ts +20 -0
  270. package/dist/type-theory/effects/reader.d.ts.map +1 -0
  271. package/dist/type-theory/effects/reader.js +62 -0
  272. package/dist/type-theory/effects/reader.js.map +1 -0
  273. package/dist/type-theory/effects/state.d.ts +31 -0
  274. package/dist/type-theory/effects/state.d.ts.map +1 -0
  275. package/dist/type-theory/effects/state.js +91 -0
  276. package/dist/type-theory/effects/state.js.map +1 -0
  277. package/dist/type-theory/effects/types.d.ts +45 -0
  278. package/dist/type-theory/effects/types.d.ts.map +1 -0
  279. package/dist/type-theory/effects/types.js +21 -0
  280. package/dist/type-theory/effects/types.js.map +1 -0
  281. package/dist/type-theory/effects/writer.d.ts +30 -0
  282. package/dist/type-theory/effects/writer.d.ts.map +1 -0
  283. package/dist/type-theory/effects/writer.js +79 -0
  284. package/dist/type-theory/effects/writer.js.map +1 -0
  285. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quantum.test.js","sourceRoot":"","sources":["../../../../../src/tests/logic/profiles/quantum/quantum.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=certificate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/proof-systems/certificate/certificate.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,449 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const certificate_1 = require("../../../proof-systems/certificate");
5
+ // --- Fixtures ---
6
+ function makeModusPonensSteps() {
7
+ return [
8
+ { id: 's1', rule: 'axiom', args: ['p'], conclusion: 'p', depends: [] },
9
+ { id: 's2', rule: 'axiom', args: ['p -> q'], conclusion: 'p -> q', depends: [] },
10
+ { id: 's3', rule: 'modus-ponens', args: ['s2', 's1'], conclusion: 'q', depends: ['s2', 's1'] },
11
+ ];
12
+ }
13
+ async function makeValidCertificate() {
14
+ return (0, certificate_1.generateCertificate)({
15
+ goal: 'q',
16
+ steps: makeModusPonensSteps(),
17
+ profile: 'classical.propositional',
18
+ axioms: ['p', 'p -> q'],
19
+ });
20
+ }
21
+ // --- 1. canonicalize ---
22
+ (0, vitest_1.describe)('canonicalize', () => {
23
+ (0, vitest_1.it)('es idempotente: canonicalize(parse(canonicalize(x))) ≡ canonicalize(x)', async () => {
24
+ const cert = await makeValidCertificate();
25
+ const a = (0, certificate_1.canonicalize)(cert);
26
+ const b = (0, certificate_1.canonicalize)({ ...cert });
27
+ (0, vitest_1.expect)(a).toBe(b);
28
+ });
29
+ (0, vitest_1.it)('ignora orden de claves en input', async () => {
30
+ const cert = await makeValidCertificate();
31
+ const reordered = {
32
+ steps: cert.steps,
33
+ profile: cert.profile,
34
+ version: cert.version,
35
+ axioms: cert.axioms,
36
+ goal: cert.goal,
37
+ };
38
+ (0, vitest_1.expect)((0, certificate_1.canonicalize)(cert)).toBe((0, certificate_1.canonicalize)(reordered));
39
+ });
40
+ (0, vitest_1.it)('normaliza whitespace en fórmulas', () => {
41
+ (0, vitest_1.expect)((0, certificate_1.normalizeFormula)(' p -> q ')).toBe('p -> q');
42
+ (0, vitest_1.expect)((0, certificate_1.normalizeFormula)('a\t&\nb')).toBe('a & b');
43
+ });
44
+ });
45
+ // --- 2. hashCertificate ---
46
+ (0, vitest_1.describe)('hashCertificate', () => {
47
+ (0, vitest_1.it)('es determinístico para el mismo certificado', async () => {
48
+ const cert = await makeValidCertificate();
49
+ const h1 = await (0, certificate_1.hashCertificate)(cert);
50
+ const h2 = await (0, certificate_1.hashCertificate)(cert);
51
+ (0, vitest_1.expect)(h1).toBe(h2);
52
+ (0, vitest_1.expect)(h1).toMatch(/^[0-9a-f]{64}$/);
53
+ });
54
+ (0, vitest_1.it)('cambia si alteramos un step', async () => {
55
+ const cert = await makeValidCertificate();
56
+ const h1 = await (0, certificate_1.hashCertificate)(cert);
57
+ const tampered = {
58
+ ...cert,
59
+ steps: cert.steps.map((s, i) => (i === 2 ? { ...s, conclusion: 'r' } : s)),
60
+ };
61
+ const h2 = await (0, certificate_1.hashCertificate)(tampered);
62
+ (0, vitest_1.expect)(h1).not.toBe(h2);
63
+ });
64
+ });
65
+ // --- 3. generateCertificate from Proof ---
66
+ (0, vitest_1.describe)('generateCertificate', () => {
67
+ (0, vitest_1.it)('genera desde un Proof MP con steps correctos', async () => {
68
+ const proof = {
69
+ goal: { kind: 'atom', name: 'q' },
70
+ steps: [
71
+ {
72
+ stepNumber: 1,
73
+ formula: { kind: 'atom', name: 'p' },
74
+ justification: 'premise',
75
+ premises: [],
76
+ source: 'premise',
77
+ },
78
+ {
79
+ stepNumber: 2,
80
+ formula: {
81
+ kind: 'implies',
82
+ args: [
83
+ { kind: 'atom', name: 'p' },
84
+ { kind: 'atom', name: 'q' },
85
+ ],
86
+ },
87
+ justification: 'premise',
88
+ premises: [],
89
+ source: 'premise',
90
+ },
91
+ {
92
+ stepNumber: 3,
93
+ formula: { kind: 'atom', name: 'q' },
94
+ justification: 'MP 2,1',
95
+ premises: [2, 1],
96
+ source: 'rule',
97
+ },
98
+ ],
99
+ status: 'complete',
100
+ method: 'natural_deduction',
101
+ };
102
+ const cert = await (0, certificate_1.generateCertificate)(proof, {
103
+ profile: 'classical.propositional',
104
+ axioms: ['p', 'p -> q'],
105
+ });
106
+ (0, vitest_1.expect)(cert.version).toBe('1.0');
107
+ (0, vitest_1.expect)(cert.goal).toBe('q');
108
+ (0, vitest_1.expect)(cert.steps).toHaveLength(3);
109
+ (0, vitest_1.expect)(cert.steps[2].rule).toBe('modus-ponens');
110
+ (0, vitest_1.expect)(cert.steps[2].depends).toEqual(['s2', 's1']);
111
+ (0, vitest_1.expect)(cert.hash).toMatch(/^[0-9a-f]{64}$/);
112
+ });
113
+ (0, vitest_1.it)('preserva opts.profile y opts.axioms', async () => {
114
+ const cert = await makeValidCertificate();
115
+ (0, vitest_1.expect)(cert.profile).toBe('classical.propositional');
116
+ (0, vitest_1.expect)(cert.axioms).toEqual(['p', 'p -> q']);
117
+ });
118
+ });
119
+ // --- 4. verifyCertificate happy path ---
120
+ (0, vitest_1.describe)('verifyCertificate', () => {
121
+ (0, vitest_1.it)('valida un certificado MP correcto', async () => {
122
+ const cert = await makeValidCertificate();
123
+ const result = await (0, certificate_1.verifyCertificate)(cert);
124
+ (0, vitest_1.expect)(result.valid).toBe(true);
125
+ (0, vitest_1.expect)(result.errors).toEqual([]);
126
+ (0, vitest_1.expect)(result.stepsVerified).toBe(3);
127
+ (0, vitest_1.expect)(result.totalSteps).toBe(3);
128
+ });
129
+ (0, vitest_1.it)('valida certificado con and-intro + and-elim', async () => {
130
+ const steps = [
131
+ { id: 's1', rule: 'axiom', args: ['p'], conclusion: 'p', depends: [] },
132
+ { id: 's2', rule: 'axiom', args: ['q'], conclusion: 'q', depends: [] },
133
+ {
134
+ id: 's3',
135
+ rule: 'and-intro',
136
+ args: ['s1', 's2'],
137
+ conclusion: 'p & q',
138
+ depends: ['s1', 's2'],
139
+ },
140
+ { id: 's4', rule: 'and-elim-left', args: ['s3'], conclusion: 'p', depends: ['s3'] },
141
+ ];
142
+ const cert = await (0, certificate_1.generateCertificate)({
143
+ goal: 'p',
144
+ steps,
145
+ profile: 'classical.propositional',
146
+ axioms: ['p', 'q'],
147
+ });
148
+ const r = await (0, certificate_1.verifyCertificate)(cert);
149
+ (0, vitest_1.expect)(r.valid).toBe(true);
150
+ (0, vitest_1.expect)(r.stepsVerified).toBe(4);
151
+ });
152
+ (0, vitest_1.it)('valida or-intro-left con args declarando la otra rama', async () => {
153
+ const steps = [
154
+ { id: 's1', rule: 'axiom', args: ['p'], conclusion: 'p', depends: [] },
155
+ { id: 's2', rule: 'or-intro-left', args: ['q'], conclusion: 'p | q', depends: ['s1'] },
156
+ ];
157
+ const cert = await (0, certificate_1.generateCertificate)({
158
+ goal: 'p | q',
159
+ steps,
160
+ profile: 'classical.propositional',
161
+ axioms: ['p'],
162
+ });
163
+ const r = await (0, certificate_1.verifyCertificate)(cert);
164
+ (0, vitest_1.expect)(r.valid).toBe(true);
165
+ });
166
+ (0, vitest_1.it)('valida implies-intro descargando hipótesis', async () => {
167
+ const steps = [
168
+ { id: 's1', rule: 'assumption', args: ['p'], conclusion: 'p', depends: [] },
169
+ {
170
+ id: 's2',
171
+ rule: 'implies-intro',
172
+ args: ['p'],
173
+ conclusion: 'p -> p',
174
+ depends: ['s1'],
175
+ },
176
+ ];
177
+ const cert = await (0, certificate_1.generateCertificate)({
178
+ goal: 'p -> p',
179
+ steps,
180
+ profile: 'classical.propositional',
181
+ axioms: [],
182
+ });
183
+ const r = await (0, certificate_1.verifyCertificate)(cert);
184
+ (0, vitest_1.expect)(r.valid).toBe(true);
185
+ });
186
+ });
187
+ // --- 5. verifyCertificate error paths ---
188
+ (0, vitest_1.describe)('verifyCertificate detecta errores', () => {
189
+ (0, vitest_1.it)('detecta paso con conclusión no derivable por su regla', async () => {
190
+ const steps = makeModusPonensSteps();
191
+ // s3 produce conclusión incorrecta
192
+ steps[2] = { ...steps[2], conclusion: 'r' };
193
+ const cert = await (0, certificate_1.generateCertificate)({
194
+ goal: 'r',
195
+ steps,
196
+ profile: 'classical.propositional',
197
+ axioms: ['p', 'p -> q'],
198
+ });
199
+ const r = await (0, certificate_1.verifyCertificate)(cert);
200
+ (0, vitest_1.expect)(r.valid).toBe(false);
201
+ (0, vitest_1.expect)(r.errors.some((e) => e.includes('does not justify'))).toBe(true);
202
+ });
203
+ (0, vitest_1.it)('detecta dependencia faltante', async () => {
204
+ const steps = [
205
+ { id: 's1', rule: 'axiom', args: ['p'], conclusion: 'p', depends: [] },
206
+ {
207
+ id: 's2',
208
+ rule: 'modus-ponens',
209
+ args: ['s_missing', 's1'],
210
+ conclusion: 'q',
211
+ depends: ['s_missing', 's1'],
212
+ },
213
+ ];
214
+ const cert = await (0, certificate_1.generateCertificate)({
215
+ goal: 'q',
216
+ steps,
217
+ profile: 'classical.propositional',
218
+ axioms: [],
219
+ });
220
+ const r = await (0, certificate_1.verifyCertificate)(cert);
221
+ (0, vitest_1.expect)(r.valid).toBe(false);
222
+ (0, vitest_1.expect)(r.errors.some((e) => e.includes('missing step'))).toBe(true);
223
+ });
224
+ (0, vitest_1.it)('detecta ciclo en depends', async () => {
225
+ const steps = [
226
+ // ciclo artificial s1 -> s2 -> s1
227
+ { id: 's1', rule: 'modus-ponens', args: ['s2'], conclusion: 'q', depends: ['s2'] },
228
+ { id: 's2', rule: 'modus-ponens', args: ['s1'], conclusion: 'r', depends: ['s1'] },
229
+ ];
230
+ // Generamos hash manualmente (no usamos generateCertificate porque podría rechazar).
231
+ const payload = {
232
+ version: '1.0',
233
+ goal: 'q',
234
+ profile: 'test',
235
+ axioms: [],
236
+ steps,
237
+ };
238
+ const hash = await (0, certificate_1.hashCertificate)(payload);
239
+ const cert = { ...payload, hash };
240
+ const r = await (0, certificate_1.verifyCertificate)(cert);
241
+ (0, vitest_1.expect)(r.valid).toBe(false);
242
+ (0, vitest_1.expect)(r.errors.some((e) => e.includes('cycle detected'))).toBe(true);
243
+ });
244
+ (0, vitest_1.it)('detecta hash mismatch (tamper)', async () => {
245
+ const cert = await makeValidCertificate();
246
+ const tampered = {
247
+ ...cert,
248
+ steps: cert.steps.map((s, i) => (i === 0 ? { ...s, conclusion: 'r' } : s)),
249
+ };
250
+ // hash NO se actualiza adrede
251
+ const r = await (0, certificate_1.verifyCertificate)(tampered);
252
+ (0, vitest_1.expect)(r.valid).toBe(false);
253
+ (0, vitest_1.expect)(r.errors.some((e) => e.includes('hash mismatch'))).toBe(true);
254
+ });
255
+ (0, vitest_1.it)('detecta regla desconocida', async () => {
256
+ const cert = await makeValidCertificate();
257
+ const broken = {
258
+ ...cert,
259
+ steps: cert.steps.map((s, i) => (i === 2 ? { ...s, rule: 'frobnicate' } : s)),
260
+ };
261
+ broken.hash = await (0, certificate_1.hashCertificate)(broken);
262
+ const r = await (0, certificate_1.verifyCertificate)(broken);
263
+ (0, vitest_1.expect)(r.valid).toBe(false);
264
+ (0, vitest_1.expect)(r.errors.some((e) => e.includes('unknown rule'))).toBe(true);
265
+ });
266
+ (0, vitest_1.it)('detecta goal ausente como conclusión', async () => {
267
+ const cert = await makeValidCertificate();
268
+ const wrongGoal = { ...cert, goal: 'never_derived' };
269
+ wrongGoal.hash = await (0, certificate_1.hashCertificate)(wrongGoal);
270
+ const r = await (0, certificate_1.verifyCertificate)(wrongGoal);
271
+ (0, vitest_1.expect)(r.valid).toBe(false);
272
+ (0, vitest_1.expect)(r.errors.some((e) => e.includes('goal'))).toBe(true);
273
+ });
274
+ (0, vitest_1.it)('detecta referencia fuera de orden topológico', async () => {
275
+ const steps = [
276
+ // s1 depende de s2 que aparece después → out-of-order
277
+ {
278
+ id: 's1',
279
+ rule: 'modus-ponens',
280
+ args: ['s2', 's0'],
281
+ conclusion: 'q',
282
+ depends: ['s2', 's0'],
283
+ },
284
+ { id: 's0', rule: 'axiom', args: ['p'], conclusion: 'p', depends: [] },
285
+ { id: 's2', rule: 'axiom', args: ['p -> q'], conclusion: 'p -> q', depends: [] },
286
+ ];
287
+ const payload = {
288
+ version: '1.0',
289
+ goal: 'q',
290
+ profile: 'classical.propositional',
291
+ axioms: [],
292
+ steps,
293
+ };
294
+ const hash = await (0, certificate_1.hashCertificate)(payload);
295
+ const cert = { ...payload, hash };
296
+ const r = await (0, certificate_1.verifyCertificate)(cert);
297
+ (0, vitest_1.expect)(r.valid).toBe(false);
298
+ (0, vitest_1.expect)(r.errors.some((e) => e.includes('out of topological order'))).toBe(true);
299
+ });
300
+ });
301
+ // --- 6. LFSC import/export round-trip ---
302
+ (0, vitest_1.describe)('LFSC export/import', () => {
303
+ (0, vitest_1.it)('exporta un certificado válido a S-expression', async () => {
304
+ const cert = await makeValidCertificate();
305
+ const sexp = (0, certificate_1.exportLFSC)(cert);
306
+ (0, vitest_1.expect)(sexp).toMatch(/^\(proof/);
307
+ (0, vitest_1.expect)(sexp).toContain(':version "1.0"');
308
+ (0, vitest_1.expect)(sexp).toContain(':goal "q"');
309
+ (0, vitest_1.expect)(sexp).toContain('(step :id s1 :rule axiom');
310
+ (0, vitest_1.expect)(sexp).toMatch(/\)$/);
311
+ });
312
+ (0, vitest_1.it)('round-trip export → import preserva la estructura', async () => {
313
+ const cert = await makeValidCertificate();
314
+ const sexp = (0, certificate_1.exportLFSC)(cert);
315
+ const result = (0, certificate_1.importLFSC)(sexp);
316
+ (0, vitest_1.expect)('error' in result).toBe(false);
317
+ if ('error' in result)
318
+ return;
319
+ (0, vitest_1.expect)(result.version).toBe(cert.version);
320
+ (0, vitest_1.expect)(result.goal).toBe(cert.goal);
321
+ (0, vitest_1.expect)(result.profile).toBe(cert.profile);
322
+ (0, vitest_1.expect)(result.axioms).toEqual(cert.axioms);
323
+ (0, vitest_1.expect)(result.steps).toEqual(cert.steps);
324
+ (0, vitest_1.expect)(result.hash).toBe(cert.hash);
325
+ });
326
+ (0, vitest_1.it)('round-trip preserva firma cuando está presente', async () => {
327
+ const cert = await makeValidCertificate();
328
+ const kp = await (0, certificate_1.generateCertificateKeyPair)();
329
+ const sig = await (0, certificate_1.signCertificate)(cert, kp.privateKey, kp.publicKeyHex);
330
+ const signedCert = { ...cert, signature: sig };
331
+ const sexp = (0, certificate_1.exportLFSC)(signedCert);
332
+ const parsed = (0, certificate_1.importLFSC)(sexp);
333
+ if ('error' in parsed) {
334
+ throw new Error('parse failed: ' + parsed.error);
335
+ }
336
+ (0, vitest_1.expect)(parsed.signature).toBeDefined();
337
+ (0, vitest_1.expect)(parsed.signature?.algorithm).toBe(sig.algorithm);
338
+ (0, vitest_1.expect)(parsed.signature?.publicKey).toBe(sig.publicKey);
339
+ (0, vitest_1.expect)(parsed.signature?.signature).toBe(sig.signature);
340
+ });
341
+ (0, vitest_1.it)('importLFSC retorna error con input malformado', () => {
342
+ const r = (0, certificate_1.importLFSC)('(garbage stuff');
343
+ (0, vitest_1.expect)('error' in r).toBe(true);
344
+ });
345
+ (0, vitest_1.it)('importLFSC verifica versión soportada', () => {
346
+ const r = (0, certificate_1.importLFSC)('(proof :version "9.9" :goal "p" :profile "x" :axioms ( ) :steps ( ) :hash "00")');
347
+ (0, vitest_1.expect)('error' in r).toBe(true);
348
+ });
349
+ (0, vitest_1.it)('certificado importado pasa verificación', async () => {
350
+ const cert = await makeValidCertificate();
351
+ const sexp = (0, certificate_1.exportLFSC)(cert);
352
+ const reimported = (0, certificate_1.importLFSC)(sexp);
353
+ if ('error' in reimported)
354
+ throw new Error(reimported.error);
355
+ const r = await (0, certificate_1.verifyCertificate)(reimported);
356
+ (0, vitest_1.expect)(r.valid).toBe(true);
357
+ });
358
+ });
359
+ // --- 7. Sign + verify ---
360
+ (0, vitest_1.describe)('signCertificate + verifyCertificateSignature', () => {
361
+ (0, vitest_1.it)('firma con Ed25519 y verifica correctamente', async () => {
362
+ const cert = await makeValidCertificate();
363
+ const kp = await (0, certificate_1.generateCertificateKeyPair)();
364
+ const sig = await (0, certificate_1.signCertificate)(cert, kp.privateKey, kp.publicKeyHex);
365
+ const signed = { ...cert, signature: sig };
366
+ (0, vitest_1.expect)(sig.algorithm === 'Ed25519' || sig.algorithm === 'HMAC-SHA256').toBe(true);
367
+ (0, vitest_1.expect)(await (0, certificate_1.verifyCertificateSignature)(signed)).toBe(true);
368
+ });
369
+ (0, vitest_1.it)('detecta tamper post-firma', async () => {
370
+ const cert = await makeValidCertificate();
371
+ const kp = await (0, certificate_1.generateCertificateKeyPair)();
372
+ const sig = await (0, certificate_1.signCertificate)(cert, kp.privateKey, kp.publicKeyHex);
373
+ const tampered = {
374
+ ...cert,
375
+ goal: 'r',
376
+ signature: sig,
377
+ };
378
+ (0, vitest_1.expect)(await (0, certificate_1.verifyCertificateSignature)(tampered)).toBe(false);
379
+ });
380
+ (0, vitest_1.it)('generateCertificate con opts.sign incluye firma válida', async () => {
381
+ const kp = await (0, certificate_1.generateCertificateKeyPair)();
382
+ const cert = await (0, certificate_1.generateCertificate)({
383
+ goal: 'q',
384
+ steps: makeModusPonensSteps(),
385
+ profile: 'classical.propositional',
386
+ axioms: ['p', 'p -> q'],
387
+ }, { sign: { privateKey: kp.privateKey, publicKey: kp.publicKeyHex } });
388
+ (0, vitest_1.expect)(cert.signature).toBeDefined();
389
+ (0, vitest_1.expect)(await (0, certificate_1.verifyCertificateSignature)(cert)).toBe(true);
390
+ });
391
+ });
392
+ // --- 8. Custom rule checkers ---
393
+ (0, vitest_1.describe)('rules custom', () => {
394
+ (0, vitest_1.it)('verifyCertificate respeta rule checkers custom', async () => {
395
+ const steps = [
396
+ { id: 's1', rule: 'axiom', args: ['p'], conclusion: 'p', depends: [] },
397
+ { id: 's2', rule: 'magic', args: ['s1'], conclusion: 'magic(p)', depends: ['s1'] },
398
+ ];
399
+ const cert = await (0, certificate_1.generateCertificate)({
400
+ goal: 'magic(p)',
401
+ steps,
402
+ profile: 'custom',
403
+ axioms: ['p'],
404
+ });
405
+ // sin la regla custom → falla
406
+ const r1 = await (0, certificate_1.verifyCertificate)(cert);
407
+ (0, vitest_1.expect)(r1.valid).toBe(false);
408
+ // con la regla custom → pasa
409
+ const custom = new Map(certificate_1.STANDARD_RULES);
410
+ custom.set('magic', (_args, conclusion, premises) => {
411
+ return conclusion === 'magic(' + premises[0] + ')';
412
+ });
413
+ const r2 = await (0, certificate_1.verifyCertificate)(cert, custom);
414
+ (0, vitest_1.expect)(r2.valid).toBe(true);
415
+ (0, vitest_1.expect)(r2.stepsVerified).toBe(2);
416
+ });
417
+ });
418
+ // --- 9. STANDARD_RULES coverage ---
419
+ (0, vitest_1.describe)('STANDARD_RULES catálogo', () => {
420
+ (0, vitest_1.it)('incluye reglas básicas de proposicional clásica', () => {
421
+ const required = [
422
+ 'modus-ponens',
423
+ 'modus-tollens',
424
+ 'and-intro',
425
+ 'and-elim-left',
426
+ 'and-elim-right',
427
+ 'or-intro-left',
428
+ 'or-intro-right',
429
+ 'or-elim',
430
+ 'implies-intro',
431
+ 'implies-elim',
432
+ 'not-intro',
433
+ 'not-elim',
434
+ 'axiom',
435
+ 'assumption',
436
+ 'iff-intro',
437
+ 'double-neg-elim',
438
+ ];
439
+ for (const r of required) {
440
+ (0, vitest_1.expect)(certificate_1.STANDARD_RULES.has(r)).toBe(true);
441
+ }
442
+ });
443
+ (0, vitest_1.it)('reconoce variantes ASCII y Unicode de notación', () => {
444
+ (0, vitest_1.expect)(certificate_1.STANDARD_RULES.get('mp')).toBe(certificate_1.STANDARD_RULES.get('modus-ponens'));
445
+ (0, vitest_1.expect)(certificate_1.STANDARD_RULES.get('->E')).toBe(certificate_1.STANDARD_RULES.get('modus-ponens'));
446
+ (0, vitest_1.expect)(certificate_1.STANDARD_RULES.get('&I')).toBe(certificate_1.STANDARD_RULES.get('and-intro'));
447
+ });
448
+ });
449
+ //# sourceMappingURL=certificate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.test.js","sourceRoot":"","sources":["../../../../src/tests/proof-systems/certificate/certificate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ban-logic.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ban-logic.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/reasoning/ban-logic/ban-logic.test.ts"],"names":[],"mappings":""}