DeepSEA: a language for certified system software
Abstract
Writing certifiably correct system software is still very labor-intensive, and current programming languages are not well suited for the task. Proof assistants work best on programs written in a high-level functional style, while operating systems need low-level control over the hardware. We present DeepSEA, a language which provides support for layered specification and abstraction refinement, effect encapsulation and composition, and full equational reasoning. A single DeepSEA program is automatically compiled into a certified ``layer'' consisting of a C program (which is then compiled into assembly by CompCert), a low-level functional Coq specification, and a formal (Coq) proof that the C program satisfies the specification. Multiple layers can be composed and interleaved with manual proofs to ascribe a high-level specification to a program by stepwise refinement. We evaluate the language by using it to reimplement two existing verified programs: a SHA-256 hash function and an OS kernel page table manager. This new style of programming language design can directly support the development of correct-by-construction system software.
Document Details
- Document Type
- Pub Defense Publication
- Publication Date
- Oct 10, 2019
- Source ID
- 10.1145/3360562
Entities
People
- Shu-chun Weng
- Vilhelm Sjöberg
- Yuyang Sang
- Zhong Shao
Organizations
- Defense Advanced Research Projects Agency
- National Science Foundation
- Yale University