A Separation Logic with Data: Small Models and Automation

  title={A Separation Logic with Data: Small Models and Automation},
  author={Jens Katelaan and Dejan Jovanovic and Georg Weissenbacher},
Separation logic has become a stock formalism for reasoning about programs with dynamic memory allocation. We introduce a variant of separation logic that supports lists and trees as well as inductive constraints on the data stored in these structures. We prove that this logic has the small model property, meaning that for each satisfiable formula there is a small domain in which the formula is satisfiable. As a consequence, the satisfiability and entailment problems for our fragment are in NP… 

Strong-Separation Logic

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.

Extending Propositional Separation Logic for Robustness Properties

We study an extension of propositional separation logic that can specify robustness properties, such as acyclicity and garbage freedom, for automatic verification of stateful programs with

Compositional Satisfiability Solving in Separation Logic

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.

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

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.

Beyond Symbolic Heaps: Deciding Separation Logic With Inductive Definitions

This paper investigates separation logics built on top of the inductive definitions from SLIDbtw, i.e., logics that feature the standard Boolean and separation-logic operators, and establishes the decidability of the satisfiability problem of a separation logic with conjunction, disjunction, separating conjunction and guarded forms of negation, magic wand, and septraction.

Automated reasoning and randomization in separation logic

A weakest precondition calculus à la Dijkstra is developed, which is a sound and conservative extension of both separation logic and McIver and Morgan’s weakest preexpectations which preserves virtually all properties of classical separation logic.

Complete Entailment Checking for Separation Logic with Inductive Definitions

This article fixes the incompleteness issues while retaining the double-exponential asymptotic complexity bound and generalizes the decision procedure to the fragment of positive formulas, in which conjunction, disjunction, guarded negation and septraction can be freely combined with the separating conjunction.

Concrete domains in logics

This short survey presents logical formalisms in which reasoning about concrete domains is embedded in formulae at the atomic level, including temporal logics, description logics with concrete domains as well as variant formalisms.



A Decidable Fragment in Separation Logic with Inductive Predicates and Arithmetic

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.

Tractable Reasoning in a Fragment of Separation Logic

The problem of entailment in separation logic formulae is shown to be solved in polynomial time and it is shown that every satisfiable formula is equivalent to one whose graph is in a particular normal form.

Separation Logic Modulo Theories

This paper presents an approach that integrates separation logic, a prominent logic for reasoning about linked data structures on the heap, and existing SMT solving technology, providing an efficient decision procedure for discharging verification conditions in program analysis and verification.

A Decidable Fragment of Separation Logic

A fragment of separation logic oriented to linked lists, and a complete proof system is provided for the fragment, the termination of which furnishes a second decision procedure for validity of entailments.

A Decision Procedure for Separation Logic in SMT

A complete decision procedure for the entire quantifier-free fragment of Separation Logic interpreted over heaplets with data elements ranging over a parametric multi-sorted (possibly infinite) domain is presented.

Automating Separation Logic with Trees and Data

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.

The Tree Width of Separation Logic with Recursive Definitions

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.

Effectively-Propositional Reasoning about Reachability in Linked Data Structures

This paper proposes a novel method of harnessing existing SAT solvers to verify reachability properties of programs that manipulate linked-list data structures. Such properties are essential for

Automating Separation Logic Using SMT

This paper presents a reduction of decidable SL fragments to a decidable first-order theory that fits well into the satisfiability modulo theories (SMT) framework and shows how to use this reduction to automate satisfiability, entailment, frame inference, and abduction problems for separation logic using SMT solvers.

Computability and Complexity Results for a Spatial Assertion Language for Data Structures

It is shown that validity, even for this restricted language, is not r.e., but that the quantifier-free sublanguage is decidable, and the complexity of model checking and validity for several fragments is considered.