Specifying Concurrent Programs in Separation Logic: Morphisms and Simulations
In addition to pre- and postconditions, program specifications in recent separation logics for concurrency have employed an algebraic structure of resources - a form of state transition systems - to describe the state-based program invariants that must be preserved, and to record the permissible atomic changes to program state. In this paper we introduce a novel notion of resource morphism, i.e. structure-preserving function on resources, and show how to effectively integrate it into separation logic. We apply morphisms to abstract atomicity, where a program verified under one resource is adapted to operate under another resource, thus facilitating proof reuse.
READ FULL TEXT