MOd ´elisation et VALidation
Franck Cassez
IRCCyN/CNRS UMR 6597, 1 rue de la No ¨e,
B.P. 92101, 44321 Nantes Cedex 03
e-mail : Franck.Cassez@irccyn.ec-nantes.fr 6 f ´evrier 2002
Quelques caract ´eristiques des syst `emes embarqu ´es – r ´eactivit ´e (contr ˆoler un environnement)
syst `emes d’exploitation, protocoles de communication
– complexit ´e (activit ´es parall `eles, syst `emes r ´epartis et communicants) r ´eseaux, BDs r ´eparties
– criticit ´e (enjeux humains ou financiers)
transports, nucl ´eaire, t ´el ´ephone, m ´edical, etc – non-interop ´erabilit ´e ( . . . embarqu ´es . . . )
robots marsiens, etc
= ⇒
m ´ethodes de d ´eveloppement rigoureuses et v ´erificationM ´ethodes Formelles [8, 23]
Comment et quoi v ´erifier ?
quoi : des sp ´ecifications formelles sur un mod `ele formel du syst `eme comment :
d ´emonstration automatique : . . . pas automatique – universel (on put th ´eoriquement tout prouver) – outils : theorems provers
model-cheking : automatique – limitation : taille du syst `eme – outils : model-chekers
test : pas exhaustif – possible sur des impl ´ementations de grande taille – outils : g ´en ´erateurs de tests
V ´erification d’un syst `eme r ´eactif
description informelle
sp ´ecif.
fonctionnelle
mod `ele de comportement sp ´ecification
(MOVAL)
v ´erification
programmation (LGGCO)
Table des mati `eres
I Mod ´elisation et sp ´ecification des syst `emes concurrents 6
1 Machines `a ´etats 7
2 Les Logiques Temporelles – temps discret 32
II Algorithmes de model-checking 54
3 Model-checking de LTL 56
4 Model-checking de CTL 68
5 Model-checking symbolique 72
III Syst `emes temporis ´es 89
6 Automates Temporis ´es 90
7 Logique Temporelle TCTL – temps continu 103
8 Model-Cheking de TCTL 110
I Syst `emes concurrents
Premi `ere partie :
Mod ´elisation et sp ´ecification
des syst `emes concurrents
I Syst `emes concurrents 1 Machines `a ´etats
Chapitre 1 : Machines `a ´etats
Sommaire
1.1 Syst `emes de transitions . . . . 8
1.2 Ex ´ecutions d’un SdeT . . . . 14
1.3 Synchronisation des SdeTs . . . . 15
1.3.1 Produit libre de SdeTs . . . . 16
1.3.2 Produit synchronis ´e de SdeTs . . . . 17
1.4 D ´eterminisme – non d ´eterminisme . . . . 25
1.5 Equit ´e (Fairness) . . . . 27
1.6 Equivalences de syst `emes de transitions . . . . 28
1.6.1 Equivalence de traces . . . . 29
1.6.2 Equivalence de traces . . . . 29
I Syst `emes concurrents 1 Machines `a ´etats
1.1– Syst `emes de transitions
D ´efinition 1 (Syst `eme de transitions (SdeT) [4]) Un SdeT
S
c’est :–
Q
un ensemble (fini) d’ ´etats, –s
0, un ´etat initial–
A
un alphabet (fini) d’actions,–
−→⊆ Q × A × Q
une relation de transition.σ = s
0−→
l0s
1. . . s
n−→
lns
n+1. . .
est un chemin (ex ´ecution) deS
si∀i ≥ 0, (s
i, l
i, s
i+1) ∈−→
–
l
0l
1· · · l
n· · ·
est la trace deσ
–
s
est accessible⇐⇒ ∃s
0−→
ws, w ∈ A
∗–
Reach(S )
est l’ensemble des ´etats accessibles dansS
I Syst `emes concurrents 1 Machines `a ´etats
0 1
switch-on switch-off
switch-off
switch-on
FIG. 1.1 – SdeT repr ´esentant un interrupteur
I Syst `emes concurrents 1 Machines `a ´etats
0 1
switch-on switch-off
switch-off
switch-on
FIG. 1.2 – SdeT ´etiquet ´e repr ´esentant un interrupteur
L(0) = {
On,
Init} L(1) = {
Off}
L
−1(
On) = {0} L
−1(
Off) = {1}
I Syst `emes concurrents 1 Machines `a ´etats
0 1 2
3
4 5
in-card valide
code-not-OK
code-OK out-card
take
out-card
FIG. 1.3 – SdeT repr ´esentant le fonctionnement d’un GAB
I Syst `emes concurrents 1 Machines `a ´etats
0 1 2
3
4 5
in-card valide
∧n := n + 1
code-not-OK
∧n ≤ 3
code-not-OK
∧n > 3
code-OK
out-card
n
take:= 0
keep-card
n := 0
FIG. 1.4 – Un GAB plus perfectionn ´e
I Syst `emes concurrents 1 Machines `a ´etats
Utilisation de variables discr `etes – ensemble
V
de valeurs fini⇐⇒
SdeT finiv := k
v := [i, j ]
, . . .– description concise
– nombre r ´eel d’ ´etats
≤ |V | × |Q|
– syst `eme r ´eel
=
d ´epliage du syst `eme avec variables – variantes des mod `eles : voir [20]Exemple : introduire une/des variables pour le code.
I Syst `emes concurrents 1 Machines `a ´etats
1.2– Ex ´ecutions d’un SdeT
langage : le langage
L(S )
accept ´e par un SdeTS
est l’ensemble des traces de toutes les ex ´ecutions du SdeT `a partir des
0arbre : l’arbre d’ex ´ecution
A(S )
associ ´e `a un SdeT est d ´efini par : – la racine :(0, s
0)
– si
(n, s) ∈ A(S )
et(s, e, s
0) ∈→
alors(s
0, n + 1)
est un fils de(n, s)
Remarque :
L(S )
comprend des mots finis et/ou infinis –A(S )
peutˆetre un arbre infini.
I Syst `emes concurrents 1 Machines `a ´etats
1.3– Synchronisation des SdeTs
– un SdeT
=
description d’un composant d’un syst `eme– un syst `eme r ´eel
=
un ensemble de modules interagissants – but : construire le syst `eme global `a partir des sous-syst `emes – moyen : d ´ecrire l’interaction entre les sous-syst `emesformalisation : produit synchronis ´e de SdeT
`a la Arnold-Nivat [4]
I Syst `emes concurrents 1 Machines `a ´etats
1.3.1– Produit libre de SdeTs
D ´efinition 2 (Produit libre (ou cart ´esien) [4])
S
i= (Q
i, s
i0, A
i, →
i)
,n
SdeTs. Le produit libreS
1k S
2· · · k S
n des SdeTsS
i est un SdeTS = (Q, s
0, A, →)
d ´efini par : –Q = Q
1× Q
2× · · · × Q
n,–
s
0= (s
10, s
20, . . . , s
n0)
,–
A = A
1× A
2× · · · × A
n,–
−→⊆ Q × A × Q
:(q
1, . . . , q
n) −−−−−→
(a1,...,an)(q
10, . . . , q
n0) ⇐⇒ ∀i, q
i−→
aiq
i02
I Syst `emes concurrents 1 Machines `a ´etats
1.3.2– Produit synchronis ´e de SdeTs
D ´efinition 3 (Produit synchronis ´e [4])
S
i= (Q
i, s
i0, A
i, →
i)
,n
SdeTs.
I ⊆ A
1× A
2× · · · × A
n une contrainte de synchronisation. Le produit synchronis ´e(S
1k S
2· · · k S
n)
Sync des SdeTsS
i est un SdeTS = (Q, s
0, A, →)
d ´efini par : –Q = Q
1× Q
2× · · · × Q
n,–
s
0= (s
10, s
20, . . . , s
n0)
,–
A = A
1× A
2× · · · × A
n,–
−→⊆ Q × A × Q
:(q
1, . . . , q
n) −−−−−→
(a1,...,an)(q
10, . . . , q
n0) ⇐⇒
( (a
1, . . . , a
n) ∈ I
∧ ∀i, q
i−→
aiq
i02
I Syst `emes concurrents 1 Machines `a ´etats
Communication par envoi/r ´eception de messages
– but : d ´ecrire envoi/r ´eception de messages : communication synchrone – principe : ´etiquettes de transitions envoi
=!m
, r ´eception=?m
implicitement :
!m
initie la communication– description de la communication : synchronisation de
!m
et?m
Action “ne rien faire”
– nouvelle ´etiquette :
• =
“ne rien faire”– modification de la d ´efinition 1 :
∀q ∈ S, q − →
•q
et alphabetA ∪ {•}
– mod ´elisation de l’asynchronisme entre syst `emes : produit synchronis ´e (3) avec des
•
:(•, . . . , •, a
k, •, . . . , •, a
j, •, . . . , •)
I Syst `emes concurrents 1 Machines `a ´etats
Exemple : Le GAB (1.4) et un utilisateur
0 1 2
3
4 5
?in-card ?valide
∧n := n + 1
code-not-OK
∧n ≤ 3
code-not-OK
∧n > 3
code-OK
!out-card
!distrib
n := 0
keep-card
n := 0
FIG. 1.5 – GAB avec messages
I Syst `emes concurrents 1 Machines `a ´etats
Exemple : Le GAB et un utilisateur (suite)
0
!in-card1
!valide2
?out-card3
?take
FIG. 1.6 – Un bon utilisateur Contrainte de synchronisation
I
pour (GAB×
U) :( ?in-card, !in-card ) in
( ?valide, !valide )
valide
( !out-card, ?out-card ) out
( !take, ?take )
take
( code-OK,
•
)code-O
( code-not-OK,
•
)code-not-OK
•
keep-card
I Syst `emes concurrents 1 Machines `a ´etats
Exemple : Le GAB et un utilisateur (suite)
0
!in-card1
!valide2
?out-card3
?take
FIG. 1.7 – Un bon utilisateur Contrainte de synchronisation
I
pour (GAB×
U) :( ?in-card, !in-card ) in
( ?valide, !valide ) valide
( !out-card, ?out-card ) out
( !take, ?take ) take
( code-OK,
•
) code-O( code-not-OK,
•
) code-not-OK( keep-card,
•
) keep-cardI Syst `emes concurrents 1 Machines `a ´etats
Renommage
– synchronisation `a la Arnold-Nivat avec renommage
– d ´efinition 3 modifi ´ee :
f
fonction partielle de synchronisationf : A
1× A
2× · · · × A
n−→ A
et(q
1, . . . , q
n) − →
b(q
10, . . . , q
n0) ⇐⇒
( f (a
1, . . . , a
n) = b
∧ ∀i, q
i−→
aiq
i0Action invisible
– code-Ok, code-non-Ok, keep-card non vues par l’utilisateur (internes `a GAB)
– action sp ´eciale :
τ
I Syst `emes concurrents 1 Machines `a ´etats
(0, 0)
in(1, 1) (2, 2) (4, 2)
(5, 3)
(3, 2) (0, 2)
(1, 2)
valide
code-OK out
take
code-not-OK
n > 3
keep-card
code-not-OK
n ≤ 3
FIG. 1.8 – Produit synchronis ´e GAB
×
U – contrainteI
I Syst `emes concurrents 1 Machines `a ´etats
Synchronisation par variable(s) partag ´ee(s)
0 1 2
3
4 5
?in-card
c :=
card-code ?valide∧n := n + 1 τ ; c 6= c
0∧ n ≤ 3
τ ; c 6= c
0∧n > 3
c = τ c
0!out-card
!distrib
n := 0
keep-cardn := 0
FIG. 1.9 – GAB avec code
0
!in-card1
!valide∧c
0:=
pin2
?out-card3
?take
I Syst `emes concurrents 1 Machines `a ´etats
Ex ´ecutions infinies – action
•
toujours possible– deadlock
=
´etat dont on ne sort jamais– ex ´ecution finie compl ´et ´ee en une ex ´ecution infinie
s −−−−−→
a1a2···ans
0 devients −−−−−→
a1a2···ans
0 •− → s
0 •− → . . .
– ´etude des ex ´ecutions infinies
Etats ”puits”
deadlock : blocage non souhait ´e du syst `eme – ´etats sources d’aucune transition
– ´etats desquels on ne peut sortir
´etat final : ´etat normal d’arr ˆet
diff ´erence
= ⇒
utiliser ´etiquetage (1) :L(s) = terminal
I Syst `emes concurrents 1 Machines `a ´etats
1.4– D ´eterminisme – non d ´eterminisme
D ´efinition 4 (SdeT d ´eterministe) Un SdeT
S = (Q, s
0, A, →)
estd ´eterministe ssi
∀s, s
0, s
00∈ S, ∀a ∈ A, s − →
as
0∧ s − →
as
00= ⇒ s
0= s
00Sinon il est non d ´eterministe.
2
– SdeT d ´eterministe : traces identiques
= ⇒
ex ´ecutions identiques (une ex ´ecution possible)– SdeT non d ´eterministe : choix non d ´eterministe du syst `eme (parmi un nombre fini de choix)
I Syst `emes concurrents 1 Machines `a ´etats
Exemple : Abstraction non d ´eterministe du GAB
0 1 2
3
4 5
?in-card ?valide
τ
τ τ
!out-card
!distrib
τ
FIG. 1.11 – GAB non d ´eterministe
I Syst `emes concurrents 1 Machines `a ´etats
1.5– Equit ´e (Fairness) [4, 8, 10]
–
S
un SdeT : toute ex ´ecution (infinie) deS = ⇒
une transition deS
estinfiniment souvent tir ´ee
–
S = S
1k S
2 : ex ´ecution infinie deS 6= ⇒
infiniment souvent une transition deS
1 (S
2) soit tir ´ee´equit ´e forte : toute transition infiniment souvent tirable est infiniment souvent tir ´ee
´equit ´e faible : toute transition toujours tirable `a partir d’un certain moment est infiniment souvent tir ´ee
Exo : D ´efinir formellement les crit `eres d’ ´equit ´e. Relation ´equit ´es forte et
I Syst `emes concurrents 1 Machines `a ´etats
1.6– Equivalences de syst `emes de transitions [4]
– but : d ´efinir des ´equivalences pour 2 SdeTs
S
etS
0– crit `eres :
– m ˆemes traces (
L(S ) = L(S
0)
)– m ˆemes structures
– formalisation de ces crit `eres
– propri ´et ´es et relations entre les crit `eres
exemple : ´equivalence de traces et bisimulation
I Syst `emes concurrents 1 Machines `a ´etats
1.6.1– Equivalence de traces
–
S = (Q, s
0, A, →)
etS
0= (Q
0, s
00, A, →
0)
des SdeTs–
L(S, q ) = {
traces des chemins commenc¸ants enq
dansS }
–
q ∈ S, q
0∈ S
0, q ≈
tq
0⇐⇒ L(S, q ) = L(S
0, q
0)
–
S ≈
tS
0⇐⇒ s
0≈
ts
00s
0s
1s
2s
3s
4a
a
b
c
τ
τ
(a) Automate S
s
00s
01s
02s
03a b
c
τ
τ
(b) Automate S0
FIG. 1.12 – Automates traces- ´equivalents Extensions : traces acceptantes, refusantes, . . . autres ?
I Syst `emes concurrents 1 Machines `a ´etats
1.6.2– Equivalence de traces
–
S = (Q, s
0, A, →)
etS
0= (Q
0, s
00, A, →
0)
des SdeTs–
L(S, q ) = {
traces des chemins commenc¸ants enq
dansS }
–
q ∈ S, q
0∈ S
0, q ≈
tq
0⇐⇒ L(S, q ) = L(S
0, q
0)
–
S ≈
tS
0⇐⇒ s
0≈
ts
00s
0s
1s
2s
3s
4a
a
b
c
τ
τ
(a) Automate S
s
00s
01s
02s
03a b
c
τ
τ
(b) Automate S0
FIG. 1.13 – Automates traces- ´equivalents Extensions : traces acceptantes, refusantes, . . . autres ?
I Syst `emes concurrents 1 Machines `a ´etats
Bisimulation
–
S = (Q, s
0, A, →)
etS
0= (Q
0, s
00, A, →
0)
des SdeTs–
S
(resp.S
0) peut mimer chaque transition deS
0 (resp.S
)– vu de l’ext ´erieur
S
etS
0 sont indiscernabless
0s
1s
2s
3s
4a
a
b
c
τ
τ
(a) Automate S
s
00s
01s
02s
03a b
c
τ
τ
(b) Automate S0
FIG. 1.14 – Automates non bisimilaires
I Syst `emes concurrents 1 Machines `a ´etats
Bisimulation
–
S = (Q, s
0, A, →)
etS
0= (Q
0, s
00, A, →
0)
des SdeTs–
S
(resp.S
0) peut mimer chaque transition deS
0 (resp.S
)– vu de l’ext ´erieur
S
etS
0 sont indiscernabless
0s
1s
2s
3s
4a
a
b
c
τ
τ
(a) Automate S
s
00s
01s
02s
03a b
c
τ
τ
(b) Automate S0
FIG. 1.15 – Automates non bisimilaires
I Syst `emes concurrents 1 Machines `a ´etats
D ´efinition 5 (Relation de bisimulation)
S = (Q, s
0, A, →)
,S
0= (Q
0, s
00, A
0, →)
deux SdeTs,R ⊆ S × S
0 est une relation de bisimulation entreS
etS
0 ssiR
est totale et∀s ∈ S, s
0∈ S
0, sRs
0∀(s − →
as
1) = ⇒ ∃(s
0− →
as
01) ∧ s
1Rs
01 (1.1)∀(s
0− →
as
01) = ⇒ ∃(s − →
as
1) ∧ s
1Rs
01 (1.2)S
etS
0 sont en bisimulation ssi il existe une relation de bisimulationR
entre
S
etS
0 avecs
0Rs
00. Si uniquement 1.1 alorsR
est une relation desimulation entre
S
0 etS
etS
0 simuleS
.2
Exo :
S
0 simuleS
etS
simuleS
0= ⇒ S
etS
0 sont bisimilaires ?I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Chapitre 2 : Les Logiques Temporelles – temps discret
Sommaire
2.1 Logique temporelle lin ´eaire (LTL) . . . . 37 2.1.1 Syntaxe de LTL . . . . 37 2.1.2 S ´emantique de LTL . . . . 38 2.1.3 Abbr ´eviations utiles . . . . 39 2.1.4 Equit ´e 1.5 en LTL . . . . 41 2.1.5 Quelques ´equivalences de formules . . . . 42 2.2 Logique temporelle arborescente : CTL . . . . 43 2.2.1 Syntaxe de CTL . . . . 43 2.2.2 S ´emantique de CTL . . . . 44 2.2.3 Abbr ´eviations utiles . . . . 45 2.2.4 Equit ´e en CTL . . . . 49 2.2.5 Quelques ´equivalences de formules . . . . 50
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.3.1 Syntaxe de CTL∗ . . . . 51 2.3.2 S ´emantique de CTL∗ . . . . 52
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Logiques temporelles ?
– langages de sp ´ecification de propri ´et ´es d’un syst `eme r ´eactif – but : sp ´ecifier des comportements dynamiques
formules non statiques ; la valeur de v ´erit ´e change dans le temps exemple : toute demande d’argent sera satisfaite – on ne rec¸oit de l’argent que si on a entr ´e le bon code – l’imprimante 1 imprime – la
porte de l’ascenseur ne peut s’ouvrir que si le la cabine est arr ˆet ´ee, . . . Logiques adapt ´ees : logiques temporelles [8, 10, 15, 5, 26, 20]
– logique temporelle lin ´eaire (LTL) : propri ´et ´es des ex ´ecutions
– logique temporelle arborescente (CTL 2.2, CTL∗ 2.3) : propri ´et ´es des arbres d’ex ´ecution
–
µ
-calcul ?? : calcul de points fixesI Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Types de propri ´et ´es – Propri ´et ´e
=
ensemble d’ex ´ecutions– Temps
=
discret ; instants=
´etats successifs des ex ´ecutions (1) s ˆuret ´e (safety) : “quelque chose de mauvais n’arrive jamais”P
propri ´et ´e de s ˆuret ´e ssi :σ ∈ P ⇐⇒
tous les pr ´efixes finis deσ ∈ P
vivacit ´e (liveness) : “quelque chose de bon est toujours possible”
P
propri ´et ´e de vivacit ´e ssi :toute ex ´ecution finie
σ
peut ˆetre ´etendue enσ
0∈ P
Th ´eor `eme [1] : Toute propri ´et ´e est la conjonction d’une propri ´et ´e de s ˆuret ´e et d’une propri ´et ´e de vivacit ´e.
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Types de propri ´et ´es – Propri ´et ´e
=
ensemble d’ex ´ecutions– Temps
=
discret ; instants=
´etats successifs des ex ´ecutions (1) s ˆuret ´e (safety) : “quelque chose de mauvais n’arrive jamais”P
propri ´et ´e de s ˆuret ´e ssi :σ ∈ P ⇐⇒
tous les pr ´efixes finis deσ ∈ P
vivacit ´e (liveness) : “quelque chose de bon est toujours possible”
P
propri ´et ´e de vivacit ´e ssi :toute ex ´ecution finie
σ
peut ˆetre ´etendue enσ
0∈ P
Th ´eor `eme [1] : Toute propri ´et ´e est la conjonction d’une propri ´et ´e de s ˆuret ´e et d’une propri ´et ´e de vivacit ´e.
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Types de propri ´et ´es – Propri ´et ´e
=
ensemble d’ex ´ecutions– Temps
=
discret ; instants=
´etats successifs des ex ´ecutions (1) s ˆuret ´e (safety) : “quelque chose de mauvais n’arrive jamais”P
propri ´et ´e de s ˆuret ´e ssi :σ ∈ P ⇐⇒
tous les pr ´efixes finis deσ ∈ P
vivacit ´e (liveness) : “quelque chose de bon est toujours possible”
P
propri ´et ´e de vivacit ´e ssi :toute ex ´ecution finie
σ
peut ˆetre ´etendue enσ
0∈ P
Th ´eor `eme [1] : Toute propri ´et ´e est la conjonction d’une propri ´et ´e de
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Interpr ´etation des formules de logiques temporelles – mod `ele :
S = (Q, s
0, A, →, L)
SdeT ´etiquet ´e 1ensemble de propri ´et ´es atomiques sur les ´etats
AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {
tt,
ff}
– interpr ´etation ( ´evaluation) des formules
φ
surune ex ´ecution
σ
du SdeT en LTL∀σ ∈ Exec(S ),
σ | = φ
⇐⇒ S | = φ
arbre d’ex ´ecution
A(S )
du SdeT en CTLA(S ) | = φ ⇐⇒ S | = φ
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Interpr ´etation des formules de logiques temporelles – mod `ele :
S = (Q, s
0, A, →, L)
SdeT ´etiquet ´e 1ensemble de propri ´et ´es atomiques sur les ´etats
AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {
tt,
ff}
– interpr ´etation ( ´evaluation) des formules
φ
surune ex ´ecution
σ
du SdeT en LTL∀σ ∈ Exec(S ), σ | = φ ⇐⇒ S | = φ
arbre d’ex ´ecution
A(S )
du SdeT en CTLA(S ) | = φ ⇐⇒ S | = φ
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Interpr ´etation des formules de logiques temporelles – mod `ele :
S = (Q, s
0, A, →, L)
SdeT ´etiquet ´e 1ensemble de propri ´et ´es atomiques sur les ´etats
AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {
tt,
ff}
– interpr ´etation ( ´evaluation) des formules
φ
surune ex ´ecution
σ
du SdeT en LTL∀σ ∈ Exec(S ), σ | = φ ⇐⇒ S | = φ
arbre d’ex ´ecution
A(S )
du SdeT en CTLA(S ) | = φ
⇐⇒ S | = φ
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Interpr ´etation des formules de logiques temporelles – mod `ele :
S = (Q, s
0, A, →, L)
SdeT ´etiquet ´e 1ensemble de propri ´et ´es atomiques sur les ´etats
AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {
tt,
ff}
– interpr ´etation ( ´evaluation) des formules
φ
surune ex ´ecution
σ
du SdeT en LTL∀σ ∈ Exec(S ), σ | = φ ⇐⇒ S | = φ
arbre d’ex ´ecution
A(S )
du SdeT en CTLA(S ) | = φ ⇐⇒ S | = φ
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.1– Logique temporelle lin ´eaire (LTL) [10, 5, 26]
2.1.1– Syntaxe de LTL
objet de l’ ´etude : s ´equences d’ ´etats infinies – (d ´eterminisme) D ´efinition 6 (Formules de LTL) Les formules de LTL sont d ´efinies inductivement par :
–
∀p ∈ AP, p ∈
LTL–
p, q ∈
LTL, alorsp ∨ q, ¬p ∈
LTL,–
p, q ∈
LTL, alorsX p, p U q ∈
LTLS ´emantique intuitive :
p p
X
p
Xp
p p p q
p U q
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.1.2– S ´emantique de LTL – s ´equence
σ = s
0s
1. . . s
n. . .
–
σ
n= s
n. . .
–
∀k ≥ 0, L(s
k) ⊆ AP
(propositions atomiques vraies ens
k)et
s
i∈ L(s
j) ⇐⇒ i = j
et tt∈ L(s
i),
ff6∈ L(s
i)
D ´efinition 7 (S ´emantique de LTL)
σ
une s ´equence : –p ∈ AP, σ | = p ⇐⇒ p ∈ L(s
0)
–
σ | = p ∨ q ⇐⇒ σ | = p
ouσ | = q
–
σ | = ¬p ⇐⇒ σ 6| = p
,–
σ | = X p ⇐⇒ σ
1| = p
–
σ | = p U q ⇐⇒ ∃j, σ
j| = q
et(∀k < j, σ
k| = p)
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.1.3– Abbr ´eviations utiles – fatalement
p
: Fp ≡
ttU p
p • • •
– toujours
p
: Gp ≡ ¬
F¬p
(p
est un invariant)p p p p p p p p p p p • • •
– infiniment souvent
p
: GFp
p p p p p • • •
– presque partout
p
: FGp
p p p p p p • • •
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Exemple : Propri ´et ´es de
GAB × U
(1.8)– s ˆuret ´e : jamais carte rendue et code mauvais G
¬(U.3 ∧ n > 3)
– r ´eponse : obtenir de l’argent . . . G
(U.2 = ⇒
FU.3)
Exo : Proposer des formules LTL (si possible ?) pour les propri ´et ´es : 1. si l’utilisateur obtient de l’argent,
n ≤ 3
2. apr `es une demande l’utilisateur n’obtient de l’argent que si
n
estrest ´e
≤ 3
depuis sa demande3. si le GAB revient infiniment souvent dans son ´etat initial, l’utilisateur obtient infiniment souvent de l’argent
4. si l’utilisateur a de l’argent, avant il y a forc ´ement eu une demande 5. il est toujours possible d’obtenir de l’argent
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.1.4– Equit ´e 1.5 en LTL
S = (Q, s
0, A, →)
un SdeT avec propri ´et ´es sur les transitions et les´etats :
L : Q × A × Q → P
;L((s, a, s
0)) ∈ P
s ´equence
= (
´etat. transitions)
ωL(s) = {
enabled(t), t = (s, a, s
0) ∈→} L(t) = {
Exec(t), t ∈→}
´equit ´e faible : FG enabled
(t) = ⇒
GF Exec(t)
diff ´erence avec FG enabled
(t) = ⇒
F Exec(t)
?´equit ´e forte : FG enabled
(t) = ⇒
FG Exec(t)
Exo :
1. exprimer le blocage dans un ´etat
s
en LTL ;2. exprimer les crit `eres d’ ´equit ´es forte et faible en LTL pour des SdeTs avec
– propri ´et ´es sur les ´etats uniquement ;
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.1.5– Quelques ´equivalences de formules
p = ⇒
Fp
Xp = ⇒
Fp
Gp = ⇒
Fp pU q = ⇒
Fq
FGp = ⇒
GFp
FFp ≡
Fp
F
p ≡ p ∨
XFp
Gp ≡ p ∧
XGp
pU q ≡ q ∨ (p ∧
X(pU q ))
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.2– Logique temporelle arborescente : CTL [8, 15, 10]
objet de l’ ´etude : arbres d’ex ´ecutions (infinis) – (ind ´eterminisme) 2.2.1– Syntaxe de CTL
D ´efinition 8 (Formules de Computation Tree Logic) Les formules de CTL sont les formules d’ ´etats d ´efinies inductivement par :
–
∀p ∈ AP, p ∈
formules d’ ´etat–
p, q ∈
formules d’ ´etat CTL, alorsp ∨ q, ¬p ∈
formules d’ ´etat,–
p ∈
formules de chemin de CTL, alors Ep,
Ap ∈
formules d’ ´etats,–
p, q ∈
formules d’ ´etats de CTL, alorsX p, p U q ∈
formules de cheminI Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.2.2– S ´emantique de CTL – arbre d’ex ´ecution
≡
relation binaireR
(totale)– chemin
σ = s
0s
1. . . s
n⇐⇒ ∀i, (s
i, s
i+1) ∈ R σ
i= s
i. . .
–
∀k ≥ 0, L(s
k) ⊆ AP
(propositions atomiques vraies ens
k)D ´efinition 9 (S ´emantique de CTL)
σ
une s ´equence : –p ∈ AP, s
0| = p ⇐⇒ p ∈ L(s
0)
–
s
0| = p ∨ q ⇐⇒ s
0| = p
ous
0| = q s
0| = ¬p ⇐⇒ s
06| = p
,–
s
0| =
Ep ⇐⇒ ∃σ = s
0. . . , σ | = p
(p
formule de chemins) –s
0| =
Ap ⇐⇒ ∀σ = s
0. . . , σ | = p
(p
formule de chemins) –σ | = X p ⇐⇒ σ
1| = p
(p
formule d’ ´etat)–
σ | = p U q ⇐⇒ ∃j, σ
j| = q
et(∀k < j, σ
k| = p)
(p
etq
formulesI Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.2.3– Abbr ´eviations utiles AF
p ≡
A(
ttU p)
•
p p • • p
• • • p p p p p p •
EF
p ≡
E(
ttU p)
•
• • • • •
• • • • • p • • p •
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
AG
p ≡ ¬
EF¬p p
p p p p p
p p p p p p p p p p
EG
p ≡ ¬
AF¬p p
• p • • •
• • • p • • • • • •
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Exemples de propri ´et ´es de
GAB × U
(1.8)– s ˆuret ´e : jamais carte rendue et code mauvais AG
¬(U.3 ∧ n > 3)
– il est possible d’obtenir de l’argent apr `es chaque demande EG
(U.2 = ⇒
AFU.3)
– on obtient toujours de l’argent AG
(U.2 = ⇒
AFU.3)
– de tout ´etat, on peut revenir `a l’ ´etat initial AG
(
EFinit)
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
Exo : Proposer des formules CTL (si possible ?) pour les propri ´et ´es : 1. si l’utilisateur obtient de l’argent,
n ≤ 3
,2. apr `es une demande il est possible que l’utilisateur obtienne de l’argent
3. apr `es une demande l’utilisateur n’obtient de l’argent que si
n
estrest ´e
≤ 3
depuis sa demande4. si le GAB revient infiniment souvent dans son ´etat initial, l’utilisateur obtient infiniment souvent de l’argent
5. il est toujours possible d’obtenir de l’argent
Quelles sont les propri ´et ´es vraies sur le SdeT de la Fig. 1.8 ?
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.2.4– Equit ´e en CTL
– en LTL : FG et GF
impossible en CTL !
– Cf. syntaxe de CTL (8) : F et G ne peuvent ˆetre emboˆıt ´es – infiniment souvent
p
sur tous les chemins : AGAFp
– il existe un chemin avec infiniment souvent
p
:EGEF
p
? EGAFp
?– il existe un chemin avec infiniment souvent
p
1 etp
2 . . .– extension de CTL : Fair CTL
=
CTL avec une s ´emantique fair d ´efinir les chemins ´equitablesI Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.2.5– Quelques ´equivalences de formules
AG
p ≡ p ∧
AXAGp
EGp ≡ p ∧
EXEGp
AF
p ≡ p ∨
AXAFp
EFp ≡ p ∨
EXEFp
A
(pU q ) ≡ q ∨ (p ∧
AXA(pU q ))
E(pU q ) ≡ q ∨ (p ∧
EXE(pU q ))
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.3– LTL + CTL ⊆ CTL
∗[8, 10]
2.3.1– Syntaxe de CTL∗
D ´efinition 10 (Formules de CTL∗) Les formules de CTL∗ sont d ´efinies inductivement par :
(
s
1)∀p ∈ AP, p ∈
formules d’ ´etat(
s
2)p, q ∈
formules d’ ´etat, alorsp ∨ q, ¬p ∈
formules d’ ´etat, (s
3)p ∈
formules de chemin, alors Ep,
Ap ∈
formules d’ ´etat, (p
1)p ∈
formules d’ ´etat, alorsp ∈
formules de chemin,(
p
2)p, q ∈
formules de chemin, alorsp ∨ q, ¬p ∈
formules de chemin (p
3)p, q ∈
formules de chemin, alors Xp, p U q ∈
formules de chemin2
I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
2.3.2– S ´emantique de CTL∗
D ´efinition 11 (S ´emantique de CTL∗) La s ´emantique des formules de CTL∗ est d ´efinie inductivement par :
(
s
1)p ∈ AP,
formule d’ ´etat,s
0| = p ⇐⇒ p ∈ L(s
0)
(
s
2)s
0| = p ∨ q ⇐⇒ s
0| = p
ous
0| = q s
0| = ¬p ⇐⇒ s
06| = p
,(
s
3)s
0| =
Ep ⇐⇒ ∃σ = s
0. . . , σ | = p
(p
formule de chemins) (s
03)s
0| =
Ap ⇐⇒ ∀σ = s
0. . . , σ | = p
(p
formule de chemins) (p
1)p ∈
formules d’ ´etat,s
0| = p ⇐⇒ σ = s
0. . . | = p
(
p
2)σ | = p ∨ q ⇐⇒ σ | = p
ouσ | = q
(
p
3)σ | = X p ⇐⇒ σ
1| = p
(p
for. de chemin)(
p
03)σ | = p U q ⇐⇒ ∃j, σ
j| = q
et(∀k < j, σ
k| = p)
(p
etq
for. deI Syst `emes concurrents 2 Les Logiques Temporelles – temps discret
LTL, CTL, CTL∗ ?
nature du temps ´equit ´e outils
LTL lin ´eaire oui SPIN [13, 14]
CTL arborescent non SMV [21]
CTL∗ lin ´eaire et arborescent oui Autres logiques – TLA (Lamport) [16]
–
µ
-calcul [4] (MEC [3])II Algorithmes de model-checking
Deuxi `eme partie :
Algorithmes de model-checking
II Algorithmes de model-checking
V ´erification sur mod `ele : Model-checking [8, 7, 22]
–
S
un SdeT ´etiquet ´e–
φ
une formules de LTL, CTL ou CTL∗ – question :S
est-il un mod `ele deφ
.S | = φ
– r ´eponse oui ou non : algorithme de model-checking si oui ! ! si non
= ⇒
contre exempleII Algorithmes de model-checking 3 Model-checking de LTL
Chapitre 3 : Model-checking de LTL
Sommaire
3.1 Automates de B ¨uchi . . . . 57 3.2 Principe du model-checking pour LTL . . . . 61 3.3 Complexit ´e du model-cheking de LTL . . . . 62 3.4 Model-checking de LTL ” `a la vol ´ee”(on-the-fly) . . . . 63 3.5 Construction de Bφ . . . . 64
Figures
II Algorithmes de model-checking 3 Model-checking de LTL
3.1– Automates de B ¨ uchi [25]
D ´efinition 12 (Automate de B ¨uchi) Un automate de B ¨uchi
A
c’est :–
Σ
alphabet fini,–
Q
ensemble fini d’ ´etats–
−→⊆ Q × Σ × Q
relation de transition, –s
0 : ´etat initial,–
F
ensemble d’ ´etats accepteursex ´ecution
=
s ´equence infinie de transitions (de−→
)ex ´ecution admissible
=
ex ´ecution passant infiniment souvent par un´etat de
F
w
accept ´e parA ≡ w
est la trace d’une ex ´ecution admissible deA
langage accept ´e par
A
,L(A) = {w,
accept ´es parA}
II Algorithmes de model-checking 3 Model-checking de LTL
s
0a, b
FIG. 3.1 – Automate acceptant
(a ∪ b)
ωs
0s
1true {p} true
p
II Algorithmes de model-checking 3 Model-checking de LTL
s
0s
1true {p}
FIG. 3.3 – Automate acceptant
true 23 p
s
0s
1{p}
{q }
{p} ∨ {q }
FIG. 3.4 – Automate acceptant
2 (p U q )
II Algorithmes de model-checking 3 Model-checking de LTL
D ´efinition 13 (Automate de B ¨uchi G ´en ´eralis ´e) Un automate de B ¨uchi g ´en ´eralis ´e
A
c’est un automate de B ¨uchi o `u :–
I
est l’ensemble des ´etats initiaux,–
F = {F
1, . . . , F
n}
est une famille d’ensembles d’ ´etats accepteurs ex ´ecution admissible=
ex ´ecution issue d’un ´etat deI
et passantinfiniment souvent par un ´etat de chaque
F
iw
accept ´e parA ≡ w
est la trace d’une ex ´ecution admissible deA
langage accept ´e par
A
,L(A) = {w,
accept ´es parA}
Th ´eor `eme 1 (Expressivit ´e des B ¨uchi g ´en ´eralis ´es) Tout langage accept ´e par un automate de B ¨uchi g ´en ´eralis ´e est accept ´e par un
automate B ¨uchi.
2
II Algorithmes de model-checking 3 Model-checking de LTL
3.2– Principe du model-checking pour LTL [8, 7, 22]
–
φ
une propri ´et ´e−→ B
¬φ l’automate de B ¨uchi acceptant les ex ´ecutions satisfaisant¬φ
–
S
un syst `eme de transitions−→ S
est un automate de B ¨uchi o `u tous les ´etats sont accepteurs– synchronisation de
S × B
¬φ :(q, s) −→
L(q)(q
0, s
0)
–
(q, s)
accepteur⇐⇒ s
est accepteur dansB
¬φ– Algorithme de model-cheking :
L(S × B
¬φ) = ∅
?1. chercher cycle sur un ´etat accepteur
2. chemin d’un ´etat initial `a cet ´etat accepteur
II Algorithmes de model-checking 3 Model-checking de LTL
3.3– Complexit ´e du model-cheking de LTL
–
S
un SdeT :|S | = |Q| + |T |
–
|φ| =
nombre de sous formules deφ
–
|B
¬φ|
est enO (2
|φ|)
–
|S × B
¬φ|
est enO (|S |.|B
¬φ|)
–