• Corpus ID: 8313800

On Spatial Conjunction as Second-Order Logic

  title={On Spatial Conjunction as Second-Order Logic},
  author={Viktor Kuncak and Martin C. Rinard},
Spatial conjunction is a powerful construct for reasoning about dynamically al- located data structures, as well as concurrent, distribute d and mobile computation. While researchers have identified many uses of spatial conjunctio n, its precise expressive power compared to traditional logical constructs was not previously known. In this paper we establish the expressive power of spatial conjunction. We construct an embedding from first-order logic with spatial conjunction i nto second-order… 

Figures from this paper

On the almighty wand

Expressive Completeness of Separation Logic with Two Variables and No Separating Conjunction

It is shown that first-order separation logic with one record field restricted to two variables and the separating implication (no separating conjunction) is as expressive as weak second-order logic, substantially sharpening a previous result.

A Pointer Logic for Object Diagrams

A pointer logic that extends Separation Logic with a fixpoint operator and new compositions different from separating conjunction is introduced, proved to be largely satisfaction-decidable and shown to be a fragment of he logic.

A spatial equational logic for the applied π-calculus

The spatial equational logic AπL whose models are processes of the applied π-calculus is defined, which allows term manipulation and records communications as aliases in a frame, thus augmenting the predefined underlying equational theory.

Separation logics and modalities: a survey

This survey presents similarities between separation logic as an assertion language and modal and temporal logics and proposes a selection of landmark results about decidability, complexity and expressive power.

Cryptographic protocol logic: Satisfaction for (timed) Dolev-Yao cryptography

  • S. Kramer
  • Computer Science
    J. Log. Algebraic Methods Program.
  • 2008

Abstraction of Object Graphs in Program Verification

The technique of unique decomposition is found to be particularly useful in establishing laws for specialised decidable logics that support automated program verification of specific topologies of pointer structure.

Logical concepts in cryptography

A breadth-first exploration of logical concepts in cryptography and their linguistic abstraction and model-theoretic combination in a comprehensive logical system, called CPL (for Cryptographic Protocol Logic), and illustrates the expressiveness of this extended logic on tentative formalisation case studies of fundamental and applied concepts.

The Effects of Modalities in Separation Logics (Extended Abstract)

This work presents similarities with modal and temporal logics, and presents landmark results about decidability, complexity and expressive power of separation logic.

Model checking pointer safety in compiled programs

This thesis introduces a novel technique for the automated analysis of compiled programs, which is focused on, but not restricted to, pointer safety properties, and employs bounded symbolic execution, and uses an SMT solver as execution and verification engine.



On Role Logic

A translation of an imperative language into the decidable fragment RL 2, which allows compositional verification of programs that manipulate relational structures and shows how RL 2 encodes boolean shape anal.

BI as an assertion language for mutable data structures

A model in which the law of the excluded middleholds is given is given, thus showing that the approach is compatible with classical logic, and a local character enjoyed by specifications in the logic is described, which enables a class of frame axioms, which say what parts of the heap don't change, to be inferred automatically.

The Logic of Bunched Implications

A logic BI in which a multiplicative (or linear) and an additive (or intuitionistic) implication live side-by-side is introduced and computational interpretations, based on sharing, at both the propositional and predicate levels are discussed.

Local Reasoning about Programs that Alter Data Structures

An extension of Hoare's logic for reasoning about programs that alter data structures is described, based on a possible worlds model of the logic of bunched implications, and includes spatial conjunction and implication connectives alongside those of classical logic.

Intuitionistic reasoning about shared mutable data structure

This work extends Hoare's approach to proving the correctness of imperative programs, to deal with programs that perform destructive updates to data structures containing more than one pointer to the same location.

Compactly Representing First-Order Structures for Static Analysis

This paper describes and evaluates two novel structure representation techniques and shows that both the OBDD and functional implementations reduce space consumption in TVLA by a factor of 4 to 10 relative to the current TVLA state representation, without compromising analysis time.

Behavioral and Spatial Observations in a Logic for the pi-Calculus

It is shown that model-checking is decidable for a useful class of processes that includes the finite-control fragment of the π-calculus, and coinductive and equational characterizations of the equivalence induced on processes by the logic are given.

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.

Separation logic: a logic for shared mutable data structures

  • J. C. Reynolds
  • Computer Science
    Proceedings 17th Annual IEEE Symposium on Logic in Computer Science
  • 2002
An extension of Hoare logic that permits reasoning about low-level imperative programs that use shared mutable data structure is developed, including extensions that permit unrestricted address arithmetic, dynamically allocated arrays, and recursive procedures.