BI as an assertion language for mutable data structures

  title={BI as an assertion language for mutable data structures},
  author={Samin S. Ishtiaq and Peter W. O'Hearn},
  booktitle={ACM-SIGACT Symposium on Principles of Programming Languages},
Reynolds has developed a logic for reasoning about mutable data structures in which the pre- and postconditions are written in an intuitionistic logic enriched with a spatial form of conjunction. We investigate the approach from the point of view of the logic BI of bunched implications of O'Hearnand Pym. We begin by giving a model in which the law of the excluded middleholds, thus showing that the approach is compatible with classical logic. The relationship between the intuitionistic and… 

Resource semantics: logic as a modelling technology

  • D. Pym
  • Computer Science, Philosophy
  • 2019
The state of work in bunched logics is surveyed in such a way as to organize the ideas into a coherent (semantic) picture with a strong interpretation of BI's semantics in terms of resources, and an approach to distributed systems modelling based on resource semantics is explained.

On Logics of Aliasing

The two logics presented in this paper can be seen as extreme values in a framework which attempts to reconcile the naturally oposite goals of expressiveness and decidability.

Semantic and Logical Properties of Stateful Programming

This thesis presents and studies a number of problems that arise when reasoning about imperative languages with pointers, with special emphasis on program logic in the style of Hoare, and proposes two approaches, simpler than previous ones, for proving type safety.

Tutorial on Separation Logic (Invited Tutorial)

This tutorial covers the basics of separating conjunction logic, and describes how that is, and where rough edges lie (programs whose proofs are still more complex than the authors would like).

Resource Tableaux (extended abstract)

A theory of semantic tableaux for BI is developed, providing an elegant basis for efficient theorem proving tools for BI, and a new semantics is proposed which generalizes the semantics of BI's pointer logic and for which BI is complete.

A logic of reachable patterns in linked data-structures

A new decidable logic for expressing and checking invariants of programs that manipulate dynamically-allocated objects via pointers and destructive pointer updates is defined, which provides a way to naturally specify postconditions that relate the fields on the entry of a procedure to the field on the exit of a Procedure.

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.

Pomsets with Boxes: Protection, Separation, and Locality in Concurrent Kleene Algebra

The standard model of CKA is extended, namely pomsets, with a new feature, called boxes, which can specify that part of the system is protected from outside interference, and a logic is provided, 'pomset logic', that is an assertion language for specifying such properties, and which is interpreted on pomset with boxes.

The semantics of BI and resource tableaux

A theory of semantic tableaux for BI is developed, providing an elegant basis for efficient theorem proving tools for BI, and two new strong results for propositional BI are proved: its decidability and the finite model property with respect to topological semantics.



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.

On the Frame Problem in Procedure Specifications

A recent proposal for a solution to the frame problem in artificial intelligence-the notion of explanation closure axioms-is adapted to provide an approach whereby one can state such conditions succinctly and modularly, with the added advantage of having the specifier be reminded of things that she may have omitted saying in procedure specifications.

A Trace Model for Pointers and Objects

A mathematical model and language for the formulation of assertions about objects and pointers are introduced, and a graphical calculus may help in reasoning about program correctness, which deals with both garbage-collected heaps and the other kind.

A Variable Typed Logic of Effects

A variable typed logic of effects inspired by the variable type systems of Feferman for purely functional languages, which allows for the construction of inductively defined sets and derivation of the corresponding induction principles.

Automatic verification of pointer programs using monadic second-order logic

A technique for automatic verification of pointer programs based on a decision procedure for the monadic second-order logic on finite strings that can be used to verify extensive properties of smaller pointer programs and could be particularly useful in a teaching environment.

A linear logical framework

The linear type theory LLF is presented as the formal basis for a conservative extension of the LF logical framework and can be given an operational interpretation as a logic programming language under which the representations above can be used for type inference, evaluation and cut-elimination.

Proving Pointer Programs in Hoare Logic

The challenge is to approach the simplicity of Hoare logic’s treatment of variable assignment, where substitution affects only relevant assertion formula.

Soundness and Completeness of an Axiom System for Program Verification

  • S. Cook
  • Computer Science
    SIAM J. Comput.
  • 1978
The main new results are the completeness theorem, and a careful treatment of the procedure call rules for procedures with global variables in their declarations.

Proving assertions about programs that manipulate data structures

The intention is to provide a complete theoretical framework for describing arbitrary data structures and proving assertions about programs that manipulate them.

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.