Contribution à la vérication formelle et programmation par contraintes - TEL - Thèses en ligne Accéder directement au contenu
Hdr Année : 2009

Contribution à la vérication formelle et programmation par contraintes

Résumé

This habilitation thesis presents my contributions to the formal verification of processors and programs, and to constraint programming. Formal verification of hardware and software is crucial for the safety of critical systems, is an important economic issue and remains a challenge for research. The formal methods we explored for the verification of processors and programs are entirely automatic and based on decision procedures. For the formal verification of programs, the resolution of constraints on finite domains provides a decision procedure on bounded integers (i.e. machine-codable). The combinatorial explosion is delayed by the combination of specific solvers (Boolean, linear, finite domains). This has made possible to obtain experimental results outperforming in some cases state of the art bounded model checkers based on SAT solvers. In a second step, the formal verification of programs is also approached under the angle of the joint development of a complete proof and an exploration by model checking. Both complete proof and model checking are based on the formal semantics of the language defined in the proof assistant HOL4. Lastly, this habilitation thesis presents my contributions on numerical constraints (i.e where variables are real numbers). These constraints have many practical applications, for example in mechanics or avionics. Furthermore, their resolution mechanisms can be a basis for the formal verification of programs with floating point numbers.
Ce mémoire d'Habilitation à Diriger des Recherches présente mes contributions à la vérification formelle des processeurs et des programmes, ainsi qu'à la programmation par contraintes. La vérification formelle, tant de matériel que de logiciel, est cruciale pour la sécurité des systèmes critiques, est un enjeu économique important et reste un défi pour la recherche. Les méthodes de vérification formelle retenues, aussi bien pour la vérification des processeurs que des programmes sont des méthodes entièrement automatiques qui reposent sur l'utilisation de procédures de décision. Pour la vérification de programmes, la résolution de contraintes sur domaines finis fournit une procédure de décision sur les entiers bornés (codables en machine). L'explosion combinatoire est retardée par la combinaison de solveurs spécifiques (booléen, linéaires, domaines finis), ce qui a permis d'obtenir des résultats expérimentaux qui surpassent dans certains cas les outils de "bounded model checking" basés sur l'utilisation de solveurs SAT. Dans un second temps, la vérification formelle des programmes est également abordée sous l'angle du développement conjoint d'une vérification complète et d'une exploration par model checking, basés sur la sémantique formelle du langage définie dans l'assistant de preuves HOL4. Enfin, ce mémoire présente mes contributions sur les contraintes en domaines continus (i.e. où les variables sont des nombres réels). Ces contraintes ont de nombreuses applications pratiques, par exemple en mécanique ou avionique, et leurs mécanismes de résolution peuvent servir de base à la vérification de programmes en présence de nombres flottants.

Mots clés

Fichier principal
Vignette du fichier
hdr_collavizza.pdf (2.88 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00461140 , version 1 (03-03-2010)

Identifiants

  • HAL Id : tel-00461140 , version 1

Citer

Hélène Collavizza. Contribution à la vérication formelle et programmation par contraintes. Génie logiciel [cs.SE]. Université Nice Sophia Antipolis, 2009. ⟨tel-00461140⟩
160 Consultations
627 Téléchargements

Partager

Gmail Facebook X LinkedIn More