Section: New Results

Floating-Point and Numerical Programs


Interval arithmetic and Taylor models.

É. Martin-Dorel and G. Melquiond have worked on integrating the CoqInterval and CoqApprox libraries into a single package. The CoqApprox library is dedicated to computing verified Taylor models of univariate functions so as to compute approximation errors. The CoqInterval library reuses this work to automatically prove bounds on real-valued expressions. A large formalization effort took place during this work, so as to get rid of all the holes remaining in the formal proofs of CoqInterval. It was also the chance to perform a comparison between numerous decision procedures dedicated to proving nonlinear inequalities involving elementary functions. This work has been published in the Journal of Automated Reasoning [15].

Interval arithmetic and univariate integrals.

A. Mahboubi, G. Melquiond, and T. Sibut-Pinote have extended the CoqInterval library with support for definite univariate integrals. The library is now able to automatically and formally verify bounds on the value of integrals by computing rigorous polynomial approximations of integrands. This work has been presented at the 7th International Conference on Interactive Theorem Proving [27].

Robustness of 2Sum and Fast2Sum.

S. Boldo, S.Graillat, and J.-M. Muller have worked on the 2Sum and Fast2Sum algorithms, that are important building blocks in numerical computing. They are used (implicitely or explicitely) in many compensated algorithms or for manipulating floating-point expansions. They showed that these algorithms are much more robust than it is usually believed: the returned result makes sense even when the rounding function is not round-to-nearest, and they are almost immune to overflow. This work has been submitted [36].

Computing error bounds without changing the rouding mode.

S. Boldo has created an algorithm to compute a correct and tight rounding error bound for a floating-point computation. The rounding error can be bounded by folklore formulas, such as ε|x| or ε|(x)|. This gets more complicated when underflow is taken into account. To compute this error bound in practice, a directed rounding is usually used. This work describes an algorithm that computes a correct bound using only rounding to nearest, therefore without requiring a costly change of the rounding mode. This is formally proved using the Coq formal proof assistant to increase the trust in this algorithm. This has been published at the 9th International Workshop on Numerical Software Verification [17].

Floating-Point Computations and Iterators.

S. Boldo has worked on the formal verification of a floating-point case study where the common iterators fold_left and fold_right have not the wanted behaviors. She then had to define other iterators, which are very similar in most cases, but that do behave well in our case study. This has been published at the 1st Workshop on High-Consequence Control Verification [31].