Types, Maps and Separation Logic

Rafal Kolanski and Gerwin Klein


This paper presents a separation-logic framework for reasoning about low-level C code in the presence of virtual memory. We describe our abstract, generic Isabelle/HOL framework for reasoning about virtual memory in separation logic, and we instantiate this framework to a precise, formal model of ARMv6 page tables. The logic supports the usual separation logic rules, including the frame rule, and extends separation logic with additional basic predicates for mapping virtual to physical addresses. We build on earlier work to parse potentially type-unsafe, system-level C code directly into Isabelle/HOL and further instantiate the separation logic framework to C.

Online Copy

Available as [PDF]

Bibtex entry

    author =    {Rafal Kolanski and Gerwin Klein},
    title =     {Types, Maps and Separation Logic},
    booktitle = {Proc.\ 22nd TPHOLs},
    editor =    {Stefan Berghofer and Tobias Nipkow and Christian Urban and Makarius Wenzel},
    year =         {2009},
    address =      {Munich, Germany},
    pages =        {276--292},
    month =        Aug,
    series =       {Lecture Notes in Computer Science},
    volume =       {5674},
    publisher =    {Springer},
Gerwin Klein