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 well-known deductive verification tool KeY.
Fri 22 MayDisplayed time zone: Osaka, Sapporo, Tokyo change
10:40 - 12:20 | Session 7: Programming Languages & Program LogicResearch Track at 2F Conference Room Chair(s): Masaki Waga Kyoto University | ||
10:40 25mTalk | RustyDL: A Program Logic for Rust Research Track DOI | ||
11:05 25mTalk | Array-Carrying Symbolic Execution for Function Contract Generation Research Track Weijie Lu Shanghai Jiao Tong University, Jingyu Ke , Hongfei Fu Shanghai Jiao Tong University, Zhouyue Sun Shanghai Jiao Tong University, Yi Zhou Shanghai Jiao Tong University, Guoqiang Li Shanghai Jiao Tong University, Haokun Li Peking University | ||
11:30 25mTalk | A Framework for the Interoperable Specification and Verification of Encapsulated Data Structures Research Track Wolfram Pfeifer Karlsruhe Institute of Technology (KIT), Werner Dietl University of Waterloo, Mattias Ulbrich KIT | ||
11:55 25mTalk | Verifying Sampling Algorithms via Distributional Invariants Research Track Kevin Batz Cornell University, Joost-Pieter Katoen RWTH Aachen University, Tobias Winkler RWTH Aachen University, Daniel Zilken RWTH Aachen University File Attached | ||