 
Summary: Chapter 5
Trees and Dags
An Introduction
to Separation Logic
c 2009 John C. Reynolds
February 12, 2009
In this chapter, we consider various representations of abstract treelike
data. In general, such data are elements of (possibly manysorted) initial or
free algebras without laws. To illustrate the use of separation logic, however,
it is simplest to limit our discussion to a particular form of abstract data.
For this purpose, as discussed in Section 1.7, we will use "Sexpressions",
which were the form of data used in early LISP [99]. The set Sexps of
Sexpressions is the least set such that
Sexps iff Atoms
or = (0 · 1) where 0, 1 Sexps.
Here atoms are values that are not addresses, while (0 ·1) is the LISP nota
tion for an ordered pair. (Mathematically, Sexpressions are the initial lawless
algebra with an infinite number of constants and one binary operation.)
5.1 Trees
We use the word "tree" to describe a representation of Sexpressions by
