QED at Large: A Survey of Engineering of Formally Verified Software
Open Access
- 3 September 2019
- journal article
- research article
- Published by Emerald Publishing in Foundations and Trends® in Programming Languages
- Vol. 5 (2-3) , 102-281
Abstract
Development of formal proofs of correctness of programs can increase actual and perceived reliability and facilitate better understanding of program specifications and their underlying assumptions. Tools supporting such development have been available for over 40 years, but have only recently seen wide practical use. Projects based on construction of machine-checked formal proofs are now reaching an unprecedented scale, comparable to large software projects, which leads to new challenges in proof development and maintenance. Despite its increasing importance, the field of proof engineering is seldom considered in its own right; related theories, techniques, and tools span many fields and venues. This survey of the literature presents a holistic understanding of proof engineering for program correctness, covering impact in practice, foundations, proof automation, proof organization, and practical proof development.Keywords
All Related Versions
This publication has 385 references indexed in Scilit:
- Proofs of Correctness in Mathematics and Industry2007
- Mechanized Metatheory for the Masses: The PoplMark Challenge2005
- Extensionality in the Calculus of ConstructionsLecture Notes in Computer Science, 2005
- Essential Incompleteness of Arithmetic Verified by Coq2005
- Implementing Modules in the Coq SystemLecture Notes in Computer Science, 2003
- Program Extraction from Large Proof Developments2003
- A Constructive Algebraic Hierarchy in CoqJournal of Symbolic Computation, 2002
- Interactive Theorem Proving: An Empirical Study of User ActivityJournal of Symbolic Computation, 1998
- A Generic Approach to Building User Interfaces for Theorem ProversJournal of Symbolic Computation, 1998
- An Extension of System F with SubtypingInformation and Computation, 1994