De l'arithmétique d'intervalles à la certification de programmes - Archive ouverte HAL Accéder directement au contenu
Thèse Année : 2006

From interval arithmetic to program verification

De l'arithmétique d'intervalles à la certification de programmes

Guillaume Melquiond

Résumé

Computer numbers are usually limited, both in range and in precision. As a consequence, a careful certification has to be performed for applications that compute with these sets of numbers. Unfortunately, performing such a certification by hand is error-prone. Formal methods can ensure that the certification is correct, but making use of them is usually long and tedious, even for experts.This thesis aims at improving the availability of these methods to developers by automatizing their implementation. The key concepts are the use of interval arithmetic, a database of theorems on computer arithmetics, and a system for rewriting expressions in order to compute tight bounds on rounding errors.This approach has led to the development of the Gappa tool. It is designed to verify the numeric properties of programs relying on floating-point or fixed-point arithmetic. When verifying these properties, the tool also generates formal proofs of their correctness. These proofs can later be mechanically checked by the Coq proof assistant. Gappa has been successfully used for certifying some functions of the CRlibm, CGAL, and FLIP libraries, among others.
Parce que les nombres manipulés en machine ont généralement un domaine et une précision limités, il est nécessaire de certifier soigneusement que les applications les utilisant se comportent correctement. Réaliser une telle certification à la main est cependant un travail propice à de nombreuses erreurs. Les méthodes formelles permettent de garantir l'absence de ces erreurs, mais le processus de certification est alors long, fastidieux et généralement réservé à des spécialistes.Le travail effectué au cours de cette thèse vise à rendre ces méthodes accessibles en automatisant leur application. L'approche adoptée s'appuie sur une arithmétique d'intervalles accompagnée d'une base de théorèmes sur les propriétés des arithmétiques approchées et d'un mécanisme de réécriture d'expressions permettant le calcul de bornes fines sur les erreurs d'arrondi.Ce travail s'est concrétisé par le développement de l'outil Gappa d'aide à la certification. Il permet de vérifier les propriétés de codes numériques qui utilisent de l'arithmétique à virgule fixe ou à virgule flottante. Cette vérification s'accompagne de la génération d'une preuve formelle de ces propriétés utilisable par l'assistant de preuves Coq. Gappa a été utilisé avec succès pour certifier la correction de fonctions dans les bibliothèques CRlibm, CGAL et FLIP par exemple.
Fichier principal
Vignette du fichier
06-these.pdf (842.97 Ko) Télécharger le fichier
Loading...

Dates et versions

tel-01094485 , version 1 (12-12-2014)

Identifiants

  • HAL Id : tel-01094485 , version 1

Citer

Guillaume Melquiond. De l'arithmétique d'intervalles à la certification de programmes. Arithmétique des ordinateurs. École Normale Supérieure de Lyon, 2006. Français. ⟨NNT : 2006ENSL0388⟩. ⟨tel-01094485⟩
412 Consultations
254 Téléchargements

Partager

Gmail Facebook X LinkedIn More