Separation logic and abstraction

Matthew Parkinson, Gavin Bierman
2005 Proceedings of the 32nd ACM SIGPLAN-SIGACT sysposium on Principles of programming languages - POPL '05  
In this paper we address the problem of writing specifications for programs that use various forms of modularity, including procedures and Java-like classes. We build on the formalism of separation logic and introduce the new notion of an abstract predicate and, more generally, abstract predicate families. This provides a flexible mechanism for reasoning about the different forms of abstraction found in modern programming languages, such as abstract datatypes and objects. As well as
more » ... g the soundness of our proof system, we illustrate its utility with a series of examples.
doi:10.1145/1040305.1040326 dblp:conf/popl/ParkinsonB05 fatcat:5upqke663naixktykflnibpbuq