<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Automating the Veri cation of Floating-point Algorithms</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Guillaume Melquiond</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Inria Saclay</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>timent 650 (PCRI)</institution>
          ,
          <addr-line>Orsay, F-91405</addr-line>
        </aff>
      </contrib-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Floating-point numbers are limited both in range and in precision, yet they are widely used
as a way to implement computations on real numbers. Thus arithmetic operations introduce
small errors which might be ampli ed during subsequent computations and cause inaccuracies.
As such, proving the correctness of a oating-point algorithm usually entails verifying that
the computed results are still close enough to some ideal values, despite the method error and
the round-o errors. The traditional way to tackle such a veri cation is to perform an error
analysis, possibly using automated tools.</p>
      <p>Unfortunately, when it comes to the low-level functions found in mathematical libraries, the
oating-point code is usually so contrived that this approach falls short. Indeed, just knowing
the code is no longer su cient to verify it, one also has to know the mathematical reasons that
led to choosing this code in the rst place. This excludes any hope of full automation, yet
automated tools are sorely needed, if only because performing a pen-and-paper proof of such
functions is long, tedious, and error-prone.</p>
      <p>This talk will show some issues speci c to the veri cation of the oating-point functions
of a mathematical library, and some methods for solving them automatically. These methods
will be exempli ed using Gappa, a tool dedicated to proving the logical formulas that arise
during the veri cation of small yet complicated oating-point algorithms. This tool is based
on interval arithmetic, expression rewriting, and theorem saturation. For increased con dence,
the tool also generates formal proofs which can be veri ed by the Coq proof assistant.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>