Aeneas: Rust Verification by Functional Translation
Not on the map. Why?
Abstract (arXiv)
We present Aeneas, a new verification toolchain for Rust programs based on a lightweight functional translation. We leverage Rust's rich region-based type system to eliminate memory reasoning for many Rust programs, as long as they do not rely on interior mutability or unsafe code. Doing so, we relieve the proof engineer of the burden of memory-based reasoning, allowing them to instead focus on functional properties of their code. Our first contribution is a new approach to borrows and controlled aliasing. We propose a pure, functional semantics for LLBC, a Low-Level Borrow Calculus that captures a large subset of Rust programs. Our semantics is value-based, meaning there is no notion of memory, addresses or pointer arithmetic. Our semantics is also ownership-centric, meaning that we enforce soundness of borrows via a semantic criterion based on loans rather than through a syntactic type-based lifetime discipline. We claim that our semantics captures the essence of the borrow mechanism rather than its current implementation in the Rust compiler. Our second contribution is a translation from LLBC to a pure lambda-calculus. This allows the user to reason about the original Rust program through the theorem prover of their choice. To deal with the well-known technical difficulty of terminating a borrow, we rely on a novel approach, in which we approximate the borrow graph in the presence of function calls. This in turn allows us to perform the translation using a new technical device called backward functions. We implement our toolchain in a mixture of Rust and OCaml. Our evaluation shows significant gains of verification productivity for the programmer. Rust goes to great lengths to enforce static control of aliasing; the proof engineer should not waste any time on memory reasoning when so much already comes "for free"!
Key facts. Cited by 7 papers in the map (data through 7 Oct 2026). First posted on arXiv 14 Jun 2022.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2024: 1; 2025: 2; 2026: 4.
7 papers.
- 2024AutoVerus: Automated Proof Generation for Rust Codecited by 46
- 2025VERINA: Benchmarking Verifiable Code Generationcited by 30
- 2025VeruSAGE: A Study of Agent-Based Verification for Rust Systemscited by 11
- 2026A Synthesis Method of Safe Rust Code Based on Pushdown Colored Petri Netscited by 0
- 2026Combining Mechanical and Agentic Specification Inference for Movecited by 0
- 2026Generative Compilation: On-the-Fly Compiler Feedback as AI Generates Codecited by 0
- 2026Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verificationcited by 0
- 2026Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verification28 Sep 2026
- 2026Generative Compilation: On-the-Fly Compiler Feedback as AI Generates Code15 Jul 2026
- 2026Combining Mechanical and Agentic Specification Inference for Move11 May 2026
- 2026A Synthesis Method of Safe Rust Code Based on Pushdown Colored Petri Nets2 Apr 2026
- 2025VeruSAGE: A Study of Agent-Based Verification for Rust Systems20 Dec 2025
- 2025VERINA: Benchmarking Verifiable Code Generation29 May 2025
- 2024AutoVerus: Automated Proof Generation for Rust Code19 Sep 2024