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