SWE-Proof: real repository issues with a proof instead of tests
(authored by agents unless marked đ§)
- paper
- George Ma, Benjamin Mikek, et al., SWE-Proof: Can Language Models Resolve Real-World Issues with Machine-Checked Proofs?
- UC Berkeley, Georgia Tech, UIUC, AWS AI Labs
- arXiv preprint 2609.21190v2, September 22, 2026, âPreprint. Under review.â
- evidence below comes from the saved full paper
- results are author reports
- not independent reproductions
- the artifacts are promised, not yet checked by us: âWe will release both artifacts described in this paper.â
- George Ma, Benjamin Mikek, et al., SWE-Proof: Can Language Models Resolve Real-World Issues with Machine-Checked Proofs?
what it does
- BenchProofer turns a coding task that has a known correct patch into a verified one
- input: all 500 SWE-bench Verified issues, which are Python
- output per issue: specification, axioms, a reference implementation that verifies, a pre-fix implementation that must fail, a proof, and the equivalent Python patch
- three verifiers
- Nagini, for statically typed Python, solved by an SMT solver
- Velvet, an imperative language inside Lean, solved by an SMT solver
- pure Lean, where an agent writes the proof
- no Rust and no Verus; Verus appears only in citations (introduction and related work)
- during construction the specification writer sees the answer
- section 3.2: âit also sees the ground-truth patch, the buggy code it replaces, the test patchâ
- so the benchmarkâs own specifications are not evidence that agents can write specifications from an issue alone
- also built for 242 of the 266 Python tasks of SWE-bench Pro
- section 3.5: the 22 that fail everywhere do so because âthe patch does not alter behavior that pre- and post-condition specifications can observeâ
- mostly renames, moved code, changed signatures, side effects
- section 3.5: the 22 that fail everywhere do so because âthe patch does not alter behavior that pre- and post-condition specifications can observeâ
techniques worth reusing
- verify only the new or changed code; summarize each unchanged callee with an axiom
- section 3.2: âsummarize each unchanged callee with an axiom stating the properties the fix relies onâ
- an axiom may say less than the callee guarantees, as long as the proof closes
- appendix B.2: âAxioms are a last resort, not a default.â
- Nagini: 500 deep callee models against 264 axioms over 137 instances
- pure Lean over Mathlib needs 3 axioms in the whole corpus
- refine each axiom with two opposing loops
- correctness: a fuzzer runs the real callee; any input that violates the axiom sends it back
- usefulness: the verifier must close the proof using the axiom; failure sends it back
- the axiom tests ship with the instance and run the real callee inside the taskâs container
- an axiom must never contain the fix
- appendix B.2: âAn axiom that asserted the corrected behavior of a callee would make the specification verify for the wrong reasonâ
- an axiom over a callee the patch touches is rejected
- mechanical gates on the specification
- discrimination: the pre-fix implementation must fail to verify
- mutation: one-operator mutants of the reference implementation must fail to verify, at a high kill rate
- hygiene: imports from an allowlist, no escape hatch such as Leanâs
sorry
- adversarial gates, where model auditors must deliver a concrete counterexample that is then executed
- too strong: an input where specification and repository code disagree
- too weak: a wrong implementation that still verifies
- appendix E.3: âA roleâs report is recorded but never taken as a verdict on its own.â
- successful attacks become permanent test cases and the instance goes back for revision
- model-to-code link, since the verified text is not the repository text
- conformance: run an executable copy of the verified implementation against the real patched function on generated inputs
- equivalence: every step from patch to verified implementation must be a type refinement, an axiomatized callee, or an identical operation
- leakage gate: the specification shown to a solver must not let an auditor rebuild the patch
- five properties for scoring a specification
- admissible, sound, complete, from Feng et al. 2026
- sound axioms and faithful, new here
- faithful: âthe functions it models cover the whole behavioral surface the issue requiresâ
- bookkeeping
- appendix E.4: âAdmission is recomputed, never stored.â
- kept attacks are replayed when a specification changes
what the experiments say
- one model only, Claude Opus 4.8, all 500 instances, 250-step budget
- main numbers are single runs; most Nagini cells were repeated four times (appendix F.4: rows 1 and 5 once)
- tests miss defects
- section 4.2: â26.8% of the patches that pass every test in SWE-bench Verifiedâs are overturnedâ
- 85.0% pass the tests; 58.2% survive the audit
- the judge is a model auditor that must write a test separating the patch from the ground-truth patch
- inference: the paper is inconsistent about the control cell behind this audit
- Table 2 reports Row 1 (Baseline + Audit) as 58.2, and appendix F.4 says âThe design calls for 26 cells and all 26 were runâ
- appendix F.3, on the 122-of-421 measurement, says Row 1 is the cross-backend control and âThat cell has not been run, so the rate stands as a measurement on one backend.â
- F.3 gives a different measurement instead: with natural-language specifications, â122 of 421 resolved submissions (29.0%) carry a mechanically confirmed violation of the formal ground truthâ
- inference: treat 26.8% with care until the authors resolve it
- section 4.2: â26.8% of the patches that pass every test in SWE-bench Verifiedâs are overturnedâ
- a specification the agent writes itself does not help
- end to end: 85.6%, 85.0%, 83.8% for Nagini, Velvet, Lean against the 85.0% baseline
- a correct specification helps
- 96.2%, 94.0%, 95.2%
- part of that is knowing where to edit; against localization alone it is still â+6.9 points averaged over the three backendsâ
- structured natural language does not substitute
- with a natural-language specification, â17.8 points of its pass rate come from patches that remain distinguishable from the ground-truth patch despite passing every hidden testâ
- specification synthesis alone, from issue and repository
- passes the five-property audit 46.0%, 60.0%, 61.4% of the time
- faithfulness fails on 42.5%, soundness on 13.1%, the others on at most 3.9%
- specification quality tracks the outcome
- section 4.6: âspecifications from unresolved instances fail the audit 92.3% of the time, against 50.5% on resolved onesâ
- once the specification exists, implementation and proof are not the obstacle
- section 4.3: âthe bottleneck is not writing the implementation or the proof but the self-constructed specificationâ
what âformally verifiedâ covers here
- proved: a re-written model of the changed functions meets the specification, given the axioms
- not proved, checked by tests and model auditors
- that each axiom is true of the real callee
- that the verified model behaves like the Python patch
- for Velvet and Lean the executable copy is an agent-written Python translation, âwhich we treat as the weakest link in the guaranteeâ
- that the specification matches what the issue asks
- section 3.4: âno guarantee can be established that a specification matches informal natural language intentâ
- inference
- the released benchmarkâs near-zero audit findings are by construction, as the authors say; they measure the auditors on solver-written specifications instead
- appendix E.4: Fleiss Îș of 0.861 on faithfulness among three ballots
- auditor agreement is not auditor correctness; no human-labeled ground truth for the audit is reported in the parts I read
- the 26.8% figure depends on the same kind of model auditor
- the released benchmarkâs near-zero audit findings are by construction, as the authors say; they measure the auditors on solver-written specifications instead
study status
- read the main text and appendices B.2, E.3, E.4, F.4 myself
- checked against the paper text and added above: the unrun-cell contradiction, the SWE-bench Pro result, appendix I.2 and G.5 quotes
- not checked: its list of four smaller arithmetic mismatches between tables, and its 25-row technique table
- its âmoderate, indirectâ threat label is its opinion Audited 2026-10-12 against the paper: read the study and the full paper text; checked every number and percentage (26.8, 58.2, 85.0, 85.6, 85.0, 83.8, 96.2, 94.0, 95.2, 6.9, 17.8, 46.0, 60.0, 61.4, 42.5, 13.1, 3.9, 92.3, 50.5, 55.8 to 59.9, 61.2, 31.0 to 49.2, 242 of 266, 264 axioms over 137 instances, 0.861, 122 of 421) and the cited section and appendix labels, the gate and axiom-loop descriptions, and all quotations, which match the paper; changed three things: the claim that Verus appears only in related work (it is also in the introduction), the repetition note (rows 1 and 5 had one run), and the contradiction bullet, now marked as inference with the F.4 and Table 2 evidence; not checked: Table 2 and appendix tables beyond the cited cells, the ChatGPT list of arithmetic mismatches, and the appendix G.5 section label (the quote sits in the repetitions table discussion after the G.5 heading).
Last edited: