Thèse soutenue

Application de la théorie des types et du démonstrateur COQ à la vérification de programmes parallèles

FR  |  
EN
Auteur / Autrice : Barbara Heyd
Direction : Pierre Lescanne
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 1997
Etablissement(s) : Nancy 1
Partenaire(s) de recherche : Autre partenaire : Université Henri Poincaré Nancy 1. Faculté des sciences et techniques

Résumé

FR  |  
EN

Dans cette thèse, nous nous intéressons plus particulièrement à la vérification formelle de programmes parallèles en utilisant des techniques déductives basées sur la preuve de théorèmes. En particulier, nous nous spécifions et vérifions mécaniquement les programmes décrits en UNITY à l'aide de l'assistant de preuves COQ. Nous décrivons tout d'abord la logique sous jacente à l'assistant de preuves COQ, le Calcul des Constructions Inductives. Puis nous introduisons la théorie UNITY en s'attardant plus particulièrement sur les problèmes de sa logique résultant d'une ambiguïté de quantification au niveau des triplets de Hoare. Nous proposons alors une nouvelle logique, extension de la précédente, résolvant ses différents problèmes : une notion de contexte ou d'environnement à un programme apparaît et une nouvelle définition de l'ensemble des états atteignables est donnée. Une fois, la complétude et la correction de cette nouvelle logique démontrées, nous présentons l'outil Coq-UNITY, résultat de l'implémentation de cette nouvelle logique dans l'assistant COQ. Nous illustrons l'outil Coq-UNITY par différents exemples. Les quatre premiers sont la division euclidienne, les lecteurs-rédacteurs, le parking et le contrôleur d'ascenseur. Même si ce sont tous des cas d'école, leur difficulté est croissante. Chacun d'entre eux met, en effet, en évidence un problème particulier soit au niveau des preuves, soit au niveau spécification. Le dernier exemple concerne un protocole de télécommunications, le protocole ABT / DT. Sur cet exemple, nous montrons l'intérêt de la notion de contexte tant au niveau spécification qu'au niveau vérification.