Rust is a modern programming language that guarantees memory safety and the absence of data races with a strong type system. We present Rust yDL, a program logic for Rust, as a foundation for an auto-interactive, deductive verification tool for Rust. Rust yDL 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.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Rust yDL: A Program Logic for Rust

  • Daniel Drodt,
  • Reiner Hähnle

摘要

Rust is a modern programming language that guarantees memory safety and the absence of data races with a strong type system. We present Rust yDL, a program logic for Rust, as a foundation for an auto-interactive, deductive verification tool for Rust. Rust yDL 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.