원클릭으로
sorrifier
// Isolates failing proof steps by replacing them with `sorry` and extracting them into standalone lemmas to modularize and decouple complex Lean 4 proofs.
// Isolates failing proof steps by replacing them with `sorry` and extracting them into standalone lemmas to modularize and decouple complex Lean 4 proofs.
| name | sorrifier |
| description | Isolates failing proof steps by replacing them with `sorry` and extracting them into standalone lemmas to modularize and decouple complex Lean 4 proofs. |
Structural refactoring workflow for isolating broken proof steps. Replaces failing logic with sorry, extracts it into a standalone lemma, and reconstructs the call site so the main theorem compiles cleanly.
This workflow uses two tools from other skills. All commands go through the logging wrapper.
| Tool | Skill | Purpose |
|---|---|---|
python skills/cli/lean_check.py FILE | verification | Diagnose compilation errors and pinpoint failing lines |
python skills/cli/axle.py sorry2lemma | code-transform | Extract sorry into standalone lemma with --reconstruct-callsite |
For full parameter reference, see verification/reference-lean-check.md and code-transform/reference-axle-sorry2lemma.md.
Follow these steps sequentially:
Run python skills/cli/lean_check.py FILE to identify failing lines.
lean_messages for entries with severity: "error".sorryEdit the Lean code: replace the failing tactic/expression with sorry.
sorry to the smallest failing block, not the entire theorem.Run python skills/cli/lean_check.py FILE again.
declaration uses 'sorry' are expected.Run python skills/cli/axle.py sorry2lemma with:
--reconstruct-callsite (required) — replaces sorry with the extracted lemma call--names <theorem> — target only the specific theorem--no-include-whole-context if local context variables need capturingRun python skills/cli/lean_check.py FILE one last time.
Broken state:
import Mathlib.Tactic
theorem sum_of_squares_helper (n : ℕ) : (n + 1)^2 = n^2 + 2*n + 1 := by
have h1 : (n + 1)^2 = (n + 1) * (n + 1) := by ring
rw [h1]
exact magic_solve n -- error: unknown identifier
After sorrify + extract:
python skills/cli/axle.py sorry2lemma file.lean --environment lean-4.28.0 --names sum_of_squares_helper --reconstruct-callsite
import Mathlib.Tactic
lemma sum_of_squares_helper_lemma_1 (n : ℕ) (h1 : (n + 1) ^ 2 = (n + 1) * (n + 1)) :
(n + 1) * (n + 1) = n ^ 2 + 2 * n + 1 := by
sorry
theorem sum_of_squares_helper (n : ℕ) : (n + 1)^2 = n^2 + 2*n + 1 := by
have h1 : (n + 1)^2 = (n + 1) * (n + 1) := by ring
rw [h1]
exact sum_of_squares_helper_lemma_1 n h1
have statement, not the entire theorem.lemma_1). Rename to something meaningful.informal_prover or manual proof.Lean 4 theorem proving toolkit: search lemmas, verify proofs, repair/simplify code, and get LLM-assisted informal proofs
LLM-assisted tools for informal proofs, proof strategy discussion, and code simplification
Search tools for finding Lean theorems, lemmas, and definitions in Mathlib
Code transformation tools for repairing, simplifying, and extracting Lean proofs
Verification tools for compiling, validating, and disproving Lean theorems