Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Computergestützte Verifikation

Ähnliche Präsentationen


Präsentation zum Thema: "Computergestützte Verifikation"—  Präsentation transkript:

1 Computergestützte Verifikation

2 Inhalt Kapitel 1: Systeme Simulation Gegenbeispiel Fehler-
beseitigung Verfeinerung Abstraktion System Modell - Model Checker + Präzisierung Formalisierung Spezifikation log. Formel Überlauf

3 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

4 Kapitel 2 Temporale Logik

5 Inhalt Kapitel 1: Systeme Kapitel 2: Temporale Logik Simulation
Gegenbeispiel Fehler- beseitigung Verfeinerung Abstraktion System Modell - Model Checker + Präzisierung Formalisierung Spezifikation log. Formel Überlauf

6 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

7 Was ist Temporale Logik?
Real Time Logik Es geht nicht um Zeit Es geht um Eigenschaften von Zuständen und deren Änderung in Systemabläufen Es ist (bei uns) eine Erweiterung der Aussagenlogik

8 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 ~ b

9 Zustandseigenschaften
“bin bei Anweisung k” “Mailbox ist leer” “nil dereferenziert” “x[17] > 35” k,q,n q,n q x,k Annahme: s(p) mit vernachlässigbarem Aufwand berechenbar aus Repräsentation von s im Rechner

10 Pfade in Transitionssystemen
... s5 s6 s4 ... Wir betrachten nur unendliche Pfade (ggf. unendliche Wiederholung des Endzustandes)

11 CTL* -Triviale Pfadformeln
a,q b c c,d ..... a Jede Zustandsformel ist eine Pfadformel Ein Pfad erfüllt eine Zustandsformel gdw. sein erster Zustand sie erfüllt. p ~ a p ~ c p ~ true

12 CTL* - Der NACHFOLGER-Operator
a,q b c c,d ..... a,q b c c,d ..... a,q b c c,d ..... X b X b 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 ~ X  a p ~ X X X b X Tautologien: X  f w  X f X (f  ) w X f  X 

13 CTL* - Der IRGENDWANN-Operator
...... p: a a,q b c c,d ..... b 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 ~ F b p ~ X a - F( b . X c) Tautologien: f u F f X f u F f F f w F F f X F f w F X f F (f  y) u F f  F y F f w f  X F f F (f  y) w F f  F y

14 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: G f u f G f u X f G f u F f G f w G G f  G f w F  f G f  G y u G (f  y) G f G y w G (f  y) G f w f  X G f

15 Kombinationen von F and G
G F f = f gilt unendlich oft F G f = f stabilisiert G ( f u F y) = f führt zu y Tautologien: F G F f w G F f G F G f w F G f

16 CTL* - Der BIS-Operator
a,d a,q c,q a,c q,c q q ..... Wenn f und y Pfadformeln sind, so auch f U y Ein Pfad (s0 s1 s2 s3 ... ) erfüllt f U y gdw. (s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt y, für ein im0, und (s[j] s[j+1] s[j+2] ... ) erfüllt f, für alle j < i. p ~ a U c Tautologien: y u f U y F f w true U f f U y .  y u f f U y w y  (f . X (f U y))

17 Temporale Operatoren auf Pfaden – Zusammenfassung
Symbol engl. Name Vergangenheitsversion nextstep X / ; P / ; (previous) O / ( F / ( eventually (once) G / 1 always (always been) B / 1 U until S (since) + atomare Aussagen + Boolesche Operatoren = Linear Time Temporal Logic (LTL)

18 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: G f X f

19 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.

20 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

21 Der Berechnungsbaum s1 s1 s5 s6 s4 s2 s1 s4 s5 s3 s2 s6 s5 s3 s2 s4 s6

22 Der Berechnungsbaum ist unendlich in jedem Zweig
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 Pfade wie zugrundeliegendes Transitionssystem (beim gleichen Anfangszustand) a,b a,q q q c

23 CTL* -Pfadquantoren Wenn f eine Pfadformel ist, so
ist E f eine Zustandsformel s s erfüllt E f gdw. es einen Pfad p gibt, der bei s beginnt und p ~ f Wenn f eine Pfadformel ist, so ist A f eine Zustandsformel a,b a,d s erfüllt A f gdw. für alle Pfade p, die bei s beginnen, gilt: p ~ f c Tautologien: A f w  E f A f u E f s ~ E F c s ~ A X a

24 CTL* - Komplexe Formeln
CTL* = Atomare Zustandsaussagen + Boolesche Operatoren + Temporale (Pfad-) Operatoren + Pfadquantoren a G E F a 123 Zustandsformel 1423 Pfadformel

25 CTL* - Zusammenfassung
sehr ausdrucksstark Keine effizienten Algorithmen bekannt Es gibt effiziente Algorithmen für Fragmente von CTL* CTL* LTL CTL nur Pfad- formeln Nur Zust.- formeln

26 Computation Tree Logic (CTL)
CTL = atomare Zustandsaussagen + Boolesche Operatoren + Paare [ Pfadquantor , Temporaloperator ] AG (invariant) AF (irgendwann) AX (in allen Nachf.) A( . U . ) (bis) EG (mgl.weise immer) EF (möglich) EX (in einem Nachf.) E( . U . ) (bis)

27 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 AG f

28 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

29 CTL –AX und EX s ~ EX grün s s ~ AX blau Tautologien:  AX f w EX  f
AX f u EX f

30 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 y) w EG  y - E( y U ( f .  y))

31 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 es macht Sinn zu warten AG EF exit man kann immer sauber beenden

32 Gegenbeispiele Simulation Gegenbeispiel Fehler- Verfeinerung
beseitigung Verfeinerung Abstraktion System Modell - Model Checker + Präzisierung Formalisierung Spezifikation log. Formel Überlauf

33 Gegenbeispiele für A-Formeln
Gegenbeispiel für... = Zeugenpfad für... AG f EF  f AF f EG  f (AX f) (EX  f) A(f U y) EG  y oder E( y U (  f .  y)) 123

34 Basen für die Temporaloperatoren
CTL: (E/A)X und EU und AU AX f   EX  f sonst analog LTL oder (E/A)X und EU und EG A(f U y)  (EG  y  E( y U (fy))) LTL : X und U F f  true U f G f   F  f

35 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  A f

36 Interessante Probleme
Erfüllbarkeit: Geg.: Formel f Frage: Gibt es ein Transitionssystem, in dem f gilt? 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|)

37 Ü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 b c a,c ( a,c b,c c )* G ((a  d)  X X G c) G (a  F b) (F b) U c G ( a  X b ) ( c) U b

38 Übung 2 Welche der folgenden Formeln sind Tautologien?
F y  F ( f U y) G ( f U y)  G F y f U (y U c)  (f  y) U c f U y  f U X y

39 Ü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. Hinweis: Man braucht wirklich keine Vergangenheitsoperatoren!


Herunterladen ppt "Computergestützte Verifikation"

Ähnliche Präsentationen


Google-Anzeigen