Compositional entailment checking for a fragment of separation logic

We present a decision procedure for checking entailment between separation logic formulas with inductive predicates specifying complex data structures corresponding to finite nesting of various kinds of singly linked lists: acyclic or cyclic, nested lists, skip lists, etc. The decision procedure is...

Full description

Saved in:
Bibliographic Details
Published inFormal methods in system design Vol. 51; no. 3; pp. 575 - 607
Main Authors Enea, Constantin, Lengál, Ondřej, Sighireanu, Mihaela, Vojnar, Tomáš
Format Journal Article
LanguageEnglish
Published New York Springer US 01.12.2017
Springer Nature B.V
Springer Verlag
Subjects
Online AccessGet full text
ISSN0925-9856
1572-8102
1572-8102
DOI10.1007/s10703-017-0289-4

Cover

More Information
Summary:We present a decision procedure for checking entailment between separation logic formulas with inductive predicates specifying complex data structures corresponding to finite nesting of various kinds of singly linked lists: acyclic or cyclic, nested lists, skip lists, etc. The decision procedure is compositional in the sense that it reduces the problem of checking entailment between two arbitrary formulas to the problem of checking entailment between a formula and an atom. Subsequently, in case the atom is a predicate, we reduce the entailment to testing membership of a tree derived from the formula in the language of a tree automaton derived from the predicate. The procedure is later also extended to doubly linked lists. We implemented this decision procedure and tested it successfully on verification conditions obtained from programs using both singly and doubly linked nested lists as well as skip lists.
Bibliography:ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 14
ISSN:0925-9856
1572-8102
1572-8102
DOI:10.1007/s10703-017-0289-4