TD 14 : Logique temporelle linéaire, Automates d’arbres
EX 3
Logique temporelle :
\[\top \mid p ∈ AP \mid ¬ 𝜑 \mid 𝜑 ∧ 𝜑 \mid X 𝜑 \mid 𝜑 U 𝜑\]- $X$ : next
- $U$ : until
-
$F$ : finally
- $F \, 𝜑 ≝ \top U 𝜑$
- $𝜑$ est vraie ultimement
-
$G$ : globally
- $G \, 𝜑 ≝ ¬ F ¬ 𝜑$
- $𝜑$ est vraie à tout moment
Ex : dans un programme
- $r$ : requête arrivée
- $s$ : requête satisfaite
$∅ \lbrace r \rbrace ∅ \lbrace s \rbrace$ et $∅ \lbrace r \rbrace \lbrace r \rbrace ∅ \lbrace r, s \rbrace$ sont des modèles de $G(r ⟶ F s)$, mais pas $∅ \lbrace r \rbrace ∅ \lbrace r \rbrace ∅^n$
Pour $w ∈ 𝛴^+$ où $𝛴 ≝ 2^{AP}$
\[⟦𝜑⟧_w ∈ \lbrace 0, 1 \rbrace^{\vert w \vert}\]Ex :
$𝜑 = F p$, $AP = \lbrace p \rbrace$, $𝛴 = \lbrace ∅, \lbrace p \rbrace \rbrace$
\[w = ∅∅ \lbrace p \rbrace ∅ ∅ \\ ⟹ ⟦𝜑⟧_w = 11100\]1.
\[L(𝜑) = \lbrace w ∈ 𝛴^+ \mid w, 0 \vDash 𝜑 \rbrace\] \[𝜑 = G(¬p ⟶ Xp) ∧ G(p ⟶ (X¬p)∨¬X\top) ∧ ¬p\]2.
Logique FO :
\[\bot \mid x < y \mid ∀x. 𝜑 \mid ¬ 𝜑 \mid 𝜑 ∨ 𝜑 \mid P_a(x)\]\[w, i \vDash_{LTL} 𝜑 ⟺ w, \lbrace x \mapsto i \rbrace \vDash_{FO} ST_x(𝜑)\] \[ST_x(\top) = ¬ \bot \\ ST_x(\underbrace{p}_{∈Ap}) = \bigvee\limits_{a ∈ \lbrace a ⊆ Var(𝜑) \mid q ∈ a \rbrace} P_a(x) \\ ST_x(¬ 𝜑) = ¬ ST_x(𝜑) \\ ST_x(𝜑 \star 𝜓) = ST_x(𝜑) \star ST_x(𝜓) \\ ST_x(X𝜑) = ∃y. (x<y ∧ (¬∃z. (x<z ∧ z<y)) ∧ ST_y(𝜑)) \\ ST_x(𝜑_1 U 𝜑_2) = ∃y. \, (x ≤ y ∧ ST_y(𝜑_2) ∧ ∀z. (x ≤ z ∧ z < y) ⟶ ST_z(𝜑_1))\]
3.
$f$ est co-séquentielle ssi $\widetilde{f}$ est séquentielle, où $\widetilde{f}(w) ≝ \widetilde{f(\widetilde{w})}$ (mots miroirs)
Automate pour $⟦p⟧$ :
digraph {
rankdir=LR;
subgraph cluster_0{
label = "⟦p⟧"
q_0;
b1, b2[style=invis];
}
b1 -> q_0[label="𝜀"];
q_0 -> q_0[label="a / 1 si p∈a | b / 0 si p ∉ b"];
q_0 -> b2[label="𝜀"];
}
Automate pour $⟦Fp⟧$ :
digraph {
rankdir=LR;
subgraph cluster_0{
label = "⟦Fp⟧"
q_0; q_1;
b1, b2, b3[style=invis];
}
b1 -> q_0[label="𝜀"];
q_0 -> q_0[label="b / 0 si p ∉ b"];
q_0 -> b2[label="𝜀"];
q_0 -> q_1[label="a / 1 si p∈a"];
q_1 -> q_1[label="x / 1"];
q_1 -> b3[label="𝜀"];
}
Automate pour $⟦Fp ∧ Fq⟧$ :
digraph {
rankdir=LR;
subgraph cluster_0{
label = "⟦Fp ∧ Fq⟧"
q_0; q_1; q_2; q_3;
b1, b2, b3, b4, b5[style=invis];
}
b1 -> q_0[label="𝜀"];
q_0 -> q_0[label="b / 0 si p, q ∉ b"];
q_0 -> b2[label="𝜀"];
q_0 -> q_1[label="a / 1 si p∈a"];
q_1 -> q_1[label="x / 1 si q∉x"];
q_1 -> b3[label="𝜀"];
q_0 -> q_2[label="a / 1 si q∈a"];
q_2 -> q_2[label="x / 1 si p∉x"];
q_2 -> b4[label="𝜀"];
q_1 -> q_3[label="a / 1 si q ∈a"];
q_2 -> q_3[label="a / 1 si p ∈a"];
q_3 -> q_3[label="x / 1"];
q_3 -> b5[label="𝜀"];
q_0 -> q_3[label="a / 1 si p, q ∈a"];
}
On note $E_𝜑$ l’ensemble des sous-formules de $𝜑$.
On peut, de manière algorithmique, construire l’automate :
-
ayant un état initial
-
tel que chaque état $q$ est indexé par le sous-ensemble de $E_𝜑$ des sous-formules vérifiées dans $q$
4.
Etant donnée $𝜑$ une formule LTL.
\[SF(𝜑) = \text{l'ensemble des sous-formules de } 𝜑\]- $q ⊆ SF(𝜑)$ est cohérent si :
-
-
Si $𝜑_1 ∧ 𝜑_2 ∈ SF(𝜑)$ , alors :
\[𝜑_1 ∧ 𝜑_2 ∈ q \text{ ssi } 𝜑_1 ∈ q \text{ et } 𝜑_2 ∈ q\] -
si $¬𝜑 ∈ SF(𝜑)$, alors
\[¬𝜑 ∈ q \text{ ssi } 𝜑 ∉ q\]
-
Soit $C$ l’ensemble des états cohérents.
\[𝒜_𝜑 ≝ ⟨C ∪ \lbrace q_0 \rbrace, 2^{AP}, \lbrace 0, 1 \rbrace, 𝜀, 𝜌, q_0, 𝛿⟩\]$𝛿$ (transitions avec sortie) satisfait les propriétés suivantes :
\[q ⟶^{a / b} q'\]ssi
-
pour $p∈AP$, \(p∈q' \text{ ssi } p ∈a\)
-
$\top ∈ q’$
-
si $X𝜑_1 ∈ SF(𝜑)$, alors
NB : \(𝜑_1 U 𝜑_2 = 𝜑_2 ∨ (𝜑_1 ∧ X(𝜑_1 U 𝜑_2))\)
- si $𝜑_1 U 𝜑_2 ∈ SF(𝜑)$ alors
- $b=1$ ssi $𝜑 ∈ q’$
Taille de l’automate : \(≤ 2^{\vert SF(𝜑) \vert} = 2^{\vert 𝜑 \vert}\)
Automates d’arbres
$𝛴 = \lbrace a, b \rbrace$
Construire un automate d’arbres qui accepte les arbres binaires sur $𝛴$ avec un nombre pair de $a$.
\[𝒜 ≝ ⟨Q, 𝛴, 𝛿, F⟩\] \[Q = \lbrace \underbrace{q_0}_{\text{ nombre pair }}, \underbrace{q_1}_{\text{ nombre impair }} \rbrace \\ F = \lbrace q_c \rbrace\] \[𝛿 ≝ \lbrace (a, q_1), (b, q_0), (q_0, q_1, a, q_0), (q_0, q_1, b, q_1), (q_1, q_1, a, q_1), ⋯ \rbrace\]
Leave a comment