290 likes | 459 Views
Seminar: Formale Spezifikation. Temporale Logiken: LTL und CTL. Thorsten Bruns. Inhalt. Motivation Grundlagen der Logik Aussagen- und Prädikatenlogik Entscheidbarkeit von Logiken Temporale Logiken LTL CTL Anwendung: CTL Model Checking Zusammenfassung. Motivation.
E N D
Seminar: Formale Spezifikation Temporale Logiken:LTL und CTL Thorsten Bruns
Inhalt • Motivation • Grundlagen der Logik • Aussagen- und Prädikatenlogik • Entscheidbarkeit von Logiken • Temporale Logiken • LTL • CTL • Anwendung: CTL Model Checking • Zusammenfassung
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
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))
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
Prädikatenlogik • Erweiterung der Aussagenlogik um: • Quantoren, Variablen xi , Funktionssymbole fj und Prädikatsymbole Pkmit 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 ::= (FF)|(FF)| F|(FF)|(FF)|xF | xF | P(t1...tk) • Unterscheidung: freie und gebundene Variablen
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
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
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
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
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
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
LTL • Linear temporal logic lineare Zeitstruktur • Annahmen: diskrete Zeit, Startzustand, unendliche Zukunft • Syntax: • p::= P | (pp) | p | Xp | Fp | Gp | (p U p) • Umformungen • Fp = (true U p) • Gp = Fp
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
LTL - Semantik • ⊨ Xp gdw. 1⊨ p • ⊨ Fp gdw. j 0 für das gilt:j⊨ p • ⊨ Gp gdw. j 0 giltj⊨ 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)
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 | (pp) | p | AXp | EXp | AFp | EFp |AGp | EGp | A(p U p) | E(p U p)
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
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
CTL - Semantik AXp EXp A(p U q) E(p U q)
CTL - Semantik AFp EFp AGp EGp
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
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
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. • (pq): 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.
Anwendungsbeispiel n1n2 t1n2 n1t2 c1n2 t1t2 t1t2 n1c2 t1c2 c1t2 s0 s5 s1 s8 s3 s2 s6 s4 s7 • Beispielsystem: • Zwei Prozesse benötigen eine Ressource • Vorgegebene Eigenschaften der Prozesse: • Kein gemeinsamer Zugriff auf RessourceAG (c1 c2) • Keiner soll nach Antrag auf Zugriff ewig warten AG(ti AFci), i = 1,2 • Jeder soll Zugriff beantragen könnenAG(ni EXti), i = 1,2 • Keine vorgegebene Reihenfolge
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))
Anwendungsbeispiel: 5.: AFc1 8.: p 1b.: t1 5.: AFc1 8.: p 8.: p 1b.: t1 1a.: c1 1b.: t1 5.: AFc1 4a.: AFc1 8.: p 8.: p 8.: p 8.: p 1a.: c1 1b.: t1 4a.: AFc1 8.: p 8.: p 8.: p = E(false U(t1 AFc1)) 7.: p = E(false U(t1 AFc1)) 6.: (t1 AFc1) 5.: AFc1 3.: false 4.: AFc1 2.: false 1b.: t1 1a.: c1 s0 n1n2 s1 s5 4c.: AFc1 t1n2 n1t2 s2 s3 s8 s6 4e.: AFc1 4b.: AFc1 n1c2 c1n2 t1t2 t1t2 s7 s4 4d.: AFc1 c1t2 t1c2 26
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
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
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