Embedding the refinement calculus in Coq

Abstract The refinement calculus and type theory are both frameworks that support the specification and verification of programs. This paper presents an embedding of the refinement calculus in the interactive theorem prover Coq, clarifying the relation between the two. As a result, refinement calculations can be performed in Coq, enabling the interactive calculation of formally verified programs from their specification.

[1]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[2]  Wouter Swierstra A Hoare Logic for the State Monad , 2009, TPHOLs.

[3]  Peter Hancock,et al.  Programming interfaces and basic topology , 2009, Ann. Pure Appl. Log..

[4]  Jean-Christophe Filliâtre,et al.  A persistent union-find data structure , 2007, ML '07.

[5]  Wouter Swierstra,et al.  Beauty in the Beast A Functional Semantics for the Awkward Squad , 2007 .

[6]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[7]  Wouter Swierstra,et al.  From Proposition to Program - Embedding the Refinement Calculus in Coq , 2016, FLOPS.

[8]  Lars Birkedal,et al.  Ynot: dependent types for imperative programs , 2008, ICFP 2008.

[9]  Peter Morris,et al.  Indexed Containers , 2009, 2009 24th Annual IEEE Symposium on Logic In Computer Science.

[10]  Aleksandar Nanevski,et al.  Ynot : Reasoning with the Awkward Squad , 2008 .

[11]  Georg Struth,et al.  A Program Construction and Verification Tool for Separation Logic , 2015, MPC.

[12]  Ralph-Johan Back,et al.  Refinement concepts formalised in higher order logic , 2005, Formal Aspects of Computing.

[13]  Adam Chlipala,et al.  Effective interactive proofs for higher-order imperative programs , 2009, ICFP.

[14]  Wouter Swierstra,et al.  A functional specification of effects , 2009 .

[15]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[16]  Sylvain Boulmé,et al.  Intuitionistic Refinement Calculus , 2007, TLCA.

[17]  Ralph-Johan Back,et al.  Refinement Concepts Formalized in Higher Order Logic , 1989, Programming Concepts and Methods.

[18]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[19]  Peter Hancock,et al.  Interactive Programs in Dependent Type Theory , 2000, CSL.

[20]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[21]  Jim Grundy,et al.  The Refinement Calculator: Proof Support for Program Refinement , 1997 .

[22]  Peter Hancock,et al.  Specifying Interactions With Dependent Types , 2000 .