Modelling storage and resources: an introduction to separation logic
modelled by graphs, and correctness properties are validated on the
graphs. The correctness proofs are often complicated because the graph's
nodes are _shared_ by the graph's edges.
Separation logic, developed by O'Hearn, Reynolds, and Yang,
is a simple extension of Hoare logic for writing compositional
correctness proofs for such graphs.
In this introductory presentation, we review Hoare logic,
show the difficulties that arise when there is sharing of resources,
and show how separation logic removes (some of) the difficulties. We
apply separation logic to example programs that manipulate storage heaps
and shared resources.