1. RustHorn: CHC-based Verification for Rust Programs
- Author
-
Naoki Kobayashi, Yusuke Matsushita, and Takeshi Tsukada
- Subjects
Soundness ,Correctness ,Horn clause ,Computer science ,C dynamic memory allocation ,Programming language ,020207 software engineering ,02 engineering and technology ,Permission ,computer.software_genre ,Article ,Reduction (complexity) ,Completeness (logic) ,Pointer (computer programming) ,Scalability ,0202 electrical engineering, electronic engineering, information engineering ,020201 artificial intelligence & image processing ,computer ,Software ,Rust (programming language) ,computer.programming_language - Abstract
Reduction to satisfiability of constrained Horn clauses (CHCs) is a widely studied approach to automated program verification. Current CHC-based methods, however, do not work very well for pointer-manipulating programs, especially those with dynamic memory allocation. This article presents a novel reduction of pointer-manipulating Rust programs into CHCs, which clears away pointers and memory states by leveraging Rust’s guarantees on permission. We formalize our reduction for a simplified core of Rust and prove its soundness and completeness. We have implemented a prototype verifier for a subset of Rust and confirmed the effectiveness of our method.
- Published
- 2021
- Full Text
- View/download PDF