introduction à la modØlisation et à la vØrication
TRANSCRIPT
![Page 1: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/1.jpg)
Cachan, le 17 septembre 2003
Introduction à la modélisation et à lavéri�cation
Application aux systèmes temporisés
Patricia Bouyer
LSV � CNRS & ENS de Cachan
Introduction à la modélisation et à la véri�cation � p. 1/85
![Page 2: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/2.jpg)
Cachan, le 17 septembre 2003
Modélisation & Véri�cation
Introduction
Introduction à la modélisation et à la véri�cation � p. 2/85
![Page 3: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/3.jpg)
Cachan, le 17 septembre 2003
Systèmes informatiques
➜ ordinateurs personnels, serveurs
➜ systèmes embarqués
� téléphones mobiles
� avions
� fusées
� Lego Mindstorms
� automobiles (X-by-wire)
� ...
Introduction à la modélisation et à la véri�cation � p. 3/85
![Page 4: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/4.jpg)
Cachan, le 17 septembre 2003
Systèmes informatiques
➜ ordinateurs personnels, serveurs
➜ systèmes embarqués
� téléphones mobiles
� avions
� fusées
� Lego Mindstorms
� automobiles (X-by-wire)
� ...
Deux tendances: de plus en plus performants, de plus en plus miniaturisés➜ de plus en plus complexes
Introduction à la modélisation et à la véri�cation � p. 3/85
![Page 5: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/5.jpg)
Cachan, le 17 septembre 2003
Systèmes informatiques
➜ ordinateurs personnels, serveurs
➜ systèmes embarqués
� téléphones mobiles
� avions
� fusées
� Lego Mindstorms
� automobiles (X-by-wire)
� ...
Deux tendances: de plus en plus performants, de plus en plus miniaturisés➜ de plus en plus complexes
Une caractéristique « nouvelle » : systèmes critiques➜ �abilité indispensable !
Introduction à la modélisation et à la véri�cation � p. 3/85
![Page 6: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/6.jpg)
Cachan, le 17 septembre 2003
Quelques bogues célèbres
➜ Therac 25, traitement aux rayons X des tumeurs cancéreuses
� « x Up Edit e Enter » en moins de 8s ➾ radiation 125 x la dose normale
� 6 décès aux États-Unis en 1986
� erreur logicielle !
Introduction à la modélisation et à la véri�cation � p. 4/85
![Page 7: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/7.jpg)
Cachan, le 17 septembre 2003
Quelques bogues célèbres
➜ Therac 25, traitement aux rayons X des tumeurs cancéreuses
� « x Up Edit e Enter » en moins de 8s ➾ radiation 125 x la dose normale
� 6 décès aux États-Unis en 1986
� erreur logicielle !
➜ AT&T
� un patch non véri�é dans le système d'exploitation
� une erreur dans un switch (en C)
� le réseau téléphonique de la côte est des États-Unis a été bloqué pendant 9h !
Introduction à la modélisation et à la véri�cation � p. 4/85
![Page 8: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/8.jpg)
Cachan, le 17 septembre 2003
Quelques bogues célèbres
➜ Therac 25, traitement aux rayons X des tumeurs cancéreuses
� « x Up Edit e Enter » en moins de 8s ➾ radiation 125 x la dose normale
� 6 décès aux États-Unis en 1986
� erreur logicielle !
➜ AT&T
� un patch non véri�é dans le système d'exploitation
� une erreur dans un switch (en C)
� le réseau téléphonique de la côte est des États-Unis a été bloqué pendant 9h !
➜ Le bogue pentium
� une erreur dans la division �ottante du processeur
� heureusement, un chercheur en théorie des nombres veillait...
� 470 millions de $
Introduction à la modélisation et à la véri�cation � p. 4/85
![Page 9: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/9.jpg)
Cachan, le 17 septembre 2003
Une solution parmi d'autres
Le système
Modélisation
véri�e-t-il la propriété ?
Introduction à la modélisation et à la véri�cation � p. 5/85
![Page 10: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/10.jpg)
Cachan, le 17 septembre 2003
Une solution parmi d'autres
Le système
Modélisation
véri�e-t-il
j=Algorithme demodel-checking
la propriété ?
Introduction à la modélisation et à la véri�cation � p. 5/85
![Page 11: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/11.jpg)
Cachan, le 17 septembre 2003
Modélisation & Véri�cation
Modèles
Introduction à la modélisation et à la véri�cation � p. 6/85
![Page 12: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/12.jpg)
Cachan, le 17 septembre 2003
Que souhaite-t-on modéliser ?
➜ pour les systèmes à étudier
� des structures de données (�les...)
� des types de données (entiers...)
� des canaux de communication
� des changements discrets d'états
� des changements continus d'états
➜ pour les propriétés à exprimer
� des implications, des connections logiques
� des successions temporelles (l'action b a lieu après l'action a)
� des propriétés d'états, de chemins
� des invariances (la température est toujours inférieure à 28 degrés)
� la présence d'un état bloquant
Introduction à la modélisation et à la véri�cation � p. 7/85
![Page 13: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/13.jpg)
Cachan, le 17 septembre 2003
Quels modèles ? (1)
➜ pour les systèmes à analyser : des systèmes de transitions
� les automates �nis
� les automates à pile
� les automates à compteur
� les automates temporisés
� les automates hybrides
� les réseaux de Petri
� les �message sequence charts�
� les algèbres de processus
� . . .
Introduction à la modélisation et à la véri�cation � p. 8/85
![Page 14: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/14.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Le digicode :
Porte ouverte5 4 0
*
5
5
*
*
Introduction à la modélisation et à la véri�cation � p. 9/85
![Page 15: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/15.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Le digicode :
Porte ouverte5 4 0
*
5
5
*
*
➜ Un distributeur
nb_j++
nb_j=4
nb_b > 0, donner_boisson, nb_b--
nb_b = 0, nb_j:=0
rendre_monnaie
Introduction à la modélisation et à la véri�cation � p. 9/85
![Page 16: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/16.jpg)
Cachan, le 17 septembre 2003
Composition de systèmes
Synchronisation binaire
signal! signal?
Introduction à la modélisation et à la véri�cation � p. 10/85
![Page 17: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/17.jpg)
Cachan, le 17 septembre 2003
Composition de systèmes
Synchronisation binaire
signal! signal?
Introduction à la modélisation et à la véri�cation � p. 10/85
![Page 18: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/18.jpg)
Cachan, le 17 septembre 2003
Composition de systèmes
Synchronisation binaire
signal!signal! signal?signal?
Introduction à la modélisation et à la véri�cation � p. 10/85
![Page 19: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/19.jpg)
Cachan, le 17 septembre 2003
Composition de systèmes
Synchronisation binaire
signal! signal?
Introduction à la modélisation et à la véri�cation � p. 10/85
![Page 20: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/20.jpg)
Cachan, le 17 septembre 2003
Composition de systèmes
Synchronisation binaire
signal! signal?
Exemple : entrée dans un bâtiment de l'ENS
passer_carte!
fermée ouverte
passer_carte?
referme
Introduction à la modélisation et à la véri�cation � p. 10/85
![Page 21: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/21.jpg)
Cachan, le 17 septembre 2003
Quels modèles ? (2)
➜ pour les spéci�cations : des langages logiques (ex : logique temporelle)
Formules de chemin :
G� « Toujours »
F� « Un jour »
�U�
�
« Jusqu'à »
X� « Dans l'état d'après »
Formules d'états :
A E
[Pnueli 1977]
Introduction à la modélisation et à la véri�cation � p. 11/85
![Page 22: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/22.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 23: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/23.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 24: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/24.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 25: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/25.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
AG((:section_critique_1) � (:section_critique_2))
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 26: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/26.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
AG((:section_critique_1) � (:section_critique_2))
➜ Le distributeur de billets ne donne pas d'argent tant que le code n'est pas correct.
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 27: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/27.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
AG((:section_critique_1) � (:section_critique_2))
➜ Le distributeur de billets ne donne pas d'argent tant que le code n'est pas correct.
A((:donne_argent)U(code_correct))
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 28: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/28.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
AG((:section_critique_1) � (:section_critique_2))
➜ Le distributeur de billets ne donne pas d'argent tant que le code n'est pas correct.
A((:donne_argent)U(code_correct))
➜ Si l'ascenseur est appelé au 6ème étage, alors il s'y arrêtera.
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 29: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/29.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
AG((:section_critique_1) � (:section_critique_2))
➜ Le distributeur de billets ne donne pas d'argent tant que le code n'est pas correct.
A((:donne_argent)U(code_correct))
➜ Si l'ascenseur est appelé au 6ème étage, alors il s'y arrêtera.
AG(appel_6 � (AF arrêt_6))
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 30: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/30.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
AG((:section_critique_1) � (:section_critique_2))
➜ Le distributeur de billets ne donne pas d'argent tant que le code n'est pas correct.
A((:donne_argent)U(code_correct))
➜ Si l'ascenseur est appelé au 6ème étage, alors il s'y arrêtera.
AG(appel_6 � (AF arrêt_6))
➜ La barrière du passage à niveau est ouverte in�niment souvent.
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 31: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/31.jpg)
Cachan, le 17 septembre 2003
Quelques exemples
➜ Il est possible d'atteindre l'état critique.
EF(état_critique)
➜ Deux processus ne peuvent pas être simultanément en section critique.
AG((:section_critique_1) � (:section_critique_2))
➜ Le distributeur de billets ne donne pas d'argent tant que le code n'est pas correct.
A((:donne_argent)U(code_correct))
➜ Si l'ascenseur est appelé au 6ème étage, alors il s'y arrêtera.
AG(appel_6 � (AF arrêt_6))
➜ La barrière du passage à niveau est ouverte in�niment souvent.
AG AF(barrière_ouverte)
Introduction à la modélisation et à la véri�cation � p. 12/85
![Page 32: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/32.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 33: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/33.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
G(pluie � F beau_temps)
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 34: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/34.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
G(pluie � F beau_temps)
➜ C'est en forgeant qu'on devient forgeron.
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 35: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/35.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
G(pluie � F beau_temps)
➜ C'est en forgeant qu'on devient forgeron.
(F forgeron) � (forger U forgeron)
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 36: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/36.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
G(pluie � F beau_temps)
➜ C'est en forgeant qu'on devient forgeron.
(F forgeron) � (forger U forgeron)
➜ Qui veut aller loin ménage sa monture.
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 37: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/37.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
G(pluie � F beau_temps)
➜ C'est en forgeant qu'on devient forgeron.
(F forgeron) � (forger U forgeron)
➜ Qui veut aller loin ménage sa monture.
G((F aller_loin) � ménager_monture)
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 38: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/38.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
G(pluie � F beau_temps)
➜ C'est en forgeant qu'on devient forgeron.
(F forgeron) � (forger U forgeron)
➜ Qui veut aller loin ménage sa monture.
G((F aller_loin) � ménager_monture)
➜ Tel qui rit vendredi, dimanche pleurera.
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 39: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/39.jpg)
Cachan, le 17 septembre 2003
Quelques exemples (suite)
➜ Après la pluie, le beau temps.
G(pluie � F beau_temps)
➜ C'est en forgeant qu'on devient forgeron.
(F forgeron) � (forger U forgeron)
➜ Qui veut aller loin ménage sa monture.
G((F aller_loin) � ménager_monture)
➜ Tel qui rit vendredi, dimanche pleurera.
G((rire � vendredi) � (:dimanche U (dimanche � pleurer)))
Introduction à la modélisation et à la véri�cation � p. 13/85
![Page 40: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/40.jpg)
Cachan, le 17 septembre 2003
Comment choisir les modèles ?
Compromis expressivité / facilité d'analyse
➜ Expressivité :
� représenter de nombreux systèmes
� les représenter succinctement
➜ Facilité d'analyse :
� méthodes ef�caces...
Introduction à la modélisation et à la véri�cation � p. 14/85
![Page 41: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/41.jpg)
Cachan, le 17 septembre 2003
Comment choisir les modèles ?
Compromis expressivité / facilité d'analyse
➜ Expressivité :
� représenter de nombreux systèmes
� les représenter succinctement
➜ Facilité d'analyse :
� méthodes ef�caces...
� ... si elles existent
Introduction à la modélisation et à la véri�cation � p. 14/85
![Page 42: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/42.jpg)
Cachan, le 17 septembre 2003
(
Introduction à la modélisation et à la véri�cation � p. 15/85
![Page 43: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/43.jpg)
Cachan, le 17 septembre 2003
Décidabilité ?
« Dé�nition » : un problème est dit décidable s'il existe un algorithme pour lerésoudre.
Propriété : il existe des problèmes non décidables
Exemple : un programme termine-t-il ? [Arrêt_programme]
➜ première réponse : on le lance et on regarde s'il s'arrête➜ bof, pas très satisfaisant : on attend combien de temps ?
➜ considérons le programme suivant :
Program P{
Si P s’arrête, alors bouclersinon s’arrêter
}
Introduction à la modélisation et à la véri�cation � p. 16/85
![Page 44: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/44.jpg)
Cachan, le 17 septembre 2003
Décidabilité ?
Program P{
Si P s’arrête, alors bouclersinon s’arrêter
}
Si le problème « Arrêt_programme » est décidable, alors :
➜ si P s'arrête, alors P boucle
➜ si P boucle, alors P s'arrête
Remarque : il y a même « plus » de problèmes non décidables que de problèmesdécidables.
Introduction à la modélisation et à la véri�cation � p. 17/85
![Page 45: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/45.jpg)
Cachan, le 17 septembre 2003
Un problème indécidable utile
La machine à deux compteurs, ou machine de Minsky.
ensemble �ni d'instructions sur deux compteurs, x et y, du type suivant :
➜ Incrémentation :
(p): x := x + 1; goto (q)
➜ Décrémentation :
(p): if x > 0 then x := x � 1; goto (q) else goto (r)
➜ Instruction spéciale « Arrêt »
Théorème [Minsky 67]. L'arrêt d'une machine à deux compteurs est indécidable.
Introduction à la modélisation et à la véri�cation � p. 18/85
![Page 46: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/46.jpg)
Cachan, le 17 septembre 2003
Notion de réduction
Soient P1 et P2 deux problèmes à résoudre. Supposons que l'on ait :
Algo(P1){
Quelques calculs;Algo(P2);Quelques calculs;
}
Si P1 est indécidable, alors P2 aussi est indécidable.
➜ P1 a été réduit à P2
Introduction à la modélisation et à la véri�cation � p. 19/85
![Page 47: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/47.jpg)
Cachan, le 17 septembre 2003
)
Introduction à la modélisation et à la véri�cation � p. 20/85
![Page 48: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/48.jpg)
Cachan, le 17 septembre 2003
Modélisation & Véri�cation
Analyse des systèmes
Introduction à la modélisation et à la véri�cation � p. 21/85
![Page 49: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/49.jpg)
Cachan, le 17 septembre 2003
Un exemple simple
Considérons la formule
� = G(� � XF�)
« Toujours, si � est vrai, alors plus tard, il y aura un � »
Idée : exprimer : � à l'aide d'un automate, B: ��
vrai :�
Propriété : si A est un automate �ni,
A véri�e � (équiv. tout chemin de A véri�e �) ssi A B: � n'accepte aucun mot
Introduction à la modélisation et à la véri�cation � p. 22/85
![Page 50: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/50.jpg)
Cachan, le 17 septembre 2003
Un exemple simple (suite)
L'automate suivant véri�e-t-il � ?
:�; :�
:�; :� �; �
:�; :�
Introduction à la modélisation et à la véri�cation � p. 23/85
![Page 51: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/51.jpg)
Cachan, le 17 septembre 2003
Un exemple simple (suite)
L'automate suivant véri�e-t-il � ?
:�; :�
:�; :� �; �
:�; :�
�vrai :�
Introduction à la modélisation et à la véri�cation � p. 23/85
![Page 52: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/52.jpg)
Cachan, le 17 septembre 2003
Un exemple simple (suite)
L'automate suivant véri�e-t-il � ?
:�; :�
:�; :� �; �
:�; :�
:�; :�
:�; :� �; �
:�; :�
�vrai :�
Introduction à la modélisation et à la véri�cation � p. 23/85
![Page 53: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/53.jpg)
Cachan, le 17 septembre 2003
Ce n'est pas toujours si simple...
Le problème élémentaire est le calcul du Post*, i.e. tous les états accessibles àpartir de l'état initial. On veut calculer tous les états sn tels que
s0 � s1 � s2 � � � � sn (équivalent à s0 ��
sn)
si s0 est l'état initial.
Introduction à la modélisation et à la véri�cation � p. 24/85
![Page 54: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/54.jpg)
Cachan, le 17 septembre 2003
Ce n'est pas toujours si simple...
Le problème élémentaire est le calcul du Post*, i.e. tous les états accessibles àpartir de l'état initial. On veut calculer tous les états sn tels que
s0 � s1 � s2 � � � � sn (équivalent à s0 ��
sn)
si s0 est l'état initial.
Problèmes potentiels :
➜ les systèmes souffrent d'une explosion combinatoire
➜ l'ensemble des états accessibles est (très souvent) in�ni
Introduction à la modélisation et à la véri�cation � p. 24/85
![Page 55: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/55.jpg)
Cachan, le 17 septembre 2003
Ce n'est pas toujours si simple...
Le problème élémentaire est le calcul du Post*, i.e. tous les états accessibles àpartir de l'état initial. On veut calculer tous les états sn tels que
s0 � s1 � s2 � � � � sn (équivalent à s0 ��
sn)
si s0 est l'état initial.
Problèmes potentiels :
➜ les systèmes souffrent d'une explosion combinatoire
➜ l'ensemble des états accessibles est (très souvent) in�ni
Conséquences :
➜ sur la décidabilité
➜ sur la complexité
Introduction à la modélisation et à la véri�cation � p. 24/85
![Page 56: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/56.jpg)
Cachan, le 17 septembre 2003
Problème de l'explosion combinatoire
a b
c
1 2
34
a,1 a,2
a,3a,4
b,1 b,2
b,3b,4
c,1 c,2
c,3c,4
➜ taille du produit exponentielle en le nombre de composants
Introduction à la modélisation et à la véri�cation � p. 25/85
![Page 57: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/57.jpg)
Cachan, le 17 septembre 2003
Un simulateur de train1421 machines
11102 transitions
3204 états locaux
10476 états dans le produit synchronisé
Introduction à la modélisation et à la véri�cation � p. 26/85
![Page 58: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/58.jpg)
Cachan, le 17 septembre 2003
Un simulateur de train1421 machines
11102 transitions
3204 états locaux
10476 états dans le produit synchronisé
Y a-t-il un bogue ?
Introduction à la modélisation et à la véri�cation � p. 26/85
![Page 59: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/59.jpg)
Cachan, le 17 septembre 2003
Solution : visualisation ?
Outil de visualisation de gros graphes, exemple de la norme IEEE1394http://www.win.tue.nl/�fvham/fsm/
Introduction à la modélisation et à la véri�cation � p. 27/85
![Page 60: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/60.jpg)
Cachan, le 17 septembre 2003
Solution : visualisation ?
Outil de visualisation de gros graphes, exemple de la norme IEEE1394http://www.win.tue.nl/�fvham/fsm/
➜ intéressant
➜ sans doute pas suf�sant
Introduction à la modélisation et à la véri�cation � p. 27/85
![Page 61: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/61.jpg)
Cachan, le 17 septembre 2003
Solution : visualisation ?
Outil de visualisation de gros graphes, exemple de la norme IEEE1394http://www.win.tue.nl/�fvham/fsm/
➜ intéressant
➜ sans doute pas suf�sant
L'explosion combinatoire est un aspect qu'ilne faudra pas négliger.
Introduction à la modélisation et à la véri�cation � p. 27/85
![Page 62: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/62.jpg)
Cachan, le 17 septembre 2003
L'in�ni...
s0
s2 s1
x := x + 1
x := 0
y := 0
x := x + 1
y := y � 2x := x � 1y := y + 3
Introduction à la modélisation et à la véri�cation � p. 28/85
![Page 63: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/63.jpg)
Cachan, le 17 septembre 2003
L'in�ni...
s0
s2 s1
x := x + 1
x := 0
y := 0
x := x + 1
y := y � 2x := x � 1y := y + 3
Une in�nité de con�gurations est accessible à partir de s0, par exemple :
(s0; (0;0)) � (s1; (1;0)) � (s1; (0; �3)) � (s1; (�1;6)) � (s1; (�2;9)) : : :
Introduction à la modélisation et à la véri�cation � p. 28/85
![Page 64: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/64.jpg)
Cachan, le 17 septembre 2003
L'in�ni...
s0
s2 s1
x := x + 1
x := 0
y := 0
x := x + 1
y := y � 2x := x � 1y := y + 3
Une in�nité de con�gurations est accessible à partir de s0, par exemple :
(s0; (0;0))
� (s1; (1;0)) � (s1; (0; �3)) � (s1; (�1;6)) � (s1; (�2;9)) : : :
On peut cependant se passer de l'in�ni :
Post*(s0; (0;0)) = s0 � ((0;0) + (1,0)*)
s1 � (f(1;0); (0;3)g + f(1;0); (0;3)g*)
s2 � (f(0;0); (1; 1); (2;2)g + f(3;0); (0;3)g*)
Introduction à la modélisation et à la véri�cation � p. 28/85
![Page 65: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/65.jpg)
Cachan, le 17 septembre 2003
Représentations symboliques
Ensemble in�ni / Représentation �nie
➜ dans le plan, une droitereprésentée par deux points
➜ ensemble de mots aa, aaaa, aaaaaa...représenté par une expression rationnelle aa(aa)
�
➜ ensemble d'entiers, représentation par semi-linéaires� cf exemple précédent
➜ ensemble de contraintes, polyèdres
Introduction à la modélisation et à la véri�cation � p. 29/85
![Page 66: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/66.jpg)
Cachan, le 17 septembre 2003
Une technique : l'accélération
Idée : calculer en une étape plusieurs (voire une in�nité d')étapes élémentaires dePost*
Exemple simple :
x := x + 1
x := 0
Au lieu de calculer
x = 0x:=x+1 � x = 1
x:=x+1 � x = 2x:=x+1 � x = 3
on calcule en une seule étape
x = 0x:=x+1 � � x
� �
Introduction à la modélisation et à la véri�cation � p. 30/85
![Page 67: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/67.jpg)
Cachan, le 17 septembre 2003
Une technique : l'accélération
Système producteur/consommateurVariables entières : i, b, o1, o2Condition initiale : i = 10, b=o1=o2=0
ew : si i>0 alors i:=i-1 et b:=b+1er1 : si b>0 alors o1:=o1+1 et b:=b-1er2 : si b>0 alors o2:=o2+1 et b:=b-1
S0ew � * S1
er1 ew � * S2er2 ew � * S3
avec➜ S1 = f10 = i + b et o1 = o2 = 0g
➜ S2 = f10 = i + b + o1 et o2 = 0g
➜ S3 = f10 = i + b + o1 + o2g
Donc Post*(S0) = S3 !
[Finkel,Leroux 2002]
Introduction à la modélisation et à la véri�cation � p. 31/85
![Page 68: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/68.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction
Idée : « simpli�er » le modèle M en �(M)
[Cousot,Cousot 1977]
Introduction à la modélisation et à la véri�cation � p. 32/85
![Page 69: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/69.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction
Idée : « simpli�er » le modèle M en �(M)
➜ [propriété de correction]
si �(M) véri�e la propriété �xée, alors M la véri�e aussi
[Cousot,Cousot 1977]
Introduction à la modélisation et à la véri�cation � p. 32/85
![Page 70: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/70.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction
Idée : « simpli�er » le modèle M en �(M)
➜ [propriété de correction]
si �(M) véri�e la propriété �xée, alors M la véri�e aussi
➜ [propriété de complétude]
si �(M) ne véri�e pas la propriété �xée, alors M ne la véri�e pas
[Cousot,Cousot 1977]
Introduction à la modélisation et à la véri�cation � p. 32/85
![Page 71: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/71.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction
Idée : « simpli�er » le modèle M en �(M)
➜ [propriété de correction]
si �(M) véri�e la propriété �xée, alors M la véri�e aussi
➜ [propriété de complétude]
si �(M) ne véri�e pas la propriété �xée, alors M ne la véri�e pas
➜ bien choisir les parties du modèle que l'on abstrait
[Cousot,Cousot 1977]
Introduction à la modélisation et à la véri�cation � p. 32/85
![Page 72: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/72.jpg)
Cachan, le 17 septembre 2003
Un exemple d'abstraction correcte
Introduction à la modélisation et à la véri�cation � p. 33/85
![Page 73: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/73.jpg)
Cachan, le 17 septembre 2003
Un exemple d'abstraction correcte
Introduction à la modélisation et à la véri�cation � p. 33/85
![Page 74: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/74.jpg)
Cachan, le 17 septembre 2003
Un exemple d'abstraction correcte
Introduction à la modélisation et à la véri�cation � p. 33/85
![Page 75: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/75.jpg)
Cachan, le 17 septembre 2003
Un exemple d'abstraction non correcte
Introduction à la modélisation et à la véri�cation � p. 34/85
![Page 76: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/76.jpg)
Cachan, le 17 septembre 2003
Un exemple d'abstraction non correcte
Introduction à la modélisation et à la véri�cation � p. 34/85
![Page 77: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/77.jpg)
Cachan, le 17 septembre 2003
Un exemple d'abstraction non correcte
Problème !
Introduction à la modélisation et à la véri�cation � p. 34/85
![Page 78: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/78.jpg)
Cachan, le 17 septembre 2003
Autres exemples en théorie des langages
➜ Déterminisation :
Introduction à la modélisation et à la véri�cation � p. 35/85
![Page 79: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/79.jpg)
Cachan, le 17 septembre 2003
Autres exemples en théorie des langages
➜ Déterminisation :
� correcte pour des propriétés telles que l'accessibilité, les langagesacceptés
Introduction à la modélisation et à la véri�cation � p. 35/85
![Page 80: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/80.jpg)
Cachan, le 17 septembre 2003
Autres exemples en théorie des langages
➜ Déterminisation :
� correcte pour des propriétés telles que l'accessibilité, les langagesacceptés
� non correcte pour des propriétés telles que la longueur du plus petitcycle, pour des propriétés de blocage...
Introduction à la modélisation et à la véri�cation � p. 35/85
![Page 81: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/81.jpg)
Cachan, le 17 septembre 2003
Autres exemples en théorie des langages
➜ Déterminisation :
� correcte pour des propriétés telles que l'accessibilité, les langagesacceptés
� non correcte pour des propriétés telles que la longueur du plus petitcycle, pour des propriétés de blocage...
➜ Minimisation :
Introduction à la modélisation et à la véri�cation � p. 35/85
![Page 82: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/82.jpg)
Cachan, le 17 septembre 2003
Autres exemples en théorie des langages
➜ Déterminisation :
� correcte pour des propriétés telles que l'accessibilité, les langagesacceptés
� non correcte pour des propriétés telles que la longueur du plus petitcycle, pour des propriétés de blocage...
➜ Minimisation :
� correcte pour des propriétés telles que l'accessibilité, etc...
Introduction à la modélisation et à la véri�cation � p. 35/85
![Page 83: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/83.jpg)
Cachan, le 17 septembre 2003
Autres exemples en théorie des langages
➜ Déterminisation :
� correcte pour des propriétés telles que l'accessibilité, les langagesacceptés
� non correcte pour des propriétés telles que la longueur du plus petitcycle, pour des propriétés de blocage...
➜ Minimisation :
� correcte pour des propriétés telles que l'accessibilité, etc...
� non correcte pour des propriétés de plus courts chemins, de blocage...
Introduction à la modélisation et à la véri�cation � p. 35/85
![Page 84: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/84.jpg)
Cachan, le 17 septembre 2003
Exercice
Exercice : Peut-on abstraire (de manière effective) des automates communicantsen remplaçant les canaux de communication par des canaux bornés tout en restantcorrect pour les propriétés d'accessibilité ?
Introduction à la modélisation et à la véri�cation � p. 36/85
![Page 85: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/85.jpg)
Cachan, le 17 septembre 2003
Exercice
Exercice : Peut-on abstraire (de manière effective) des automates communicantsen remplaçant les canaux de communication par des canaux bornés tout en restantcorrect pour les propriétés d'accessibilité ?
1.
automates communicantsabstraction � � automates à compteurs
écrire a dans le canal c c := c + 1
lire a dans le canal c si c > 0 alors c := c � 1
Introduction à la modélisation et à la véri�cation � p. 36/85
![Page 86: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/86.jpg)
Cachan, le 17 septembre 2003
Exercice
Exercice : Peut-on abstraire (de manière effective) des automates communicantsen remplaçant les canaux de communication par des canaux bornés tout en restantcorrect pour les propriétés d'accessibilité ?
1.
automates communicantsabstraction � � automates à compteurs
écrire a dans le canal c c := c + 1
lire a dans le canal c si c > 0 alors c := c � 1
L'abstraction � est complète pour les propriétés d'accessibilité !
Introduction à la modélisation et à la véri�cation � p. 36/85
![Page 87: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/87.jpg)
Cachan, le 17 septembre 2003
Exercice
Exercice : Peut-on abstraire (de manière effective) des automates communicantsen remplaçant les canaux de communication par des canaux bornés tout en restantcorrect pour les propriétés d'accessibilité ?
1.
automates communicantsabstraction � � automates à compteurs
écrire a dans le canal c c := c + 1
lire a dans le canal c si c > 0 alors c := c � 1
L'abstraction � est complète pour les propriétés d'accessibilité !➜ les automates communicants sont indécidables
Introduction à la modélisation et à la véri�cation � p. 36/85
![Page 88: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/88.jpg)
Cachan, le 17 septembre 2003
Exercice
Exercice : Peut-on abstraire (de manière effective) des automates communicantsen remplaçant les canaux de communication par des canaux bornés tout en restantcorrect pour les propriétés d'accessibilité ?
1.
automates communicantsabstraction � � automates à compteurs
écrire a dans le canal c c := c + 1
lire a dans le canal c si c > 0 alors c := c � 1
L'abstraction � est complète pour les propriétés d'accessibilité !➜ les automates communicants sont indécidables
2.
automates avec canaux bornés = automates �nis
Introduction à la modélisation et à la véri�cation � p. 36/85
![Page 89: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/89.jpg)
Cachan, le 17 septembre 2003
Exercice
Exercice : Peut-on abstraire (de manière effective) des automates communicantsen remplaçant les canaux de communication par des canaux bornés tout en restantcorrect pour les propriétés d'accessibilité ?
1.
automates communicantsabstraction � � automates à compteurs
écrire a dans le canal c c := c + 1
lire a dans le canal c si c > 0 alors c := c � 1
L'abstraction � est complète pour les propriétés d'accessibilité !➜ les automates communicants sont indécidables
2.
automates avec canaux bornés = automates �nis
➜ il ne peut pas y avoir d'abstraction correcte (pour l'accessibilité) bornant la tailledes canaux de communication
Introduction à la modélisation et à la véri�cation � p. 36/85
![Page 90: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/90.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 37/85
![Page 91: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/91.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 37/85
![Page 92: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/92.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 37/85
![Page 93: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/93.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 37/85
![Page 94: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/94.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
➜ abstraction trop grossière
Introduction à la modélisation et à la véri�cation � p. 37/85
![Page 95: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/95.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 38/85
![Page 96: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/96.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 38/85
![Page 97: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/97.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 38/85
![Page 98: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/98.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
Introduction à la modélisation et à la véri�cation � p. 38/85
![Page 99: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/99.jpg)
Cachan, le 17 septembre 2003
Une technique : l'abstraction par prédicats
➜ abstraction correcte
Introduction à la modélisation et à la véri�cation � p. 38/85
![Page 100: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/100.jpg)
Cachan, le 17 septembre 2003
Un exemple, l'abstraction de programmes
[BLAST � Henzinger, Jhala, Majumdar, Sutre 2002]
Introduction à la modélisation et à la véri�cation � p. 39/85
![Page 101: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/101.jpg)
Cachan, le 17 septembre 2003
Un exemple, l'abstraction de programmes
[BLAST � Henzinger, Jhala, Majumdar, Sutre 2002]
Introduction à la modélisation et à la véri�cation � p. 39/85
![Page 102: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/102.jpg)
Cachan, le 17 septembre 2003
Un exemple, l'abstraction de programmes
Prédicat de départ : �LOCK = 0� ou �LOCK = 1�
Introduction à la modélisation et à la véri�cation � p. 40/85
![Page 103: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/103.jpg)
Cachan, le 17 septembre 2003
Un exemple, l'abstraction de programmes
Prédicat de départ : �LOCK = 0� ou �LOCK = 1�
Introduction à la modélisation et à la véri�cation � p. 40/85
![Page 104: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/104.jpg)
Cachan, le 17 septembre 2003
Un exemple, l'abstraction de programmes
Prédicat de départ : �LOCK = 0� ou �LOCK = 1�
On peut continuer en raf�nant à l'aide du prédicat �new = old� ou �new != old�
➜ pas d'erreur
Introduction à la modélisation et à la véri�cation � p. 40/85
![Page 105: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/105.jpg)
Cachan, le 17 septembre 2003
Un outil : les simulations
Ce que l'on souhaite : pouvoir comparer des systèmes entre eux, en particuliersystème concret / système abstrait
Introduction à la modélisation et à la véri�cation � p. 41/85
![Page 106: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/106.jpg)
Cachan, le 17 septembre 2003
Un outil : les simulations
Ce que l'on souhaite : pouvoir comparer des systèmes entre eux, en particuliersystème concret / système abstrait
Langages : ok pour les langages rationnels, mais quid pour les langages avec descompteurs, des horloges, etc... ?
Introduction à la modélisation et à la véri�cation � p. 41/85
![Page 107: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/107.jpg)
Cachan, le 17 septembre 2003
Un outil : les simulations
Ce que l'on souhaite : pouvoir comparer des systèmes entre eux, en particuliersystème concret / système abstrait
Langages : ok pour les langages rationnels, mais quid pour les langages avec descompteurs, des horloges, etc... ?
➜ bof
Introduction à la modélisation et à la véri�cation � p. 41/85
![Page 108: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/108.jpg)
Cachan, le 17 septembre 2003
Un outil : les simulations
Ce que l'on souhaite : pouvoir comparer des systèmes entre eux, en particuliersystème concret / système abstrait
Langages : ok pour les langages rationnels, mais quid pour les langages avec descompteurs, des horloges, etc... ?
➜ bof
Comparaison plus structurelle (équivalence observationnelle) : une relation�
= f(●;●)g est une simulation si
� a
Introduction à la modélisation et à la véri�cation � p. 41/85
![Page 109: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/109.jpg)
Cachan, le 17 septembre 2003
Un outil : les simulations
Ce que l'on souhaite : pouvoir comparer des systèmes entre eux, en particuliersystème concret / système abstrait
Langages : ok pour les langages rationnels, mais quid pour les langages avec descompteurs, des horloges, etc... ?
➜ bof
Comparaison plus structurelle (équivalence observationnelle) : une relation�
= f(●;●)g est une simulation si
��
a
a
Introduction à la modélisation et à la véri�cation � p. 41/85
![Page 110: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/110.jpg)
Cachan, le 17 septembre 2003
Un outil : les simulations
Ce que l'on souhaite : pouvoir comparer des systèmes entre eux, en particuliersystème concret / système abstrait
Langages : ok pour les langages rationnels, mais quid pour les langages avec descompteurs, des horloges, etc... ?
➜ bof
Comparaison plus structurelle (équivalence observationnelle) : une relation�
= f(●;●)g est une simulation si
��
a
aOn dit alors que ● simule ●.
Introduction à la modélisation et à la véri�cation � p. 41/85
![Page 111: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/111.jpg)
Cachan, le 17 septembre 2003
Un outil : les simulations
Ce que l'on souhaite : pouvoir comparer des systèmes entre eux, en particuliersystème concret / système abstrait
Langages : ok pour les langages rationnels, mais quid pour les langages avec descompteurs, des horloges, etc... ?
➜ bof
Comparaison plus structurelle (équivalence observationnelle) : une relation�
= f(●;●)g est une simulation si
��
a
aOn dit alors que ● simule ●.
Une relation � est une bisimulation si � et ��1 sont des simulations.
Introduction à la modélisation et à la véri�cation � p. 41/85
![Page 112: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/112.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 113: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/113.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
a
c b
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 114: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/114.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
a
c b
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 115: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/115.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
� a
c b
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 116: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/116.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
� a
c b
➜
aa
a
a
a
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 117: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/117.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
� a
c b
➜
aa
a
a
a
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 118: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/118.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
� a
c b
➜
aa
a
� a
a
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 119: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/119.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
� a
c b
➜
aa
a
� a
a
aa
a
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 120: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/120.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
� a
c b
➜
aa
a
� a
a
aa
a
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 121: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/121.jpg)
Cachan, le 17 septembre 2003
Exemples
Les systèmes suivants sont-ils en bisimulation ? Si non, qui simule qui ?
➜
a
b
a
c
� a
c b
➜
aa
a
� a
a
�aa
a
Introduction à la modélisation et à la véri�cation � p. 42/85
![Page 122: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/122.jpg)
Cachan, le 17 septembre 2003
Exemples
➜
a
b
aa
ba
a
ba
aa
aa
b
ab
Introduction à la modélisation et à la véri�cation � p. 43/85
![Page 123: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/123.jpg)
Cachan, le 17 septembre 2003
Exemples
➜
a
b
aa
ba
a
ba
aa
aa
b
ab
Introduction à la modélisation et à la véri�cation � p. 43/85
![Page 124: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/124.jpg)
Cachan, le 17 septembre 2003
Exemples
➜
a
b
aa
ba
a
ba
aa
aa
b
ab
Exercice : quelle(s) relation(s) y a-t-il entre un automate et son déterminisé ? etentre un automate et son automate minimal ?
Introduction à la modélisation et à la véri�cation � p. 43/85
![Page 125: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/125.jpg)
Cachan, le 17 septembre 2003
Exemples
➜
a
b
aa
ba
a
ba
aa
aa
b
ab
Exercice : quelle(s) relation(s) y a-t-il entre un automate et son déterminisé ? etentre un automate et son automate minimal ?
➜ le déterminisé simule l'automate original
➜ le minimal simule l'automate original
➜ aucun n'est en bisimulation avec l'automate original
Introduction à la modélisation et à la véri�cation � p. 43/85
![Page 126: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/126.jpg)
Cachan, le 17 septembre 2003
Intérêt de la (bi)simulation
La bisimulation préserve les propriétés telles que :
➜ l'accessibilité
➜ le blocage
➜ la vivacité
➜ le langage reconnu
➜ ...
➜ bref, presque tout !
La simulation préserve moins de propriétés, par exemple elle ne préserve pas :
➜ le blocage
➜ la vivacité
Introduction à la modélisation et à la véri�cation � p. 44/85
![Page 127: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/127.jpg)
Cachan, le 17 septembre 2003
Systèmes temporisés
Introduction à la modélisation et à la véri�cation � p. 45/85
![Page 128: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/128.jpg)
Cachan, le 17 septembre 2003
Les systèmes temporisés
➜ systèmes dans lesquels le temps joue un rôle primordial
Exemple : l'alarme se déclenche moins de 2 minutes après le début de l'incendie
Introduction à la modélisation et à la véri�cation � p. 46/85
![Page 129: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/129.jpg)
Cachan, le 17 septembre 2003
Les systèmes temporisés
➜ systèmes dans lesquels le temps joue un rôle primordial
Exemple : l'alarme se déclenche moins de 2 minutes après le début de l'incendie
AG (incendie � AF<2alarme)
Introduction à la modélisation et à la véri�cation � p. 46/85
![Page 130: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/130.jpg)
Cachan, le 17 septembre 2003
Les systèmes temporisés
➜ systèmes dans lesquels le temps joue un rôle primordial
Exemple : l'alarme se déclenche moins de 2 minutes après le début de l'incendie
AG (incendie � AF<2alarme)
AG (incendie � x in AF(x < 2
�alarme))
Introduction à la modélisation et à la véri�cation � p. 46/85
![Page 131: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/131.jpg)
Cachan, le 17 septembre 2003
Les systèmes temporisés
➜ systèmes dans lesquels le temps joue un rôle primordial
Exemple : l'alarme se déclenche moins de 2 minutes après le début de l'incendie
AG (incendie � AF<2alarme)
AG (incendie � x in AF(x < 2
�alarme))
max(X;
� �
X
�
[a]X
�
(incendie � x in max(Y; alarme
�
(x < 2
� � �
Y
� �
a
�
Y))))
Introduction à la modélisation et à la véri�cation � p. 46/85
![Page 132: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/132.jpg)
Cachan, le 17 septembre 2003
Le digicode
➜ Le digicode :
Porte ouverte5 4 0
*
5
5
*
*
Introduction à la modélisation et à la véri�cation � p. 47/85
![Page 133: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/133.jpg)
Cachan, le 17 septembre 2003
Le digicode
➜ Le digicode :
Porte ouverte5, x:=0 4 0, x<5
*
5, x:=0
5, x:=0
*
*
Introduction à la modélisation et à la véri�cation � p. 47/85
![Page 134: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/134.jpg)
Cachan, le 17 septembre 2003
Le digicode
➜ Le digicode :
Porte ouverte5, x:=0 4 0, x<5
*
5, x:=0
5, x:=0
*
*
0; x � 5
Introduction à la modélisation et à la véri�cation � p. 47/85
![Page 135: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/135.jpg)
Cachan, le 17 septembre 2003
Le cuit-�uf
➜ Le cuit-�uf : on souhaite faire cuire un �uf dur (donc 5 minutes ) et onne dispose que d'un sablier de 7 minutes et d'un sablier de 10 minutes.Comment faire ?
Introduction à la modélisation et à la véri�cation � p. 48/85
![Page 136: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/136.jpg)
Cachan, le 17 septembre 2003
Le cuit-�uf
➜ Le cuit-�uf : on souhaite faire cuire un �uf dur (donc 5 minutes ) et onne dispose que d'un sablier de 7 minutes et d'un sablier de 10 minutes.Comment faire ?
x1 = m1; t = 5
x2 = m2; t = 5
xi = mi; xj := 0; t := 0
xi = mi; xj := 0
x1 horloge pour le minuteur de 7 minutes (m1 = 7)
x2 horloge pour le minuteur de 10 minutes (m2 = 10)
t horloge pour mesurer les 5 minutes
Introduction à la modélisation et à la véri�cation � p. 48/85
![Page 137: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/137.jpg)
Cachan, le 17 septembre 2003
Les aventuriers
➜ Quatre aventuriers souhaitent traverser un pont en mauvais état. Ils nemettent pas tous le même temps à faire la traversée. L'un met 5 minutes, unautre 10 minutes, un autre encore 20 minutes et le dernier met 25 minutes.
Question : Peuvent-ils tous traverser le pont en moins de 60 minutes,sachant qu'il faut obligatoirement la torche pour traverser et que le pont nepeut pas supporter le poids de plus de deux personnes en même temps.
Introduction à la modélisation et à la véri�cation � p. 49/85
![Page 138: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/138.jpg)
Cachan, le 17 septembre 2003
Les aventuriers
Un aventurier (t, temps de traversée) :
sécurité
danger
y � t, lâche!
�
= 0, prend!, y := 0
y � t, lâche!
�
= 1, prend!, y := 0
Introduction à la modélisation et à la véri�cation � p. 50/85
![Page 139: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/139.jpg)
Cachan, le 17 septembre 2003
Les aventuriers
Un aventurier (t, temps de traversée) :
sécurité
danger
y � t, lâche!
�
= 0, prend!, y := 0
y � t, lâche!
�
= 1, prend!, y := 0
La torche : prend?
prend?
lâche?
lâche?,
�
:= 1 ��
Introduction à la modélisation et à la véri�cation � p. 50/85
![Page 140: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/140.jpg)
Cachan, le 17 septembre 2003
Les aventuriers
Introduction à la modélisation et à la véri�cation � p. 51/85
![Page 141: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/141.jpg)
Cachan, le 17 septembre 2003
Le passage à niveau
➜ Un train
Loin
Avant, xi < 30
Dedans, xi < 20
Approche!; xi := 0
20 < xi < 30; xi := 0
10 < xi < 20; Sortie!
Introduction à la modélisation et à la véri�cation � p. 52/85
![Page 142: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/142.jpg)
Cachan, le 17 septembre 2003
Le passage à niveau
➜ La barrière
Ouverte
FerméeOuverture, Hg < 10
Fermeture, Hg < 10Ferme?, Hg := 0
Hg < 10
Ouvre?, Hg := 0
Hg < 10
Introduction à la modélisation et à la véri�cation � p. 53/85
![Page 143: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/143.jpg)
Cachan, le 17 septembre 2003
Le passage à niveau
➜ Le contrôleur
c1, Hc � 20 c2, Hc � 10c0Approche? Hc := 0Sortie?, Hc := 0
Hc � 10, Ferme!
Sortie?
Approche?
Sortie?
Hc = 20, Ouvre!
Approche?
Introduction à la modélisation et à la véri�cation � p. 54/85
![Page 144: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/144.jpg)
Cachan, le 17 septembre 2003
Le passage à niveau
Exemples de propriétés à véri�er :
➜ La barrière est-elle fermée lorsque le train est dans le passage à niveau ?
Introduction à la modélisation et à la véri�cation � p. 55/85
![Page 145: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/145.jpg)
Cachan, le 17 septembre 2003
Le passage à niveau
Exemples de propriétés à véri�er :
➜ La barrière est-elle fermée lorsque le train est dans le passage à niveau ?
AG(train:Dedans � barrière.Fermée)
Introduction à la modélisation et à la véri�cation � p. 55/85
![Page 146: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/146.jpg)
Cachan, le 17 septembre 2003
Le passage à niveau
Exemples de propriétés à véri�er :
➜ La barrière est-elle fermée lorsque le train est dans le passage à niveau ?
AG(train:Dedans � barrière.Fermée)
➜ La barrière reste-t-elle toujours fermée moins de 5 minutes ?
Introduction à la modélisation et à la véri�cation � p. 55/85
![Page 147: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/147.jpg)
Cachan, le 17 septembre 2003
Le passage à niveau
Exemples de propriétés à véri�er :
➜ La barrière est-elle fermée lorsque le train est dans le passage à niveau ?
AG(train:Dedans � barrière.Fermée)
➜ La barrière reste-t-elle toujours fermée moins de 5 minutes ?
:EF(barrière.Fermée
�
(barrière.Fermée U>5 min :barrière.Fermée))
Introduction à la modélisation et à la véri�cation � p. 55/85
![Page 148: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/148.jpg)
Cachan, le 17 septembre 2003
Le modèle des automates temporisés
x, y : horloges [Alur & Dill - 1990's]
p q
y < 4; a; x := 0
x = 5
� x � y � 2; b
c; y := 0
garde action remise à zéro
p a�
3:2q c�
5:1q b�
8:2p : : :
valeur de x 0 0 1:9 5 : : :
valeur de y 0 3:2 0 3:1 : : :
valuation des horloges
➜ mot temporisé (a;3:2)(c;5:1)(b;8:2):::
Introduction à la modélisation et à la véri�cation � p. 56/85
![Page 149: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/149.jpg)
Cachan, le 17 septembre 2003
Quelques constatations
➜ une con�guration du système, c'est :
� un état de contrôle
� une valeur pour chaque horloge
➜ ensemble in�ni (non discret) de con�gurations
➜ toutes les variables avancent à la même vitesse
But : construire une abstraction �nie, correcte et complète
Introduction à la modélisation et à la véri�cation � p. 57/85
![Page 150: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/150.jpg)
Cachan, le 17 septembre 2003
L'abstraction des régions
0 1 2 3 x
1
2
yÉquivalence d'index �ni
Introduction à la modélisation et à la véri�cation � p. 58/85
![Page 151: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/151.jpg)
Cachan, le 17 septembre 2003
L'abstraction des régions
0 1 2 3 x
1
2
yÉquivalence d'index �ni
➜ « compatibilité » entre les régions et les contraintes
Introduction à la modélisation et à la véri�cation � p. 58/85
![Page 152: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/152.jpg)
Cachan, le 17 septembre 2003
L'abstraction des régions
0 1 2 3 x
1
2
yÉquivalence d'index �ni
� �
➜ « compatibilité » entre les régions et les contraintes
➜ « compatibilité » entre les régions et l'écoulement du temps
Introduction à la modélisation et à la véri�cation � p. 58/85
![Page 153: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/153.jpg)
Cachan, le 17 septembre 2003
L'abstraction des régions
0 1 2 3 x
1
2
yÉquivalence d'index �ni
� �
➜ « compatibilité » entre les régions et les contraintes
➜ « compatibilité » entre les régions et l'écoulement du temps
Introduction à la modélisation et à la véri�cation � p. 58/85
![Page 154: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/154.jpg)
Cachan, le 17 septembre 2003
L'abstraction des régions
0 1 2 3 x
1
2
yÉquivalence d'index �ni
➜ « compatibilité » entre les régions et les contraintes
➜ « compatibilité » entre les régions et l'écoulement du temps
➜ une propriété de bisimulation
Introduction à la modélisation et à la véri�cation � p. 58/85
![Page 155: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/155.jpg)
Cachan, le 17 septembre 2003
L'abstraction des régions
0 1 2 3 x
1
2
yÉquivalence d'index �ni
région dé�nie parIx =]1; 2[, Iy =]0; 1[
fxg < fyg
➜ « compatibilité » entre les régions et les contraintes
➜ « compatibilité » entre les régions et l'écoulement du temps
➜ une propriété de bisimulation
Introduction à la modélisation et à la véri�cation � p. 58/85
![Page 156: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/156.jpg)
Cachan, le 17 septembre 2003
Quelques remarques
Bisimulation faible pour le temps
� a
Introduction à la modélisation et à la véri�cation � p. 59/85
![Page 157: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/157.jpg)
Cachan, le 17 septembre 2003
Quelques remarques
Bisimulation faible pour le temps
��
a
a
Introduction à la modélisation et à la véri�cation � p. 59/85
![Page 158: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/158.jpg)
Cachan, le 17 septembre 2003
Quelques remarques
Bisimulation faible pour le temps
��
a
a
�
d > 0�(d)
Introduction à la modélisation et à la véri�cation � p. 59/85
![Page 159: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/159.jpg)
Cachan, le 17 septembre 2003
Quelques remarques
Bisimulation faible pour le temps
��
a
a
�
d > 0
�
d
�
> 0
�(d)
�(d�
)
Introduction à la modélisation et à la véri�cation � p. 59/85
![Page 160: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/160.jpg)
Cachan, le 17 septembre 2003
Quelques remarques
Bisimulation faible pour le temps
��
a
a
�
d > 0
�
d
�
> 0
�(d)
�(d�
)
Exemple du calcul du successeur
0 1 2 3 x
1
2
y
région dé�nie par
Ix =]1; 2[, Iy =]0; 1[
fxg < fyg
région successeur dé�nie par
Ix =]1; 2[; Iy = f1g
Introduction à la modélisation et à la véri�cation � p. 59/85
![Page 161: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/161.jpg)
Cachan, le 17 septembre 2003
Quelques remarques
Bisimulation faible pour le temps
��
a
a
�
d > 0
�
d
�
> 0
�(d)
�(d�
)
Remarque : La bisimulation faible ne permet pas de véri�er des propriétéstemporisées : nécessité d'introduire de nouvelles horloges.
Introduction à la modélisation et à la véri�cation � p. 59/85
![Page 162: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/162.jpg)
Cachan, le 17 septembre 2003
L'automate des régions
automate temporisé abstraction des régions
qg;a;C:=0
�������������� � q � est transformée en :
(q; R) a���������� � (q �; R �) s'il existe R � � � Succ
�
t (R) t.q.
➜ R
� � �
g
➜ [C 0]R � � � R �
!
(automate des régions) = UNTIME(
!
(automate temporisé))
où UNTIME((a1; t1)(a2; t2) : : : ) = a1a2 : : :
Introduction à la modélisation et à la véri�cation � p. 60/85
![Page 163: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/163.jpg)
Cachan, le 17 septembre 2003
Un exemple [AD 90's]
0 1 x
1
y
Introduction à la modélisation et à la véri�cation � p. 61/85
![Page 164: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/164.jpg)
Cachan, le 17 septembre 2003
Résultat fondamental
L'abstraction des régions est correcte vis-à-vis de l'accessibilité.
Le problème de l'accessibilité est décidable pour le modèle desautomates temporisés
Cependant, c'est un problème PSPACE-complet.
Introduction à la modélisation et à la véri�cation � p. 62/85
![Page 165: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/165.jpg)
Cachan, le 17 septembre 2003
Extension des automates temporisés
On peut imaginer :
➜ ajouter des actions silencieuses [BDGP98]
➜ autoriser plus de types de gardes (pour l'instant, on ne peut utiliser quex � y " # c et x " # c) [BD00]
➜ effectuer plus d'opérations sur les horloges [BDFP00]
➜ autoriser des variables un peu étendues par rapport aux horloges➜ systèmes hybrides
[ACHH93,Hen96,HKPV98]
Introduction à la modélisation et à la véri�cation � p. 63/85
![Page 166: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/166.jpg)
Cachan, le 17 septembre 2003
Pentes 0/1
Si l'on autorise d'arrêter les horloges, l'accessibilité devient indécidable
Introduction à la modélisation et à la véri�cation � p. 64/85
![Page 167: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/167.jpg)
Cachan, le 17 septembre 2003
Pentes 0/1
Si l'on autorise d'arrêter les horloges, l'accessibilité devient indécidable➜ par réduction d'une machine à deux compteurs
compteur c codé par deux horloges xc et yc, t.q. c = xc � yc
Introduction à la modélisation et à la véri�cation � p. 64/85
![Page 168: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/168.jpg)
Cachan, le 17 septembre 2003
Pentes 0/1
Si l'on autorise d'arrêter les horloges, l'accessibilité devient indécidable➜ par réduction d'une machine à deux compteurs
compteur c codé par deux horloges xc et yc, t.q. c = xc � yc
�xc = 1
�yc = 0
�xd = 0
�yd = 0
z = 1; z := 0z := 0
Incrémentation du compteur c
Introduction à la modélisation et à la véri�cation � p. 64/85
![Page 169: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/169.jpg)
Cachan, le 17 septembre 2003
Pentes 0/1
Si l'on autorise d'arrêter les horloges, l'accessibilité devient indécidable➜ par réduction d'une machine à deux compteurs
compteur c codé par deux horloges xc et yc, t.q. c = xc � yc
�xc = 1
�yc = 0
�xd = 0
�yd = 0
z = 1; z := 0z := 0
Incrémentation du compteur c
�xc = 0
�yc = 1
�xd = 0
�yd = 0
xc � yc > 0
z = 0 z = 1; z := 0z := 0
Décrémentation du compteur c
z = 0
xc � yc = 0
Introduction à la modélisation et à la véri�cation � p. 64/85
![Page 170: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/170.jpg)
Cachan, le 17 septembre 2003
Utiliser des gardes x + y $ c
x + y % c et x % c [Bérard,Dufourd 2000]
Introduction à la modélisation et à la véri�cation � p. 65/85
![Page 171: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/171.jpg)
Cachan, le 17 septembre 2003
Utiliser des gardes x + y $ c
x + y % c et x % c [Bérard,Dufourd 2000]
➜ Décidabilité : - avec deux horloges, décidable en utilisant
l'abstraction basée sur les régions
0 1 2 x
1
2
y
Introduction à la modélisation et à la véri�cation � p. 65/85
![Page 172: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/172.jpg)
Cachan, le 17 septembre 2003
Utiliser des gardes x + y $ c
x + y % c et x % c [Bérard,Dufourd 2000]
➜ Décidabilité : - avec deux horloges, décidable en utilisant
l'abstraction basée sur les régions
0 1 2 x
1
2
y
- avec quatre horloges (ou plus), indécidable !
➜ preuve par réduction de l'arrêt d'une machine à deux compteurs
Introduction à la modélisation et à la véri�cation � p. 65/85
![Page 173: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/173.jpg)
Cachan, le 17 septembre 2003
Preuve d'indécidabilité
20 21 22 23 24 25 26 temps
c c c c c c c c ccd ddd d dd d dd
c reste inchangé c est incrémenté
d est décrémenté
➜ simulation de � décrémentation de d
� incrémentation de c
On va utiliser quatre horloges :
� u, horloge qui rythme le temps (chaque unité de temps)
� x0, x1, x2 : horloges références pour les deux compteurs
�xi référence pour c� � �dernière fois où xi a été remise à zéro =
dernière fois que l'action c a été faite�
[Bérard,Dufourd 2000]Introduction à la modélisation et à la véri�cation � p. 66/85
![Page 174: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/174.jpg)
Cachan, le 17 septembre 2003
Preuve d'indécidabilité (suite)➜ Incrément du compteur c:
u = 1; &; u := 0
x2 := 0
x0 � 2; u + x2 = 1; c; x2 := 0
u + x2 = 1
x0 > 2; c; x2 := 0
réf pour c est x0 réf pour c est x2
➜ Décrément du compteur c :
u = 1; &; u := 0
x2 := 0
x0 < 2; u + x2 = 1; c; x2 := 0
u + x2 = 1
x0 = 2; &; x2 := 0
u = 1; x0 = 2; &; u := 0; x2 := 0
Introduction à la modélisation et à la véri�cation � p. 67/85
![Page 175: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/175.jpg)
Cachan, le 17 septembre 2003
Récapitulatif
➜ Deux horloges : décidable !
0 1 2 x
1
2
y
➜ Quatre horloges et plus : indécidable !
Introduction à la modélisation et à la véri�cation � p. 68/85
![Page 176: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/176.jpg)
Cachan, le 17 septembre 2003
Récapitulatif
➜ Deux horloges : décidable !
0 1 2 x
1
2
y
➜ Trois horloges : question ouverte
➜ Quatre horloges et plus : indécidable !
Introduction à la modélisation et à la véri�cation � p. 68/85
![Page 177: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/177.jpg)
Cachan, le 17 septembre 2003
Implémentation des automates temporisés
La construction de l'automate des régions n'est pas utilisée en pratique.
➜ explosion combinatoire(le nombre de régions est exponentielle en le nombre d'horloges)
➜ pas de structures de données réellement adaptées
Introduction à la modélisation et à la véri�cation � p. 69/85
![Page 178: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/178.jpg)
Cachan, le 17 septembre 2003
Implémentation des automates temporisés
La construction de l'automate des régions n'est pas utilisée en pratique.
➜ explosion combinatoire(le nombre de régions est exponentielle en le nombre d'horloges)
➜ pas de structures de données réellement adaptées
Des algorithmes de minimisation de l'automate des régions ont été proposés...[Alur & Co 1992] [Tripakis,Yovine 2001]
Introduction à la modélisation et à la véri�cation � p. 69/85
![Page 179: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/179.jpg)
Cachan, le 17 septembre 2003
Implémentation des automates temporisés
La construction de l'automate des régions n'est pas utilisée en pratique.
➜ explosion combinatoire(le nombre de régions est exponentielle en le nombre d'horloges)
➜ pas de structures de données réellement adaptées
Des algorithmes de minimisation de l'automate des régions ont été proposés...[Alur & Co 1992] [Tripakis,Yovine 2001]
... mais des techniques à la volée sont préférées.
Introduction à la modélisation et à la véri�cation � p. 69/85
![Page 180: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/180.jpg)
Cachan, le 17 septembre 2003
Analyse d'accessibilité
➜ analyse en avant (Post*) :calculer les successeurs des con�gurations initiales
F
I
Introduction à la modélisation et à la véri�cation � p. 70/85
![Page 181: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/181.jpg)
Cachan, le 17 septembre 2003
Analyse d'accessibilité
➜ analyse en avant (Post*) :calculer les successeurs des con�gurations initiales
F
I
Introduction à la modélisation et à la véri�cation � p. 70/85
![Page 182: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/182.jpg)
Cachan, le 17 septembre 2003
Analyse d'accessibilité
➜ analyse en avant (Post*) :calculer les successeurs des con�gurations initiales
F
I
➜ analyse en arrière (Pré*) :calculer les prédécesseurs des con�gurations �nales
I
F
Introduction à la modélisation et à la véri�cation � p. 70/85
![Page 183: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/183.jpg)
Cachan, le 17 septembre 2003
Analyse d'accessibilité
➜ analyse en avant (Post*) :calculer les successeurs des con�gurations initiales
F
I
➜ analyse en arrière (Pré*) :calculer les prédécesseurs des con�gurations �nales
I
F
Introduction à la modélisation et à la véri�cation � p. 70/85
![Page 184: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/184.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière
' ' �g; a; C := 0
(�������������������������������������������[C ( 0]�1(Z ) (C = 0))
) g Z
Introduction à la modélisation et à la véri�cation � p. 71/85
![Page 185: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/185.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière
' ' �g; a; C := 0
(�������������������������������������������[C ( 0]�1(Z ) (C = 0))
) g Z
Z
Introduction à la modélisation et à la véri�cation � p. 71/85
![Page 186: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/186.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière
' ' �g; a; C := 0
(�������������������������������������������[C ( 0]�1(Z ) (C = 0))
) g Z
Z [C * 0]�1(Z + (C = 0))
Introduction à la modélisation et à la véri�cation � p. 71/85
![Page 187: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/187.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière
' ' �g; a; C := 0
(�������������������������������������������[C ( 0]�1(Z ) (C = 0))
) g Z
Z [C * 0]�1(Z + (C = 0))
Introduction à la modélisation et à la véri�cation � p. 71/85
![Page 188: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/188.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière
' ' �g; a; C := 0
(�������������������������������������������[C ( 0]�1(Z ) (C = 0))
) g Z
Z [C * 0]�1(Z + (C = 0))
*�������������������������������������������[C * 0]�1(Z + (C = 0))
+ g
Introduction à la modélisation et à la véri�cation � p. 71/85
![Page 189: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/189.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière
' ' �g; a; C := 0
(�������������������������������������������[C ( 0]�1(Z ) (C = 0))
) g Z
Z [C * 0]�1(Z + (C = 0))
*�������������������������������������������[C * 0]�1(Z + (C = 0))
+ g
Le calcul exact en arrière termine !
Introduction à la modélisation et à la véri�cation � p. 71/85
![Page 190: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/190.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière (suite)
Si
,
est un automate temporisé, on construit l'ensemble de régions associé.
Grâce à la propriété de bisimulation, on a :
�Chaque ensemble de valuations calculé par analyse en arrière estune union �nie de régions�
Introduction à la modélisation et à la véri�cation � p. 72/85
![Page 191: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/191.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière (suite)
Si
,
est un automate temporisé, on construit l'ensemble de régions associé.
Grâce à la propriété de bisimulation, on a :
�Chaque ensemble de valuations calculé par analyse en arrière estune union �nie de régions�
Soit R une région. Supposons :
➜ v -*�
R (par ex. v + t - R)➜ v
� .
reg. v
Il existe un t
�
t.q. v
�
+ t
� .
reg. v + t, ce qui implique que v
�
+ t
� - R et donc v
� - *�R .
Introduction à la modélisation et à la véri�cation � p. 72/85
![Page 192: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/192.jpg)
Cachan, le 17 septembre 2003
Analyse en arrière (suite)
Si
,
est un automate temporisé, on construit l'ensemble de régions associé.
Grâce à la propriété de bisimulation, on a :
�Chaque ensemble de valuations calculé par analyse en arrière estune union �nie de régions�
Cependant, le calcul en arrière ne se prête pas à l'utilisation de variables entières...
i := j:k +
'
:m
Introduction à la modélisation et à la véri�cation � p. 72/85
![Page 193: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/193.jpg)
Cachan, le 17 septembre 2003
Analyse en avant
' ' �g; a; C := 0
Z [C ( 0](��
Z ) g)zones
Une zone est un ensemble de valuations dé�ni par une contrainte
� ::= x % c j x � y % c j � � �
Introduction à la modélisation et à la véri�cation � p. 73/85
![Page 194: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/194.jpg)
Cachan, le 17 septembre 2003
Analyse en avant
' ' �g; a; C := 0
Z [C ( 0](��
Z ) g)zones
Z
Introduction à la modélisation et à la véri�cation � p. 73/85
![Page 195: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/195.jpg)
Cachan, le 17 septembre 2003
Analyse en avant
' ' �g; a; C := 0
Z [C ( 0](��
Z ) g)zones
Z � �Z
Introduction à la modélisation et à la véri�cation � p. 73/85
![Page 196: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/196.jpg)
Cachan, le 17 septembre 2003
Analyse en avant
' ' �g; a; C := 0
Z [C ( 0](��
Z ) g)zones
Z � �Z
� �
Z ) g
Introduction à la modélisation et à la véri�cation � p. 73/85
![Page 197: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/197.jpg)
Cachan, le 17 septembre 2003
Analyse en avant
' ' �g; a; C := 0
Z [C ( 0](��
Z ) g)zones
Z � �Z
� �
Z ) g [y ( 0](�
�
Z ) g)
Introduction à la modélisation et à la véri�cation � p. 73/85
![Page 198: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/198.jpg)
Cachan, le 17 septembre 2003
Analyse en avant
' ' �g; a; C := 0
Z [C ( 0](��
Z ) g)zones
Z � �Z
� �
Z ) g [y ( 0](�
�
Z ) g)
➜ un problème de terminaison
Introduction à la modélisation et à la véri�cation � p. 73/85
![Page 199: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/199.jpg)
Cachan, le 17 septembre 2003
Non-terminaison de l'analyse en avant
y := 0,x := 0
x � 1 � y = 1,y := 0
0 1 2 3 4 5 x
1
2
y
➜ une in�nité d'étapes...
Introduction à la modélisation et à la véri�cation � p. 74/85
![Page 200: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/200.jpg)
Cachan, le 17 septembre 2003
« Solutions » à ce problème
(par ex. dans [Larsen,Pettersson,Yi 1997] ou dans [Daws,Tripakis 1998])
➜ test d'inclusion : si Z
�
Z
�
et Z
�
déjà traité, alors on peut ne pas
traiter Z
➜ correct pour l'accessibilité
: : :
Introduction à la modélisation et à la véri�cation � p. 75/85
![Page 201: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/201.jpg)
Cachan, le 17 septembre 2003
« Solutions » à ce problème
(par ex. dans [Larsen,Pettersson,Yi 1997] ou dans [Daws,Tripakis 1998])
➜ test d'inclusion : si Z
�
Z
�
et Z
�
déjà traité, alors on peut ne pas
traiter Z
➜ correct pour l'accessibilité
➜ activité: éliminer les horloges redondantes [Daws,Yovine 1996]
➜ correct pour l'accessibilité
qg;a;C:=0
��������������
� q� / Act(q) = horloges(g) 0 (Act(q
�
) n C)
: : :
Introduction à la modélisation et à la véri�cation � p. 75/85
![Page 202: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/202.jpg)
Cachan, le 17 septembre 2003
« Solutions » à ce problème (suite)
➜ approximation par enveloppe convexe : si Z et Z
�
sont calculés, alors
on surapproxime en prenant « Z
1
Z
�
».
➜ �semi-correct� pour l'accessibilité
Introduction à la modélisation et à la véri�cation � p. 76/85
![Page 203: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/203.jpg)
Cachan, le 17 septembre 2003
« Solutions » à ce problème (suite)
➜ approximation par enveloppe convexe : si Z et Z
�
sont calculés, alors
on surapproxime en prenant « Z
1
Z
�
».
➜ �semi-correct� pour l'accessibilité
➜ extrapolation, un opérateur d'élargissement sur les zones
Introduction à la modélisation et à la véri�cation � p. 76/85
![Page 204: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/204.jpg)
Cachan, le 17 septembre 2003
La structure de données DBM
DBM signi�e « Difference Bounded Matrice » [Dill 1989]
(x1 � 3)
�
(x2 � 5)
�
(x1 � x2 � 4)
x0 x1 x2
x0
x1
x2
+1 -3 +1
+1 +1 45 +1 +1
Introduction à la modélisation et à la véri�cation � p. 77/85
![Page 205: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/205.jpg)
Cachan, le 17 septembre 2003
La structure de données DBM
DBM signi�e « Difference Bounded Matrice » [Dill 1989]
(x1 � 3)
�
(x2 � 5)
�
(x1 � x2 � 4)
x0 x1 x2
x0
x1
x2
+1 -3 +1
+1 +1 45 +1 +1
➜ Existence d'une forme normale
3 4 9
5
2
0 -3 0
9 0 45 2 0
Introduction à la modélisation et à la véri�cation � p. 77/85
![Page 206: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/206.jpg)
Cachan, le 17 septembre 2003
La structure de données DBM
DBM signi�e « Difference Bounded Matrice » [Dill 1989]
(x1 � 3)
�
(x2 � 5)
�
(x1 � x2 � 4)
x0 x1 x2
x0
x1
x2
+1 -3 +1
+1 +1 45 +1 +1
➜ Existence d'une forme normale
3 4 9
5
2
0 -3 0
9 0 45 2 0
➜ Toutes les opérations sur les zones peuvent être calculées avec les DBMs
Introduction à la modélisation et à la véri�cation � p. 77/85
![Page 207: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/207.jpg)
Cachan, le 17 septembre 2003
L'opérateur d'extrapolation
Fixons un entier k (� &� représente un entier entre �k et +k)
2 3456> k 2
2 2 2
3456< �k 2 2
7
2 89:;+1 2
2 2 2
3456�k 2 2
➜ �intuitivement�, efface toutes les contraintes qui ne jouent pas un rôleprimordial
➜ assure la terminaison
Introduction à la modélisation et à la véri�cation � p. 78/85
![Page 208: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/208.jpg)
Cachan, le 17 septembre 2003
L'opérateur d'extrapolation
Fixons un entier k (� &� représente un entier entre �k et +k)
2 3456> k 2
2 2 2
3456< �k 2 2
7
2 89:;+1 2
2 2 2
3456�k 2 2
➜ �intuitivement�, efface toutes les contraintes qui ne jouent pas un rôleprimordial
2
2
➜ assure la terminaison
Introduction à la modélisation et à la véri�cation � p. 78/85
![Page 209: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/209.jpg)
Cachan, le 17 septembre 2003
L'opérateur d'extrapolation
Fixons un entier k (� &� représente un entier entre �k et +k)
2 3456> k 2
2 2 2
3456< �k 2 2
7
2 89:;+1 2
2 2 2
3456�k 2 2
➜ �intuitivement�, efface toutes les contraintes qui ne jouent pas un rôleprimordial
2
2
➜ assure la terminaison
Introduction à la modélisation et à la véri�cation � p. 78/85
![Page 210: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/210.jpg)
Cachan, le 17 septembre 2003
L'opérateur d'extrapolation (suite)
L'extrapolation est parfois une abstraction correcte des zones.
Conditions :➜ Constante d'extrapolation = constante max. de l'automate
➜ Uniquement utilisation de gardes non diagonales x " # c
Problème ouvert : trouver une abstraction correcte avec gardes diagonales
Introduction à la modélisation et à la véri�cation � p. 79/85
![Page 211: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/211.jpg)
Cachan, le 17 septembre 2003
Et en pratique...
Depuis 1990 . . .
➜ Des outils de véri�cations ont été développés
� UPPAAL (Uppsala, Suède et Aalborg, Danemark)
� KRONOS (Grenoble)
� HYTECH (Berkeley, USA)
� CMC (Cachan)
➜ . . . et appliqués avec succès à des études de cas !Exemples : Compréhension du bogue du protocole de Bang-Olufsen
Véri�cation du protocole ABR.
➜ Des résultats importants mais il reste des problèmes. . .
Introduction à la modélisation et à la véri�cation � p. 80/85
![Page 212: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/212.jpg)
Cachan, le 17 septembre 2003
Les dé�s actuels
➜ Les model checkers temporisés :
� Explosion combinatoire
� Représentation symbolique� problème DBM� mixer discret + continu
� Abstractions plus rusées
� Modèles plus adaptés
➜ Approches probabilistes
➜ Synthèse de systèmes
Introduction à la modélisation et à la véri�cation � p. 81/85
![Page 213: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/213.jpg)
Cachan, le 17 septembre 2003
Pour en savoir plus
➜ partout dans le monde (USA, Danemark, Suède, Italie, France, Belgique,Pays-Bas, Inde, Chine...)
➜ au LSV
N'hésitez pas à venir nous voir !
Introduction à la modélisation et à la véri�cation � p. 82/85
![Page 214: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/214.jpg)
Cachan, le 17 septembre 2003
Quelques références
[ACHH93] Rajeev Alur, Costas Courcoubetis, Thomas A. Henzinger and Pei-Hsin Ho. Hybrid
Automata: an Algorithmic Approach to Speci�cation and Veri�cation of Hybrid Sys-
tems. In Proc. Worksh. Hybrid Systems. VOlume 736 of LNCS, pp. 209-229. 1993.
[ACH+92] Rajeev Alur, Costas Courcoubetis, Nicolas Halbwachs, David Dill and Howard Wong-
Toi. Minimization of Timed Transition Systems. In Proc. 3rd Int. Conf. Concurrency
Theory (CONCUR'92). Volume 630 of LNCS, pp. 340-354. 1992.
[AD94] Rajeev Alur and David Dill. A Theory of Timed Automata. Theoretical Computer
Science (TCS). Volume 126(2), pp.183-235. 1994.
[BBF+01] Béatrice Bérard, Michel Bidoit, Alain Finkel, François Laroussinie, Antoine Petit,
Laure Petrucci and Philippe Schnoebelen. Model-Checking Techniques and Tools.
Springer, 2001.
[BD00] Béatrice Bérard and Catherine Dufourd. Timed Automata with Additive Clock Con-
straints. Information Processing Letters (IPL). Volume 75(1-2), pp.1-7. 2000.
[BDGP98] Béatrice Bérard, Volker Diekert, Paul Gastin and Antoine Petit. Characterization of
the Expressive Power of Silent Transitions in Timed Automata. Fundamenta Infor-
maticae. Volume 36(2-3), pp. 145-182. 1998
Introduction à la modélisation et à la véri�cation � p. 83/85
![Page 215: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/215.jpg)
Cachan, le 17 septembre 2003
Quelques références (suite)
[BDFP00] Patricia Bouyer, Catherine Dufourd, Emmanuel Fleury and Antoine Petit. Updatable
Timed Automata. In Proc. 12th Int. Conf. Computer-Aided Veri�cation (CAV'00).
Volume 1855 of LNCS, pp. 464-479. 2000
[CC77] Patrick Cousot and Radhia Cousot. Abstract Interpretation: A Uni�ed Lattice Model
for Static Analysis of Programs by Construction or Approximation of Fixpoints. In
Proc. 4th ACM Symp. Principles of Programming Languages (POPL'77). pp. 238-252.
1977.
[Hen96] Thomas A. Henzinger. The Theory of Hybrid Automata. Proc. 11th IEEE Symp. Logic
in Computer Science (LICS'96). pp. 278-292. 1996.
[HJMS02] Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar and Grégoire Sutre. Lazy Ab-
straction. In Proc. 29th ACM Symp. Principles of Programming Languages (POPL'02).
ACM Press, 2002.
[HKPV98] Thomas A. Henzinger, Peter W. Kopke, Anuj Puri and Pravin Varaiya. What's Decid-
able about Hybrid Automata? Journal of Computer and System Sciences. Volume
57(1), pp. 84-124. 1998.
[Pnu77] Amir Pnueli. The Temporal Logic of Programs. In Proc. 18th IEEE Symp. Foundations
of Computer Science (FOCS'77), pp. 46-57. 1977.
Introduction à la modélisation et à la véri�cation � p. 84/85
![Page 216: Introduction à la modØlisation et à la vØrication](https://reader030.vdocuments.mx/reader030/viewer/2022012500/617910ebc637ff4fad713c60/html5/thumbnails/216.jpg)
Cachan, le 17 septembre 2003
Quelques références (suite)
[TY01] Stavros Tripakis and Sergio Yovine. Analysis of Timed Systems using Time-
Abstracting Bisimulations. Formal Methods in System Design. Volume 18(1), pp.
25-68. 2001.
Introduction à la modélisation et à la véri�cation � p. 85/85