• Aucun résultat trouvé

MOd ´elisation et VALidation

N/A
N/A
Protected

Academic year: 2022

Partager "MOd ´elisation et VALidation"

Copied!
166
0
0

Texte intégral

(1)

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

(2)

Quelques caract ´eristiques des syst `emes embarqu ´esr ´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 ´erification

M ´ethodes Formelles [8, 23]

(3)

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

(4)

V ´erification d’un syst `eme r ´eactif

description informelle

sp ´ecif.

fonctionnelle

mod `ele de comportement sp ´ecification

(MOVAL)

v ´erification

programmation (LGGCO)

(5)

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

(6)

I Syst `emes concurrents

Premi `ere partie :

Mod ´elisation et sp ´ecification

des syst `emes concurrents

(7)

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

(8)

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

−→

l0

s

1

. . . s

n

−→

ln

s

n+1

. . .

est un chemin (ex ´ecution) de

S

si

∀i ≥ 0, (s

i

, l

i

, s

i+1

) ∈−→

l

0

l

1

· · · l

n

· · ·

est la trace de

σ

s

est accessible

⇐⇒ ∃s

0

−→

w

s, w ∈ A

Reach(S )

est l’ensemble des ´etats accessibles dans

S

(9)

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

(10)

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}

(11)

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

(12)

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

(13)

I Syst `emes concurrents 1 Machines `a ´etats

Utilisation de variables discr `etes – ensemble

V

de valeurs fini

⇐⇒

SdeT fini

v := 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.

(14)

I Syst `emes concurrents 1 Machines `a ´etats

1.2– Ex ´ecutions d’un SdeT

langage : le langage

L(S )

accept ´e par un SdeT

S

est l’ensemble des traces de toutes les ex ´ecutions du SdeT `a partir de

s

0

arbre : 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.

(15)

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 `emes

formalisation : produit synchronis ´e de SdeT

`a la Arnold-Nivat [4]

(16)

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 libre

S

1

k S

2

· · · k S

n des SdeTs

S

i est un SdeT

S = (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

−→

ai

q

i0

2

(17)

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

1

k S

2

· · · k S

n

)

Sync des SdeTs

S

i est un SdeT

S = (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

−→

ai

q

i0

2

(18)

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 alphabet

A ∪ {•}

– mod ´elisation de l’asynchronisme entre syst `emes : produit synchronis ´e (3) avec des

:

(•, . . . , •, a

k

, •, . . . , •, a

j

, •, . . . , •)

(19)

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

(20)

I Syst `emes concurrents 1 Machines `a ´etats

Exemple : Le GAB et un utilisateur (suite)

0

!in-card

1

!valide

2

?out-card

3

?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

(21)

I Syst `emes concurrents 1 Machines `a ´etats

Exemple : Le GAB et un utilisateur (suite)

0

!in-card

1

!valide

2

?out-card

3

?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-card

(22)

I Syst `emes concurrents 1 Machines `a ´etats

Renommage

– synchronisation `a la Arnold-Nivat avec renommage

– d ´efinition 3 modifi ´ee :

f

fonction partielle de synchronisation

f : 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

−→

ai

q

i0

Action invisible

– code-Ok, code-non-Ok, keep-card non vues par l’utilisateur (internes `a GAB)

– action sp ´eciale :

τ

(23)

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 – contrainte

I

(24)

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-card

n := 0

FIG. 1.9 – GAB avec code

0

!in-card

1

!valide

∧c

0

:=

pin

2

?out-card

3

?take

(25)

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···an

s

0 devient

s −−−−−→

a1a2···an

s

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

(26)

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, →)

est

d ´eterministe ssi

∀s, s

0

, s

00

∈ S, ∀a ∈ A, s − →

a

s

0

∧ s − →

a

s

00

= ⇒ s

0

= s

00

Sinon 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)

(27)

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

(28)

I Syst `emes concurrents 1 Machines `a ´etats

1.5– Equit ´e (Fairness) [4, 8, 10]

S

un SdeT : toute ex ´ecution (infinie) de

S = ⇒

une transition de

S

est

infiniment souvent tir ´ee

S = S

1

k S

2 : ex ´ecution infinie de

S 6= ⇒

infiniment souvent une transition de

S

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

(29)

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

et

S

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

(30)

I Syst `emes concurrents 1 Machines `a ´etats

1.6.1– Equivalence de traces

S = (Q, s

0

, A, →)

et

S

0

= (Q

0

, s

00

, A, →

0

)

des SdeTs

L(S, q ) = {

traces des chemins commenc¸ants en

q

dans

S }

q ∈ S, q

0

∈ S

0

, q ≈

t

q

0

⇐⇒ L(S, q ) = L(S

0

, q

0

)

S ≈

t

S

0

⇐⇒ s

0

t

s

00

s

0

s

1

s

2

s

3

s

4

a

a

b

c

τ

τ

(a) Automate S

s

00

s

01

s

02

s

03

a b

c

τ

τ

(b) Automate S0

FIG. 1.12 – Automates traces- ´equivalents Extensions : traces acceptantes, refusantes, . . . autres ?

(31)

I Syst `emes concurrents 1 Machines `a ´etats

1.6.2– Equivalence de traces

S = (Q, s

0

, A, →)

et

S

0

= (Q

0

, s

00

, A, →

0

)

des SdeTs

L(S, q ) = {

traces des chemins commenc¸ants en

q

dans

S }

q ∈ S, q

0

∈ S

0

, q ≈

t

q

0

⇐⇒ L(S, q ) = L(S

0

, q

0

)

S ≈

t

S

0

⇐⇒ s

0

t

s

00

s

0

s

1

s

2

s

3

s

4

a

a

b

c

τ

τ

(a) Automate S

s

00

s

01

s

02

s

03

a b

c

τ

τ

(b) Automate S0

FIG. 1.13 – Automates traces- ´equivalents Extensions : traces acceptantes, refusantes, . . . autres ?

(32)

I Syst `emes concurrents 1 Machines `a ´etats

Bisimulation

S = (Q, s

0

, A, →)

et

S

0

= (Q

0

, s

00

, A, →

0

)

des SdeTs

S

(resp.

S

0) peut mimer chaque transition de

S

0 (resp.

S

)

– vu de l’ext ´erieur

S

et

S

0 sont indiscernables

s

0

s

1

s

2

s

3

s

4

a

a

b

c

τ

τ

(a) Automate S

s

00

s

01

s

02

s

03

a b

c

τ

τ

(b) Automate S0

FIG. 1.14 – Automates non bisimilaires

(33)

I Syst `emes concurrents 1 Machines `a ´etats

Bisimulation

S = (Q, s

0

, A, →)

et

S

0

= (Q

0

, s

00

, A, →

0

)

des SdeTs

S

(resp.

S

0) peut mimer chaque transition de

S

0 (resp.

S

)

– vu de l’ext ´erieur

S

et

S

0 sont indiscernables

s

0

s

1

s

2

s

3

s

4

a

a

b

c

τ

τ

(a) Automate S

s

00

s

01

s

02

s

03

a b

c

τ

τ

(b) Automate S0

FIG. 1.15 – Automates non bisimilaires

(34)

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 entre

S

et

S

0 ssi

R

est totale et

∀s ∈ S, s

0

∈ S

0

, sRs

0

∀(s − →

a

s

1

) = ⇒ ∃(s

0

− →

a

s

01

) ∧ s

1

Rs

01 (1.1)

∀(s

0

− →

a

s

01

) = ⇒ ∃(s − →

a

s

1

) ∧ s

1

Rs

01 (1.2)

S

et

S

0 sont en bisimulation ssi il existe une relation de bisimulation

R

entre

S

et

S

0 avec

s

0

Rs

00. Si uniquement 1.1 alors

R

est une relation de

simulation entre

S

0 et

S

et

S

0 simule

S

.

2

Exo :

S

0 simule

S

et

S

simule

S

0

= ⇒ S

et

S

0 sont bisimilaires ?

(35)

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

(36)

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

(37)

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 fixes

(38)

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.

(39)

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.

(40)

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

(41)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

Interpr ´etation des formules de logiques temporellesmod `ele :

S = (Q, s

0

, A, →, L)

SdeT ´etiquet ´e 1

ensemble de propri ´et ´es atomiques sur les ´etats

AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {

tt

,

ff

}

interpr ´etation ( ´evaluation) des formules

φ

sur

une ex ´ecution

σ

du SdeT en LTL

∀σ ∈ Exec(S ),

σ | = φ

⇐⇒ S | = φ

arbre d’ex ´ecution

A(S )

du SdeT en CTL

A(S ) | = φ ⇐⇒ S | = φ

(42)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

Interpr ´etation des formules de logiques temporellesmod `ele :

S = (Q, s

0

, A, →, L)

SdeT ´etiquet ´e 1

ensemble de propri ´et ´es atomiques sur les ´etats

AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {

tt

,

ff

}

interpr ´etation ( ´evaluation) des formules

φ

sur

une ex ´ecution

σ

du SdeT en LTL

∀σ ∈ Exec(S ), σ | = φ ⇐⇒ S | = φ

arbre d’ex ´ecution

A(S )

du SdeT en CTL

A(S ) | = φ ⇐⇒ S | = φ

(43)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

Interpr ´etation des formules de logiques temporellesmod `ele :

S = (Q, s

0

, A, →, L)

SdeT ´etiquet ´e 1

ensemble de propri ´et ´es atomiques sur les ´etats

AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {

tt

,

ff

}

interpr ´etation ( ´evaluation) des formules

φ

sur

une ex ´ecution

σ

du SdeT en LTL

∀σ ∈ Exec(S ), σ | = φ ⇐⇒ S | = φ

arbre d’ex ´ecution

A(S )

du SdeT en CTL

A(S ) | = φ

⇐⇒ S | = φ

(44)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

Interpr ´etation des formules de logiques temporellesmod `ele :

S = (Q, s

0

, A, →, L)

SdeT ´etiquet ´e 1

ensemble de propri ´et ´es atomiques sur les ´etats

AP = {L(q ), q ∈ Q} ∪ {q, q ∈ Q} ∪ {

tt

,

ff

}

interpr ´etation ( ´evaluation) des formules

φ

sur

une ex ´ecution

σ

du SdeT en LTL

∀σ ∈ Exec(S ), σ | = φ ⇐⇒ S | = φ

arbre d’ex ´ecution

A(S )

du SdeT en CTL

A(S ) | = φ ⇐⇒ S | = φ

(45)

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, alors

p ∨ q, ¬p ∈

LTL,

p, q ∈

LTL, alors

X p, p U q ∈

LTL

S ´emantique intuitive :

p p

X

p

X

p

p p p q

p U q

(46)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

2.1.2– S ´emantique de LTLs ´equence

σ = s

0

s

1

. . . s

n

. . .

σ

n

= s

n

. . .

∀k ≥ 0, L(s

k

) ⊆ AP

(propositions atomiques vraies en

s

k)

et

s

i

∈ L(s

j

) ⇐⇒ i = j

et tt

∈ L(s

i

),

ff

6∈ 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)

(47)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

2.1.3– Abbr ´eviations utilesfatalement

p

: F

p ≡

tt

U p

p • • •

toujours

p

: G

p ≡ ¬

F

¬p

(

p

est un invariant)

p p p p p p p p p p p • • •

infiniment souvent

p

: GF

p

p p p p p • • •

presque partout

p

: FG

p

p p p p p p • • •

(48)

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 = ⇒

F

U.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

est

rest ´e

≤ 3

depuis sa demande

3. 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

(49)

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 ;

(50)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

2.1.5– Quelques ´equivalences de formules

p = ⇒

F

p

X

p = ⇒

F

p

G

p = ⇒

F

p pU q = ⇒

F

q

FG

p = ⇒

GF

p

FF

p ≡

F

p

F

p ≡ p ∨

XF

p

G

p ≡ p ∧

XG

p

pU q ≡ q ∨ (p ∧

X

(pU q ))

(51)

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, alors

p ∨ q, ¬p ∈

formules d’ ´etat,

p ∈

formules de chemin de CTL, alors E

p,

A

p ∈

formules d’ ´etats,

p, q ∈

formules d’ ´etats de CTL, alors

X p, p U q ∈

formules de chemin

(52)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

2.2.2– S ´emantique de CTL – arbre d’ex ´ecution

relation binaire

R

(totale)

– chemin

σ = s

0

s

1

. . . s

n

⇐⇒ ∀i, (s

i

, s

i+1

) ∈ R σ

i

= s

i

. . .

∀k ≥ 0, L(s

k

) ⊆ AP

(propositions atomiques vraies en

s

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

ou

s

0

| = q s

0

| = ¬p ⇐⇒ s

0

6| = p

,

s

0

| =

E

p ⇐⇒ ∃σ = s

0

. . . , σ | = p

(

p

formule de chemins)

s

0

| =

A

p ⇐⇒ ∀σ = 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

et

q

formules

(53)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

2.2.3– Abbr ´eviations utiles AF

p ≡

A

(

tt

U p)

p p • • p

• • • p p p p p p •

EF

p ≡

E

(

tt

U p)

• • • • •

• • • • • p • • p •

(54)

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 • • • • • •

(55)

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 = ⇒

AF

U.3)

– on obtient toujours de l’argent AG

(U.2 = ⇒

AF

U.3)

– de tout ´etat, on peut revenir `a l’ ´etat initial AG

(

EFinit

)

(56)

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

est

rest ´e

≤ 3

depuis sa demande

4. 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 ?

(57)

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 : AGAF

p

– il existe un chemin avec infiniment souvent

p

:

EGEF

p

? EGAF

p

?

– il existe un chemin avec infiniment souvent

p

1 et

p

2 . . .

– extension de CTL : Fair CTL

=

CTL avec une s ´emantique fair d ´efinir les chemins ´equitables

(58)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

2.2.5– Quelques ´equivalences de formules

AG

p ≡ p ∧

AXAG

p

EG

p ≡ p ∧

EXEG

p

AF

p ≡ p ∨

AXAF

p

EF

p ≡ p ∨

EXEF

p

A

(pU q ) ≡ q ∨ (p ∧

AXA

(pU q ))

E

(pU q ) ≡ q ∨ (p ∧

EXE

(pU q ))

(59)

I Syst `emes concurrents 2 Les Logiques Temporelles – temps discret

2.3– LTL + CTLCTL

[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, alors

p ∨ q, ¬p ∈

formules d’ ´etat, (

s

3)

p ∈

formules de chemin, alors E

p,

A

p ∈

formules d’ ´etat, (

p

1)

p ∈

formules d’ ´etat, alors

p ∈

formules de chemin,

(

p

2)

p, q ∈

formules de chemin, alors

p ∨ q, ¬p ∈

formules de chemin (

p

3)

p, q ∈

formules de chemin, alors X

p, p U q ∈

formules de chemin

2

(60)

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

ou

s

0

| = q s

0

| = ¬p ⇐⇒ s

0

6| = p

,

(

s

3)

s

0

| =

E

p ⇐⇒ ∃σ = s

0

. . . , σ | = p

(

p

formule de chemins) (

s

03)

s

0

| =

A

p ⇐⇒ ∀σ = 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

et

q

for. de

(61)

I 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])

(62)

II Algorithmes de model-checking

Deuxi `eme partie :

Algorithmes de model-checking

(63)

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 exemple

(64)

II 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

(65)

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 accepteurs

ex ´ecution

=

s ´equence infinie de transitions (de

−→

)

ex ´ecution admissible

=

ex ´ecution passant infiniment souvent par un

´etat de

F

w

accept ´e par

A ≡ w

est la trace d’une ex ´ecution admissible de

A

langage accept ´e par

A

,

L(A) = {w,

accept ´es par

A}

(66)

II Algorithmes de model-checking 3 Model-checking de LTL

s

0

a, b

FIG. 3.1 – Automate acceptant

(a ∪ b)

ω

s

0

s

1

true {p} true

p

(67)

II Algorithmes de model-checking 3 Model-checking de LTL

s

0

s

1

true {p}

FIG. 3.3 – Automate acceptant

true 23 p

s

0

s

1

{p}

{q }

{p} ∨ {q }

FIG. 3.4 – Automate acceptant

2 (p U q )

(68)

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 de

I

et passant

infiniment souvent par un ´etat de chaque

F

i

w

accept ´e par

A ≡ w

est la trace d’une ex ´ecution admissible de

A

langage accept ´e par

A

,

L(A) = {w,

accept ´es par

A}

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

(69)

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 dans

B

¬φ

– Algorithme de model-cheking :

L(S × B

¬φ

) = ∅

?

1. chercher cycle sur un ´etat accepteur

2. chemin d’un ´etat initial `a cet ´etat accepteur

(70)

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 en

O (2

|φ|

)

|S × B

¬φ

|

est en

O (|S |.|B

¬φ

|)

L(S × B

¬φ

) = ∅

est en

O (|S × B

¬φ

|)

Le model-checking de LTL est en O (|S |.2 |φ| )

Références

Documents relatifs

La proposition a est vraie au moins une

Pour chacune des formules ci-dessous, donner deux mod` eles o` u la formule est vraie ou expliquer pourquoi il n’en existe pas.. Deux feux de croisements ne sont jamais au

Toute apparition de p doit être suivie dans au plus 3 unités de temps par une apparition de q, et p doit apparaître une infinité de fois.. Exercice 2: Pour chacune des

[r]

– Il ne peut y avoir plus d’un processus dans sa section critique en mˆeme temps – Un processus en dehors de sa section critique ne peut bloquer un autre

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 1 /

On suppose que chaque couleur correspond ` a une proposition atomique diff´ erente : rouge, vert, violet.. Figure 1 – Mod` eles pour

Exemple : si « la climatisation est branch´ ee et il fait frais » est consid´ er´ e comme une formule atomique vraie, si « la climatisation est branch´ ee » et « il fait frais