Précédent : Modélisation et formalisation dans
Coq Remonter : Résultats nouveaux Suivant :
Développement de l'assistant
Coq
Patrick Loiseleur a repris le travail de Samuel Boutin sur des preuves d'égalité dans les anneaux abéliens. Pour cela il a formalisé et prouvé une procédure de décision d'égalité sur les polynômes abstraits dans Coq qui peut ensuite être directement appliquée à prouver des égalités dans des modèles particuliers, aboutissant à une méthode sûre et efficace de preuve. Il a développé des outils permettant une application aisée de ce résultat dès qu'une structure d'anneau est identifiée. Plus généralement, Patrick Loiseleur étudie la combinaison de preuves interactives et automatiques.
Pour étendre le domaine d'application de la technique de réflection, ainsi que pour réduire le temps de calcul nécessaire, B. Werner a suggéré d'expliciter les étapes de réécriture dans le terme de preuve, sous forme de trace. Il a implanté un prototype dont les performances sont intéressantes. Ce travail donne lieu à une collaboration avec le projet Prothéo (U.R. de Nancy), dont le logiciel ELAN est bien adapté à la construction des traces.
Participant : Jean Goubault-Larrecq.
Dans le but de développer des preuves de protocoles
cryptographiques courtes et puissantes, J. Goubault-Larrecq
a codé et prouvé un algorithme de recherche d'un circuit de poids
négatif dans des graphes. Ceci lui a permis de construire une
procédure de vérification de l'insatisfiabilité d'un système de
contraintes de la forme x y
+ k (k constante dans un groupe ordonné, par
exemple Z) . Ceci a nécessité la réalisation d'une
bibliothèque de définitions, algorithmes et lemmes concernant les
mappes (fonctions de domaine fini, en particulier ensembles
finis, tables de symboles, tableaux, graphes, etc). Cette
bibliothèque est déjà utilisée par Henri Fraïssé (Dyade) pour la
spécification de machines virtuelles Java et a été intégrée à la
distribution de Coq.
Les preuves par réflection mettent en jeu la réduction de
termes de preuves représentant des procédures de décision
complexes. Cette exécution doit rester compétitive par rapport à
une exécution de la procédure de décision dans un langage de
programmation classique. Même avec un algorithme de réduction
efficace, comme celui développé dans Coq par
B. Barras, les performances restent limitées car la
réduction est interprétée. Henri Laulhère étudie la possibilité
de traduire les lambda-termes de Coq en des fonctions de
Ocaml qui sont ensuite exécutées. La difficulté est d'implanter
une réduction forte qui travaille également sur des termes
comportant des variables libres. Il a construit un prototype
montrant un gain significatif dans les temps d'exécution.