Summary: Chapter 1
to Separation Logic
#2007 John C. Reynolds
January 22, 2007
Separation logic is a novel system for reasoning about imperative programs.
It extends Hoare logic with enriched assertions that can describe the separa
tion of storage and other resources concisely. The original goal of the logic
was to facilitate reasoning about shared mutable data structures, i.e., struc
tures where updatable fields can be referenced from more than one point.
More recently, the logic has been extended to deal with sharedvariable con
currency and information hiding, and the notion of separation has proven
applicable to a wider conceptual range, where access to memory is replaced
by permission to exercise capabilities, or by knowledge of structure. In a
few years, the logic has become a significant research area, with a growing
literature produced by a variety of researchers.
1.1 An Example of the Problem
The use of shared mutable data structures is widespread in areas as diverse