cours de model checking - sebastien.bardin.free.frsebastien.bardin.free.fr/saclay-mc-slides3.pdf ·...
TRANSCRIPT
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
http://sebastien.bardin.free.fr/
S.Bardin Model checking 1/ 47
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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