Automatic cyclic termination proofs for recursive procedures in separation logic

35Citations
Citations of this article
12Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We describe a formal verification framework and tool implementation, based upon cyclic proofs, for certifying the safe termination of imperative pointer programs with recursive procedures. Our assertions are symbolic heaps in separation logic with user defined inductive predicates; we employ explicit approximations of these predicates as our termination measures. This enables us to extend cyclic proof to programs with procedures by relating these measures across the preand postconditions of procedure calls. We provide an implementation of our formal proof system in the CYCLIST theorem proving framework, and evaluate its performance on a range of examples drawn from the literature on program termination. Our implementation extends the current state-of-the-art in cyclic proof-based program verification, enabling automatic termination proofs of a larger set of programs than previously possible.

Cite

CITATION STYLE

APA

Rowe, R. N. S., & Brotherston, J. (2017). Automatic cyclic termination proofs for recursive procedures in separation logic. In CPP 2017 - Proceedings of the 6th ACM SIGPLAN Conference on Certified Programs and Proofs, co-located with POPL 2017 (pp. 53–65). Association for Computing Machinery, Inc. https://doi.org/10.1145/3018610.3018623

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free