Search papers, labs, and topics across Lattice.
The paper introduces RustyDL, a program logic designed for deductive verification of Rust programs directly at the source code level. This approach avoids translation to intermediate languages, enabling human-in-the-loop (HIL) verification of complex functional properties. The authors address specific challenges in designing a program logic for Rust, and demonstrate a proof-of-concept implementation within the KeY deductive verification tool.
Verifying Rust code just got easier: RustyDL allows direct, source-level reasoning, paving the way for human-guided proofs of complex functional properties.
Rust is a modern programming language that guarantees memory safety and the absence of data races with a strong type system. We present RustyDL, a program logic for Rust, as a foundation for an auto-interactive, deductive verification tool for Rust. RustyDL reasons about Rust programs directly on the source code level, in contrast to other tools that are all based on translation to an intermediate language. A source-level program logic for Rust is crucial for a human-in-the-loop (HIL) style of verification that permits proving highly complex functional properties. We discuss specific Rust challenges in designing a program logic and calculus for HIL-style verification and propose a solution in each case. We provide a proof-of-concept of our ideas in the form of a prototype of a Rust instance of the deductive verification tool KeY.