Kapitel 3. Temporale Logik Intention bei der Modellierung: • zeitliche Reihenfolge von Zuständen • keine Zeitdauer, Arithmetik • Spezifikation von Programmeigenschaften und PS-Semantik [Pnueli 1977] Inhalt des Kapitels: – Modellierung nebenläufiger Programme als Transitionssysteme – Logiken LTL, CTL, CTL* zur Spezifikation von Programmeigenschaften – Beweisen und Modellprüfen Vertiefung: Stammvorlesung CAV Vorlesung Analyse von Programmen durch ,,Model Checking”, SS2000 (Harald Ganzinger, Andreas Podelski) Literatur: E.A. Emerson: Temporal and Modal Logic. Handbook of Theoretical Computer Science Science, Kap. 16, Elsevier 1990 E.M. Clarke, B.-H. Schlingloff: Model Checking (erscheint demnächst, Kopie in der Bibliothek) E.M. Clarke, O. Grumberg, D. Long: Verification Tools for Finite-State Concurrent Systems, LNCS 803, 124–175, 1994 1 Beispielprogramm 2 3 3.1 Modellierung von nebenläufiger Berechnung P = P1kP2k . . . kPk • (faire) nichtdeterministische Verzahnung elementarer Schritte der Pj P1P1P2P1P1P1P2P2 . . . bei k = 2 • unendliche Rechnungen: die Bedeutung eines Programms ist die Folge seiner Kommunikationen (Reaktionen) mit der Umgebung • globaler Zustandsraum S (alle Pj operieren auf gemeinsamen globalen Variablen v1, . . . , vm): Qk Qm S= i=1 Loc(P j) × j=1 Dvj Marken in P j Wertebereich (‘locations‘) von vj • brauchen Logiken, die über Mengen (insbesondere Bäume) von Zustandsfolgen Aussagen zu formalisieren gestatten 4 3.2 Propositionale lineare TL (PLTL) 5 Pragmatik: Formalisierung von Eigenschaften von Programmen mit endlichen Zustandsräumen (Markenmengen immer endlich, aber Variablenbereiche müssen ggf. abstrahiert werden) Syntax: p, q ::= P ; |p∧q . . . entsprechend die anderen Junktoren > = p ∧ ¬p ⊥ = p ∨ ¬p (prop. Var.) (Konj.) | ¬p (Neg.) | Xp (nexttime) |pU q Abkürzungen: p ∨ q = ¬(¬p ∧ ¬q) P ∈Π (until) Weitere Abkürzungen 6 F p =df > U p (irgendwann) G p =df ¬F ¬p (immer) F∞ p =df G F p (∞ oft) G∞ p =df F G p (fast überall) p B q =df ¬((¬p) U q) Klammereinsparung gemäß Präzedenz F , G , X , U , B, F∞ , G∞ ¬ ∧ ∨ ⊃ ≡ (vorher) 7 Formelbeispiele m ^ k=1 m ^ 8 G ¬(atl3 ∧ atm3) (Sicherheit) G (atl1 ⊃ F atl3) (Lebendigkeit) atl0 ∧ ϕ ⊃ F (atlh ∧ ψ) (totale Korrektheit) request B grant (keine ungefragte Reaktion) (G∞ enabledk ⊃ F∞ executedk ) (schwache Fairness) (F∞ enabledk ⊃ F∞ executedk ) (starke Fairness) k=1 Semantik Definition: lineare Zeitstruktur M = (S, x, L), mit • [ S = (S, <) isomorph zu (N, <) ]1 • x : N → S (Zustandsfolge) • L : S → 2Π (Markierungsfunktion) (bzw. L : Π → 2S bzw. L : S × Π → {0, 1} bzw. L : S → (Π → {0, 1}) [L(s)= ˆ Menge der in s wahren Propositionen] Notation: x = (s0, s1, . . . ) = (x(0), x(1), . . . ) = (x0, x1, . . . ) (voller) Pfad, Berechnungsfolge 1 kann implizit bleiben 9 Semantik II Gültigkeit einer Formel p: Wir schreiben dann M, x |= p bzw. x |= p. Nachfolgend sei xl = (xl, xl+1, . . . ) der Suffix von x ab l. x x x x x |= |= |= |= |= P p∧q ¬p Xp (p U q) ⇔df ⇔df ⇔df ⇔df ⇔df P ∈ L(x0) (für P ∈ Π) x |= p und x |= q nicht x |= p x1 |= p es gibt j ∈ N, so dass xj |= q und ∀k < j : xk |= p NB: x |= F q gdw. x |= > U q gdw. es gibt j ∈ N, so dass xj |= q 1 Quantordualitäten 1 Tautologien 1 Tautologien II 1 Tautologien III 1 Erweiterung zu LTL erster Stufe (FOLTL) Hier werden normale Signaturen Σ = (Ω, Π) für Logik erster Stufe zugrundegelegt, wobei die Symbole zusätzlich in lokale und globale Symbole unterteilt sind. Syntax: t ::= | p, q ::= | | | | | s; Xt A; p∧q ¬p pU q Xp ∃yp s ∈ TΣ(X) (normale Terme) (erweiterte Terme) A Σ-Atom (einschl. Gleich.) über erweit. Termen + übliche Abkürzungen (einschl. ∀yp = ¬∃y¬p) 1 Semantik Lineare Zeitstrukturen erster Stufe: M = (S, x, L), wobei jetzt L : S → Σ − Alg (d.h. L(s) ist Σ−Algebra) mit • UL(s) = UL(s), ∀s, s0 ∈ S (gleiche Universen) • oL(s) = oL(s0), für alle s, s0 ∈ S wenn o ∈ Π ∪ Ω globales Symbol häufig: lokal sind höchstens 0-stellige Prädikate (und freie Variablen) Die Auswertung von Termen und Formeln über einer gegebenen Zeitstruktur und Variablenbelegung (und damit die Definition von Gültigkeit) ist, wie man’s sich denkt definiert (die kanonische Kombination der Semantiken von PLTL und PL1). Eine Möglichkeit, die von bestimmten Konventionen über die Einteilung in lokale und globale Symbole ausgeht, ist auf der nächsten Folie Aus dem Emerson-Artikel kopiert. 1 Semantik FOLTL 1 FOLTL ist nicht handhabbar Satz 3.1 Die gültigen Formeln von FOLTL sind nicht rekursiv aufzählbar. Beweis. Die Definitionen von Null 0, Nachfolgerfunktion s, Addition und Multiplikation aus der Peano-Arithmetik P A, zusammen mit Φ ≡ ∀u(z ≈ 0 ∧ G (z ≈ u ⊃ X (z ≈ s(u))) wobei die zusätzliche Konstante z ( Zustand“) das einzige lokale Symbol der Signatur sei, ” axiomatisiert die natürlichen Zahlen. D.h. gegeben ein Pfad x, dann ist diese Formel wahr für x, genau dann wenn an jeder Stelle xi in x die Konstante z den Wert si(0) hat. Nun kann man zusätzlich durch Ψ ≡ ∀u F (u ≈ z) spezifizieren, dass es in Modellen keine anderen Elemente als natürliche Zahlen gibt. Somit wäre für eine Formel p in PL1 über der Signatur ΣP A (ohne z) x |= (P A ∧ Φ ∧ Ψ ⊃ p) gdw. N |= p. 2 1 3.3 CTL und CTL* 1 Syntax Zustandsformeln pz , qz ::= | | | Pfadformeln (CTL*) p, q ::= | | | Pfadformeln (CTL) p, q ::= | | | P; P ∈ Π (pz ∧ qz ) | ¬pz Ep Ap (prop. Var.) (Boolesche Kombinationen) (es existiert Pfad) (alle Pfade) pz Xp pU q (p ∧ q) | ¬p (Zustandsformel) (nexttime) (until) (Boolesche Kombinationen) pz X pz pz U qz G pz (Zustandsformel) (nexttime) (until) (globally) LTL als Fragment von CTL* CTL*-Formeln der Form Ap wobei p eine LTL-Formel, sind das LTL-Fragment von CTL*. 2 Ausdruckskraft: LTL vs. CTL vs CTL* Sicherheit: AG p Lebendigkeit: AG p ⊃ AF q Fairness: (in CTL) (in CTL) A (F∞ p ⊃ F∞ q) ≡ A (G F p ⊃ G F q) (in CTL* \ CTL) AG (EF p) (in CTL \ LTL) A (FG p) (in LTL \ CTL) Fazit: LTL und CTL sind unvergleichbare, echte Fragmente von CTL*. (Diesen Nachweis muss man für die angegebenen Formeln natürlich semantisch führen, d.h. man muß zeigen, dass die durch die jeweilige Formel spezifizierte Zustandsmenge nicht in der anderen Logik definierbar ist.) 2 Semantik der wesentlichen CTL-Pfadquantoren 2 Baumartige Strukturen zur Semantik von CTL(∗) Baumartige Zeitstrukturen sind Tripel M = (S, R, L), mit • S Zustandmenge • R ⊆ S × S totale Relation (d.h. ∀s ∈ S∃s0 ∈ S : R(s, s0)) • L : S → 2Π (wie früher: L(s)= ˆ Menge der in s wahren Prop.) o.B.d.A: Graph R von M ein Baum (Aufrollen von M zu Baum M̂ ). M und M̂ können durch CTL*-Formeln nicht unterschieden werden. (→ Übung) 2 Aufrollen am Beispiel 2 Interpretation von CTL(∗)-Formeln Sei M eine Zeitstruktur M = (S, R, L). (voller) Pfad in M: Folge x = (s0, s1, . . . ), so dass si ∈ S und für alle 0 ≤ i ist (si, si+1) ∈ R. Wie früher ist die Notation für Suffixe: xi = (si, si+1, . . . ) Zustandsformeln erhalten einen Wahrheitswert bzgl. M, s Pfadformeln: erhalten einen Wahrheitswert bzgl. M, x 2 Berechnung der Wahrheitswerte 2 Multiprozess-Zeitstrukturen (Transitionssysteme) Motiv: Definition konkreterer semantischer Strukturen für nebenläufige Programme, für die Fairnessbedingungen leicht ausgedrückt werden können (theoretisch nicht essentiell). formal: M = (S, R, L), wobei S, L wie oben, R = {R1, . . . , Rk }, mit Rj ⊆ S × S so dass R = ∪iRi total Pfade sind dann Folgen x = (s0, d1, s1, d2, s2, . . . ), wobei sj ∈ S, di ∈ {1, . . . , k} und (si, si+1) ∈ Rdi+1 ; anschaulich d d d 1 2 3 s0 −→ s1 −→ s2 −→ ... spezielle Propositionen enabledi, 1 ≤ i ≤ k, existieren in Π, definiert durch M, s0 |= enabledi ⇔ s0 ∈ domRi = {s ∈ S | ∃t : (s, t) ∈ Ri} . spezielle Pfadformeln executedi, 1 ≤ i ≤ k gibt es, definiert durch M, x |= executedj ⇔ d1 = j (d.h. der erste Schritt in x ist ein Schritt von Prozess j). 2 Abstrakte Modelle nebenläufiger Berechnung Programme sind Tripel (M, ϕST ART , Φ), wobei • M eine Multiprozess-Zeitstruktur • ϕST ART aussagenlogischer Ausdruck, mit der Intention, dass {s | M, s |= ϕST ART } die Menge der Startzustände angibt • Φ eine LTL-Formel, genannt Fairnessbedingung Beispiele für Fairnessformeln Vk • unbedingte Fairness: Φ =V i=1 F∞ executedi • schwache Fairness: Φ V= i (G∞ enabledi ⊃ F∞ executedi) • starke Fairness: Φ = i (F∞ enabledi ⊃ F∞ executedi) 2 Spezifikation von Programmeigenschaften Definition: (M, ϕST ART , Φ) |= p, falls im linearen Fall (p in LTL): ∀ Pfade x in M : M, x |= ϕST ART und M, x |= Φ ⇒ M, x |= p d.h. M |= ϕST ART ∧ Φ ⊃ p im verzweigten Fall (p Zustandsformel in CTL*): ∀s ∈ S : M, s |= ϕST ART ⊃ pφ wobei pφ aus p durch Relativierung A q 7→ A (Φ ⊃ q) E q 7→ E (Φ ∧ q) der Quantoren auf faire Pfade (die Φ erfüllen) entstehe. 2 3.4 Modellprüfen für CTL(∗) Problemstellung: effizientes Entscheiden von ? M, s0 |= p, für M = (S, R, L) eine endliche Zeitstruktur, p eine CTL(∗)-Zustandsformel und s0 ein Zustand in S (Anfangszustand). NB: Den verfeinerten Fall der Überprüfung von (M, ϕST ART , Φ) |= p, bei Transitionssystemen kann man mit dem oben Ausgeführten auf dieses einfachere Problem reduzieren. 3 Reduzierte Definition von CTL Wir können von folgender reduzierter CTL-Syntax ausgeben, in der es nur noch Zustandsformeln gibt: p, q ::= P ∈ Π | ¬p | p ∧ q | E (p U q) | EX p | EG p Dann lassen sich die anderen Formeln wie folgt ableiten Ap = p (wenn p eine aussagenlog. Formel) Ep = p (wenn p eine aussagenlog. Formel) EF P = E (> U p) AX p = ¬EX ¬p AG p = ¬EF ¬p AF p = ¬EG ¬p A (p U q) = ¬E (¬q U (¬p ∧ ¬q)) ∧ ¬EG ¬q 3 Was ist Modellprüfen? Nachfolgend als vorgegeben betrachtet sei eine Zeitstruktur M = (S, R, L), mit |S| < ∞. Wir identifizieren jede Zustandsformel p mit der Menge [[p]] = {s ∈ S | M, s |= p} ⊆ 2S der Zustände, in denen p erfüllt ist. Modellprüfen heißt nun, diese Extension [[p]] von p bei vorgegebenem endlichem M auszurechnen. 3 Gemischte CTL-Formeln In gemischten Formeln sind anstelle von Zustandsformeln auch explizite Zustandsmengen Z ⊆ S erlaubt. Die Extension gemischter Formeln ist wie folgt definiert: für Z ⊆ S [[Z]] = Z, [[P ]] = {s | P ∈ L(s)}, für P ∈ Π [[¬p]] = S \ [[p]] [[p ∧ q]] = [[p]] ∩ [[q]] [[EX p]] = {s | ∃ s0 : R(s, s0) & s0 ∈ [[p]]} [[E (p U q)]] = {s0 | ∃Pfad (s0, s1, s2, . . . ) ∃j ≥ 0 : sj ∈ [[q]] und ∀ 0 ≤ i < j : si ∈ [[p]] } [[EG p]] = {s0 | ∃Pfad (s0, s1, s2, . . . ) ∀j ≥ 0 : sj ∈ [[p]] Nachfolgend identifizieren wir p mit [[p]]. 3 Aus der Fixpunkttheorie (Wiederholung) Satz 3.2 Sei |S| < ∞ und τ : 2S → 2S monoton. Dann (i) (ii) (iii) (iv) (v) (vi) τ i(∅) ⊆ τ i+1(∅) , ∀i ∈ N i+1 τ i(S) ⊇ τ T T(S) , ∀i ∈ N τ (Si Pi) = Si τ (Pi), f.a. Ketten P0 ⊇ P1 ⊇ . . . , Pi ⊆ S τ ( i PSi) = i τ (Pi), f.a. Ketten P0 ⊆ P1 ⊆ . . . S ∞ n0 µτ = T i=0 τ i(∅) = Ti=0 τ i(∅) = τ n0 (∅), für geeignetes n0 ≤ |S| m0 i ∞ ντ = i=0 τ i(S) = i=0 τ (S) = τ m0 (S), für geeignetes m0 ≤ |S| NB: τ : 2S → 2S nennt man auch Prädikatentransformer 3 Fixpunktcharakterisierung der rekursiven“ CTL-Operatoren ” Satz 3.3 E (p U q) = µ Z . q ∨ (p ∧ EX Z) | {z } =df µ τ mit τ : Z 7→ q ∨ (p ∧ EX Z) EG p = νZ. p ∧ EX Z wobei die vorkommenden Prädikatentransformer monoton sind. Die abgeleiteten Operatoren lassen sich dann entsprechend charakterisieren, z.B. EF p = E (> U p) = µZ. p ∨ (> ∧ EX Z) = µZ. p ∨ EX Z . 3 Beweisskizze für EG Lemma 3.4 τ (Z) = p ∧ EX Z ist monoton. Lemma 3.5 Falls τ (Z) = p ∧ EX Z, τ m0 (S) = T∞ i=0 τ i (S), s ∈ τ m0 (S), dann s |= p & ∃s0 : (s, s0) ∈ R & s0 ∈ τ m0 (S) Lemma 3.6 EG p ist Fixpunkt von τ (Z) = p ∧ EX Z Lemma 3.7 EG p = νZ. p ∧ EX Z 3 Beweisskizze für EU Lemma 3.8 τ (Z) = q ∨ (p ∧ EX Z) ist monoton. Lemma 3.9 E (p U q) ist Fixpunkt von τ (Z) = q ∨ (p ∧ EX Z) Lemma 3.10 E (p U q) = µZ.q ∨ (p ∧ EX Z) 3 Programmierung der Fixpunktiteration 3 Berechnung von E (p U q) im Beispiel 3 Explizites Modellprüfen [[Z]] =Z [[Q]] ={s | Q ∈ L(s)} ,Q ∈ Π [[p ∧ q]] =[[p]] ∩ [[q]] [[¬p]] =S \ [[p]] [[EX p]] =R−1([[p]]) [[AX p]] =S \ (R−1(S \ [[p]])) [[EF p]] =µZ.[[p]] ∪ R−1(Z) [[EG p]] =νZ.[[p]] ∩ R−1(Z) [[E (p U q)]] =µZ.[[q]] ∪ ([[p]] ∩ R−1(Z)) Satz 3.11 Explizites Modellprüfen ist möglich in O(|M | ∗ |p|) Problem: M in der Praxis zu groß! 4 Geordnete, binäre Entscheidungsdiagramme Engl: Ordered Binary Decision Diagram (OBDD) • speicherökonomische Darstellung vieler“ Boolscher Funktionen ” • kanonische Repräsentation (⇒ Äquivalenztest in 0(1)) • totale Variablenordnung • Erzeugung durch Reduktionstransformationen • Eliminierung duplizierter Blätter • Eliminierung duplizierter innerer Knoten • Eliminierung redundanter Tests 4 Beispiel: Ein Entscheidungsbaum 4 Beispiel als kleines Entscheidungsdiagramm 4 Beispiel als großes Entscheidungsdiagramm Die Variablenordnung macht den Unterschied. 4 Implementierung von OBDDs Hashtabelle mit Einträgen (x, u0, u1) für Knoten mit Variable x und Zeigern u0 und u1 zu Knoten oder Konstanten 0 oder 1 Implementierung der Reduktionsregeln: nk(x, u0, u1) = u (neuer Knoten) erzeugt Knoten (x, u0, u1) und gibt Zeiger u zurück: • Falls u0 = u1: u = u0 • Falls (x, u0, u1) schon in Tabelle: u = Position in Tabelle • Sonst: erzeuge neuen Eintrag (x, u0, u1), u = dessen Position 4 Grundoperationen auf OBDDs f |xi←b(x1, . . . , xn) =df f (x1, xi−1, b, xi+1, . . . , xn) u = (x, u0, u1) Wurzel von OBDD für f • Allgemein: maximal ein Tiefendurchlauf ; linear in Größe des OBDD für f • Fall xi < x: f unabhängig von xi ; u auch OBDD für f |xi←b(x1, . . . , xn) • Fall x = xi: ; ub OBDD für f |xi←b(x1, . . . , xn) Shannon-Expansion: f = (¬x ∧ f |x←0) ∨ (x ∧ f |x←1) 4 Boolesche Operationen auf OBDDs ∗ binäre Boolesche Operation Es gilt: (f ∗ f 0)|x←b = f |x←b ∗ f 0|x←b Berechnung von OBDD für f ∗ f 0: Seien u = (x, u0, u1) Wurzel von OBDD für f und u0 = (x0, u00, u01) Wurzel von OBDD für f 0. Damit: • u, u0 Blätter ⇒ f ∗ f 0 = Wert(u) ∗ Wert(u0) • x = x0 ⇒ f ∗ f 0 = (¬x ∧ (f |x←0 ∗ f 0|x←0)) ∨ (x ∧ (f |x←1 ∗ f 0|x←1)) (Rekursion) u ∗ u0 = nk(x, u0 ∗ u00, u1 ∗ u01) • x < x0 ⇒ f ∗ f 0 = (¬x ∧ (f |x←0 ∗ f 0)) ∨ (x ∧ (f |x←1 ∗ f 0)) u ∗ u0 = nk(x, u0 ∗ u0, u1 ∗ u0) (auch für u0 Blatt) • x0 < x analog 4 Optimierung der OBDD-Operationen • Caching von Zwischenergebnissen • Algebraische Gesetze anwenden x∧0=0 x∧1=x x∧x=x .. 4 Repräsentation von Relationen mit OBDDs • falls R ⊆ {0, 1}n, dann ist ihre charakteristische Funktion fR: fR(x1, . . . , xn) = 1 ⇔ R(x1, . . . , xn) • falls R ⊆ Dn, |D| = 2m • kodiere D durch bijektive Abbildung Φ : D → {0, 1}m • repräsentiere R0 ⊆ {0, 1}n∗m mit R0(x1, . . . , xn) = R(Φ−1(x1), . . . , Φ−1(xn)), als OBDD 4 Produkte von Relationen • Produkte von Relationen sind wichtig (z.B. für EX ) • logisch: ∃~v (f (. . . ~v . . . ) ∧ g(. . . ~v . . . )) ~v Vektor Boolescher Variablen • spezielle Funktion zur OBDD-Berechnung lohnend vermeidet exponentielles Aufblähen durch Fallunterscheidung bzgl. ~v 5 Berechnung von Produkten von Relationen 5 Symbolisches Modellprüfen Idee: repräsentiere Zeitstruktur M als OBDD berechne die Extensionen der CTL-Formeln als Operationen auf den OBDDs Repräsentation: Sei |S| = 2m R⊆S×S ; OBDD für boolesche Funktion R(v, v 0) 0 mit v = v1, . . . , vm und v 0 = v10 , . . . , vm L : S → 2Π (∼ = Π → 2S ) ; OBDD für boolesche Funktion P (v) für jedes P ∈ Π Z⊆S ; OBDD für boolesche Funktion Z(v) bzw. Z(v 0) 5 Berechnung der Extension Check : p ∈ CT L −→ [[p]] ∈ OBDD • Propositionale Variable P : Check(P ) = P (v) • Boolesche Verknüpfungen: gleiche Verknüpfung auf OBDD • Check(EX p) = CheckEX (Check(p)), mit CheckEX (Z(v)) = ∃v 0[R(v, v 0) ∧ Z(v 0)] Z(v) 7→ Z(v 0): OBDD Kopieren mit Umbenennen der Variablen • Check(E (p U q)) = CheckEU (Check(p), Check(q)) mit CheckEU (Zp(v), Zq (v)) = µZ(v). (Zq (v) ∨ (Zp(v) ∧ CheckEX (Z(v)))) • Check(EG p) = CheckEG (Check(p)) mit CheckEG (Zp(v)) = νZ(v). (Zp(v) ∧ CheckEX (Z(v))) 5 Berechnung von Fixpunkten • Fixpunktiteration für EU : τ (Z(v)) = Zq (v) ∨ (Zp(v) ∧ CheckEX (Z(v)))) Anfangen mit ∅ = ˆ 0(v) = τ 0(0(v)) 0(v): m-stellige 0-Funktion; repräsentiert ∅ ⊆ S τ 1(0(v)) = Zq (v) ∨ (Zp(v) ∧ CheckEX (0(v)))) τ 2(0(v)) = Zq (v) ∨ (Zp(v) ∧ CheckEX (τ (0(v)))) .. • Termination: wenn τ i(0(v)) = τ i+1(0(v)); Test in O(1) wg. Kanonizität der OBDDs. • Fixpunktiteration für EG : τ (Z(v)) = (Zp(v) ∧ CheckEX (Z(v))) Anfangen mit S = ˆ 1(v) = τ 0(1(v)) 1(v) repräsentiert S sonst wie EU 5 Behandlung von Fairnessbedingungen Problem: Fairness nicht in CTL ausdrückbar, also muß ∞-oft“ auf der Metaebene behan” delt werden Methode: Fairnessbedingungen H = {h1, . . . , hk }, hi CTL-Formeln, und Beschränkung auf faire Pfade x, wobei x fair ⇔df jedes hi ist ∞-oft auf x erfüllt. Beispiel: h = (AF enabled → AF executed) Damit: Ersetze Check[EX | EU | EG ] durch CheckFair[EX | EU | EG ], wie unten angegeben 5 Behandlung von Fairnessbedingungen • CheckFairEG (f (v)) = νZ(v). [f (v) ∧ k ^ j=1 CheckEX (CheckEU (f (v), Z(v) ∧ Check(hj )))] | {z } = 0 µZ (v).[... ,Z(v), Z 0 (v),... ] ⇒ geschachtelte Fixpunkte ⇒ modaler µ-Kalkül Erläuterung: wir wollen die größte Menge Z ⊆ S, so dass 1. alle s ∈ Z erfüllen f 2. ∀hj ∈ H ∀s ∈ Z gibt es einen Pfad s = s0, s1, . . . , sn = s0, n ≥ 1, so dass s0 ∈ Z und s’ erfüllt hj und alle si erfüllen f . • CheckFairEX (f (v)) = CheckEX (f (v) ∧ f air(v)), mit f air(v) = CheckFairEG (Check(>)) • CheckFairEU (f (v), g(v)) = CheckEU (f (v), g(v) ∧ f air(v)) 5 Entscheidungsverfahren für Implikation in CTL ? Entscheidungsproblem: Φ |= ϕ, für Φ ⊆ CTL endlich, ϕ ∈ CTL Motivation: Herausfinden, ob Spezifikation überhaupt erfüllbar. Definition: Φ |= ϕ ⇔df für alle Zeitstrukturen M = (S, R, L): (∀s ∈ S ∀ φ ∈ Φ : M, s |= φ) ⇒ (∀s ∈ S : M, s |= ϕ) Also: Φ 6|= ϕ ⇔ es gibt M = (S, R, L) und s0 ∈ S: ∀s ∈ S ∀φ ∈ Φ : M, s |= φ und M, s0 |= ¬ϕ 5 Ideen • endliche Modelleigenschaft, d.h. M, s |= ϕ ⇒ es gibt M 0 = (S 0, R0, L0) mit |S 0| < ∞ und es gibt s0 ∈ S 0 : M 0 so dass M 0, s0 |= ϕ • Nachweis der endlichen Modelleigenschaft durch Filtration • Wir beginnen mit dem Modallogik-Fragment von CTL, d.h. zunächst betrachten zunchst nur die Quantoren EX und AX erlaubt, kein U , F , G • Erweiterung zu vollem CTL später 5 Technische Vorbereitungen Syntax der Modallogik K : EX (= 3 = <R>) AX (= 2 = [R]) 2p Abkürzung für ¬3¬p Boolesche Operatoren ⊥, ¬, ∧, ∨, ⊃ Teilformelmenge: SF = Menge der Teilformeln einer geg. Formel ϕ; w ⊆ SF repräsentiert {p | p ∈ w} ∪ {¬p | p 6∈ w} maximale Teilmengen von Teilformeln: w ⊆ SF heißt (aussagenlogisch) maximal konsistent ⇔df ⊥ 6∈ w (p ⊃ q) ∈ w ⇔ (p ∈ w ⇒ q ∈ w) (p ∧ q) ∈ w ⇔ (p ∈ w und q ∈ w) (p ∨ q) ∈ w ⇔ (p ∈ w oder q ∈ w) ¬p ∈ w ⇔ p 6∈ w In jedem Fall gelte ⇐“ nur dann, falls die linke (die größere) Formel auch in SF ist. ” 5 Beispiel Sei ϕ = P ∧ ¬P . Dann ist SF = {P, ¬P, P, ¬P, ϕ}. Maximale aussagenlogische konsistente Teilmengen wären: w0 w1 w2 w3 = = = = {P } {¬P } {P, P } {P, ¬P } w4 w5 w6 w7 = = = = {¬P, P } {¬P, ¬P } {P, P, ¬P, ϕ} {¬P, P, ¬P, ϕ} Z.B. ist w = {P } nicht maximal konsistent, weil es weder P noch ¬P enthält. w0 = {P, P, ¬P } ist nicht maximal konsistent, weil p = P ∧ ¬P nicht in w0. 6 Fixpunktiteration 6 Sei SF die Mge. der Teilformeln von Φ ∪ {φ}. Betrachte den Operator T : (U, R) 7→ (U 0, R0), wobei U und U 0 Mengen von maximal konsistenten Teilmengen von SF mit Φ ⊆ w, für alle w ∈ U und R, R0 ⊆ SF × SF , definiert durch R 0 = (R ∩ (U × U )) \ [ {(w, w1) ∈ R | ψ 6∈ w und ψ1 ∈ w1} ψ=3ψ1 ∈SF U 0 = U\ [ {w ∈ Uψ | R(w) ∩ Uψ1 = ∅} ψ=3ψ1 ∈SF Hierbei bezeichne Up = {w ∈ U | p ∈ w}. D.h., bei R0 werden solche Übergänge aus Zuständen gelöscht, in denen ein 3ψ1 nicht vorkommt (also falsch sein sollte), aber dennoch in einen ψ1-Zustand führen. Bei U 0 werden 3ψ1-Zustände gelöscht, die keinen ψ1-Nachfolger haben. Proposition 3.12 T ist monoton in beiden Argumenten, besitzt also einen maximalen T ∞ Fixpunkt2 νT = i=0 T i(U0, U0 × U0), mit U0 der Menge aller maximal konsistenten Teilmengen von SF mit Φ ⊆ U . 2 Wir benötigen hier die komponentenweise Erweiterung der Fixpunkttheorie auf Mengentupel, in der Monotonie bzw. komponentenweise zu verstehen ist. T Algorithmus 1. Berechne νT = (U m, Rm) durch die übliche Iteration. Dies ist effektiv machbar und terminiert, weil U0 endlich ist. 2. Antworte true“, falls U mφ 6= ∅, und false“, sonst. ” ” NB: Der Algorithmus kann mit OBDDs implementiert werden. Frage: Warum löscht man die Kante (w, w1) ∈ R wenn ψ = 3ψ1 6∈ w und ψ1 ∈ w1? Könnte man stattdessen nicht einfach w1 aus U löschen? 6 Korrektheit des Entscheidungsverfahrens Satz 3.13 Es gibt M = (S, R, L) und s0 ∈ S, so dass ∀s ∈ S : M, s |= Φ und M, s0 |= ϕ gdw. Algorithmus liefert true“. ” Beweisideen: Sei wieder SF die Mge. der Teilformeln von Φ ∪ {φ}. ⇐: Setze M = (U m, Rm, Lm), mit P ∈ Lm(w) gdw. P ∈ w (für P ∈ Π). Für jede Formel p ∈ SF gilt M, w |= p gdw. p ∈ w. Dies folgt aus der Fixpunkteigenschaft von (U m, Rm). ⇒: gegeben sei Struktur M = (S, R, L), so dass ∀s ∈ S : M, s |= Φ und M, s0 |= ϕ, für ein s0 ∈ S. S ist i.allg. unendlich. ⇒ Filtration: dividiere S durch die Äquivalenzrelation ≡ = {(s, s0) | ∀p ∈ SF : s |= p ⇔ s0 |= p} D.h. betrachte M≡ = (S/≡, R≡, L≡) mit R≡ = {([s]≡, [s0]≡) | ∃u ≡ s L≡([s]) = L(s) ∩ SF ∃u0 ≡ s0 : R(u, u0)} 6 Eigenschaften der Quotientenstruktur (i) (ii) (iii) (iv) M/≡ ist wohldefiniert. M/≡ ist endlich. für alle s ∈ S gilt M/≡, [s]≡ |= φ, für alle φ ∈ Φ Jede Klasse [s]≡ kann mit der maximal konsistenten Menge ws = {p ∈ SF | M/≡, [s]≡ |= p} identifiziert werden. Sei US = {ws | [s] ∈ S/≡} und RS = {(ws, ws0 ) | ([s], [s0]) ∈ R≡}. (v) (US , RS ) ist ein Fixpunkt von T , denn Kanten in R≡ und Knoten in S/≡ werden von T nicht gelöscht (vi) Damit ist M≡ Teilstruktur von (U m, Rm), d.h. US ⊆ U m und RS ⊆ Rm. (vii) M/≡, [s0]≡ |= ϕ ⇒ Algorithmus terminiert mit ,,true” weil ws0 ∈ US ⊆ U m, also U mϕ 6= ∅. 6 Komplexität 6 Satz 3.14 Das Implikationsproblem Φ |= ϕ für Modallogik K ist PSPACE-vollständig. Beweis. PSPACE-Härte: Reduktion von QBL (quantifizierte Boolesche Logik)3 auf Modallogik: Man übersetze φ in QBL nach K gemäß c(∃P.φ) = 3c(φ) c(φ ∨ ψ) = c(φ) ∨ c(ψ) c(¬φ) = ¬c(φ) c(P ) = P. Für jede quantifizierte Variable P erzeugt man eine globale Voraussetzung (P ∧ ¬P ) in Φ und entscheide dann, ob Φ |= c(φ) in K gilt. PSPACE obere Schranke: Tableau-Verfahren 2 3 Das ist Aussagenlogik mit ∀P und ∃P für Aussagenvariablen P . Die Logik wird dadurch nicht ausdruckskräftiger, aber die Shannon-Expansion ((P ∧ φ) ∨ (¬P ∧ φ)), mit der man ∃P in ∃P.φ eliminieren kann, bläht den Ausdruck exponentiell auf. Man kann aber dennoch mit polynomialem Speicher für den Erfüllbarkeits- (oder Tautologietest) auskommen: Bei β -Expansion eines Tableau in Zweige für (P ∧ φ) und (¬P ∧ φ) Speicher wiederverwenden! Erweiterung auf Modallogik mit F+ 6 Erweiterung auf CTL 6 Erläuterungen U+ , F+ , G+ sind irreflexive Varianten von U , F , G . Damit gibt es die primitiven Quantoren E U+ und A U+ , weil EX p AX p EF p AF p EG p AG p = = = = = = E (⊥ U+ p) A (⊥ U+ p) p ∨ E (> U+ p) p ∨ A (> U+ p) ¬AF ¬p ¬EF ¬p 6 Weitere Komplexitätsresultate CTL(∗) : Satz 3.15 (i) p ∈ CTL erfüllbar ⇔ p hat Modell der Größe O(2|p|) (ii) Das Erfüllbarkeitsproblem für CTL ist EXPTIME-vollständig (iii) Das Erfüllbarkeitsproblem für CTL* ist 2EXPTIME-vollständig LTL (aussagenlogischer Fall) : Satz 3.16 (i) Das Erfüllbarkeitsproblem für LTL ist PSPACE-vollständig. (ii) p ∈ LTL(F ) erfüllbar4 ⇔ p hat (lineares) Modell der Größe O(|p|) (iii) Das Erfüllbarkeitsproblem für LTL(F ) ist NP-vollständig. 4 nur F (und damit G ), aber kein allgemeines U erlaubt 6