 
Summary: Chapter 6
Iterated Separating
Conjunction
An Introduction
to Separation Logic
c
#2007 John C. Reynolds
February 28, 2007
In this chapter, we introduce an iterative version of the separating con
junction that is useful in describing arrays, as well as certain properties of
list structures.
6.1 A New Form of Assertion
We extend the language of assertions with an binding operator # , which is
used to construct an assertion of the form
# e #
v=e p,
where the occurrence of v in the subscript is a binder whose scope is p.
Roughly speaking, this assertion describes the separating conjunction
(p/v # e) # (p/v # e + 1) # · · · # (p/v # e # ).
More precisely, for a state s, h, let m = [[e]] exp s and n = [[e # ]] exp s be the
