Abstrakte Temporale Eigenschaften H. Peter Gumm Philipps-Universität Marburg Sommersemester 2007
Sicherheit und Lebendigkeit Sicherheitseigenschaften Systeme nie gleichzeitig in kritischem Bereich Nie beide Ampeln gleichzeitig grün Variable x wird nicht gelesen bevor sie initialisiert wurde Lebendigkeitseigenschaften Prozess i kann den kritischen Bereich erreichen Ein Auto an der Ampel bekommt irgendwann grün Variable x wird irgendwann initialisiert Safety ohne Liveness nutzlos Ampeln immer rot Kein System kommt in kritischen Bereich Variable x wird nie gelesen Praktische Spezifikationen benötigen Sicherheit und Lebendigkei
Safety - Liveness Kann man Sicherheit und Lebendigkeit formal definieren? Intuitive Definition (Leslie Lamport) Safety: Nothing bad will ever happen Liveness: Something good will eventually happen Gute umgangssprachliche Definition, aber nicht formal genug damit kann man keine Eigenschaften beweisen Mathematische Definition von Alpern & Schneider
Zustände, Folgen Eigenschaften S : Menge von Zuständen S* : Endliche Folgen S ω : unendliche Folgen Def.: Temporale Eigenschaft Eine temporale Eigenschaft ist eine Teilmenge von S ω Beispiele temporaler Eigenschaften für S = { (c 1,c2)j cι2 {rot,gelb,grün}} NoCrash = { σ 2 S ω j σ ² G:(c1=c2=grün) } µ S ω TooSafe = { σ 2 S ω j σ ² G:(c1=grün) Æ G :(c2=grün) } µ S ω MalGrün = { σ 2 S ω j σ² F(c1=grün) Æ F (c2=grün) } µ S ω OftGrün = { σ 2 S ω j σ² GF(c1=grün) Æ GF (c2=grün) } µ S ω Riskant = MalGrün Å (S ω - NoCrash)2 LaissezFaire = S NixDa = ; Welche davon sind Sicherheit Lebendigkeit, beides weder noch Problem: Was ist nothing bad, something good
Beobachtbare und Sicherheitseigenschaften Beobachtbar: Etwas, was nach endlicher Zeit konstatiert werden kann Hintergrund: Ein Unglück, das nicht nach endlicher Zeit eintritt, kann uns nicht beunruhigen Idee zur Formalisierung: (Un)glück ist endliche Folge α 2 S* auf Pfad σ passiert (Un)glück : α Á σ Pfad σ ist sicher vor (Un)glück : :(α Á σ) Menge von (Un)glücken U µ S* U S ω = { α σ j α2 P, σ2 S ω } = { π2 S ω j 8 α2 U.α ± π }) Definition: Eine Eigenschaft Pµ S ω heißt beobachtbar, falls es eine Menge Uµ S* gibt, so daß P=U S ω. Definition: Eine Eigenschaft Q heißt Sicherheitseigenschaft (safety property), falls S ω -Q beobachtbar ist. Fehlschlagen einer Sicherheitseigenschaft ist beobachtbar Beispiel: NoCrash = { σ 2 S ω j σ ² G:(c1=c2=grün) } ist safety NoCrash = S ω U S ω, wobei U = { α2 S * j 9 i2 N. α(i)=(grün,grün) }
Das System der beobachtbaren Mengen 1. ; und S ω sind beobachtbar Beweis: ; µ S* und ; = ; S ω. Weiter: S*µ S* und S ω = S* S ω 2. Sind P i beobachtbar für alle i2 I, dann ist [ i2 I P i beobachtbar Beweis: P i = U i S ω mit U i µ S* für jedes i2 I. Es folgt [ i2 I U i µ S* und [ i2 I P i = [ i2 I U i S ω. 3. Sind P 1 und P 2 beobachtbar, dann ist P 1 Å P 2 beobachtbar Beweis: P 1 =U 1 S ω und P 2 =U 2 S ω mit U 1,U 2 µ S*. Definiere U 1 +U 2 := { β2 U 2 j 9 α2 U 1. α ¹ β } (erst passiert ein Unglück aus U 1 danach ein Unglück aus U 2 ). Dann gilt P 1 Å P 2 = ((U 1 + U 2 ) [ (U 2 + U 1 )) S ω. Allgemeine mathematische Definition : Ein System τ von Teilmengen einer Menge X heißt Topologie, falls: ; 2 τ, X 2 τ P 1,P 2 2 τ ) P 1 Å P 2 2 τ 8 i2 I. P i 2τ ) [ i2 I P i 2τ Die Mengen in τ heißen : Offene Mengen. Komplemente: Abgeschlossene Mengen In unserem Falle: X=S ω und offen = beobachtbar, abgeschlossen = safety.
Sicherheitshülle abgeschlossene Hülle Beobachtbare Mengen sind abgeschlossen gegen endliche Schnitte beliebige Vereinigungen Sicherheitseigenschaften sind abgeschlossen gegen beliebige Schnitte endliche Vereinigungen. Sei P irgendeine Eigenschaft. Definiere den Abschluß (closure) von P als Cl(P) = Å { Q µ S ω j P µ Q und Q safety }. Dann gilt: Cl(P) ist die kleinste Safety-Eigenschaft, welche P umfasst. Cl(P) heißt auch die abgeschlossene Hülle, oder kurz der Abschluss von P Cl ist ein Abschlussoperator, d.h. für alle P,Q µ S ω gilt P µ Cl(P) (extensiv) Pµ Q ) Cl(P)µ Cl(Q) (monoton) Cl(Cl(P)) = Cl(P) (idempotent) P safety, Cl(P) = P
Lebendigkeit - Liveness Lebendigkeitseigenschaften (liveness properties) sagen etwas über die Zukunft voraus sind unabhängig von bisher gewesenem egal was bis zu einem Zeitpunkt gewesen ist, kann danach die Lebendigkeitseigenschaft noch erfüllt werden Definition: P µ S ω heißt liveness, falls 8α 2 S*. 9σ2P. αá σ. Aus der Definition folgen sofort: Lemma: P=S ω ist die einzige Eigenschaft, die sowohl safety als auch liveness ist Lemma: Ist P liveness und P µ Q µs ω, dann ist auch Q liveness. Beispiel einer Lebendigkeitseigenschaft: OftGrün = { σ 2 S ω j σ ² GF(c1=grün) Æ GF (c2=grün) } µ S ω Satz: P ist liveness, gdw. Cl(P) = S ω Beweis: Sei P liveness. Wegen P µ Cl(P) ist Cl(P) sowohl safety als auch liveness, daher gilt Cl(P) = S ω. Umgekehrt, sei Cl(P) = S ω. Wir müssen zeigen, dass P liveness ist. Angenommen, es gäbe ein α aus S* so daß für kein σ2 Σ ω auch α σ 2 P gilt. Dann wäre die beobachtbare Menge O = {α} S ω disjunkt zu P, also O Å P = ;. Somit gilt P µ (S ω -O) ½ S ω. Da (S ω -O) eine P enthaltene Sicherheitseigenschaft ist, folgt Pµ Cl(P) µ S ω -O. Aus der Voraussetzung Cl(P)=S ω folgt O=;. Dieser Widerspruch widerlegt unsere Annahme.
Alpern-Schneider S ω Satz: Jede temporale Eigenschaft ist Konjunktion einer Sicherheitseigenschaft und einer Livenesseigenschaft Beweis: L := (S ω C(P)) [ P ist eine Lebendigkeitseigenschaft, denn L S ω -Cl(P), also C(L) (S ω -C(P)) L P, also C(L) CL(P) folglich C(L) (S ω -C(P)) [ Cl(P) = S ω Cl(P) ist Sicherheitseigenschaft Cl(P) P LÅ Cl(P) = ((S ω Cl(P)) [ P) Å Cl(P) = ; [ P = P Spezialfall eines Satzes der Topologie: Jede Teilmenge von X ist Durchschnitt einer abgeschlossenen und einer dichten Menge Verwandschaft mit Modus-Ponens: ([ ¼ Ç, Å ¼ Æ, - ¼ :) (S ω Cl(P)) [ P ¼ : Cl(P)Ç P ¼ Cl(P) ) P Der Verdienst von Alpern & Schneider besteht darin, die richtige Modellierung, und die richtigen mathematischen Definitionen entdeckt zu haben. liveness safety Cl(P) ) P, Cl(P) P
Zerlegung Alpern-Schneider: Jede Eigenschaft P besteht aus einer Safety- Eigenschaft P safe und einer Liveness-Komponente P live. Diese Komponenten sind disjunkt, ausser für P = S ω. Beispiel: Der Getränke-Automat gibt erst nur Fanta oder Cola aus, ab irgendeinem Zeitpunkt aber nur Bier. S = { Bier, Cola, Fanta } Liveness: Versprechen, die nur im unendlichen eingelöst werden können P live = S* {Bier} ω = { σ 2 S ω j σ ² FG Bier } Liveness, weil jede endliche Folge zu einer Folge vervollständigt werden kann, die FG Bier erfüllt Safety: Verletzung in endlicher Zeit sichtbar Verbotene Präfixe: V = { α Bier s j α 2 S*, s Bier } P safe = S ω - V S ω = {Bier} 3 S ω ( sowohl safety, als auch beobachtbar) Wie kann man allgemein die Zerlegung berechnen? P safe = Cl(P), P live = S ω -Cl(P) [ P Genügt zu wissen: Wie kann man Cl(P) bestimmen?
Cl(P) durch verbotene Präfixe Leider ist die Definition Cl(P) := Å{ Qµ S ω j P µ Q und Q safety} praktisch nicht handhabbar. Eine Methode: Verbotene Präfixe bestimmen Andere Methode: Konvergenzabschluss siehe folgende Folien. Für Pµ S ω sei V(P) = { α 2 S* j 8σ 2 P.:(α Á σ) } Satz: Cl(P) = S ω -V(P) S ω. Beweis: Offensichtlich ist S ω -V(P) S ω abgeschlossen und umfasst P. Wir müssen zeigen, dass es die kleinste abgeschlossene Menge ist, die P umfasst. Angenommen es gäbe eine weitere abgeschlossene Menge Q mit P µ Q µ S ω -V(P) S ω. Dann ist Q von der Form S ω -U S ω, und es folgt S ω -P U S ω V(P) S ω Sei α 2 U. Wegen S ω -P U S ω folgt für jedes τ 2 S ω, dass α τ2 S ω -P, daher gilt nach Definition α2v(p). Somit ist auch UµV(P), mithin U S ω =V(P) S ω, also Q= S ω -V(P) S ω.
Beispiel: Alkoholentzug Der Getränke-Automat gibt erst nur Fanta oder Cola aus, ab irgendeinem Zeitpunkt aber nur Bier. P = { σ2 S ω j σ ² [:Bier U G Bier] } Verbotene Präfixe: V(P) = { α2 S*j 9 i2n. α(i)=bier, α(i+1) Bier} Cl(P) = S ω -V(P) S ω = { σ2 S ω j σ ² [:Bier W G Bier] } P safe ist in diesem Beispiel also P [ (Cola Fanta) ω Jede Bier-freie Folge ist in der Tat ein Grenzwert von Folgen in P Das Bier gibt es später und später und später Im Grenzwert nie. Was bedeutet genau: Im Grenzwert?
Der ultrametrische Raum S ω Auf S ω lässt sich ein Abstand definieren: σ τ 0 1 2 3 4 damit erfüllt d: S ω S ω R + die Gesetze: d(σ,τ)=¼ d(x,y) = 0, x = y d(x,y) = d(y,x) d(x,z) d(x,y) + d(y,z) d.h. (S ω,d) ist ein metrischer Raum Mehr noch, (S ω,d) ist sogar ultrametrischer Raum, denn es gilt: d(x,z) = max(d(x,y),d(y,z))
Konvergenz Eine Folge von Pfaden (σ n ) n2n konvergiert gegen τ gdw. lim n 1 σ n =τ σ 3 σ 2 σ 4 τ σ 1 8ε>0.9m2N.8k m. d(σ k,τ) < ε. Schreibweise: lim n 1 σ n = τ. 0 10 20 30 40 Äquivalent: Mit wachsendem m stimmen die σ k auf immer längeren Präfixen mit τ überein. 8r2N.9m2N.8k m. σ k <r =τ <r Satz: PµS ω abgeschlossen, für jede konvergente Folge lim n 1 σ n = τ gilt: (8 n2n. σ n 2 P) ) τ2 P Beweis: ) Sei P abgeschlossen, dann gilt P=S ω -V(P) S ω für V(P) = { α 2 S* j 8σ 2 P.:(α Á σ) }. Angenommen lim n2n σ n =τ aber τ P. Dann gilt τ = α σ für ein α2v(p). Sei r die Länge von α. Wegen lim n 1 σ n =τ gibt es ein k, ab dem die σ n mindestens auf den ersten r Gliedern mit τ übereinstimmen. Es folgt σ k 2 V(P) S ω, also σ k P. ( : Es genügt zu zeigen: P = S ω -V(P) S ω mit V(P) = { α 2 S* j 8σ 2 P.:(α Á σ) } µ folgt sofort aus der Definition. Sei σ 2 S ω -V(P) S ω. Für jedes d2n ist σ <d V(P). Also gibt es für jedes d2n ein σ d 2 P mit σ <d Á σ d. Es folgt, dass die so konstruierten (σ d ) d2n gegen σ konvergieren, also lim d 1 σ d = τ. Also ist τ 2 P.
Häufungspunkte Sei PµS ω. Ein Häufungspunkt von P ist eine Folge τ2 S ω, so dass es eine Serie (σ n ) n2 N gibt mit 8 n2n.σ n 2P und lim n 1 σ n =τ. Häufungspunkte von P sind also alle Grenzwerte von Serien von Elementen aus P. Sei lim(p) die Menge aller Häufungspunkte von P. Der vorige Satz besagt also: P abgeschlossen, P enthält alle seine Häufungspunkte Satz: lim(p) = Cl(P) Beweis: Wegen P µ Cl(P) und dem vorigen Satz folgt sofort lim(p) µ lim(cl(p)) µ Cl(P). Sei τ2 Cl(P) = S ω -V(P) S ω. Dann ist kein Präfix von τ in V(P). Für jeden Präfix τ <k von τ gibt es also ein σ k 2 S ω mit τ <k σ 2 P. Offensichtlich gilt τ = lim k 1 τ <k σ k, also τ 2 lim(p). Folgerung: Cl(P) = S ω -V(P) S ω = lim(p). Wir haben also zwei Wege, Cl(P) zu bestimmen: über die verbotenen Präfixe und Komplementation als Menge aller Häufungspunkte von P.
König s Lemma und Konvergenz Satz: Ist S endlich, so hat jede unendliche Folge von Pfaden eine konvergente Teilfolge Beweis: Sei (σ n ) n2n eine Folge von Pfaden und T=Pref({σ n j n2n}) die Menge aller endlichen Präfixe der Folgen σ n. T ist ein unendlicher Baum. Wenn S endlich ist, dann ist T endlich verzweigend und König s Lemma garantiert einen unendlich langen Ast τ Für jeden Präfix τ < d von τ existiert ein σ n(d) mit dem gleichen Präfix. Es folgt: lim d2n σ n(d) =τ Anders ausgedrückt: Jede unendliche Folge σ n hat einen Häufungspunkt.
P = P safe Å P live Wir haben zwei Methoden, P safe zu bestimmen Psafe = Cl(P) = S ω -V(P) S ω Psafe = Cl(P) = lim(p) Daraus können wir P live bestimmen als S ω -Cl(P). Die Zerlegung P = P safe ÅP live ist aber nicht eindeutig! Beispiel: S={Arbeit, Bier}. ; und G Arbeit sind Sicherheitseigenschaften S ω und F Bier sind Lebendigkeitseigenschaften ; = ; Å S ω = G Arbeit Å F Bier sind verschiedene Zerlegungen von ;.
Zusammenfassung G F Ferien