Modellprüfung P. H. Schmitt: Nichtklassische Logik – p.1 Modellprüfungsalgorithmen Modellprüfungsalgorithmen (Model checking Algorithmen) sind in der Lage zu einer gegebenen aussagenlogischen Kripke Struktur K = (G, R, v), einem Zustand s ∈ G und zu einer gegebenen CTL-Formel A zu entscheiden, ob (K , s) |= A gilt oder nicht. P. H. Schmitt: Nichtklassische Logik – p.2 Kripke Struktur K me 0 1 3 2 4 5 7 Ni Prozeß i befindet sich in einer nichtkritischen Region Ti Prozeß i befindet sich in der Anmeldephase Ci Prozeß i befindet sich in einer kritischen Region 6 8 P. H. Schmitt: Nichtklassische Logik – p.3 Kripke Struktur K me 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 N1 1 0 1 0 0 0 1 0 0 N2 1 1 0 1 0 0 0 0 0 T1 0 1 0 0 1 1 0 0 1 T2 0 0 1 0 1 1 0 1 0 C1 0 0 0 1 0 0 0 1 0 C2 0 0 0 0 0 0 1 0 1 P. H. Schmitt: Nichtklassische Logik – p.4 Berechnungsbaum zu K me P. H. Schmitt: Nichtklassische Logik – p.5 Fixpunkte P. H. Schmitt: Nichtklassische Logik – p.6 Grundbegriffe • Wir betrachten eine Funktion f : P (G) → P (G) P (G) = Menge aller Teilmengen der Menge G. P. H. Schmitt: Nichtklassische Logik – p.7 Grundbegriffe • Wir betrachten eine Funktion f : P (G) → P (G) • f heißt monoton, wenn für je zwei Mengen M, N ∈ P (G) mit M ⊆ N auch f (M) ⊆ f (N) gilt. P (G) = Menge aller Teilmengen der Menge G. P. H. Schmitt: Nichtklassische Logik – p.7 Grundbegriffe • Wir betrachten eine Funktion f : P (G) → P (G) • • f heißt monoton, wenn für je zwei Mengen M, N ∈ P (G) mit M ⊆ N auch f (M) ⊆ f (N) gilt. Z heißt Fixpunkt von f falls f (Z) = Z gilt. P (G) = Menge aller Teilmengen der Menge G. P. H. Schmitt: Nichtklassische Logik – p.7 Grundbegriffe • Wir betrachten eine Funktion f : P (G) → P (G) • f heißt monoton, wenn für je zwei Mengen M, N ∈ P (G) mit M ⊆ N auch f (M) ⊆ f (N) gilt. • Z heißt Fixpunkt von f falls f (Z) = Z gilt. • Z heißt kleinster Fixpunkt von f , wenn Z ein Fixpunkt ist und für jeden anderen Fixpunkt U von f gilt Z ⊆ U . P (G) = Menge aller Teilmengen der Menge G. P. H. Schmitt: Nichtklassische Logik – p.7 Grundbegriffe • Wir betrachten eine Funktion f : P (G) → P (G) • f heißt monoton, wenn für je zwei Mengen M, N ∈ P (G) mit M ⊆ N auch f (M) ⊆ f (N) gilt. • Z heißt Fixpunkt von f falls f (Z) = Z gilt. • Z heißt kleinster Fixpunkt von f , wenn Z ein Fixpunkt ist und für jeden anderen Fixpunkt U von f gilt Z ⊆ U . • Z heißt größter Fixpunkt von f , wenn Z ein Fixpunkt ist und für jeden anderen Fixpunkt U von f gilt U ⊆ Z . P (G) = Menge aller Teilmengen der Menge G. P. H. Schmitt: Nichtklassische Logik – p.7 Existenz von Fixpunkten Sei f : P (G) → P (G) eine montone Funktion, G eine endlichen Menge. 1. f besitzt einen kleinsten und einen größten Fixpunkt. S / ist der kleinste Fixpunkt von f . 2. n≥1 f n (0) T 3. n≥1 f n (G) ist der größte Fixpunkt von f . P. H. Schmitt: Nichtklassische Logik – p.8 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) P. H. Schmitt: Nichtklassische Logik – p.9 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) / = f i+1 (0) / . Da G endlich ist, muß ein i existieren mit f i (0) P. H. Schmitt: Nichtklassische Logik – p.9 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) / = f i+1 (0) / . Da G endlich ist, muß ein i existieren mit f i (0) S / = f i (0) / ein Fixpunkt von f : Dann ist Z = n≥1 f n (0) P. H. Schmitt: Nichtklassische Logik – p.9 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) / = f i+1 (0) / . Da G endlich ist, muß ein i existieren mit f i (0) S / = f i (0) / ein Fixpunkt von f : Dann ist Z = n≥1 f n (0) / = f i+1 (0) / = f i (0) / =Z f (Z) = f ( f i (0)) Sei jetzt U ein weiterer Fixpunkt für f . P. H. Schmitt: Nichtklassische Logik – p.9 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) / = f i+1 (0) / . Da G endlich ist, muß ein i existieren mit f i (0) S / = f i (0) / ein Fixpunkt von f : Dann ist Z = n≥1 f n (0) / = f i+1 (0) / = f i (0) / =Z f (Z) = f ( f i (0)) Sei jetzt U ein weiterer Fixpunkt für f . P. H. Schmitt: Nichtklassische Logik – p.9 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) / = f i+1 (0) / . Da G endlich ist, muß ein i existieren mit f i (0) S / = f i (0) / ein Fixpunkt von f : Dann ist Z = n≥1 f n (0) / = f i+1 (0) / = f i (0) / =Z f (Z) = f ( f i (0)) Sei jetzt U ein weiterer Fixpunkt für f . / ⊆ f (U) = U . Aus 0/ ⊆ U folgt mit Monotonie f (0) P. H. Schmitt: Nichtklassische Logik – p.9 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) / = f i+1 (0) / . Da G endlich ist, muß ein i existieren mit f i (0) S / = f i (0) / ein Fixpunkt von f : Dann ist Z = n≥1 f n (0) / = f i+1 (0) / = f i (0) / =Z f (Z) = f ( f i (0)) Sei jetzt U ein weiterer Fixpunkt für f . / ⊆ f (U) = U . Aus 0/ ⊆ U folgt mit Monotonie f (0) / ⊆ U. Durch Induktion erhält man für jedes n auch f n (0) P. H. Schmitt: Nichtklassische Logik – p.9 Beweis Aus der Monotonie folgt zunächst / ⊆ . . . ⊆ f n (0) / ⊆ ... / ⊆ f 2 (0) 0/ ⊆ f (0) / = f i+1 (0) / . Da G endlich ist, muß ein i existieren mit f i (0) S / = f i (0) / ein Fixpunkt von f : Dann ist Z = n≥1 f n (0) / = f i+1 (0) / = f i (0) / =Z f (Z) = f ( f i (0)) Sei jetzt U ein weiterer Fixpunkt für f . / ⊆ f (U) = U . Aus 0/ ⊆ U folgt mit Monotonie f (0) / ⊆ U. Durch Induktion erhält man für jedes n auch f n (0) / ⊆ U. Also auch Z = f i (0) P. H. Schmitt: Nichtklassische Logik – p.9 Beispiel zur Modellprüfung P. H. Schmitt: Nichtklassische Logik – p.10 Der Ansatz Wir wollen zeigen, daß in K me im Zustand 1 die Formel F = T1 → uv(C1 ) = ¬T1 ∨ all(true until C1 ) wahr ist. Diese Formel besitzt als Teilformeln {T1 ,C1 , ¬T1 , all(true until C1 ), F} Für jede dieser Teilformeln C wird die Menge der Zeitpunkte, τ(C), zu denen C wahr ist, berechnet: τ(C) = {s | (K me , s) |= C} Zum Schluß muß dann noch abgefragt werden, ob 1 ∈ τ(F) gilt. P. H. Schmitt: Nichtklassische Logik – p.11 Berechnung von τ(C) Für die Aussagenvariablen C kann τ(C) offensichtlich direkt aus der Kripke Struktur abgelesen werden, τ(C) = {s ∈ G | v(s,C) = 1}. In unserem Beispiel ergibt sich: τ(T1 ) = {1, 4, 5, 8} τ(C1 ) = {3, 7} P. H. Schmitt: Nichtklassische Logik – p.12 Berechnung von τ(C) Ist F0 eine Teilformel, die aus F1 und F2 mittels aussagenlogischer Operatoren aufgebaut ist, dann gilt: τ(¬F1 ) = G \ τ(F1 ) τ(F1 ∧ F2 ) = τ(F1 ) ∩ τ(F2 ) τ(F1 ∨ F2 ) = τ(F1 ) ∪ τ(F2 ) Für unsere Beispielrechnung erhalten wir zunächst nur τ(¬T1 ) = {0, 2, 3, 6, 7} die Auswertung der Disjunktion muß noch warten bis das zweite Disjunktionsglied ausgewertet ist. P. H. Schmitt: Nichtklassische Logik – p.13 τ(C) für temporale Operatoren Berechnung von τ(F0 ) = τ(all(F1 until F2 )) τ0 (F0 ) τ1 (F0 ) τ2 (F0 ) = 0/ = τ(F2 ) = τ(F2 ) ∪ {s ∈ τ(F1 ) | für alle t mit sRt gilt t ∈ τ1 (F0 )} .. . τn+1 (F0 ) = τ(F2 ) ∪ {s ∈ τ(F1 ) | für alle t mit sRt gilt t ∈ τn (F0 )} .. . Diese Berechnung wird solange iteriert bis τn+1 (F0 ) = τn (F0 ) gilt. Dann setzt man τ(F0 ) = τn (F0 ). P. H. Schmitt: Nichtklassische Logik – p.14 Beispiel (Forts.) In unserem Beispiel ergibt sich τ0 (all(true until C1 )) τ1 (all(true until C1 )) τ2 (all(true until C1 )) τ3 (all(true until C1 )) τ4 (all(true until C1 )) τ5 (all(true until C1 )) τ6 (all(true until C1 )) = = = = = = = 0/ {3, 7} {3, 4, 7} {1, 3, 4, 7} {1, 3, 4, 7, 8} {1, 3, 4, 5, 7, 8} {1, 3, 4, 5, 7, 8} τ(all(true until C1 )) = {1, 3, 4, 5, 7, 8} = τ(¬T1 ) ∪ τ(all(true until C1 )) = {0, 2, 3, 6, 7} ∪ {1, 3, 4, 5, 7, 8} = G Somit erhalten wir und τ(F P. H. Schmitt: Nichtklassische Logik – p.15 Fixpunktcharakterisierungen P. H. Schmitt: Nichtklassische Logik – p.16 Mengenfunktionen K = (G, R, v) eine Kripke Struktur, F CTL-Formel. fF (Z) : P (G) → P (G) ist definiert durch: F F F F F F = all(F1 until F2 ) = ex(F1 until F2 ) = uv(F) = er(F) = i(F) = efa(F) wobei fF (Z) = fF (Z) = fF (Z) = fF (Z) = fF (Z) = fF (Z) = τ(F2 ) ∪ (τ(F1 ) ∩ fAX (Z)) τ(F2 ) ∪ (τ(F1 ) ∩ fEX (Z)) τ(F) ∪ fAX (Z) τ(F) ∪ fEX (Z) τ(F) ∩ fAX (Z) τ(F) ∩ fEX (Z) fAX (Z) = {s ∈ G | für alle t mit sRt gilt t ∈ Z} fEX (Z) = {s ∈ G | es gibt ein t mit sRt und t ∈ Z} = {g ∈ G | (K , g) |= F} τ(F) P. H. Schmitt: Nichtklassische Logik – p.17 Charakterisierungslemma Sei K = (G, R, v) eine Kripke Struktur und F eine CTL-Formel. Dann gilt 1. für F = all(F1 until F2 ), ex(F1 until F2 ), uv(F), er(F) τ(F) = kfp fF 2. für F = i(F), efa(F) τ(F) = gfp fF wobei kfp f für den kleinsten und gfp f für den größten Fixpunkt der Funktion f steht. P. H. Schmitt: Nichtklassische Logik – p.18 Beweis für i(F) (Teil 1) Man überzeuge sich zuerst von g |= i(F) ⇔ g |= F und für alle h mit gRh gilt h |= i(F) P. H. Schmitt: Nichtklassische Logik – p.19 Beweis für i(F) (Teil 1) Man überzeuge sich zuerst von g |= i(F) ⇔ g |= F und für alle h mit gRh gilt h |= i(F) In der τ-Notation liest sich das als τ(i(F)) = τ(F) ∩ {g | für alle h mit gRh gilt h ∈ τ(i(F))} P. H. Schmitt: Nichtklassische Logik – p.19 Beweis für i(F) (Teil 1) Man überzeuge sich zuerst von g |= i(F) ⇔ g |= F und für alle h mit gRh gilt h |= i(F) In der τ-Notation liest sich das als τ(i(F)) = τ(F) ∩ {g | für alle h mit gRh gilt h ∈ τ(i(F))} Nach Definition von fi(F) : τ(i(F)) = fi(F) (τ(i(F))) P. H. Schmitt: Nichtklassische Logik – p.19 Beweis für i(F) (Teil 1) Man überzeuge sich zuerst von g |= i(F) ⇔ g |= F und für alle h mit gRh gilt h |= i(F) In der τ-Notation liest sich das als τ(i(F)) = τ(F) ∩ {g | für alle h mit gRh gilt h ∈ τ(i(F))} Nach Definition von fi(F) : τ(i(F)) = fi(F) (τ(i(F))) Somit τ(i(F)) ist Fixpunkt von f i(F) P. H. Schmitt: Nichtklassische Logik – p.19 Beweis für i(F) (Teil 2) Sei H irgendein Fixpunkt von f i(F) . Wir wollen H ⊆ τ(i(F)) zeigen. P. H. Schmitt: Nichtklassische Logik – p.20 Beweis für i(F) (Teil 2) Sei H irgendein Fixpunkt von f i(F) . Wir wollen H ⊆ τ(i(F)) zeigen. Sei g0 ∈ H . Wir müssen nachweisen ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ τ(F) P. H. Schmitt: Nichtklassische Logik – p.20 Beweis für i(F) (Teil 2) Sei H irgendein Fixpunkt von f i(F) . Wir wollen H ⊆ τ(i(F)) zeigen. Sei g0 ∈ H . Wir müssen nachweisen ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ τ(F) Wir zeigen dazu: 1. H ⊆ τ(F) 2. ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H P. H. Schmitt: Nichtklassische Logik – p.20 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) P. H. Schmitt: Nichtklassische Logik – p.21 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) 2 ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H P. H. Schmitt: Nichtklassische Logik – p.21 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) 2 ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H Das beweisen wir durch Induktion nach n. P. H. Schmitt: Nichtklassische Logik – p.21 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) 2 ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H Das beweisen wir durch Induktion nach n. Für n = 0 ist nichts zu zeigen. P. H. Schmitt: Nichtklassische Logik – p.21 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) 2 ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H Das beweisen wir durch Induktion nach n. Für n = 0 ist nichts zu zeigen. Voraussetzung für n − 1 ; n: gn−1 ∈ H und gn−1 Rgn . P. H. Schmitt: Nichtklassische Logik – p.21 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) 2 ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H Das beweisen wir durch Induktion nach n. Für n = 0 ist nichts zu zeigen. Voraussetzung für n − 1 ; n: gn−1 ∈ H und gn−1 Rgn . Wegen Fixpunkteigenschaft von H gn−1 ∈ H = fi(F) (H) = τ(F) ∩ fAX (H) P. H. Schmitt: Nichtklassische Logik – p.21 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) 2 ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H Das beweisen wir durch Induktion nach n. Für n = 0 ist nichts zu zeigen. Voraussetzung für n − 1 ; n: gn−1 ∈ H und gn−1 Rgn . Wegen Fixpunkteigenschaft von H gn−1 ∈ H = fi(F) (H) = τ(F) ∩ fAX (H) Also insbesondere gn−1 ∈ fAX (H) = {g | für alle h mit gRh gilt h ∈ H} P. H. Schmitt: Nichtklassische Logik – p.21 Beweis für i(F) (Teil 3) 1 H ⊆ τ(F) H = fi(F) (H) = τ(F) ∩ f AX (H) ⊆ τ(F) 2 ∀n ≥ 0 und alle gi mit gi−1 Rgi für alle 1 ≤ i ≤ n gilt gn ∈ H Das beweisen wir durch Induktion nach n. Für n = 0 ist nichts zu zeigen. Voraussetzung für n − 1 ; n: gn−1 ∈ H und gn−1 Rgn . Wegen Fixpunkteigenschaft von H gn−1 ∈ H = fi(F) (H) = τ(F) ∩ fAX (H) Also insbesondere gn−1 ∈ fAX (H) = {g | für alle h mit gRh gilt h ∈ H} Daraus folgt unmittelbar gn ∈ H und wir sind fertig. P. H. Schmitt: Nichtklassische Logik – p.21