CTL vs LTL

Expressivité

EFp

EFp n’est pas exprimable en LTL. (= je peux trouver un chemin qui peut satisfaire p à un certain état) mais sa négation est exprimable : \neg EFp est G\neg p (= quel que soit le chemin, j’ai \neg p).
La négation de G\neg p est Fp qui est plus forte que EFp.

\RA la négation du chemin est différente dans CTL que dans LTL.

AGEFp

AGEFp n’est pas exprimable en LTL. (= pour tout les chemins, pour tout les états, j’ai un chemin à partir duquel je peux faire p) avec (AG = tous les chemins et tous les états)

Exemple

agefp

FGp (propriété de stabilité)

(pour tous les chemins, je vais trouver un chemin sur lequel p est vrai et restera toujours vrai

Tentative 1 de transformation : AFAGp

Pour tous les chemins, je trouverais un état à partir duquel tous les états satisfont p
afagp
S \vDash FGp, en dépliant :
afagp-2
S \nvDash AFAGp

Donc : (AFAGp)_{CTL} \RA (FGp)_{CTL}

Tentative 2 de transformation : AFEGp

afegp
S' \vDash AFEGp
S' \nvDash FGp

Donc : (FGp)_{LTL} \RA (AFEGp)_{CTL}

Conclusion

En terme d’expressivité, LTL et CTL sont incomparables !

Pouvoir de distinction

distinct-s1

Théorème

CTL distingue tous systèmes non bisimillaires.
CTL a un pouvoir de distinction plus fort que celui de LTL.

Systèmes différents mais indistinguable par CTL

distinct-s2
ils sont bissimilaires

Réseaux de Petri

petri1

Définition formelle 1

Syntaxe d’un réseau de Petri

Un réseau de Petri R est un typle R = <P, T, Pre, Post> où :

Un réseau de Petri marqué est un tuple <R, M> où :

Sémantique

Définition formelle 2

Syntaxe d’un réseau de Petri

R = <P, T> où :

Notation

On note t={}^{\bullet}{}t, t^{\bullet} \in T avec {}^{\bullet}{}t l’incidence arrière et t^{\bullet} l’incidence avant

Sémantique

t\in T
M[t> ssi M \leq {}^{\bullet}{}t (comparaison de vecteurs éléments à éléments)
M[t>M' \RA M' = M-{}^{\bullet}{}t + t^{\bullet}

petri2

Graphe de marquages

Soit <R, M> un réseau de Petri marqué et M_{0} son marquage initial.
Le graphe de marquages accessibles depuis M_{0} : \mathcal{A}(R, M_{0}) est donné par l’algorithme suivant :
\mathcal{A}_{0}=\{M_{0}\}
\mathcal{A}_{i}=\{M\in\N^{P}\ |\ \exists M' \in \mathcal{A}_{i-1}\quad \exists t\in T : M'[t>M\}
\mathcal{A}(R, M_{0})= \cup_{i\geq 0}\mathcal{A}_{i}

petri1-graphe

reseau-nn-bornee
[0]\xrightarrow{t}[1]\xrightarrow{t}[2]\xrightarrow{t}[3]\xrightarrow{t}\dots
R_{1} est non-borné \RA graphe de marquages infini

Définition

Un réseau de Petri marqué <R, M_{0}> est borné ssi \forall p \in P. p est bornée.
Une place p est bornée : \exists k\in \N \forall M \in \mathcal{A}(R, M_{0}) : M_{p}\leq k

Exercice : Le pont scandinave

Sur Tina (nd pour lancer l’interface graphique)

On a quatre personnes qui veulent traverser un pont
La capacité du pont est de deux personnes.
Les personnes ont une lampe torche.
Il faut une lampe pour traverser le pont.

Il faut y aller à deux et l’un doit revenir avec la torche pour faire passer les suivants.

La personne A traverse en 10 minutes.
La personne B traverse en cinq minutes.
La personne C traverse en deux minutes.
La personne D traverse en une minute.

  1. Quel est le temps minimal de la traversée ?

Modéliser le temps par des jetons, aka 1 minutes = 1 jeton, 5 minutes = 5 jetons.

pont
C et D traversent : 2 minutes
C revient avec la lampe : 4 minutes
A et B traversent : 14 minutes
D revient avec la lampe : 15 minutes
C et D traversent : 17 minutes