Behavioral Properties of Floating-Point Programs ?

We propose an expressive language to specify formally behavioral properties of programs involving floating-point computations. We present a deductive verification technique, which allows to prove formally that a given program meets its specifications, using either SMT-class automatic theorem provers or general interactive proof assistants. Experiments using the Frama-C platform for static analysis of C code are presented.

[1]  Ali Ayad On formal methods for certifying floating-point C programs , 2008 .

[2]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[3]  Frank Piessens,et al.  A glimpse of a verifying C compiler , 2007 .

[4]  Patrice Chalin,et al.  Reassessing JML’s Logical Foundation , 2005 .

[5]  Jun Sawada,et al.  Combining ACL2 and an automated verification tool to verify a multiplier , 2006, ACL2 '06.

[6]  John Harrison Floating Point Verification in HOL Light: The Exponential Function , 1997, AMAST.

[7]  Claude Marché,et al.  The Why/Krakatoa/Caduceus Platform for Deductive Program Verification , 2007, CAV.

[8]  Editors , 2003 .

[9]  Gary T. Leavens,et al.  Not a Number of Floating Point Problems , 2006, J. Object Technol..

[10]  James Demmel,et al.  IEEE Standard for Floating-Point Arithmetic , 2008 .

[11]  Guillaume Melquiond Proving Bounds on Real-Valued Functions with Computations , 2008, IJCAR.

[12]  R. Stephenson A and V , 1962, The British journal of ophthalmology.

[13]  J. Filliâtre,et al.  ACSL: ANSI/ISO C Specification Language , 2008 .

[14]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

[15]  Dermot Cochran,et al.  ESC/Java2 Implementation Notes , 2008 .

[16]  A Mechanically Checked Proof of the Correctness of the Kernel of the Amd5 K 86 Tm Floating-point Division Algorithm , 1996 .

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

[18]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[19]  John Harrison,et al.  Floating Point Verification in HOL Light: The Exponential Function , 1997, Formal Methods Syst. Des..

[20]  Sylvain Conchon,et al.  CC(X): Semantic Combination of Congruence Closure with Solvable Theories , 2008, Electron. Notes Theor. Comput. Sci..

[21]  Jean-Christophe Filliâtre,et al.  Formal Verification of Floating-Point Programs , 2007, 18th IEEE Symposium on Computer Arithmetic (ARITH '07).

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

[23]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[24]  Eric Goubault,et al.  Static Analysis of Numerical Algorithms , 2006, SAS.