Trustworthy Systems

Experience report: seL4 – formally verifying a high-performance microkernel

Authors

Gerwin Klein, Philip Derrin and Kevin Elphinstone

NICTA

UNSW

Abstract

We report on our experience using Haskell as an executable specification language in the formal verification of the seL4 microkernel. The verification connects an abstract operational specification in the theorem prover Isabelle/HOL to a C implementation of the microkernel. We describe how this project differs from other efforts, and examine the effect of using Haskell in a large-scale formal verification. The kernel comprises 8,700 lines of C code; the verification more than 150,000 lines of proof script.

BibTeX Entry

  @inproceedings{Klein_DE_09_2,
    address          = {Edinburgh, UK},
    author           = {Klein, Gerwin and Derrin, Philip and Elphinstone, Kevin},
    booktitle        = {International Conference on Functional Programming},
    editor           = {{Andrew Tolmach}},
    keywords         = {sel4, microkernel, isabelle, formal verification},
    month            = aug,
    pages            = {91--96},
    paperurl         = {https://trustworthy.systems/publications/nicta_full_text/1817.pdf},
    publisher        = {ACM},
    title            = {Experience Report: {seL4} -- Formally Verifying a High-Performance Microkernel},
    year             = {2009}
  }

Download