SEAIFLSep 19, 2024

AutoVerus: Automated Proof Generation for Rust Code

Microsoft
arXiv:2409.13082v348 citationsh-index: 41
Originality Incremental advance
AI Analysis

This addresses the challenge of automating formal verification for Rust developers, representing a strong incremental advance in LLM-based software engineering tools.

The authors tackled the problem of automated proof generation for Rust code using LLMs, achieving over 90% correctness on a benchmark of 150 non-trivial proof tasks, with more than half completed in under 30 seconds or 3 LLM calls.

Generative AI has shown its values for many software engineering tasks. Still in its infancy, large language model (LLM)-based proof generation lags behind LLM-based code generation. In this paper, we present AutoVerus. AutoVerus uses LLMs to automatically generate correctness proof for Rust code. AutoVerus is designed to match the unique features of Verus, a verification tool that can prove the correctness of Rust code using proofs and specifications also written in Rust. AutoVerus consists of a network of LLM agents that are crafted and orchestrated to mimic human experts' three phases of proof construction: preliminary proof generation, proof refinement guided by generic tips, and proof debugging guided by verification errors. To thoroughly evaluate AutoVerus and help foster future research in this direction, we have built a benchmark suite of 150 non-trivial proof tasks, based on existing code-generation benchmarks and verification benchmarks. Our evaluation shows that AutoVerus can automatically generate correct proof for more than 90% of them, with more than half of them tackled in less than 30 seconds or 3 LLM calls.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes