## 15-818A3 Introduction to Separation Logic
(6 units)
Spring 2011

### John C. Reynolds

First Half of Spring Semester 2011
University Units: 6 (minicourse)

Gates-Hillman Center 4211

Mondays, Wednesdays, and Fridays 12:30 pm-1:20 pm

### Course Description

Separation logic, first developed by O'Hearn and Reynolds,
is an extension of Hoare logic originally intended for reasoning about
programs that use shared mutable data structures. It is based on the
concept of separating conjunction, which permits the concise expression
of aliasing constraints.
More generally, the logic provides a "frame rule", which enables local
reasoning that is the key to the scalability of proofs. Examples of
nontrivial proofs include the Schorr-Waite marking algorithm and the
Cheney relocating garbage collector.

Recently, by generalizing the concept of storage access to ownership and
permissions, the logic has been extended to encompass information hiding,
shared-variable concurrency, and numerical permissions.

We will survey the current development of separation logic, including,
as time permits, extensions to unrestricted address arithmetic, dynamically
allocated arrays, recursive procedures, shared-variable concurrency, and
read-only sharing.

PREREQUISITES: Some knowledge of predicate logic and Hoare logic.

TEXTS: Papers and notes to be distributed in class.

METHOD OF EVALUATION: Grading will be based on homework.

For an overview of separation logic, see the first chapter and bibliography
of the course notes below.

### NOTICES

Late homework will not be accepted. However, the lowest homework grade for
each student will be disregarded in computing their average.
The class times and room are now definite.

Exercises 2.1 and 2.2 are due on January 26.

Exercises 3.1 and 3.3 are due on February 9.

Exercises 4.3, 4.4, and 4.5 are due on February 21

Exercise 5.1 is due on February 28

### Course Notes (in PDF)

1.
An Overview,
revised March 2,
(slides)

2.
Assertions,
revised February 3,
(slides)

3.
Specifications,
revised February 3,
(slides)

4.
Lists and List Segments,
revised February 17,
(slides)

5.
Trees and Dags,
revised February 18,
(slides)

6.
Iterated Separating Conjunction,
February 16,
(slides)

B.
Bibliography,
revised February 3

### Videos

LINK TO FOLLOWING MINICOURSE (15-818A4)
Last updated: August 7, 2011