216
Cachan, le 17 septembre 2003 Introduction la modØlisation et la vØrication Application aux systLmes temporisØs Patricia Bouyer LSV CNRS & ENS de Cachan Introduction la modØlisation et la vØrication p. 1/8

Introduction à la modØlisation et à la vØrication

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction à la modØlisation et à la vØrication

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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