RustHornBelt: a semantic foundation for functional verification of Rust programs with unsafe code
Yusuke Matsushita, Xavier Denis, Jacques-Henri Jourdan, Derek Dreyer
摘要
Rust is a systems programming language that offers both lowlevel memory operations and high-level safety guarantees, via a strong ownership type system that prohibits mutation of aliased state. In prior work, Matsushita et al. developed RustHorn, a promising technique for functional verification of Rust code: it leverages the strong invariants of Rust types to express the behavior of stateful Rust code with first-order logic (FOL) formulas, whose verification is amenable to offthe-shelf automated techniques. RustHorn's key idea is to use prophecies to describe the behavior of mutable borrows. However, the soundness of RustHorn was only established for a safe subset of Rust, and it has remained unclear how to extend it to support various safe APIs that encapsulate unsafe code (i.e., code where Rust's aliasing discipline is relaxed).
In this paper, we present RustHornBelt, the first machinechecked proof of soundness for RustHorn-style verification which supports giving FOL specs to safe APIs implemented with unsafe code. RustHornBelt employs the approach of semantic typing used in Jung et al.'s RustBelt framework, but it extends RustBelt's model to reason not only about safety but also functional correctness. The key challenge in RustHornBelt is to develop a semantic model of RustHornstyle prophecies, which we achieve via a new separationlogic mechanism we call parametric prophecies.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper23
- Verus: Verifying Rust Programs using Linear Ghost TypesAndrea Lattuada, Travis Hance, Chanhee Cho, Matthias Brun 等OOPSLA 2023 · 被引用 86 次
- Ownership Guided C to Rust TranslationHanliang Zhang, Cristina David, Yijun Yu, Meng WangCAV 2023 · 被引用 37 次
- RefinedRust: A Type System for High-Assurance Verification of Rust ProgramsLennard Gäher, Michael Sammler, Ralf Jung, Robbert Krebbers 等PLDI 2024 · 被引用 29 次
- Leveraging Rust Types for Program SynthesisJonás Fiala, Shachar Itzhaky, Peter Müller, Nadia Polikarpova 等PLDI 2023 · 被引用 17 次
- AutoVerus: Automated Proof Generation for Rust CodeChenyuan Yang, Xuheng Li, Md Rakib Hossain Misu, Jianan Yao 等OOPSLA 2025 · 被引用 11 次
它引用的顶会 Paper4
- The future is ours: prophecy variables in separation logicRalf Jung, Rodolphe Lepigre, Gaurav Parthasarathy, Marianna Rapoport 等POPL 2020 · 被引用 62 次
- Transfinite Iris: resolving an existential dilemma of step-indexed separation logicSimon Spies, Lennard Gäher, Daniel Gratzer, Joseph Tassarotti 等PLDI 2021 · 被引用 32 次
- Solving constrained Horn clauses modulo algebraic data types and recursive functionsHari Govind V. K., Sharon Shoham, Arie GurfinkelPOPL 2022 · 被引用 26 次
- Spy game: verifying a local generic solver in IrisPaulo Emílio de Vilhena, François Pottier, Jacques-Henri JourdanPOPL 2020 · 被引用 15 次
相关 Paper
- Thrust: A Prophecy-Based Refinement Type System for RustHiromi Ogawa, Taro Sekiyama, Hiroshi UnnoPLDI 2025
- VerusBelt: A Semantic Foundation for Verus's Proof-Oriented Extensions to the Rust Type SystemTravis Hance, Laila Elbeheiry, Yusuke Matsushita, Derek DreyerPLDI 2026
- RustBelt meets relaxed memoryHoang-Hai Dang, Jacques-Henri Jourdan, Jan-Oliver Kaiser, Derek DreyerPOPL 2020 · 被引用 68 次
- A Hybrid Approach to Semi-automated Rust VerificationSacha-Élie Ayoun, Xavier Denis, Petar Maksimovic, Philippa GardnerPLDI 2025 · 被引用 9 次
- Nola: Later-Free Ghost State for Verifying Termination in IrisYusuke Matsushita, Takeshi TsukadaPLDI 2025 · 被引用 2 次
