Verus: Verifying Rust Programs using Linear Ghost Types (extended version)
Not on the map. Why?
Abstract (arXiv)
The Rust programming language provides a powerful type system that checks linearity and borrowing, allowing code to safely manipulate memory without garbage collection and making Rust ideal for developing low-level, high-assurance systems. For such systems, formal verification can be useful to prove functional correctness properties beyond type safety. This paper presents Verus, an SMT-based tool for formally verifying Rust programs. With Verus, programmers express proofs and specifications using the Rust language, allowing proofs to take advantage of Rust's linear types and borrow checking. We show how this allows proofs to manipulate linearly typed permissions that let Rust code safely manipulate memory, pointers, and concurrent resources. Verus organizes proofs and specifications using a novel mode system that distinguishes specifications, which are not checked for linearity and borrowing, from executable code and proofs, which are checked for linearity and borrowing. We formalize Verus' linearity, borrowing, and modes in a small lambda calculus, for which we prove type safety and termination of specifications and proofs. We demonstrate Verus on a series of examples, including pointer-manipulating code (an xor-based doubly linked list), code with interior mutability, and concurrent code.
Key facts. Cited by 50 papers in the map (data through 7 Oct 2026). First posted on arXiv 9 Mar 2023.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 2; 2024: 9; 2025: 15; 2026: 24.
50 papers.
Sort:
By area:
- 2024Formal Mathematical Reasoning: A New Frontier in AIcited by 80
- 2023Clover: Closed-Loop Verifiable Code Generationcited by 62
- 2024AutoVerus: Automated Proof Generation for Rust Codecited by 46
- 2024AlphaVerus: Bootstrapping Formally Verified Code Generation through Self-Improving Translation and Treefinementcited by 33
- 2024Automated Proof Generation for Rust Code via Self-Evolutioncited by 31
- 2025VERINA: Benchmarking Verifiable Code Generationcited by 30
- 2025CLEVER: A Curated Benchmark for Formally Verified Code Generationcited by 27
- 2025KNighter: Transforming Static Analysis with LLM-Synthesized Checkerscited by 22
- 2024Towards Neural Synthesis for SMT-Assisted Proof-Oriented Programmingcited by 19
- 2024miniCodeProps: a Minimal Benchmark for Proving Code Propertiescited by 18
- 2024Evaluating LLM-driven User-Intent Formalization for Verification-Aware Languagescited by 16
- 2023Leveraging Large Language Models for Automated Proof Synthesis in Rustcited by 11
38 more
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Modelscited by 11
- 2025Propose, Solve, Verify: Self-Play Through Formal Verificationcited by 11
- 2025VeruSAGE: A Study of Agent-Based Verification for Rust Systemscited by 11
- 2026AlgoVeri: An Aligned Benchmark for Verified Code Generation on Classical Algorithmscited by 11
- 2024Laurel: Unblocking Automated Verification with Large Language Modelscited by 10
- 2026Goedel-Code-Prover: Hierarchical Proof Search for Open State-of-the-Art Code Verificationcited by 10
- 2025VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Veruscited by 8
- 2026Intent Formalization: A Grand Challenge for Reliable Coding in the Age of AI Agentscited by 8
- 2026S-Bus: Automatic Read-Set Reconstruction for Multi-Agent LLM State Coordinationcited by 8
- 2026VeriSoftBench: Repository-Scale Formal Verification Benchmarks for Leancited by 6
- 2026FM-Agent: Scaling Formal Methods to Large Systems via LLM-Based Hoare-Style Reasoningcited by 6
- 2024Evaluating the Ability of Large Language Models to Generate Verifiable Specifications in VeriFastcited by 5
- 2025Agentic Verification of Software Systemscited by 5
- 2026Verified Detection and Prevention of Concurrency Anomalies in Multi-Agent Large Language Model Systemscited by 5
- 2025Towards Repository-Level Program Verification with Large Language Modelscited by 4
- 2026Neural Theorem Proving for Verification Conditions: A Real-World Benchmarkcited by 4
- 2026Token Budgets: An Empirical Catalog of 63 LLM-Agent Budget-Overrun Incidents, with an Affine-Typed Rust Mitigation as a Case Studycited by 4
- 2025RAG-Verus: Repository-Level Program Verification with LLMs using Retrieval Augmented Generationcited by 3
- 2025Can LLMs Enable Verification in Mainstream Programming?cited by 3
- 2025Inferring multiple helper Dafny assertions with LLMscited by 3
- 2025MINIF2F-DAFNY: LLM-Guided Mathematical Theorem Proving via Auto-Active Verificationcited by 2
- 2026Resume Means Resume: A Machine-Checked Conformance Contract for Checkpoint, Interrupt, and Resume Semantics in Workflow Persistence Layerscited by 2
- 2025Towards Automated Formal Verification of Backend Systems with LLMscited by 1
- 2026Can LLM Aid in Solving Constraints with Inductive Definitions?cited by 1
- 2026Formal Disco: Scalable Open-Ended Generation of Formally Verified Programscited by 1
- 2026P3: Joint Program-and-Proof Planning for Verified Code Generationcited by 1
- 2026Vero: Can AI Agents Build Formally Verified Software Repositories?cited by 1
- 2025BRIDGE: Building Representations In Domain Guided Program Synthesiscited by 0
- 2026ANCORA: Learning to Question via Manifold-Anchored Self-Play for Verifiable Reasoningcited by 0
- 2026VeriScale: Adversarial Test-Suite Scaling for Verifiable Code Generationcited by 0
- 2026An Empirical Study of LLM-Generated Specifications for VeriFastcited by 0
- 2026Diversifying to Verify: When Task-Equivalent Programs Differ in Verifiabilitycited by 0
- 2026An AI Approach to Verified Production Cryptographic Librariescited by 0
- 2026Fine-Tuning Qwen3-27B for C-to-Rust Code Translation: A Three-Stage Curriculum of Pretraining, Debugging-Aware SFT, and Task-Specific SFTcited by 0
- 2026Djinnlang: Higher-Level Programming by Unambiguous Specification with an LLM in the Compilercited by 0
- 2026COUNTERMEM: World-Model Verified Counter-Factual Memory for Language Agentscited by 0
- 2026Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verificationcited by 0
- 2026Self-Spec Verifiable Code Generationcited by 0
- 2026Self-Spec Verifiable Code Generation30 Sep 2026
- 2026Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verification28 Sep 2026
- 2026COUNTERMEM: World-Model Verified Counter-Factual Memory for Language Agents25 Sep 2026
- 2026Djinnlang: Higher-Level Programming by Unambiguous Specification with an LLM in the Compiler21 Sep 2026
- 2026Fine-Tuning Qwen3-27B for C-to-Rust Code Translation: A Three-Stage Curriculum of Pretraining, Debugging-Aware SFT, and Task-Specific SFT13 Aug 2026
- 2026Vero: Can AI Agents Build Formally Verified Software Repositories?13 Aug 2026
- 2026P3: Joint Program-and-Proof Planning for Verified Code Generation10 Aug 2026
- 2026Resume Means Resume: A Machine-Checked Conformance Contract for Checkpoint, Interrupt, and Resume Semantics in Workflow Persistence Layers4 Aug 2026
- 2026An AI Approach to Verified Production Cryptographic Libraries2 Aug 2026
- 2026Diversifying to Verify: When Task-Equivalent Programs Differ in Verifiability10 Jul 2026
- 2026Formal Disco: Scalable Open-Ended Generation of Formally Verified Programs6 Jul 2026
- 2026An Empirical Study of LLM-Generated Specifications for VeriFast25 Jun 2026
38 more
- 2026Verified Detection and Prevention of Concurrency Anomalies in Multi-Agent Large Language Model Systems15 Jun 2026
- 2026Token Budgets: An Empirical Catalog of 63 LLM-Agent Budget-Overrun Incidents, with an Affine-Typed Rust Mitigation as a Case Study2 Jun 2026
- 2026VeriScale: Adversarial Test-Suite Scaling for Verifiable Code Generation21 May 2026
- 2026S-Bus: Automatic Read-Set Reconstruction for Multi-Agent LLM State Coordination16 May 2026
- 2026ANCORA: Learning to Question via Manifold-Anchored Self-Play for Verifiable Reasoning30 Apr 2026
- 2026FM-Agent: Scaling Formal Methods to Large Systems via LLM-Based Hoare-Style Reasoning13 Apr 2026
- 2026Goedel-Code-Prover: Hierarchical Proof Search for Open State-of-the-Art Code Verification18 Mar 2026
- 2026Intent Formalization: A Grand Challenge for Reliable Coding in the Age of AI Agents17 Mar 2026
- 2026Can LLM Aid in Solving Constraints with Inductive Definitions?4 Mar 2026
- 2026VeriSoftBench: Repository-Scale Formal Verification Benchmarks for Lean20 Feb 2026
- 2026AlgoVeri: An Aligned Benchmark for Verified Code Generation on Classical Algorithms10 Feb 2026
- 2026Neural Theorem Proving for Verification Conditions: A Real-World Benchmark26 Jan 2026
- 2025VeruSAGE: A Study of Agent-Based Verification for Rust Systems20 Dec 2025
- 2025Propose, Solve, Verify: Self-Play Through Formal Verification20 Dec 2025
- 2025MINIF2F-DAFNY: LLM-Guided Mathematical Theorem Proving via Auto-Active Verification11 Dec 2025
- 2025BRIDGE: Building Representations In Domain Guided Program Synthesis26 Nov 2025
- 2025Agentic Verification of Software Systems21 Nov 2025
- 2025Inferring multiple helper Dafny assertions with LLMs31 Oct 2025
- 2025VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Verus28 Oct 2025
- 2025Towards Repository-Level Program Verification with Large Language Models31 Aug 2025
- 2025VERINA: Benchmarking Verifiable Code Generation29 May 2025
- 2025CLEVER: A Curated Benchmark for Formally Verified Code Generation20 May 2025
- 2025Towards Automated Formal Verification of Backend Systems with LLMs13 Apr 2025
- 2025Can LLMs Enable Verification in Mainstream Programming?18 Mar 2025
- 2025KNighter: Transforming Static Analysis with LLM-Synthesized Checkers12 Mar 2025
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Models26 Feb 2025
- 2025RAG-Verus: Repository-Level Program Verification with LLMs using Retrieval Augmented Generation7 Feb 2025
- 2024Formal Mathematical Reasoning: A New Frontier in AI20 Dec 2024
- 2024AlphaVerus: Bootstrapping Formally Verified Code Generation through Self-Improving Translation and Treefinement9 Dec 2024
- 2024Evaluating the Ability of Large Language Models to Generate Verifiable Specifications in VeriFast4 Nov 2024
- 2024Automated Proof Generation for Rust Code via Self-Evolution21 Oct 2024
- 2024AutoVerus: Automated Proof Generation for Rust Code19 Sep 2024
- 2024miniCodeProps: a Minimal Benchmark for Proving Code Properties16 Jun 2024
- 2024Evaluating LLM-driven User-Intent Formalization for Verification-Aware Languages14 Jun 2024
- 2024Laurel: Unblocking Automated Verification with Large Language Models27 May 2024
- 2024Towards Neural Synthesis for SMT-Assisted Proof-Oriented Programming3 May 2024
- 2023Leveraging Large Language Models for Automated Proof Synthesis in Rust7 Nov 2023
- 2023Clover: Closed-Loop Verifiable Code Generation26 Oct 2023
- 2025VeruSAGE: A Study of Agent-Based Verification for Rust Systemscited by 11
- 2026Intent Formalization: A Grand Challenge for Reliable Coding in the Age of AI Agentscited by 8
- 2026S-Bus: Automatic Read-Set Reconstruction for Multi-Agent LLM State Coordinationcited by 8
- 2025Agentic Verification of Software Systemscited by 5
- 2026Verified Detection and Prevention of Concurrency Anomalies in Multi-Agent Large Language Model Systemscited by 5
- 2026Token Budgets: An Empirical Catalog of 63 LLM-Agent Budget-Overrun Incidents, with an Affine-Typed Rust Mitigation as a Case Studycited by 4
- 2026Verified Detection and Prevention of Concurrency Anomalies in Multi-Agent Large Language Model Systems15 Jun 2026
- 2026Token Budgets: An Empirical Catalog of 63 LLM-Agent Budget-Overrun Incidents, with an Affine-Typed Rust Mitigation as a Case Study2 Jun 2026
- 2026S-Bus: Automatic Read-Set Reconstruction for Multi-Agent LLM State Coordination16 May 2026
- 2026Intent Formalization: A Grand Challenge for Reliable Coding in the Age of AI Agents17 Mar 2026
- 2025VeruSAGE: A Study of Agent-Based Verification for Rust Systems20 Dec 2025
- 2025Agentic Verification of Software Systems21 Nov 2025
- 2023Clover: Closed-Loop Verifiable Code Generationcited by 62
- 2024AutoVerus: Automated Proof Generation for Rust Codecited by 46
- 2024Automated Proof Generation for Rust Code via Self-Evolutioncited by 31
- 2025VERINA: Benchmarking Verifiable Code Generationcited by 30
- 2025CLEVER: A Curated Benchmark for Formally Verified Code Generationcited by 27
- 2025KNighter: Transforming Static Analysis with LLM-Synthesized Checkerscited by 22
- 2024Towards Neural Synthesis for SMT-Assisted Proof-Oriented Programmingcited by 19
- 2024miniCodeProps: a Minimal Benchmark for Proving Code Propertiescited by 18
- 2024Evaluating LLM-driven User-Intent Formalization for Verification-Aware Languagescited by 16
- 2023Leveraging Large Language Models for Automated Proof Synthesis in Rustcited by 11
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Modelscited by 11
- 2026AlgoVeri: An Aligned Benchmark for Verified Code Generation on Classical Algorithmscited by 11
12 most cited of 37 All 37 (JSON)
- 2026Self-Spec Verifiable Code Generation30 Sep 2026
- 2026Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verification28 Sep 2026
- 2026Djinnlang: Higher-Level Programming by Unambiguous Specification with an LLM in the Compiler21 Sep 2026
- 2026Fine-Tuning Qwen3-27B for C-to-Rust Code Translation: A Three-Stage Curriculum of Pretraining, Debugging-Aware SFT, and Task-Specific SFT13 Aug 2026
- 2026Vero: Can AI Agents Build Formally Verified Software Repositories?13 Aug 2026
- 2026P3: Joint Program-and-Proof Planning for Verified Code Generation10 Aug 2026
- 2026Resume Means Resume: A Machine-Checked Conformance Contract for Checkpoint, Interrupt, and Resume Semantics in Workflow Persistence Layers4 Aug 2026
- 2026An AI Approach to Verified Production Cryptographic Libraries2 Aug 2026
- 2026Diversifying to Verify: When Task-Equivalent Programs Differ in Verifiability10 Jul 2026
- 2026Formal Disco: Scalable Open-Ended Generation of Formally Verified Programs6 Jul 2026
- 2026An Empirical Study of LLM-Generated Specifications for VeriFast25 Jun 2026
- 2026VeriScale: Adversarial Test-Suite Scaling for Verifiable Code Generation21 May 2026
12 newest of 37 All 37 (JSON)