Gappa: a Tool for Certifying Numerical Programs
Participant : G. Melquiond.
Given a logical property involving interval enclosures of mathematical expressions, Gappa tries to verify this property and generates a formal proof of its validity. This formal proof can be machine-checked by an independent tool like the Coq proof-checker, so as to reach a high level of confidence in the certification.
Since these mathematical expressions can contain rounding operators in addition to usual arithmetic operators, Gappa is especially well suited to prove properties that arise when certifying a numerical application, be it floating-point or fixed-point. Gappa makes it easy to compute ranges of variables and bounds on absolute or relative roundoff errors.
Various people use this tool in order to certify their numerical code. For example, in CRlibm, floating-point elementary functions are proved with its help  . It has also been used to certify robust floating-point geometric filters for the CGAL library  .
In 2006, the support for fixed-point arithmetic has been improved and the Coq library has been extended to fixed- and floating-point arithmetics. Moreover, support for the HOL Light proof assistant has been added.
Status: Beta release / Target: any / License: GPL, CeCiLL / OS: any / Programming Language: C++ / URL: http://lipforge.ens-lyon.fr/www/gappa/