A Complete Decision Procedure for Linearly Compositional Separation Logic with Data Constraints

@inproceedings{Gu2016ACD,
  title={A Complete Decision Procedure for Linearly Compositional Separation Logic with Data Constraints},
  author={Xincai Gu and Taolue Chen and Zhilin Wu},
  booktitle={IJCAR},
  year={2016}
}
Separation logic is a widely adopted formalism to verify programs manipulating dynamic data structures. Entailment checking of separation logic constitutes a crucial step for the verification of such programs. In general this problem is undecidable, hence only incomplete decision procedures are provided in most state-of-the-art tools. In this paper, we define a linearly compositional fragment of separation logic with inductive definitions, where traditional shape properties for linear data… 

Satisfiability of Compositional Separation Logic with Tree Predicates and Data Constraints

TLDR
This paper shows that the satisfiability problem of CSLTP is decidable, and proposes compositional separation logic with tree predicates (CSLTP), where properties such as sortedness and height-balancedness of complex data structures can be fully specified.

Separation Logic with Linearly Compositional Inductive Predicates and Set Data Constraints

TLDR
A crucial step of the decision procedure is to compute the transitive closure of DBS-definable set relations, to capture which the satisfiability of RQSPA is shown to be decidable by harnessing advanced automata-theoretic techniques.

Compositional Satisfiability Solving in Separation Logic

TLDR
A novel decision procedure to the satisfiability problem in array separation logic combined with general inductive predicates and arithmetic is introduced and an expressive decidable fragment for the compositionality is identified.

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

Completeness of Cyclic Entailment Proofs in Separation Logic with Inductive Predicates and Arithmetic (Technical Report)

TLDR
This work considers a decision procedure that could deduce linear validity proofs (i.e., without back-tracking) for the quantifier-free entailment problem and presents a sound, complete and terminating cyclic proof system for the problem in separation logic combining with linearly inductive predicates and arithmetic properties.

A Decidable Fragment in Separation Logic with Inductive Predicates and Arithmetic

TLDR
This work considers the satisfiability problem for a fragment of separation logic including inductive predicates with shape and arithmetic properties and proposes a decision procedure based on a novel algorithm to infer a finite representation for each inductive predicate which precisely characterises its satisfiability.

Strong-Separation Logic

TLDR
It is argued that the resulting logic, strong-separation logic, can be used for symbolic execution and abductive reasoning just like “standard” separation logic, while remaining decidable even in the presence of both the magic wand and inductive predicates.

Biabduction (and Related Problems) in Array Separation Logic

TLDR
This work investigates array separation logic (ASL), a variant of symbolic-heap separation logic in which the data structures are either pointers or arrays, i.e., contiguous blocks of allocated memory, and shows satisfiability to be NP-complete and entailment to be decidable with high complexity.

Frame Inference for Inductive Entailment Proofs in Separation Logic

TLDR
This work presents an automatic frame inference approach for an expressive fragment of separation logic and shows how to strengthen the inferred frame through predicate normalization and arithmetic inference.

Bi-Abductive Inference for Shape and Ordering Properties

TLDR
This work presents a novel one-stage bi-abductive procedure for a combination of data structures and ordering values in the spirit of the Unfold-and-Match paradigm, and demonstrates that it is promising for an automated verification of heap-manipulating programs.

References

SHOWING 1-10 OF 24 REFERENCES

Automating Separation Logic with Trees and Data

TLDR
A fragment of classical first-order logic for local reasoning about tree-like data structures is presented and implemented and integrated into an SL-based verification tool, successfully used to verify functional correctness of tree-based data structure implementations.

Deciding Entailments in Inductive Separation Logic with Tree Automata

TLDR
This work reduces the entailment problem for a non-trivial subset of SL describing trees to the language inclusion of tree automata (TA), which provides tight complexity bounds for the problem and shows that entailment in this fragment is EXPTIME-complete.

Foundations for Decision Problems in Separation Logic with General Inductive Predicates

TLDR
It is shown that entailment is in general undecidable, and ExpTime-hard in a fragment recently shown to be decidable by Iosif et al, and entailment in the base language is \(\Pi_2^{\text{P})-complete, the upper bound even holds in the presence of list predicates.

Accurate Invariant Checking for Programs Manipulating Lists and Arrays with Infinite Data

TLDR
This work addresses the problem of checking the entailment between $\textsf{SLAD}$ formulas, which is crucial in performing pre-post condition reasoning, and proposes a sound and powerful procedure that is able to solve this problem for a large class of formulas, beyond the capabilities of existing techniques and tools.

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

Quantitative Separation Logic and Programs with Lists

TLDR
A model theoretic method, based on a parametric notion of shape graphs, is provided here a fully automated framework for the verification of quantitative properties expressed as pre- and post-conditions on programs working on lists and integer counters.

The Tree Width of Separation Logic with Recursive Definitions

TLDR
It is proved that any Separation Logic formula using rather general recursively defined predicates is decidable for satisfiability, and moreover, entailments between such formulae are decidability for validity.

A decision procedure for satisfiability in separation logic with inductive predicates

We show that the satisfiability problem for the "symbolic heap" fragment of separation logic with general inductively defined predicates --- which includes most fragments employed in program

On Automated Lemma Generation for Separation Logic with Inductive Definitions

TLDR
This work proposes a novel approach for generating lemmas automatically which is based on simple syntactic criteria and deterministic strategies for applying them for deductive verification of programs that manipulate dynamic data structures.

GRASShopper - Complete Heap Verification with Mixed Specifications

TLDR
GRASShopper, a tool for compositional verification of heap-manipulating programs against user-provided specifications, is presented with its decidable specification language, which supports mixing of assertions expressed in separation logic and first-order logic.