Réécriture d'automates certifiée pour la vérification de modèle

par Benoît Boyer

Thèse de doctorat en Informatique

Sous la direction de Thomas Jensen et de Thomas Genet.

Soutenue en 2010

à Rennes 1 .


  • Résumé

    Cette thèse s'intéresse à la vérification de programmes modélisés sous forme de systèmes de règles de réécriture. La vérification de propriétés est basée sur une analyse statique semi-automatique qui construit une sur-approximation, représentée par un automate d'arbres, de l'ensemble des termes atteignables. L'analyse est paramétrée par une abstraction qui doit être suffisamment précise pour que la propriété attendue puisse être vérifiée. Or, il est difficile de construire une telle abstraction à priori. On propose un mécanisme original de raffinement automatique par élagage de l'automate d'arbres lorsque la sur-approximation calculée, trop imprécise, est susceptible de contenir de fausses alarmes. Non seulement l'analyse s'applique à la vérification de propriétés de sûreté par non-atteignabilité, mais on montre qu'elle peut être adaptée afin de vérifier des propriétés temporelles, notamment sur le graphe des appels de méthodes d'un programme Java. Enfin, les outils réalisant cette analyse reposent sur des implémentations optimisées, clairement éloignées de la spécification originale. Pour accroître la confiance en ces outils, on fournit un vérificateur chargé de la validation de leurs résultats à posteriori. La spécification et la correction de ce validateur sont formulées et démontrées dans l'assistant de preuves Coq.

  • Titre traduit

    Certified Automaton Rewriting for Model Checking


  • Résumé

    This thesis addresses the verification of programs, symbolized as term rewriting systems. Program properties are verified using a semiautomatic static analysis that returns a tree automaton recognizing an over-approximation of reachable terms. This analysis is parameterized by an abstraction that has to be precise enough to check the expected property. However, it is generally hard to give such an abstraction to the analysis. Using tree automaton pruning, we propose an original mechanism of automatic refinement, which allows us to avoid false alarms that are contained in the over-approximation. The technique is initially designed to check safety properties by unreachability. We show how to extend it to check temporal properties, especially for properties about the graph of method calls for a Java program. Finally, to increase their performance, the tools performing this analysis are very optimized and their implementation is quite far from of the original specification. To trust the results of these tools, we provide a checker that is in charge of validating the results. The specification and the correction of the checker are designed and proved in the proof assistant Coq.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (107 p.)
  • Notes : Publication autorisée par le jury
  • Annexes : Bibliogr., 4 p.

Où se trouve cette thèse ?

  • Bibliothèque : Université de Rennes I. Service commun de la documentation. Section sciences et philosophie.
  • Disponible pour le PEB
  • Cote : TA RENNES 2010/211
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.