1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et...

31
1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checki - Types de propriétés - Sûreté et vivacité - Vérification avec LTSA ri Habrias, IUT de Nantes 20 mars 2006

Transcript of 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et...

Page 1: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

1

Fin du cours Spec2

-Equivalence de processus et bisimulation

- Les deux sens du mot Modèle et model-checking

- Types de propriétés

- Sûreté et vivacité

- Vérification avec LTSA

Henri Habrias, IUT de Nantes 20 mars 2006

Page 2: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

2

Bisimulation et équivalence

Equivalence observationnelle :

On peut distinguer deux agents S0 et S1 si un agent extérieur interagissant avec S0 et S1 peut détecter qu’ils n’ont pas le mêmecomportement.

Ainsi, avec LTSA, quand vous faites un « run », vous constatez quevous n’avez pas les mêmes actions déclenchables.

Page 3: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

3

Deux agents non équivalents

P0a b

c

d

P0 = (a -> b -> P1 | a -> S2),P1 = STOP,P2 = (c -> d -> S0).

Q0 = (a -> Q1),Q1 = (b -> Q2 | c -> Q3),Q2 = STOP,Q3 = (d -> Q0).

Q0a b

c

d

a

Page 4: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

4

Même langage accepté …mais…

Ces deux agents P et Q acceptent le même langage :

(acd)* ab

Mais , Q0 n’est pas déterministe.

Page 5: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

5

Observation

P0 = (a -> b -> P1 | a -> S2),P1 = STOP,P2 = (c -> d -> S0).

RUN

a x b d x a x b c x c ….

RUN

ax cx dx ax cx dx ax bx STOP

Q0 = (a -> Q1),Q1 = (b -> Q2 | c -> Q3),Q2 = STOP,Q3 = (d -> Q0).

Page 6: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

6

Equivalence forte/faible

Equivalence faible lorsqu’on ne considère pas l’action tau

Equivalence forte lorsqu’on considère l’action tau comme n’importe quelle autre action.

Page 7: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

7

Bisimulation

Quand deux agents sont équivalents pour tous leurs états.

P est en bisimulation avec Q ssi : pour tout a appartenant au vocabulaire

si P ---a---> P’ alors il existe Q’ tel que Q---a-->Q’ et P’ équivalent à Q’

si Q ---a---> Q’ alors il existe P’ tel que P---a-->P’ et P’ équivalent à Q’ R. Milner

Page 8: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

8

Bisimulation faible

P0 = (a -> b -> c -> P0 | b -> a -> c -> P0).P1 = (c -> S1).||SYS = (P0 || P1)\{c}.

Q0 = (a -> b -> S1 | b -> a -> Q0).

P0

b a

a

b

c

P1

c

P0

b a

a b

tau

||

Q0a b ba

Page 9: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

9

Le concept de modèle

Premier sens :

Celui d’interprétation, i.e. attribution d’un sens à des énoncés formelsde sorte qu’ils soient vérifiés.

Exemple : la géométrie vue comme un modèle d’un langage formel, plutôt que la formalisation de propriétés idéalisées à partir de l’observation de l’espace sensible. (Hourya Sincaceur)

Page 10: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

10

Modèle : premier sens

Enoncé formel

Modèle 1 Modèle 3Modèle 2

Interprétations

Abstrait

Spécification

Concret

Page 11: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

11

Modèle : deuxième sens

Modéliser c’est associer un énoncé formel à une « réalité empirique »,un phénomène physique.

Un modèle est un prototype, une simulation de la réalité.

Définition de Marvin Minsky

« Un objet O est un modèle d’une réalité R si O permet de répondreaux questions que l’on se pose sur R. »

Page 12: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

12

Modèle : deuxième sens

Enoncé formel

Phénomène

Modélisation

Page 13: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

13

Deux faces, 1 seule activité

«  Les deux sens du concept de modèle ne sont que les deux facescomplémentaires d’une même activité : interpréter. Interpréter est inéluctable, qu’il s’agisse d’interpréter un formalisme,ou, inversement d’interpréter mathématiquement un ensemble dedonnées.

D’une part, parce qu’un langage qui n’aurait pas de modèle n’a aucunintérêt, D’autre part et réciproquement, parce que l’expression n’est pas lemiroir de l’expérience. »

Hourya Sinaceur

Page 14: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

14

« Model-checking »

Vérification de modèle en français !

On modélise le système physique (le système) et les propriétésque le système doit vérifier.

L’algo de model-checking prend :en entrée, l’énoncé et le propriétés formelles à vérifier

Donne en réponse oui ou non selon que les propriétés sont vérifiéesou non par le système modélisé.

Page 15: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

15

« Model-checking »

Énoncé formel

Propriété formelle

Phénomène

modélisation

modélisation

Est-ce que lespropriétés sontvérifiées ?

Page 16: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

16

Vérification de propriétés

Propriétés d’invariance :

l’invariant d’une machine B

Propriétés « dynamiques »

Page 17: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

17

Types de propriétés

1- Atteignabilité :Une certaine situation peut être atteinte

2-Sûreté (safety) :Sous certaines conditions, quelque chose ne se produira jamais

3-Vivacité (Fatalité, liveness, Eventually):Sous certaines conditions, quelque chose finira par avoir lieu

4-Equité (Fairness) :Sous certaines conditions, quelque chose aura lieu (ou n’aura pas lieu)un nombre infini de fois.

Page 18: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

18

Propriétés vérifiées avec LTSA

-safety (sûreté) : Rien de mal n’arrive pendant l’exécution

-liveness (vivacité) :Quelque chose de bon arrive forcément (eventually)

Dit autrement :

Safety :Le système n’atteint pas un mauvais état.

Vivacité : Le système atteint forcément un bon état.

Page 19: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

19

Propriété de sûreté en B classique vs en prog concurrente

Propriété de sûreté (en B) :

(programmes séquentiels) On veut que l’état final d’un programme(l’implantation d’une opération) soit correct (respecte l’invariant)

Propriété de sûreté (en prog. Concurrente) :

Exclusion mutuelle, absence de verrou fatal (deadlock)

Page 20: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

20

Propriété de vivacité en B classique vs en prog concurrente

Propriété de vivacité (en prog. Séquentielle) Le programme se termine (la fonction est définie)

Propriété de vivacité (en prog. Concurrente) concernent souvent des systèmes qui ne s’arrêtent pas.

Page 21: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

21

Politique d’ordonnancement

On va voir des propriétés de vivacité relatives à l’accès à desressources.

Les propriétés de vivacité sont affectées par la politique d’ordonnancement qui détermine quelle action dans un ensembled’actions sont choisies pour exécution.

Page 22: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

22

Safety (avec LTSA)

ACTIONNEUR = (commande -> ACTION),ACTION = (reponse -> ACTIONNEUR | commande -> ERROR).

property ACTIONNEUR_SUR = (commande -> reponse -> ACTIONNEUR_SUR ).

Page 23: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

23

Vérif d’une propr. de safety

Il est poli de frapper avant d’entrer :Property POLI = (frapper -> entrer -> POLI).

Composition:DEFAULT = POLI || PERSONNEState Space: 2 * 2 = 2 ** 2Composing... property POLI violation.-- States: 1 Transitions: 1 Memory used: 2361KComposed in 130ms

PERSONNE = (entrer -> frapper -> PERSONNE).

Page 24: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

24

Safety : définition

Une propriété de sûreté (safety) P définit un processus déterministequi asserte que toute trace incluant les actions de l’alphabet de P,est acceptée par P.

Page 25: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

25

Autre ex. de prop de safety

Property MUTEX =

(p[i:1..3]. entrer -> p[i] . sortie -> MUTEX]

Quand un processus entre en section critique (p[i].entrer),ce même processus doit sortir de la section critique (p[i]. Sortie)avant qu’un autre processus puisse entrer.

Page 26: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

26

Vivacité en LTSA

Propriété de progression (progress) :

quelque soit l’état du système, une action spécifiée finira par être exécutée.

Opposée à la famine (starvation)

Page 27: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

27

Hypothèse d’équité

Fair choice : Si un choix parmi un ensemble de transitions est exécuté infinimentsouvent, alors chaque transaction de cet ensemble sera exécutéinfiniment souvent.

PIECE = (toss -> heads -> PIECE | toss -> tails -> PIECE)

Si la politique d’ordonnancement n’est pas équitable, on peut toujourschoisir la transition toss -> heads.

Page 28: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

28

Progress property

Progress P = {a1, a2, …,an} définit une propriété de progression Pqui asserte que dans une exécution infinie d’un système, au moinsune des actions a1, a2, …,an sera exécutée infiniment souvent.

A toute étape d’exécution, une des actions de l’ensemble de définitionde la propriété de progression, sera forcément exécutée.

progress HEADS = {heads}progress TAILS = {tails}

Page 29: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

29

Propriété de progrès

TWOCOIN = (pick -> COIN | pick -> TRCK),TRICK = (toss -> heads -> TRICK),COIN = (toss -> heads -> COIN | toss -> tails -> COIN).

progress TAILS = {tails} est violée

Progress HEADSorTAILS = {heads, tails} n’est pas violée

Page 30: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

30

Ensemble terminal d’états

L’analyse de la propriété de progression consiste à rechercher d’abord un ensemble terminal d’états.

Un ensemble terminal d’états est un ensemble dans lequel chaqueétat est atteignable de tout autre état de l’ensemble via une ouplusieurs transitions et s’il n’y a pas de transition de cet ensemblevers tout état qui est hors de cet ensemble.

i.e. une composante fortement connexe qui n’a pas de cheminvers des nœuds situés hors de la composante.

Page 31: 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

31

Algo de vérif de la prop. de progression

Vérifier une propriété de progressionprogress P ={a1, …,an} est simplement vérifier quedans chaque ensemble terminal, il y a au moins une des actionsde l’ensemble de progression {a1, …,an}.

Inversement, une propriété de progressionest violée si l’analyse trouve un ensemble terminal dans lequel iln’y a aucune des actions de {a1, …, an}.