Litcius/Paper detail

RustHornBelt: a semantic foundation for functional verification of Rust programs with unsafe code

Yusuke Matsushita, Xavier Denis, Jacques-Henri Jourdan, Derek Dreyer

202242 citationsDOIOpen Access PDF

Abstract

Rust is a systems programming language that offers both low-level 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 off-the-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).

Topics & Concepts

Computer scienceRust (programming language)Foundation (evidence)Code (set theory)Programming languageComputer securityHistorySet (abstract data type)ArchaeologyFormal Methods in VerificationLogic, programming, and type systemsSoftware Testing and Debugging Techniques
RustHornBelt: a semantic foundation for functional verification of Rust programs with unsafe code | Litcius