Abstract
The formal verification of programs has progressed tremendously in the last decade. In this talk, I review some of the obstacles that [6, 8, 15, 18] remain to be lifted before source-level verification tools can be taken really seriously in the critical software industry. A direction I advocate is the systematic formal verification of the development tools that participate in the production and verification of critical software.
Supplemental Material
- A. J. Ahmed. Step-indexed syntactic logical relations for recursive and quantified types. In Programming Languages and Systems, 15th European Symposiumon Programming, ESOP2006, volume 3924 of Lecture Notes in Computer Science, pages 69--83. Springer, 2006. Google Scholar
Digital Library
- A. W. Appel and S. Blazy. Separation logic for small-step Cminor. In Theorem Proving in Higher Order Logics, 20th Int. Conf. TPHOLs 2007, volume 4732 of Lecture Notes in Computer Science LNCS, pages 5--21. Springer, 2007. Google Scholar
Digital Library
- G. Barthe, B. Grégoire, C. Kunz, and T. Rezk. Certificate translation for optimizing compilers. ACM Transactions on Programming Languages and Systems, 31 (5), 2009. Google Scholar
Digital Library
- N. Benton and C.-K. Hur. Biorthogonality, step-indexing and compiler correctness. In International Conference on Functional Programming 2009, pages 97--108. ACM Press, 2009. Google Scholar
Digital Library
- F. Besson, D. Cachera, T. P. Jensen, and D. Pichardie. Certified static analysis by abstract interpretation. In Foundations of Security Analysis and Design, volume 5705 of Lecture Notes in Computer Science, pages 223--257. Springer, 2009. Google Scholar
Digital Library
- B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. A static analyzer for large safety-critical software. In Programming Language Design and Implementation 2003, pages 196--207. ACM Press, 2003. Google Scholar
Digital Library
- S. Boldo, J.-C. Filliâtre, and G. Melquiond. Combining Coq and Gappa for certifying floating-point programs. In Intelligent Computer Mathematics, Calculemus/MKM 2009, volume 5625 of Lecture Notes in Computer Science, pages 59--74. Springer, 2009. Google Scholar
Digital Library
- G. Klein, J. Andronick, K. Elphinstone, G. Heiser, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, T. Sewell, H. Tuch, and S. Winwood. seL4: formal verification of an operating-system kernel. Communications of the ACM, 53(6):107--115, 2010. Google Scholar
Digital Library
- A. J. Kornecki and J. Zalewski. The qualification of software development tools from the DO-178B certification perspective. CrossTalk, Apr. 2006.Google Scholar
- X. Leroy. Formal verification of a realistic compiler. Communications of the ACM, 52(7): 107--115, 2009. Google Scholar
Digital Library
- X. Leroy. A formally verified compiler back-end. Journal of Automated Reasoning, 43(4): 363--446, 2009. Google Scholar
Digital Library
- G. C. Necula. Translation validation for an optimizing compiler. In Programming Language Designand Implementation 2000, pages 83--95. ACM Press, 2000. Google Scholar
Digital Library
- A. Pnueli, M. Siegel, and E. Singerman. Translation validation. In Tools and Algorithms for Construction and Analysis of Systems, TACAS '98, volume 1384 of Lecture Notes in Computer Science, pages 151--166. Springer, 1998. Google Scholar
Digital Library
- Z. Shao, V. Trifonov, B. Saha, and N. Papaspyrou. A type system for certified binaries. ACM Transactions on Programming Languages and Systems, 27(1): 1--45, 2005. Google Scholar
Digital Library
- J. Souyris, V. Wiels, D. Delmas, and H. Delseny. Formal verification of avionics software products. In FM 2009: Formal Methods, volume 5850 of Lecture Notes in Computer Science, pages 532--546. Springer, 2009. Google Scholar
Digital Library
- J.-B. Tristan and X. Leroy. Verified validation of Lazy Code Motion. In Programming Language Design and Implementation 2009, pages 316--326. ACM Press, 2009. Google Scholar
Digital Library
- H. Tuch, G. Klein, and M. Norrish. Types, bytes, and separation logic. In 34th symposium Principles of Programming Languages, pages 97--108. ACM Press, 2007. Google Scholar
Digital Library
- J. Yang and C. Hawblitzel. Safe to the last instruction: automated verification of a type-safe operating system. In Programming Language Design and Implementation 2010, pages 99--110. ACM Press, 2010. Google Scholar
Digital Library
Index Terms
Verified squared: does critical software deserve verified tools?
Recommendations
Verified squared: does critical software deserve verified tools?
POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesThe formal verification of programs has progressed tremendously in the last decade. In this talk, I review some of the obstacles that [6, 8, 15, 18] remain to be lifted before source-level verification tools can be taken really seriously in the critical ...
A Formally Verified Compiler Back-end
This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for programming ...
Verified compilation on a verified processor
PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and ImplementationDeveloping technology for building verified stacks, i.e., computer systems with comprehensive proofs of correctness, is one way the science of programming languages furthers the computing discipline. While there have been successful projects verifying ...







Comments