Combination methods for software verification = Méthodes de combinaison pour la vérification de logiciels
Auteur / Autrice : | Daniele Zucchelli |
Direction : | Michaël Rusinowitch, Silvio Ghilardi, Silvio Ranise |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 22/01/2008 |
Etablissement(s) : | Nancy 1 en cotutelle avec Università degli studi (Milan, Italie) |
Ecole(s) doctorale(s) : | IAEM - Ecole Doctorale Informatique, Automatique, Électronique - Électrotechnique, Mathématiques |
Partenaire(s) de recherche : | Laboratoire : LORIA |
Jury : | Président / Présidente : Didier Galmiche |
Examinateurs / Examinatrices : Didier Galmiche | |
Rapporteurs / Rapporteuses : Alessandro Armando, Ahmed Bouajjani, Alessandro Cimatti, Andreas Herzig |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Cette thèse est consacrée au développement de méthodes formelles pour la vérification de logiciels. Parmi les techniques les plus utilisées dans ce contexte, il y en a deux qui permettent une spécification rigoureuse de toutes les exécutions possibles d'un système et le contrôle des bogues cachés. D'un côté, la correction d'un programme peut être garantie en démontrant l'insatisfiabilité d'une formule modulo une théorie qui axiomatise les types de données impliqués; de l'autre côté, les techniques de model-checking sont utilisées pour certifier que toute exécution possible du système satisfait les propriétés désirées. Les contributions de cette thèse sont les suivantes. Dans un premier temps, nous donnons un résultat de décidabilité pour la satisfiabilité de contraintes pour des extensions intéressantes de la théories des tableaux. Ensuite, nous avons obtenu des résultats dans le prolongement de Manna et Pnueli qui ont montré qu'un mélange de la logique du premier ordre et de la logique temporelle linéaire suffit pour énoncer les problèmes de vérification pour la classe des systèmes réactifs. Ainsi, nous nous inspirons de la récente littérature sur la combinaison des procédures de décision pour établir des résultats de décidabilité et d'indécidabilité pour le problème de satisfiabilité pour des logiques permettant d'intégrer du raisonnement modulo des théories du premier ordre dans un cadre temporel. Les résultats qu'on obtient pour la logiques temporelle linéaire sont ensuite généralisés au cas où le flux temporel est décrit par une logique dont le problème de la satisfiabilité relativisée est décidable. Notre dernière contribution est la décidabilité du problème du model-checking pour le flux temporel linéaire, sous des hypothèses appropriées concernant les théories du premier ordre impliquées. La preuve de ce résultat indique qu'on pourrait employer avec succès des Solveurs Modulo des Théories dans les applications du model-checking aux systèmes ayant un nombre infini d'états.