• DocumentCode
    1514512
  • Title

    Certifying the Floating-Point Implementation of an Elementary Function Using Gappa

  • Author

    De Dinechin, Florent ; Lauter, Christoph ; Melquiond, Guillaume

  • Author_Institution
    Lab. de l´´Inf. du Parallelisme (LIP), Ecole Normale Super. de Lyon, Lyon, France
  • Volume
    60
  • Issue
    2
  • fYear
    2011
  • Firstpage
    242
  • Lastpage
    253
  • Abstract
    High confidence in floating-point programs requires proving numerical properties of final and intermediate values. One may need to guarantee that a value stays within some range, or that the error relative to some ideal value is well bounded. This certification may require a time-consuming proof for each line of code, and it is usually broken by the smallest change to the code, e.g., for maintenance or optimization purpose. Certifying floating-point programs by hand is, therefore, very tedious and error-prone. The Gappa proof assistant is designed to make this task both easier and more secure, due to the following novel features: It automates the evaluation and propagation of rounding errors using interval arithmetic. Its input format is very close to the actual code to validate. It can be used incrementally to prove complex mathematical properties pertaining to the code. It generates a formal proof of the results, which can be checked independently by a lower level proof assistant like Coq. Yet it does not require any specific knowledge about automatic theorem proving, and thus, is accessible to a wide community. This paper demonstrates the practical use of this tool for a widely used class of floating-point programs: implementations of elementary functions in a mathematical library.
  • Keywords
    floating point arithmetic; formal specification; optimisation; theorem proving; Gappa proof assistant; automatic theorem proving; elementary function; floating point programs; formal proof; optimization; Certification; Code standards; Computer bugs; Error analysis; Floating-point arithmetic; Function approximation; Programming profession; Roundoff errors; Software design; Software libraries; Correctness proofs; elementary function approximation.; error analysis;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/TC.2010.128
  • Filename
    5483294