Results 1  10
of
11
A decision procedure for satisfiability in separation logic with inductive predicates, in: LICS’14
, 2014
"... 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 verification — is decidable. Our decision procedure is based on the computation of a certain fixed point from ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
(Show Context)
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 verification — is decidable. Our decision procedure is based on the computation of a certain fixed point from the definition of an inductive predicate, called its “base”, that exactly characterises its satisfiability. A complexity analysis of our decision procedure shows that it runs, in the worst case, in exponential time. In fact, we show that the satisfiability problem for our inductive predicates is EXPTIMEcomplete, and becomes NPcomplete when the maximum arity over all predicates is bounded by a constant. Finally, we provide an implementation of our decision procedure, and analyse its performance both on a synthetically generated set of test formulas, and on a second test set harvested from the separation logic literature. For the large majority of these test cases, our tool reports times in the low milliseconds. Categories and Subject Descriptors F.3.1 [Logics and Mean
Cyclic abduction of inductively defined safety and termination preconditions
, 2013
"... Abstract. We introduce cyclic abduction: a new method for automatically inferring safety and termination preconditions of heapmanipulating while programs, expressed as inductive definitions in separation logic. Cyclic abduction essentially works by searching for a cyclic proof of the desired prope ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
(Show Context)
Abstract. We introduce cyclic abduction: a new method for automatically inferring safety and termination preconditions of heapmanipulating while programs, expressed as inductive definitions in separation logic. Cyclic abduction essentially works by searching for a cyclic proof of the desired property, abducing definitional clauses of the precondition as necessary in order to advance the proof search process. We provide an implementation, Caber, of our cyclic abduction method, based on a suite of heuristically guided tactics. It is often able to automatically infer preconditions describing lists, trees, cyclic and composite structures which, in other tools, previously had to be supplied by hand. 1
Expressive Completeness of Separation Logic With Two Variables and No Separating Conjunction ∗
"... We show that firstorder separation logic with one record field restricted to two variables and the separating implication (no separating conjunction) is as expressive as weak secondorder logic, substantially sharpening a previous result. Capturing weak secondorder logic with such a restricted form ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
(Show Context)
We show that firstorder separation logic with one record field restricted to two variables and the separating implication (no separating conjunction) is as expressive as weak secondorder logic, substantially sharpening a previous result. Capturing weak secondorder logic with such a restricted form of separation logic requires substantial updates to known proof techniques. We develop these, and as a byproduct identify the smallest fragment of separation logic known to be undecidable: firstorder separation logic with one record field, two variables, and no separating conjunction.
Matching logic: A logic for structural reasoning
, 2014
"... AbstractMatching logic is a firstorder logic (FOL) variant to reason about structure. Its sentences, called patterns, are constructed using variables, symbols, connectives and quantifiers, but no difference is made between function and predicate symbols. In models, a pattern evaluates into a powe ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
AbstractMatching logic is a firstorder logic (FOL) variant to reason about structure. Its sentences, called patterns, are constructed using variables, symbols, connectives and quantifiers, but no difference is made between function and predicate symbols. In models, a pattern evaluates into a powerset domain (the set of values that match it), in contrast to FOL where functions, predicates and connectives map into a domain. Matching logic generalizes several logical frameworks important for program analysis, such as: propositional logic, algebraic specification, FOL with equality, and separation logic. Patterns allow for specifying separation requirements at any level in any program configuration, not only in the heaps or stores, without any special logical constructs for that: the very nature of pattern matching is that if two structures are matched as part of a pattern, then they can only be spatially separated. Like FOL, matching logic can also be translated into pure predicate logic with equality, but it also admits its own sound and complete proof system.
Disproving Inductive Entailments in Separation Logic via Base Pair Approximation
"... Abstract. We give a procedure for establishing the invalidity of logical entailments in the symbolic heap fragment of separation logic with userdefined inductive predicates, as used in program verification. This disproof procedure attempts to infer the existence of a countermodel to an entailment ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We give a procedure for establishing the invalidity of logical entailments in the symbolic heap fragment of separation logic with userdefined inductive predicates, as used in program verification. This disproof procedure attempts to infer the existence of a countermodel to an entailment by comparing computable model summaries, a.k.a. bases (modified from earlier work), of its antecedent and consequent. Our method is sound and terminating, but necessarily incomplete. Experiments with the implementation of our disproof procedure indicate that it can correctly identify a substantial proportion of the invalid entailments that arise in practice, at reasonably low time cost. Accordingly, it can be used, e.g., to improve the output of theorem provers by returning “no ” answers in addition to “yes ” and “unknown ” answers to entailment questions, and to speed up proof search or automated theory exploration by filtering out invalid entailments. 1
On Automated Lemma Generation for Separation Logic with Inductive Definitions?
"... Abstract. Separation Logic with inductive definitions is a wellknown approach for deductive verification of programs that manipulate dynamic data structures. Deciding verification conditions in this context is usually based on userprovided lemmas relating the inductive definitions. We propose a n ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Separation Logic with inductive definitions is a wellknown approach for deductive verification of programs that manipulate dynamic data structures. Deciding verification conditions in this context is usually based on userprovided lemmas relating the inductive definitions. We propose a novel approach for generating these lemmas automatically which is based on simple syntactic criteria and deterministic strategies for applying them. Our approach focuses on iterative programs, although it can be applied to recursive programs as well, and specifications that describe not only the shape of the data structures, but also their content or their size. Empirically, we find that our approach is powerful enough to deal with sophisticated benchmarks, e.g., iterative procedures for searching, inserting, or deleting elements in sorted lists, binary search tress, redblack trees, and AVL trees, in a very efficient way. 1
act * AEC Model Checking for SymbolicHeap Separation Logic with Inductive Predicates
"... ns iste nt * Complete * W ell D ocumented*Easyto ..."
(Show Context)
Expressive Completeness of Separation Logic With Two Variables and
"... Separation logic is used as an assertion language for Hoarestyle proof systems about programs with pointers, and there is an ongoing quest for understanding its complexity and expressive power. Herein, we show that firstorder separation logic with one record field restricted to two variables and ..."
Abstract
 Add to MetaCart
Separation logic is used as an assertion language for Hoarestyle proof systems about programs with pointers, and there is an ongoing quest for understanding its complexity and expressive power. Herein, we show that firstorder separation logic with one record field restricted to two variables and the separating implication (no separating conjunction) is as expressive as weak secondorder logic, substantially sharpening a previous result. Capturing weak secondorder logic with such a restricted form of separation logic requires substantial updates to known proof techniques. We develop these, and as a byproduct identify the smallest fragment of separation logic known to be undecidable: firstorder separation logic with one record field, two variables, and no separating conjunction. Because we forbid ourselves the use of many syntactic resources, this underscores even further the power of separating implication on concrete heaps.
Separation Logics and Modalities: A Survey
 JOURNAL OF APPLIED NONCLASSICAL LOGICS
, 2015
"... Like modal logic, temporal logic, or description logic, separation logic has become a popular class of logical formalisms in computer science, conceived as assertion languages for Hoarestyle proof systems with the goal to perform automatic program analysis. In a broad sense, separation logic is oft ..."
Abstract
 Add to MetaCart
Like modal logic, temporal logic, or description logic, separation logic has become a popular class of logical formalisms in computer science, conceived as assertion languages for Hoarestyle proof systems with the goal to perform automatic program analysis. In a broad sense, separation logic is often understood as a programming language, an assertion language and a family of rules involving Hoare triples. In this survey, we present similarities between separation logic as an assertion language and modal and temporal logics. Moreover, we propose a selection of landmark results about decidability, complexity and expressive power.