Back to articles
Coding AI

EasyProver Takes Lean Theorem Proving Toward Real Code

3 min read

Introduction

Automated theorem proving is moving beyond isolated mathematical exercises. The paper “Scaling Lean Theorem Proving for Real-World Code Verification” presents EasyProver, a Lean-based proving system, together with Aegis, a pipeline for constructing verification tasks from actual program implementations. The goal is to address a growing evaluation problem: once established benchmarks approach saturation, how can researchers measure progress on software that contains realistic semantic details?

EasyProver does not rely on an additional training phase. Instead, it organizes an off-the-shelf frontier model into a coordinated proving architecture. Its design combines:

  • recursive agents that decompose and advance proof goals;
  • isolated contexts for separate search branches;
  • asynchronous search and parallel tactic probing;
  • an elastic elaboration service for Lean parsing and type-checking workloads.

The system proves 669 of 672 PutnamBench problems. It also completes all six IMO 2026 formalizations listed in the material. On NTP4VC, it resolves 597 of 600 verification conditions, while all 189 VERINA tasks receive either a proof or a refutation. These results suggest that scheduling and search orchestration can be as important as the underlying model when automated proving is scaled.

Aegis makes the benchmark harder

The authors argue that conventional formal benchmarks are becoming too close to saturation. Aegis therefore starts with competitive-programming problems, writes safe Rust solutions, translates those implementations into Lean through Aeneas, and generates candidate specifications. Each frozen statement is labeled by a kernel-checked proof or refutation.

The pipeline produces 2,045 differentially validated Rust-Lean program pairs and 11,533 candidate specifications. Unlike hand-written theorem collections, these tasks preserve implementation-level obligations. They include fixed-width arithmetic, explicit failure behavior, generated loops, casts, and the functional treatment of mutation. Such details are often where a seemingly simple high-level claim becomes difficult to verify.

On a stratified sample of 2,000 statements, EasyProver proves 1,054, or 52.7%, within a 30-minute budget per statement. That figure does not imply that real-world code verification is solved. Its value is that it offers a more discriminating test than saturated mathematics benchmarks. The same collection can also evaluate other provers or serve as a reward source for reinforcement learning.

Why it matters

The work broadens the definition of progress in automated proving. Accuracy remains important, but search architecture, specification generation, translation fidelity, and kernel-checked supervision become equally central. By linking Rust implementations to Lean representations, Aegis keeps program behavior in the verification loop instead of evaluating only an abstract theorem.

The remaining gap is substantial. A 52.7% success rate shows that realistic code still exposes difficult dependencies and specification challenges. Future systems will need to improve long-range reasoning, handle more complex program structure, and make refutations easier to inspect. The broader direction is clear: AI-generated code will increasingly be judged not only by whether it runs, but also by whether its fixed implementation can support machine-checkable guarantees.

Source: Hugging Face Daily Papers

Comments

Checking sign-in status...

Loading comments...

Related articles