cours de model checking - freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · rappels intuition...
Post on 15-Aug-2020
11 Views
Preview:
TRANSCRIPT
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Cours de Model CheckingLecon 2.1 : logiques temporelles
Sebastien Bardin
CEA-LIST, Laboratoire de Surete Logicielle
sebastien.bardin@cea.fr
http://sebastien.bardin.free.fr/
S.Bardin Model checking 1/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Plan
Cours 2.1 : logiques temporelles
Rappel
Logiques temporelles : intuition
Preambule technique
LTL, CTL∗ et CTL
Comparaison
Disgressions
Cours 2.2 : algorithmes
S.Bardin Model checking 2/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Systemes reactifs
S.Bardin Model checking 3/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Systemes reactifs II
Programme classique
termine
retourne un resultat
donnees complexes, controle sequentiel (≈ simple)
exemple : compilateur, algo de tri
Systeme reactif
ne doit pas terminer
ne retourne pas de resultat
donnees simples, controle distribue (≈ complexe)
exemple : protocole, OS
S.Bardin Model checking 4/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Systemes reactifs III
Verifier un programme classique : Aspect temporel toujoursidentique, mais les predicats sur les donnees peuvent etrecomplexes.
“Le programme termine et le tableau est trie”.
S.Bardin Model checking 5/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Systemes reactifs III
Verifier un programme classique : Aspect temporel toujoursidentique, mais les predicats sur les donnees peuvent etrecomplexes.
“Le programme termine et le tableau est trie”.
Verifier un systeme reactif : Aspect temporel tres varie maisles predicats sur les donnees sont souvent simples.
“Si un processus demande infiniment souvent a etre execute, alors
l’OS finira par l’executer”.
“Il est toujours possible de revenir a l’etat initial”.
“Chaque fois qu’une panne est detectee, une alarme est emise”.
“Chaque fois qu’une alarme est emise, une panne a ete detectee”.
S.Bardin Model checking 5/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Le model checking
Model Checking
Technique de verification automatique de systemes reactifs
Ingredients
M = systeme de transitions
ϕ = formule temporelle
MC = est-ce que M |= ϕ ?
Avantages
Phases amonts : specifs et design
Automatise
Trouve mieux les bugs que le test
Cost efficient (pour certains domaines)
S.Bardin Model checking 6/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Systeme de transitions
Systeme de transitions = comportement du systeme reactif
choice
money
cancel
back
served
serving,0,trueserved,0,true
money
cancel
idle,1,false idle,2,falseidle,0,false
S.Bardin Model checking 7/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Proprietes sur les systemes reactifs
Accessibilite Une certaine situation peut etre atteinte
x peut valoir 0, toute instruction peut etre executee
Invariance Chaque etat local respecte une bonne propriete
x ne vaut jamais 0, le tableau ne deborde jamais
Surete Quelquechose de mauvais n’arrive jamais
j’accede au fichier uniquement si j’ai entre le bon PIN
Vivacite Quelquechose de bon finit par arriver
le programme termine, le message finit toujours par etre transmis
le programme revient toujours a l’etat initial
Equite Quelquechose de bon se repete infiniment souvent
si un processus demande toujours la main, il l’aura infiniment
S.Bardin Model checking 8/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Logiques temporelles
On exprimera les proprietes grace a des logiques temporellesA, E, F, G, U, X
Avantages
non ambigue
generique
ouvre la voie a la verification automatique
Plusieurs logiques temporelles possibles
LTL, CTL, CTL∗, ...
S.Bardin Model checking 9/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
La difficulte du model checking
2 difficultes principales
1. systeme de transitions fini
2. systeme de transitions suffisament petit
S.Bardin Model checking 10/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
La difficulte du model checking
2 difficultes principales
1. systeme de transitions fini
2. systeme de transitions suffisament petit
Systeme fini : probleme (parfois non trivial) de modelisation
variables a domaines finis, nombre borne de taches, etc.
S.Bardin Model checking 10/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
La difficulte du model checking
2 difficultes principales
1. systeme de transitions fini
2. systeme de transitions suffisament petit
Systeme fini : probleme (parfois non trivial) de modelisation
variables a domaines finis, nombre borne de taches, etc.
Systeme petit : probleme algorithmique + modelisation
10 variables sur 8 bits : 10256 possibilites
Stocke une possibilite = 10 octets
Tout stocker ≈ 10245 To
S.Bardin Model checking 10/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
La difficulte du model checking
2 difficultes principales
1. systeme de transitions fini
2. systeme de transitions suffisament petit
Systeme fini : probleme (parfois non trivial) de modelisation
variables a domaines finis, nombre borne de taches, etc.
Systeme petit : probleme algorithmique + modelisation
10 variables sur 8 bits : 10256 possibilites
Stocke une possibilite = 10 octets
Tout stocker ≈ 10245 To
Model Checking = gerer l’explosion d’etats
S.Bardin Model checking 10/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
En pratique
standard en verification de hardware (Intel, IBM, etc.)
quelques beaux succes en software (drivers, fuzzing)
It has been an exciting twenty years, which has seen the research focus
evolve [. . .] from a dream of automatic program verification to a reality
of computer-aided design debugging.
- Thomas A. Henzinger (2001)
Things like even software verification, this has been the Holy Grail of
computer science for many decades but now in some very key areas, for
example, driver verification we’re building tools that can do actual proof
about the software and how it works in order to guarantee the reliability.
- Bill Gates (2002)
S.Bardin Model checking 11/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Historique
1975 Constat : verif. inadaptee a systemes reactifs
1977 Pnueli propose d’utiliser les logiques temporelles
1981 Model checking de CTL par Clarke et al., Sifakis et al.
1980-1990 Nombreux resultats theoriques
1990-2000 Enorme amelioration des performances
Extensions : proba, temps, infini
2000-... MC adopte par les principaux fondeurs (Intel, etc.)
Standardisation du langage temporel PSL
Debuts du software model checking (Microsoft)
Prix ACM Paris Kanellakis Award 1998 et 2005
2008 Prix Turing decerne a Clarke, Sifakis et Emerson
S.Bardin Model checking 12/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Bibliographie
Livres
Principles of Model Checking [Baier-Kaoten 08]
Model Checking [Clarke-Grumberg-Peled 99]
Verification de logiciels [LSV 99]
S.Bardin Model checking 13/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Plan
Rappel
Logiques temporelles : intuition
Preambule technique
LTL, CTL∗ et CTL
Comparaison
Disgressions
S.Bardin Model checking 14/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Exprimer des proprietes temporelles
Besoin d’exprimer des familles de proprietes et pas justequelques cas particuliers
Langages naturels
imprecis (donc pas d’automatisation)
verbeux
Formalismes graphiques
plus precis
concis
faciles a apprendre et a communiquer
manque d’expressivite ou/et de precision
S.Bardin Model checking 15/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Exprimer des proprietes temporelles
Besoin d’exprimer des familles de proprietes et pas justequelques cas particuliers
Langages naturels
imprecis (donc pas d’automatisation)
verbeux
Formalismes graphiques
plus precis
concis
faciles a apprendre et a communiquer
manque d’expressivite ou/et de precision
On se tourne vers des specifications logiques
S.Bardin Model checking 15/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Logiques temporelles
Pourquoi des logiques ?
exprimer sans ambiguite les proprietes attendues
prouver la correction du systeme
Logique temporelle
logique classique + operateurs dedies au temps
connecteurs temporels + quantificateurs de chemins
Pourquoi des logiques temporelles ?
concision, expressivite, simplicite
algorithmique : decision et complexite
S.Bardin Model checking 16/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Logiques temporelles
Pourquoi des logiques ?
exprimer sans ambiguite les proprietes attendues
prouver la correction du systeme
Logique temporelle
logique classique + operateurs dedies au temps
connecteurs temporels + quantificateurs de chemins
Pourquoi des logiques temporelles ?
concision, expressivite, simplicite
algorithmique : decision et complexite
Attention
Temporel versus Temporise
S.Bardin Model checking 16/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Logiques temporelles II
Deux sortes d’operateurs dedies au temps
Connecteurs temporels : sur un chemin
suite d’evenements attendus le long d’un seul chemin
nous verrons entre autre U, X, G, F
insuffisant : en general on veut savoir si tout ou partie deschemins partant d’un etat donne verifient une propriete
Quantificateurs de chemin : sur un (depliage du) systeme detransition
quantifie les chemins partant d’un etat qui doivent verifier la
propriete
nous verrons A, E
S.Bardin Model checking 17/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Connecteurs temporels
Exprimer le sequencement d’evenements le long d’un chemin
Operateur X “next”
Xp p
S.Bardin Model checking 18/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Connecteurs temporels
Exprimer le sequencement d’evenements le long d’un chemin
Operateur F “sometimes in the future”
Fp p
S.Bardin Model checking 18/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Connecteurs temporels
Exprimer le sequencement d’evenements le long d’un chemin
Operateur G “always in the future”
Gp,p ppppp p p
S.Bardin Model checking 18/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Connecteurs temporels
Exprimer le sequencement d’evenements le long d’un chemin
Operateur U “p true until q true”
pUq,p pppp p q
S.Bardin Model checking 18/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Connecteurs temporels
Exprimer le sequencement d’evenements le long d’un chemin
Xp p
Fp p
Gp,p ppppp p p
pUq,p pppp p q
S.Bardin Model checking 18/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin
Les connecteurs temporels :
considerent une execution a la fois
executions independantes les unes des autres
executions organisees en un ensemble
Le futur est determine
S.Bardin Model checking 19/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin
Les connecteurs temporels :
considerent une execution a la fois
executions independantes les unes des autres
executions organisees en un ensemble
Le futur est determine
On peut vouloir parler des futurs possibles, selon les choixd’action du systeme
certains etats d’execution ont le choix entre 6= futurs
executions interdependantes
executions organisees en arbre
S.Bardin Model checking 19/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin
Les connecteurs temporels :
considerent une execution a la fois
executions independantes les unes des autres
executions organisees en un ensemble
Le futur est determine
On peut vouloir parler des futurs possibles, selon les choixd’action du systeme
certains etats d’execution ont le choix entre 6= futurs
executions interdependantes
executions organisees en arbre
On introduit les quantificateurs de chemins
A : tous les chemins futurs verifient la propriete
E : il existe un chemin futur qui verifie la propriete
S.Bardin Model checking 19/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin II
quantificateurs de chemins + connecteurs temporels
EFp : p vrai dans au moins un etat
EFp
p
S.Bardin Model checking 20/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin II
quantificateurs de chemins + connecteurs temporels
AFp : p atteignable par tous les chemins
AFp
p
pp
p
S.Bardin Model checking 20/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin II
quantificateurs de chemins + connecteurs temporels
EGp : il existe un chemin avec p toujours vrai
EGp,p
p
p
p
S.Bardin Model checking 20/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin II
quantificateurs de chemins + connecteurs temporels
AGp : p est toujours vrai
AGp,p
p
pp
p p
p
pppp
p
pp
p
S.Bardin Model checking 20/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quantificateurs de chemin III
EFp
p
AFp
p
pp
p
EGp,p
p
p
p
AGp,p
p
pp
p p
p
pppp
p
pp
p
S.Bardin Model checking 21/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Quelques exemples
Accessibilite : EF(x = 0)
Invariance : AG¬(x = 0)
Vivacite : AG(p → Fq)
Correction totale :A((init ∧ precondition) → F(end ∧ postcondition))
Equite :A(GF(execution request) → GF(process scheduled))
S.Bardin Model checking 22/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Differentes logiques temporelles
On distingue plusieurs logiques temporelles
Lineaire vs Branchant◮ capacite a parler des futurs possibles
Expressivite◮ syntaxique ou/et semantique
Concision
Avec ou sans passe
Complexite de la verification
S.Bardin Model checking 23/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Plan
Rappel
Logiques temporelles : intuition
Preambule technique
LTL, CTL∗ et CTL
Comparaison
Disgressions
S.Bardin Model checking 24/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Structure de Kripke
Pour le model checking on va considerer des structures deKripke M plutot que des systemes de transitions S
M = 〈Q,−→,AP, l , s0〉
Q ensemble des etats
−→⊆ Q × Q fonction de transition
AP ensemble des propositions atomiques
l : Q 7→ 2AP fonction d’etiquetage des etats
s0 ∈ Q etat initial
Dualite proprietes sur etats / transitions
S.Bardin Model checking 25/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Structure de Kripke II
choice
money
cancel
back
served
serving,0,trueserved,0,true
money
cancel
idle,1,false idle,2,falseidle,0,false
m, not sm, s
not m, not s not m, not snot m, not s
S.Bardin Model checking 26/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Logique
Ingredients d’une logique
Un ensemble L de formules ϕ
Un domaine D d’interpretations I
Une relation de satisfaisabilite |=⊆ D × L
On dit que
I est un modele de ϕ si I |= ϕ
ϕ est satisfaisable si il existe I tq I |= ϕ
ϕ est valide si pour tout I, I |= ϕ
ϕ est contradictoire si aucun I ne la satisfait
Soit L une logique et ϕ ∈ L
JϕK = ensemble des solutions de ϕ
S.Bardin Model checking 27/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Exemple : Logique propositionnelle classique
ensemble fini A1, . . . ,An de propositions atomiques
Langage des formules logiques
p ::= Ai | ⊤ | ⊥
ϕ ::= ϕ ∨ ϕ | ϕ ∧ ϕ | ¬ϕ | p
Domaine d’interpretation. I = valuation booleenne des Ai
Satisfaisabilite I |= ϕ
I |= ⊤
I 6|= ⊥
I |= Ai si I(Ai) = 1
I |= f1 ∧ f2 si I |= f1 et I |= f2
I |= f1 ∨ f2 si I |= f1 ou I |= f2
I |= ¬f si I 6|= f
Exemples : A ∨ ¬A valide, A satisfaisable, A ∧ ¬A contradictoire
S.Bardin Model checking 28/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Plan
Rappel
Logiques temporelles : intuition
Preambule technique
LTL, CTL∗ et CTL
Comparaison
Disgressions
S.Bardin Model checking 29/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Pour les logiques temporelles
Domaine d’interpretation principal : structure de Kripke M
On definit la relation de satisfaction en trois etapes
def de satisfaction d’une formule de chemin (≈ sans A ni E) sur
un chemin σ
def de satisfaction d’une formule d’etat (≈ avec A ou E) sur
(M, s) (a partir des formules de chemin)
ensuite, M satisfait ϕ si (M, s0) satisfait ϕ
S.Bardin Model checking 30/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Introduction a LTL
Linear Temporal Logic
LTL est une logique dite lineaire
A tres restreint, E interdit
formules Aϕp, avec ϕp sans A,E
“tous les chemins verifient ϕp”
Exemples
AFGp dans LTL
EFp pas dans LTL
S.Bardin Model checking 31/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
LTL sur un seul chemin
LTL sur un seul chemin σ
Formulesϕ ::= p ∈ AP | ¬ϕ | ϕ ∨ ϕ | ϕ ∧ ϕ | Xϕ | Fϕ | Gϕ | ϕUϕ
Domaine d’interpretation= chemins σ
Satisfaisabilite
σ |= p iff p ∈ l(σ(0))
σ |= ¬ϕ iff σ 6|= ϕ
σ |= ϕ1 ∨ ϕ2 iff σ |= ϕ1 ou σ |= ϕ2
σ |= ϕ1 ∧ ϕ2 iff σ |= ϕ1 et σ |= ϕ2
σ |= Xϕ iff σ1 |= ϕ
σ |= Fϕ iff il existe k ≥ 0 tel que σk |= ϕ
σ |= Gϕ iff pour tout k ≥ 0 on a σk |= ϕ
σ |= ϕ1Uϕ2 iff il existe k ≥ 0 tel que σk |= ϕ2 et pourtout 0 ≤ j < k σj |= ϕ1
S.Bardin Model checking 32/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
LTL sur un seul chemin II
Quelques liens entre operateurs de chemins :
Fϕ ≡ ¬G¬ϕ
Fϕ ≡ trueUϕ
¬Fϕ ≡ G¬ϕ
¬Xϕ ≡ X¬ϕ
S.Bardin Model checking 33/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
LTL sur un seul chemin III
D’autres operateurs (sucre syntaxique) :
F≤k
F∞
G∞
W
R
S.Bardin Model checking 34/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
LTL sur structure de Kripke
LTL sur une structure de Kripke M = 〈Q,−→,AP, l , s0〉
Formulesϕs ::= Aϕp
ϕp ::= p ∈ AP| ¬ϕp | ϕp ∨ ϕp | ϕp ∧ ϕp | Xϕp | Fϕp | Gϕp | ϕpUϕp
Domaine d’interpretation= couple (M, s)
Satisfaisabilite
. M, s |=s Aϕp ssi tous les chemins σ partant de s
verifient σ |= ϕp
. σ |= ϕp defini comme avant
Finalement M |= ϕ ssi M, s0 |=s ϕ
S.Bardin Model checking 35/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Introduction a CTL∗
Computational Tree Logic∗
CTL∗ est une logique branchante tres expressive
E,A utilises librement
aucune restriction sur tous les operateurs vus
Exemples
toute combinaison (valide) des operateurs vus en coursest une formule CTL∗
S.Bardin Model checking 36/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Formalisation de CTL∗
Formules : distinction formules d’etats / de chemins
formules d’etat (ϕs ), interpretees sur les etats de la structurede Kripkeformules de chemin (ϕp), interpretees sur les chemins de lastructure de Kripke
ϕs ::= p ∈ AP | ¬ϕs | ϕs ∨ ϕs | ϕs ∧ ϕs | Aϕp | Eϕp
ϕp ::= ϕs | ¬ϕp | ϕp ∨ ϕp | ϕp ∧ ϕp | Xϕp | Fϕp | Gϕp
| ϕpUϕp
Le domaine d’interpretation est encore un couple (M, s)associant une structure de Kripke et un etat
S.Bardin Model checking 37/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Formalisation de CTL∗ (II)
Satisfaisabilite
formules d’etat, relation |=s
. M, s |=s p ∈ AP iff p ∈ l(s)
. M, s |=s Af ssi tous les chemins σ partant de s
verifient M, σ |=p f
. M, s |=s Ef ssi il existe un chemins σ partant de s
verifiant M, σ |=p f
formules de chemin, relation |=p
. M, σ |=p f iff M, σ(0) |=s f (f formule d’etat)
. M, σ |=p Xϕ iff M, σ1 |=p ϕ
. M, σ |=p Fϕ iff il existe k ≥ 0 tel que M, σk |=p ϕ
Finalement M |= ϕ ssi M, s0 |=s ϕ
S.Bardin Model checking 38/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Formalisation de CTL∗ (III)
Quelques liens entre quantificateurs de chemins :
¬Eϕ ≡ A¬ϕ
¬Aϕ ≡ E¬ϕ
Attention :
Aϕ implique Eϕ seulement si il existe un cheminpartant de l’etat courant
S.Bardin Model checking 39/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Introduction a CTL
Computational Tree Logic
CTL est une restriction branchante de CTL∗
A,E libres
X,F,G,U doivent etre precedes directement de A,E
Exemples
EF(AGp) dans CTL
E(Gp ∧ Xq) pas dans CTL, AFGp pas dans CTL
S.Bardin Model checking 40/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Plan
Rappel
Logiques temporelles : intuition
Preambule technique
LTL, CTL∗ et CTL
Comparaison
Disgressions
S.Bardin Model checking 41/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Expressivite
LTL CTL
ACTL*
CTL*
S.Bardin Model checking 42/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
En pratique
LTL
expressif sur un chemin (diverses equites)
intuitif pour interface, environnement, equivalence, contre-ex
aucune expressivite sur les futurs possibles
model checking couteux (PSPACE-complet)
CTL∗
tres tres expressif
model checking pas plus couteux que LTL (mais couteux)
pas intuitif pour interface, environnement, equivalence, contre-ex
CTL
le model checking est tres efficace (PTIME-complet)
on peut ajouter un peu d’equite et garder les performances
manque un peu d’expressivite en “lineaire”
pas intuitif pour interface, environnement, equivalence, contre-ex
S.Bardin Model checking 43/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Plan
Rappel
Logiques temporelles : intuition
Preambule technique
LTL, CTL∗ et CTL
Comparaison
Disgressions
S.Bardin Model checking 44/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Autres logiques
Modifications pour (essayer de) gagner sur le ratioexpressivite / complexite
fair CTL, ECTL, CTL+, ECTL+, ACTL∗, LTL + regexp
D’autres formalismes
automates
(Hierchical) Message Sequences Charts
µ-calcul
Exprimer plus que la simple causalite
logiques temporisees
logiques temporelles probabilistes
logiques temporelles comptantes
S.Bardin Model checking 45/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Equite
Probleme des chemins aberrants dus a la modelisation
chemins impossibles ou tres peu probables
peuvent fausser l’analyse
Exemples
un des composants n’a jamais la main
un canal de communication perd systematiquement les messages
On rajoute une hypothese d’equite H au systeme S
H du genre : S “progresse” regulierement
permet d’ecarter certains comportements aberrants
H dans formule (lecon 2) ou dans modele (lecon 3)
Tres courant en pratique : ex des machines concurrentes
S.Bardin Model checking 46/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Equite II
1
2
3
4
5
A B DC
En semantique asynchrone
le chemin 1.2.1.2.1.2.1.2. . . . (infini) est un chemin legal du
systeme
chemin certainement irrealiste
rajoute une sorte de deadlock sur la machine 2
Contraintes d’equite
sur le modele : passer ∞ souvent par A, B, C, D
dans la formule (but = ϕ) : F∞(A) ∧ F∞(D) =⇒ ϕ
S.Bardin Model checking 47/ 48
Rappels
Intuition
Preambuletechnique
LTL, CTL∗, CTL
Comparaison
En bref
Variantes sur le probleme du model checking
Model checking : (M, ϕ) 7→ M |= ϕ?
Inference : M 7→ ϕ tq. M |= ϕ
Verification parametree : (Mk , ϕ) 7→ {k ,Mk |= ϕ}
Synthese : ϕ 7→ M tq. M |= ϕ
S.Bardin Model checking 48/ 48
top related