2022 · 42 citations · 20 references
ComputingComputer EngineeringComputer ScienceFormal MethodsProgramming LanguagesSystems ProgrammingDeductive VerificationType CheckingType SystemsFirst-order Logic ProgrammingFirst-order Logic ReasoningFunctional Safety VerificationInvariant GenerationInvariant VerificationInvariantsOwnership Type SystemsType Safety
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).
20
Ownership types for flexible alias protection
David G. Clarke, John Potter, James Noble · 1998 · 578 citations · Full text
Foundational proof-carrying code
Andrew W. Appel · 2002 · 308 citations