pith. sign in

arxiv: 1511.07267 · v3 · pith:NQWW6OS3new · submitted 2015-11-23 · 💻 cs.PL

Automatic Reasoning on Recursive Data-Structures with Sharing

classification 💻 cs.PL
keywords dataemphprogramsreasoningautomaticrecursivespecificationstructure
0
0 comments X
read the original abstract

We consider the problem of automatically verifying programs which manipulate arbitrary data structures. Our specification language is expressive, contains a notion of \emph{separation}, and thus enables a precise specification of \emph{frames}. The main contribution then is a program verification method which combines strongest postcondition reasoning in the form symbolic execution, unfolding recursive definitions of the data structure in question, and a new frame rule to achieve \emph{local reasoning} so that proofs can be compositional. Finally, we present an implementation of our verifier, and demonstrate automation on a number of representative programs. In particular, we present the first automatic proof of a classic graph marking algorithm, paving the way for dealing with a class of programs which traverse a complex data structure.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.