Large-scale formal verification in practice: A process perspective
Abstract
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
@inproceedings{Andronick-al:ICSE12,
author = {June Andronick and
D. Ross Jeffery and
Gerwin Klein and
Rafal Kolanski and
Mark Staples and
He Zhang and
Liming Zhu},
title = {Large-scale formal verification in practice: A process perspective},
booktitle = {ICSE},
pages = {1002--1011},
publisher = {{IEEE} Computer Society},
year = {2012},
}