English

RustHorn: CHC-based Verification for Rust Programs (full version)

Programming Languages 2020-06-12 v2

Abstract

Reduction to the satisfiability problem for constrained Horn clauses (CHCs) is a widely studied approach to automated program verification. The current CHC-based methods for pointer-manipulating programs, however, are not very scalable. This paper proposes a novel translation of pointer-manipulating Rust programs into CHCs, which clears away pointers and memories by leveraging ownership. We formalize the translation for a simplified core of Rust and prove its correctness. We have implemented a prototype verifier for a subset of Rust and confirmed the effectiveness of our method.

Keywords

Cite

@article{arxiv.2002.09002,
  title  = {RustHorn: CHC-based Verification for Rust Programs (full version)},
  author = {Yusuke Matsushita and Takeshi Tsukada and Naoki Kobayashi},
  journal= {arXiv preprint arXiv:2002.09002},
  year   = {2020}
}

Comments

Full version of the same-titled paper in ESOP2020