Raffinement et preuves de systèmes Lustre - TEL - Thèses en ligne Access content directly
Theses Year : 2005

Refinements and Proofs of Lustre Systems

Raffinement et preuves de systèmes Lustre

Jan Mikac
  • Function : Author
  • PersonId : 831489

Abstract

This thesis is set into the domain of formal methods applied to reactive systems. These systems, characterized by their continuous interaction with their environment, are modeled and managed by the
means of the synchronous programming language Lustre.

Firstly, thanks to a previous work, we build an induction-based proof method of Lustre safety properties. The method is optimized in that it
takes into account the dynamics of the systems in the best possible way. We implemented it in the Gloups proof tool.

Then we define a refinement calculus for Lustre which follows the B method model. The calculus is both adapted to and expressed in Lustre. The proof obligations which ensure the refinement correctness can be handled by Gloups. In order to simplify the development,
another tool called Flush automatically generates the proof obligations for Gloups.

Thus we use Lustre as both a programming language and a formal development framework. The interest of our method stems from the simplicity of Lustre and its adaptation to the reactive systems: in this domain, our refinement method is expressive enough, yet not
exceedingly complex. To finish, we show the interest on some examples.
Notre thèse se situe dans le domaine des méthodes formelles appliquées aux systèmes réactifs. Nous modélisons et traitons ces systèmes, en continuelle interaction avec leur environnement, grâce au langage
synchrone Lustre.

D'abord, sur la base d'un travail précurseur, nous établissons pour Lustre une méthode de preuve inductive des propriétés de sûreté. Cette méthode est optimisée, afin de prendre en compte au mieux la dynamique des systèmes. Elle est implémentée dans un outil de preuve, Gloups.

Ensuite, suivant le modèle de la méthode B, nous définissons un calcul de raffinement pour Lustre. Ce calcul est à la fois adapté à Lustre et exprimé en ce langage. Les obligations de preuve qui assurent la
correction du raffinement peuvent être traitées par Gloups. Pour faciliter le développement, un autre outil, Flush, génère automatiquement les obligations pour Gloups.

Ainsi, nous utilisons Lustre à la fois comme langage de programmation et comme cadre formel d'un développement maîtrisé. L'intérêt de ce
procédé réside dans la simplicité du langage et dans son adaptation aux systèmes réactifs : en ce domaine, notre méthode de raffinement est suffisamment expressive, sans être inutilement compliquée. Des exemples viennent démontrer l'intérêt de la méthode.
Fichier principal
Vignette du fichier
these.pdf (6.9 Mo) Télécharger le fichier

Dates and versions

tel-00011182 , version 1 (09-12-2005)

Identifiers

  • HAL Id : tel-00011182 , version 1

Cite

Jan Mikac. Raffinement et preuves de systèmes Lustre. Génie logiciel [cs.SE]. Institut National Polytechnique de Grenoble - INPG, 2005. Français. ⟨NNT : ⟩. ⟨tel-00011182⟩
479 View
108 Download

Share

Gmail Facebook X LinkedIn More