Me contacter
Address | : | INRIA Bretagne Atlantique Rennes, Campus de Beaulieu 35042 Rennes Cedex France |
: | Prénom.Nom(chez)inria.fr | |
Tél | : | +33 2 99 84 22 75 |
Fax | : | +33 2 99 84 71 71 |
Présentation
Auparavant, j'ai soutenu ma thèse en décembre 2010 que j'ai effectué sous la direction de Thomas Genet et de Thomas Jensen J'ai assumé la charge d'ATER à l'IFSIC / Université Rennes 1 pendant l'année 2009-2010, alors que j'effectuis mes travaux de recherche dans l'équipe Celtique à l'IRISA. Mes travaux de recherche font partie du projet RAVAJ(2006-2010). L'objectif ce projet est d'utiliser et d'étendre les techniques de vérification et d'analyses statiques basées sur la réécriture et les automates d'arbres pour analyser des programmes Java.
Activités de Recherche
Le Statistical Model Checking
Détails à venir...Le Model Checking Régulier
- F une signature permettant de construire T(F) l'ensemble des termes représentants les différentes configurations ou états du système;
- I ⊆ T(F) un ensemble régulier de configurations donc représentable par un automate d'arbres A, i.e. L(A) = I;
- Rel est une relation de transition représentée par R un ensemble de règles de réécriture. Le système de réécriture doit être linéaire à gauche.
Détection de contre-exemples et Raffinement [BBGL10]
D'un point de vue Model Checking, la technique de vérification présentée ci-dessus n'est pas complètement satisfaisante si l'on considère le cas où la vérification échoue. En effet, il est toujours intéressant de savoir lorsqu'une configuration viole la propriété, si cela est le résultat d'une approximation trop grossière (fausse alarme) ou si le système viole réellement la propriété (contre-exemple). Dans l'état, l'algorithme permet pas cette distinction. Certains travaux se sont déjà intéressés à la question, et proposent une approche à la CEGAR (CounterExample-Guided Abstraction Refinement), c'est à dire qu'ils retirent les fausses alarmes détectées lors du calcul l'approximation. Mais ces méthodes reposent sur la construction d'un historique des différents automates obtenus à chaque étape de complétion ainsi qu'une méthode de calcul en arrière afin de déterminer si on est dans le cas d'une fausse alarme ou d'un contre-exemple.
En collaboration avec Axel Legay et Yohan Boichut, j'ai proposé une nouvelle approche basée sur des automates d'arbres instrumentés par des formules logiques et dont la sémantique permet de différencier une configuration issue de l'approximation d'une configuration atteignable. Ces automates contiennent toute l'information nécessaire pour être élagué facilement en cas d'approximation trop grossière. Pour de tels automates, nous fournissons également une procédure de test de la vacuité de l'intersection avec un automate caractérisant la propriété (les configurations interdites). Cette procédure produit une formule logique permettant de caractériser la présence d'un contre-exemple ou l'information nécessaire au raffinement l'automate.
Vérification de Propriétés temporelles [Rule09]
Dans sa version originale, la complétion d'automates d'arbres permet de vérifier des propriétés de sécurité par non-atteignabilité. Il m'a semblé nécessaire d'utiliser une approche similaire pour élargir le champs des propriétés vérifiables sur les systèmes de réécriture. Ces travaux s'appliquent à étendre la complétion pour produire des automates d'arbres sur lesquels il est possible de vérifier des propriétés exprimées dans une logique dérivée de la logique temporelle linéaire (LTL), où les prédicats sont définis au moyen des automates d'arbres.
Cela m'a amené à proposer une nouvelle version de la complétion qui produit un automate d'arbres plus précis : l'introduction des ε-transitions dotées d'une sémantique bien particulière permet de donner une relation d'ordre sur les termes reconnus par l'automate. Cette relation d'ordre est en fait une abstraction de la relation de réécriture. L'ensemble des transitions silencieuses forme alors un graphe orienté dont chaque noeud dénote un ensemble de termes mis en relation par des arcs décrivant la relation abstraite de réécriture. Ce graphe est ensuite extrait de l'automate pour former une structure de Kripke décrivant sous forme de graphe la relation abstraite de réécriture. C'est en fait sur cette relation abstraite qu'il est possible de vérifier des propriétés temporelles en se rapprochant du cadre standard du Model Checking et plus précisément, des techniques de vérification basées sur des automates de Büchi.
Certification d'analyses régulières [IJCAR08, BGJ08]
Le problème posé est celui de la certification des résultats sous forme d'automates produits par la complétion. De tels automates sont obtenus grâce à des algorithmes complexes dont l'implantation peut contenir des erreurs. Or, la certification de la complétion, même si elle est possible, n'offre que peu d'intérêt dans la mesure où les algorithmes et implantations sont en perpétuelle évolution pour des questions de performances. Cela obligerait à reprendre la certification devenue obsolète à chaque nouvelle version de l'implantation. En revanche, un outil certifiant l'automate est plus simple et surtout plus stable dans le temps. Dans ce contexte certifier un automate résultant de la complétion consiste à montrer que ce dernier est clos par réécriture. On dit qu'un automate est clos par réécriture si les termes obtenus par réécriture des termes reconnus par l'automate sont eux-mêmes reconnus par cet automate.
Pour vérifier la propriété de clôture, j'ai défini un vérificateur d'automates d'arbre. A partir d'une description formelle de la théorie des automates et de la réécriture, j'ai prouvé que la clôture par réécriture d'un automate d'arbre est décidable. La validité de cette preuve est assurée par l'assistant de preuves Coq dans lequel la théorie est énoncée et les preuves associées sont vérifiées. Cet assistant de preuve est fondé sur la logique du calcul des constructions inductives (CCI), dont l'une des propriétés fondamentales est l'isomorphisme de Curry-Howard établissant un lien très fort entre preuve et programme. De ce lien découle le mécanisme d'extraction qui permet à partir d'une preuve d'une propriété d'extraire un programme dont l'exécution vérifie la propriété démontrée. Ainsi à partir de la preuve Coq de la décidabilité de la clôture d'un automate pour un système de réécriture j'ai extrait un programme Caml permettant de vérifier si un automate est clos par réécriture.
En contrepartie, l'isomorphisme de Curry-Horward relie fortement l'efficacité du programme et la complexité de la preuve. D'une preuve simple résulte souvent l'extraction d'un programme naïf d'une complexité médiocre. Cela m'a obligé à porter une attention toute particulière à la qualité des preuves et à la modélisation utilisée notamment pour la représentation des automates d'arbres, afin d'obtenir un vérifieur certifié et efficace.
Publications
Conférences, Workshops
[BBGL12] |
Yohan Boichut, Benoît Boyer, Thomas Genet et Axel Legay.
Equational Abstraction Refinement for Certified Tree Regular Model Checking.
In proceedings of ICFEM 2012,14th International Conference on Formal Engineering Methods
Volume 7635 of Lecture Notes in Computer Science. Springer-Verlag, 2012. [.pdf] |
[Rule09] |
Benoît Boyer and Thomas Genet.
Verifying Temporal Regular Properties of Abstractions of Term Rewriting Systems.
In Proceedings of Rule09, International Workshop on Rule-Based Specification and Programming.
Volume abs/1003.4803. 2010. [ .pdf ] |
[IJCAR08] |
Benoît Boyer, Thomas Genet et Thomas Jensen.
Certifying a Tree Automata Completion Checker.
In proceedings of IJCAR 2008, Automated Reasoning, 4th International Joint Conference.
Volume 5195 of Lecture Notes in Computer Science. Springer-Verlag, 2008. [ .pdf ] |
Rapports techniques
[BGJ08] |
Benoît Boyer, Thomas Genet and Thomas Jensen.
Certifying a Tree Automata Completion Checker.
Technical Report RR-6462, INRIA, 2008. [.pdf] |
[BBGL10] |
Yohan Boichut, Benoît Boyer, Thomas Genet et Axel Legay.
Fast Equational Abstraction Refinement for Regular Tree Model Checking.
Technical Report INRIA-00501487, INRIA, 2010. [.pdf] |
[BBBL12] |
Benoit Boyer, Saddek Bensalem, Marius Bozga and Axel Legay
Incremental Generation of Linear Invariants for Component-Based Systems.
Technical Report, Verimag, 2012. [.pdf] |
Autres
[OICMS05] | P-E Gros, B .Boyer, H .Boisgontier, A. Tucholka, N. Férey, R. Gherbi. TransCripTome, an algorithm to grid automatically DNA micro-arrays. In OICMS 2005, Université Blaise Pascal, France, 2005. |
[TAIMA05] | P-E Gros, H. Boisgontier, B. Boyer, A. Tucholka, N. Férey, R. Gherbi. Transcriptome : détection automatique de spots dans les images de biopuces. In TAIMA'05 IEEE, Hammamet, Tunisie, 2005. |
Enseignement
A venir...En vrac
- Mes outils préférés:
- Emacs
- O'Caml
- Coq
- Mes liens favoris:
- www.imslp.org
- Inutiles, Addictifs et Chronophages:
- Subway Shuffle http://www.subwayshuffle.com
- Planarity.net