@stevenvo780/st-lang 4.10.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 (121) hide show
  1. package/dist/proof-systems/distributed-exchange/index.d.ts +101 -0
  2. package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -0
  3. package/dist/proof-systems/distributed-exchange/index.js +408 -0
  4. package/dist/proof-systems/distributed-exchange/index.js.map +1 -0
  5. package/dist/reasoning/graph-theory/index.d.ts +63 -0
  6. package/dist/reasoning/graph-theory/index.d.ts.map +1 -0
  7. package/dist/reasoning/graph-theory/index.js +1043 -0
  8. package/dist/reasoning/graph-theory/index.js.map +1 -0
  9. package/dist/reasoning/group-presentation/cayley.d.ts +8 -0
  10. package/dist/reasoning/group-presentation/cayley.d.ts.map +1 -0
  11. package/dist/reasoning/group-presentation/cayley.js +38 -0
  12. package/dist/reasoning/group-presentation/cayley.js.map +1 -0
  13. package/dist/reasoning/group-presentation/index.d.ts +8 -0
  14. package/dist/reasoning/group-presentation/index.d.ts.map +1 -0
  15. package/dist/reasoning/group-presentation/index.js +36 -0
  16. package/dist/reasoning/group-presentation/index.js.map +1 -0
  17. package/dist/reasoning/group-presentation/standard-groups.d.ts +6 -0
  18. package/dist/reasoning/group-presentation/standard-groups.d.ts.map +1 -0
  19. package/dist/reasoning/group-presentation/standard-groups.js +93 -0
  20. package/dist/reasoning/group-presentation/standard-groups.js.map +1 -0
  21. package/dist/reasoning/group-presentation/todd-coxeter.d.ts +10 -0
  22. package/dist/reasoning/group-presentation/todd-coxeter.d.ts.map +1 -0
  23. package/dist/reasoning/group-presentation/todd-coxeter.js +362 -0
  24. package/dist/reasoning/group-presentation/todd-coxeter.js.map +1 -0
  25. package/dist/reasoning/group-presentation/types.d.ts +7 -0
  26. package/dist/reasoning/group-presentation/types.d.ts.map +1 -0
  27. package/dist/reasoning/group-presentation/types.js +22 -0
  28. package/dist/reasoning/group-presentation/types.js.map +1 -0
  29. package/dist/reasoning/group-presentation/words.d.ts +10 -0
  30. package/dist/reasoning/group-presentation/words.d.ts.map +1 -0
  31. package/dist/reasoning/group-presentation/words.js +109 -0
  32. package/dist/reasoning/group-presentation/words.js.map +1 -0
  33. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.d.ts +2 -0
  34. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.d.ts.map +1 -0
  35. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.js +328 -0
  36. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.js.map +1 -0
  37. package/dist/tests/reasoning/graph-theory/graph-theory.test.d.ts +2 -0
  38. package/dist/tests/reasoning/graph-theory/graph-theory.test.d.ts.map +1 -0
  39. package/dist/tests/reasoning/graph-theory/graph-theory.test.js +363 -0
  40. package/dist/tests/reasoning/graph-theory/graph-theory.test.js.map +1 -0
  41. package/dist/tests/reasoning/group-presentation/group-presentation.test.d.ts +2 -0
  42. package/dist/tests/reasoning/group-presentation/group-presentation.test.d.ts.map +1 -0
  43. package/dist/tests/reasoning/group-presentation/group-presentation.test.js +229 -0
  44. package/dist/tests/reasoning/group-presentation/group-presentation.test.js.map +1 -0
  45. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.d.ts +2 -0
  46. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.d.ts.map +1 -0
  47. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.js +411 -0
  48. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.js.map +1 -0
  49. package/dist/tests/tooling/lemma-library/lemma-library.test.d.ts +2 -0
  50. package/dist/tests/tooling/lemma-library/lemma-library.test.d.ts.map +1 -0
  51. package/dist/tests/tooling/lemma-library/lemma-library.test.js +197 -0
  52. package/dist/tests/tooling/lemma-library/lemma-library.test.js.map +1 -0
  53. package/dist/tests/tooling/provenance/ledger.test.d.ts +2 -0
  54. package/dist/tests/tooling/provenance/ledger.test.d.ts.map +1 -0
  55. package/dist/tests/tooling/provenance/ledger.test.js +545 -0
  56. package/dist/tests/tooling/provenance/ledger.test.js.map +1 -0
  57. package/dist/tooling/exporters/coq-v2/index.d.ts +68 -0
  58. package/dist/tooling/exporters/coq-v2/index.d.ts.map +1 -0
  59. package/dist/tooling/exporters/coq-v2/index.js +692 -0
  60. package/dist/tooling/exporters/coq-v2/index.js.map +1 -0
  61. package/dist/tooling/lemma-library/apply.d.ts +9 -0
  62. package/dist/tooling/lemma-library/apply.d.ts.map +1 -0
  63. package/dist/tooling/lemma-library/apply.js +94 -0
  64. package/dist/tooling/lemma-library/apply.js.map +1 -0
  65. package/dist/tooling/lemma-library/arithmetic.d.ts +3 -0
  66. package/dist/tooling/lemma-library/arithmetic.d.ts.map +1 -0
  67. package/dist/tooling/lemma-library/arithmetic.js +176 -0
  68. package/dist/tooling/lemma-library/arithmetic.js.map +1 -0
  69. package/dist/tooling/lemma-library/firstorder.d.ts +3 -0
  70. package/dist/tooling/lemma-library/firstorder.d.ts.map +1 -0
  71. package/dist/tooling/lemma-library/firstorder.js +136 -0
  72. package/dist/tooling/lemma-library/firstorder.js.map +1 -0
  73. package/dist/tooling/lemma-library/index.d.ts +13 -0
  74. package/dist/tooling/lemma-library/index.d.ts.map +1 -0
  75. package/dist/tooling/lemma-library/index.js +32 -0
  76. package/dist/tooling/lemma-library/index.js.map +1 -0
  77. package/dist/tooling/lemma-library/library.d.ts +34 -0
  78. package/dist/tooling/lemma-library/library.d.ts.map +1 -0
  79. package/dist/tooling/lemma-library/library.js +126 -0
  80. package/dist/tooling/lemma-library/library.js.map +1 -0
  81. package/dist/tooling/lemma-library/modal.d.ts +3 -0
  82. package/dist/tooling/lemma-library/modal.d.ts.map +1 -0
  83. package/dist/tooling/lemma-library/modal.js +138 -0
  84. package/dist/tooling/lemma-library/modal.js.map +1 -0
  85. package/dist/tooling/lemma-library/propositional.d.ts +3 -0
  86. package/dist/tooling/lemma-library/propositional.d.ts.map +1 -0
  87. package/dist/tooling/lemma-library/propositional.js +265 -0
  88. package/dist/tooling/lemma-library/propositional.js.map +1 -0
  89. package/dist/tooling/lemma-library/set-theory.d.ts +3 -0
  90. package/dist/tooling/lemma-library/set-theory.d.ts.map +1 -0
  91. package/dist/tooling/lemma-library/set-theory.js +134 -0
  92. package/dist/tooling/lemma-library/set-theory.js.map +1 -0
  93. package/dist/tooling/lemma-library/standard.d.ts +3 -0
  94. package/dist/tooling/lemma-library/standard.d.ts.map +1 -0
  95. package/dist/tooling/lemma-library/standard.js +27 -0
  96. package/dist/tooling/lemma-library/standard.js.map +1 -0
  97. package/dist/tooling/lemma-library/tfidf.d.ts +5 -0
  98. package/dist/tooling/lemma-library/tfidf.d.ts.map +1 -0
  99. package/dist/tooling/lemma-library/tfidf.js +100 -0
  100. package/dist/tooling/lemma-library/tfidf.js.map +1 -0
  101. package/dist/tooling/lemma-library/tokenize.d.ts +2 -0
  102. package/dist/tooling/lemma-library/tokenize.d.ts.map +1 -0
  103. package/dist/tooling/lemma-library/tokenize.js +74 -0
  104. package/dist/tooling/lemma-library/tokenize.js.map +1 -0
  105. package/dist/tooling/lemma-library/types.d.ts +53 -0
  106. package/dist/tooling/lemma-library/types.d.ts.map +1 -0
  107. package/dist/tooling/lemma-library/types.js +10 -0
  108. package/dist/tooling/lemma-library/types.js.map +1 -0
  109. package/dist/tooling/provenance/index.d.ts +3 -0
  110. package/dist/tooling/provenance/index.d.ts.map +1 -0
  111. package/dist/tooling/provenance/index.js +16 -0
  112. package/dist/tooling/provenance/index.js.map +1 -0
  113. package/dist/tooling/provenance/ledger.d.ts +89 -0
  114. package/dist/tooling/provenance/ledger.d.ts.map +1 -0
  115. package/dist/tooling/provenance/ledger.js +439 -0
  116. package/dist/tooling/provenance/ledger.js.map +1 -0
  117. package/dist/tooling/provenance/types.d.ts +70 -0
  118. package/dist/tooling/provenance/types.d.ts.map +1 -0
  119. package/dist/tooling/provenance/types.js +14 -0
  120. package/dist/tooling/provenance/types.js.map +1 -0
  121. package/package.json +1 -1
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Lemas curados — Teoría de conjuntos (~15)
4
+ // Álgebra booleana sobre ∪, ∩, ⊆, complemento.
5
+ // ============================================================
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SET_THEORY_LEMMAS = void 0;
8
+ exports.SET_THEORY_LEMMAS = [
9
+ {
10
+ id: 'set.union-commutative',
11
+ name: 'Commutativity of union',
12
+ statement: '∀A B. A ∪ B = B ∪ A',
13
+ domain: 'set',
14
+ tags: ['commutativity', 'union', 'boolean-algebra'],
15
+ difficulty: 'trivial',
16
+ },
17
+ {
18
+ id: 'set.inter-commutative',
19
+ name: 'Commutativity of intersection',
20
+ statement: '∀A B. A ∩ B = B ∩ A',
21
+ domain: 'set',
22
+ tags: ['commutativity', 'intersection', 'boolean-algebra'],
23
+ difficulty: 'trivial',
24
+ },
25
+ {
26
+ id: 'set.union-associative',
27
+ name: 'Associativity of union',
28
+ statement: '∀A B C. (A ∪ B) ∪ C = A ∪ (B ∪ C)',
29
+ domain: 'set',
30
+ tags: ['associativity', 'union', 'boolean-algebra'],
31
+ difficulty: 'easy',
32
+ },
33
+ {
34
+ id: 'set.inter-associative',
35
+ name: 'Associativity of intersection',
36
+ statement: '∀A B C. (A ∩ B) ∩ C = A ∩ (B ∩ C)',
37
+ domain: 'set',
38
+ tags: ['associativity', 'intersection', 'boolean-algebra'],
39
+ difficulty: 'easy',
40
+ },
41
+ {
42
+ id: 'set.union-distributes-inter',
43
+ name: 'Distributivity of ∪ over ∩',
44
+ statement: '∀A B C. A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)',
45
+ domain: 'set',
46
+ tags: ['distributivity', 'union', 'intersection', 'boolean-algebra'],
47
+ difficulty: 'medium',
48
+ },
49
+ {
50
+ id: 'set.inter-distributes-union',
51
+ name: 'Distributivity of ∩ over ∪',
52
+ statement: '∀A B C. A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)',
53
+ domain: 'set',
54
+ tags: ['distributivity', 'union', 'intersection', 'boolean-algebra'],
55
+ difficulty: 'medium',
56
+ },
57
+ {
58
+ id: 'set.de-morgan-union',
59
+ name: 'De Morgan (union)',
60
+ statement: '∀A B. (A ∪ B)ᶜ = Aᶜ ∩ Bᶜ',
61
+ domain: 'set',
62
+ tags: ['de-morgan', 'union', 'complement', 'duality', 'boolean-algebra'],
63
+ difficulty: 'medium',
64
+ references: ['De Morgan, 1860'],
65
+ },
66
+ {
67
+ id: 'set.de-morgan-inter',
68
+ name: 'De Morgan (intersection)',
69
+ statement: '∀A B. (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ',
70
+ domain: 'set',
71
+ tags: ['de-morgan', 'intersection', 'complement', 'duality', 'boolean-algebra'],
72
+ difficulty: 'medium',
73
+ references: ['De Morgan, 1860'],
74
+ },
75
+ {
76
+ id: 'set.union-idempotent',
77
+ name: 'Idempotence of union',
78
+ statement: '∀A. A ∪ A = A',
79
+ domain: 'set',
80
+ tags: ['idempotence', 'union', 'boolean-algebra'],
81
+ difficulty: 'trivial',
82
+ },
83
+ {
84
+ id: 'set.inter-idempotent',
85
+ name: 'Idempotence of intersection',
86
+ statement: '∀A. A ∩ A = A',
87
+ domain: 'set',
88
+ tags: ['idempotence', 'intersection', 'boolean-algebra'],
89
+ difficulty: 'trivial',
90
+ },
91
+ {
92
+ id: 'set.union-empty',
93
+ name: 'Union with empty set',
94
+ statement: '∀A. A ∪ ∅ = A',
95
+ domain: 'set',
96
+ tags: ['identity', 'union', 'empty-set'],
97
+ difficulty: 'trivial',
98
+ },
99
+ {
100
+ id: 'set.inter-empty',
101
+ name: 'Intersection with empty set',
102
+ statement: '∀A. A ∩ ∅ = ∅',
103
+ domain: 'set',
104
+ tags: ['annihilator', 'intersection', 'empty-set'],
105
+ difficulty: 'trivial',
106
+ },
107
+ {
108
+ id: 'set.subset-reflexive',
109
+ name: 'Reflexivity of ⊆',
110
+ statement: '∀A. A ⊆ A',
111
+ domain: 'set',
112
+ tags: ['reflexivity', 'subset', 'order'],
113
+ difficulty: 'trivial',
114
+ },
115
+ {
116
+ id: 'set.subset-transitive',
117
+ name: 'Transitivity of ⊆',
118
+ statement: '∀A B C. A ⊆ B ∧ B ⊆ C → A ⊆ C',
119
+ domain: 'set',
120
+ tags: ['transitivity', 'subset', 'order'],
121
+ difficulty: 'easy',
122
+ },
123
+ {
124
+ id: 'set.extensionality',
125
+ name: 'Axiom of extensionality',
126
+ statement: '∀A B. (∀x. x ∈ A ↔ x ∈ B) → A = B',
127
+ domain: 'set',
128
+ tags: ['zfc', 'extensionality', 'axiom', 'equality'],
129
+ difficulty: 'easy',
130
+ isAxiom: true,
131
+ references: ['Zermelo, 1908'],
132
+ },
133
+ ];
134
+ //# sourceMappingURL=set-theory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-theory.js","sourceRoot":"","sources":["../../../src/tooling/lemma-library/set-theory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { LemmaLibrary } from './library';
2
+ export declare function standardLibrary(): LemmaLibrary;
3
+ //# sourceMappingURL=standard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../../src/tooling/lemma-library/standard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,eAAe,IAAI,YAAY,CAQ9C"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // standardLibrary() — ensamble de la biblioteca curada base
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.standardLibrary = standardLibrary;
7
+ const library_1 = require("./library");
8
+ const propositional_1 = require("./propositional");
9
+ const arithmetic_1 = require("./arithmetic");
10
+ const set_theory_1 = require("./set-theory");
11
+ const modal_1 = require("./modal");
12
+ const firstorder_1 = require("./firstorder");
13
+ function standardLibrary() {
14
+ const lib = new library_1.LemmaLibrary();
15
+ for (const lemma of propositional_1.PROPOSITIONAL_LEMMAS)
16
+ lib.add(lemma);
17
+ for (const lemma of arithmetic_1.ARITHMETIC_LEMMAS)
18
+ lib.add(lemma);
19
+ for (const lemma of set_theory_1.SET_THEORY_LEMMAS)
20
+ lib.add(lemma);
21
+ for (const lemma of modal_1.MODAL_LEMMAS)
22
+ lib.add(lemma);
23
+ for (const lemma of firstorder_1.FIRSTORDER_LEMMAS)
24
+ lib.add(lemma);
25
+ return lib;
26
+ }
27
+ //# sourceMappingURL=standard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard.js","sourceRoot":"","sources":["../../../src/tooling/lemma-library/standard.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;;AAS/D,0CAQC;AAfD,uCAAyC;AACzC,mDAAuD;AACvD,6CAAiD;AACjD,6CAAiD;AACjD,mCAAuC;AACvC,6CAAiD;AAEjD,SAAgB,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,sBAAY,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,oCAAoB;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,8BAAiB;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,8BAAiB;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,oBAAY;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,8BAAiB;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { SemanticSearchHit, TfIdfIndex } from './types';
2
+ import type { LemmaLibrary } from './library';
3
+ export declare function buildIndex(library: LemmaLibrary): TfIdfIndex;
4
+ export declare function semanticSearch(index: TfIdfIndex, query: string, k?: number): SemanticSearchHit[];
5
+ //# sourceMappingURL=tfidf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfidf.d.ts","sourceRoot":"","sources":["../../../src/tooling/lemma-library/tfidf.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAgB,iBAAiB,EAAiB,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAW9C,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAoB5D;AA4CD,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,iBAAiB,EAAE,CAc3F"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Índice TF-IDF sobre LemmaLibrary
4
+ //
5
+ // Construye un vector espaciable por documento (lema) mezclando
6
+ // name + tags + statement. Ranking de consultas via cosine
7
+ // similarity. Determinístico, sin dependencias externas.
8
+ // ============================================================
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.buildIndex = buildIndex;
11
+ exports.semanticSearch = semanticSearch;
12
+ const tokenize_1 = require("./tokenize");
13
+ function lemmaTokens(lemma) {
14
+ return [
15
+ ...(0, tokenize_1.tokenize)(lemma.name),
16
+ ...lemma.tags.flatMap((t) => (0, tokenize_1.tokenize)(t)),
17
+ ...(0, tokenize_1.tokenize)(lemma.statement),
18
+ ];
19
+ }
20
+ function buildIndex(library) {
21
+ const lemmas = library.all();
22
+ const lemmasMap = new Map();
23
+ const documents = [];
24
+ const docFreq = new Map();
25
+ for (const lemma of lemmas) {
26
+ lemmasMap.set(lemma.id, lemma);
27
+ const tokens = lemmaTokens(lemma);
28
+ const termFreq = new Map();
29
+ for (const tok of tokens) {
30
+ termFreq.set(tok, (termFreq.get(tok) ?? 0) + 1);
31
+ }
32
+ for (const term of termFreq.keys()) {
33
+ docFreq.set(term, (docFreq.get(term) ?? 0) + 1);
34
+ }
35
+ documents.push({ lemmaId: lemma.id, termFreq, length: tokens.length });
36
+ }
37
+ return { documents, docFreq, totalDocs: lemmas.length, lemmas: lemmasMap };
38
+ }
39
+ function idf(term, index) {
40
+ const df = index.docFreq.get(term) ?? 0;
41
+ if (df === 0)
42
+ return 0;
43
+ // suavizado clásico: log((N + 1) / (df + 1)) + 1
44
+ return Math.log((index.totalDocs + 1) / (df + 1)) + 1;
45
+ }
46
+ function vectorize(tokens, index) {
47
+ const tf = new Map();
48
+ for (const tok of tokens) {
49
+ tf.set(tok, (tf.get(tok) ?? 0) + 1);
50
+ }
51
+ const vec = new Map();
52
+ for (const [term, freq] of tf) {
53
+ vec.set(term, freq * idf(term, index));
54
+ }
55
+ return vec;
56
+ }
57
+ function docVector(doc, index) {
58
+ const vec = new Map();
59
+ for (const [term, freq] of doc.termFreq) {
60
+ vec.set(term, freq * idf(term, index));
61
+ }
62
+ return vec;
63
+ }
64
+ function cosine(a, b) {
65
+ let dot = 0;
66
+ let normA = 0;
67
+ let normB = 0;
68
+ for (const [, w] of a)
69
+ normA += w * w;
70
+ for (const [, w] of b)
71
+ normB += w * w;
72
+ if (normA === 0 || normB === 0)
73
+ return 0;
74
+ const [small, big] = a.size <= b.size ? [a, b] : [b, a];
75
+ for (const [term, w] of small) {
76
+ const other = big.get(term);
77
+ if (other !== undefined)
78
+ dot += w * other;
79
+ }
80
+ return dot / (Math.sqrt(normA) * Math.sqrt(normB));
81
+ }
82
+ function semanticSearch(index, query, k = 5) {
83
+ const queryTokens = (0, tokenize_1.tokenize)(query);
84
+ if (queryTokens.length === 0)
85
+ return [];
86
+ const qVec = vectorize(queryTokens, index);
87
+ const hits = [];
88
+ for (const doc of index.documents) {
89
+ const lemma = index.lemmas.get(doc.lemmaId);
90
+ if (!lemma)
91
+ continue;
92
+ const dVec = docVector(doc, index);
93
+ const score = cosine(qVec, dVec);
94
+ if (score > 0)
95
+ hits.push({ lemma, score });
96
+ }
97
+ hits.sort((a, b) => b.score - a.score || a.lemma.id.localeCompare(b.lemma.id));
98
+ return hits.slice(0, k);
99
+ }
100
+ //# sourceMappingURL=tfidf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tfidf.js","sourceRoot":"","sources":["../../../src/tooling/lemma-library/tfidf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function tokenize(text: string): string[];
2
+ //# sourceMappingURL=tokenize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../../src/tooling/lemma-library/tokenize.ts"],"names":[],"mappings":"AAgDA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAsB/C"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Tokenización compartida — biblioteca de lemas
4
+ //
5
+ // Mezcla léxica (palabras) + estructural (símbolos lógicos),
6
+ // con stopwords mínimos para que la búsqueda de operadores
7
+ // (∧, ∨, →, ↔, ¬, □, ◇, ∀, ∃, =, ∈, ⊆, +, ·, …) sea efectiva.
8
+ // ============================================================
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.tokenize = tokenize;
11
+ const LOGIC_SYMBOLS = new Set([
12
+ '∧',
13
+ '∨',
14
+ '¬',
15
+ '→',
16
+ '↔',
17
+ '⊥',
18
+ '⊤',
19
+ '∀',
20
+ '∃',
21
+ '□',
22
+ '◇',
23
+ '⊢',
24
+ '⇒',
25
+ '=',
26
+ '≠',
27
+ '≤',
28
+ '<',
29
+ '>',
30
+ '∈',
31
+ '∉',
32
+ '⊆',
33
+ '⊂',
34
+ '∪',
35
+ '∩',
36
+ '∅',
37
+ '·',
38
+ '+',
39
+ 'ᶜ',
40
+ ]);
41
+ // Stopwords con ≥3 letras: queremos preservar metavars de 1 letra
42
+ // (P, Q, A, n, x, …) y separadores cortos (en/un/la) NO se filtran
43
+ // para no colisionar con identificadores.
44
+ const STOPWORDS = new Set(['the', 'and', 'with', 'for', 'los', 'las']);
45
+ // Separadores adicionales que NO son símbolos lógicos pero rompen
46
+ // tokens (paréntesis, espacios, comas, hyphens en kebab-case tags…).
47
+ const SEPARATOR_RE = /[\s\-.,;:!?()[\]{}'"`]/;
48
+ function tokenize(text) {
49
+ const out = [];
50
+ let current = '';
51
+ const flush = () => {
52
+ if (current.length > 0) {
53
+ const norm = current.toLowerCase();
54
+ if (!STOPWORDS.has(norm))
55
+ out.push(norm);
56
+ }
57
+ current = '';
58
+ };
59
+ for (const ch of text) {
60
+ if (LOGIC_SYMBOLS.has(ch)) {
61
+ flush();
62
+ out.push(ch);
63
+ }
64
+ else if (SEPARATOR_RE.test(ch)) {
65
+ flush();
66
+ }
67
+ else {
68
+ current += ch;
69
+ }
70
+ }
71
+ flush();
72
+ return out;
73
+ }
74
+ //# sourceMappingURL=tokenize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../../src/tooling/lemma-library/tokenize.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,EAAE;AACF,6DAA6D;AAC7D,2DAA2D;AAC3D,8DAA8D;AAC9D,+DAA+D;;AA0C/D,4BAsBC;AA9DD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC,CAAC;AAEH,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEvE,kEAAkE;AAClE,qEAAqE;AACrE,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAE9C,SAAgB,QAAQ,CAAC,IAAY;IACnC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;IACf,CAAC,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,KAAK,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Dominio del lema. Las constantes documentadas son los cinco
3
+ * dominios curados de base, pero se permite cualquier string para
4
+ * extensiones de usuario.
5
+ */
6
+ export type LemmaDomain = 'propositional' | 'firstorder' | 'modal' | 'arithmetic' | 'set' | string;
7
+ export type LemmaDifficulty = 'trivial' | 'easy' | 'medium' | 'hard';
8
+ /**
9
+ * Un lema curado: enunciado canónico + metadata para búsqueda y
10
+ * aplicación. El campo `statement` se asume en forma normalizada
11
+ * (ASCII + Unicode lógico estándar: ∧ ∨ ¬ → ↔ ∀ ∃ □ ◇).
12
+ */
13
+ export interface CuratedLemma {
14
+ id: string;
15
+ name: string;
16
+ statement: string;
17
+ domain: LemmaDomain;
18
+ tags: string[];
19
+ difficulty: LemmaDifficulty;
20
+ provedBy?: {
21
+ profile: string;
22
+ proof?: unknown;
23
+ };
24
+ references?: string[];
25
+ isAxiom?: boolean;
26
+ }
27
+ /**
28
+ * Documento indexado por TF-IDF: bag-of-words tokenizado con su
29
+ * frecuencia local y un puntero al lema original.
30
+ */
31
+ export interface TfIdfDocument {
32
+ lemmaId: string;
33
+ termFreq: Map<string, number>;
34
+ length: number;
35
+ }
36
+ /**
37
+ * Índice TF-IDF pre-calculado sobre la biblioteca completa.
38
+ */
39
+ export interface TfIdfIndex {
40
+ documents: TfIdfDocument[];
41
+ docFreq: Map<string, number>;
42
+ totalDocs: number;
43
+ lemmas: Map<string, CuratedLemma>;
44
+ }
45
+ export interface SemanticSearchHit {
46
+ lemma: CuratedLemma;
47
+ score: number;
48
+ }
49
+ export interface LemmaApplicationResult {
50
+ applicable: CuratedLemma[];
51
+ substitutions?: Map<string, string>;
52
+ }
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tooling/lemma-library/types.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnG,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Lemma Library — Tipos base
4
+ //
5
+ // Biblioteca curada de lemas pre-probados organizados por dominio
6
+ // (proposicional, primer orden, modal, aritmética, conjuntos, …)
7
+ // con metadata para búsqueda, filtrado y aplicación automática.
8
+ // ============================================================
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tooling/lemma-library/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gCAAgC;AAChC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+DAA+D"}
@@ -0,0 +1,3 @@
1
+ export type { AuditReport, ProvenanceKind, ProvenanceMetadata, ProvenanceNode, TrustLevel, } from './types';
2
+ export { ProvenanceLedger, auditTheorem, provenanceToCertificate } from './ledger';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tooling/provenance/index.ts"],"names":[],"mappings":"AASA,YAAY,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Provenance — Public API
4
+ //
5
+ // DAG auditado de teoremas/lemas/axiomas: cada nodo declara sus
6
+ // dependencias y metadata (autor, herramienta, timestamp, perfil).
7
+ // El ledger ofrece queries del cierre transitivo, detección de
8
+ // ciclos, estadísticas y serialización determinística.
9
+ // ============================================================
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.provenanceToCertificate = exports.auditTheorem = exports.ProvenanceLedger = void 0;
12
+ var ledger_1 = require("./ledger");
13
+ Object.defineProperty(exports, "ProvenanceLedger", { enumerable: true, get: function () { return ledger_1.ProvenanceLedger; } });
14
+ Object.defineProperty(exports, "auditTheorem", { enumerable: true, get: function () { return ledger_1.auditTheorem; } });
15
+ Object.defineProperty(exports, "provenanceToCertificate", { enumerable: true, get: function () { return ledger_1.provenanceToCertificate; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tooling/provenance/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,6BAA6B;AAC7B,EAAE;AACF,gEAAgE;AAChE,mEAAmE;AACnE,+DAA+D;AAC/D,uDAAuD;AACvD,+DAA+D;;;AAU/D,mCAAmF;AAA1E,0GAAA,gBAAgB,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,iHAAA,uBAAuB,OAAA"}
@@ -0,0 +1,89 @@
1
+ import type { AuditReport, ProvenanceMetadata, ProvenanceNode, TrustLevel } from './types';
2
+ export declare class ProvenanceLedger {
3
+ private readonly nodes;
4
+ /**
5
+ * Añade un nodo al ledger. Devuelve el id determinístico.
6
+ *
7
+ * Si el id ya existe se preserva el nodo previo y se devuelve el
8
+ * mismo id (idempotente). Falla si una dependencia no existe.
9
+ */
10
+ add(node: Omit<ProvenanceNode, 'id'>): string;
11
+ get(id: string): ProvenanceNode | undefined;
12
+ /**
13
+ * Walk recursivo de dependencias. Devuelve los nodos en orden
14
+ * topológico (deps antes que el nodo). Cada nodo aparece una sola
15
+ * vez aunque sea alcanzado por múltiples caminos.
16
+ */
17
+ dependencyChain(id: string): ProvenanceNode[];
18
+ /**
19
+ * Cuenta trust por categoría sobre el cierre transitivo (incluye al root).
20
+ */
21
+ trustChain(id: string): {
22
+ verified: number;
23
+ admitted: number;
24
+ external: number;
25
+ };
26
+ /**
27
+ * Conjunto de IDs de axiomas alcanzables desde `id` (cierre).
28
+ * Útil para "¿qué postulados base sostienen este teorema?".
29
+ */
30
+ axiomsUsed(id: string): Set<string>;
31
+ /**
32
+ * true sólo si todos los nodos del cierre transitivo (incluido el root)
33
+ * tienen trust='verified'. Un solo `admitted` o `external` lo descalifica.
34
+ */
35
+ isFullyVerified(id: string): boolean;
36
+ /** Cierre transitivo de ancestros (deps directas + indirectas), sin el propio nodo. */
37
+ ancestors(id: string): Set<string>;
38
+ /** Cierre transitivo de descendientes (quien depende de este nodo), sin el propio nodo. */
39
+ descendants(id: string): Set<string>;
40
+ /**
41
+ * Detecta ciclos. Devuelve la lista de ciclos como arrays de IDs.
42
+ *
43
+ * Bajo construcción normal `add()` impide ciclos (toda dep debe existir
44
+ * antes), pero la importación cruda de un ledger podría introducirlos
45
+ * — esta función lo verifica explícitamente.
46
+ */
47
+ findCircular(): string[][];
48
+ totalNodes(): number;
49
+ axiomCount(): number;
50
+ /** Longitud (en nodos) de la cadena más larga de dependencias. */
51
+ longestChain(): number;
52
+ /**
53
+ * Exporta el ledger a JSON determinístico (claves ordenadas, nodos
54
+ * ordenados por id). Apto para hashing y para diff.
55
+ */
56
+ exportLedger(): string;
57
+ /**
58
+ * Reemplaza el contenido del ledger por el contenido del JSON.
59
+ * Tolera reordenamiento de nodos: hace dos pasadas para resolver
60
+ * dependencias forward (en caso de que el JSON no esté topológicamente
61
+ * ordenado, aunque exportLedger siempre lo deja así).
62
+ */
63
+ importLedger(json: string): void;
64
+ /**
65
+ * Hash SHA-256 del ledger canonicalizado. Si dos ledgers tienen el
66
+ * mismo hash, son idénticos en contenido. Devuelve Promise para
67
+ * dejar la puerta abierta a un hash async (WebCrypto) en runtime
68
+ * sin Node `crypto` — la implementación actual es síncrona.
69
+ */
70
+ hashLedger(): Promise<string>;
71
+ }
72
+ /**
73
+ * Genera un reporte humano-legible sobre la confianza en `theoremId`.
74
+ *
75
+ * Estimación de riesgo:
76
+ * - `low`: 100% verified.
77
+ * - `medium`: al menos 1 admitted o external pero <30% del DAG.
78
+ * - `high`: >=30% admitted+external, o un axioma fundamental marcado como external.
79
+ */
80
+ export declare function auditTheorem(theoremId: string, ledger: ProvenanceLedger): AuditReport;
81
+ /**
82
+ * Convierte un nodo + su cadena a una forma compatible con el
83
+ * certificado de prueba existente. No reemplaza al generador real:
84
+ * sirve para que el agente pueda exportar el contexto de proveniencia
85
+ * cuando publica un teorema.
86
+ */
87
+ export declare function provenanceToCertificate(node: ProvenanceNode, ledger: ProvenanceLedger): unknown;
88
+ export type { ProvenanceMetadata, TrustLevel };
89
+ //# sourceMappingURL=ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../../src/tooling/provenance/ledger.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAClB,cAAc,EACd,UAAU,EACX,MAAM,SAAS,CAAC;AA6BjB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAE3D;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,MAAM;IAyB7C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAa3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,EAAE;IAiB7C;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAShF;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IASnC;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQpC,uFAAuF;IACvF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAkBlC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAoBpC;;;;;;OAMG;IACH,YAAY,IAAI,MAAM,EAAE,EAAE;IAmC1B,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAMpB,kEAAkE;IAClE,YAAY,IAAI,MAAM;IA6BtB;;;OAGG;IACH,YAAY,IAAI,MAAM;IAetB;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAqChC;;;;;OAKG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAI9B;AAoCD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAsCrF;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAsB/F;AAGD,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC"}