Temporale Logiken:LTL und CTL
Thorsten Bruns
Seminar: Formale Spezifikation
2
Inhalt
• Motivation• Grundlagen der Logik
– Aussagen- und Prädikatenlogik– Entscheidbarkeit von Logiken
• Temporale Logiken– LTL– CTL– Anwendung: CTL Model Checking
• Zusammenfassung
3
Motivation
• Qualitätssicherung von Hard- und Software
• Lösungsalternativen– Testen– Beweise: Theorembeweise und Model Checker
• Model Checker– Prüfung von Eigenschaften reaktiver Systeme– Formale Spezifikation der Eigenschaften– Implementierung muss Spezifikation genügen
4
Aussagenlogik
• Untersuchung des Wahrheitswerts von Aussagen
• Syntax aussagenlogischer Formeln– p::= P|(p p)|(p p)|p|(p p)|(p p)
• Umformungsregeln– (F G) = (F G)– (F G) = (F G)– (F G) = ((F G) (F G))
5
Aussagenlogik
• Semantik:– Belegung: A : D {0,1}, D: atomare Formeln– Erweiterung der Belegung: Â : E {0,1}, ED– Für alle PD gilt: Â(P) = A(P)– Â(F G)=1, falls Â(F)=1 und Â(G) =1, sonst 0– Â(F)=1, falls Â(F)=0, sonst 0– Andere Operatoren ableitbar
• Definitionen: – passend, Modell (A ⊨ F), erfüllbar, gültig
6
Prädikatenlogik
• Erweiterung der Aussagenlogik um:– Quantoren, Variablen xi , Funktionssymbole fj
und Prädikatsymbole Pk mit i,j,k=1,2,3,...
• Termbildung aus Variablen und Funktionen– t ::= xi | f (t1,...,tn), i = 1,2,3,...
• Bildung prädikatenlogischer Formeln– F ::= (F F)|(F F)| F|(F F)|(F F)|
xF | xF | P(t1...tk)
– Unterscheidung: freie und gebundene Variablen
7
Prädikatenlogik - Semantik
• Struktur A=(UA, IA)– UA : Grundmenge, IA : Zuordnung
• Definition des Wertes eines Terms A(t):– t = x : A(t) = xA
– t = f (t1,...,tn) : A(t)=f A(A(t1),...,A(tn))
• Definition des Wahrheitswerts einer Formel F:– F=P(t1,...,tk): A(F)=1, falls (A(t1),...,A(tk)) PA, sonst 0– F= G : A(F)=1, falls A(G)=0, sonst 0– F=(G H): A(F)=1, falls A(G)=1 und A(H)=1, sonst 0– F=xG: A(F)=1, falls für alle dUA : A[x/d](G)=1, sonst 0– F=xG: A(F)=1, falls für ein dUA : A[x/d](G)=1, sonst 0
8
Entscheidbarkeit von Logiken
• Entscheidbarkeit: Es gibt einen Algorithmus, der in endlicher Zeit feststellt, ob eine Formel erfüllbar ist oder nicht
• Aussagenlogik: Belegungstabelle
• Prädikatenlogik: unentscheidbar– Strukturen mit unendlichen Mengen– Beweis: Rückführung auf das Postsche
Korrespondenzproblem
9
Inhalt - Temporale Logiken
• Erweiterung der Aussagen- oder der Prädikatenlogik
• Klassifikation temporaler Logiken
• Semantik verschiedener Zeitmodelle
• LTL und CTL– Syntax und Semantik– Anwendung: CTL Model Checking– Theoretische Aspekte
10
Erweiterung der Aussagen- oder Prädikatenlogik
• Gewünschte Ausdrucksstärke entscheidet
• Erweiterung um Zeitoperatoren:– Für die Zukunft– Für die Vergangenheit
• Bei der Programmverifikation nicht berücksichtigt
Formale Darstellung komplexer Zeitstrukturen
• Aussagen über zeitliche Veränderungen
• Wahrheitswert vom Zeitpunkt abhängig
11
Klassifikation temporaler Logiken
• Auf Aussagen- oder Prädikatenlogik basierend
• Lineares oder verzweigtes Zeitmodell
• Diskrete oder kontinuierliche Zeit
• Zeitpunkte oder Zeiträume
• Vergangenheit und/oder Zukunft
Bildung einer Vielzahl temporaler Logiken
12
Semantik von Zeitmodellen
• Modellierung diskreter Systeme erfordert diskrete Zeitmodellierung– Zeit als Menge von Zuständen S– Zeitliche Ordnung über den Zuständen RSS– Rahmen = (S, R)
• Lineare Zeitstruktur– Eindeutige Reihenfolge der Zustände
• Verzweigte Zeitstruktur– Baumordnung über den Zuständen
13
LTL
• Linear temporal logic lineare Zeitstruktur
• Annahmen: diskrete Zeit, Startzustand, unendliche Zukunft
• Syntax:– p::= P | (p p) | p | Xp | Fp | Gp | (p U p)
• Umformungen– Fp = (true U p)– Gp = Fp
14
LTL - Semantik
• Erweiterung des Rahmens (S,R) um eine Auswertungsfunktion L:S (P)– Zeitstruktur M=(S,R,L)
• Aussagen sind auf (Teil-)Pfaden definiert– M, ⊨ p mit =(s0,s1,...)
• Semantik von LTL: ⊨ P gdw. P L(s0) ⊨ p gdw. ⊭ p ⊨ (p q) gdw. ⊨ p und ⊨ q
15
LTL - Semantik
⊨ Xp gdw. 1 ⊨ p
⊨ Fp gdw. j 0 für das gilt: j ⊨ p
⊨ Gp gdw. j 0 gilt j ⊨ p
⊨ (p U q) gdw. j 0 für das gilt: j ⊨ q und 0 k < j gilt: k ⊨ p
Xp
Fp
Gp
(p U q)
16
CTL
• Computation tree logic verzweigte Zeitstruktur
• Modelle lassen sich als unendlicher (Berechnungs-)Baum darstellen
• Syntaktisch eng mit LTL verbunden– Restriktion: nur Paare temporaler Konnektoren
• Syntax:– p::= P | (p p) | p | AXp | EXp | AFp | EFp |
AGp | EGp | A(p U p) | E(p U p)
17
CTL
• Umformungen:– AFp = A(true U p)– EFp = E(true U p)– AGp = E(true U p)– EGp = A(true U p)
• Semantik– Zeitstruktur M=(S,R,L)– Aussagen auf Zuständen definiert
18
CTL - Semantik
– s0 ⊨ P gdw. P L(s0)
– s0 ⊨ p gdw. s0 ⊭ p
– s0 ⊨ (p q) gdw. s0 ⊨ p und s0 ⊨ q
– s0 ⊨ AXp gdw. für alle Pfade (s0,s1,...) gilt: s1 ⊨ p
– s0 ⊨ EXp gdw. für mindestens einen Pfad (s0,s1,...) gilt:s1 ⊨ p
– s0 ⊨ A(p U q) gdw. für alle Pfade (s0,s1,...) gilt: j 0 für das gilt: j ⊨ q und 0 k < j gilt: k ⊨ p
– s0 ⊨ E(p U q) gdw. für mind. einen Pfad (s0,s1,...) gilt:j 0 für das gilt: j ⊨ q und 0 k < j gilt: k ⊨ p
19
CTL - Semantik
AXp EXp
A(p U q) E(p U q)
20
CTL - Semantik
AFp EFp
AGp EGp
21
CTL Model Checking
• Gegeben:– Spezifikation einer Eigenschaft in CTL– Ein Modell eines Systems
• Gesucht:– Erfüllt das Modell die Spezifikation
• Lösung: Markierungsalgorithmus– Markierung aller Zuständen, in denen eine
Teilformel wahr ist
22
Markierungsalgorithmus
• Eingabe: Modell und Formel in CTL• Ausgabe: Zustände, in denen die Formel wahr ist• Basis: Minimale Menge an Operatoren:
– false, , , EX, AF, E( U )
• Vorgehen:– Formel den Operatoren entsprechend umformen– Zerlegung der Formel in die Menge aller Teilformeln– Sortierung der Teilformeln der Länge nach– Anwendung eines der nachfolgenden Schritte auf jede
Teilformel beginnend mit der kürzesten
23
Markierungsalgorithmus
• Für jede Teilformel führe einen der folgenden Schritte aus:– false: Markiere keinen Zustand.
– p: Markiere alle Zustände, für die gilt: pL(s). p: Markiere alle Zustände, die nicht mit p markiert sind.
– (p q): Markiere alle Zustände, die mit p und mit q markiert sind.
– AFp: Markiere zuerst alle Zustände, die mit p markiert sind. Weiter markiere alle, deren direkte Nachfolger alle mit AFp markiert sind bis keine weiteren Änderungen mehr erfolgen.
– EXp: Markiere alle Zustände, die mindestens einen direkten Nachfolger besitzen, der bereits mit p markiert ist.
– E(p U q): Markiere zuerst alle Zustände, die mit q markiert sind. Weiter markiere alle, die mit p markiert sind und mindestens einen direkten Nachfolger besitzen, der mit E(p U q) markiert ist.
24
Anwendungsbeispiel
• Beispielsystem:– Zwei Prozesse benötigen eine Ressource
• Vorgegebene Eigenschaften der Prozesse:– Kein gemeinsamer Zugriff auf Ressource
AG (c1 c2)– Keiner soll nach Antrag auf Zugriff ewig warten
AG(ti AFci), i = 1,2– Jeder soll Zugriff beantragen können
AG(ni EXti), i = 1,2– Keine vorgegebene Reihenfolge
n1n2
n1c2
n1t2
t1c2
t1t2
t1n2
t1t2
c1t2
c1n2
s0
s8
s5
s3
s4
s2 s6
s7
s1
25
Anwendungsbeispiel
• Umformung:AG(t1 AFc1)
= AG(t1 AFc1)
= E(true U (t1 AFc1))
= E(true U (t1 AFc1))
= E(false U (t1 AFc1))
• Zerlegung in Teilformeln und Sortieren: c1, t1, false, false, AFc1, AFc1, (t1 AFc1),
E(false U (t1 AFc1)),E(false U (t1 AFc1))
1a.: c1Anwendungsbeispiel:
1b.: t1
1b.: t11b.: t1
1b.: t1
1a.: c1
1a.: c1
4a.: AFc1
4a.: AFc1
4b.: AFc14e.: AFc1
4c.: AFc1
4d.: AFc1
s1
s3
s4
s5
s8 s6
s7
s2
s0
5.: AFc1
5.: AFc1
5.: AFc1
1b.: t1
8.: p
8.: p
8.: p
8.: p
8.: p 8.: p
8.: p
8.: p8.: p
26
n1n2
t1n2 n1t2
c1n2 t1t2
c1t2
t1t2 n1c2
t1c2
2.: false3.: false4.: AFc15.: AFc16.: (t1 AFc1)7.: p = E(false U(t1 AFc1))8.: p = E(false U(t1 AFc1))
27
Fixpunktcharakterisierung
• temporale Operatoren als Fixpunkte berechnen – Fixpunkt: f(p) = p– Monotone Funktionale besitzen einen größten
und einen kleinsten Fixpunkt. [Ta55]– Monotone Funktion: x y f(x) f(y)– AFp = p AX AFp (kleinster Fixpunkt)– EGp = p EX EGp (größter Fixpunkt)– E(p U q) = q (p EX E(p U q))– Bei n Zuständen maximal n Iterationen
Markierungsalgorithmus terminiert immer
28
Theoretische Aspekte
• Entscheidbarkeit– LTL und CTL basieren auf der Aussagenlogik
=> beide sind entscheidbar
• Ausdrucksstärke– LTL und CTL sind nicht vergleichbar, die
Ausdrucksmöglichkeiten bilden nur eine Schnittmenge
• Komplexität– Markierungsalgorithmus: polynomielle Laufzeit
29
Zusammenfassung
• Temporale Logiken LTL und CTL– Aussagen über zeitliche Veränderungen – Verwendung unterschiedlicher Zeitmodelle– Unterschiedliche Ausdrucksmöglichkeiten
• Model Checking– System als Modell mit endlich vielen
Zuständen – Eigenschaft in temporaler Logik spezifiziert– Automatisierte Prüfung