Find out how ICT can support biomedical and clinical researchFind out more. Managing complexity by developing new tools and processes. Managing Complexity

Abstract

Title:

Types, bytes, and separation logic

Authors:

Harvey Tuch, Gerwin Klein and Michael Norrish

School of Computer Science and Engineering
University of NSW
Sydney 2052
Australia

NICTA
Sydney
Australia

NICTA
Canberra
Australia

Abstract:

We present a formal model of memory that both captures the low-level features of C's pointers and memory, and that forms the basis for an expressive implementation of separation logic. At the low level, we do not commit common oversimplifications, but correctly deal with C's model of programming language values and the heap. At the level of separation logic, we are still able to reason abstractly and efficiently. We implement this framework in the theorem prover Isabelle/HOL and demonstrate it on two case studies. We show that the divide between detailed and abstract does not impose undue verification overhead, and that simple programs remain easy to verify. We also show that the framework is applicable to real, security- and safety-critical code by formally verifying the memory allocator of the L4 microkernel.

BibTeX Entry

  @inproceedings{Tuch_KN_07,
    author           = {Harvey Tuch and Gerwin Klein and Michael Norrish},
    booktitle        = {Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
    title            = {Types, Bytes, and Separation Logic},
    month            = {Jan},
    editor           = {Martin Hofmann and Matthias Felleisen},
    year             = {2007},
    pages            = {97--108},
    address          = {Nice, France}
  }

Download paper: