I am mainly interested in the formal verification of numerical programs, hence floating-point arithmetic and proof assistants.

Gallery of proved programs:

All those programs were proved using the svn version of Frama-C (≥ 7785) and the cvs version of why (≥ Feb 19th, 2010). The Coq proofs use both the PFF and the gappalib libraries for Coq results about floating-point arithmetic.

Floating-point tricks
  • Sterbenz
    This function computes the exact subtraction if the inputs are near enough one to another.
    C code   Full Coq proof
  • Malcolm
    This function computes the radix of the computations. Here in IEEE-754 double precision, the result is 2. But I like the while (A != (A+1)) loop.
    C code   Full Coq proof
  • Dekker
    This function computes the exact error of the multiplication (with Underflow restrictions). There are also Overflow restrictions so that no infinity will be created.
    C code   Full Coq proof
  • Discriminant
    This function computes an accurate discriminant using Kahan's algorithm. The result is proved correct within 2 ulps. Overflow and Underflow restrictions are given.
    C code   Full Coq proof
 
INRIA

Interstices

Site web de vulgarisation scientifique
French popularization web site