Professional Documents
Culture Documents
par Model-Checking
Nathalie Sznajder
Université Pierre et Marie Curie, LIP6
SF - M2 SAR - 2016/2017
Les méthodes formelles
SF - M2 SAR - 2016/2017
ntroduction Introduction
Principles ofPrinciples
Model-Checking
of model checking
model checking
Does satisfy ?
Does satisfy ?
system specification
système system spécification
specification
|= ' ?
model-checker |= ' ?
model formula
model-checker
model formula
athalie Bertrand Model checking VTS – M2RI – 2011 3/86
SF - M2 SAR - 2016/2017
ntroduction Introduction
Principles ofPrinciples
Model-Checking
of model checking
model checking
Does satisfy ?
Does satisfy ?
Est-ce que le satisfait ?
system specification
système system spécification
specification
|= ' ?
model-checker |= ' ?
model formula
model-checker
model formula
athalie Bertrand Model checking VTS – M2RI – 2011 3/86
SF - M2 SAR - 2016/2017
ntroduction Introduction
Principles ofPrinciples
ntroduction
Model-Checking
of model checking
model checking
Principles of model checking
Does satisfy ?
Does satisfy ?
Est-ce que
Doesle satisfy satisfait ? ?
system specification
système
system system specification spécification
specification
'
|= |= ' ? ?
model-checker
model-checker |= ' ?
model formula
modèle
model formula
model-checker
model formula
athalie Bertrand Model checking
Figure 1: essai
athalie Bertrand Model checkingVTS –VTS
M2RI
– –M2RI
2011 – 2011 3/86 3/86
SF - M2 SAR - 2016/2017
Model-Checking
Principles of model checking
ntroduction Introduction
Principles ofPrinciples
ntroduction of model checking
model checking
Principles of model checking
Does satisfy
Does satisfy ?
Does satisfy ?
Est-ce que
Doesle satisfy satisfait ? ?
system specification system
système
system system specification spécification
specification
blablabla
'
|= |= ' ? ? '
model-checker
model-checker |= ' ?
model formula |=
modèle
model formula
model-checker formule
model formula
Figure 1: essai model-checke
athalie Bertrand
athalie Bertrand Model checking
Model checkingVTS –VTS
M2RI
– –M2RI
2011 – 2011 3/86 3/86
model
SF - M2 SAR - 2016/2017
Model-Checking
Principles of model checking
ntroduction Introduction
Principles
ntroduction ofPrinciples
Introduction
of model checking
model checking
Principles ofPrinciples of model checking
model checking
Does satisfy
Does satisfy ?
Does satisfy ?
Est-ce que
Doesle Does satisfy satisfait
satisfy ? ? ?
system specification system
système
system system
system specification spécification
specification
specification
blablabla
'
|= |= ⊧
|=
' ?' ? ' ? ?
model-checker
model-checker |= ' ?
model-checker
algorithme de
model formula |=
modèle model Model Checking
model formula
model-checker formule
formula
model formula
Figure 1: essai model-checke
athalie Bertrand
athalie Bertrand Model checking
Model checkingVTS –VTS
M2RI
– –M2RI
2011 – 2011 3/86 3/86
Nathalie Bertrand Model checking VTS – M2RI – 2011 model 3/86
SF - M2 SAR - 2016/2017
Références
bibliographiques
• Model Checking, E. Clarke, O. Grumberg,
D. Peled, MIT Press 99
• Vérification de logiciels : techniques et outils
du model-checking, P. Schnoebelen, B.
Bérard, M. Bidoit, F. Laroussinie, A. Petit,
Vuibert 99
• Principles of Model-Checking, C. Baier, J.-P.
Katoen, MIT Press 08
SF - M2 SAR - 2016/2017
Plan
1. Modélisation
2. Spécifications
1. Généralités
2. LTL
3. CTL
3. Algorithmes de Model Checking
1. LTL
2. CTL
3. Equité
SF - M2 SAR - 2016/2017
1. Modélisation
• On veut vérifier comportement du système au
cours du temps.
• Notion d’état à un instant donné
• Actions du système →changement d’état.
• →Système de transition
• Informations supplémentaires sur
• communication (notion d’action)
• propriétés vérifiées par les états (propositions
atomiques)
SF - M2 SAR - 2016/2017
Structure de Kripke
• Définition: M=(Q,T, A, q0, AP, l)
• Q : ensemble fini d’états
• A : alphabet d’actions (facultatif)
• T : relation de transitions entre états
• q0 : état initial
• AP : ensemble de propositions atomiques
AP
• l :Q 2 , étiquetage des états
SF - M2 SAR - 2016/2017
Structure de Kripke
SF - M2 SAR - 2016/2017
Example 2.2. Beverage Vending Machine
Exemple: distributeur
We consider an (somewhat foolish) example, which has been established as standard in the
field of process calculi. The transition system in Figure 2.1 models a preliminary design
of a beverage vending machine. The machine can either deliver beer or soda. States are
represented by ovals and transitions by labeled edges. State names are depicted inside the
ovals. Initial states are indicated by having an incoming arrow without source.
pay
get soda get beer
insert coin
τ
{paid, drink} soda τ select beer {paid, drink} {
{paid}
Figure 2.1: A transition system of a simple beverage vending machine.
The state space is S = { pay , select, soda , beer }. The set of initial states consists of
[Principles
only one state, i.e., I = { pay }. The (user) action insert of Model-Checking,
coin denotes the insertion of a
coin, while the (machine) actions get soda and get beer C. denote
Baier, J.-P.
theKatoen]
delivery of soda and
beer, respectively. Transitions of which the action label is not of further interest here,
e.g., as it denotes some internal activity of the beverage machine, are all denoted by the
distinguished action symbol τ . We have:
SF - M2 SAR - 2016/2017
Exemple: circuit
Transition Systems 27
y x
x XOR NOT y x 0 r 0 x 1 r 0
OR
x 0 r 1 x 1 r 1
r r x ry
⟨n1 , n2 , y=1⟩
first-in first-out (FIFO), or some other scheduling discipline can be chosen. Alternatively,
another (more concrete) mutual exclusion algorithm could be selected that resolves this
scheduling issue explicitly. A prominent example of such algorithm has been provided in
1981 by Peterson [332].
SF - M2 SAR Example
- 2016/2017
2.25. Peterson’s Mutual Exclusion Algorithm
Structure de Kripke
SF - M2 SAR - 2016/2017
Descriptifs de haut niveau
• Programmes séquentiels
• Programmes concurrents
• Réseaux de Petri
• ...
SF - M2 SAR - 2016/2017
système de transition + propositions K = (Q, I, d, V, l)
I
Une
V
structure de Kripke générée
ensemble de propositions atomiques
par
I un réseau
l : Q ! 2V propositions dedans
vraies Petri
un état
t1 t2 t3
{p3,p2} {p1,p5} {p2,p4}
p3 p4 p5
{p3,p5} {p4,p5}
t4 t5
{p6,p7}
p6 p7
{p1,p7} {p2,p6}
SF - M2 SAR - 2016/2017
Arbre d’exécutions d’une
structure de Kripke
s0 , 0
s0
s1 , 1 s2 , 1
s1 s2
s3 , 2 s3 , 2
s3
s2 , 3 s3 , 3 s2 , 3 s3 , 3
Figure 1: essai .. . .. .. . ..
. .. . . .. .
blablabla
ϕ
! ′
"
∀t · requete → ∃t ≥ t · (reponse)
SF - M2 SAR - 2016/2017
Arbre d’exécutions d’une
structure de Kripke
• Correspond au «dépliage» de la structure
de Kripke
• Sa racine est l’état initial de la structure de
Kripke
• Au niveau i, les fils d’un noeud sont les
états successeurs au niveau i+1
• La relation de transition est totale : l’arbre
est infini
SF - M2 SAR - 2016/2017
Systèmes concurrents
• Compositionnalité des modèles, description modulaire
• Différents modes de synchronisation
• entrelacement
• variables partagées
• communication par rendez-vous (synchrone)
• communication par canaux de communication
(asynchrone)
• produit synchrone
• ...
• explosion combinatoire
SF - M2 SAR - 2016/2017
s1 , 3 s3 , 3 s1 , 3 s3 , 3
y: 1 0
release
⟨w1 , n2 , y=1⟩ ⟨n1 , w2 , y=1⟩
P1 n1 w1
request1
c1 ⟨c1 , n2 , y=0⟩ ⟨w1 , w2 , y=1⟩ ⟨n1 , c2 , y=0⟩
release
⟨c1 , w2 , y=0⟩ ⟨w1 , c2 , y=0⟩
first-in first-out (FIFO), or some other scheduling discipline can be chosen. Alternative
P2
request2
n2 w2 c2 2 another (more concrete) mutual exclusion algorithm could be selected that resolves t
scheduling issue explicitly. A prominent example of such algorithm has been provided
1981 by Peterson [332].
release
Example 2.25. Peterson’s Mutual Exclusion Algorithm
Consider the processes P1 and P2 with the shared variables b1 , b2 , and x. b1 and b2
SF - M2 SAR - 2016/2017 Boolean variables, while x can take either the value 1 or 2, i.e., dom(x) = { 1, 2 }. T
1 Exercice (0.
γ α
β
s2 α s3
p2
SF
2 - M2 SAR - 2016/2017 (1 +
2. Spécifications
SF - M2 SAR - 2016/2017
Propriétés sur les
systèmes de transition (I)
• Invariance : tous les états du système
vérifient une certaine propriété
• Sûreté : quelque chose de mauvais
n’arrive jamais
• Accessibilité : un état donné est
accessible depuis l’état initial
SF - M2 SAR - 2016/2017
Propriétés sur les
systèmes de transition (II)
SF - M2 SAR - 2016/2017
Logiques temporelles
SF - M2 SAR - 2016/2017
Logiques temporelles :
pourquoi?
SF - M2 SAR - 2016/2017
Logiques temporelles :
pourquoi?
SF - M2 SAR - 2016/2017
Logiques temporelles
SF - M2 SAR - 2016/2017
Logiques temporelles
linéaires ou arborescentes
• 2 approches :
• temps linéaire : propriétés des
séquences d’exécutions (futur
déterminé)
• temps arborescent : propriétés de l’
arbre d’exécutions (tous les futurs
possibles)
SF - M2 SAR - 2016/2017
2.2 La logique LTL
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
[Pnueli 77]
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Xφ : ...
Xφ φ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Xφ : ...
Xφ φ
Xφ : ...
Xφ φ
Xφ : ...
Xφ φ
Xφ : ...
Xφ φ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Fφ : ...
Fφ φ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Fφ : ...
Fφ φ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Fφ : ...
Fφ Fφ Fφ φ
Fφ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Gφ : ...
φ φ φ
Gφ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Gφ : ...
φ φ φ
Gφ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
φ1Uφ2: ...
φ1 φ1 φ1 φ1 φ2
φ1Uφ2
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
φ1Uφ2: ...
φ1 φ1 φ1 φ1 φ2
φ1Uφ2
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
φ::= p∈AP | ¬φ | φ∨φ
|Xφ| Fφ| Gφ| φUφ
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
Exercice : vérifier.
SF - M2 SAR - 2016/2017
Logique temporelle linéaire : LTL
SF - M2 SAR - 2016/2017
LTL : Exemples
• Accessibilité : F (x=0)
• Invariance : G ¬(x=0)
• Vivacité : G(request → F response)
• Equité forte : GF enabled → GF scheduled
• Equité faible : FG enabled → GF scheduled
• Relâchement de contrainte : reset R alarm
SF - M2 SAR - 2016/2017
LTL : Exercice I
• Toute requête sera un jour satisfaite (AP = {requete, reponse})
• A chaque fois que de l’argent a été retiré, le code pin a été fourni
(AP={cash-withdraw, pin-ok})
• Deux processus ne sont jamais en section critique en même temps
(AP= {critique1, critique2})
• Si un processus demande l’accès en section critique, il l’obtiendra un
jour (AP = {demande_crit, acc_crit})
• Une fois que le feu est vert, il ne peut pas devenir rouge
immédiatement (AP= {vert, rouge})
• Lorsque le feu est rouge, il deviendra vert un jour
• Lorsque le feu est vert, il deviendra rouge un jour, après avoir été
orange (AP= {vert, rouge, orange})
SF - M2 SAR - 2016/2017
LTL : Exercice II
• Vérifier que ¬Xφ≣X¬φ, ¬(φ1Uφ2)≣ ¬φ1R¬φ2
• Dites si, à chaque position de la trace ci-dessous,
les propositions suivantes sont vérifiées : p∧q,
F(p∧q), pUq.
SF - M2 SAR - 2016/2017
LTL : Exercice III
• Les équivalences suivantes sont-elles vraies?
• G(Fp∧Fq) GFp∧GFq
• F(Gp∧Gq) FGp∧FGq
• G(Fp∨Fq) GFp∨GFq
• F(Gp∨Gq) FGp∨FGq
• GF(p∧q) GFp∧GFq
• GF(p∨q) GFp∨GFq
• FG(p∧q) FGp∧FGq
• FG(p∨q) FGp∨FGq
SF - M2 SAR - 2016/2017
2.3 CTL
SF - M2 SAR - 2016/2017
beling function L relates a set L(s) ∈ 2AP of atomic propositions to any state s.1
tuitively stands for exactly those atomic propositions a ∈ AP which are satisfied
Exprimer la possibilité
e s. Given that Φ is a propositional logic formula, then s satisfies the formula Φ if
luation induced by L(s) makes the formula Φ true; that is:
s |= Φ iff L(s) |= Φ.
principles of propositional logic are explained in Appendix A.3, see page 915 ff.)
e 2.2.
• La propriété «à chaque fois que paid est
Beverage Vending Machine
sider an (somewhat foolish) example, which has been established as standard in the
vérifié, il est possible d’obtenir une bière»
process calculi. The transition system in Figure 2.1 models a preliminary design
verage vending machine. The machine can either deliver beer or soda. States are
n’est pas exprimable en LTL!
nted by ovals and transitions by labeled edges. State names are depicted inside the
nitial states are indicated by having an incoming arrow without source.
pay
pay
get soda insert coin
get beer get soda get beer
{paid,
Figure 2.1: A transition system {paid} {paid,
of a simple beverage vending machine. soda beer
beer}
soda}
ate space is S = { pay , select, soda , beer }. The set of initial states consists of
Les deux systèmes vérifient les mêmes propriétés LTL!!
e state, i.e., I = { pay }. The (user) action insert coin denotes the insertion of a
hile the (machine) actions get soda and get beer denote the delivery of soda and
espectively. Transitions of which the action label is not of further interest here,
SF - M2 SAR - 2016/2017
it denotes some internal activity of the beverage machine, are all denoted by the
3
Computational Tree Logic : CTL
[Clarke, Emerson 81]
• Modèle des formules : état de l’arbre
d’exécutions infini.
• M,s ⊧ φ ssi la formule φ est vérifiée à l’état s de
la structure de Kripke M.
• On note S(φ) l’ensemble des états s t.q. M,s ⊧ φ
• Ajout de quantificateurs sur les chemins dans
l’arbre : E et A.
• Défini inductivement sur la formule.
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
q,r p
r,s p,q q s
s ⊧ p ssi p∈l(s)
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
EXφ
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
AXφ
φ φ
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
EφUφ’
φ
φ’
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
’ AφUφ’
φ
φ’ φ
φ φ’
φ’
s ⊧ AφUφ’ ssi pour toute exécution s0s1... telle
que s0=s, ∃ k t.q. sk ⊧φ’ et pour tout 0≤i<k, si ⊧φ.
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
φ::= p∈AP | ¬φ | φ∨φ
|EXφ| AXφ| EφUφ | AφUφ
s ⊧ p ssi p∈l(s)
s ⊧ ¬φ ssi s ⊭ φ
s ⊧ φ1∨φ2 ssi s ⊧ φ1 ou s ⊧ φ2
s ⊧ EXφ ssi il existe s’, successeur de s, t.q. s’⊧φ
s ⊧ AXφ ssi s’, pour tout s’, successeur de s, s’⊧φ
s ⊧ Eφ1Uφ2 ssi il existe une exécution s0s1...sk tel que s0=s, sk ⊧φ2 et
pour tout 0≤i≤k, si ⊧φ1.
s ⊧ Aφ1Uφ2 ssi pour toute exécution s0s1... telle que s0=s, il existe k
t.q. sk ⊧φ2 et pour tout 0≤i≤k, si ⊧φ1.
SF - M2 SAR - 2016/2017
CTL : macros
• EFφ ≣ E⊤Uφ
• AFφ≣A⊤Uφ
• EGφ≣¬AF¬φ
• AGφ≣¬EF¬φ
SF - M2 SAR - 2016/2017
CTL : Equivalences de
formules
• AXφ=¬EX¬φ
• AφUφ’=¬E¬(φUφ’)=¬E(G¬φ’∨¬φ’U(¬
φ∧¬φ’))=¬EG¬φ’∧¬E(¬φ’U(¬φ∧¬φ’))
SF - M2 SAR - 2016/2017
CTL : Lois d’expansion
• AφUφ’=φ’∨(φ∧AX(AφUφ’))
• AFφ=φ∨(AXAFφ)
• AGφ=φ∧AXAGφ
• EφUφ’=φ’∨(φ∧EXE(φUφ’))
• EFφ=φ∨EXEFφ
• EGφ=φ∧EXEGφ
SF - M2 SAR - 2016/2017
CTL : lois distributives
• AG(φ∧φ’)=AGφ∧AGφ’
• EF(φ∨φ’)=EFφ∨EFφ’
SF - M2 SAR - 2016/2017
Exemples
• Accessibilité : EF(x=0)
• Invariance : AG¬(x=0)
• Vivacité : AGAF(active)
SF - M2 SAR - 2016/2017
Exercice
CTL (Clarke & Emerson 81)
Example
p, r p, r p, q
5 6 7 8
1 2 3 4
q p, q q r
Compute
S(EXp)? S(AXp)?
S(EX p) = {1, 2, 3, 5, 6}
S(EFp)? S(AFp)?
S(AX p) = {3, 6}
S(EqUr)?S(AqUr)?
S(EF p) = {1, 2, 3, 4, 5, 6, 7, 8}
S(AF p) = {2, 3, 5, 6, 7}
S(E q U r) =
SF - M2 SAR -S(A
2016/2017
q U r) =
Exercice
• Toute fraude est susceptible d’être détectée un jour(AP={fraude,
detect})
• Deux processus ne sont jamais en section critique en même
temps (AP={crit1,crit2})
• Toute requête sera un jour satisfaite (AP = {requete, reponse})
• Le processus est activé infiniment souvent (AP= {active})
• Il est possible qu’à partir d’un moment, l’alarme sonne
continuellement (AP= {alarm})
• La lumière finit toujours par s’éteindre (AP= {off})
• La lumière finit toujours par s’éteindre et la ventilation tourne
tant que la lumière est allumée (AP= {ventilation,off})
SF - M2 SAR - 2016/2017
Comparaison LTL/CTL
• La formule CTL AF(a∧EXa) n’est pas
exprimable en LTL
• La formule LTL FG request →GF
response n’est pas exprimable en CTL
• LTL et CTL incomparables!
• LTL et CTL inclus dans CTL*
SF - M2 SAR - 2016/2017
3.Algorithmes de Model-
Checking
SF - M2 SAR - 2016/2017
Model-Checking de LTL
SF - M2 SAR - 2016/2017
Exercice
Exercise 3 (3 points)
Consider the transition system T S over the set of atomic propositions AP = {a, b, c}:
{a} {c}
s1 s2
s4
{b}
s3 s5
{b, c} {a, b, c}
M⊧ φ?for each of the LTL formulas ϕi below, whether T S |= ϕi holds. Justify your answers! If T S ̸|= ϕi ,
Decide
provide a path π ∈ P aths(T S) such that π ̸|= ϕi .
• φ=FGc ϕ1 = ✸✷c
• φ=GFc ϕ2 = ✷✸c
ϕ3 = ⃝¬c → ⃝⃝c
• φ=Ga ϕ4 = ✷a
ϕ5 = aU✷(b ∨ c)
• φ=aU(G(b∨c)) ϕ6 = (⃝⃝b)U(b ∨ c)
• X¬c→XXc
SF - M2 SAR - 2016/2017
Figure 1: essai
Model-Checking de LTL:blablabla
principe '
! 9t0 t · (reponse
8t · requeteblablabla
*
• Soit Σ un alphabet.
! On note Σ l’ensemble ' des
Figure 1: essai
mots finis et Σ les mots infinis.
8
• Modèlesblablabla
de φ = mots infinis. Soit ⟦φ⟧ le langage
! AP
des modèles
' de la formule : ⟦φ⟧={t∈(2 ) | t, 0⊧
φ} 0
8t · requete ! 9t t · (reponse)
• Soit ⟦M⟧ le langage des traces initiales de M :⟦M⟧=
AP !
{t∈ (2 ) | t est une trace initiale de M}
• Le problème du model-checking revient donc à
vérifier si : ⟦M⟧⊆⟦φ⟧
SF - M2 SAR - 2016/2017
Outil : les automates de
Büchi
• Définition : Un automate de Büchi est un n-uplet
A=(Q, Σ, I, T, F) avec
• Q un ensemble fini d’états
• Σ un alphabet fini
• I⊆Q les états initiaux
• T⊆Q x Σ x Q la relation de transition
• F⊆Q un ensemble d’états acceptants (ou
répétés)
SF - M2 SAR - 2016/2017
Outil : les automates de Figure 1: essai
Büchi blablabla
'
SF - M2 SAR - 2016/2017
⊆ Q × Σ × Q: transitions
le
a b
b
A= 1 2
a
ω
L(A) = {w ∈ {a, b} | |w|a = ω}
SF - M2 SAR - 2016/2017
Automate de Büchi: exemple
a, b b
A= b
1 2
L(A)?
SF - M2 SAR - 2016/2017
Automates de Büchi non-
déterministes
Figure 1: essai
• Les automates de Büchi non
déterministesblablabla
sont plus expressifs que les
automates de' Büchi déterministes
• Les langages reconnus par
0
un NBA
8t · requete ! 9t t · (repon
SF - M2 SAR - 2016/2017
Les automates de Büchi
pour LTL
• Définition : Un automate de Büchi est un n-uplet
A=(Q, Σ, I, T, F) avec
• Q un ensemble fini d’états
• Σ un alphabet fini
• I⊆Q les états initiaux
• T⊆Q x Σ x Q la relation de transition
• F⊆Q un ensemble d’états acceptants (ou répétés)
SF - M2 SAR - 2016/2017
Les automates de Büchi
pour LTL
• Définition : Un automate de Büchi est un n-uplet
A=(Q, Σ, I, T, F) avec
• Q un ensemble fini d’états
• Σ un alphabet fini Σ = 2AP
• I⊆Q les états initiaux
• T⊆Q x Σ x Q la relation de transition
• F⊆Q un ensemble d’états acceptants (ou répétés)
SF - M2 SAR - 2016/2017
Exercice
SF - M2 SAR - 2016/2017
s1 s2
Automates de Büchi et
LTL s3
Figure 1: essai
• Les formules de LTL sont moins
expressives
blablabla que les automates de Büchi
ϕ
• Exemple : «Un !instant sur′ deux, "
∀t · requete → ∃t ≥ t · (reponse)
l’événement a arrive.» est une propriété
ω régulière non exprimable en LTL
SF - M2 SAR - 2016/2017
Automates de Büchi
SF - M2 SAR - 2016/2017
Automates de Büchi - Test du vide
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧ (assez facile)
• Transformer φ en un automate Aφ tel que
L(Aφ)=⟦φ⟧ (plus difficile)
• Tester si L(AM)⊆ L(Aφ), i.e., si
c
L(AM)∩L(Aφ) =∅.
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme : u n
t e r
• Transformer M en un automate e n A M tel que
l é m i!!
L(AM)=⟦M⟧ (assez m p üch
facile)
c o eB
d e ed
• Transformer ci l e φ ena t un automate Aφ tel que
i f fi
L(AφD)=⟦φ⟧ u(plus t om difficile)
a
• Tester si L(AM)⊆ L(Aφ), i.e., si
c
L(AM)∩L(Aφ) =∅.
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL
φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧
• Tester si L(AM)∩L(A¬φ)=∅.
SF - M2 SAR - 2016/2017
Transformer φ en un
automate de Büchi
I. Automates de Büchi généralisés
II.Réduire la formule
I. Forme normale négative
II.Réduire les connecteurs temporels
III.Construire un graphe
IV.Transformation en automate de Büchi
SF - M2 SAR - 2016/2017
Transformer φ en un
automate de Büchi
I. Automates de Büchi généralisés
II.Réduire la formule
I. Forme normale négative
II.Réduire les connecteurs temporels
III.Transformation en automate de Büchi
généralisé
SF - M2 SAR - 2016/2017
Automates de Büchi généralisés
SF - M2 SAR - 2016/2017
Figure 1: essai
Automates deblablabla
'
Büchi généralisés
8t · requete ! 9t0 t · (rep
• Une exécution de A sur un mot infini
!
w=w0w1w2... de Σ est une séquence
r=q0q1q2q3... telle que q0∈I et (qi,wi,qi+1)∈T, pour
tout i≥0. Figure 1: essai
SF - M2 SAR - 2016/2017
Generalized Büchi automata
Automates de Büchi généralisés :
finition: acceptance on exemple
states
= (Q, Σ, I, T, F1 , . . . , Fn ) with Fi ⊆ Q.
infinite run σ is successful if it visits infinitely often each Fi .
Σ
Σ Σp
GFp∧GFq:
p∧ G F q: 0
Σq Σ
SF - M2 SAR - 2016/2017
Transformer φ en un
automate de Büchi
I. Automates de Büchi généralisés
II.Réduire la formule
I. Forme normale négative
II.Réduire les connecteurs temporels
III.Transformation en automate de Büchi
généralisé
SF - M2 SAR - 2016/2017
Forme normale négative
φ ::= ⊥ | ⊤ | p | ¬p | φ∨φ | φ∧φ |
Xφ | φUφ | φRφ
• ¬¬p=p
• ¬(φ1∨φ2)=¬φ1∧¬φ2
• ¬(φ1∧φ2)=¬φ1∨¬φ2
•¬(Xφ)=X(¬φ)
•¬(φ1Uφ2)=¬φ1R¬φ2
•¬(φ1Rφ2)=¬φ1U¬φ2
SF - M2 SAR - 2016/2017
Exercice
SF - M2 SAR - 2016/2017
Réduire les connecteurs
temporels
• Idée : Un état de notre graphe va
représenter l’ensemble des propositions
atomiques vérifiées au prochain instant de
la séquence, et l’ensemble des sous-
formules qu’il «promet» de vérifier à l’état
suivant.
• Pour cela, on ne veut que des propositions
atomiques (ou négations), et des sous-
formules commençant par X (next).
SF - M2 SAR - 2016/2017
Réduire les connecteurs
temporels
• Un ensemble Z de formules en forme
normale négative est réduit si
1. pour tout z∈Z, z est de la forme p, ¬p
ou X(z’)
2. il est cohérent : ⊥∉Z, {p,¬p}⊈Z, pour
tout p∈AP.
SF - M2 SAR - 2016/2017
Réduire les connecteurs
temporels
SF - M2 SAR - 2016/2017
Construction du graphe de réduction
SF - M2 SAR - 2016/2017
Construction du graphe de réduction
Z U {φ∨φ’}
Z U {φ} Z U {φ’}
SF - M2 SAR - 2016/2017
Construction du graphe de réduction
Z U {φ∨φ’} Z U {φ∧φ’}
SF - M2 SAR - 2016/2017
Construction du graphe de réduction
Z U {φ∨φ’} Z U {φ∧φ’}
Z U {φUφ’}
Z U {φ’} Z U {φ,X(φUφ’)}
SF - M2 SAR - 2016/2017
Construction du graphe de réduction
Z U {φ∨φ’} Z U {φ∧φ’}
Z U {φUφ’} Z U {φRφ’}
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
pUq, ¬rUs
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
pUq, ¬rUs
p,X(pUq), ¬rUs
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
pUq, ¬rUs
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
pUq, ¬rUs
p,X(pUq), s
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
pUq, ¬rUs
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
pUq, ¬rUs
SF - M2 SAR - 2016/2017
Exemple de réduction d’une formule
(pUq)∧(¬rUs)
(pUq)∧(¬rUs)
pUq, ¬rUs
SF - M2 SAR - 2016/2017
Transformer φ en un
automate de Büchi
I. Automates de Büchi généralisés
II.Réduire la formule
I. Forme normale négative
II.Réduire les connecteurs temporels
III.Transformation en automate de Büchi
généralisé
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
Exemple (suite)
(pUq)∧(¬rUs)
pUq, ¬rUs
Σp∧¬r
p,X(pUq), ¬rUs q, ¬rUs
SF - M2 SAR - 2016/2017
open door close door start oven start cooking
Exemple (fin)
reset
(p, ¬r)
p (q, s)
(q, ¬r) Σ
(p, s)
s
2 ¬r 3 4
FpUq={3,4} F¬rUs={2,4}
4
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔
• Tester si L(AM)∩L(A¬φ)=∅.
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔
• Tester si L(AM)∩L(A¬φ)=∅.
SF - M2 SAR - 2016/2017
Transformer M en un
automate de Büchi
• Soit M=(Q,T, A, q0, AP, l) une structure de Kripke. On construit
un automate de Büchi B= (Q’, Σ, q’0, T’, F) tel que L(B)=⟦M⟧:
• Idée: on fait «basculer» les étiquettes des états vers les
transitions + tous les états sont acceptants
AP
• Σ=2
• Q’=T U {q0’}
• F=Q’
• Soit t=(q0,q)∈T, alors (q0’,l(q0),t)∈T’
• Soient t=(q,q’) et t’=(q’,q’’)∈T, alors (t,l(q’),t’)∈T’
SF - M2 SAR - 2016/2017
Exemple
• au tableau
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL
φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧ ✔
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔
• Tester si L(AM)∩L(A¬φ)=∅.
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL
φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧ ✔
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔
• Tester si L(AM)∩L(A¬φ)=∅.
SF - M2 SAR - 2016/2017
Tester le vide de
l’intersection
SF - M2 SAR - 2016/2017
Model-Checking LTL: catching bugs
with a lasso
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧ ✔
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔
• Tester si L(AM)∩L(A¬φ)=∅. ✔
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧ ✔ O(|M|)
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔
• Tester si L(AM)∩L(A¬φ)=∅. ✔
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧ ✔ O(|M|)
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔ O(2|φ|)
• Tester si L(AM)∩L(A¬φ)=∅. ✔
SF - M2 SAR - 2016/2017
Model-Checking LTL :
approche par automates
• Donnée: Structure de Kripke M, formule LTL φ.
• Etapes de l’algorithme :
• Transformer M en un automate AM tel que
L(AM)=⟦M⟧ ✔ O(|M|)
• Transformer φ en un automate A¬φ tel que
L(A¬φ)=⟦¬φ⟧ ✔ O(2|φ|)
• Tester si L(AM)∩L(A¬φ)=∅. ✔ O(|M|.2 )
|φ |
SF - M2 SAR - 2016/2017
Model-Checking LTL:
techniques à la volée
SF - M2 SAR - 2016/2017
Rappels de CTL
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
q,r p
r,s p,q q s
s ⊧ p ssi p∈l(s)
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
EXφ
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
AXφ
φ φ
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
EφUφ’
φ
φ’
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
’ AφUφ’
φ
φ’ φ
φ φ’
φ’
s ⊧ AφUφ’ ssi pour toute exécution s0s1... telle
que s0=s, ∃ k t.q. sk ⊧φ’ et pour tout 0≤i<k, si ⊧φ.
SF - M2 SAR - 2016/2017
CTL: syntaxe et sémantique
φ::= p∈AP | ¬φ | φ∨φ
|EXφ| AXφ| EφUφ | AφUφ
s ⊧ p ssi p∈l(s)
s ⊧ ¬φ ssi s ⊭ φ
s ⊧ φ1∨φ2 ssi s ⊧ φ1 ou s ⊧ φ2
s ⊧ EXφ ssi il existe s’, successeur de s, t.q. s’⊧φ
s ⊧ AXφ ssi s’, pour tout s’, successeur de s, s’⊧φ
s ⊧ Eφ1Uφ2 ssi il existe une exécution s0s1...sk tel que s0=s, sk ⊧φ2 et
pour tout 0≤i≤k, si ⊧φ1.
s ⊧ Aφ1Uφ2 ssi pour toute exécution s0s1... telle que s0=s, il existe k
t.q. sk ⊧φ2 et pour tout 0≤i≤k, si ⊧φ1.
SF - M2 SAR - 2016/2017
CTL : macros
• EFφ ≣ E⊤Uφ
• AFφ≣A⊤Uφ
• EGφ≣¬AF¬φ
• AGφ≣¬EF¬φ
SF - M2 SAR - 2016/2017
CTL : Equivalences de
formules
• AXφ=¬EX¬φ
• AφUφ’=¬E¬(φUφ’)=¬EG¬φ’∧¬E(¬φ’U
(¬φ∧¬φ’))
SF - M2 SAR - 2016/2017
CTL : Lois d’expansion
• AφUφ’=φ’∨(φ∧AX(AφUφ’))
• AFφ=φ∨(AXAFφ)
• AGφ=φ∧AXAGφ
• EφUφ’=φ’∨(φ∧EXE(φUφ’))
• EFφ=φ∨EXEFφ
• EGφ=φ∧EXEGφ
SF - M2 SAR - 2016/2017
CTL : lois distributives
• AG(φ∧φ’)=AGφ∧AGφ’
• EF(φ∨φ’)=EFφ∨EFφ’
SF - M2 SAR - 2016/2017
Exemples
• Accessibilité : EF(x=0)
• Invariance : AG¬(x=0)
• Vivacité : AGAF(active)
SF - M2 SAR - 2016/2017
Exercice
CTL (Clarke & Emerson 81)
Example
p, r p, r p, q
5 6 7 8
1 2 3 4
q p, q q r
Compute
S(EXp)? S(AXp)?
S(EX p) = {1, 2, 3, 5, 6}
S(EFp)? S(AFp)?
S(AX p) = {3, 6}
S(EqUr)?S(AqUr)?
S(EF p) = {1, 2, 3, 4, 5, 6, 7, 8}
S(AF p) = {2, 3, 5, 6, 7}
S(E q U r) =
SF - M2 SAR -S(A
2016/2017
q U r) =
Exercice
• Toute fraude est susceptible d’être détectée un jour(AP={fraude,
detect})
• Deux processus ne sont jamais en section critique en même
temps (AP={crit1,crit2})
• Toute requête sera un jour satisfaite (AP = {requete, reponse})
• Le processus est activé infiniment souvent (AP= {active})
• Il est possible qu’à partir d’un moment, l’alarme sonne
continuellement (AP= {alarm})
• La lumière finit toujours par s’éteindre (AP= {off})
• La lumière finit toujours par s’éteindre et la ventilation tourne
tant que la lumière est allumée (AP= {ventilation,off})
SF - M2 SAR - 2016/2017
Comparaison LTL/CTL
• La formule CTL AG(EFa) n’est pas
exprimable en LTL.
• La formule LTL FG request →GF
response n’est pas exprimable en CTL
• LTL et CTL incomparables!
• LTL et CTL inclus dans CTL*
SF - M2 SAR - 2016/2017
Model-Checking de CTL
SF - M2 SAR - 2016/2017
(d) ∀♦ g (j) ∀( ¬ b U ∃♦ b)
(e) ∃♦ g (k) ∀(g U ∀(y U r))
(f) ∃" g
Exercice (l) ∀( ¬ b U b)
Consider the following CTL formulae and the transition system TS outlined on
∀(a U b) ∨ ∃ ⃝ (∀" b) s0 s4
∀" ∀(a U b) ∅ {b}
M⊧∃φ?
(a ∧ b) → ∃" ⃝ ∀(b W a)
s3 s2 s1
(∀" ∃♦ Φ3 ) {b} { a, b } {a}
φ=
satisfaction setsA(aUb)∨EXEGb
Sat(Φi ) and decide whether TS |= Φi (1 # i # 4).
φ=AG(A(aUb))
Which of the following assertions are correct? Provide a proof or a counterexample.
SF - M2 SAR - 2016/2017
Arbre syntaxique : exemple
φ=EXa∧E(bU(EG¬c)) ∧
EX EU
a b EG
c
SF - M2 SAR - 2016/2017
Procédure de marquage: mark(φ)
• si φ=p :
pour tout s∈Q s.φ:=(p∈ l(s));
• si φ=¬φ’:
mark(φ’);
pour tout s∈Q s.φ:=¬s.φ’;
• si φ=φ1∨φ2
mark(φ1); mark(φ2);
pour tout s∈Q, s.φ:=s.φ1∨s.φ2;
• si φ=EXφ’:
mark(φ’);
pour tout s∈Q, s.φ:=false;
pour tout (t,s)∈T, si s.φ’, alors t.φ:=true;
• si φ=AXφ’:
mark(φ’);
pour tout s∈Q, s.φ:=true;
pour tout (t,s)∈T, si ¬s.φ’, alors t.φ:=false;
SF - M2 SAR - 2016/2017
Procédure de marquage: mark(φ)
• cas Eφ1Uφ2: idée = Eφ1Uφ2≣φ2∨(φ1∧EX(Eφ1Uφ2))
X=Sat(φ2)U (Sat(φ1)∩Pre(X))
• si φ=Eφ1Uφ2 :
mark(φ1);mark(φ2);
L:=∅;
pour tout s∈Q, s.φ:=s.φ2; si s.φ, L:=L U{s};
tant que L≠∅
pour tout s∈L, L:=L∖{s};
pour tout prédécesseur t de s, si t. φ1∧¬t. φ, alors t.
φ:=true ; L:=LU{t};
SF - M2 SAR - 2016/2017
Procédure de marquage: mark(φ)
• cas Aφ1Uφ2: idée = Aφ1Uφ2≣φ2∨(φ1∧AX(Aφ1Uφ2))
X=Sat(φ2)U (Sat(φ1)∩{t∈S|∀s, (t,s)∈T, s∈X})
• si φ=Aφ1Uφ2 :
mark(φ1);mark(φ2);
L:=∅;
pour tout s∈Q, s.φ:=s.φ2; s.nb=degree(s);si s.φ, L:=L U{s};
tant que L≠∅
pour tout s∈L, L:=L∖{s};
pour tout prédécesseur t de s,
t.nb:=t.nb-1;
si t.nb:=0∧t. φ1∧¬t. φ, alors t. φ:=true ; L:=LU{t};
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
Start Close
Close
Error done Heat
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
Start Start
Close
Close
Error done Heat
Start Start
Start Start warmup Start
Close
Error
Start Close
Close
Heat
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
Start Start
Close
Close Heat
Error done Heat
Start Start
Start Start warmup Start
Close
Start Close
Close
Error Heat
Heat
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U nb=2
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
nb=3
Start Start Close Heat
nb=1 nb=2 Close
Error done Heat
A(TUHeat)
nb=1 nb=1
nb=2 Start Start
Start Start warmup Start
Close
Start Close
Close
A(TUHeat)
2
Error Heat
Heat
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U nb=2
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
nb=2
Start Start Close Heat
nb=1 nb=2 Close
Error done Heat
A(TUHeat)
nb=1 nb=1
nb=2 Start Start
Start Start warmup Start
Close
Start Close
Close
A(TUHeat)
2
Error Heat
Heat
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U nb=2
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
nb=2
Start Start Close Heat
nb=1 nb=2 Close
Error done Heat
A(TUHeat)
nb=1 nb=0
nb=2 Start Start
Start Start warmup Start
Close
Start Close
Close
A(TUHeat)
2
Error Heat
Heat
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U nb=2
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
nb=2
Start Start Close Heat
nb=1 nb=2 Close
Error done Heat
A(TUHeat)
nb=0 nb=0
nb=2 Start Start
Start Start warmup Start
Close
Start Close
Close
A(TUHeat)
2
Error Heat
Heat
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U nb=2
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
nb=2
Start Start Close Heat
nb=1 nb=2 Close
Error done Heat
A(TUHeat)
nb=0 nb=0
nb=2 Start Start
Start Start warmup Start
Close
Start Close
Close
A(TUHeat)
2
Error Heat
Heat
A(TUHeat)
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U nb=2
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
nb=2
Start Start Close Heat
nb=1 nb=1 Close
Error done Heat
A(TUHeat)
nb=0 nb=0
nb=2 Start Start
Start Start warmup Start
Close
Start Close
Close
A(TUHeat)
2
Error Heat
Heat
A(TUHeat)
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
Start Start
Close
Close Heat
Error done Heat
A(TUHeat)
Start Start
Start Start warmup Start
Close
Start Close
Close
A(TUHeat)
2
Error Heat
Heat
A(TUHeat)
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U
(Start∧¬(A(⊤U Heat)))) ¬A(TUHeat)
start oven open door
open door close door cook
Start Start
¬A(TUHeat) Start Start warmup Start
Close
Start Close
Close
2
Error Heat
Heat
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
Start Start
¬A(TUHeat) Start Close
Start
Close
warmup
Close
Error Heat
2
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
E(TUf)
Start Close
Close
Error done Heat
E(TUf) Start
Start warmup Start
Close Close
Close
Error Heat
2
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U E(TUf)
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
E(TUf)
Start Close
Close
Error done Heat
E(TUf) Start
Start warmup Start
Close Close
Close
Error Heat
2
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U E(TUf)
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
E(TUf)
Start
Close
Close E(TUf)
Error done Heat
E(TUf) Start
Start warmup Start
Close Close
Close
Error Heat
2
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U E(TUf)
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
E(TUf)
Start
Close
Close E(TUf)
Error done Heat
E(TUf) Start
Start warmup Start
E(TUf)
Close Close
Close
Error Heat
2
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U E(TUf)
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
E(TUf)
Start
Close
Close E(TUf)
Error done Heat
E(TUf) Start
Start warmup Start
E(TUf)
Close Close
Close
Error Heat
2 E(TUf)
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat)
=¬E(⊤U E(TUf)
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
E(TUf)
Start
Close
Close E(TUf)
Error done Heat
E(TUf)
open door close door start oven start cooking
reset
E(TUf) Start
Start warmup Start
E(TUf)
Close Close
Close
Error Heat
2 E(TUf)
[Model-Checking, Clarke, Grumberg, Peled]
SF - M2 SAR - 2016/2017
Exemple : un four à microondes
φ =AG(Start→AF Heat) S(φ)=∅
=¬E(⊤U
(Start∧¬(A(⊤U Heat))))
start oven open door
open door close door cook
Start Close
Close
Error done Heat
SF - M2 SAR - 2016/2017
Complexité
SF - M2 SAR - 2016/2017
3.3 Inclure des notions
d’équité
SF - M2 SAR - 2016/2017
Exécutions équitables
SF - M2 SAR - 2016/2017
Contraintes d’équité
SF - M2 SAR - 2016/2017
Conditions d’équité
SF - M2 SAR - 2016/2017
Exécutions équitables
SF - M2 SAR - 2016/2017
LTL équitable
SF - M2 SAR - 2016/2017
Exemple
Parallelism and Communication
⟨n1 , n2 , y=1⟩
first-in first-out (FIFO), or some other scheduling discipline can be chosen. Alternative
another (more concrete) mutual exclusion algorithm could be selected that resolves t
scheduling issue explicitly. A prominent example of such algorithm has been provided
1981 by Peterson [332].
⟨n1 , n2 , y=1⟩
first-in first-out (FIFO), or some other scheduling discipline can be chosen. Alternative
another (more concrete) mutual exclusion algorithm could be selected that resolves t
scheduling issue explicitly. A prominent example of such algorithm has been provided
1981 by Peterson [332].
∧ ⟨n1 , n2 , y=1⟩
first-in first-out (FIFO), or some other scheduling discipline can be chosen. Alternative
another (more concrete) mutual exclusion algorithm could be selected that resolves t
scheduling issue explicitly. A prominent example of such algorithm has been provided
1981 by Peterson [332].
∧ ⟨n1 , n2 , y=1⟩
first-in first-out (FIFO), or some other scheduling discipline can be chosen. Alternative
another (more concrete) mutual exclusion algorithm could be selected that resolves t
scheduling issue explicitly. A prominent example of such algorithm has been provided
1981 by Peterson [332].
∧ ⟨n1 , n2 , y=1⟩
first-in first-out (FIFO), or some other scheduling discipline can be chosen. Alternative
another (more concrete) mutual exclusion algorithm could be selected that resolves t
scheduling issue explicitly. A prominent example of such algorithm has been provided
1981 by Peterson [332].
SF - M2 SAR - 2016/2017
CTL équitable
SF - M2 SAR - 2016/2017
CTL équitable
φ::= p∈AP | ¬φ | φ∨φ
|EfXφ| AfXφ| EfφUφ | AfφUφ
s ⊧ p ssi p∈l(s)
s ⊧ ¬φ ssi s ⊭ φ
s ⊧ φ1∨φ2 ssi s ⊧ φ1 ou s ⊧ φ2
s ⊧ EfXφ ssi il existe une exécution équitable s0s1... tel que s0=s, t.q. s1⊧φ
s ⊧ AfXφ ssi s’, pour toute exécution équitable s0s1... telle que s0=s, s1⊧φ
s ⊧ Efφ1Uφ2 ssi il existe une exécution équitable s0s1...sk tel que s0=s, sk ⊧φ2 et
pour tout 0≤i≤k, si ⊧φ1.
s ⊧ Afφ1Uφ2 ssi pour toute exécution équitable s0s1... telle que s0=s, il existe k
t.q. sk ⊧φ2 et pour tout 0≤i≤k, si ⊧φ1.
SF - M2 SAR - 2016/2017
Model-Checking de CTL équitable
SF - M2 SAR - 2016/2017
Model-Checking de CTL équitable
SF - M2 SAR - 2016/2017
Calculer fair : les composantes
fortement connexes
SF - M2 SAR - 2016/2017
Calculer fair : le cas
inconditionnel
• On considère une condition d’équité de la forme
∧iGFφi, avec φi formule CTL.
• On marque les états par les φi.
• On calcule les SCC de M par l’algorithme de Tarjan.
• Soit S’ l’union des SCC qui intersectent S(φi), pour
tout i.
• fair est l’ensemble des états pouvant atteindre S’.
• (accessibilité se calcule en temps linéaire)
SF - M2 SAR - 2016/2017
Calculer EfGφ : le cas
inconditionnel
• Effectuer mark(φ).
• Soit M(φ) la restriction de M aux états de S(φ).
• Calculer les SCC de M(φ) (algo de Tarjan).
• Soit S’ l’union de SCC de M(φ) intersectant
S(φi), pour tout i.
• M,s⊧EfGφ ssi M,s⊧EφUS’ ssi M(φ),s⊧EFS’.
• →problème d’accessibilité.
SF - M2 SAR - 2016/2017
Model-Checking de CTL équitable
SF - M2 SAR - 2016/2017
Model-Checking de CTL équitable
SF - M2 SAR - 2016/2017
Model-Checking de CTL équitable
SF - M2 SAR - 2016/2017
Et aussi...
SF - M2 SAR - 2016/2017