VF
VF
VF
Sommaire
• Introduction
• Les automates
o Système de transitions
o Structure de Kripke
o Séquence d’exécution infinie et trace
o Arbre d’exécution
o Produit d’automate libre et synchrone
• Logique temporelle
o Logique temporelle CTL
o Logique temporelle LTL
• Exercices
www.jmct.123.fr
Pour les étudiants de l’USTHB
1
Master RSD - USTHB -
Introduction
Les méthodes de vérification sont :
- Simulation.
- Tests.
- Vérification formelle.
Simulation : La simulation se fait sur un modèle théorique dont le comportement est semblable au
système qu’on veut concevoir. Elle se fait avant la construction du système en question (avant la
mise en œuvre). L’inconvénient est que la simulation est parfois très couteuse et on n’est pas certain
d’avoir envisagé tous les cas d’étude.
Tests : Le test se fait sur le produit lui-même (donc après la mise en œuvre). Il est parfois très
couteux de corriger les erreurs (par exemple tester un avion) et ça implique des fois de
recommencer.
Avec la simulation et les tests on n’est jamais sûr d’avoir envisagé tout les cas de figure, les tests ne
peuvent pas être effectués de manière exhaustive.
Vérification formelle : La vérification formelle se base sur des modèles formels. Elle consiste à
explorer tout les états du système.
Vérification formelle
www.jmct.123.fr
Pour les étudiants de l’USTHB
2
Master RSD - USTHB -
Dans la suite de ce cours nous allons principalement nous intéresser à la branche « Model
Checking ».
- Construire un modèle M qui décrit le comportement du système qu’on veut vérifier, dans un
formalisme (par exemple les automates, c’est ce qu’on va utiliser dans ce cours).
- Expression final des propriétés ф qu’on souhaite vérifier, dans un formalisme (logique
temporelle, par exemple CTL, LTL …).
Modèle Checking
M ф ?
(On lit : est ce que M satisfait ф ?)
La limitation théorique de Model Checking c’est que ça nécessite que le système de transitions
(automate) doit être fini (ce n’est pas toujours le cas en pratique même si c’est souvent fini); et la
limitation pratique c’est la grand taille des systèmes de transitions due à l’explosion combinatoire du
nombre d’états du système.
www.jmct.123.fr
Pour les étudiants de l’USTHB
3
Master RSD - USTHB -
Les automates
Le terme automate est générique et désigne :
- Système de transitions (étiquetées).
- Structures de Kripke (étiquetées).
Système de transitions
Exemple :
Pour un digicode qui permet l’ouverture de la porte dés qu’une séquence « 36A35 » est saisie.
L’alphabet est {0, 1,2,…, A, B}
I<>3, 6
3
I<>3 3 6
3 6 A
S1 S2 3
S3
I<>3 3 S4
S5 5
I<>3, A
I<>3
S6
Soit π un ensemble fini de proposition atomique et E un ensemble fini d’étiquettes. Une structure de
Kripke est un système de transition enrichie ou les états comportent des sous ensemble de
proposition atomique.
Une structure de Kripke K est un quadruplet K= <S, S0, E, R, λ> où S, S0, E, R sont les même que dans
les systèmes de transitions, λ est une application:
λ : S 2π où 2π est l’ensemble des sous ensembles de π.
www.jmct.123.fr
Pour les étudiants de l’USTHB
4
Master RSD - USTHB -
Exemple :
Sur une table ronde, on a 5 philosophes chinois avec leur assiette de spaghetti (une pour chacun), sur
la table on a cinq fourchettes chinoises, une entre chaque assiette, le philosophe ne doit manger si
les deux fourchettes (celle de l’adroite et celle de la gauche) sont disponibles sinon il réfléchi.
S1
Réfléchir, GL, 7DL
S2 S4
Manger, 7GL, 7DL
S3
Réfléchir, GL, DL
S0 S1
c
Un STE permet de représenter une infinité d’exécution infinie alors que l’automate est finie.
a b
T = abwcabwcabwc…
S0 S1
Arbre d’exécution
Exemple 1 :
a b
S0 S1
c
www.jmct.123.fr
Pour les étudiants de l’USTHB
5
Master RSD - USTHB -
S0
a
S1
b
c
S1 S0
b c a
S1 S0
S1
Exemple 2 :
a b
S0 S1 S2
c a
b
S0
a b
S1 S2
c b a
b
S0 S2 S1
S1
www.jmct.123.fr
Pour les étudiants de l’USTHB
6
Master RSD - USTHB -
S0 S0
a a
a
S0 S0
S0
b c
b c
S0 S0 S0 S0
Ces deux arbres donnent la même séquence de mot donc ils sont équivalents en terme de choix mais
non équivalents en terme de branchement (c.à.d. le moment de choix de ces deux arbres n’est pas le
même).
Produit d’automate
Le produit d’automate est une modélisation des systèmes constituées de sous système.
On utilise le produit (resp le produit synchrone) lors de la vérification de propriétés exprimées en LTL
(Logique Temporelle Linéaire).
Soit K1=<S1, S01, E1, R1, λ1 > et K2=<S2, S02, E2, R2, λ2 > Deux structures de Kripke
K1 K2 donne une autre structure de Kripke K telque :
K=<S, S0, E, R, λ > avec:
S = S1 X S2 = { (s1, s2) / s1 ∈ S1, s2 ∈ S2 }
S0 = S01 X S02
Soit s1 s’1 et s2=s’2
E= E1U E2
R= (s1, s2) e (s’1, s’2) e
Soit s2 s’2 et s1=s’1
λ: s ∈ S: s= (s1, s2)
λ(s)= λ (s1) U λ (s2)
Exemple :
c
a a
P qr q
b
d c
q p
www.jmct.123.fr
Pour les étudiants de l’USTHB
7
Master RSD - USTHB -
pq p
a e
b a
d b
qr pqr
a e a
c d c
q pq
e
Produit synchrone :
Soient K1=<S1, S01, E1, R1, λ1 > et K2=<S2, S02, E2, R2, λ2 > Deux structures de Kripke étiquetées.
Le produit synchrone K1 K2 sur un ensemble d’étiquettes {sync}
K=<S, S0, E, R, λ > avec
e e
Soit e∈ Sync s1 s’1 et s2 s’2
Minute:
Mn Mn
00 01 02 59 60 états
h
Heures : h h
00 01 02 23
Le produit donne :
www.jmct.123.fr
Pour les étudiants de l’USTHB
8
Master RSD - USTHB -
Mn Mn
00 :00 00 :01 00 :02 00 :59
Mn h
01 :01 01 :00
01 :59
h
h 02 :00
Mn
23 :01 23 :00
23 :59
Logique temporelle
Les logiques temporelles sont utilisées pour décrire des propriétés, c’est donc un langage de
description.
Les propriétés décrites en logique temporelle sont vérifiés sur un modèle (automate, SI, SK…). Le
temps n’est pas exprimé de manière explicite, mais on a la probabilité de formuler qu’une propriété
sera toujours vérifiée ou ne sera jamais vérifiée éventuellement (le terme éventuellement ici prend
le sens d’eventually en anglais).
Les propriétés telles que : jamais, éventuellement, toujours … sont exprimées à l’aide d’opération
temporelle de la logique temporelle qui peuvent être qui peuvent être combinées à l’aide des
opérateurs logiques : ∧ (et), ∨ (ou), 7 (non), => (implique) ... et de quantificateurs : ∀, ∃.
Selon la manière avec laquelle sont considérés les branchements lors de l’exécution. En effet, CTL est
dite arborescente car les opérations temporelles sont évalués sur une exécution partent de
n’importe quel état contrairement à une logique linéaire LTL dont l’évolution se fait pour une
exécution à partir de l’état initial.
Si on prend un exemple de feu rouge (tricolore), pour chaque couleur, R J V, on associe une
variable logique ; on aura donc les situations suivantes :
R ∧ 7J ∧ 7V
7R ∧ J ∧ 7V
7R ∧ 7J ∧ V
La question qui se pose : comment peut-on exprimer les propriétés suivantes :
Le jaune est toujours suivi immédiatement par le rouge.
Le système passe infiniment souvent par le feu vert …
www.jmct.123.fr
Pour les étudiants de l’USTHB
9
Master RSD - USTHB -
Une formule de la logique temporelle CTL peut être donnée par les règles suivantes :
1. Si p est une proposition atomique alors p est une formule d’état.
(Si on veut vérifier si p est vrai on ne peut la vérifier que sur un état précis)
2. Si ϕ est ψ sont des formules d’état alors ϕ∧ψ et 7ϕ ϕ sont des formules d’états.
3. Si ϕ et ψ sont des formules d’état alors ×ϕ et ϕ∪ψ (∪ veux dire until) sont des formules de
chemin.
4. Si ϕ est une formule de chemin alors Aϕ ϕ et Eϕϕ sont des formules d’états. (A et E veulent dire
∀ et ∃ en quelque sorte).
Les deux dernières règles peuvent être remplacé par la règle : si ϕ et ψ sont des formules
d’états alors E×ϕ, Eϕ∪ψ, et Aϕ∪ψ sont des formules d’états.
Exemple :
• E×p (dans les états successeurs il y a au moins un état qui est vrai)
p
p
• Ap∪q (dans toutes les exécutions p est vrai jusqu'à ce que q le soit)
p
p p
q
p p
q
p
q q q
q q q
Remarque : Les opérateurs temporelles × et ∪ sont toujours dans le champ unimediat des
quantificateurs E et A. Par exemple :
A (p ∧× q) est incorrecte.
www.jmct.123.fr
Pour les étudiants de l’USTHB
10
Master RSD - USTHB -
Exemples:
EFp ≡ E true ∪ p (=> p sera vrai dans le future, il existe dans le future un p vrai au
moins)
AFp ≡ A true ∪ p (=> dans toutes les exécutions il y a toujours un p vrai dans le
future)
EGp ≡ 7(A true ∪ 7p) (=> il existe un chemin ou p est toujours vrai)
AGp ≡ 7(E true ∪ 7p) (=> tous les chemins vérifient que p est toujours vrai)
www.jmct.123.fr
Pour les étudiants de l’USTHB
11
Master RSD - USTHB -
Exemple :
E (a ∧ b ∪ E X 7c)
E (a ∧ b ∪ E X 7c)
E X 7c
a∧b
7c
a b c
L’algorithme passe par plusieurs itérations et à chaque itération une sous formule est traité.
Ainsi il est suffisant de considérer les six formes suivantes :
7ϕ1 , ϕ1∧ϕ2 (resp ϕ1∨ϕ2) , E X ϕ, E ϕ1 ∪ ϕ2 ,E G ϕ
Ou d’une proposition atomique, dans ce dernier cas les états sont déjà étiquetés.
• On utilise l’ensemble d’étiquettes label(s) associé à l’état s.
• On ajoute 7ϕ a label(s) ssi ϕ∉état label(s), on suppose que ϕ est déjà traité.
Algorithme
Procédure cherche-EU (ϕ1, ϕ2)
T ={s / ϕ2 ∈ label(s)}
Pour tout s ∈ T faire
Label(s) = label(s) ∪ {E ϕ1 ∪ ϕ2} /* le 1er ∪ c’est union */
Tantque T≠Φ faire
Choisir s∈ T;
Pour tout t telque R(t,s) faire
www.jmct.123.fr
Pour les étudiants de l’USTHB
12
Master RSD - USTHB -
Formule propositionnelle :
• E ϕ ∪ ψ ou EXϕ.
On doit avoir aussi :
• A φ ∪ ψ ou EGp.
Cas A φ ∪ ψ ou EGp :
Aφ∪ψ
On met l’étiquette A φ ∪ ψ sur tous les états déjà étiquetés par ψ.
Tous les états étiquetés par φ et ayant tous leurs successeurs étiquetés par A φ∪ψ sont aussi
étiquetés par A φ∪ψ.
∪ψ
A φ∪
ϕ
EGϕ
Pour vérifier la formule EGϕ sachant que les états vérifiant ϕ sont étiquetés par ϕ :
1- On construit le sous graphe engendré par les sommets étiquetés par ϕ.
2- On détermine les composants fortement connexes du sous graphe qui ne sont pas triviales.
• Une composante fortement connexe est non triviale si et seulement si elle est constituée de
plus d’un somment ou comporte une boucle
Dans l’exemple C1, C2, C3 sont non triviale
C1
C4
C3
C2
www.jmct.123.fr
Pour les étudiants de l’USTHB
13
Master RSD - USTHB -
3- Étiqueter tous les sommets des composants frottements connexes non triviale par EGϕ.
Étiqueté tous sommet x tel qu’il existe un chemin de x vers une composant fortement connexe
non triviale par EGϕ.
Fait ;
Fin.
En gros ce qu’il faut retenir c’est qu’on peut étiqueter un état "S" avec la formule "H" dans les cas
suivants :
1) Pour H = 7a
Quand l’état en question n’est pas étiqueté avec a (on peut donc l’étiqueter avec 7a).
2) Pour H = a ∧ b
Quand l’état en question est étiqueté avec a et aussi avec b
3) Pour H = a V b
Quand l’état est étiqueté avec soit a, soit b, soit les deux.
4) H = E (a U b)
• Quand l’état est étiqueté avec b (on peut donc directement l’étiqueter avec E (a U b)).
• Ou bien quand cet état "S" est étiqueté avec a et ce même état "S" a comme successeur un
autre état S` déjà étiqueté avec E (a U b). (c'est-à-dire un chemin de S vers S`).
5) H = E Ga
On cherche le sous graphe engendré par les états qui sont étiquetés avec a, et dans ce sous graphe
on cherche les composantes fortement connexes non triviales (triviale = un sommet seul sans boucle)
www.jmct.123.fr
Pour les étudiants de l’USTHB
14
Master RSD - USTHB -
et on les étiquète avec E Ga. Puis on étiquète aussi avec E Ga tout les états du sous graphe qui ont
comme successeur les états qu’on a déjà étiqueté avec E Ga.
6) H = E xa
Quand l’état S a un successeur (suivant immédiat) qui est étiqueté avec a.
Si dans notre formule on a des cas qui ne figurent pas parmi ces 6 règles, on peut appliquer les
transformations suivantes sur la formule :
• EFa ≡ E (true ∪ a)
• AFa ≡ A (true ∪ a)
• EGa ≡ 7(A (true ∪ 7a))
• AGa ≡ 7(E (true ∪ 7a))
• A(a U b) ≡ 7E(a U 7b) ∧ 7Ega
• A X a ≡ 7EX 7a
Exemple 1:
Soit la la propriété représenté par la formule ϕ= AX (7p), et le système représenté par l’automate M
suivant :
S0 S2
p,q r
S1 S3 q,r
q,r
On veut vérifier si la propriété ϕ est vérifié dans M à l’état S0, c'est-à-dire on va voir si M, s0╞ AX
(7p) est vrai ou pas.
On a :
ϕ = A X (7p) ≡ 7E X 7(7p) ≡ 7E X p
7E X p
EXp
www.jmct.123.fr
Pour les étudiants de l’USTHB
15
Master RSD - USTHB -
Et on commence à étiqueter les états de notre automate M avec les propositions qu’on a dans l’arbre
(en commençant par le bas de l’arbre) :
• S0 est étiqueté par p.
• S1 a un successeur immédiat qui est étiqueté par p (c’est S0), donc S1 est étiqueté par EXp.
• Tout les état qui ne sont pas étiqueté par EXp sont étiqueté par 7 EXp, donc S0, S2 et S3 sont
étiqueté par 7 EXp.
Donc M, s0╞ AX (7p) est VRAIE (parce que S0 est étiqueté avec 7EXp).
Exemple 2 :
Avec le même modèle M, on va maintenant vérifier M,s0 ╞ 7EG (q)
EGq
S1 S3 q,r
q,r
On commence par chercher le sous graphe engendré par les sommets étiqueté par q :
S0
p,q
S1 S3 q,r
q,r
Et dans ce sous graphe on cherche les composantes fortement connexe non triviales. Ici on a deux
composantes fortement connexes non triviales, la 1ere est celle de gauche contenant les états S0 et
S1 et la 2eme est celle de droite contenant l’état S3.
Donc on étiquète avec EGq tout les états de ces composantes fortement connexes non triviales. Donc
S0 et S1 et S3 sont étiqueté avec EGq.
Et on étiquète avec EGq tout les états dans ce sous graphe qui ont comme successeur un état qu’on a
déjà étiqueté avec EGq (ici il n y a pas dans cet exemple).
Les états qui ne sont pas étiqueté avec EGq sont étiquetés avec 7EGq, donc il y a S2 seulement qui est
étiqueté avec 7EGq.
www.jmct.123.fr
Pour les étudiants de l’USTHB
16
Master RSD - USTHB -
Définition :
Les formules LTL sont de manière inductive comme suit :
Si p, q ∈AP (tel que AP : ensemble des propriétés atomiques)
• p∈ AP est une formule LTL.
• Si ϕ et ψ sont des formules LTL alors :
• 7ϕ est une formule LTL.
• ϕ∧ψ est une formule LTL.
• Xϕ est une formule LTL.
• ϕ ∪ ψ est une formule LTL.
Sémantique de LTL :
Soit σ= s0s1s2……...si…… une séquence infinie.
σ(i)= si
σi = sisi+1………. Est aussi une séquence infinie.
Abréviation :
• Fatalement ϕ Fϕ ≡ true ∪ ϕ
σ ╞ Fϕ
(Dans une séquence il existe au moins un état ou ϕ devient vrai)
ϕ ………
• Toujours (Globally) ϕ Gϕ ≡ 7F 7ϕ
(Il n’existe pas de séquence ou ϕ n’est pas vrai)
www.jmct.123.fr
Pour les étudiants de l’USTHB
17
Master RSD - USTHB -
ϕ ϕ ϕ ϕ
……….
• Infiniment souvent GFϕ (on arrêtera jamais de rencontrer ϕ ; ϕ existe toujours)
ϕ ϕ ϕ ϕ
• Presque partout FGϕ (à partir d’un état, ϕ devient partout et pour toujours)
ϕ ϕ ϕ ϕ
Automate de Bûchi:
Définition:
Un automate de Buchi est définie par le triplet A= (∑, Q,, s0, F) tel que :
∑ : Ensemble fini de l’alphabet.
Q : Ensemble fini d’état.
⊂ Q X ∑ X Q ensemble fini de transition.
s0 : L’état initial.
F : L’ensemble des états d’acceptation F⊂ Q.
a a
b
S0 S1
b
Si f = {s1}
(an, bn) k
(an, b∞)
a∞
a a
b
S0 S1
• Une séquence ou exécution est dite admissible (acceptable) ssi elle passe infiniment souvent
par un état de F.
www.jmct.123.fr
Pour les étudiants de l’USTHB
18
Master RSD - USTHB -
Dire que la propriété S est vérifié dans A ou en d’autre terme, le système A vérifie
la propriété S(le langage généré par A est dans le langage définie par S)
Si L(A)⊆ L(S) ……………. (*)
Càd : tout comportement du système appartient au « comportement » qui est permis.
• On peut écrire (*) comme suit :
L(A) ∩ L(S)=∅
(Il n’existe pas de comportement non permis qui appartient à L(A))
Donc : si l’intersection n’est pas vide alors tout comportement ∈ L(A) ∩ L(S) correspond à un
contre exemple.
Les automates de bûchi sont fermés pour l’intersection et la comportementarité càd qu’il
existe un automate de bûchi qui accepte l’intersection des langages de deux automates de
bûchi et un automate qui accepte le comportement du langage d’un automate donné
(l’intersection de deux automates produit synchrone)
Pour vérifier une propriété donnée on procède par la méthode du modèle checking (en
LTL) suivant :
• Déterminé l’automate S qui correspond au comportement de S qui reconnait le
langage L(S)= L(S)
• Construire l’automate qui accepte l’intersection des deux langages L(A) et L(S)
• Si l’intersection est vide cela signifie que S est vérifié dans A. (l’automate de bûchi
n’accepte aucun langage donc s’il n’existe pas d’état admissible donc l’automate
admet un langage vide)
• Autrement on peut exhiber un contre exemple.
État admissible
S0 S1
L’état admissible doit passer infiniment de fois par l’état final dans notre exemple n’est
pas le cas.
www.jmct.123.fr
Pour les étudiants de l’USTHB
19
Master RSD - USTHB -
Soit B1= (∑, Q1, 1, I1, F1) et B2= (∑, Q2, 2, I2, F2)
On peut construire un automate qui accepte L(B1) ∩ L(B2) comme suit
• ri a rm ∈ 1 et qi a qn ∈ 2
Exemple :
B1 B2
a b
a b b
b
R2 Q1 Q2
R1
a
a
R1 q1 0
a
b
a b
a
R1 q2 1 R2 q1 0
(i)
a
b b b
R2 q1 2 R1 q2 0
(ii)
a
www.jmct.123.fr
Pour les étudiants de l’USTHB
20
Master RSD - USTHB -
• Pour (f ∪ g) : f est vrai jusqu’à ce que g le soit, donc : si f est vrai, on vérifie dans le
prochain si (f ∪ g) est vrai…. Jusqu’à ce qu’on arrive à g.
Exemple :
Xa ∧ (b ∪ 7a)
(a est vrai au prochain état et b reste vrai jusqu’à ce que a ne le soit plu) :
www.jmct.123.fr
Pour les étudiants de l’USTHB
21
Master RSD - USTHB -
Xa ∧ (b ∪ 7a)
Xa, (b ∪ 7a)
a a, b ∪ 7a
Contradiction
b ∪ 7a
7a b, X (b ∪ 7a)
Donc à partir de l’arbre si dessous on peut déduire l’automate de Bûchi où les états sont étiquetés
par les propositions atomiques :
7a b
a a, b
7a b
Ensemble vide
www.jmct.123.fr
Pour les étudiants de l’USTHB
22
Master RSD - USTHB -
Les BDD (Binary Decision Diagram) sont utilisés si on souhaite représenter une fonction
booléenne.
Exemple :
Comparateur de 2 bits :
a0 a1 1 si a0=b0 et a1=b1
=
b0 b1 0 sinon
a0
0 1
a1 a1
0 1 0 1
b0 b0
b0 b0
0 1 0 1 0 1 1
b1 b1 b1 b1 b1 b1 b1 b1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
www.jmct.123.fr
Pour les étudiants de l’USTHB
23
Master RSD - USTHB -
Représentation BDD
a0
0 1
a1 a1
0 1 0 1
b0 b0 b0 b0
0
0 1 0 0
1 1 1
b1 b1
0 0
1 1
0 1
Exemple :
F(0010)=0
F(0110)=0
a0
1 1
a0
a0
1
1 1
1
a0
1
1
a0 a0
1 1
1 1
0 1
www.jmct.123.fr
Pour les étudiants de l’USTHB
24
Master RSD - USTHB -
L’ordre est donc important dans le gain en espace pour la représentation à l’aide des BDD
des formules de la logique propositionnelle.
Les BDD sont un outil pour représenter les automates.
1er cas : représenter seulement les états (les valeurs de vérité dans les états) par exemple on
peut représenter (a∧b)∨(a∧7b)par un OBDD ( Order BDD)
S0 S1
a a a a 7b a a b
e0 e1 e2 e3 …. ei ei+1 …. ej ej+1 ….
7(a∪b)
Fin.
www.jmct.123.fr
Pour les étudiants de l’USTHB
25
Master RSD - USTHB -
TD N°1
Exercice 1:
Soit le jeu de boolling ou deux joueurs font tomber 01 ou 02 quilles à tours de rôle, celui qui
fait tomber la dernière quille perd.
Solution
1- Soit un état (j , n) telque :
• j est le joueur dont le tour est arrivé.
• N le nombre de quilles restant.
1,5 2
1
2,4 2 2 2,3
1 2
1 1 J1 perd
1,1 1,0
J2 perd
1
2,0
J1 perd
2- Pour que le joueur 01 gagne toujours ; il faut qu’il fasse tomber une quille le premier,
puis :
• Si le joueur 02 fait tomber une quille, le joueur 01 doit faire tomber deux quilles.
• Si le joueur 02 fait tomber deux quilles, le joueur 01 doit faire tomber une quille.
www.jmct.123.fr
Pour les étudiants de l’USTHB
26
Master RSD - USTHB -
O S1 O
S21 S22
2- Produit synchrone :
S01, S02, S0
LL’ D D
LL’
D
OO’ OO’
www.jmct.123.fr
Pour les étudiants de l’USTHB
27
Master RSD - USTHB -
TD N° 2
Exercice :
• La propriété p est stable (si elle arrive, elle demeure) AG (p⇒ AGp)
• Vivacité : la propriété p est répétée infiniment souvent AG (AFp) (dans toutes les
exécutions on rencontre tout le temps AFp)
• Toute demande de ressource est acquittée plus tard (s’il y a une demande, elle sera
suivie obligatoirement d’un acquittement AG (d⇒ AX (AFa))
• Toute demande de ressource est acquittée plus tard, et aucune autre demande
supplémentaire n’arrive avant l’acquittement AG (d⇒AX (A (7d∪a)))
• L’alarme reste active, tant qu’on aura pas appuyé sur stop A (a∪s) ∧ s⇒7a
www.jmct.123.fr
Pour les étudiants de l’USTHB
28
Master RSD - USTHB -
TD N° 3
Exercice1 :
Ecrire l’arbre syntaxique des formules suivantes :
On a :
A (p∪ 7q) ∨ AF (7EGr) = [7E (p∪q) ∧ 7EGp] ∨ 7EG ( EGr) = [7E (p∪q) ∧ 7 EGp] ∨ 7EGr
7E (p∪q) ∧ 7 EGp
7 EGp 7FGr
7E (p∪q)
EGp EGr
p q p r
E(p∪q)
E (true ∪ (EGp))
EGp
true p p q
www.jmct.123.fr
Pour les étudiants de l’USTHB
29
Master RSD - USTHB -
Exercice 2:
1) M, s0╞ EX EG(r)
EXEGr S0 p,q r S2
EGr
S1 q,r S3 q,r
On prend le sous graphe engendré par les états qui sont étiqueté par r
S2 r
EGr
S3 q,r
S1 q,r
EGr
S3 est étiqueté par EGr puisque c’est une composante fortement connexe non triviale, et S2
est étiqueté par EGr car dans ce sous graphe elle a comme successeur S3 (qui est déjà
étiqueté par EGr).
S0 a comme successeur immédiat S2 qui est étiqueté par EGr, donc on étiquète S0 par EX EGr.
Donc M, s0╞ EX EGr est VRAIE.
2) M, s1╞ AG (q∨r)
AG (q∨r) ≡ 7EF 7(q∨r) ≡ 7E (true ∪ 7(q∨r))
www.jmct.123.fr
Pour les étudiants de l’USTHB
30
Master RSD - USTHB -
3) M, s2╞ E (r ∪ q)
E (r ∪ q) E (r ∪ q)
S0 r S2
p,q
S1 S3 q,r
q,r
E (r ∪ q) E (r ∪ q)
4) M, s1╞ A [q ∪ AGr]
A [q ∪ AGr] ≡ 7E [q ∪ 7AGr] ∧ 7EGq
≡ 7E [q ∪ EF7r] ∧ 7EGq
≡ 7E [q ∪ E(true U 7r)] ∧ 7EGq
E [q ∪ E (true ∪ 7r)]
E (true ∪7r)
q E( true ∪ 7r) q 7r 7E [q ∪ E (true ∪ 7r)]
EGq 7EGq
7r
S0 r S2
p,q
true 7r
S1 S3 q,r
r q,r
EGq EGq
E (true ∪7r) 7E [q ∪ E (true ∪ 7r)]
E [q ∪ E (true ∪ 7r)]
www.jmct.123.fr
Pour les étudiants de l’USTHB
31
Master RSD - USTHB -
5) M, s1╞ E [q ∪ AGr ]
E [q ∪ AGr] ≡ E [q ∪ 7E (true ∪ 7r)]
E [q ∪ 7E (true ∪ 7r)]
q 7E (true ∪ 7r)
E (true ∪ 7r)
true 7r
E [q ∪ 7E (true ∪ 7r)]
E [q ∪ 7E (true ∪ 7r)]
E (true ∪7r)
7E (true ∪ 7r)
S0 r S2
p,q
7r
S1 S3 q,r
q,r
E (true ∪7r) 7E (true ∪ 7r)
E [q ∪ 7E (true ∪ 7r)] E [q ∪ E (true ∪ 7r)]
6) M, s1 ╞ EF AG (q)
www.jmct.123.fr
Pour les étudiants de l’USTHB
32
Master RSD - USTHB -
E (true ∪ 7q)
true 7q
S1 S3 q,r
q,r
E (true ∪ 7q) 7E (true ∪ 7q)
E (true ∪ 7E (true ∪ 7q))
E (true ∪ 7E (true ∪ 7q))
Exercice 3 :
Vérifiez si les formules sont valides sur l’automate suivant : a
a, b
c B, c c
www.jmct.123.fr
Pour les étudiants de l’USTHB
33
Master RSD - USTHB -
• ϕ1= EF AG c
EF AGc ≡ E (true ∪ AG c)
EF AGc ≡ E (true ∪ 7EF (7c))
EF AGc ≡ E (true ∪ 7E (true ∪ 7c))
E (true ∪ 7c)
true 7c
www.jmct.123.fr
Pour les étudiants de l’USTHB
34
Master RSD - USTHB -
• ϕ2 = A (a ∪ AFc)
= 7E (a ∪ 7AFc) ∧ 7EGa
7 E ( a ∪ EG 7c) ∧ 7EGa
7 E( a ∪ EG 7c) 7EGa
E( a ∪ EG 7c) EGa
a EG 7c a
7c
7 E (a ∪ EG 7c) ∧ 7EGa
7c
7 E (a ∪ EG 7c)
7EGa
7 E (a ∪ EG 7c) ∧ 7EGa
7c
a, b 7 E (a ∪ EG 7c)
7EGa
7 E (a ∪ EG 7c)
c b, c c
7 E (a ∪ EG 7c) 7 E (a ∪ EG 7c)
www.jmct.123.fr
Pour les étudiants de l’USTHB
35
Master RSD - USTHB -
TD 5
Série N°2:
www.jmct.123.fr
Pour les étudiants de l’USTHB
36
Master RSD - USTHB -
Exercice :
Construire l’automate de bûchi sur l’alphabet {a, b} et accepte un ensemble de mots tel que :
1- Les mots comportant au moins un « a ».
2- Les mots comportant exactement un « a ».
3- Les mots dans lesquels les lettres « a » et « b » sont vérifiés infiniment souvent.
4- Acceptant la formule 7(a∪b)
Solution : b a b
1- SS11
S0
b
2-
b a b
S0 SS11
3-
b
b
S0 S1
a a
b b
SS12
Remarque : l’exécution doit passer une infinité de fois par l’état d’acceptation dans un
automate de bûchi avant sa terminaison.
4- 7(a ∪ b) = (a ∪ 7b) ∨ Ga
a 7 true
SS10 SS11
www.jmct.123.fr
Pour les étudiants de l’USTHB
37
Master RSD - USTHB -
Exercice 2 :
a- a∪(b∪c)
b- (a∪b)∪c
c- G(r X(7r∪g))
a- a∪(b∪c)
a∪(b∪c)
{c} {b,X(b∪c)}
a c true
b
a
b
b c
S0 S1 S2
c true
Automate de bûchi
www.jmct.123.fr
Pour les étudiants de l’USTHB
38
Master RSD - USTHB -
(a∪b)∪c
b-
{(a∪b), X[(a∪b)∪c]}
{a, X(a∪b), c}
{ b, c} {b, (a∪b), X[(a∪b)∪c]}
c- G(r X(7r∪g))
7(true ∪ (r ∧ X 7 (7r∪g))
Contradiction
{X (7r∪g), Xϕ} {7r, Xϕ}
{7r∪g , ϕ}
{g , ϕ} {7r , X(7r∪g), ϕ}
www.jmct.123.fr
Pour les étudiants de l’USTHB
39
Master RSD - USTHB -
Exercice 1 :
Exercice 2 :
1- Xp
2- Ap Uq
3- Ap U (Eq Ur)
4- GEp
Exercice 3 :
Soit AP= {p, q}. Un front montant est un instant tel que p est vrai alors qu’elle était fausse à
l’instant précédent. Exprimer par une propriété de LTL que q indique les fronts montants sur
p.
Exercice 4 :
Exprimer en LTL puis en CTL les propriétés suivantes avec AP={r∈q, ack}
www.jmct.123.fr
Pour les étudiants de l’USTHB
40
Master RSD - USTHB -
Exercice 5 :
Indiquer quelles formules ci-dessous sont satisfaites par la structure de Kripke suivante :
1- Xp
2- p∪q
3- EX (Ep ∪ q)
4- EX (p∧ AFq)
www.jmct.123.fr
Pour les étudiants de l’USTHB
41