Thèmes de recherche
Vérification de systèmes à états infinis
Les systèmes informatiques sont de plus utilisés, et on doit donc s'assurer de leur fiabilité.
La vérification formelle d'un système permet d'établir un diagnostic précis pour une propriété donnée, et de retourner un contre-exemple si la propriété n'est pas vérifiée.
Pour vérifier certains systèmes intéressants comme les protocoles de sécurité, les réseaux ou les programmes
Pour vérifier certains systèmes intéressants comme les protocoles de sécurité, les réseaux ou les programmes
Java
, on doit considérer un espace d'états infini.
L'ARTMC (Abstract Tree Regular Model Checking) permet de vérifier des propriétés de sûreté sur des systèmes à espaces d'états infinis en utilisant des automates d'arbres et des transducteurs d'arbres, ou des systèmes de réécriture.
Réécriture de termes - Analyse d'atteignabilité - Propriétés de sûreté
Les propriétés de sûreté permettent de vérifier qu'il n'y a pas d'état accessible par le système qui ne satisfait pas la propriété, i.e. pas d'état erreur. Pour vérifier une propriété de sûreté, il faut calculer l'ensemble de tous les états accessibles par le système, et vérifier qu'il n'y a aucun état erreur dans cet ensemble, grâce à une opération d'intersection. On appelle cette vérification une analyse d'atteignabilité.
Quand les états sont représentés par des termes, l'ensemble des états accessibles est calculé grâce à un transducteur d'arbres ou grâce à un système de réécriture. Un système de réécriture est un semble de règles de réécriture l → r permettant de réécrire un ensemble de termes. Par exemple, f(x,y) → f(g(x),g(y)) est une règle de réécriture, et le terme f(a,b) est réécrit de cette manière : f(a,b) → f(g(a),g(b)) → f(g(g(a)),g(g(b))) → f(g(g(g(a))),g(g(g(b)))) → ...
Quand les états sont représentés par des termes, l'ensemble des états accessibles est calculé grâce à un transducteur d'arbres ou grâce à un système de réécriture. Un système de réécriture est un semble de règles de réécriture l → r permettant de réécrire un ensemble de termes. Par exemple, f(x,y) → f(g(x),g(y)) est une règle de réécriture, et le terme f(a,b) est réécrit de cette manière : f(a,b) → f(g(a),g(b)) → f(g(g(a)),g(g(b))) → f(g(g(g(a))),g(g(g(b)))) → ...
Automates d'arbres
Dans l'ARTMC (Abstract Tree Regular Model Checking), une configuration (ou état) du système est représentée par un terme, i.e. un mot construit avec des symboles fonctionnels qui peut être représenté par un arbre (ex: f(g(a),b) ).
Un ensemble (possiblement infini) de termes est représenté par un automate d'arbres, composé d'un ensemble d'états, un ensemble d'états finaux, un alphabet de symboles fonctionnels, et un ensemble de transitions normalisées. Par exemple, l'ensemble de transitions d'un automate d'arbres {a → q1, b → q2, g(q1) → q3, f(q3,q2) → qf } peut reconnaître le terme f(g(a),b).
Outils développés
TimbukLTA
TimbukLTA est une extension de Timbuk, i.e.
un outil de complétion d'automates d'arbres pour l'analyse
d'atteignabilité des systèmes de
réécritures, cette extension utilisant les automates
d'arbres à treillis (Lattice Tree Automata) pour
représenter (efficacement) des domaines infinis tels que les
entiers, les chaines de caractères, etc., et améliore grandement l'efficacité de la vérification des programmes
Code source et informations.
© 2012 ‒ Thomas Genet, Valérie Murat et Tristan Le Gall
Java
(voir Publications → Rapports techniques).Code source et informations.
© 2012 ‒ Thomas Genet, Valérie Murat et Tristan Le Gall
CopsterLTA
CopsterLTA est une extension de Copster.
Depuis un fichier
Code source et informations.
© 2012 ‒ Valérie Murat, Nicolas Barré, Laurent Hubert, Luka Le Roux et Thomas Genet
.class
obtenu en compilant des fichiers .java
, Copster produit un système de réécriture simulant l'exécution du programme Java
.
CopsterLTA utilise
l'arithmétique sur les entiers et symboles interprétables
plutôt que l'arithmétique de Peano comme c'était le
cas dans Copster. CopsterLTA intègre également des règles de réécriture conditionnelles.
Le système de réécriture généré par CopsterLTA peut ensuite être vérifié en utilisant TimbukLTA.Code source et informations.
© 2012 ‒ Valérie Murat, Nicolas Barré, Laurent Hubert, Luka Le Roux et Thomas Genet
Enseignements
Vulgarisation scientifique
-
Exposé de vulgarisation scientifique dans les classes de lycées :
« Les protocoles de sécurité : s'authentifier en toute sécurité sur internet »
(cryptographie et protocoles de sécurité sur internet dont SSL) ‒ 2010-2011.
PDF de la présentation.
TDs et TPs
-
Cours donnés à l'Université de Rennes 1, plus précisément à l'ISTIC (UFR d'informatique).
-
Méthodes de programmation en UML.
UE METH (Méthodes de programmation) ‒ L3 Informatique ‒ Université de Rennes 1 ‒ 2011-2012
UE BMO (Bases de la Modélisation par Objets) ‒ L3 Informatique ‒ Université de Rennes 1 ‒ 2012-2013 -
Architecture des systèmes informatiques : programmation en
Scheme
.
UE ASI (Architecture des Systèmes Informatiques) ‒ L1 Informatique ‒ Université de Rennes 1 ‒ 2011-2013 -
Bases de programmation : programmation en
Java
.
UE FOR (Fonctionnement des ORdinateurs) ‒ L1 Informatique ‒ Université de Rennes 1 ‒ 2011-2012 -
Bureautique : utilisation d'OpenOffice.org Writer et OpenOffice.org Calc.
UE BUR (BUReautique) ‒ L1 Informatique ‒ Université de Rennes 1 ‒ 2012-2013
Publications
Conférences internationales et workshops
- [BDM11]
- Y. Boichut, T.-B.-H. Dao and V. Murat. Characterizing Conclusive Approximations by Logical Formulae. Proceedings of 5th International Workshop on Reachability Problems, Lecture Notes in Computer Science, vol. 6945. 2011. PDF
- [GLLM13]
- T. Genet, T. Le Gall, A. Legay and V. Murat. A Completion Algorithm for Lattice Tree Automata. Proceedings of 18th International Conference on Implementation and Application of Automata (CIAA'13). To be published. 2013.
Rapports techniques
- [GLLM12]
- T. Genet, T. Le Gall, A. Legay and V. Murat. Tree Regular Model Checking of Lattice-Based Automata. Technical Report RT-0424, INRIA. 2012. PDF