Vous êtes sur la page 1sur 4

Correction TD 1 de Model Checking

Mod elisation des syst` emes r eactifs


Exercice 1 (Exemple de lascenceur.). Le syst` eme de contr ole dun ascenceur (pour 3 etages) est d eni par : le contr oleur garde en m emoire l etage courant et l etage cible. en mode actif, quand l etage cible est atteint, les portes souvrent et le contr oleur passe en mode attente. en mode actif, quand l etage cible est plus elev e que l etage courant, le contr oleur fait s elever lascenceur. en mode actif, quand l etage cible est moins elev e que l etage courant, le contr oleur fait descendre lascenceur. en mode attente, il se peut que quelquun entre dans lascenceur et choisisse un nouvel etage cible. Lascenceur ferme alors les portes et redevient actif. initialement, lascenceur est a ` l etage 0 et en mode attente. Questions : 1. Proposez une machine a ` etats mod elisant le contr ole de lascenceur (d enition formelle et dessin). 2. D enissez et dessinez le syst` eme de transitions correspondant (en vous limitant aux congurations accessibles depuis l etat initial). 3. Est-ce que les portes peuvent souvrir quand lascenceur est actif ? Correction.
1. Voici ma machine ` a etats. Les variables sont courant :int[0..2], cible :int[0..2] et open :bool. Laction ere non d eterministe. random int retourne un entier entre 0 et 2 de mani`
choice true -> cible:=random_int open:=false up courant < cible -> courant++

idle

actif

ok courant == cible -> open := true

down courant > cible -> courant--

2. L etat initial est : etat de contr ole idle, (open, cible, courant) := (true, 0, 0).

ok idle, true, 0, 0 choice choice choice active, false, 0, 2 active,false,0,0 active, false, 0, 1 up up active, false, 1, 1 choice ok choice up active, false, 1, 2

idle, true, 1, 1

active, false, 2, 2 choice ok down

down choice

idle, true, 2, 2

choice active, false, 1, 0 active, false, 2, 1

down choice active, false, 2, 0

3. Non, trivial ici vu la mod elisation.

Exercice 2. Soit un syst` eme de transitions S = Q, T, et q0 Q une conguration initiale. Montrez que : 1. lensemble daccessibilit e post (q0 ) est le plus petit invariant de S contenant q0 ; 2. il existe k N tel que post (q0 ) = Correction.
1. On proc` ede en deux phases. Dabord on montre que post (q0 ) est un invariant de S contenant q0 , puis on montre que cest le plus petit. (a) Par d enition, post (q0 ) contient q0 . Montrons que post (q0 ) est un invariant de S , i.e. montrons que post(post (q0 )) post (q0 ). Soit x post (q0 ) et x post(x). Par d enition, il existe t tq x x . Par d enition, on i sait aussi quil existe i 0 tel que x post (q0 ). On en d eduit quil existe des congurations x1 , . . . , xi1 et t1 , . . . , ti T
1 2 1 1 2 1 i i x x . On d eduit ainsi xi1 ... x1 x. On peut ainsi ecrire que : q0 xi1 ... x1 tels que q0 que x posti+1 (q0 ), et donc x post (q0 ) Ceci montre que post (q0 ) est un invariant de S . On a aussi montr e quil contenait q0 juste avant. (b) Montrons que post (q0 ) est le plus petit invariant de S ` a contenir q0 . Soit I un invariant de S contenant q0 . On montre par r ecurrence que pour tout i, I contient posti (q0 ). La propri et e est vraie pour i = 0 par d enition de I . Si on suppose la propri et e vraie au rang i, alors posti (q0 ) I . Or posti+1 (q0 ) = post(posti (q0 )), donc posti+1 (q0 ) post(I ) (croissance de post et hypoth` ese de r ecurrence) et posti+1 (q0 ) I (I est un invariant). Ceci S i montre par r ecurrence que pour tout i, I contient post (q0 ). Or post (q0 ) = 0 posti (q0 ). Do` u la conclusion.

k 0

posti (q0 ).

ti

ti

S Sn i i 2. Montrons quil existe k N tel que post (q0 ) = k 0 post (q0 ). On note Cn = 0 post (q0 ). On remarque dabord que par d enition, pour tout n on a Cn Cn+1 (croissance). On va ensuite montrer que sil existe q tq Cq = Cq+1 , alors pour tout n q , Cn = Cq et post (q0 ) = Cq (stabilisation). Soit q tq Cq = Cq+1 . On veut montrer que pour tout n q , Cn = Cq . On proc` ede par r ecurrence sur i + q (en faisant varier i). Le cas i = 1 est vraie par hypoth` ese sur q . On suppose maintenant que Cq = Cq+i et on veut montrer que Cq = Cq+i+1 . La di erence entre Cq et Cq+i+1 est (hyp. de r ecurrence) lensemble postq+i+1 (q0 ). Or postq+i+1 (q0 ) = post(postq+i (q0 )). Or postq+i (q0 ) Cq+i donc postq+i (q0 ) Cq (hyp. de r ecurrence). On en d eduit que post(postq+i (q0 )) post(Cq ) Cq+1 (croissance de post et d enition de Cn ) et enn que q +i+1 post (q0 )) Cq (cas de base de la r ecurrence). Donc on a montr e par r ecurrence que sil existe q tq Cq = Cq+1 , alors pour tout n q , Cn = Cq . Ainsi pour tout i < q , Ci Cq et pour tout i > q , Ci = Cq . On en d eduit que post (q0 ) = Cq . Voici qui d emontre le lemme de stabilisation. On prouve maintenant le r esultat nal. Soit la suite innie des Cn . Cest une suite croissante (lemme de croissance), et chaque Ci est inclus dans Q lensemble des congurations du syst` eme S . Or, par hypoth` ese sur S , Q est ni (cest le cadre du cours). On en d eduit quil existe n ecessairement k tq Ck = Ck+1 , sinon si toutes les inclusions etaient strictes la suite (|Cn |) tendrait vers linni et d epasserait |Q|. On utilise le lemme de stabilisation pour conclure.

Exercice 3 (Co-accessibilit e). Nous avons vu comment v erier linvariance et laccessibilit ea ` partir du calcul des etats accessibles (calcul en avant). On peut aussi v erier ces propri et es en calculant en arri` ere. On d enit informellement pre(q ) comme les congurations a ` partir desquelles on peut atteindre q0 . d enir formellement la relation pre (sinspirer de post) On appelle ensemble de co-accessibilit e de q lensemble pre (q ). Que repr esente-t-il intuitivement ? Donner un algorithme pour calculer pre (q ). Justiez la terminaison. Comment v erier linvariance et laccessibilit ea ` partir de la co-accessibilit e? k Montrer quil existe k N tel que pre (q ) = 0 prei (q ). Correction.
1. On peut d enir pre par pre = {(q , q ) Q Q|t T, q q }. On peut aussi dire que pre = post1 en utilisant la notion de relation inverse ((q , q ) pre ssi (q, q ) post). 2. Lensemble de co-accessibilit e de q repr esente toutes les congurations du syst` eme ` a partir desquelles on peut atteindre q . t 3. Adaptez directement lalgorithme pour post, mais en calculant les transitions en arri` ere (attention : cela donne en g en eral un ensemble ni de congurations plut ot quune seule conguration). 4. Soit un syst` eme S avec un etat initial q0 , une propri et e dinvariance I et une propri et e daccessibilit e A (I et A sont des ensembles de congurations). Alors : A est atteignable ssi q0 pre (A) ; I est v eri e ssi q0 pre (Q\I ). 5. Sinspirer directement de la d emonstration pr ec edente.
t

Exercice 4 (Concurrence). Soit les machines concurrentes suivantes.


1 3 5

Quelles sont les transitions du syst` eme concurrent dans les cas suivants : 1. s emantique synchrone ; 2. s emantique asynchrone (1) ; 3. s emantique asynchrone (2) ; 4. s emantique synchrone + synchronisation entre 1 et 3 ; 5. s emantique asynchrone (2) + synchronisation entre 1 et 3 ; 3

Quel est le lien entre vecteur de synchronisations et rendez-vous ? Correction.


1. 2. 3. 4. 5. 6. les transitions de la machine produit sont : 1x3, 1x4, 1x5, 2x3, 2x4, 2x5. les transitions de la machine produit sont : 1x, 2x, x3, x4, x5. les transitions sont celles de la question 1 plus celles de la question 2. les transitions de la machine produit sont : 1x3, 2x4, 2x5. les transitions de la machine produit sont : 1x3, 2x4, 2x5, 2x, x4, x5. Un RDV est un vecteur de synchronisation ne contenant que deux transitions.

Exercice 5 (S uret e). On se donne un syst` eme de transitions S dont certaines transitions sont distingu ees et correspondent a ` des op erations daquisition de verrou (lock), de rendu de verrou (unlock), de lecture (read) et d ecriture (write). On se donne la propri et e suivante : Si on ne regarde que les lock et unlock : unlock est toujours pr ec ed e directement de lock ET une suite arbitraire de read,write est toujours pr ec ed ee directement dun lock . Questions : 1. Est-ce que est une propri et e de s uret e ? Sinon modiez l` a en cons equence. 2. Ecrivez un automate observeur pour v erifer (ou sa modication) et expliquez la nouvelle propri et ea ` v erier. 3. On consid` ere maintenant la sp ecication : Si on ne regarde que les lock et unlock : unlock est toujours pr ec ed e directement de lock lock est toujours suivi directement de unlock, ET une suite arbitraire de read,write est toujours pr ec ed ee directement dun lock et ferm ee directement par un unlock. Est-ce toujours une propri et e de s uret e? Correction.
1. est bien une propri et e de s uret e car (intuitivement) on peut reconnaitre une ex ecution incorrecte en consid erant juste une portion nie du pass e de cette ex ecution. Ici, il sut de regarder la trace dex ecution pour v erier que les lock, unlock, read, write sont bien mis correctement. 2. Voil` a lautomate observeur ci-dessous. La propri et ea ` v erier (dans le syst` eme produit) est que l etat de contr ole ERROR de lautomate oberveur nest pas atteignable.
unlock

read ERROR write unlock lock

read write

lock

3. Cette propri et e nest plus de la s uret e : pour savoir que tout lock est suivi dune s equence eventuelle de read/write puis dun unlock, il faut regarder le futur de lex ecution. Ainsi, une ex ecution (innie) fautive commence par exemple par un lock et na jamais de unlock. Regarder le pass e de cette ex ecution ne permet jamais de dire quelle est fautive.

Vous aimerez peut-être aussi