Computergestützte Verifikation 19.4.2002 1 Inhalt Kapitel 1: Systeme Simulation Fehlerbeseitigung System Abstraktion Gegenbeispiel Verfeinerung Modell Präzisierung Spezifikation Formalisierung log. Formel Model Checker Überlauf 2 + Zusammenfassung Kapitel 1 Als Modell wird dem Model Checker eine implizite Systembeschreibung übergeben Es gibt viele Beschreibungssprachen Hinter jeder impliziten Beschreibung steckt ein Transitionssystem Konstruktion des Transitionssystems ist Aufgabe des Model Checkers 3 Kapitel 2 Temporale Logik 4 Inhalt Kapitel 1: Systeme Kapitel 2: Temporale Logik Simulation Fehlerbeseitigung System Abstraktion Gegenbeispiel Verfeinerung Modell Präzisierung Spezifikation Formalisierung log. Formel Model Checker Überlauf 5 + Warum nicht einfach PK 1? Beispiel: Wenn Prozess A eine Nachricht an B sendet, so wird (irgendwann spaeter) Prozess B eine Bestätigung zurückschicken. t (send(A,B,t) t’ (send(B,A,t’))) Viel zu kompliziert Rechnen zu schwer 6 Was ist Temporale Logik? Es geht nicht um Zeit Real Time Logik Es geht um Eigenschaften von Zuständen und deren Änderung in Systemabläufen Es ist (bei uns) eine Erweiterung der Aussagenlogik 7 Die Temporale Logik CTL* (Computation Tree Logic) Ausgangspunkt: Eigenschaften von Zuständen Sei AP eine Menge von atomaren Aussagen. Jedes Element von AP ist eine Zustandsformel in CTL* Jeder Zustand liefert eine Belegung der atomaren Aussagen mit Wahrheitswerten: s(p) {W,F} Ein Zustand s erfüllt p AP gdw. s(p) = W. s~p a,c ~ c a,c ~ b 8 Zustandseigenschaften “bin bei Anweisung k” “Mailbox ist leer” “nil dereferenziert” “x[17] > 35” q q,n k,q,n x,k Annahme: s(p) mit vernachlässigbarem Aufwand berechenbar aus Repräsentation von s im Rechner 9 Pfade in Transitionssystemen s1 s1 s4 s2 s3 s6 s5 s1 s2 s3 s1 s4 s5 s6 s4 s5 s6 ... s1 s4 s5 s6 s4 s5 s6 s4 s5 s6 ... Wir betrachten nur unendliche Pfade 10 (ggf. unendliche Wiederholung des Endzustandes) CTL* -Triviale Pfadformeln p: a a,q b c c c,d ..... Jede Zustandsformel ist eine Pfadformel Ein Pfad erfüllt eine Zustandsformel gdw. sein erster Zustand sie erfüllt. p~a p~c p ~ true 11 CTL* - Der NACHFOLGER-Operator p: a a,q a,q b c c c,d ..... Wenn f eine Pfadformel ist, so auch X f Ein Pfad (s0 s1 s2 s3 ... ) erfüllt X f gdw. (s1 s2 s3 s4 ... ) erfüllt f. p~Xa p~X X bb XX XX Tautologien: X f w X f X (f ) w X f X 12 CTL* - Der IRGENDWANN-Operator p: a ...... a,q b c c c,d ..... Falls f eine Pfadformel ist, so auch F f Ein Pfad (s0 s1 s2 s3 ... ) erfüllt F f gdw. (s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt f, für ein im0. p~Fb Tautologien: f u F f XFfwFXf Ffwf -XFf p ~ X a - F( b X c) XfuFf FfwFFf F (f ) u F f F F (f - ) w F f - 13 F CTL* - Der IMMER-Operator p: a ...... a,q b,q a,c q,c q q ..... Wenn f eine Pfadformel ist, so auch G f Ein Pfad (s0 s1 s2 s3 ... ) erfüllt G f gdw. (s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt f, für alle im0. p ~ G (a - q) Tautologien: Gfuf GfuFf GfwGGf G f - G u G (f - ) Gfwf XGf GfuXf GfwFf G f G w G (f 14 Kombinationen von F and G GFf = f gilt unendlich oft ....... FGf = f stabilisiert .......... G ( f u F ) = f führt zu .......... Tautologien: F G F f w G F f GFGfwFGf 15 CTL* - Der BIS-Operator p: a a,d a,q c,q a,c q,c q q ..... Wenn f und Pfadformeln sind, so auch f U Ein Pfad (s0 s1 s2 s3 ... ) erfüllt f U gdw. (s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt , für ein im0, und (s[j] s[j+1] s[j+2] ... ) erfüllt f, für alle j < i. p~aUc Tautologien: u f U F f w true U f fU uf fU w - (f X ( 16 Temporale Operatoren auf Pfaden – Zusammenfassung Symbol X/; F/( engl. Name nextstep eventually G/1 always U until Vergangenheitsversion P / ; (previous) O/( (once) B / 1 (always been) S (since) 14444444244444444444443 + atomare Aussagen + Boolesche Operatoren = Linear Time Temporal Logic (LTL) 17 Sicherheit und Lebendigkeit Eine Pfadeigenschaft kann aufgefaßt werden als die Menge derjenigen Pfade, die die Eigenschaft erfüllen S ist eine Sicherheitseigenschaft, wenn zu jedem p S ein (endl.) Anfangsstück p’ existiert, so daß jede unendliche Fortsetzung von p’ ebenfalls S ist. Also: Verletzung einer Sicherheitseigenschaft kann nach endlicher Zeit festgestellt werden und ist permanent. Beispiele: Gf Xf 18 Sicherheit und Lebendigkeit L ist eine Lebendigkeitseigenschaft, wenn zu jedem endlichen Pfad p eine Fortsetzung p’ L existiert. Also: Für keinen Pfad kann ich mir nach endlicher Zeit sicher sein, daß er die Eigenschaft verletzt. Beispiele: F f GF f FG f Satz: Jede Pfadeigenschaft ist äquivalent zu einer Konjunktion aus einer Sicherheits- und einer Lebendigkeitseigenschaft.19 Sicherheit und Lebendigkeit in der Praxis: Unterteilung in Sicherheit und Lebendigkeit sehr natürlich Sicherheit = nichts Schlimmes kann jemals passieren Lebendigkeit = Etwas Erwünschtes wird irgendwann passieren 20 Der Berechnungsbaum s1 s4 s1 s2 s3 s6 s5 s2 s4 s3 s1 s2 s5 s5 s4 s6 s6 s4 21 Der Berechnungsbaum a,b c a,b q q a,q q c ist unendlich in jedem Zweig a,q Zu jedem (Anfangs-)zustand gibt es genau einen Berechnungsbaum Berechnungsbaum hat die gleichen a,b Pfade wie zugrundeliegendes Transitionssystem (beim q c gleichen Anfangszustand) a,q q q c 22 CTL* -Pfadquantoren Wenn f eine Pfadformel ist, so ist E f eine Zustandsformel s erfüllt E f gdw. es einen Pfad p gibt, der bei s beginnt und p ~ f s a,b a,d c s~EFc Wenn f eine Pfadformel ist, so ist A f eine Zustandsformel s erfüllt A f gdw. für alle Pfade p, die bei s beginnen, gilt: p ~ f s~AXa Tautologien: A f w E f A f u E 23 f CTL* - Komplexe Formeln CTL* = Atomare Zustandsaussagen + Boolesche Operatoren + Temporale (Pfad-) Operatoren + Pfadquantoren a a a a a a GEFa 123 Zustandsformel 1423 Pfadformel 24 CTL* - Zusammenfassung sehr ausdrucksstark Keine effizienten Algorithmen bekannt Es gibt effiziente Algorithmen für Fragmente von CTL* CTL* LTL nur Pfadformeln CTL Nur Zust.formeln 25 Computation Tree Logic (CTL) CTL = atomare Zustandsaussagen + Boolesche Operatoren + Paare [ Pfadquantor , Temporaloperator ] AG (invariant) AX (in allen Nachf.) EG (mgl.weise immer) EX (in einem Nachf.) AF A( . U . ) EF E( . U . ) (irgendwann) (bis) (möglich) (bis) 26 CTL –AG und EF s ~ EF grün s s ~ AG blau Tautologien: AG f w EF f AG AG f w AG f EF EF f w EF f f u EF f AG f u f AG EF AG EF f w AG EF f EF AG EF AG f w EF AG27 f CTL –EG und AF s ~ AF grün s s ~ EG blau Tautologienb: EG f w AF f EG EG f w EG f AF AF f w AF f f u AF f EG f u f 28 CTL –AX und EX s ~ EX grün s s ~ AX blau Tautologien: AX f w EX f AX f u EX f 29 CTL –AU und EU s s ~ E(grün U gelb) s ~ A(blau U rot) Tautologien: EF f w E(true U f) AF f w A(true U f) A(f U ) w EG - E( U ( f )) 30 Einige relevante CTL-Eigenschaften AG sicher - nichts Schlimmes passiert jemals AG eine Aktion enabled - Verklemmungsfrei EF Menüpunkt - man kann sich zu ihm durchklicken AF Ziel - Irgendwann wird man es schaffen AG(req u AF ack) -Auf jeden Req folgt ein Ack AG AF verfügbar AG EF exit - ...es macht Sinn zu warten - man kann immer sauber beenden 31 Gegenbeispiele Simulation Fehlerbeseitigung System Abstraktion Gegenbeispiel Verfeinerung Modell Präzisierung Spezifikation Formalisierung log. Formel Model Checker Überlauf 32 + Gegenbeispiele für A-Formeln Gegenbeispiel für... = Zeugenpfad für... EF f AF f EG f (AX f) (EX f) A(f U ) EG oder E( U ( f 123 AG f 33 Basen für die Temporaloperatoren CTL: (E/A)X und EU und AU LTL : X und U F f w true U f GfwFf AX f w EX f sonst analog LTL oder (E/A)X und EU und EG A(f U ) w (EG - E( U (f 34 Gültigkeit in Transitionssystemen Ein Transitionssystem erfüllt eine CTL*-Formel f, falls zu jedem Anfangszustand der zugehörige Berechnungsbaum f erfüllt. Ein Transitionssystem erfüllt eine LTL-Formel f, falls jeder bei einem Anfangszustand beginnende Pfad f erfüllt. Ein Transitionssystem erfüllt eine CTL-Formel f, falls jeder Anfangszustand f erfüllt. Tautologie: f u A f 35 Interessante Probleme 1. Erfüllbarkeit: Geg.: Formel f Frage: Gibt es ein Transitionssystem, in dem f gilt? 2. Axiomatisierbarkeit: Frage: Gibt es eine endl. Menge von Formeln und Regeln, aus denen sich alle Tautologien ableiten lassen? 3. Model Checking: Geg.: Formel f und Transitionssystem TS Frage: Erfüllt TS f? CTL*: O(2|f| |TS|) LTL: O(2|f| |TS|) LTL: O(|f| |TS|) 36 Übung 1 Gegeben ist folgender Pfad. Die Notation ( ... ) * soll bedeuten, daß sich die eingeklammerte Sequenz bis ins Unendliche wiederholt. Welche Pfadeigenschaften sind erfüllt? a a,b d a,d G ((a d) u X X G c) G(auXb) b c a,c ( a,c b,c c )* G (a u F b) ( c) U b (F b) U c 37 Übung 2 Welche der folgenden Formeln sind Tautologien? F w F ( f U ) G ( f U ) u G F fUufUX f U ( U c) u (f - ) U c 38 Übung 3 Formalisiere folgende Spezifikationen in CTL* (wähle dazu geeignete atomare Aussagen)! Eine im Bahnhof stehende S-Bahn schließt die Türen, bevor sie abfährt Es ist nie möglich, vom 2. Gang in den 4. Gang zu schalten, ohne zwischendurch in den 3. Gang geschaltet zu haben Zwei parallele Prozesse schreiben nie gleichzeitig auf die geteilte Variable x. Jede Variable ist initialisiert, bevor sie das erste Mal benutzt wird. 39 Hinweis: Man braucht wirklich keine Vergangenheitsoperatoren!