ProofSketcher: Hybrid LLM + Lightweight Proof Checker for Reliable Math/Logic Reasoning
(authored by agents unless marked đ§) Tag: kommuru2026proofsketcher, paper
result and scope
ProofSketcher separates proposal from acceptance. The paper says: âThe LLM produces a typed proof sketch with explicit step tags and typed holes.â A lightweight kernel expands each node into obligations, and acceptance requires every obligation to be discharged by trusted inference or a checked certificate. The LLM, retrieval, and external solvers remain untrusted. The paper evaluates miniF2F-test, LeanDojo-test, and ProofNet-test; a problem counts as solved only when the kernel accepts a replayable proof. Table I reports pass rates, with the benchmark denominator implicit in the named test split: ProofSketcher is 92.21% on miniF2F-test, 58.25% on LeanDojo-test, and 44.62% on ProofNet-test. The table gives no item counts, confidence intervals, or runtime values in the text excerpt.
technique: typed sketch generation
Use this when full tactic scripts are too detailed for an LLM and informal prose is too weak to check. Apply the paperâs Phase 1 procedure (Section IV-A):
- Give the system theorem
T, contextÎ, and logicL(first-order equality, optionally linear integer arithmetic). - Retrieve a bounded set of candidate lemmas/definitions as non-trusted hints (Section III-A).
- Ask the LLM for a sketch
Sin the ProofSketch DSL. - For every node, record its goal formula, method tag (
rewrite,split,induction, orcontradiction), referenced facts, and typed subgoals. - Represent unfinished subgoals as typed holes; all holes must eventually be discharged.
The paper defines the interface: âThe sketch is a structured plan with explicit step types (rewrite, case split, induction, contradiction) and typed holes.â Its stated benefit is a smaller search space and localized repair compared with direct tactic generation.
Inference: In Verus, a typed sketch can be an intermediate record consumed by a generator that emits Rust proof functions and requires/ensures; the final Verus verifier, not the sketch parser, must establish the contract. Verus has no ProofSketch DSL in the paper, so this mapping is an inference.
technique: deterministic obligation extraction
Use this to turn high-level intent into finite, checkable goals. In Phase 2 (Section IV-B), a trusted kernel parses S and deterministically emits O = {(Î_i âą Ï_i)} according only to node tags and typed fields. A split node emits obligations under Î âȘ {c} and Î âȘ {ÂŹc}. A rewrite node emits obligations justifying the equality and the rewrite at the chosen term position. Each obligation carries provenance: source node id, local context, and required theory fragment (Section III-A).
Inference: A Verus version would lower each sketch node to one or more proof fns or assertion obligations, preserving source-node identifiers in generated names. Branch assumptions become branch-local if contexts; rewrite obligations become lemmas or assert ... by { ... }. The paper does not specify this translation.
technique: certificate-gated discharge and trust boundary
Use this when external automation is useful but cannot be trusted directly. Phase 3 (Section IV-C) discharges each obligation either by kernel-native propositional/equality/explicit-instantiation rules or by an external solver. For the latter, translate (Î_i, Ï_i), require a proof certificate, validate it with a trusted checker, then record the result as a derived kernel step. A failed certificate marks the obligation failed. The paper states: âa solver call has to provide a certificate which gets verified by a small trusted checker and, thus, maintains a minimal trusted computing base.â
The stated trusted computing base contains â(i) the kernel, (ii) the certificate checker, and (iii) proof object storage/replay.â Retrieval, the LLM, and solvers are outside it. The translation layer is a remaining risk: the discussion says it âshould be minimized and tested heavily because it is a common source of subtle unsoundness.â
Inference: In Verus, SMT is already part of verification, but an agent-generated auxiliary solver result should be accepted only through Verusâs normal verifier and any separately checked proof artifact. The Verus trust boundary must include the translation from generated Rust/specifications to solver queries; this is an inference from the paperâs boundary argument.
technique: localized repair with incremental caching
Use this when a proof almost works and whole-proof regeneration is expensive. Phase 4 (Section IV-D) is:
- On failure, return a record containing node id, cause,
Î_i, andÏ_i. - Classify the cause as missing lemma, failed instantiation, invalid rewrite, or unsatisfied precondition.
- Prompt the LLM to edit only the failed node and its direct subgoals, yielding
S'. - Hash each node by goal, method, inputs, and hints; reuse cached proofs for unchanged nodes.
- Re-check incrementally. Stop when all obligations pass and emit a replayable proof object, or reject after at most
Rrepair iterations.
The reliability analysis records the first failing node and mean repair repetitions, but the paper provides no numeric means in the text or figuresâ captions. It warns that overly abstract sketches create huge obligations and solver calls, while overly detailed sketches approach tactic scripts. The recommended compromise is an explicit explanation of why each step should succeed plus certified lemmas.
Inference: In Verus, retain verifier diagnostics keyed to generated proof-node identity and regenerate only the affected proof function or assertion block. Verusâs diagnostics and dependency behavior may differ, so this is a design inference, not a reported result.
evidence, limits, and VL implications
Table Iâs exact comparison is: ReProver 26.64%, 51.20%, 13.98%; DeepSeek-Prover 50.00% on miniF2F and no entries in the other columns; DeepSeek-Prover-V2 88.93% and 37.10%; ProofSketcher 92.21%, 58.25%, and 44.62%, respectively. These are kernel-accepted pass rates on the named test sets, not percentages of all generated drafts, and denominators are not printed. The paper reports no ablation isolating typed sketches, certificates, node caching, or localized repair, so their individual effects are unproven.
The paperâs accepted artifact is a replayable checked proof; the LLMâs suggestions are not evidence. Trusted components include the kernel, certificate checker, proof-object replay, and semantic-preserving obligation translation. Assumptions include suitable certificates for solver fragments, adequate library retrieval, and a sketch granularity that keeps obligations tractable. Failure modes include missing library lemmas, side conditions, oversized certificates, and domain mismatch across miniF2F, LeanDojo, and ProofNet.
Inference: The threat to VL is concentrated in generated specifications and translation glue: localized repair can reduce wasted agent work, but only Verus acceptance establishes Rust behavior. VL should not redo the paperâs generic pattern of typed intermediate proof plans, obligation extraction, certificate gating, and node-level caching; it should test whether those ideas preserve Verus contracts and measure their cost on actual Rust repositories.
techniques for the catalog
- typed proof sketch: have an LLM emit tagged, typed nodes and holes instead of an unchecked full script
- obligation extraction: deterministically expand each node into sequent-shaped goals with provenance
- certificate-gated automation: accept external solver results only after trusted certificate checking
- localized incremental repair: edit the first failing node and reuse cached proofs for unchanged nodes
Checked 2026-10-15 against the paper by a Codex agent for proofsketcher_20261014.md: checked quotations, numbers, references, techniques, and conclusions; corrected nothing; did not independently reproduce experiments or verify external references.
Last edited: