previous up next top index
Précédent : Propriétés dynamiques sur événements discrets Remonter : Vérification et synthèse Suivant : Expressivité et complexité de Sigali


Génération d'automates

  Participants : Paul Le Guernic, Sophie Pinchinat, Michel Le Borgne, Hervé Marchand

Les travaux autour du développement d'outil de vérification des programmes SIGNAL ont fait l'objet depuis plusieurs années de recherches intensives. Le premier outil proposé, Sigali, est basé sur les modèles de systèmes dynamiques polynômiaux. Ces modèles définissent de manière symbolique, par un système d'équations de polynômes, le système de transitions sous-jacent à la partie de contrôle des programmes SIGNAL.

Depuis ces premiers travaux, une autre approche a été étudiée : elle consiste en la construction d'un automate fini, qui fournit une représentation du système de transitions susmentionné.

Une première méthode pour la génération de l'automate a été étudiée l'année dernière, et décrite, mais non implémentée, par un étudiant de DEA. Cette démarche s'inspire directement de la méthode de compilation des programmes LUSTRE. Elle a comme principal atout de réaliser la génération selon une méthode hiérarchique qui, si elle est interrompue en cours de génération, délivre une abstraction cohérente de l'automate final, évitant ainsi une potentielle explosion en taille, tout en permettant de vérifer certaines propriétés.

Cette année, nous avons souhaité aboutir plus rapidement à l'implémentation de la génération d'automates. Toujours dans le cadre d'un travail de DEA, réalisé par L. Helouët, et en collaboration avec l'équipe Pampa de l'Irisa, nous avons décidé d'utiliser le package CADP (et plus précisement Open-Caesar), développé au laboratoire Verimag de Grenoble. C'est à partir du système d'équations polynômial (produit automatiquement à la compilation des programmes SIGNAL) que nous avons pu réaliser la génération d'un automate, dont le format nous a donné l'accès à de nombreux outils de CADP  : l'édition de l'automate, sa réduction par équivalence (e.g. de bisimulation), la vérification de formules de logique modale, etc.

Le travail a surtout porté sur des aspects d'optimisation de calculs (stratégie) pour cette génération et les résultats obtenus sont très satisfaisants puisqu'il a été possible de traiter des cas réels de programmes SIGNAL, conduisant à des automates de taille non négligeable. Un mini-logiciel a été mis au point pour utiliser cet outil, qui doit relier le compilateur SIGNAL à CADP.

De plus, l'approche adoptée n'est pas incompatible avec la méthode hiérarchique étudiée l'année dernière. En effet, il est tout à fait possible de reconstruire les abstractions de l'automate. Cependant, ces abstractions sont un peu plus gourmandes en mémoire que celles obtenues par la méthode hiérarchique.

Les perspectives pour les travaux sur les automates visent à appliquer des outils de vérification automatique déjà disponibles dans la communauté. De plus, nous étudions le moyen de réaliser la génération plus en amont dans le processus de compilation des programmes SIGNAL, permettant ainsi de se dispenser du calcul du système d'équations polynômial. Ce travail n'a été que partiellement abordé pendant le stage de DEA de L. Helouët.



previous up next top index Précédent : Propriétés dynamiques sur événements discrets Suivant : Expressivité et complexité de Sigali Remonter : Vérification et synthèse