CentraleSupélec LMF, UMR CNRS 9021
Département informatique Laboratoire Méthodes Formelles
Bât Breguet, 3 rue Joliot-Curie Bât 650 Ada Lovelace, Université Paris Sud
91190 Gif-sur-Yvette, France Rue Noetzlin, 91190 Gif-sur-Yvette, France
BE de sémantique des langages

L'objectif de ce bureau d'étude est de donner une sémantique formelle en Isabelle au langage de description d'automates défini lors du bureau d'étude du cours de modélisation.

La sémantique du DSL sera définie par une transformation Acceleo qui génère une théorie Isabelle, de façon similaire à la génération de code Java que vous avez déjà traitée.

Pour faciliter les preuves, vous disposez d'une classe Machine qui définit un certain nombre de fonctions et de prédicats, avec des théorèmes déjà démontrés. Le type que vous génèrerez pour chaque modèle de votre DSL devra instancier cette classe :

Afin de factoriser les définitions, les entrées d'une machine sont encodées avec des entiers naturels. Vous pouvez définir les entrées de la machine pour laquelle vous générez du code de manière symbolique. Voici ce que donnerait la théorie générée pour le régulateur de vitesse :

À partir de ce modèle, on devra pouvoir prouver certaines propriétés. Par exemple, le fait qu'il est possible d'activer la régulation de vitesse à partir de l'état initial en utilisant les entrées on et cruise :

ou que lorsqu'on appuie sur les freins, la régulation se désactive :

ou encore (plus difficile) qu'il est impossible d'activer la régulation de vitesse sans utiliser l'entrée cruise :