-
Temporale Logik tlRevision: 1.37
1Gebrauch in der Informatik geht auf A. Pnueli zurück
• Häufig zur Spezifikation von Nebenläufigen und Reaktiven
System gebraucht
• Erlaubt Verknüpfung von Aussagen zu verschiedenen
Zeitpunkten
– “Morgen ist das Wetter schön”
– “Die Reaktorstäbe werden nie überhitzt”
– “Die Zentralverriegelung öffnet sich unmittelbar nach einem
Unfall”
– “Der Airbag löst nur aus, wenn ein Unfall passiert ist”
– “Einer Bestätigung (Ack) muss eine Anforderung (Req)
vorausgehen”
– “Wenn der Aufzug gerufen wird, dann kommt er auch
irgendwann”
• Granularität der Zeitschritte muss natürlich festgelegt
werden
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Vereinfachte Hennessy-Milner Logik (HML) tlRevision: 1.37
2
zunächst betrachten wir HML als Bsp. für Temporale Logik für
LTS
Geg. Alphabet von Aktionen Σ.
Definition Syntax besteht aus booleschen Konstanten {0,1},
booleschen
Operatoren {∧,¬,→, . . .} und unären modalen Operatoren [a] und
〈a〉 mit a ∈ Σ.
Lese [a] f als für alle a-Nachfolger des momentanen Zustandes
gilt f
Lese 〈a〉 f als für einen a-Nachfolger des momentanen Zustandes
gilt f
Abkürzung 〈Θ〉 f steht fürW
a∈Θ〈a〉 f bzw. [Θ] f für
Va∈Θ
[a] f
Θ kann auch weiterhin als boolescher Ausdruck über Σ
geschrieben werden
z.B. [a∨b] f ≡ [{a,b}] f oder 〈¬a∧¬b〉 f ≡ 〈Σ\{a,b}〉 f
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Beispiele zur Vereinfachten HML tlRevision: 1.37
3
1. [a]1 für alle a-Nachfolger gilt 1 (immer wahr)
2. [a]0 für alle a-Nachfolger gilt 0
(a darf nicht möglich sein)
3. 〈a〉1 für einen a-Nachfolger gilt 1
(es muss a möglich sein)
4. 〈a〉0 für einen a-Nachfolger gilt 0 (immer falsch)
5. 〈a〉1 ∧ [b]0 es muss a aber es darf nicht b möglich sein
6. 〈a〉1 ∧ [¬a]0 es muss und darf nur genau a möglich sein
7. [a∨b]〈a∨b〉1 nach a oder b muss wiederum a oder b möglich
sein
8. 〈a〉 [b] [b]0 a ist möglich und danach aber b keinenfalls
zweimal
9. [a](〈a〉1 → [a]〈a〉1) ist nach a wiederum möglich, dann auch
ein zweitesmal
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Semantik der Vereinfachten Hennessy-Milner Logik tlRevision:
1.37
4
Geg. LTS L = (S, I,Σ,T ).
Definition Semantik ist rekursiv definiert als s |= f (lese “ f
gilt in s”), mit s ∈ S und f einervereinfachte Formel in
Hennessy-Milner Logik.
s |= 1
s 6|= 0
s |= [Θ]g gdw. ∀ a ∈ Θ ∀ t ∈ S: wenn s a→ t dann t |= g
s |= 〈Θ〉g gdw. ∃ a ∈ Θ ∃ t ∈ S: s a→ t und t |= g
Definition es gilt L |= f (lese “ f gilt in L”) gdw. s |= f für
alle s ∈ I
Definition Expansion von f ist die Menge der Zustände [[ f ]]
in denen f gilt.
[[ f ]] = {s ∈ S | s |= f}
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Endliche und Unendliche Traces tlRevision: 1.37
5
Geg. LTS L = (S, I,Σ,T ).
Definitionen
Ein Trace π von L ist eine endliche oder unendliche Folge von
Zuständen
π = (s0,s1, . . .)
wobei es für jedes Paar (si,si+1) in π ein a ∈ Σ gibt, mit sia→
si+1. Also gibt es a0,a1, . . . mit
s0a0→ s1
a1→ s2a2→ . . .
|π| ist dessen Länge , z.B. |π|= 2 für π = (s0,s1,s2), und
|π|= ∞ für unendliche Traces.
π(i) ist der i-te Zustand si von π falls i ≤ |π|
πi = (si,si+1, . . .) ist das Suffix ab und inklusive dem i-ten
Zustand si falls i ≤ |π|
Bemerkung: |π|= ∞ dann |πi|= ∞ für alle i ∈ IN
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Computation Tree Logic für HML (CTL/HML) tlRevision: 1.37
6
zunächst nur in Verbindung mit HML
Definition Syntax aufbauend auf der von HML und zusätzlich
unäre temporale Pfad-Operatoren X, F, G und ein binärer
temporaler Pfad-Operator U.
Pfad-Operatoren müssen einen Pfad-Quantor E oder A als Präfix
haben.
EX f in einem unmittelbaren Folgezustand gilt f ≡ 〈Σ〉 f
AX f in jedem Nachfolger muss f gelten ≡ [Σ] f
EF f in einer Zukunft gilt f irgendwann exists finally
AF f in allen möglichen Abläufen gilt f irgendwann always
finally
EG f in einer Zukunft gilt f konstant exists globally
AG f es gilt f immer always globally
E[ f U g] möglicherweise gilt f solange bis schließlich g gilt
exists until(uns g muss für diesen Trace irgendwann gelten)
A[ f U g] f gilt immer solange bis schließlich g gilt always
until(uns g muss für jeden Trace irgendwann gelten)
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Beispiele zu CTL/HML tlRevision: 1.37
7
¬EX f ≡ AX¬ f ¬〈Θ〉 f ≡ [Θ]¬ f ¬EF f ≡ AG¬ f ¬EG f ≡ AF¬ f
(De Morgan für E[· U ·] benötigt weiteren temporalen
Pfad-Operator)
AG [¬safe]0 es ist immer unmöglich unsichere Aktionen
auszuführen
EF〈¬safe〉1 möglicherweise kann unsichere Aktionen ausgeführt
werden
¬E[¬〈req〉1 U 〈ack〉1] es gibt keinen Ablauf auf dem irgendwann
ack möglich wird
und zuvor req nie möglich war
AG [req]AF [¬ack]0 immer nach einem req muss ein Punkt erreicht
werden,
ab dem keine Aktion ausser ack möglich ist
CTL/HML erlaubt die Kombination von Zustands- und
Aktionsspezifikation
dies ist aber auch notwendig und leider oftmals unelegant
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Semantik der CTL/HML Operatoren tlRevision: 1.37
8
Geg. CTL/HML Formel f , g, ein LTS L. π sei immer ein Trace von
L, und i, j ∈ IN.
Definition Semantik s |= f (lese “ f gilt in s”) ist rekursiv
definiert
(nur noch für die neuen CTL Operatoren)
s |= EX f gdw. ∃π[π(0) = s ∧ π(1) |= f ]
s |= AX f gdw. ∀π[π(0) = s ⇒ π(1) |= f ]
s |= EF f gdw. ∃π[π(0) = s ∧ ∃i[i ≤ |π| ∧ π(i) |= f ]]
s |= AF f gdw. ∀π[π(0) = s ⇒∃i[i ≤ |π| ∧ π(i) |= f ]]
s |= EG f gdw. ∃π[π(0) = s ∧ ∀i[i ≤ |π| ⇒ π(i) |= f ]]
s |= AG f gdw. ∀π[π(0) = s ⇒∀i[i ≤ |π| ⇒ π(i) |= f ]]
s |= E[ f U g] gdw. ∃π[π(0) = s ∧ ∃i[i ≤ |π| ∧ π(i) |= g ∧ ∀ j[
j < i ⇒ π( j) |= f ]]]
s |= A[ f U g] gdw. ∀π[π(0) = s ⇒∃i[i ≤ |π| ∧ π(i) |= g ∧ ∀ j[ j
< i ⇒ π( j) |= f ]]]
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Kripke Strukturen tlRevision: 1.37
9
• Klassisches Semantisches Modell für Temporale Logik
• reine Zustandssicht, keine Aktionen
– im Prinzip LTS mit genau einer Aktion (|Σ|= 1)
– zusätzlich Annotation von Zuständen mit atomaren
Aussagen
• Ursprünge aus der modalen Logik:
– verschiedene Welten aus S sind über → bzw. T verbunden
– [ ] f gdw. für alle unmittelbar erreichbaren Welten gilt
f
– 〈 〉 f gdw. es gibt eine unmittelbar erreichbare Welten, in der
f gilt
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Kripke Strukturen tlRevision: 1.37
10
Geg. Menge von Atomaren Aussagen A (boolesche Prädikate).
Definition eine Kripke Struktur K = (S, I,T,L) besteht aus
folgenden Komponenten:
• Zustandsmenge S.
• Anfangszuständen I ⊆ S mit I 6= /0
• einer totalen Übergangsrelation T ⊆ S×S (T total gdw. ∀s[∃t[T
(s, t)]])
• Labelling/Markierung/Annotation L :S → IP(A).
Labelling bildet Zustand s auf Menge atomarer Aussagen ab, die
in s gelten:
L(s) = {grau,warm, trocken}
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
LTS als Kripke Struktur tlRevision: 1.37
11
Definition Kripke Struktur K = (SK, IK,TK,L) zu einem
vollständigen LTS L = (SL, IL,Σ,TL)ist definiert durch folgende
Komponenten
A = Σ SK = SL×Σ IK = IL×Σ L :(s,a) 7→ a
TK((s,a),(s′,a′)) gdw. TL(s,a,s′) und a′ beliebig
Ähnliche Konstruktion wie beim Orakel-Automat!
Fakt s0a0→ s1
a1→ ···an−1→ sn in L
gdw.
(s0,a0)→ (s1,a1) · · · → (sn,an) in K
Anmerkung oftmals S ⊆ IBn, Σ = {a1, . . . ,an}, und L((s1, . . .
,sn)) = {ai | si = 1}
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
2-Bit Zähler als Kripke-Struktur tlRevision: 1.37
12
abQD
QD
S = IB2
I = IB2
T = {((0,0),(0,1)),
((0,1),(1,0)), . . .}
a ∈ L(s) gdw. s ∈ {(0,1),(1,1)}
b ∈ L(s) gdw. s ∈ {(1,0),(1,1)}
a
b
r
QD
QD
S = IB3
I = IB3
T = . . .
a ∈ L(s) gdw. s ∈ {(−,−,1)}
b ∈ L(s) gdw. s ∈ {(−,1,−)}
r ∈ L(s) gdw. s ∈ {(1,−,−)}
Netzlisten, also Schaltkreise auf dieser Abstraktionsebene,
haben keinen Initialzustand
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Computational Tree Logic (CTL) tlRevision: 1.37
13
klassische Version der CTL für Kripke Strukturen
Definition Syntax von CTL enthält alle p ∈ A , alle booleschen
Operatoren ∧,¬,∨,→, . . .und die temporalen Operatoren
EX,AX,EF,AF,EG,AG,E[· U ·] und A[· U ·].
Definition CTL Semantik s |= f (lese “ f gilt in s”) für Kripke
Struktur K = (S, I,T,L) istgenauso rekursiv definiert wie bei
CTL/HML wobei zusätzlich s |= p gdw. p ∈ L(s).
Beispiele zum2-Bit Zählermit Reset
AG(r → AX(a∧b))
AG EX(a∧b)
AG EF(a∧b)
AG AF(a∧b) unendlich oft a∧b
AG(a∧b∧ r → AX A[(a∨b) U (a∧b)])
(AG r) → AF(a∧b)
Definition es gilt f in K schreibe K |= f gdw. s |= f für alle
s ∈ I (generische Definition)
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Computation Tree tlRevision: 1.37
14
Alle Mögliche Abläufe werden in einem (unendlichen) Baum
dargestellt
CTL betrachtet die Verzweigungsstruktur (Branching) des
Computation Tree
und hat eine lokale Zustandssicht
von jedem betrachteten Zustand verzweigen neue Pfade
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Computation Tree AGp tlRevision: 1.37
15
p
p
p
p p
p
p
p p
ppp p p p
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Computation Tree AFp tlRevision: 1.37
16
p p
p p
p p
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Linear Temporal Logic (LTL) tlRevision: 1.37
17
Definition Syntax von LTL ist genauso wie die von CTL, nur dass
die temporalen Opera-toren keine Pfadquantoren besitzen, also aus
X,F,G und U bestehen.
Definition Semantik π |= f von LTL Formel f ist auf unendlichen
Pfaden π in K definiert:
π |= p gdw. p ∈ L(π(0))
π |= ¬g gdw. π 6|= g
π |= g∧h gdw. π |= g und π |= h
π |= Xg gdw. π1 |= g
π |= Fg gdw. πi |= g für ein i
π |= Gg gdw. πi |= g für alle i
π |= g U h gdw. es gibt ein i mit πi |= h und π j |= g für alle
j < i
Definition K |= f gdw. π |= f für alle unendlichen Pfade π in K
mit π(0) ∈ I
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Vergleich LTL und CTL tlRevision: 1.37
18
• LTL betrachtet jeweils genau einen möglichen linearen
Ablauf.
• damit macht (Gr)→F(a∧b) plötzlich Sinn! (Erster Teil
Annahme/Einschränkung)
• LTL ist kompositional (bez. synch. Produkt von
Kripke-Strukturen):
– K1 |= f1, K2 |= f2 ⇒ K1×K2 |= f1∧ f2
– K1 |= f → g, K2 |= f ⇒ K1×K2 |= g
Fakt CTL und LTL haben unterschiedliche
Ausdrucksmächtigkeit:
z.B. lässt sich AXEXp nicht in LTL ausdrücken, ebenso hat
AFAGp kein LTL Pendant
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
ACTL Formeln als LTL Formeln tlRevision: 1.37
19
[Clarke and Draghicescu’88]
ACTL ist Teilmenge von CTL ohne E Pfadquantor und Negation nur
vor p ∈ A .
Definition zu einer ACTL Formel f definiere f\A als die LTL
Formel, die aus f durchWegstreichen aller A Pfadquantoren
entsteht.
Definition f und g sind äquivalent gdw. K |= f ⇔ K |= g für
alle Kripke-Strukturen K.
( f und g können aus unterschiedlichen Logiken stammen)
Satz falls ACTL Formel f zu LTL Formel g äquivalent, dann auch
zu f\A.
Beweis K |= f Annahme⇔ ∀π[π |= g] Annahme⇔+s.u.
∀π[π |= f ] !⇔ ∀π[π |= f\A] Def.⇔ K |= f\A
(π immer initialisiert und in π |= f als Kripkestruktur
interpretiert)
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Syntaktisch Charakterisierte Teilmenge von LTL und CTL
tlRevision: 1.37
20
[M. Maidl’00]
Seien f und g bel. CTL bzw. LTL Formeln und p ∈ A .
Definition Jede Unterformel einer CTLdet Formel hat eine der
folgenden Formen:
p, f ∧g, AX f , AG f , (¬p∧ f )∨ (p∧g) oder A[(¬p∧ f ) U
(p∧g)]
Definition Jede Unterformel einer LTLdet Formel hat eine der
folgenden Formen:
p, f ∧g, X f , G f , (¬p∧ f )∨ (p∧g) oder (¬p∧ f ) U (p∧g)
Satz Schnittmenge von LTL und ACTL besteht aus LTLdet bzw.
CTLdet
Intuition CTL-Semantik bei CTLdet beschränkt sich auf Auswahl
genau eines Pfades
Hinweis A[ f U p] ≡ A[(¬p∧ f ) U (p∧1)] AFp ≡ A[1 U p]
⇒ eine nicht-deterministische Spezifikation birgt Gefahren der
Falsch-Interpretation
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
LTL und CTL Können nicht Zählen tlRevision: 1.37
21[P. Wolper’83]Spezifikation “jeden m-ten Schritt gilt p”
(zumindest)
Fakt für alle m > 1 gibt es weder eine CTL noch LTL Formel f
, mit
K |= f gdw. π(i) |= p für alle initialisierten Pfade π von K
und alle i = 0 mod m.
Problem p∧G(p ↔¬Xp) bedeutet “ genau jeden 2. Schritt gilt
p”
Lösungen
• modulo m Zähler ins Modell integrieren (Schwierigkeiten mit
Kompositionalität)
• Erweiterung der Logik
– ETL mit zusätzlichen Temporalen Operatoren definiert durch
Automaten . . .
– . . . bzw. Quantoren über atomaren Variablen (damit Zähler
in der Logik )
– reguläre Ausdrücke: ¬
(1; . . . ;1︸ ︷︷ ︸m−1
; p)∗;1; . . . ;1︸ ︷︷ ︸m−1
;¬p
bzw. (1; . . . ;1︸ ︷︷ ︸m−1
; p)ω
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Fairness tlRevision: 1.37
22
• Spezifikation mach oft nur Sinn unter Fairness-Annahmen
– z.B. Abstraktion des Schedulers: “jeder Prozess kommt
dran”
– z.B. eine Komponente muss unendlich oft am Zuge sein
– z.B. der Übertragungskanal produziert unendlich oft keinen
Fehler
• kein Problem in LTL: (GF f )→ G(r → Fa)
• Faire Kripke-Strukturen für CTL:
– zusätzliche Komponente F von fairen Zuständen
– ein Pfad π ist fair gdw. |{i | π(i) ∈ F}|= ∞
– betrachte nur noch faire Pfade
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
µ-Kalkül tlRevision: 1.37
23
• spezielle Form von Quantoren über Mengen von Zuständen
– quantifizierte Variablen V = {X ,Y, . . .}
– i.Allg. auch für Mengen und damit Logik zweiter Ordnung
• Fixpunkt-Logik: kleinste Fixpunkte spezifiziert durch µ und
größte durch ν
• Modaler µ-Kalkül als Erweiterung von HML bzw. CTL
νX [p∧ [ ]X ] ≡ AGp µX [q ∨ (p∧〈 〉X)] ≡ E[p U q]
νX [p∧ [ ] [ ]X ] entspricht “jeden 2. Schritt gilt p”
νX [p∧〈 〉µY [( f ∧X)∨ (p∧〈 〉Y )]] ≡ νX [p∧EXE[p U f ∧X ]] ≡ EGp
unter Fairness f
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz
-
Semantik µ-Kalkül tlRevision: 1.37
24
Auch wieder über Kripke Struktur K = (S, I,T,L).
Definition eine Belegung ρ über den Variablen V ist eine Abb.
ρ:V → IP(S)
Definition Semantik [[ f ]]ρ einer µ-Kalkül Formel f ist
rekursiv definiert als Expansion,also als Menge Zustände in denen
f für eine geg. Belegung ρ gilt:
[[p]]ρ = {s | p ∈ L(s)} [[X ]]ρ = ρ(X)
[[¬ f ]]ρ = S\[[ f ]]ρ [[ f ∧g]]ρ = [[ f ]]ρ∩ [[g]]ρµX [ f ]
=
T{A ⊆ S | [[ f ]]ρ[X 7→A] = A} νX [ f ] =
S{A ⊆ S | [[ f ]]ρ[X 7→A] = A}
mit ρ[A 7→ X ](Y ) ={
A X = Yρ(Y ) X 6= Y .
Definition K |= f gdw. I ⊆ [[ f ]]ρ für alle Belegungen ρ
Fakt µ-Kalkül subsumiert LTL und CTL.
Formale Grundlagen 3 – #342215 – SS 2007 – Armin Biere – JKU
Linz