Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition...

63
Rappels Intuition Pr´ eambule technique LTL, CTL * , CTL Comparaison En bref Cours de Model Checking Le¸con 2.1 : logiques temporelles ebastien Bardin CEA-LIST, Laboratoire de Sˆ uret´ e Logicielle [email protected] http://sebastien.bardin.free.fr/ S.Bardin Model checking 1/ 48

Transcript of Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition...

Page 1: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

[email protected]

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

S.Bardin Model checking 1/ 48

Page 2: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 3: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

Rappels

Intuition

Preambuletechnique

LTL, CTL∗, CTL

Comparaison

En bref

Systemes reactifs

S.Bardin Model checking 3/ 48

Page 4: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 5: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 6: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 7: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 8: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 9: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 10: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 11: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 12: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 13: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 14: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 15: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 16: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 17: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 18: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 19: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 20: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 21: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 22: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 23: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 24: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 25: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 26: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 27: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 28: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 29: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 30: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 31: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 32: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 33: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 34: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 35: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 36: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 37: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 38: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 39: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 40: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 41: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 42: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 43: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 44: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 45: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 46: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 47: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 48: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 49: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 50: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 51: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 52: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 53: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 54: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 55: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 56: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 57: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

Rappels

Intuition

Preambuletechnique

LTL, CTL∗, CTL

Comparaison

En bref

Expressivite

LTL CTL

ACTL*

CTL*

S.Bardin Model checking 42/ 48

Page 58: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 59: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 60: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 61: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 62: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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

Page 63: Cours de Model Checking - Freesebastien.bardin.free.fr/saclay-mc-slides2.pdf · Rappels Intuition Pr´eambule technique LTL, CTL∗, CTL Comparaison En bref Cours de Model Checking

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