2. 2
Histoire: logique modale, logique temporelle, modè le
Les concepts de logique modale, logique temporelle et modèle furent
développés par les philosophes Prior, Meredith et Kripke autour des années
1960
Mais ils étaient déjà connus en philosophie avant ça
La logique modale est un système logique où on utilise des opérateurs
additionnels pour spécifier des modalités
P.ex. les opérateurs ‘nécessité’ et ‘possibilité’ en ajout aux opérateurs logiques
conventionnels
‘s’il est nécessaire qu’il pleuve, donc il est possible que je me mouille’
Le même principe est utilisé pour définir autres types d’opérateurs modales:
Logique déontique, dont les opérateurs modales sont obligatoire, défendu,
permis, etc.
Logique temporelle, dont les opérateurs sont ‘désormais’, ‘finalement’
La logique temporelle fut introduite en informatique par Amir Pnueli en 1977
3. 3
Logique: Rappel de Notation
Variables: x, y, z… Constantes: a, b, c…
Opérateurs principaux:
Logique propositionnelle:
∧ (et) (parfois aussi écrit &, &&..)
∨ (ou) (parfois aussi écrit ||)
¬ (négation) (parfois aussi écrit ~ ou !)
→ (implication), A → B est défini comme ¬A ∨ B
↔ (équivalence), A ↔ B est défini comme A → B ∧ B → A
Logique des prédicats:
P(x1, …, xn) (le tuple x1, …, xn a la propriété P)
∃x1,…,xn (il existe x1, …, xn )
∀x1,…,xn (pour tous les x1, …, xn )
P.ex.
∀x,y ∃z =(x+y,z) ou ∀x,y ∃z (x+y=z)
(∀x (P(x) →Q(x)) ∧ P(a) ) → Q(a)
(∀x (P(x) → Q(x)) ∧ ∃ y(P(y))) → ∃z Q(z)
4. 4
Dualité entre opé rateurs logiques
Lois de dualité (De Morgan):
A ∨ B = ¬(¬A ∧ ¬B)
A ∧ B = ¬ (¬A ∨ ¬B)
∃x P(x) = ¬∀x ¬P(x)
∀x P(x) = ¬ ∃x ¬P(x)
Ces deux dernières se justifient par les deux premières et le
fait que
∃x P(x) = ( P(a) ∨ P(b) ∨ P(c)….)
∀x P(x) = (P(a) ∧ P(b) ∧ P(c)….)
Si a, b, c… sont tous les éléments du domaine en considération
5. 5
Logiques modales
Dans les logiques modales, on ajoute des opérateurs
pour exprimer certaines propriétés qui ne peuvent pas
être exprimées directement en logique pure
P.ex. nécessité et possibilité (logique modale usuelle)
Obligation et permission (logique déontique)
Les logiques modales sont caractérisées par le fait
qu’il y a dualité entre ces opérateurs:
nécessaire (x) = impossible non x
obligatoire (x) = non permis non x
6. 6
Logique temporelle
Les modalités principales sont:
dorénavant, désormais (aussi écrit G)
finalement, enfin (aussi écrit F)
Dualité:
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
7. 10
Les opé rateurs temporels sont des
abré viations
Utilisons la notation σ ╞p pour dire:
La chaîne σ satisfait la propriété p
σ ╞vrai est toujours vrai, pour tout σ
σ ╞faux n’est jamais vrai, pour tout σ
σ ╞p est une abréviation pour:
pour tous les éléments de σ, p est vrai
dorénavant, désormais
σ ╞p est une abréviation pour:
Pour au moins un élément de σ, p est vrai
finalement, enfin
8. 11
Notation pour les chaî nes
σiest l’élément i de la chaîne σ
σ[i] est l’exécution qui commence à l’élément i
Donc récursivement:
σ = σ1σ [2]
σ = σ1σ2σ [3]
Etc.
…… σ i
σ[i]
9. 12
Notation pour les chaî nes
σi╞P veut dire que le i-ème élément de la
chaîne satisfait la propriété P
σ[i] ╞Q veut dire que la chaîne à partir du i-ème
élément satisfait la propriété Q
…… σ i
σ[i]
10. Deux opé rateurs jusqu’à: faible et fort
FAIBLE: Je serai pauvre jusqu’à ce que je serai riche:
Définition:
Ou bien je suis déjà riche
Ou bien je serai pauvre jusqu’à ce que je serai riche
L’événement attendu pourrait ne jamais se vérifier
FORT: Nous regarderons le spectacle jusqu’à la fin
Définition:
Nous regarderons le spectacle jusqu’à la fin
Il y aura une fin
13
11. 14
Dé finition formelle de jusqu’à faible U
σ[i] ╞ (p U q)
Définition:
σi ╞ q ∨ (σi ╞ p ∧ σ [i+1] ╞ (p U q) )
σ à partir du ième élém. satisfait p U q
ou bien le i-ème élément de σ
satisfait déjà q,
ou le ième élément satisfait p
et le reste de la chaîne satisfait p U q
12. 15
Dé finition formelle de doré navant
σ ╞ p
Définition:
σ ╞ (p U faux)
σ 1 ╞ faux ∨ (σ 1 ╞ p ∧ σ[2] ╞ (p U faux))
Touj. faux Récursivement, p est vrai pour tous les σ[i]
13. 16
Dé finition formelle de jusqu’à fort U
Le ‘jusqu’à fort’ garantit que q devient vrai
σ[i] ╞ (p U q)
Définition:
σ[i] ╞ (p U q) ∧ ∃j, i≤j, σ j ╞ q
la chaîne satisfait p U q il y aura un σj futur qui satisfiera q
i≤j: i présent, j futur
Observez: pour définir U fort nous utilisons l’U faible
14. 17
Dé finition formelle de finalement
σ ╞q
Définition:
σ ╞ (vrai U q)
σ[1] ╞ (vrai U q) ∧ ∃j, 1≤j, σj ╞ q
σ[1] ╞ (vrai U q) =
σ1 ╞ q ∨ (σ1 ╞ vrai ∧ σ[2] ╞ (vrai U q) ) =
σ1 ╞ q ∨ σ[2] ╞ (vrai U q) =
σ1 ╞ q ∨ (σ2 ╞ q ∧ σ[3] ╞ (vrai U q)) etc. jusqu’à ce que q sera satisfait
N’importe quelle chaîne satisfait vrai!
15. Importance de U, jusqu’à fort
Il est intéressant d’observer que U est l’opérateur
fondamental de la logique temporelle.
Il peut être défini sans utiliser les autres opérateurs,
mais les autres opérateurs peuvent être définis en
termes de lui.
18
17. Proprié té s inté ressantes en logique
temporelle
Propriétés d’invariance
Propriété de précédence
Propriétés de vivacité
18. Exemple pour illustrer les proprié té s
Un ensemble de m processus Pi
Un système de gestion SG de la ressource R
Une ressource commune R
Deux variables booléennes utilisées par le protocole de
communication entre les processus Piet le gestionnaire SG :
Une variable rigérée par le processus Pi : riest positionnée à
vrai lorsque le processus Pidemande la ressource R. Elle est
positionnée à faux lorsqu’il la libère.
Une variable aigérée par le système SG : ai est positionnée à
vrai lorsque le système SG a accordé la ressource R au
19. Proprié té d’invariance (safety property)
Autre appellation : propriété de sûreté
Exprimée avec l’opérateur « toujours »
Informellement,
- « les mauvaises choses ne peuvent (ne doivent pas) pas se produire »
- en terme de spécification « ce que le système ne doit pas faire »
Exemple de ce type de propriété : l’exclusion mutuelle
Prop1 : la ressource R est accordée a au plus un processus demandeur de cette
ressource
Formule en logique temporelle FProp1 de Prop1
FProp1: / ¬(ai∧ aj)
i≠j
20. Proprié té de pré cé dence
Exprimée avec l’opérateur « jusqu’à » U
Informellement,
- introduction d’un ordre explicite entre les évènements
Exemples de ce type de propriété
Prop4 : la ressource R ne peut être accordée à Pique s’il en fait la
demande
Prop5 : SG accorde la ressource R selon l’ordre des demandes
Formule en logique temporelle FProp4 de Prop4
FProp4: (¬ai→ (ri U ai))
Formule en logique temporelle FProp5 de Prop5
FProp5 : ((ri∧ ¬rj∧ ¬aj)→ (¬ajU ai))
21. Proprié té de vivacité (liveness property)
Exprimée avec l’opérateur « possible » ◊
Informellement,
- « les bonnes choses vont effectivement se produire »
- en terme de spécification « le comportement effectif attendu »
Exemples de ce type de propriété
Prop2 : si le processus Pidemande la ressource R alors il l’obtiendra
Prop3 : si le processus Piobtient la ressource R alors il la libèrera
Formule en logique temporelle FProp2 de Prop2
FProp2: (ri → ◊ai)
Formule en logique temporelle FProp3 de Prop3
FProp3: (ai → ◊¬ri)
22. 28
Formules fré quemment utilisé es
p → q réponse, causalité
p → qUr p implique q jusqu’a r (précédence)
p toujours finalement p (progrès vers p)
infiniment souvent p
il sera toujours vrai qu’il y aura des p dans le futur
p finalement toujours p
nous allons vers une stabilité, ou non-progrès
p → q corrélation
¬p p finalement devient toujours faux
¬p p deviendra faux au moins une fois encore
il sera toujours vrai que p sera faux dans un futur
23. 30
É quivalences utiles
Équivalent à
¬(p U q) (¬q) U (¬p ∧¬q)
¬(p U q) (¬q) U (¬p ∧¬q)
(p ∧ q) p ∧ q
(p ∨ q) p ∨ q
p U (q ∨ r) (p U q) ∨ (p U r)
(p ∧ q) U r (p U r) ∧ (q U r)
p U (q ∨ r) ( p U q) ∨ (p U r)
(p ∧ q) U r (p U r) ∧ (q U r)
(p ∨ q) p ∨ p
(p ∨ q) p ∨ q
p
p
p
p
25. 32
Opé rateur ‘prochain é tat’ (aussi é crit X)
σ[i] ╞ p
Définition:
σ[i+1]╞ p
p est vrai dans la séquence qui commence pae
le prochain état
…… σi σi+1
σ[i]
26. 36
Logiques temporelles liné aires et à
branchements
La logique temporelle que nous venons d’étudier est dite
‘logique temporelle linéaire’
Car elle est basée sur l’hypothèse qu’il n’y a qu’un seul futur
On étudie aussi les logiques temporelles à branchements,
basées sur l’hypothèse qu’il y a plusieurs futurs
CTL, Computational Tree Logic
Nous avons des opérateurs pour exprimer:
Dans tout futur possible, p sera vrai
Il y a un futur dans lequel p sera vrai
Il y a aussi des logiques pour exprimer le passé:
Si p a été vrai dans un passé, il devra être vrai dans un futur
Temporal logic with past
27. 37
Conclusion sur la logique temporelle
Elle est utile pour exprimer les propriétés de systèmes
qui évoluent dans le temps
Comme tous les systèmes réels
Les vérificateurs de modèles temporels (temporal logic
model checkers) l’utilisent
L’utilisation de ces concepts dépasse grandement
l’ingénierie des protocole
Il y a par ex. des applics à la vérif des circuits etc.