FaCiLe en Coq : vérification formelle des listes d'intervalles
Résumé
Lors du développement d'un solveur de contraintes, la représentation des domaines des variables est un choix de conception important car ce dernier a une forte influence sur l'efficacité du solveur. Une représentation assez courante-et judicieuse lorsque les domaines sont grands et avec peu de trous-consiste à stocker une séquence d'intervalles aussi larges que possible. La bibliothèque OCaml de programmation par contraintes sur les domaines finis, nommée FaCiLe (Barnier, Brisset, 1997), ainsi que de nombreux solveurs, implantent les domaines avec une telle représentation. Nous présentons dans cet article la formalisation en Coq du module de FaCiLe dédié à la création et la manipulation des domaines. Dans ce travail, l'effort a porté non seulement sur la preuve mais surtout sur la spécification des fonctions de ce module. Plus généralement, nous proposons une nouvelle implantation Coq des ensembles finis d'entiers. Notre objectif est d'utiliser le module Coq correspondant dans le solveur de contraintes formellement vérifié développé par Carlier et al, afin d'obtenir de meilleures performances pour le code extrait. Ce travail participe également à l'effort de vérification formelle des bibliothèques OCaml existantes.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|