SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
1
Cours "Génie Logiciel II"
Chapitre3: Vérification de
modèles (Model checking)
Niveau: II2
Enseignante: Rim DRIRA
rim.drira@ensi-uma.tn
2
Plan
1. Introduction
2. Définition
3. Structure Kripke
4. Logique temporelle
1. PLTL
2. CTL
5. Algorithme de model checking de CTL
3
Préliminaire: Application des logiques
pour la vérification
 Logique propositionnelle
 Logique des prédicats du 1er ordre
 Logique des prédicats d’ordre supérieur
 Logique temporelle /Logique modale
 Etc.
 Chaque logique comporte un langage
formel pour:
 Modéliser de manière formelle des objets
 Raisonner sur les propriétés de ces objets
4
Préliminaire: Application des logiques
pour la vérification
1. Théorie des preuves (sur laquelle
se base la méthode B)
2. Théorie de modèles (ce que nous
allons étudier dans ce chapitre)
Théorie des preuves
 Un système formé d’une logique comporte:
 une notation (syntaxe)
 un ensemble d’axiomes (faits)
 un ensemble de règles d’inférence
(déduction)
 Une preuve formelle est une séquence de
situations où chaque situation est déduite à
partir d’autres situations par l’application
de règles d’inférence.
5
Préliminaire: Application des logiques
pour la vérification
6
Théorie de modèles
 La seconde utilisation de la logique
est pour exprimer des situations au
moment de l’exécution
 Le langage de la logique est utilisé ici
pour formaliser des propriétés de
structures et de déterminer quand
une situation est vraie dans cette
structure
Préliminaire: Application des logiques
pour la vérification
7
Théorie de modèles
 Spécification des propriétés est
représentée par des formules (
logique temporelle)
 Implémentation représentée par des
formules ou par un modèle
sémantique automate (système de
transitions)
Préliminaire: Application des logiques
pour la vérification
8
Model checking
9
Définition
 Méthode exhaustive et automatique
qui permet de savoir si un automate
donné vérifie une formule
temporelle donnée
 Les systèmes qui se prêtent le mieux
aux techniques de model checking
sont ceux facilement modélisables par
automate (fini).
10
Model checking
 Pour appliquer la méthode du model-
checking, il faudra:
1. Construire une modélisation formelle du
système
 Utiliser un langage de spécification formelle
(Exemple: une structure Kripke)
2. Énoncer formellement les propriétés à
vérifier
 Utiliser un langage de spécification de
propriétés (une logique temporelle)
3. Appliquer un algorithme de vérification
incarné dans un model checker
11
Model checking
M = Modèle (Système de transitons)
 = Formule temporelle
Model checking : est ce que M |= 
12
Model checking
Exemple
Exemples de modélisation
 https://www.univ-
orleans.fr/lifo/membres/Yohan.Boichu
t/Enseignement/Verif/Cours-Verif.pdf
13
14
Modélisation formelle:
Structure Kripke
15
 Une structure Kripke est un
automate où
 les états sont étiquetés par les
propositions atomiques qu’ils vérifient.
 Les étiquettes des transitions ont moins
d’importance.
Définition
16
Structure Kripke
 La Structure Kripke est un automate
A, quintuple de la forme :
A = { Q, E, T, q0, l}
 Q : ensemble d’états,
 E : ensemble d ’étiquettes de transitions,
 T Q x E x Q : ensemble de transitions,
 q0 : état initial
 l : application qui associe à chaque état
de Q des propriétés élémentaires
vérifiées dans cet état.
17
Structure Kripke
 Exemple: Digicode pour l’ouverture
de portes de bureaux ou
d’immeubles:
 la porte s'ouvre dès qu'on tape la bonne
suite de caractères: ABA
 Pour simplifier, 3 touches possibles: A, B,
C
 Il est possible de se tromper, on ouvre la
porte dès que la fin de la séquence de
touches est ABA.
18
Structure Kripke
A B A
1 2 3 4
C
B, C
A
B, C
Q = {1, 2, 3, 4} T= {(1,A,2), (1,B,1), (1,C,1), (2,A,2),
E = {A, B, C} (2,B,3), (2,C,1), (3,A,4), (3,B,1),
q0 = 1 (3,C,1)}
Exemple : Le digicode: L’automate
19
A
A B A
1 2 pA
3 pB
pred2
4 pA
pred3
C
B, C
B, C
Q = {1, 2, 3, 4}
q0 = 1
T= {(1,A,2), (1,B,1), (1,C,1), (2,A,2),
(2,B,3), (2,C,1), (3,A,4), (3,B,1),
(3,C,1)}
E = {A, B, C}
l = {1 ↦ Φ, 2 ↦ {pA}, 3 ↦ {pB, pred2},
4 ↦ {pA, pred3}}
Structure Kripke
Exemple : Le digicode: La structure Kripke
pA: On vient de taper un A
pB: On vient de taper un B
pC: On vient de taper un C
Pred2: l’état précédent un 2
Pred3: l ’état précédent est un 3
20
Arbre d’exécution
 Il est souvent nécessaire, par exemple
pour appliquer des méthodes de
model-checking, de raisonner sur un
arbre d’exécution d’une structure
Kripke :
 C’est un arbre infinie représentant tous les
chemins de la structure.
 sa racine est l’´etat initial de la structure,
 Le(s) successeurs de chaque nœud sont
ses successeurs par la relation de
transition.
21
Arbre d’exécution
1
1 2
2
1 1 2
2 1
3
1 1 1
2 2
3
2
1 3 4
C ’est le début de l ’arbre
 Exemple1:Arbre d’exécution du digicode
22
Structure Kripke
 Exemple2:
23
Structure Kripke-Quelques variables en plus
 Rappel de l’automate du Digicode: Il est possible de se
tromper, on ouvre la porte dès que la fin de la séquence de
touches est ABA.
 Modifier l’automate afin de:
 Permettre de tolérer au maximum trois erreurs,
 Ajouter des transitions déclenchant une alarme lorsque
quatre erreurs sont commises.
A B A
1 2 3 4
C
B, C
A
B, C
24
A B A
1 2 3 4
Si ctr = 3
A, C
ctr := ctr +1
err
Si ctr < 3
C
ctr := ctr +1
Si ctr = 3
B, C
ctr := ctr +1
Si ctr = 3
B, C
ctr := ctr +1
Si ctr < 3
B, C
ctr := ctr +1
Si ctr < 3
A
ctr := ctr +1
Si ctr< 3
B, C
ctr := ctr +1
Réponse: Quelques variables en plus
25
Remarques: Quelques variables en plus
 Lorsqu’on modélise des systèmes réels, il est souvent
commode de permettre aux automates de manipuler des
variables d’états.
 Les liens entre un automate et les variables peuvent être
de deux types:
 Affectations : Une transition peut modifier la valeur
d’une ou de plusieurs variables.
 Exemple: toutes les transitions sauf (1, A, 2), (2, B, 3) et
(3, A, 4) incrémentent le compteur.
 Gardes : Une transition peut être gardée par une
condition sur les variables. Ainsi, le franchissement de la
transition n’est possible que si la condition est vérifiée.
 Exemple: les transitions correspondant à une erreur (1, B,
1), (1, C, 1), (2, C, 1), etc. sont gardées par la condition
ctr < 3.
26
Les logiques temporelles
Suggérées pour la première fois par Pnueli en 1977
27
Motivations
Exemples
 P1: toute demande d’un ascenseur doit être satisfaite.
 Pour formaliser cette propriété, nous avons besoin
d’indiquer « la position au temps t ». En utilisant la
logique des prédicats du premier ordre :
 App(n,t): l’existence d’un appel pour l’étage n au temps t
 Dess(n,t): la desserte de l’étage n au temps t
 Une propriété un peu plus compliquée:
 P2: Un ascenseur ne traverse jamais un étage pour
lequel un appel existe sans le satisfaire.
 H(t): la position de la cabine à l’instant t
28
Motivations
 La logique du premier ordre permet d’écrire les
propriétés dynamiques en utilisant un temps explicite
MAIS les formules deviennent vite très lourdes.
La logique temporelle est mieux appropriée
 Le paramètre t disparaît
 Des constructions sont proposées pour exprimer le
futur ou le passé.
 On peut écrire P1 de l’exemple de l’ascenseur avec la
logique temporelle PLTL (futur):
⃞(appel → ⃟ desserte)
29
Logiques temporelles
 Une formule de la logique temporelle est
formée à partir :
1. Des propositions atomique: Une proposition
atomique décrit une propriété vérifiée dans
un état.
2. Des combinateurs temporels:
inévitablement, toujours, etc.
3. Des combinateurs booléens classiques:
négation, ou, et, implication, équivalence.
Logique temporelle= Logique classique + opérateurs
dédiés au temps
30
Les logiques temporelles
 Deux grandes classes
 Logique temporelle linéaire: ex: PLTL
 Logique temporelle arborescente: ex:
CTL
31
La logique temporelle
linéaire
PLTL
32
La logique PLTL
 PLTL: Propositional Linear Temporal
Logic
 Temps linéaire: chaque instant possède
un seul instant successeur
 Opérateurs temporels:
inévitablement, toujours, jusqu’à,
juste après.
33
La logique PLTL
Temps Linéaire: PLTL permet d’exprimer
des propriétés temporelles relatives à des
exécutions linéaires
34
La logique PLTL
 Inévitablement p ⃟ p = Fp
p
Instant
courant
35
La logique PLTL
 Toujours p ⃞p = Gp
p p p p
Instant
courant
36
La logique PLTL
 A l’instant suivant p vrai ⃝p = Xp
p
Instant courant
(, i)
(, i+1)
(, i) |= O p ssi (, i+1 ) |= p
37
La logique PLTL
 p jusqu’à q p  q
p p p q
Instant
courant
Exercice
 Exprimer en PLTL:
1. A partir d’une alerte, nous serons dans un état
d’arrêt (plus tard).
2. A partir d’une alerte, l’alarme est en marche
jusqu’à l’arrêt qui suivra forcément.
3. Toute demande sera suivie d’une
réponse.
4. Pas d’accès simultané à une section
critique
38
39
 Exprimer en PLTL:
 A partir d’une alerte, nous serons dans un état
d’arrêt (plus tard):
⃞ (alerte → ⃟ arrêt).
 A partir d’une alerte, l’alarme est en marche
jusqu’à l’arrêt qui suivra forcément:
⃞ (alerte → (alarme  arrêt))
Solution
alerte
Alarme U arret
arret
aame arm arm arm arm arm
40
 Exprimer en PLTL
 Toute demande sera suivie d’une
réponse
(demande → réponse)
 Pas d’accès simultané à une section
critique
┐(acces_A  acces_B)
Solution
La logique PLTL
41
 Syntaxe
 Les propositions atomiques sont des
formules PLTL
 Si p et q sont deux formules alors
 p  q, ┐p, p  q et ⃝p
 Abréviations
 p∨q = ┐(┐p  ┐q)
 p q = ┐p ∨ q
 false = ┐true
 p q = p q  q p
 ⃟p = true  p true = p ∨ ┐p
 ⃞p = ┐⃟ ┐p
42
La logique PLTL
 Dualité:  est le dual de 
 p =    p (s’il fera beau dorénavant, il est
faux que finalement il pleuvra!)
 p =   p (si finalement je serai riche, il
est faux que je serai toujours pauvre!)
 Et donc aussi (par élimination des
doubles négations)
  p =   p
   p =   p
43
La logique PLTL
Combinaisons
 Infiniment souvent p:  p
 P est vérifié un nombre infini de fois le
long de l’exécution
 Finalement toujours p:  p
44
Exercice
 Est-ce p  q et q  p sont équivalentes?
 La réponse est négative, car
  p   q =   p   q
 Ceci est vrai dans le cas où p est dorénavant faux ou
q se vérifie enfin
  q   p =   q   p
 Ceci est vrai dans le cas où q est dorénavant faux ou
p se vérifie enfin
45
Satisfaction et sémantique des
opérateurs temporels
Automate logiques
temporelles
Rappel
47
Notations
 A |=  : l’automate A satisfait  est défini par:
 A |=  ssi , 0 |=  pour toute exécution  de A
 : une formule temporelle à vérifier
 : une séquence d’états décrivant une exécution d’un
système. Exemple:  = (0, 0), (1, 1), … (n, n)….
 (i) est i-ème état de l’exécution 
 ||: longueur d’un chemin 
 A, , i |=  : au temps i de l’exécution ,  est vraie.
 A, , i |  :  n’est pas satisfaite au temps i de .
 Remarque: Dans les notations, A est très souvent implicite et on
l’omet dans les écritures (on écrit: , i |= ).
Concept de satisfaction, symbole╞
48
, i |= p ssi p  l((i))
, i |=  ssi il n’est pas vrai que , i |= 
, i |=   ssi , i |=  et , i |= 
, i |= X ssi i < || et , i+1 |= 
, i |= F ssi il existe j tel que i  j  || et , j |= 
, i |= G ssi pour tout j tel que i  j  ||, on a , j |= 
, i |=    ssi il existe j, i  j  || tel que , j |=  et
pour tout k tel que i  k <j, on a , k |= ,
Sémantique de la logique PLTL
Rappel
49
Sémantique de la logique PLTL
 La définition de , i |=  se fait par induction
sur la structure de :
 la valeur de vérité d’une formule composée est
donnée à partir des valeurs de vérité de ses sous-
formules.
 Exemple:
j 0 1 2 3 4 5 6
X 0 0 1 1 0 0 1
X = 0 T T F F T T F
X = 1 F F T T F F T
O(x=1) F T T F F T
(x=0)  O(x=1) F T F F F T F
50
Sémantique de la logique PLTL
j 0 1 2 3 4 5 6
X 0 0 1 1 0 0 1
X = 0 T T F F T T F
X = 1 F F T T F F T
O(x=1) F T T F F T
(x=0)  O(x=1) F T F F F T F
((x=0)  O(x=1)) F F F F F F F
((x=0) 
O(x=1))
T T T T T T F
(, i) |=O F ssi (, i+1 ) |= F
(, i) |= F ssi  j i (, j ) |= F
51
Sémantique de la logique PLTL
 Exemples
j 0 1 2 3 4 5 6
X 1 3 2 4 3 5 4 …
X > 3 F F F T F T T …
 (X > 3) F F F F F T T …
j 0 1 2 3 4 5
X 1 2 3 4 5 6 …
X = 4 F F F T F F …
 (X = 4) T T T T F F …
52
Exercice: Digicode
 Rappel de l’automate:
1. Transformer cet automate en un Kripke
K
2. Ecrire la formule temporelle de la
propriété P suivante: « toute suite de
lettres tapées finissant par ABA ouvre la
porte ».
A B A
1 2 3 4
C
B, C
A
B, C
53
A
A B
A
1 2 pA 3 pB
4 pA
PO
C
B, C
B, C
Réponse: Digicode
PA: On vient nécessairement de taper A
PB: On vient nécessairement de taper B
PO: Porte ouverte
Propriété P (vivacité): G(X PA  XX PB  XXX PA XXX PO)
54
Arbre d’exécutiondu digicode
1
1 2
2
1 1 2
2 1
3
1 1 1
2 2
3
2
1 3 4
C ’est le début de l ’arbre
Propriété P (vivacité): G(X PA  XX PB  XXX PA XXX PO)
pA
pA pA pB
pB
pB
pO
pA
PA: On vient nécessairement de taper A
PB: On vient nécessairement de taper B
PO: Porte ouverte
55
Limites de l’expressivité de PLTL
 Formules de chemins: les connecteurs
temporels considèrent une exécution à la
fois
 Impossible de pouvoir savoir si tout
ou partie des exécutions partant d’un
état donné vérifient une propriété

Contenu connexe

Similaire à Chapitre3_Partie1.pdf

System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...Ossama Benbouidda
 
Commande optimale
Commande optimaleCommande optimale
Commande optimaleAdouane
 
Cours11 Commande dans l'espace d'état
Cours11 Commande dans l'espace d'étatCours11 Commande dans l'espace d'état
Cours11 Commande dans l'espace d'étatsarah Benmerzouk
 
2 signaux et systèmes slideshare
2 signaux et systèmes slideshare2 signaux et systèmes slideshare
2 signaux et systèmes slideshareKheddioui
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Chapitre 3_AI.pdf
Chapitre 3_AI.pdfChapitre 3_AI.pdf
Chapitre 3_AI.pdfHoucemBHsn
 
CA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdfCA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdfYassineAmal2
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreelyoussef essakhi
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfMbarkiIsraa
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en JavaAziz Darouichi
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Colle_info-SimApp.ppt
Colle_info-SimApp.pptColle_info-SimApp.ppt
Colle_info-SimApp.pptajanaessaid
 
Chapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisChapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisMohamed Lahby
 

Similaire à Chapitre3_Partie1.pdf (20)

System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Trans...
 
Commande optimale
Commande optimaleCommande optimale
Commande optimale
 
Cours11 Commande dans l'espace d'état
Cours11 Commande dans l'espace d'étatCours11 Commande dans l'espace d'état
Cours11 Commande dans l'espace d'état
 
2 signaux et systèmes slideshare
2 signaux et systèmes slideshare2 signaux et systèmes slideshare
2 signaux et systèmes slideshare
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Cours mooremealy [autosaved]
Cours mooremealy [autosaved]Cours mooremealy [autosaved]
Cours mooremealy [autosaved]
 
Chapitre 3_AI.pdf
Chapitre 3_AI.pdfChapitre 3_AI.pdf
Chapitre 3_AI.pdf
 
TP5_2020.pdf
TP5_2020.pdfTP5_2020.pdf
TP5_2020.pdf
 
CA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdfCA_RESMA_2022_01 Chap1.pdf
CA_RESMA_2022_01 Chap1.pdf
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en Java
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
TV_Soutenance_2012
TV_Soutenance_2012TV_Soutenance_2012
TV_Soutenance_2012
 
STR-2.pdf
STR-2.pdfSTR-2.pdf
STR-2.pdf
 
espace etat.ppsx
espace etat.ppsxespace etat.ppsx
espace etat.ppsx
 
Colle_info-SimApp.ppt
Colle_info-SimApp.pptColle_info-SimApp.ppt
Colle_info-SimApp.ppt
 
Chapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de trisChapitre 3 Les algorithmes de recherche et de tris
Chapitre 3 Les algorithmes de recherche et de tris
 

Plus de MbarkiIsraa

correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdfMbarkiIsraa
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxMbarkiIsraa
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdfMbarkiIsraa
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdfMbarkiIsraa
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdfMbarkiIsraa
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfMbarkiIsraa
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfMbarkiIsraa
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxMbarkiIsraa
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfMbarkiIsraa
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptMbarkiIsraa
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfMbarkiIsraa
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdfMbarkiIsraa
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdfMbarkiIsraa
 

Plus de MbarkiIsraa (18)

NP-complet.ppt
NP-complet.pptNP-complet.ppt
NP-complet.ppt
 
Format.pptx
Format.pptxFormat.pptx
Format.pptx
 
correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdf
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptx
 
PCD YasBas.pptx
PCD YasBas.pptxPCD YasBas.pptx
PCD YasBas.pptx
 
PLNE.pptx
PLNE.pptxPLNE.pptx
PLNE.pptx
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdf
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdf
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptx
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
Complexité_ENSI_2011.ppt
Complexité_ENSI_2011.pptComplexité_ENSI_2011.ppt
Complexité_ENSI_2011.ppt
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdf
 

Dernier

GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 

Dernier (20)

GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 

Chapitre3_Partie1.pdf

  • 1. 1 Cours "Génie Logiciel II" Chapitre3: Vérification de modèles (Model checking) Niveau: II2 Enseignante: Rim DRIRA rim.drira@ensi-uma.tn
  • 2. 2 Plan 1. Introduction 2. Définition 3. Structure Kripke 4. Logique temporelle 1. PLTL 2. CTL 5. Algorithme de model checking de CTL
  • 3. 3 Préliminaire: Application des logiques pour la vérification  Logique propositionnelle  Logique des prédicats du 1er ordre  Logique des prédicats d’ordre supérieur  Logique temporelle /Logique modale  Etc.  Chaque logique comporte un langage formel pour:  Modéliser de manière formelle des objets  Raisonner sur les propriétés de ces objets
  • 4. 4 Préliminaire: Application des logiques pour la vérification 1. Théorie des preuves (sur laquelle se base la méthode B) 2. Théorie de modèles (ce que nous allons étudier dans ce chapitre)
  • 5. Théorie des preuves  Un système formé d’une logique comporte:  une notation (syntaxe)  un ensemble d’axiomes (faits)  un ensemble de règles d’inférence (déduction)  Une preuve formelle est une séquence de situations où chaque situation est déduite à partir d’autres situations par l’application de règles d’inférence. 5 Préliminaire: Application des logiques pour la vérification
  • 6. 6 Théorie de modèles  La seconde utilisation de la logique est pour exprimer des situations au moment de l’exécution  Le langage de la logique est utilisé ici pour formaliser des propriétés de structures et de déterminer quand une situation est vraie dans cette structure Préliminaire: Application des logiques pour la vérification
  • 7. 7 Théorie de modèles  Spécification des propriétés est représentée par des formules ( logique temporelle)  Implémentation représentée par des formules ou par un modèle sémantique automate (système de transitions) Préliminaire: Application des logiques pour la vérification
  • 9. 9 Définition  Méthode exhaustive et automatique qui permet de savoir si un automate donné vérifie une formule temporelle donnée  Les systèmes qui se prêtent le mieux aux techniques de model checking sont ceux facilement modélisables par automate (fini).
  • 10. 10 Model checking  Pour appliquer la méthode du model- checking, il faudra: 1. Construire une modélisation formelle du système  Utiliser un langage de spécification formelle (Exemple: une structure Kripke) 2. Énoncer formellement les propriétés à vérifier  Utiliser un langage de spécification de propriétés (une logique temporelle) 3. Appliquer un algorithme de vérification incarné dans un model checker
  • 11. 11 Model checking M = Modèle (Système de transitons)  = Formule temporelle Model checking : est ce que M |= 
  • 13. Exemples de modélisation  https://www.univ- orleans.fr/lifo/membres/Yohan.Boichu t/Enseignement/Verif/Cours-Verif.pdf 13
  • 15. 15  Une structure Kripke est un automate où  les états sont étiquetés par les propositions atomiques qu’ils vérifient.  Les étiquettes des transitions ont moins d’importance. Définition
  • 16. 16 Structure Kripke  La Structure Kripke est un automate A, quintuple de la forme : A = { Q, E, T, q0, l}  Q : ensemble d’états,  E : ensemble d ’étiquettes de transitions,  T Q x E x Q : ensemble de transitions,  q0 : état initial  l : application qui associe à chaque état de Q des propriétés élémentaires vérifiées dans cet état.
  • 17. 17 Structure Kripke  Exemple: Digicode pour l’ouverture de portes de bureaux ou d’immeubles:  la porte s'ouvre dès qu'on tape la bonne suite de caractères: ABA  Pour simplifier, 3 touches possibles: A, B, C  Il est possible de se tromper, on ouvre la porte dès que la fin de la séquence de touches est ABA.
  • 18. 18 Structure Kripke A B A 1 2 3 4 C B, C A B, C Q = {1, 2, 3, 4} T= {(1,A,2), (1,B,1), (1,C,1), (2,A,2), E = {A, B, C} (2,B,3), (2,C,1), (3,A,4), (3,B,1), q0 = 1 (3,C,1)} Exemple : Le digicode: L’automate
  • 19. 19 A A B A 1 2 pA 3 pB pred2 4 pA pred3 C B, C B, C Q = {1, 2, 3, 4} q0 = 1 T= {(1,A,2), (1,B,1), (1,C,1), (2,A,2), (2,B,3), (2,C,1), (3,A,4), (3,B,1), (3,C,1)} E = {A, B, C} l = {1 ↦ Φ, 2 ↦ {pA}, 3 ↦ {pB, pred2}, 4 ↦ {pA, pred3}} Structure Kripke Exemple : Le digicode: La structure Kripke pA: On vient de taper un A pB: On vient de taper un B pC: On vient de taper un C Pred2: l’état précédent un 2 Pred3: l ’état précédent est un 3
  • 20. 20 Arbre d’exécution  Il est souvent nécessaire, par exemple pour appliquer des méthodes de model-checking, de raisonner sur un arbre d’exécution d’une structure Kripke :  C’est un arbre infinie représentant tous les chemins de la structure.  sa racine est l’´etat initial de la structure,  Le(s) successeurs de chaque nœud sont ses successeurs par la relation de transition.
  • 21. 21 Arbre d’exécution 1 1 2 2 1 1 2 2 1 3 1 1 1 2 2 3 2 1 3 4 C ’est le début de l ’arbre  Exemple1:Arbre d’exécution du digicode
  • 23. 23 Structure Kripke-Quelques variables en plus  Rappel de l’automate du Digicode: Il est possible de se tromper, on ouvre la porte dès que la fin de la séquence de touches est ABA.  Modifier l’automate afin de:  Permettre de tolérer au maximum trois erreurs,  Ajouter des transitions déclenchant une alarme lorsque quatre erreurs sont commises. A B A 1 2 3 4 C B, C A B, C
  • 24. 24 A B A 1 2 3 4 Si ctr = 3 A, C ctr := ctr +1 err Si ctr < 3 C ctr := ctr +1 Si ctr = 3 B, C ctr := ctr +1 Si ctr = 3 B, C ctr := ctr +1 Si ctr < 3 B, C ctr := ctr +1 Si ctr < 3 A ctr := ctr +1 Si ctr< 3 B, C ctr := ctr +1 Réponse: Quelques variables en plus
  • 25. 25 Remarques: Quelques variables en plus  Lorsqu’on modélise des systèmes réels, il est souvent commode de permettre aux automates de manipuler des variables d’états.  Les liens entre un automate et les variables peuvent être de deux types:  Affectations : Une transition peut modifier la valeur d’une ou de plusieurs variables.  Exemple: toutes les transitions sauf (1, A, 2), (2, B, 3) et (3, A, 4) incrémentent le compteur.  Gardes : Une transition peut être gardée par une condition sur les variables. Ainsi, le franchissement de la transition n’est possible que si la condition est vérifiée.  Exemple: les transitions correspondant à une erreur (1, B, 1), (1, C, 1), (2, C, 1), etc. sont gardées par la condition ctr < 3.
  • 26. 26 Les logiques temporelles Suggérées pour la première fois par Pnueli en 1977
  • 27. 27 Motivations Exemples  P1: toute demande d’un ascenseur doit être satisfaite.  Pour formaliser cette propriété, nous avons besoin d’indiquer « la position au temps t ». En utilisant la logique des prédicats du premier ordre :  App(n,t): l’existence d’un appel pour l’étage n au temps t  Dess(n,t): la desserte de l’étage n au temps t  Une propriété un peu plus compliquée:  P2: Un ascenseur ne traverse jamais un étage pour lequel un appel existe sans le satisfaire.  H(t): la position de la cabine à l’instant t
  • 28. 28 Motivations  La logique du premier ordre permet d’écrire les propriétés dynamiques en utilisant un temps explicite MAIS les formules deviennent vite très lourdes. La logique temporelle est mieux appropriée  Le paramètre t disparaît  Des constructions sont proposées pour exprimer le futur ou le passé.  On peut écrire P1 de l’exemple de l’ascenseur avec la logique temporelle PLTL (futur): ⃞(appel → ⃟ desserte)
  • 29. 29 Logiques temporelles  Une formule de la logique temporelle est formée à partir : 1. Des propositions atomique: Une proposition atomique décrit une propriété vérifiée dans un état. 2. Des combinateurs temporels: inévitablement, toujours, etc. 3. Des combinateurs booléens classiques: négation, ou, et, implication, équivalence. Logique temporelle= Logique classique + opérateurs dédiés au temps
  • 30. 30 Les logiques temporelles  Deux grandes classes  Logique temporelle linéaire: ex: PLTL  Logique temporelle arborescente: ex: CTL
  • 32. 32 La logique PLTL  PLTL: Propositional Linear Temporal Logic  Temps linéaire: chaque instant possède un seul instant successeur  Opérateurs temporels: inévitablement, toujours, jusqu’à, juste après.
  • 33. 33 La logique PLTL Temps Linéaire: PLTL permet d’exprimer des propriétés temporelles relatives à des exécutions linéaires
  • 34. 34 La logique PLTL  Inévitablement p ⃟ p = Fp p Instant courant
  • 35. 35 La logique PLTL  Toujours p ⃞p = Gp p p p p Instant courant
  • 36. 36 La logique PLTL  A l’instant suivant p vrai ⃝p = Xp p Instant courant (, i) (, i+1) (, i) |= O p ssi (, i+1 ) |= p
  • 37. 37 La logique PLTL  p jusqu’à q p  q p p p q Instant courant
  • 38. Exercice  Exprimer en PLTL: 1. A partir d’une alerte, nous serons dans un état d’arrêt (plus tard). 2. A partir d’une alerte, l’alarme est en marche jusqu’à l’arrêt qui suivra forcément. 3. Toute demande sera suivie d’une réponse. 4. Pas d’accès simultané à une section critique 38
  • 39. 39  Exprimer en PLTL:  A partir d’une alerte, nous serons dans un état d’arrêt (plus tard): ⃞ (alerte → ⃟ arrêt).  A partir d’une alerte, l’alarme est en marche jusqu’à l’arrêt qui suivra forcément: ⃞ (alerte → (alarme  arrêt)) Solution alerte Alarme U arret arret aame arm arm arm arm arm
  • 40. 40  Exprimer en PLTL  Toute demande sera suivie d’une réponse (demande → réponse)  Pas d’accès simultané à une section critique ┐(acces_A  acces_B) Solution
  • 41. La logique PLTL 41  Syntaxe  Les propositions atomiques sont des formules PLTL  Si p et q sont deux formules alors  p  q, ┐p, p  q et ⃝p  Abréviations  p∨q = ┐(┐p  ┐q)  p q = ┐p ∨ q  false = ┐true  p q = p q  q p  ⃟p = true  p true = p ∨ ┐p  ⃞p = ┐⃟ ┐p
  • 42. 42 La logique PLTL  Dualité:  est le dual de   p =    p (s’il fera beau dorénavant, il est faux que finalement il pleuvra!)  p =   p (si finalement je serai riche, il est faux que je serai toujours pauvre!)  Et donc aussi (par élimination des doubles négations)   p =   p    p =   p
  • 43. 43 La logique PLTL Combinaisons  Infiniment souvent p:  p  P est vérifié un nombre infini de fois le long de l’exécution  Finalement toujours p:  p
  • 44. 44 Exercice  Est-ce p  q et q  p sont équivalentes?  La réponse est négative, car   p   q =   p   q  Ceci est vrai dans le cas où p est dorénavant faux ou q se vérifie enfin   q   p =   q   p  Ceci est vrai dans le cas où q est dorénavant faux ou p se vérifie enfin
  • 45. 45 Satisfaction et sémantique des opérateurs temporels
  • 47. 47 Notations  A |=  : l’automate A satisfait  est défini par:  A |=  ssi , 0 |=  pour toute exécution  de A  : une formule temporelle à vérifier  : une séquence d’états décrivant une exécution d’un système. Exemple:  = (0, 0), (1, 1), … (n, n)….  (i) est i-ème état de l’exécution   ||: longueur d’un chemin   A, , i |=  : au temps i de l’exécution ,  est vraie.  A, , i |  :  n’est pas satisfaite au temps i de .  Remarque: Dans les notations, A est très souvent implicite et on l’omet dans les écritures (on écrit: , i |= ). Concept de satisfaction, symbole╞
  • 48. 48 , i |= p ssi p  l((i)) , i |=  ssi il n’est pas vrai que , i |=  , i |=   ssi , i |=  et , i |=  , i |= X ssi i < || et , i+1 |=  , i |= F ssi il existe j tel que i  j  || et , j |=  , i |= G ssi pour tout j tel que i  j  ||, on a , j |=  , i |=    ssi il existe j, i  j  || tel que , j |=  et pour tout k tel que i  k <j, on a , k |= , Sémantique de la logique PLTL Rappel
  • 49. 49 Sémantique de la logique PLTL  La définition de , i |=  se fait par induction sur la structure de :  la valeur de vérité d’une formule composée est donnée à partir des valeurs de vérité de ses sous- formules.  Exemple: j 0 1 2 3 4 5 6 X 0 0 1 1 0 0 1 X = 0 T T F F T T F X = 1 F F T T F F T O(x=1) F T T F F T (x=0)  O(x=1) F T F F F T F
  • 50. 50 Sémantique de la logique PLTL j 0 1 2 3 4 5 6 X 0 0 1 1 0 0 1 X = 0 T T F F T T F X = 1 F F T T F F T O(x=1) F T T F F T (x=0)  O(x=1) F T F F F T F ((x=0)  O(x=1)) F F F F F F F ((x=0)  O(x=1)) T T T T T T F (, i) |=O F ssi (, i+1 ) |= F (, i) |= F ssi  j i (, j ) |= F
  • 51. 51 Sémantique de la logique PLTL  Exemples j 0 1 2 3 4 5 6 X 1 3 2 4 3 5 4 … X > 3 F F F T F T T …  (X > 3) F F F F F T T … j 0 1 2 3 4 5 X 1 2 3 4 5 6 … X = 4 F F F T F F …  (X = 4) T T T T F F …
  • 52. 52 Exercice: Digicode  Rappel de l’automate: 1. Transformer cet automate en un Kripke K 2. Ecrire la formule temporelle de la propriété P suivante: « toute suite de lettres tapées finissant par ABA ouvre la porte ». A B A 1 2 3 4 C B, C A B, C
  • 53. 53 A A B A 1 2 pA 3 pB 4 pA PO C B, C B, C Réponse: Digicode PA: On vient nécessairement de taper A PB: On vient nécessairement de taper B PO: Porte ouverte Propriété P (vivacité): G(X PA  XX PB  XXX PA XXX PO)
  • 54. 54 Arbre d’exécutiondu digicode 1 1 2 2 1 1 2 2 1 3 1 1 1 2 2 3 2 1 3 4 C ’est le début de l ’arbre Propriété P (vivacité): G(X PA  XX PB  XXX PA XXX PO) pA pA pA pB pB pB pO pA PA: On vient nécessairement de taper A PB: On vient nécessairement de taper B PO: Porte ouverte
  • 55. 55 Limites de l’expressivité de PLTL  Formules de chemins: les connecteurs temporels considèrent une exécution à la fois  Impossible de pouvoir savoir si tout ou partie des exécutions partant d’un état donné vérifient une propriété