Separation logic and abstraction

Matthew Parkinson, Gavin Bierman
2005 SIGPLAN notices  
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/1047659.1040326 fatcat:kmupliqqnfdorgtndgywrkhgba