@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.
- package/dist/converters/EarsToLeanConverter.d.ts +61 -0
- package/dist/converters/EarsToLeanConverter.d.ts.map +1 -0
- package/dist/converters/EarsToLeanConverter.js +300 -0
- package/dist/converters/EarsToLeanConverter.js.map +1 -0
- package/dist/converters/TypeScriptSpecifier.d.ts +63 -0
- package/dist/converters/TypeScriptSpecifier.d.ts.map +1 -0
- package/dist/converters/TypeScriptSpecifier.js +307 -0
- package/dist/converters/TypeScriptSpecifier.js.map +1 -0
- package/dist/converters/index.d.ts +7 -0
- package/dist/converters/index.d.ts.map +1 -0
- package/dist/converters/index.js +7 -0
- package/dist/converters/index.js.map +1 -0
- package/dist/environment/LeanEnvironmentDetector.d.ts +57 -0
- package/dist/environment/LeanEnvironmentDetector.d.ts.map +1 -0
- package/dist/environment/LeanEnvironmentDetector.js +221 -0
- package/dist/environment/LeanEnvironmentDetector.js.map +1 -0
- package/dist/environment/LeanProjectInitializer.d.ts +49 -0
- package/dist/environment/LeanProjectInitializer.d.ts.map +1 -0
- package/dist/environment/LeanProjectInitializer.js +232 -0
- package/dist/environment/LeanProjectInitializer.js.map +1 -0
- package/dist/environment/index.d.ts +7 -0
- package/dist/environment/index.d.ts.map +1 -0
- package/dist/environment/index.js +7 -0
- package/dist/environment/index.js.map +1 -0
- package/dist/errors.d.ts +141 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +254 -0
- package/dist/errors.js.map +1 -0
- package/dist/hybrid/HybridVerifier.d.ts +113 -0
- package/dist/hybrid/HybridVerifier.d.ts.map +1 -0
- package/dist/hybrid/HybridVerifier.js +247 -0
- package/dist/hybrid/HybridVerifier.js.map +1 -0
- package/dist/hybrid/index.d.ts +6 -0
- package/dist/hybrid/index.d.ts.map +1 -0
- package/dist/hybrid/index.js +6 -0
- package/dist/hybrid/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/LeanFileGenerator.d.ts +70 -0
- package/dist/infrastructure/LeanFileGenerator.d.ts.map +1 -0
- package/dist/infrastructure/LeanFileGenerator.js +253 -0
- package/dist/infrastructure/LeanFileGenerator.js.map +1 -0
- package/dist/infrastructure/LeanRunner.d.ts +93 -0
- package/dist/infrastructure/LeanRunner.d.ts.map +1 -0
- package/dist/infrastructure/LeanRunner.js +296 -0
- package/dist/infrastructure/LeanRunner.js.map +1 -0
- package/dist/infrastructure/index.d.ts +7 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +7 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/integration/LeanIntegration.d.ts +138 -0
- package/dist/integration/LeanIntegration.d.ts.map +1 -0
- package/dist/integration/LeanIntegration.js +352 -0
- package/dist/integration/LeanIntegration.js.map +1 -0
- package/dist/proof/ProofGenerator.d.ts +53 -0
- package/dist/proof/ProofGenerator.d.ts.map +1 -0
- package/dist/proof/ProofGenerator.js +324 -0
- package/dist/proof/ProofGenerator.js.map +1 -0
- package/dist/proof/ReProverClient.d.ts +58 -0
- package/dist/proof/ReProverClient.d.ts.map +1 -0
- package/dist/proof/ReProverClient.js +260 -0
- package/dist/proof/ReProverClient.js.map +1 -0
- package/dist/proof/index.d.ts +7 -0
- package/dist/proof/index.d.ts.map +1 -0
- package/dist/proof/index.js +7 -0
- package/dist/proof/index.js.map +1 -0
- package/dist/reporting/VerificationReporter.d.ts +89 -0
- package/dist/reporting/VerificationReporter.d.ts.map +1 -0
- package/dist/reporting/VerificationReporter.js +296 -0
- package/dist/reporting/VerificationReporter.js.map +1 -0
- package/dist/reporting/index.d.ts +6 -0
- package/dist/reporting/index.d.ts.map +1 -0
- package/dist/reporting/index.js +6 -0
- package/dist/reporting/index.js.map +1 -0
- package/dist/traceability/TraceabilityManager.d.ts +104 -0
- package/dist/traceability/TraceabilityManager.d.ts.map +1 -0
- package/dist/traceability/TraceabilityManager.js +299 -0
- package/dist/traceability/TraceabilityManager.js.map +1 -0
- package/dist/traceability/index.d.ts +6 -0
- package/dist/traceability/index.d.ts.map +1 -0
- package/dist/traceability/index.js +6 -0
- package/dist/traceability/index.js.map +1 -0
- package/dist/types.d.ts +466 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main integration facade for Lean 4 formal verification
|
|
3
|
+
* @module @nahisaho/musubix-lean
|
|
4
|
+
* @traceability REQ-LEAN-001 to REQ-LEAN-006
|
|
5
|
+
*/
|
|
6
|
+
import { ok, err } from 'neverthrow';
|
|
7
|
+
import { LeanEnvironmentDetector } from '../environment/LeanEnvironmentDetector.js';
|
|
8
|
+
import { LeanProjectInitializer } from '../environment/LeanProjectInitializer.js';
|
|
9
|
+
import { LeanRunner } from '../infrastructure/LeanRunner.js';
|
|
10
|
+
import { LeanFileGenerator } from '../infrastructure/LeanFileGenerator.js';
|
|
11
|
+
import { EarsToLeanConverter } from '../converters/EarsToLeanConverter.js';
|
|
12
|
+
import { TypeScriptSpecifier } from '../converters/TypeScriptSpecifier.js';
|
|
13
|
+
import { ProofGenerator } from '../proof/ProofGenerator.js';
|
|
14
|
+
import { ReProverClient } from '../proof/ReProverClient.js';
|
|
15
|
+
import { VerificationReporter } from '../reporting/VerificationReporter.js';
|
|
16
|
+
import { TraceabilityManager } from '../traceability/TraceabilityManager.js';
|
|
17
|
+
import { HybridVerifier } from '../hybrid/HybridVerifier.js';
|
|
18
|
+
import { LeanIntegrationError, LeanEnvironmentError, LeanVerificationError, } from '../errors.js';
|
|
19
|
+
/**
|
|
20
|
+
* Main integration class for Lean 4 formal verification
|
|
21
|
+
* Provides a unified API for all verification capabilities
|
|
22
|
+
*
|
|
23
|
+
* @traceability REQ-LEAN-001
|
|
24
|
+
*/
|
|
25
|
+
export class LeanIntegration {
|
|
26
|
+
leanConfig;
|
|
27
|
+
detector;
|
|
28
|
+
initializer;
|
|
29
|
+
runner;
|
|
30
|
+
generator;
|
|
31
|
+
earsConverter;
|
|
32
|
+
tsSpecifier;
|
|
33
|
+
proofGenerator;
|
|
34
|
+
reprovarClient;
|
|
35
|
+
reporter;
|
|
36
|
+
traceability;
|
|
37
|
+
hybridVerifier;
|
|
38
|
+
status = {
|
|
39
|
+
initialized: false,
|
|
40
|
+
leanAvailable: false,
|
|
41
|
+
projectInitialized: false,
|
|
42
|
+
mathlibAvailable: false,
|
|
43
|
+
reprovarAvailable: false,
|
|
44
|
+
};
|
|
45
|
+
constructor(config = {}) {
|
|
46
|
+
this.leanConfig = {
|
|
47
|
+
leanPath: config.leanPath ?? 'lean',
|
|
48
|
+
projectPath: config.projectPath ?? process.cwd(),
|
|
49
|
+
timeout: config.timeout ?? 30000,
|
|
50
|
+
lakeEnabled: config.lakeEnabled ?? true,
|
|
51
|
+
mathlibEnabled: config.mathlibEnabled ?? false,
|
|
52
|
+
verbose: config.verbose ?? false,
|
|
53
|
+
};
|
|
54
|
+
// Initialize all components
|
|
55
|
+
this.detector = new LeanEnvironmentDetector();
|
|
56
|
+
this.initializer = new LeanProjectInitializer(config);
|
|
57
|
+
this.runner = new LeanRunner(config);
|
|
58
|
+
this.generator = new LeanFileGenerator(config);
|
|
59
|
+
this.earsConverter = new EarsToLeanConverter();
|
|
60
|
+
this.tsSpecifier = new TypeScriptSpecifier();
|
|
61
|
+
this.proofGenerator = new ProofGenerator();
|
|
62
|
+
this.reprovarClient = new ReProverClient(config);
|
|
63
|
+
this.reporter = new VerificationReporter();
|
|
64
|
+
this.traceability = new TraceabilityManager();
|
|
65
|
+
this.hybridVerifier = new HybridVerifier(config);
|
|
66
|
+
// Connect components
|
|
67
|
+
this.hybridVerifier.setReporter(this.reporter);
|
|
68
|
+
this.hybridVerifier.setTraceabilityManager(this.traceability);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Initialize the integration
|
|
72
|
+
* @traceability REQ-LEAN-ENV-001
|
|
73
|
+
*/
|
|
74
|
+
async initialize() {
|
|
75
|
+
try {
|
|
76
|
+
// Detect Lean environment
|
|
77
|
+
const envInfo = await this.detector.detect();
|
|
78
|
+
this.status.leanAvailable = envInfo.installed;
|
|
79
|
+
this.status.leanVersion = envInfo.version ?? undefined;
|
|
80
|
+
this.status.mathlibAvailable = envInfo.mathlibAvailable;
|
|
81
|
+
if (!envInfo.installed) {
|
|
82
|
+
return err(new LeanIntegrationError('Lean 4 is not installed. Please install Lean 4 from https://leanprover.github.io/lean4/doc/setup.html'));
|
|
83
|
+
}
|
|
84
|
+
// Check ReProver availability
|
|
85
|
+
const reprovarAvailable = await this.reprovarClient.isAvailable();
|
|
86
|
+
this.status.reprovarAvailable = reprovarAvailable;
|
|
87
|
+
this.status.initialized = true;
|
|
88
|
+
return ok(this.status);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
return err(new LeanIntegrationError(`Initialization failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Initialize a new Lean project
|
|
96
|
+
* @traceability REQ-LEAN-ENV-002
|
|
97
|
+
*/
|
|
98
|
+
async initProject(name, path) {
|
|
99
|
+
try {
|
|
100
|
+
await this.initializer.initialize({ name, directory: path ?? process.cwd() });
|
|
101
|
+
this.status.projectInitialized = true;
|
|
102
|
+
return ok(undefined);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
return err(new LeanIntegrationError(`Project initialization failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Convert EARS requirement to Lean theorem
|
|
110
|
+
* @traceability REQ-LEAN-CONV-001
|
|
111
|
+
*/
|
|
112
|
+
convertRequirement(requirement) {
|
|
113
|
+
const result = this.earsConverter.convert(requirement);
|
|
114
|
+
return result.mapErr((e) => new LeanIntegrationError(`Conversion failed: ${e.message}`));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Convert TypeScript specification to Lean
|
|
118
|
+
* @traceability REQ-LEAN-CONV-002
|
|
119
|
+
*/
|
|
120
|
+
convertTypeScript(spec) {
|
|
121
|
+
const functions = spec.functions ?? [];
|
|
122
|
+
const theorems = [];
|
|
123
|
+
for (const func of functions) {
|
|
124
|
+
const result = this.tsSpecifier.specify(func);
|
|
125
|
+
if (result.isErr()) {
|
|
126
|
+
return err(new LeanIntegrationError(`TypeScript conversion failed: ${result.error.message}`));
|
|
127
|
+
}
|
|
128
|
+
// Convert LeanFunctionSpec to LeanTheorem
|
|
129
|
+
const funcSpec = result.value;
|
|
130
|
+
theorems.push({
|
|
131
|
+
id: `theorem-${func.name}`,
|
|
132
|
+
name: funcSpec.functionName,
|
|
133
|
+
statement: funcSpec.typeSignature,
|
|
134
|
+
requirementId: `ts-func-${func.name}`,
|
|
135
|
+
hypotheses: funcSpec.preconditionHypotheses,
|
|
136
|
+
conclusion: funcSpec.postconditionGoal,
|
|
137
|
+
leanCode: funcSpec.leanCode,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return ok(theorems);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Generate proof for a theorem
|
|
144
|
+
* @traceability REQ-LEAN-PROOF-001
|
|
145
|
+
*/
|
|
146
|
+
async generateProof(theorem, options = {}) {
|
|
147
|
+
try {
|
|
148
|
+
let proof;
|
|
149
|
+
if (options.useReProver && this.status.reprovarAvailable) {
|
|
150
|
+
// Create proof state from theorem for ReProver
|
|
151
|
+
const proofState = {
|
|
152
|
+
goals: [{ id: 0, type: theorem.conclusion?.type ?? '', leanCode: theorem.conclusion?.leanCode ?? '' }],
|
|
153
|
+
hypotheses: theorem.hypotheses,
|
|
154
|
+
currentGoal: 0,
|
|
155
|
+
};
|
|
156
|
+
const searchResult = await this.reprovarClient.search(proofState);
|
|
157
|
+
if (!searchResult.found || !searchResult.proof) {
|
|
158
|
+
return err(new LeanIntegrationError(`ReProver search failed: ${searchResult.suggestions.join(', ')}`));
|
|
159
|
+
}
|
|
160
|
+
// Convert ReProverSearchResult to LeanProof
|
|
161
|
+
proof = {
|
|
162
|
+
id: `proof-${theorem.id}`,
|
|
163
|
+
theoremId: theorem.id,
|
|
164
|
+
tactics: searchResult.searchPath.map(node => node.tactic),
|
|
165
|
+
leanCode: searchResult.proof,
|
|
166
|
+
isComplete: true,
|
|
167
|
+
generatedAt: new Date().toISOString(),
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
const result = await this.proofGenerator.generate(theorem);
|
|
172
|
+
if (!result.success || !result.proof) {
|
|
173
|
+
return err(new LeanIntegrationError(`Proof generation failed: ${result.error ?? 'Unknown error'}`));
|
|
174
|
+
}
|
|
175
|
+
proof = result.proof;
|
|
176
|
+
}
|
|
177
|
+
return ok(proof);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
return err(new LeanIntegrationError(`Proof generation failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Verify a theorem
|
|
185
|
+
* @traceability REQ-LEAN-VERIFY-001
|
|
186
|
+
*/
|
|
187
|
+
async verify(theorem, options = {}) {
|
|
188
|
+
const startTime = Date.now();
|
|
189
|
+
try {
|
|
190
|
+
// Register in traceability
|
|
191
|
+
if (options.traceability !== false) {
|
|
192
|
+
this.traceability.linkTheoremToRequirement(theorem);
|
|
193
|
+
}
|
|
194
|
+
// Generate proof if needed
|
|
195
|
+
let theoremWithProof = theorem;
|
|
196
|
+
if (options.generateProofs && !theorem.proof) {
|
|
197
|
+
const proofResult = await this.generateProof(theorem, {
|
|
198
|
+
useReProver: options.useReProver,
|
|
199
|
+
});
|
|
200
|
+
if (proofResult.isOk()) {
|
|
201
|
+
theoremWithProof = { ...theorem, proof: proofResult.value };
|
|
202
|
+
// Link proof in traceability
|
|
203
|
+
if (options.traceability !== false) {
|
|
204
|
+
this.traceability.linkProofToTheorem(proofResult.value, theorem);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Generate Lean file
|
|
209
|
+
const outputDir = this.leanConfig.projectPath ?? process.cwd();
|
|
210
|
+
const genResult = await this.generator.generate([theoremWithProof], {
|
|
211
|
+
outputDir,
|
|
212
|
+
includeImports: true,
|
|
213
|
+
includeProofs: true,
|
|
214
|
+
});
|
|
215
|
+
// Type check
|
|
216
|
+
const checkResult = await this.runner.typeCheck(genResult.path);
|
|
217
|
+
const result = {
|
|
218
|
+
theoremId: theorem.id,
|
|
219
|
+
status: checkResult.valid ? 'proved' : 'incomplete',
|
|
220
|
+
proof: theoremWithProof.proof,
|
|
221
|
+
errors: checkResult.errors,
|
|
222
|
+
warnings: [],
|
|
223
|
+
duration: Date.now() - startTime,
|
|
224
|
+
};
|
|
225
|
+
// Add to reporter
|
|
226
|
+
this.reporter.addResult({
|
|
227
|
+
theorem: theoremWithProof,
|
|
228
|
+
status: result.status === 'proved' ? 'proved' : 'incomplete',
|
|
229
|
+
proof: result.proof,
|
|
230
|
+
error: result.errors[0],
|
|
231
|
+
duration: result.duration,
|
|
232
|
+
});
|
|
233
|
+
return ok(result);
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
return err(new LeanVerificationError(`Verification failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Perform hybrid verification
|
|
241
|
+
* @traceability REQ-LEAN-HYBRID-001
|
|
242
|
+
*/
|
|
243
|
+
async verifyHybrid(functionId, runtimeTests, theorem) {
|
|
244
|
+
return this.hybridVerifier.verify(functionId, runtimeTests, theorem);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Batch verify multiple theorems
|
|
248
|
+
*/
|
|
249
|
+
async verifyBatch(theorems, options = {}) {
|
|
250
|
+
const results = new Map();
|
|
251
|
+
for (const theorem of theorems) {
|
|
252
|
+
const result = await this.verify(theorem, options);
|
|
253
|
+
if (result.isOk()) {
|
|
254
|
+
results.set(theorem.id, result.value);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
results.set(theorem.id, {
|
|
258
|
+
theoremId: theorem.id,
|
|
259
|
+
status: 'error',
|
|
260
|
+
errors: [result.error.message],
|
|
261
|
+
warnings: [],
|
|
262
|
+
duration: 0,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return results;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Generate verification report
|
|
270
|
+
* @traceability REQ-LEAN-FEEDBACK-001
|
|
271
|
+
*/
|
|
272
|
+
generateReport() {
|
|
273
|
+
return this.reporter.generate();
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Export report in specified format
|
|
277
|
+
*/
|
|
278
|
+
exportReport(format) {
|
|
279
|
+
return this.reporter.export(format);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get traceability coverage
|
|
283
|
+
* @traceability REQ-LEAN-TRACE-003
|
|
284
|
+
*/
|
|
285
|
+
getTraceabilityCoverage(requirementIds) {
|
|
286
|
+
const coverage = this.traceability.calculateCoverage(requirementIds);
|
|
287
|
+
return {
|
|
288
|
+
totalRequirements: coverage.totalRequirements,
|
|
289
|
+
coveredRequirements: coverage.coveredRequirements,
|
|
290
|
+
coveragePercentage: coverage.coveragePercentage,
|
|
291
|
+
untraced: coverage.untraced,
|
|
292
|
+
fullyTraced: coverage.fullyTraced,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get traceability matrix as Markdown
|
|
297
|
+
*/
|
|
298
|
+
getTraceabilityMatrix() {
|
|
299
|
+
return this.traceability.exportMarkdown();
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Get current status
|
|
303
|
+
*/
|
|
304
|
+
getStatus() {
|
|
305
|
+
return { ...this.status };
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Get Lean version
|
|
309
|
+
*/
|
|
310
|
+
async getLeanVersion() {
|
|
311
|
+
try {
|
|
312
|
+
const version = await this.runner.getVersion();
|
|
313
|
+
return ok(version);
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
return err(new LeanEnvironmentError(`Failed to get version: ${error instanceof Error ? error.message : String(error)}`));
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Check if a file has valid Lean syntax
|
|
321
|
+
*/
|
|
322
|
+
async validateSyntax(filePath) {
|
|
323
|
+
try {
|
|
324
|
+
const result = await this.runner.typeCheck(filePath);
|
|
325
|
+
return ok(result.valid);
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
return err(new LeanVerificationError(`Syntax validation failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Clear all state
|
|
333
|
+
*/
|
|
334
|
+
reset() {
|
|
335
|
+
this.reporter.clear();
|
|
336
|
+
this.traceability.clear();
|
|
337
|
+
this.status = {
|
|
338
|
+
initialized: false,
|
|
339
|
+
leanAvailable: false,
|
|
340
|
+
projectInitialized: false,
|
|
341
|
+
mathlibAvailable: false,
|
|
342
|
+
reprovarAvailable: false,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Factory function for creating LeanIntegration instance
|
|
348
|
+
*/
|
|
349
|
+
export function createLeanIntegration(config) {
|
|
350
|
+
return new LeanIntegration(config);
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=LeanIntegration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeanIntegration.js","sourceRoot":"","sources":["../../src/integration/LeanIntegration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAY7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AACrF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAyBtB;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAClB,UAAU,CAAa;IACvB,QAAQ,CAA0B;IAClC,WAAW,CAAyB;IACpC,MAAM,CAAa;IACnB,SAAS,CAAoB;IAC7B,aAAa,CAAsB;IACnC,WAAW,CAAsB;IACjC,cAAc,CAAiB;IAC/B,cAAc,CAAiB;IAC/B,QAAQ,CAAuB;IAC/B,YAAY,CAAsB;IAClC,cAAc,CAAiB;IAE/B,MAAM,GAAsB;QAClC,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,KAAK;QACpB,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,KAAK;QACvB,iBAAiB,EAAE,KAAK;KACzB,CAAC;IAEF,YAAY,SAA8B,EAAE;QAC1C,IAAI,CAAC,UAAU,GAAG;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM;YACnC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;YAChD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;YACvC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK;YAC9C,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;SACjC,CAAC;QAEF,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAEjD,qBAAqB;QACrB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAE7C,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAExD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAO,GAAG,CACR,IAAI,oBAAoB,CACtB,uGAAuG,CACxG,CACF,CAAC;YACJ,CAAC;YAED,8BAA8B;YAC9B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAElD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,IAAI,oBAAoB,CACtB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAa;QAEb,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACtC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,IAAI,oBAAoB,CACtB,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3F,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,WAA4B;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,IAAoB;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnB,OAAO,GAAG,CACR,IAAI,oBAAoB,CAAC,iCAAiC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAClF,CAAC;YACJ,CAAC;YACD,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE;gBAC1B,IAAI,EAAE,QAAQ,CAAC,YAAY;gBAC3B,SAAS,EAAE,QAAQ,CAAC,aAAa;gBACjC,aAAa,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE;gBACrC,UAAU,EAAE,QAAQ,CAAC,sBAAsB;gBAC3C,UAAU,EAAE,QAAQ,CAAC,iBAAiB;gBACtC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,OAAoB,EACpB,UAAqC,EAAE;QAEvC,IAAI,CAAC;YACH,IAAI,KAAgB,CAAC;YAErB,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACzD,+CAA+C;gBAC/C,MAAM,UAAU,GAAG;oBACjB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;oBACtG,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,WAAW,EAAE,CAAC;iBACf,CAAC;gBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAClE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;oBAC/C,OAAO,GAAG,CAAC,IAAI,oBAAoB,CAAC,2BAA2B,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzG,CAAC;gBACD,4CAA4C;gBAC5C,KAAK,GAAG;oBACN,EAAE,EAAE,SAAS,OAAO,CAAC,EAAE,EAAE;oBACzB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;oBACzD,QAAQ,EAAE,YAAY,CAAC,KAAK;oBAC5B,UAAU,EAAE,IAAI;oBAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,GAAG,CAAC,IAAI,oBAAoB,CAAC,4BAA4B,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;gBACtG,CAAC;gBACD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACvB,CAAC;YAED,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,IAAI,oBAAoB,CACtB,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,OAAoB,EACpB,UAA+B,EAAE;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,2BAA2B;YAC3B,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACtD,CAAC;YAED,2BAA2B;YAC3B,IAAI,gBAAgB,GAAG,OAAO,CAAC;YAC/B,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;oBACpD,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC,CAAC;gBACH,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;oBACvB,gBAAgB,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;oBAE5D,6BAA6B;oBAC7B,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;wBACnC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE;gBAClE,SAAS;gBACT,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,aAAa;YACb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEhE,MAAM,MAAM,GAAuB;gBACjC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;gBACnD,KAAK,EAAE,gBAAgB,CAAC,KAAK;gBAC7B,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;YAEF,kBAAkB;YAClB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACtB,OAAO,EAAE,gBAAgB;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;gBAC5D,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;YAEH,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,IAAI,qBAAqB,CACvB,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,UAAkB,EAClB,YAAqC,EACrC,OAAoB;QAEpB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAuB,EACvB,UAA+B,EAAE;QAEjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;QAEtD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;oBACtB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC9B,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE,CAAC;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAA4C;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,cAAwB;QAO9C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACrE,OAAO;YACL,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;YACjD,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,IAAI,oBAAoB,CACtB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,IAAI,qBAAqB,CACvB,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,KAAK;YACpB,kBAAkB,EAAE,KAAK;YACzB,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,KAAK;SACzB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA4B;IAChE,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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 type { LeanTheorem, LeanProofSketch, ProofResult, ProofState, ProofStrategy, ProofOptions, TacticResult } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Generate proof for a Lean theorem
|
|
9
|
+
* @traceability REQ-LEAN-PROOF-001
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateProof(theorem: LeanTheorem, options?: ProofOptions): Promise<ProofResult>;
|
|
12
|
+
/**
|
|
13
|
+
* Apply a single tactic to proof state
|
|
14
|
+
*/
|
|
15
|
+
export declare function applyTactic(state: ProofState, tactic: string): Promise<TacticResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Generate proof sketch with sorry markers
|
|
18
|
+
* @traceability REQ-LEAN-PROOF-003
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateProofSketch(theorem: LeanTheorem, partialTactics?: string[]): LeanProofSketch;
|
|
21
|
+
/**
|
|
22
|
+
* Select best strategy for theorem
|
|
23
|
+
*/
|
|
24
|
+
export declare function selectStrategy(theorem: LeanTheorem, strategies?: ProofStrategy[]): ProofStrategy;
|
|
25
|
+
/**
|
|
26
|
+
* ProofGenerator class implementation
|
|
27
|
+
* @traceability REQ-LEAN-PROOF-001
|
|
28
|
+
*/
|
|
29
|
+
export declare class ProofGenerator {
|
|
30
|
+
private strategies;
|
|
31
|
+
constructor(strategies?: ProofStrategy[]);
|
|
32
|
+
/**
|
|
33
|
+
* Generate proof for theorem
|
|
34
|
+
*/
|
|
35
|
+
generate(theorem: LeanTheorem, options?: ProofOptions): Promise<ProofResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Apply single tactic
|
|
38
|
+
*/
|
|
39
|
+
applyTactic(state: ProofState, tactic: string): Promise<TacticResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Generate proof sketch
|
|
42
|
+
*/
|
|
43
|
+
generateSketch(theorem: LeanTheorem, partialTactics?: string[]): LeanProofSketch;
|
|
44
|
+
/**
|
|
45
|
+
* Select best strategy
|
|
46
|
+
*/
|
|
47
|
+
selectStrategy(theorem: LeanTheorem): ProofStrategy;
|
|
48
|
+
/**
|
|
49
|
+
* Add custom strategy
|
|
50
|
+
*/
|
|
51
|
+
addStrategy(strategy: ProofStrategy): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=ProofGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProofGenerator.d.ts","sourceRoot":"","sources":["../../src/proof/ProofGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EACf,WAAW,EACX,UAAU,EAEV,aAAa,EACb,YAAY,EACZ,YAAY,EAEb,MAAM,aAAa,CAAC;AAoFrB;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CA8EtB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAwDvB;AAgBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,cAAc,GAAE,MAAM,EAAO,GAC5B,eAAe,CAoDjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,EACpB,UAAU,GAAE,aAAa,EAAuB,GAC/C,aAAa,CAUf;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAkB;gBAExB,UAAU,GAAE,aAAa,EAAuB;IAI5D;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IAOvB;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3E;;OAEG;IACH,cAAc,CACZ,OAAO,EAAE,WAAW,EACpB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,eAAe;IAIlB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa;IAInD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAG3C"}
|