Trustworthy Systems

Large-scale formal verification in practice: A process perspective


June Andronick, Ross Jeffery, Gerwin Klein, Rafal Kolanski, Mark Staples, Jason Zhang and Liming Zhu




The L4.verified project was a rare success in large-scale, formal verification: it provided a formal, machine-checked, code-level proof of the full functional correctness of the seL4 microkernel. In this paper we report on the development process and management issues of this project, highlighting key success factors. We formulate a detailed descriptive model of its middle-out development process, and analyze the evolution and dependencies of code and proof artifacts. We compare our key findings on verification and re-verification with insights from other verification efforts in the literature. Our analysis of the project is based on complete access to project logs, meeting notes, and version control data over its entire history, including its long-term, ongoing maintenance phase. The aim of this work is to aid understanding of how to successfully run large-scale formal software verification projects.

BibTeX Entry

    address          = {Zurich, Switzerland},
    author           = {Andronick, June and Jeffery, Ross and Klein, Gerwin and Kolanski, Rafal and Staples, Mark and Zhang,
                        He (Jason) and Zhu, Liming},
    booktitle        = {International Conference on Software Engineering},
    keywords         = {program verification, microkernel, sel4, software process, formal methods},
    month            = jun,
    pages            = {1002--1011},
    paperurl         = {},
    publisher        = {ACM},
    title            = {Large-Scale Formal Verification in Practice: A Process Perspective},
    year             = {2012}