Compositional entailment checking for a fragment of separation logic

Research output: Contribution to journalArticlepeer-review

Abstract

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.

Original languageEnglish
Pages (from-to)575-607
Number of pages33
JournalFormal Methods in System Design
Volume51
Issue number3
DOIs
Publication statusPublished - 1 Dec 2017
Externally publishedYes

Keywords

  • Decision procedure
  • Program analysis
  • Separation logic
  • Tree automata

Fingerprint

Dive into the research topics of 'Compositional entailment checking for a fragment of separation logic'. Together they form a unique fingerprint.

Cite this