 
Summary: Chapter 5
Trees and Dags
An Introduction
to Separation Logic
c
#2007 John C. Reynolds
February 28, 2007
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 [43]. The set Sexps of
Sexpressions is the least set such that
# # Sexps i# # # 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
