Bridging the gap between formal specification and bit-level floating-point arithmetic

Floating-point arithmetic is defined by the IEEE-754 standard and has often been formalized. We propose a new Coq formalization based on the bit-level representation of the standard and we prove strong links between this new formalization and a previous high-level one. In this process, we have defined functions for any rounding mode described by the standard. Our library can now be applied to certify both software and hardware. Developing results in those two dramatically dierent directions, like no other formal development so far, guarantees that nothing was forgotten or poorly specified in our formalization. It also lets us compare our work with the existing bit-level formalizations developed with other proof assistants.

[1]  Micaela Mayero,et al.  Formalisation et automatisation de preuves en analyses réelle et numérique , 2001 .

[2]  Christine Paulin-Mohring,et al.  The Coq Proof Assistant : A Tutorial : Version 7.2 , 1997 .

[3]  Paul S. Miner,et al.  Specification of the ieee-854 floating-point standard in hol and pvs , 1995 .

[4]  John Rushby,et al.  Formal verification of algorithms for critical systems , 1991 .

[5]  Loïc Pottier,et al.  Mathematics and Proof Presentation in Pcoq , 2001 .

[6]  D. Stevenson A Proposed Standard for Binary Floating-Point Arithmetic , 1981, Computer.

[7]  P. Zimmermann,et al.  Accurate Summation: Towards a Simpler and Formal Proof , 2003 .

[8]  Sylvie Boldo,et al.  Representable correcting terms for possibly underflowing floating point operations , 2003, Proceedings 2003 16th IEEE Symposium on Computer Arithmetic.

[9]  David M. Russinoff A Mechanically Checked Proof of IEEE Compliance of the Floating Point Multiplication, Division and Square Root Algorithms of the AMD-K7™ Processor , 1998, LMS J. Comput. Math..

[10]  Robert L. Smith,et al.  An American National Standard- IEEE Standard for Binary Floating-Point Arithmetic , 1985 .

[11]  Herman Geuvers,et al.  A Constructive Algebraic Hierarchy in Coq , 2002, J. Symb. Comput..

[12]  David G. Hough,et al.  A Proposed Radix- and Word-length-independent Standard for Floating-point Arithmetic , 1984, IEEE Micro.

[13]  John Harrison,et al.  Formal Verification of Floating Point Trigonometric Functions , 2000, FMCAD.

[14]  Jean-Michel Muller,et al.  Elementary Functions: Algorithms and Implementation , 1997 .

[15]  John Harrison,et al.  A Machine-Checked Theory of Floating Point Arithmetic , 1999, TPHOLs.

[16]  Sylvie Boldo,et al.  A Simple Test Qualifying the Accuracy of Horner'S Rule for Polynomials , 2004, Numerical Algorithms.

[17]  Sylvie Boldo,et al.  Theorems on efficient argument reductions , 2003, Proceedings 2003 16th IEEE Symposium on Computer Arithmetic.

[18]  David Aspinall,et al.  Proof General: A Generic Tool for Proof Development , 2000, TACAS.

[19]  Christian Jacobi Formal Verification of a Theory of IEEE Rounding , 2001 .

[20]  Laurence Rideau,et al.  A Generic Library for Floating-Point Numbers and Its Application to Exact Computing , 2001, TPHOLs.