cours de model checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf ·...

61
Introduction Pr´ elude 1 : Invariance et accessibilit´ e Pr´ elude 2 : SCC CTL LTL Fair CTL Conclusion Bonus techniques Cours de Model Checking Le¸con 2.2 : Algorithmes de Model Checking ebastien Bardin CEA-LIST, Laboratoire de Sˆ uret´ e Logicielle [email protected] http://sebastien.bardin.free.fr/ S.Bardin Model checking 1/ 47

Upload: others

Post on 15-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Cours de Model CheckingLecon 2.2 : Algorithmes de Model Checking

Sebastien Bardin

CEA-LIST, Laboratoire de Surete Logicielle

[email protected]

http://sebastien.bardin.free.fr/

S.Bardin Model checking 1/ 47

Page 2: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Cours 2.1 : logiques temporelles

Cours 2.2 : algorithmes

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 2/ 47

Page 3: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Rappels & Contenu

Model Checking

Technique de verification automatique de systemes reactifs

Ingredients

M = systeme de transitions

ϕ = formule temporelle

MC = est-ce que M |= ϕ ?

Trois algorithmes de model checking

(cas simple : accessibilite, invariance, surete)

CTL : technique de marquage des etats

LTL : transformation de la formule en automate de Buchi

Fair CTL : marquage de CTL + detection des etats “fair”

Remarque : importance des composantes fortements connexes (SCC)pour chaque algo

S.Bardin Model checking 3/ 47

Page 4: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 4/ 47

Page 5: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Proprietes sur les systemes reactifs

Accessibilite Une certaine situation peut etre atteinte

Invariance Chaque etat local respecte une bonne propriete

Surete Quelquechose de mauvais n’arrive jamais

Vivacite Quelquechose de bon finit par arriver

Equite Quelquechose de bon se repete infiniment souvent

Equivalence comportementale Est-ce que 2 systemes sontequivalents ?

Le meme algorithme permet de traiter toutes ces proprietes

S.Bardin Model checking 5/ 47

Page 6: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Proprietes sur les systemes reactifs

Accessibilite Une certaine situation peut etre atteinte

Invariance Chaque etat local respecte une bonne propriete

Surete Quelquechose de mauvais n’arrive jamais

Vivacite Quelquechose de bon finit par arriver

Equite Quelquechose de bon se repete infiniment souvent

Equivalence comportementale Est-ce que 2 systemes sontequivalents ?

Le meme algorithme permet de traiter toutes ces proprietes

S.Bardin Model checking 5/ 47

Page 7: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Etats accessibles

Un etat q ∈ Q est accessibles a partir de q0 si il existe un chemin deM = 〈Q,−→,AP, l , s0〉 menant de q0 a q.

Accessibilite en un coup : post = {(q, q′)|q −→ q′}

Ensemble d’accessibilite a partir de q0 : post∗(q0)

facile a calculer dans le cas fini

iteration de X 7→ post(X )∪X a partir de {q0} jusqu’a stabilisation

permet de verifier accessibilite et invariance

S.Bardin Model checking 6/ 47

Page 8: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Invariance et accessibilite

Invariance : tous les etats ont une bonne proprieteex : on a toujours x 6= 0

Accessibilite : un certain ensemble d’etats est accessibleex : tout point du programme peut etre atteint

Proprietes simples mais fondamentales.

Facile a verifier grace a post∗(q0)

Accessibilite : est-ce que post∗(q0) ∩ A 6= ∅ ?

Invariance : est-ce que post∗(q0) ⊆ I ?

Idee : iteration de post + tests ensemblistes

Unsafe

Initial

S.Bardin Model checking 7/ 47

Page 9: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Invariance et accessibilite

Invariance : tous les etats ont une bonne proprieteex : on a toujours x 6= 0

Accessibilite : un certain ensemble d’etats est accessibleex : tout point du programme peut etre atteint

Proprietes simples mais fondamentales.

Facile a verifier grace a post∗(q0)

Accessibilite : est-ce que post∗(q0) ∩ A 6= ∅ ?

Invariance : est-ce que post∗(q0) ⊆ I ?

Idee : iteration de post + tests ensemblistes

Unsafe

Initial

S.Bardin Model checking 7/ 47

Page 10: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Invariance et accessibilite

Invariance : tous les etats ont une bonne proprieteex : on a toujours x 6= 0

Accessibilite : un certain ensemble d’etats est accessibleex : tout point du programme peut etre atteint

Proprietes simples mais fondamentales.

Facile a verifier grace a post∗(q0)

Accessibilite : est-ce que post∗(q0) ∩ A 6= ∅ ?

Invariance : est-ce que post∗(q0) ⊆ I ?

Idee : iteration de post + tests ensemblistes

Unsafe

Initial

S.Bardin Model checking 7/ 47

Page 11: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Invariance et accessibilite

Invariance : tous les etats ont une bonne proprieteex : on a toujours x 6= 0

Accessibilite : un certain ensemble d’etats est accessibleex : tout point du programme peut etre atteint

Proprietes simples mais fondamentales.

Facile a verifier grace a post∗(q0)

Accessibilite : est-ce que post∗(q0) ∩ A 6= ∅ ?

Invariance : est-ce que post∗(q0) ⊆ I ?

Idee : iteration de post + tests ensemblistes

Unsafe

Initial

S.Bardin Model checking 7/ 47

Page 12: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Calcul de post∗(q0)

Entrees : structure M avec etat initial s0

Sorties : ensemble d’accessibilite post∗(s0)

R := ∅ /* etats atteints et traıtes */Q := {s0} /* etats atteints non traıtes */Tant que Q non vide faire

choisir q ∈ Q , Q := Q − qSi q 6∈ R alors

R := R + {q}, postq := ∅Pour tout q′ tq q −→ q′ faire /* calcul de post(q) */

postq := postq + {q′}Fin Pour tout

Q := Q ∪ postqFin Si

Fin Tant que

retourner R

Complexite : lineaire en |M|

(mais |M| exponentiel si description succinte)

S.Bardin Model checking 8/ 47

Page 13: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Surete

Surete : quelquechose de mauvais n’arrive jamais.Quand j’accede a mon compte, j’ai entre le bon password avant.

Autre definition : contre-exemples finis.Plus general que invariance.

Comment verifier : se ramener a accessibilite dans un systeme modifie

Automate observeur

Synchronise avec M

Evalue le comportement (ne modifie pas les configurations)

Les techniques de calcul de post∗(q0) permettent de verifierl’accessibilite, l’invariance et la surete.

S.Bardin Model checking 9/ 47

Page 14: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Surete II

Propriete simple : Quand j’accede a mon compte, j’ai entre le bonpassword avant.

Automate observateur O pour la proriete

Verifier que ( ,ERROR) n’est pas accessible

S.Bardin Model checking 10/ 47

Page 15: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 11/ 47

Page 16: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Avant-propos

Composante connexe d’un graphe G = 〈Q,T 〉

un ensemble de noeuds tel que tous les noeuds sont relies les unsaux autres (pas forcement directement)

C ⊆ Q tq ci∗−→ cj pour tout ci , cj ∈ C

Quelques definitions

fortement connexe : composante connexe maximale

non triviale : le sous-graphe associe a au moins un arc

Decomposer un graphe en SCC : lineaire (Tarjan, Kosaraju)

S.Bardin Model checking 12/ 47

Page 17: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Avant-propos (2)

Liens entre SCC et les algorithmes de model checkingCTL : gerer le cas EGFair CTL : decider les chemins fairLTL : test du vide des automates de Buchi

S.Bardin Model checking 13/ 47

Page 18: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 14/ 47

Page 19: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Marquage des etats

Algorithme de marquage des etats (labeling)

Entrees : M = 〈Q,−→,P, l , s0〉 et ϕ ∈ CTL

Sortie : est-ce que M |= ϕ ?

Importance historique (1981, Clarke et Emerson)

Efficace : lineaire en chacune des entrees

Principe : raisonner sur les etats plutot que sur les traces

Marquer les etats de M verifiant les sous formules de ϕ

Marquage recursif, les sous-formules d’abord

M |= ϕ ssi s0 est marque pour ϕ

Remarques

raisonner en terme d’etats plutot que d’executions

tres specifique a CTL

S.Bardin Model checking 15/ 47

Page 20: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Exemple

On veut verifier (¬EX¬p) ∧ p

not pp

not p p p

S.Bardin Model checking 16/ 47

Page 21: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Exemple

On veut verifier (¬EX¬p) ∧ p

¬p

not pp

not p p p

S.Bardin Model checking 16/ 47

Page 22: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Exemple

On veut verifier (¬EX¬p) ∧ p

EX¬p

not pp

not p p p

S.Bardin Model checking 16/ 47

Page 23: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Exemple

On veut verifier (¬EX¬p) ∧ p

(¬EX¬p)

not pp

not p p p

S.Bardin Model checking 16/ 47

Page 24: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Exemple

On veut verifier (¬EX¬p) ∧ p

p

not pp

not p p p

S.Bardin Model checking 16/ 47

Page 25: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Exemple

On veut verifier (¬EX¬p) ∧ p

(¬EX¬p) ∧ p

not pp

not p p p

S.Bardin Model checking 16/ 47

Page 26: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Calcul des marquages

Exemples simples

ϕ1 ∧ ϕ2 : marquer les etats marques pour ϕ1 et pour ϕ2

¬ϕ : marquer les etats non marques pour ϕ

EXϕ : marquer les etats qui peuvent atteindre en 1 etape un etatmarque par ϕ

EFϕ : marquer les etats qui peuvent atteindre en 0, 1 ou +etapes un etat marque par ϕ

AXϕ : marquer les etats dont tous les successeurs en une etapesont marques par ϕ

S.Bardin Model checking 17/ 47

Page 27: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Calcul des marquages II

Operations de base

q marque pour p ssi p ∈ l(q) (donne par M)

q marque pour ϕ ∧ ψ ssi q marque pour ϕ et q marque pour ψ

Cas EXϕ

q marque pour EXϕ

ssi q −→ q′ telque q′ marque pour ϕ

Cas EFϕ

q marque pour EFϕ

ssi q −→ . . . −→ q′ et q′ marque pour Qϕ

S.Bardin Model checking 18/ 47

Page 28: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Calcul des marquages III

On note Qϕ l’ensemble des etats marques pour ϕ

Cas EϕUψ

q ∈ QEϕUψ

ssi q peut atteindre Qψ par un chemin restant dans Qϕ

Cas EGϕ

SCC’ ensemble des SCC de Qϕ

L ensemble des etats de SCC’

q ∈ EGϕ

ssi q peut atteindre L en restant dans Qϕ

S.Bardin Model checking 19/ 47

Page 29: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Details de l’algorithme I

Algorithme marking

input : formule ϕ normalisee, M = 〈Q,−→,P, l , s0〉

1: Case 1 : ϕ = p2: for all s ∈ Q do3: if p ∈ l(s) then s.ϕ := true4: else s.ϕ := false5: end for

1: Case 2 : ϕ = ¬ϕ′

2: do marking(ϕ′,M);3: for all s ∈ Q do s.ϕ := not(s.ϕ′) end for

1: Case 3 : ϕ = ϕ′ ∧ ϕ′′

2: do marking(ϕ′,M); marking(ϕ′′,M);3: for all s ∈ Q do s.ϕ := and(s.ϕ′,s.ϕ′′) end for

S.Bardin Model checking 20/ 47

Page 30: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Details de l’algorithme I

Algorithme marking

input : formule ϕ normalisee, M = 〈Q,−→,P, l , s0〉

1: Case 4 : ϕ = EXϕ′

2: do marking(ϕ′,M);3: for all s ∈ Q do s.ϕ := false end for4: for all (s, s ′) ∈−→ do5: if s’.ϕ′=true then s.ϕ := true6: end for

S.Bardin Model checking 20/ 47

Page 31: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Details de l’algorithme I

Algorithme marking

input : formule ϕ normalisee, M = 〈Q,−→,P, l , s0〉

1: Case 5 : ϕ = Eϕ′Uϕ′′

2: do marking(ϕ′,M); marking(ϕ′′,M);3: for all s ∈ Q do4: s.ϕ := false;5: s.seenbefore := false6: end for7: L := ∅8: for all s ∈ Q do if s.ϕ′′=true then L:=L + {s} end for9: while L 6= ∅ do10: choose s ∈ L; L := L - {s};11: s.ϕ := true;12: For all (s’,s) ∈−→ do // s’ predecessor of s13: if s’.seenbefore = false then14: s’.seenbefore := true;15: if s’.ϕ′ = true then L := L + {s’};16: end if17: end for18: end while

S.Bardin Model checking 20/ 47

Page 32: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Details de l’algorithme I

Algorithme marking

input : formule ϕ normalisee, M = 〈Q,−→,P, l , s0〉

1: Case 6 : ϕ = Aϕ′Uϕ′′

2: do marking(ϕ′,M); marking(ϕ′′,M);3: L := ∅;4: for all s ∈ Q do5: s.nb := degree(s); s.ϕ := false;6: if s.ϕ′′ = true then L := L + {s};7: end for8: while L 6= ∅ do9: choose s ∈ L; L := L - {s};10: s.ϕ := true;11: for all (s’,s) ∈−→ do // s’ predecessor of s12: s’.nb := s’.nb - 1;13: if (s’.nb = 0) and (s’.ϕ′ = true) and (s’.ϕ = false) do14: L := L + {s’};15: end if16: end for17: end while

S.Bardin Model checking 20/ 47

Page 33: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Details de l’algorithme I

Algorithme marking

input : formule ϕ normalisee, M = 〈Q,−→,P, l , s0〉

1: Case 7 : ϕ = EGϕ′

2: Q’ := {s | ϕ′ ∈ l(s) }; /* computed with marking(ϕ′,M) */3: SCC := { C | C non trivial SCC of Q’ };4: L :=

⋃C∈SCC

{ s | s ∈ C };5: for all s ∈ L do s.ϕ := true end for6: while L 6= ∅ do7: choose s ∈ L; L := L - {s};8: for all (s’,s) ∈−→ such that s’ ∈ Q’ do9: if (s’.ϕ = false) then10: s’.ϕ := true;11: L := L + {s’};12: end if13: end for14: end while

S.Bardin Model checking 20/ 47

Page 34: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

CTL Model Checking

Gestion des differents operateurs

minimum d’operateurs : concision (theorie, code)

ajout de cas speciaux : efficacite

Complexite

complexite en O(|M| · |ϕ|)

lineaire en chaque entree

S.Bardin Model checking 21/ 47

Page 35: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

CTL Model Checking

Gestion des differents operateurs

minimum d’operateurs : concision (theorie, code)

ajout de cas speciaux : efficacite

Complexite

complexite en O(|M| · |ϕ|)

lineaire en chaque entree

ATTENTION

M suppose deja calcule

calculer M est exponentiel (variables, concurrence)

S.Bardin Model checking 21/ 47

Page 36: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 22/ 47

Page 37: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Automates de Buchi

Extension des automates pour travailler sur des mots infinis

Automate de Buchi B = 〈Σ,Q,−→, q0,F 〉

idem que automate sauf pour acceptance

σ accepte ssi σ visite infiniment F

S2b

a

ba

S1

Aut. fini mots terminant par aAut. Buchi mots ayant une infinite de a

S.Bardin Model checking 23/ 47

Page 38: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Proprietes des automates de Buchi

Permettent de representer des ensembles infinis de traces (infinies)

langages dits ω-reguliers

on note L(B) le langage (ω-regulier) de B

Permettent de manipuler des ensembles infinis de traces (infinies)

operations simples pour ∪,∩, . . .

test du vide : on sait tester sur B si L(B) est vide

intersection : on sait calculer B⊗ tq L(B⊗) = L(B1 ∩ L(B2)

...

S.Bardin Model checking 24/ 47

Page 39: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Proprietes des automates de Buchi II

Points communs avec les automates finis

∪ et ∩ polynomiaux

test du vide polynomial

Lien avec les SCC

soit FSCC les SCC intersectant F

soit T l’ensemble des etats des FSCC

L(B) 6= ∅ ssi T accessible de q0

Le probleme de la complementation

tres couteuse en theorie O(2n2

) au mieux

tres couteuse en pratique et difficile a implanter

souvent implantee en O(22n

)

S.Bardin Model checking 25/ 47

Page 40: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Interet pour le model checking

Un systeme de Kripke M defini naturellement un ensemble ω-regulierde traces infinies represente par BM

Etant donne un ensemble ω-regulier de traces infinies Bbad , il est facilede verifier que L(BM) ∩ L(Bbad ) = ∅

Probleme : comment passer d’une formule LTL ϕ a un automate deBuchi B¬ϕ telle que JϕK = L(B¬ϕp )

Une fois qu’on a ca, l’algorithme est le suivant

1. Transformer M en automate BM (trivial)

2. Transformer ϕp en automate B¬ϕp

3. Calculer B⊗ reconnaissant L(BM) ∩ L(B¬ϕp )

4. Tester si L(B⊗) = ∅

S.Bardin Model checking 26/ 47

Page 41: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Lien formules LTL - automates de Buchi

Theoreme

On peut traduire automatiquement toute formule LTL en automate deBuchi definissant le meme langage.

(p,_)

(not p,_)

(p,_)(not p,_)

Exemple de AGFp

Complexite de la transformation

exponentiel (attention a complementation !)

S.Bardin Model checking 27/ 47

Page 42: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Complexite du Model Checking de LTL

Algorithme

1. Transformer M en automate de Buchi BM (trivial)

2. Transformer ϕp en automate de Buchi B¬ϕp

3. Calculer B⊗ reconnaissant L(BM) ∩ L(B¬ϕp)

4. Tester si L(B⊗) = ∅

1 est direct, 2 est exponentiel, 3 et 4 poynomiaux

Complexite en temps et en espace en O(|M| × 2|ϕ|)

Exponentiel seulement en |ϕ|, lineaire en |M|

ltl-mc est pspace-complet, donc algo pas optimal

S.Bardin Model checking 28/ 47

Page 43: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 29/ 47

Page 44: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Fair CTL

CTL + equite (restreinte) : ajout dans le modele directement

Idee = on modifie la semantique de S

contraintes d’equite : ensembles d’ensembles d’etatsF1, . . . , Fn ⊆ Q

chemins fair = passant infiniment souvent par chaque ensemble Fi

etats fair = d’ou part un chemin fair

Nouvelle relation de satisfaction |=fair

M, s |=fair p ssi p ∈ l(s) et s est un etat fair

M, s |=fair Aϕ ssi tous les chemins fair partant de s verifient ϕ

M, s |=fair Eϕ ssi il existe un chemins fair partant de s verifiant ϕ

S.Bardin Model checking 30/ 47

Page 45: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Semantique “Fair” : exemple

1

2

3

4

5

A B DC

En semantique normale (asynchrone)

le chemin (1.2)w est un chemin legal du systeme

chemin certainement irrealiste

rajoute une sorte de deadlock sur la machine 2

En semantique fair (asynchrone)

contraintes d’equite : F1 = {A}, F2 = {B}, F3 = {C},F4 = {D}

le chemin (1.2)w n’est plus un chemin legal du systeme

S.Bardin Model checking 31/ 47

Page 46: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Semantique “Fair” II

Cette forme d’equite est utile en pratique

ex : “chaque composante progresse”

ex : “les messages sont infiniment souvent recus”

Lien avec CTL∗

(Fair CTL) Aϕp ≈ A(F∞F1 ∧ . . . ∧ F∞Fk → ϕp)

(Fair CTL) Eϕp ≈ E(F∞F1 ∧ . . . ∧ F∞Fk

∧ϕp)

Remarque

une formule CTL definit un sous-ensemble de Q

les Fi peuvent etre donnes par des formules CTL

Trouver les etats fair

Fair SCC : SCC qui intersecte chaque Fi

Les etats fair sont ceux qui atteignent une Fair SCC

S.Bardin Model checking 32/ 47

Page 47: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Fair CTL Model Checking

Principe de l’algorithme

1. trouver les etats fair par accessibilite de Fair SCC

on peut adapter algo pour EGtrue

2. marquer ces etats avec une nouvelle proposition fair

3. se ramener au cas normal en exprimant M, s |=fair ϕ en fonctionde |=, ϕ, fair

Complexite en O(|M| · |ϕ| · |F |)

complexite semblable a CTL

et on gagne equite

en pratique Fair CTL beaucoup plus utile que CTL

S.Bardin Model checking 33/ 47

Page 48: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 34/ 47

Page 49: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Conclusion

Algorithmes importants

aspect historique

la plupart des algos + avances sont des extensions (cf mc infini)

Limitations importantes

systemes finis

systemes petits, car M suppose pre-calcule

La suite

algorithmes efficaces pour les systemes finis

systemes infinis (software)

S.Bardin Model checking 35/ 47

Page 50: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Plan

Introduction

Prelude 1 : accessibilite, invariance, surete

Prelude 2 : SCC

CTL model checking

LTL model checking

Fair CTL model checking

Conclusion

Bonus techniques

S.Bardin Model checking 36/ 47

Page 51: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

cas EGϕ, lien avec les SCC

soit une structure de Kripke M = 〈Q,−→,P, l , s0〉

Proposition : un etat q ∈ Q verifie EGϕ ssi qπ−→ q′ tq tous les etats de

π verifient ϕ et q′ appartient a une composante fortement connexe nontriviale (mais pas forcement maximale) dont tous les etats verifient ϕ

(⇐) : ok

(⇒) : Soit q ∈ Q verifiant EGϕ. Donc il existe un chemin infini σpartant de q tq ϕ est vraie dans tous les etats de σ. Comme σ est infiniet que Q est fini, σ passe forcement une infinite de fois par au moins unetat. Soit q′ un de ces etats. On a donc :

qπ1−→ q′ π2−→ q′ ...

−→ (remarque : π2 6= ǫ)Comme π1π2 est un prefixe de σ, tous les etats de π1 verifient ϕ.De plus, q′ appartient a la composante fortement connexe non trivialeq′ π2−→ q′ dont tous les etats verifient ϕ.

S.Bardin Model checking 37/ 47

Page 52: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

cas EGϕ, lien avec les SCC (2)

Consequence : calcul du marquage (soit Qϕ les etats marques pour ϕ)

remarque : “composante fortement connexe non triviale de M donttous les etats verifient ϕ” peut se ramener a “composante fortementconnexe non triviale maximale de M restreint a Qϕ”

trouver les SCC (maximale) de Qϕ. On note L l’ensemble de tousces etats

alors : marquer pour EGϕ les etats qui atteignent L par unchemin dont tous les etats verifient ϕ

plus formellement : QEGϕ = (λX 7→ pre(X ) ∩ Qϕ)∗(L)

S.Bardin Model checking 38/ 47

Page 53: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Rappel : automates de Buchi

Outil pour reconnaıtre / manipuler des ensembles (infinis) de motsinfinis

Automate de Buchi B = 〈Σ,Q,−→, q0,F 〉

Σ alphabet (ensemble fini)

Q ensemble fini d’etats

−→⊆ Q ×Σ× Q les transitions

q0 l’etat initial

F ⊆ Q l’ensemble des etats finaux / acceptants

Un mot infini σ est reconnu si son execution dans l’automate B, i.e.q0

σ0−→ q1σ1−→ . . .

σn−→ qnσn+1−−−→ . . .

passe infiniment souvent par l’ensemble F

S.Bardin Model checking 39/ 47

Page 54: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Test du vide

Proposition : L(B) 6= ∅ ssi il existe qF ∈ F tel que q0∗−→ qF et qF

appartient a une SCC (non triviale, maximale) de B

(⇐) : ok car de qF on peut atteindre qF , d’ou un chemin infini partantde q0 et passant infiniment par qF , donc accepte par B

(⇒) : Soit un mot infini σ accepte par B. Donc l’execution infinie de σdans B passe infiniment souvent par F . Comme F est fini, il existe aumoins un qF ∈ F tel que l’execution de σ passe infiniment souvent par

qF : q0∗−→ qF

+−→ qF −→ . . .. De plus, qF appartient a la composante

fortement connexe non triviale qF+−→ qF . Il appartient donc forcement

aussi a une SCC non triviale maximale.

Algorithme de test du vide :

calculer les SCC de B. Ne garder que celles intersectant F (noteesFSCC). Soit L l’ensemble des etats des FSCC.

alors L(B) 6= ∅ ssi q0 peut atteindre L

ou encore L(B) 6= ∅ ssi post∗(q0) ∩ L 6= ∅ ssi q0 ∈ pre∗(L)

S.Bardin Model checking 40/ 47

Page 55: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Union d’automates de Buchi

Probleme : union d’automates de Buchi

Entrees : deux automates de Buchi sur le meme alphabet Σ

B1 = 〈Σ,Q1,−→1, qi1,F1〉 et B2 = 〈Σ,Q2,−→2, qi2,F2〉

Question : calculer B = 〈Σ,Q,−→, qi ,F 〉 tqL(B) = L(B1) ∪ L(B2)

Solution : B = 〈Σ,Q1 × Q2,−→, (qi1, qi2), (F1 × Q2) ∪ (Q1 × F2)〉 et −→est definie par : (soit a ∈ Σ)

(q1, q2)a−→ (q′

1, q′2) ssi q1

a−→1 q

′1 et q2

a−→2 q

′2

(⇐) : ok car l’automate B deroule l’execution d’un mot σ en parallelesur B1 et sur B2. Par exemple, si σ ∈ L(B1), alors σ dans B passerainfiniment souvent par des etats de la forme (qF1 , q2) et sera acceptepar B. Idem pour L(B2).(⇒) : Le mot est accepte par B ssi il passe infiniment souvent par F1

ou par F2. Donc σ passe infiniment souvent par au moins un des deux,donc il est accepte au moins par un des deux automates.

S.Bardin Model checking 41/ 47

Page 56: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Intersection d’automates de Buchi

Probleme : intersection d’automates de Buchi

Entrees : deux automates de Buchi sur le meme alphabet Σ

B1 = 〈Σ,Q1,−→1, qi1,F1〉 et B2 = 〈Σ,Q2,−→2, qi2,F2〉

Question : calculer B = 〈Σ,Q,−→, qi ,F 〉 tqL(B) = L(B1) ∩ L(B2)

Solution : B = 〈Σ,Q1 × Q2 × {1, 2},−→, (qi1, qi2, 1),F1 ×Q2 × {1}〉 et−→ est definie par : (soit a ∈ Σ)

(q1, q2, 1)a−→ (q′

1, q′2, 1) ssi q1

a−→1 q

′1 et q2

a−→2 q

′2 et q′

1 6∈ F1

(q1, q2, 1)a−→ (q′

1, q′2, 2) ssi q1

a−→1 q

′1 et q2

a−→2 q

′2 et q′

1 ∈ F1

(q1, q2, 2)a−→ (q′

1, q′2, 2) ssi q1

a−→1 q

′1 et q2

a−→2 q

′2 et q′

2 6∈ F2

(q1, q2, 2)a−→ (q′

1, q′2, 1) ssi q1

a−→1 q

′1 et q2

a−→2 q

′2 et q′

2 ∈ F2

Les deux executions sont lancees en parallele, et le temoin (1 ou 2)indique le prochain type d’etat final a atteindre (1 pour F1, 2 pour F2).Quand on attend un etat dans Fi et qu’on l’atteint, le temoin change devaleur. Cela permet d’assurer que l’execution a bien une infinite de F1

et une infinite de F2.

S.Bardin Model checking 42/ 47

Page 57: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Structure de Kripke vers automate de Buchi

Probleme :

Entrees : une structure de Kripke M = 〈Q,−→,P, l , s0〉

Question : calculer B = 〈Σ,Q ′,−→′, q0,F 〉 tq L(B) = L(M)

Solution : soit P = {p1, . . . , pn}, on note 2P l’ensemble dessous-ensembles de P. On definit B par B = 〈2P ,Q ′,−→′, q′

0,Q′〉 et :

Q’ = un etat par transition t ∈−→ et un etat initial nouveau q′0

les transitions : t1D−→

t2 ssi t1 = ( , sj ), t2 = (sj , ) et

D ⊆ P = l(sj ), et les transitions q′0

l(s0)−−→ (s0, )

Intuition : si on s’interessait aux transitions de M : B serait comme M(l’alphabet serait le “nom” des transitions), tous les etats seraientacceptants. Mais on veut des proprietes de suites d’etats : on inverseles etats / transitions de M, l’alphabet est le sous-ensemble desproprietes vraies (intuitivement : lues dans l’etat courant).

S.Bardin Model checking 43/ 47

Page 58: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Rappel : Fair CTL

CTL + equite (restreinte) : ajout dans le modele directement

contraintes d’equite : ensembles d’ensembles d’etatsF1, . . . , Fn ⊆ Q

chemins fair = passant infiniment souvent par chaque ensemble Fi

etats fair = etat d’ou part un chemin fair

Nouvelle relation de satisfaction |=fair

M, s |=fair p ssi p ∈ l(s) et s est un etat fair

M, s |=fair Aϕ ssi tous les chemins fair partant de s verifient ϕ

M, s |=fair Eϕ ssi il existe un chemins fair partant de s verifiant ϕ

Principe de l’algorithme de MC pour Fair CTL

1. trouver les etats fair par accessibilite de Fair SCC

2. marquer ces etats avec une nouvelle proposition fair

3. se ramener au cas normal en exprimant M, s |=fair ϕ en fonctionde |=, ϕ, fair

S.Bardin Model checking 44/ 47

Page 59: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Trouver les etats fair

Probleme : marquage des etats fair

Entrees : une structure de Kripke M = 〈Q,−→,P, l , s0〉 et descontraintes d’equites F1, . . . ,Fn ⊆ Q

Question : trouver les etats fair de M

On appelle Fair SCC une SCC qui intersecte chacun des Fi

Proposition : un etat q ∈ Q est fair ssi il existe q′ ∈ Q tel que q∗−→ q′

et q′ appartient a une Fair SCC (non triviale, maximale) de M

(⇐) : ok (on peut aisement construire un chemin fair partant de q etbouclant dans la Fair SCC)(⇒) : si q est fair, alors il existe un chemin fair σ qui part de q et passeinfiniment osuvent par chacun des Fi . Comme les Fi sont finis, il existeau moins pour chaque Fi un qFi visite infiniment souvent par σ. On

peut donc ecrire σ comme : q∗−→ qF1

∗−→ . . . qFn

∗−→ qF1

∗−→ . . .. Il vient

que les qFi sont dans la meme SCC (maximale, non triviale), cette SCCest donc fair.

S.Bardin Model checking 45/ 47

Page 60: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Trouver les etats fair (2)

Algorithme :

trouver les SCC (maximale) de M. Trouver celles qui sont fair.On note L l’ensemble de tous les etats des Fair SCC.

alors : les etats fair sont ceux qui peuvent atteignent L

plus formellement : Qfair = pre∗(L)

S.Bardin Model checking 46/ 47

Page 61: Cours de Model Checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf · Introduction Pr´elude 1 : Invariance et accessibilit´e Pr´elude 2 : SCC CTL

Introduction

Prelude 1 :Invariance etaccessibilite

Prelude 2 : SCC

CTL

LTL

Fair CTL

Conclusion

Bonus techniques

Reutiliser l’algorithme de marquage de CTL

But : exprimer les proprietes CTL sur une structure fair comme desproprietes CTL sur une structure normale avec la proposition atomiquefair

(attention : ne veut pas dire que Fair CTL = CTL)

Quelques equivalences :

M, s |=F p ssi M, s |= p ∧ fair

M, s |=F ¬p ssi M, s |= ¬p ∧ fair

M, s |=F EXϕ ssi M, s |= EX(ϕ ∧ fair)

M, s |=F AXϕ ssi M, s |= fair ∧ AX(fair =⇒ ϕ)

M, s |=F AGϕ ssi M, s |= fair ∧ AG(fair =⇒ ϕ)

M, s |=F Eϕ1Uϕ2 ssi M, s |= Eϕ1U(ϕ2 ∧ fair)

Remarque : attention a la negation !!! (rentrer les negations)

S.Bardin Model checking 47/ 47