Trees and Dags An Introduction 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 tree-like data. In general, such data are elements of (possibly many-sorted) 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 "S-expressions", which were the form of data used in early LISP [99]. The set S-exps of S-expressions is the least set such that S-exps iff Atoms or = (0 · 1) where 0, 1 S-exps. Here atoms are values that are not addresses, while (0 ·1) is the LISP nota- tion for an ordered pair. (Mathematically, S-expressions 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 S-expressions by Collections: Mathematics