 
Summary: Chapter 3
Specifications
An Introduction
to Separation Logic
c
#2007 John C. Reynolds
February 7, 2007
From assertions, we move on to specifications, which describe the behavior
of commands. In this chapter, we will define the syntax and meaning of spec
ifications, give and illustrate inference rules for proving valid specifications,
and define a compact form of proof called an ``annotated specification''.
Since separation logic has been built upon it, we will review the basics of
Hoare logic. Further descriptions of this logic, including many examples of
proofs, have been given by the author [33, Chapters 1 and 2], [37, Chapters
3 and 4]. A more theoretical view appears in [38, Chapter 8].
The original papers by Hoare [3, 4], as well as earlier work by Naur [39]
and Floyd [40], are still well worth reading.
3.1 Hoare Triples
For most of this book, the only kind of specification will be the Hoare triple,
which consists of two assertions surrounding a command. More precisely,
