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...
Saved in:
| Published in | Formal methods in system design Vol. 51; no. 3; pp. 575 - 607 |
|---|---|
| Main Authors | , , , |
| Format | Journal Article |
| Language | English |
| Published |
New York
Springer US
01.12.2017
Springer Nature B.V Springer Verlag |
| Subjects | |
| Online Access | Get full text |
| ISSN | 0925-9856 1572-8102 1572-8102 |
| DOI | 10.1007/s10703-017-0289-4 |
Cover
| 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 |