Software Verification with ITPs Should Use Binary Code Extraction to Reduce the TCB - (Short Paper)

LCF-style provers emphasise that all results are secured by logical inference, and yet their current facilities for code extraction or code generation fall short of this high standard. This paper argues that extraction mechanisms with a small trusted computing base (TCB) ought to be used instead, pointing out that the recent CakeML and Œuf projects show that this is possible in HOL and within reach in Coq.

[1]  Xavier Leroy,et al.  Formal certification of a compiler back-end or: programming a compiler with a proof assistant , 2006, POPL '06.

[2]  Matthew Z. Weaver,et al.  CertiCoq : A verified compiler for Coq , 2016 .

[3]  Bruno Barras Programming and Computing in HOL , 2000, TPHOLs.

[4]  Pierre Letouzey Extraction in Coq: An Overview , 2008, CiE.

[5]  Peter Lammich,et al.  Refinement to Imperative HOL , 2015, Journal of Automated Reasoning.

[6]  Dan Grossman,et al.  Œuf: minimizing the Coq extraction TCB , 2018, CPP.

[7]  Tobias Nipkow,et al.  Executing Higher Order Logic , 2000, TYPES.

[8]  Brian Campbell,et al.  Randomised testing of a microprocessor model using SMT-solver state generation , 2014, Sci. Comput. Program..

[9]  Ramana Kumar,et al.  Verified Characteristic Formulae for CakeML , 2017, ESOP.

[10]  Robin Milner,et al.  LCF: A Way of Doing Proofs with a Machine , 1979, MFCS.

[11]  Xavier Leroy,et al.  Closing the Gap – The Formally Verified Optimizing Compiler CompCert , 2017 .

[12]  Magnus O. Myreen,et al.  Self-Formalisation of Higher-Order Logic , 2016, Journal of Automated Reasoning.

[13]  Ramana Kumar,et al.  A new verified compiler backend for CakeML , 2016, ICFP.

[14]  John Harrison,et al.  Towards Self-verification of HOL Light , 2006, IJCAR.

[15]  Magnus O. Myreen,et al.  A Trustworthy Monadic Formalization of the ARMv7 Instruction Set Architecture , 2010, ITP.

[16]  Tobias Nipkow,et al.  A Code Generator Framework for Isabelle / HOL , 2007 .

[17]  Joe Hurd,et al.  The OpenTheory Standard Theory Library , 2011, NASA Formal Methods.

[18]  Adam Chlipala,et al.  Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant , 2015, POPL.

[19]  Tobias Nipkow,et al.  A Verified Compiler from Isabelle/HOL to CakeML , 2018, ESOP.

[20]  Ramana Kumar,et al.  Verified compilation of CakeML to multiple machine-code targets , 2017, CPP.

[21]  Magnus O. Myreen,et al.  Proof-producing translation of higher-order logic into pure and stateful ML , 2014, Journal of Functional Programming.