A Simple Model of Separation Logic for Higher-Order Store

Separation logic is a Hoare-style logic for reasoning about pointer-manipulating programs. Its core ideas have recently been extended from low-level to richer, high-level languages. In this paper we develop a new semantics of the logic for a programming language where code can be stored (i.e., with higher-order store). The main improvement on previous work is the simplicity of the model. As a consequence, several restrictions imposed by the semantics are removed, leading to a considerably more natural assertion language with a powerful specification logic.

[1]  Hongseok Yang,et al.  Relational Parametricity and Separation Logic , 2008, Log. Methods Comput. Sci..

[2]  Rob Williams,et al.  Linux device drivers , 2006 .

[3]  Thomas Streicher,et al.  About Hoare Logics for Higher-Order Store , 2005, ICALP.

[4]  Nobuko Yoshida,et al.  An observationally complete program logic for imperative higher-order functions , 2005, 20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05).

[5]  Greg Kroah-Hartman,et al.  Linux Device Drivers, 3rd Edition , 2005 .

[6]  Jan Schwinghammer,et al.  Separation Logic for Higher-Order Store , 2006, CSL.

[7]  Lars Birkedal,et al.  Polymorphism and separation in hoare type theory , 2006, ICFP '06.

[8]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[9]  Lars Birkedal,et al.  Abstract Predicates and Mutable ADTs in Hoare Type Theory , 2007, ESOP.

[10]  Alex K. Simpson,et al.  Computational Adequacy in an Elementary Topos , 1998, CSL.

[11]  Andrew M. Pitts,et al.  Relational Properties of Domains , 1996, Inf. Comput..

[12]  Greg Kroah-Hartman,et al.  Drivers En Linux/ Linux Device Drivers , 2005 .

[13]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[14]  Zhong Shao,et al.  Certified self-modifying code , 2007, PLDI '07.

[15]  Peter W. O'Hearn,et al.  Separation and information hiding , 2004, POPL.

[16]  Lars Birkedal,et al.  BI-hyperdoctrines, higher-order separation logic, and abstraction , 2007, TOPL.

[17]  Hongseok Yang,et al.  Semantics of separation-logic typing and higher-order frame rules , 2005, 20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05).

[18]  Gavin M. Bierman,et al.  Separation logic, abstraction and inheritance , 2008, POPL '08.

[19]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[20]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[21]  Gavin M. Bierman,et al.  Separation logic and abstraction , 2005, POPL '05.

[22]  Ian Stark,et al.  Free-Algebra Models for the pi-Calculus , 2005, FoSSaCS.