Fictional separation logic

JB Jensen, L Birkedal�- …�and Systems: 21st European Symposium on�…, 2012 - Springer
Programming Languages and Systems: 21st European Symposium on Programming�…, 2012Springer
Separation logic formalizes the idea of local reasoning for heap-manipulating programs via
the frame rule and the separating conjunction P* Q, which describes states that can be split
into separate parts, with one satisfying P and the other satisfying Q. In standard separation
logic, separation means physical separation. In this paper, we introduce fictional separation
logic, which includes more general forms of fictional separating conjunctions P* Q, where*
does not require physical separation, but may also be used in situations where the memory�…
Abstract
Separation logic formalizes the idea of local reasoning for heap-manipulating programs via the frame rule and the separating conjunction P * Q, which describes states that can be split into separate parts, with one satisfying P and the other satisfying Q. In standard separation logic, separation means physical separation. In this paper, we introduce fictional separation logic, which includes more general forms of fictional separating conjunctions P * Q, where * does not require physical separation, but may also be used in situations where the memory resources described by P and Q overlap. We demonstrate, via a range of examples, how fictional separation logic can be used to reason locally and modularly about mutable abstract data types, possibly implemented using sophisticated sharing. Fictional separation logic is defined on top of standard separation logic, and both the meta-theory and the application of the logic is much simpler than earlier related approaches.
Springer