 
Summary: Chapter 4
Lists and List Segments
An Introduction
to Separation Logic
c
#2007 John C. Reynolds
February 23, 2007
In this chapter, we begin to explore data structures that represent ab
stract types of data. Our starting point will be various kinds of lists, which
represent sequences.
Sequences and their primitive operations are a su#ciently standard 
and straightforward  mathematical concept that we omit their definition.
We will use the following notations, where # and # are sequences:
. # for the empty sequence.
. [a] for the singleelement sequence containing a. (We will omit the
brackets when a is not a sequence.)
. #·# for the composition of # followed by #.
. # + for the reflection of #.
. ## for the length of #.
. # i for the ith component of #.
