@nahisaho/musubix-lean 1.8.5

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 (89) hide show
  1. package/dist/converters/EarsToLeanConverter.d.ts +61 -0
  2. package/dist/converters/EarsToLeanConverter.d.ts.map +1 -0
  3. package/dist/converters/EarsToLeanConverter.js +300 -0
  4. package/dist/converters/EarsToLeanConverter.js.map +1 -0
  5. package/dist/converters/TypeScriptSpecifier.d.ts +63 -0
  6. package/dist/converters/TypeScriptSpecifier.d.ts.map +1 -0
  7. package/dist/converters/TypeScriptSpecifier.js +307 -0
  8. package/dist/converters/TypeScriptSpecifier.js.map +1 -0
  9. package/dist/converters/index.d.ts +7 -0
  10. package/dist/converters/index.d.ts.map +1 -0
  11. package/dist/converters/index.js +7 -0
  12. package/dist/converters/index.js.map +1 -0
  13. package/dist/environment/LeanEnvironmentDetector.d.ts +57 -0
  14. package/dist/environment/LeanEnvironmentDetector.d.ts.map +1 -0
  15. package/dist/environment/LeanEnvironmentDetector.js +221 -0
  16. package/dist/environment/LeanEnvironmentDetector.js.map +1 -0
  17. package/dist/environment/LeanProjectInitializer.d.ts +49 -0
  18. package/dist/environment/LeanProjectInitializer.d.ts.map +1 -0
  19. package/dist/environment/LeanProjectInitializer.js +232 -0
  20. package/dist/environment/LeanProjectInitializer.js.map +1 -0
  21. package/dist/environment/index.d.ts +7 -0
  22. package/dist/environment/index.d.ts.map +1 -0
  23. package/dist/environment/index.js +7 -0
  24. package/dist/environment/index.js.map +1 -0
  25. package/dist/errors.d.ts +141 -0
  26. package/dist/errors.d.ts.map +1 -0
  27. package/dist/errors.js +254 -0
  28. package/dist/errors.js.map +1 -0
  29. package/dist/hybrid/HybridVerifier.d.ts +113 -0
  30. package/dist/hybrid/HybridVerifier.d.ts.map +1 -0
  31. package/dist/hybrid/HybridVerifier.js +247 -0
  32. package/dist/hybrid/HybridVerifier.js.map +1 -0
  33. package/dist/hybrid/index.d.ts +6 -0
  34. package/dist/hybrid/index.d.ts.map +1 -0
  35. package/dist/hybrid/index.js +6 -0
  36. package/dist/hybrid/index.js.map +1 -0
  37. package/dist/index.d.ts +21 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +50 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/infrastructure/LeanFileGenerator.d.ts +70 -0
  42. package/dist/infrastructure/LeanFileGenerator.d.ts.map +1 -0
  43. package/dist/infrastructure/LeanFileGenerator.js +253 -0
  44. package/dist/infrastructure/LeanFileGenerator.js.map +1 -0
  45. package/dist/infrastructure/LeanRunner.d.ts +93 -0
  46. package/dist/infrastructure/LeanRunner.d.ts.map +1 -0
  47. package/dist/infrastructure/LeanRunner.js +296 -0
  48. package/dist/infrastructure/LeanRunner.js.map +1 -0
  49. package/dist/infrastructure/index.d.ts +7 -0
  50. package/dist/infrastructure/index.d.ts.map +1 -0
  51. package/dist/infrastructure/index.js +7 -0
  52. package/dist/infrastructure/index.js.map +1 -0
  53. package/dist/integration/LeanIntegration.d.ts +138 -0
  54. package/dist/integration/LeanIntegration.d.ts.map +1 -0
  55. package/dist/integration/LeanIntegration.js +352 -0
  56. package/dist/integration/LeanIntegration.js.map +1 -0
  57. package/dist/proof/ProofGenerator.d.ts +53 -0
  58. package/dist/proof/ProofGenerator.d.ts.map +1 -0
  59. package/dist/proof/ProofGenerator.js +324 -0
  60. package/dist/proof/ProofGenerator.js.map +1 -0
  61. package/dist/proof/ReProverClient.d.ts +58 -0
  62. package/dist/proof/ReProverClient.d.ts.map +1 -0
  63. package/dist/proof/ReProverClient.js +260 -0
  64. package/dist/proof/ReProverClient.js.map +1 -0
  65. package/dist/proof/index.d.ts +7 -0
  66. package/dist/proof/index.d.ts.map +1 -0
  67. package/dist/proof/index.js +7 -0
  68. package/dist/proof/index.js.map +1 -0
  69. package/dist/reporting/VerificationReporter.d.ts +89 -0
  70. package/dist/reporting/VerificationReporter.d.ts.map +1 -0
  71. package/dist/reporting/VerificationReporter.js +296 -0
  72. package/dist/reporting/VerificationReporter.js.map +1 -0
  73. package/dist/reporting/index.d.ts +6 -0
  74. package/dist/reporting/index.d.ts.map +1 -0
  75. package/dist/reporting/index.js +6 -0
  76. package/dist/reporting/index.js.map +1 -0
  77. package/dist/traceability/TraceabilityManager.d.ts +104 -0
  78. package/dist/traceability/TraceabilityManager.d.ts.map +1 -0
  79. package/dist/traceability/TraceabilityManager.js +299 -0
  80. package/dist/traceability/TraceabilityManager.js.map +1 -0
  81. package/dist/traceability/index.d.ts +6 -0
  82. package/dist/traceability/index.d.ts.map +1 -0
  83. package/dist/traceability/index.js +6 -0
  84. package/dist/traceability/index.js.map +1 -0
  85. package/dist/types.d.ts +466 -0
  86. package/dist/types.d.ts.map +1 -0
  87. package/dist/types.js +17 -0
  88. package/dist/types.js.map +1 -0
  89. package/package.json +78 -0
@@ -0,0 +1,324 @@
1
+ /**
2
+ * @fileoverview Proof generation for Lean theorems
3
+ * @module @nahisaho/musubix-lean/proof
4
+ * @traceability REQ-LEAN-PROOF-001 to REQ-LEAN-PROOF-003
5
+ */
6
+ import { ProofTimeoutError } from '../errors.js';
7
+ /**
8
+ * Standard proof tactics
9
+ * @traceability REQ-LEAN-PROOF-001
10
+ */
11
+ const STANDARD_TACTICS = [
12
+ 'rfl',
13
+ 'decide',
14
+ 'native_decide',
15
+ 'simp',
16
+ 'trivial',
17
+ 'assumption',
18
+ 'contradiction',
19
+ 'exact h',
20
+ 'intro',
21
+ 'constructor',
22
+ ];
23
+ /**
24
+ * Induction tactics for recursive data
25
+ * @traceability REQ-LEAN-PROOF-002
26
+ */
27
+ const INDUCTION_TACTICS = [
28
+ 'induction',
29
+ 'cases',
30
+ 'match_hyp',
31
+ 'rcases',
32
+ ];
33
+ /**
34
+ * Default proof strategies
35
+ */
36
+ const DEFAULT_STRATEGIES = [
37
+ {
38
+ name: 'simple',
39
+ tactics: ['rfl', 'decide', 'trivial'],
40
+ applicability: () => true,
41
+ },
42
+ {
43
+ name: 'simplification',
44
+ tactics: ['simp', 'simp_all', 'simp [*]'],
45
+ applicability: () => true,
46
+ },
47
+ {
48
+ name: 'assumption-based',
49
+ tactics: ['assumption', 'exact h', 'exact h_event', 'exact h_pre_0'],
50
+ applicability: (theorem) => theorem.hypotheses.length > 0,
51
+ },
52
+ {
53
+ name: 'induction',
54
+ tactics: ['induction n with n ih', 'cases h'],
55
+ applicability: (theorem) => (theorem.conclusion?.leanCode.includes('Nat') ?? false) ||
56
+ (theorem.conclusion?.leanCode.includes('List') ?? false),
57
+ },
58
+ {
59
+ name: 'propositional',
60
+ tactics: ['intro', 'constructor', 'left', 'right', 'apply And.intro'],
61
+ applicability: (theorem) => (theorem.conclusion?.leanCode.includes('∧') ?? false) ||
62
+ (theorem.conclusion?.leanCode.includes('∨') ?? false) ||
63
+ (theorem.conclusion?.leanCode.includes('→') ?? false),
64
+ },
65
+ ];
66
+ /**
67
+ * Create initial proof state from theorem
68
+ */
69
+ function createInitialProofState(theorem) {
70
+ return {
71
+ goals: [
72
+ {
73
+ id: 0,
74
+ type: theorem.conclusion?.type ?? '',
75
+ leanCode: theorem.conclusion?.leanCode ?? '',
76
+ },
77
+ ],
78
+ hypotheses: theorem.hypotheses,
79
+ currentGoal: 0,
80
+ };
81
+ }
82
+ /**
83
+ * Generate proof for a Lean theorem
84
+ * @traceability REQ-LEAN-PROOF-001
85
+ */
86
+ export async function generateProof(theorem, options = {}) {
87
+ const startTime = Date.now();
88
+ const timeout = options.timeout ?? 30000;
89
+ const maxTactics = options.maxTactics ?? 5;
90
+ const strategies = options.strategies ?? DEFAULT_STRATEGIES;
91
+ const tacticsAttempted = [];
92
+ let proofState = createInitialProofState(theorem);
93
+ try {
94
+ // Try each applicable strategy
95
+ for (const strategy of strategies) {
96
+ if (strategy.applicability && !strategy.applicability(theorem)) {
97
+ continue;
98
+ }
99
+ // Try tactics from strategy
100
+ for (const tactic of strategy.tactics) {
101
+ if (tacticsAttempted.length >= maxTactics) {
102
+ break;
103
+ }
104
+ if (Date.now() - startTime > timeout) {
105
+ throw new ProofTimeoutError(theorem.name, timeout);
106
+ }
107
+ tacticsAttempted.push(tactic);
108
+ // Simulate tactic application
109
+ const result = await applyTactic(proofState, tactic);
110
+ if (result.success && result.newState) {
111
+ proofState = result.newState;
112
+ // Check if proof is complete
113
+ if (proofState.goals.length === 0) {
114
+ const proof = {
115
+ id: `proof-${theorem.id}`,
116
+ theoremId: theorem.id,
117
+ tactics: tacticsAttempted,
118
+ leanCode: generateProofCode(theorem, tacticsAttempted),
119
+ isComplete: true,
120
+ generatedAt: new Date().toISOString(),
121
+ };
122
+ return {
123
+ success: true,
124
+ proof,
125
+ proofState: null,
126
+ tacticsAttempted,
127
+ duration: Date.now() - startTime,
128
+ };
129
+ }
130
+ }
131
+ }
132
+ }
133
+ // Proof not found with standard tactics
134
+ return {
135
+ success: false,
136
+ proof: null,
137
+ proofState,
138
+ tacticsAttempted,
139
+ duration: Date.now() - startTime,
140
+ error: 'Could not complete proof with available tactics',
141
+ };
142
+ }
143
+ catch (error) {
144
+ if (error instanceof ProofTimeoutError) {
145
+ return {
146
+ success: false,
147
+ proof: null,
148
+ proofState,
149
+ tacticsAttempted,
150
+ duration: Date.now() - startTime,
151
+ error: error.message,
152
+ };
153
+ }
154
+ throw error;
155
+ }
156
+ }
157
+ /**
158
+ * Apply a single tactic to proof state
159
+ */
160
+ export async function applyTactic(state, tactic) {
161
+ // This is a simplified simulation
162
+ // In real implementation, this would call Lean via LeanRunner
163
+ // Simulate success for certain tactics on certain goals
164
+ const currentGoal = state.goals[state.currentGoal];
165
+ if (!currentGoal) {
166
+ return { success: false, newState: null, error: 'No goals' };
167
+ }
168
+ // Simple heuristics for tactic success
169
+ const goalCode = currentGoal.leanCode.toLowerCase();
170
+ if (tactic === 'rfl' && goalCode.includes('=')) {
171
+ // rfl succeeds on reflexive equality
172
+ return {
173
+ success: true,
174
+ newState: {
175
+ ...state,
176
+ goals: state.goals.filter((_, i) => i !== state.currentGoal),
177
+ },
178
+ };
179
+ }
180
+ if (tactic === 'trivial' && goalCode === 'true') {
181
+ return {
182
+ success: true,
183
+ newState: {
184
+ ...state,
185
+ goals: state.goals.filter((_, i) => i !== state.currentGoal),
186
+ },
187
+ };
188
+ }
189
+ if (tactic === 'assumption' && state.hypotheses.length > 0) {
190
+ // Check if any hypothesis matches the goal
191
+ const matchingHyp = state.hypotheses.find((h) => h.type.toLowerCase() === goalCode);
192
+ if (matchingHyp) {
193
+ return {
194
+ success: true,
195
+ newState: {
196
+ ...state,
197
+ goals: state.goals.filter((_, i) => i !== state.currentGoal),
198
+ },
199
+ };
200
+ }
201
+ }
202
+ // Default: tactic doesn't change state
203
+ return {
204
+ success: false,
205
+ newState: null,
206
+ error: `Tactic '${tactic}' did not make progress`,
207
+ };
208
+ }
209
+ /**
210
+ * Generate Lean proof code
211
+ */
212
+ function generateProofCode(theorem, tactics) {
213
+ const tacticBlock = tactics.length > 0
214
+ ? tactics.map((t) => ` ${t}`).join('\n')
215
+ : ' sorry';
216
+ return `
217
+ theorem ${theorem.name} : ${theorem.conclusion?.leanCode ?? 'True'} := by
218
+ ${tacticBlock}
219
+ `;
220
+ }
221
+ /**
222
+ * Generate proof sketch with sorry markers
223
+ * @traceability REQ-LEAN-PROOF-003
224
+ */
225
+ export function generateProofSketch(theorem, partialTactics = []) {
226
+ const sorryLocations = [];
227
+ const hints = [];
228
+ let completionRate = 0;
229
+ // Analyze theorem to provide hints
230
+ const conclusion = theorem.conclusion?.leanCode ?? '';
231
+ if (conclusion.includes('∧')) {
232
+ hints.push('Use "constructor" to split conjunction');
233
+ hints.push('Prove each side separately');
234
+ }
235
+ if (conclusion.includes('→')) {
236
+ hints.push('Use "intro" to introduce hypothesis');
237
+ }
238
+ if (conclusion.includes('∀')) {
239
+ hints.push('Use "intro" to introduce universally quantified variable');
240
+ }
241
+ if (conclusion.includes('¬')) {
242
+ hints.push('Use "intro h_unwanted" and derive contradiction');
243
+ }
244
+ // Build partial proof with sorry
245
+ const tacticBlock = partialTactics.length > 0
246
+ ? partialTactics.map((t) => ` ${t}`).join('\n') + '\n sorry'
247
+ : ' sorry';
248
+ sorryLocations.push({
249
+ line: partialTactics.length + 2,
250
+ expectedType: conclusion,
251
+ hint: hints[0] || 'Complete the proof',
252
+ });
253
+ const partialProof = `
254
+ theorem ${theorem.name} : ${conclusion} := by
255
+ ${tacticBlock}
256
+ `;
257
+ // Calculate completion rate (simplified)
258
+ completionRate = partialTactics.length > 0 ? partialTactics.length * 20 : 0;
259
+ completionRate = Math.min(completionRate, 80); // Max 80% without verification
260
+ return {
261
+ theoremName: theorem.name,
262
+ partialProof,
263
+ sorryLocations,
264
+ hints,
265
+ completionRate,
266
+ };
267
+ }
268
+ /**
269
+ * Select best strategy for theorem
270
+ */
271
+ export function selectStrategy(theorem, strategies = DEFAULT_STRATEGIES) {
272
+ // Find first applicable strategy
273
+ for (const strategy of strategies) {
274
+ if (strategy.applicability && strategy.applicability(theorem)) {
275
+ return strategy;
276
+ }
277
+ }
278
+ // Default to simple strategy
279
+ return strategies[0];
280
+ }
281
+ /**
282
+ * ProofGenerator class implementation
283
+ * @traceability REQ-LEAN-PROOF-001
284
+ */
285
+ export class ProofGenerator {
286
+ strategies;
287
+ constructor(strategies = DEFAULT_STRATEGIES) {
288
+ this.strategies = strategies;
289
+ }
290
+ /**
291
+ * Generate proof for theorem
292
+ */
293
+ async generate(theorem, options) {
294
+ return generateProof(theorem, {
295
+ ...options,
296
+ strategies: options?.strategies ?? this.strategies,
297
+ });
298
+ }
299
+ /**
300
+ * Apply single tactic
301
+ */
302
+ async applyTactic(state, tactic) {
303
+ return applyTactic(state, tactic);
304
+ }
305
+ /**
306
+ * Generate proof sketch
307
+ */
308
+ generateSketch(theorem, partialTactics) {
309
+ return generateProofSketch(theorem, partialTactics);
310
+ }
311
+ /**
312
+ * Select best strategy
313
+ */
314
+ selectStrategy(theorem) {
315
+ return selectStrategy(theorem, this.strategies);
316
+ }
317
+ /**
318
+ * Add custom strategy
319
+ */
320
+ addStrategy(strategy) {
321
+ this.strategies.push(strategy);
322
+ }
323
+ }
324
+ //# sourceMappingURL=ProofGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProofGenerator.js","sourceRoot":"","sources":["../../src/proof/ProofGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @fileoverview ReProver client for external proof search
3
+ * @module @nahisaho/musubix-lean/proof
4
+ * @traceability REQ-LEAN-REPROVER-001 to REQ-LEAN-REPROVER-003
5
+ */
6
+ import type { ReProverConfig, ReProverSearchResult, ProofState, ProofFeedback } from '../types.js';
7
+ /**
8
+ * ReProver client for neural proof search
9
+ * @traceability REQ-LEAN-REPROVER-001
10
+ */
11
+ export declare class ReProverClient {
12
+ private config;
13
+ private connected;
14
+ constructor(config?: Partial<ReProverConfig>);
15
+ /**
16
+ * Connect to ReProver service
17
+ * @traceability REQ-LEAN-REPROVER-001
18
+ */
19
+ connect(config?: Partial<ReProverConfig>): Promise<void>;
20
+ /**
21
+ * Check if connected to ReProver
22
+ */
23
+ isAvailable(): boolean;
24
+ /**
25
+ * Perform health check on ReProver service
26
+ */
27
+ private healthCheck;
28
+ /**
29
+ * Search for proof using ReProver
30
+ * @traceability REQ-LEAN-REPROVER-002
31
+ */
32
+ search(proofState: ProofState, options?: {
33
+ maxDepth?: number;
34
+ timeout?: number;
35
+ }): Promise<ReProverSearchResult>;
36
+ /**
37
+ * Parse ReProver response into SearchResult
38
+ */
39
+ private parseSearchResult;
40
+ /**
41
+ * Parse search path from response
42
+ */
43
+ private parseSearchPath;
44
+ /**
45
+ * Get feedback for failed proof attempt
46
+ * @traceability REQ-LEAN-REPROVER-003
47
+ */
48
+ getFeedback(failedState: ProofState): ProofFeedback;
49
+ /**
50
+ * Disconnect from ReProver
51
+ */
52
+ disconnect(): void;
53
+ /**
54
+ * Get current configuration
55
+ */
56
+ getConfig(): ReProverConfig;
57
+ }
58
+ //# sourceMappingURL=ReProverClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReProverClient.d.ts","sourceRoot":"","sources":["../../src/proof/ReProverClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,aAAa,EAEd,MAAM,aAAa,CAAC;AAYrB;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAIhD;;;OAGG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9D;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;YACW,WAAW;IAmBzB;;;OAGG;IACG,MAAM,CACV,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAChD,OAAO,CAAC,oBAAoB,CAAC;IAwEhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,UAAU,GAAG,aAAa;IAsEnD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,SAAS,IAAI,cAAc;CAG5B"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * @fileoverview ReProver client for external proof search
3
+ * @module @nahisaho/musubix-lean/proof
4
+ * @traceability REQ-LEAN-REPROVER-001 to REQ-LEAN-REPROVER-003
5
+ */
6
+ import { ReProverConnectionError } from '../errors.js';
7
+ /**
8
+ * Default ReProver configuration
9
+ */
10
+ const DEFAULT_CONFIG = {
11
+ endpoint: 'http://localhost:8000/api/prove',
12
+ timeout: 60000,
13
+ maxDepth: 10,
14
+ };
15
+ /**
16
+ * ReProver client for neural proof search
17
+ * @traceability REQ-LEAN-REPROVER-001
18
+ */
19
+ export class ReProverClient {
20
+ config;
21
+ connected = false;
22
+ constructor(config = {}) {
23
+ this.config = { ...DEFAULT_CONFIG, ...config };
24
+ }
25
+ /**
26
+ * Connect to ReProver service
27
+ * @traceability REQ-LEAN-REPROVER-001
28
+ */
29
+ async connect(config) {
30
+ if (config) {
31
+ this.config = { ...this.config, ...config };
32
+ }
33
+ try {
34
+ // Health check
35
+ const response = await this.healthCheck();
36
+ if (response) {
37
+ this.connected = true;
38
+ }
39
+ else {
40
+ throw new Error('Health check failed');
41
+ }
42
+ }
43
+ catch (error) {
44
+ this.connected = false;
45
+ throw new ReProverConnectionError(this.config.endpoint, error instanceof Error ? error.message : String(error));
46
+ }
47
+ }
48
+ /**
49
+ * Check if connected to ReProver
50
+ */
51
+ isAvailable() {
52
+ return this.connected;
53
+ }
54
+ /**
55
+ * Perform health check on ReProver service
56
+ */
57
+ async healthCheck() {
58
+ try {
59
+ const controller = new AbortController();
60
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
61
+ const healthEndpoint = this.config.endpoint.replace('/api/prove', '/health');
62
+ const response = await fetch(healthEndpoint, {
63
+ method: 'GET',
64
+ signal: controller.signal,
65
+ });
66
+ clearTimeout(timeoutId);
67
+ return response.ok;
68
+ }
69
+ catch {
70
+ // If fetch fails, ReProver is not available
71
+ return false;
72
+ }
73
+ }
74
+ /**
75
+ * Search for proof using ReProver
76
+ * @traceability REQ-LEAN-REPROVER-002
77
+ */
78
+ async search(proofState, options) {
79
+ if (!this.connected) {
80
+ return {
81
+ found: false,
82
+ proof: null,
83
+ searchPath: [],
84
+ suggestions: ['ReProver is not connected. Use basic proof tactics.'],
85
+ };
86
+ }
87
+ const maxDepth = options?.maxDepth ?? this.config.maxDepth;
88
+ const timeout = options?.timeout ?? this.config.timeout;
89
+ try {
90
+ const controller = new AbortController();
91
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
92
+ const response = await fetch(this.config.endpoint, {
93
+ method: 'POST',
94
+ headers: {
95
+ 'Content-Type': 'application/json',
96
+ ...(this.config.apiKey && {
97
+ Authorization: `Bearer ${this.config.apiKey}`,
98
+ }),
99
+ },
100
+ body: JSON.stringify({
101
+ proof_state: {
102
+ goals: proofState.goals.map((g) => ({
103
+ id: g.id,
104
+ type: g.type,
105
+ lean_code: g.leanCode,
106
+ })),
107
+ hypotheses: proofState.hypotheses.map((h) => ({
108
+ name: h.name,
109
+ type: h.type,
110
+ })),
111
+ current_goal: proofState.currentGoal,
112
+ },
113
+ max_depth: maxDepth,
114
+ }),
115
+ signal: controller.signal,
116
+ });
117
+ clearTimeout(timeoutId);
118
+ if (!response.ok) {
119
+ throw new Error(`ReProver request failed: ${response.status}`);
120
+ }
121
+ const result = await response.json();
122
+ return this.parseSearchResult(result);
123
+ }
124
+ catch (error) {
125
+ if (error instanceof Error && error.name === 'AbortError') {
126
+ return {
127
+ found: false,
128
+ proof: null,
129
+ searchPath: [],
130
+ suggestions: [`Proof search timed out after ${timeout}ms`],
131
+ };
132
+ }
133
+ return {
134
+ found: false,
135
+ proof: null,
136
+ searchPath: [],
137
+ suggestions: [
138
+ `ReProver error: ${error instanceof Error ? error.message : String(error)}`,
139
+ ],
140
+ };
141
+ }
142
+ }
143
+ /**
144
+ * Parse ReProver response into SearchResult
145
+ */
146
+ parseSearchResult(response) {
147
+ const data = response;
148
+ if (data.found && data.proof) {
149
+ return {
150
+ found: true,
151
+ proof: String(data.proof),
152
+ searchPath: this.parseSearchPath(data.search_path),
153
+ suggestions: [],
154
+ };
155
+ }
156
+ return {
157
+ found: false,
158
+ proof: null,
159
+ searchPath: this.parseSearchPath(data.search_path),
160
+ suggestions: Array.isArray(data.suggestions)
161
+ ? data.suggestions.map(String)
162
+ : [],
163
+ };
164
+ }
165
+ /**
166
+ * Parse search path from response
167
+ */
168
+ parseSearchPath(path) {
169
+ if (!Array.isArray(path)) {
170
+ return [];
171
+ }
172
+ return path.map((node) => {
173
+ const n = node;
174
+ return {
175
+ tactic: String(n.tactic || ''),
176
+ state: {
177
+ goals: [],
178
+ hypotheses: [],
179
+ currentGoal: 0,
180
+ },
181
+ score: Number(n.score || 0),
182
+ children: [],
183
+ };
184
+ });
185
+ }
186
+ /**
187
+ * Get feedback for failed proof attempt
188
+ * @traceability REQ-LEAN-REPROVER-003
189
+ */
190
+ getFeedback(failedState) {
191
+ const guidance = [];
192
+ const suggestions = [];
193
+ // Analyze the stuck state
194
+ const currentGoal = failedState.goals[failedState.currentGoal];
195
+ if (currentGoal) {
196
+ const goalType = currentGoal.leanCode;
197
+ // Provide guidance based on goal structure
198
+ if (goalType.includes('∧')) {
199
+ guidance.push('This is a conjunction. Try using "constructor" to split it.');
200
+ suggestions.push('constructor');
201
+ }
202
+ if (goalType.includes('∨')) {
203
+ guidance.push('This is a disjunction. Try "left" or "right" to choose a side.');
204
+ suggestions.push('left', 'right');
205
+ }
206
+ if (goalType.includes('→')) {
207
+ guidance.push('This is an implication. Use "intro h" to assume the antecedent.');
208
+ suggestions.push('intro h');
209
+ }
210
+ if (goalType.includes('∀')) {
211
+ guidance.push('This is a universal statement. Use "intro x" to introduce a variable.');
212
+ suggestions.push('intro x');
213
+ }
214
+ if (goalType.includes('∃')) {
215
+ guidance.push('This is an existential statement. Use "use value" to provide a witness.');
216
+ suggestions.push('use _');
217
+ }
218
+ if (goalType.includes('¬')) {
219
+ guidance.push('This is a negation. Use "intro h" and derive a contradiction.');
220
+ suggestions.push('intro h');
221
+ }
222
+ if (goalType.includes('Nat') || goalType.includes('List')) {
223
+ guidance.push('Consider using induction on the data structure.');
224
+ suggestions.push('induction n', 'cases n');
225
+ }
226
+ }
227
+ // Check hypotheses for applicable tactics
228
+ if (failedState.hypotheses.length > 0) {
229
+ guidance.push('You have hypotheses available. Try "assumption" or "exact h".');
230
+ for (const hyp of failedState.hypotheses) {
231
+ if (hyp.type === currentGoal?.type) {
232
+ suggestions.push(`exact ${hyp.name}`);
233
+ }
234
+ }
235
+ }
236
+ if (guidance.length === 0) {
237
+ guidance.push('Try simplification tactics: simp, simp_all, or decide.');
238
+ suggestions.push('simp', 'decide');
239
+ }
240
+ return {
241
+ stuckState: failedState,
242
+ attemptedTactics: [],
243
+ similarTheorems: [], // Would be populated from a theorem database
244
+ guidance,
245
+ };
246
+ }
247
+ /**
248
+ * Disconnect from ReProver
249
+ */
250
+ disconnect() {
251
+ this.connected = false;
252
+ }
253
+ /**
254
+ * Get current configuration
255
+ */
256
+ getConfig() {
257
+ return { ...this.config };
258
+ }
259
+ }
260
+ //# sourceMappingURL=ReProverClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReProverClient.js","sourceRoot":"","sources":["../../src/proof/ReProverClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Proof module exports
3
+ * @module @nahisaho/musubix-lean/proof
4
+ */
5
+ export { ProofGenerator, generateProof, generateProofSketch } from './ProofGenerator.js';
6
+ export { ReProverClient } from './ReProverClient.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}