Program Verification in the Presence of I/O: Semantics, Verified Library Routines, and Verified Applications
Paper in proceeding, 2018

Software verification tools that build machine-checked proofs of functional correctness usually focus on the algorithmic content of the code. Their proofs are not grounded in a formal semantic model of the environment that the program runs in, or the program’s interaction with that environment. As a result, several layers of translation and wrapper code must be trusted. In contrast, the CakeML project focuses on end-to-end verification to replace this trusted code with verified code in a cost-effective manner. In this paper, we present infrastructure for developing and verifying impure functional programs with I/O and imperative file handling. Specifically, we extend CakeML with a low-level model of file I/O, and verify a high-level file I/O library in terms of the model. We use this library to develop and verify several Unix-style command-line utilities: cat, sort, grep, diff and patch. The workflow we present is built around the HOL4 theorem prover, and therefore all our results have machine-checked proofs.

Author

Hugo Férée

University Of Kent

Johannes Åman Pohjola

Commonwealth Scientific and Industrial Research Organisation (CSIRO)

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

R. Kumar

Commonwealth Scientific and Industrial Research Organisation (CSIRO)

DeepMind

S. Owens

University Of Kent

Magnus Myreen

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

Son Ho

École polytechnique

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 11294 88-111
978-303003591-4 (ISBN)

10th International Working Conference on Verified Software: Theories, Tools, and Experiments, VSTTE 2018
Oxford, United Kingdom,

Subject Categories

Embedded Systems

Computer Science

Computer Systems

DOI

10.1007/978-3-030-03592-1_6

More information

Latest update

12/7/2018