atlas

Research map / Large language models / Agents, code and math

Automated Proof Generation for Rust Code via Self-Evolution

ICLR 2025 · Large language models › Agents, code and math · approach: Code generation benchmarks · 0 citations (OpenAlex)

Read the paperCheck your idea against 108,967 papers

AI-extracted summary. Written by AI from the paper's full text. Numbers and claims can be wrong or missing context, so check the paper before you cite or build on it.

Proposes SAFE, a self-evolving framework that synthesizes Verus specifications and proofs for Rust code, fine-tuning open LLMs (DeepSeekCoder-33B) on verifier-filtered proofs plus self-debugging data, reaching 52.52% on VerusBench versus GPT-4o's 14.39%.

Problem

Automated proof generation for Rust code in the Verus verifier is limited by severe scarcity of Verus programs, specifications, and proofs, so data-hungry fine-tuning approaches used for Lean and F* do not directly apply.

Approach

A self-evolving loop in which GPT-4o bootstraps data, then fine-tuned open models generate specifications (filtered by test-based correctness/completeness scores via Verus) and proofs (filtered by the Verus verifier); incorrect proofs paired with verifier errors and later correct proofs form self-debugging training data.

Key results

Measured effects reported in the paper

What was changedWhereMeasuredEffect
fine-tune DeepSeekCoder with SAFE self-evolution for direct proof generationDeepSeekCoder-33B-Instruct · VerusBenchAccuracy@1: 9.35 -> 43.17Helped
fine-tune DeepSeekCoder with SAFE self-evolution for direct proof generationDeepSeekCoder-33B-Instruct · CodeNet-TestAccuracy@1: 0.21 -> 43.83Helped
apply self-debugging to an initial proofSAFE DeepSeekCoder · VerusBenchAccuracy@2: 46.76 -> 49.64Helped
apply self-debugging to an initial proofSAFE DeepSeekCoder · CodeNet-TestAccuracy@2: 44.74 -> 48.43Helped
continue self-evolution from Round 1 to Round 2 (ablation)SAFE DeepSeekCoder · VerusBenchAccuracy@1: 32.37 -> 42.45Helped
continue self-evolution from Round 2 to Round 3 (ablation)SAFE DeepSeekCoder · VerusBenchAccuracy@10: 49.64 -> 53.96Helped
train using low-quality specifications only instead of selected high-quality specifications (ablation)SAFE DeepSeekCoder · VerusBenchAccuracy@1: 43.17 -> 17.27Hurt
mix low-quality specifications with high-quality specifications (ablation)SAFE DeepSeekCoder · VerusBenchAccuracy@1: 43.17 -> 30.22Hurt
use self-debugging instead of direct generation at Accuracy@2SAFE LLaMa3.1 · VerusBenchAccuracy@2: 48.20 -> 52.52Helped
use self-debugging instead of direct generation at Accuracy@2SAFE LLaMa3.1 · CodeNet-TestAccuracy@2: 45.34 -> 48.50Helped

Surprising findings

Limitations

Experimental setup

Datasets: MBPP training split CodeNet training Rust programs VerusBench SV-COMP-2021 translated tasks MBPP-DFY-153

Benchmarks: VerusBench CodeNet-Test

Metrics: Accuracy@1 Accuracy@2 Accuracy@10 Accuracy@100

Baselines: GPT-4o DeepSeekCoder-33B-Instruct Llama3.1-8B-Instruct

Builds on: expert iteration self-training Verus DeepSeekCoder

Closest papers by meaning

Writing a paper in this area? scime draft is a free LaTeX editor with AI included, real-time co-authors and a check of your references and venue rules before you submit. It also imports OpenAI Prism projects.

Open scime draft

Get the next scime Dispatch and a monthly field update

Free. We send a confirmation link first; every email has a one-click unsubscribe. Privacy