2020
DOI: 10.1007/978-3-030-44914-8_18
|View full text |Cite
|
Sign up to set email alerts
|

RustHorn: CHC-Based Verification for Rust Programs

Abstract: Reduction to the satisfiablility 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 heaps by leveraging ownership. We formalize the translation for a simplified core of Rust and prove its correctness. We have implemented a prototype verifier… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

1
9
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
5
2
1

Relationship

1
7

Authors

Journals

citations
Cited by 25 publications
(10 citation statements)
references
References 52 publications
1
9
0
Order By: Relevance
“…While we are mainly interested in solving CHCs encoding imperative programs, to show the robustness of our approach, we evaluate Racer on CHC benchmarks obtained from two sources. The first group, called Rust-bench, contains 87 CHCs encoding safety of imperative Rust programs from [Matsushita et al 2020]. The second group, called Leon-bench, contains 64 CHCs encoding safety of ADT manipulating functional programs [De Angelis et al 2020].…”
Section: Implementation and Evaluationmentioning
confidence: 99%
“…While we are mainly interested in solving CHCs encoding imperative programs, to show the robustness of our approach, we evaluate Racer on CHC benchmarks obtained from two sources. The first group, called Rust-bench, contains 87 CHCs encoding safety of imperative Rust programs from [Matsushita et al 2020]. The second group, called Leon-bench, contains 64 CHCs encoding safety of ADT manipulating functional programs [De Angelis et al 2020].…”
Section: Implementation and Evaluationmentioning
confidence: 99%
“…RustHorn [Matsushita et al 2020] uses the ownership information of Rust types to translate Rust code to constrained Horn clauses. Heapster supports a more general class of source programs at the cost of more user input, but uses the same idea of using ownership information to extract simpler representations of source programs.…”
Section: Related Workmentioning
confidence: 99%
“…Many authors have explored the use of linear type systems to reason in contexts with aliased mutable references [18,19,52], and in particular with the goal of supporting strong updates [1]. A closely related approach is RustHorn by Matsushita et al [40]. Much like ConSORT, RustHorn uses CHC and linear aliasing information for the sound and-unlike ConSORT-complete verification of programs with aliasing and mutability.…”
Section: Related Workmentioning
confidence: 99%