Computergestützte Verifikation

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Temporale Logiken: LTL und CTL
LTL - Modellüberprüfung
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Eingebettete Systeme Qualität und Produktivität
Bounded Model Checking II
Zusammenfassung der Vorwoche
Default Logiken Zhao Li
Hauptseminar Modellüberprüfung Kathrin Ott
Seminar Modellüberprüfung
Verifizieren versus Berechnen
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Computergestützte Verifikation
Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R Fr R
1 Computergestützte Verifikation Abstraktion.
Computergestützte Verifikation
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Computergestützte Verifikation
1 Computergestützte Verifikation Teil II Infinite State Systems.
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Real Time Systeme 5.1 Timed Automata 5.2 TCTL 5.3 Abstraktion durch Regionen 5.4 Abstraktion durch Zonen.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Symbolisches Model Checking mit Binary Decision Diagrams
Christian Schindelhauer
Christian Schindelhauer
AC Analyse.
AC Analyse. 2Ausgewählte Themen des analogen Schaltungsentwurfs Sprungantwort.
Folie 1 Kapitel II. Vom Raumbegriff zu algebraischen Strukturen Neubeginn: Herleitung des Begriffs Vektorraum aus intuitiven Vorstellungen über den Raumbegriff.
Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Materialien zum Informatikunterricht (Pohlig-Häberle)
1 Fachtagung am Seniorenorientiertes Design und Marketing ThyssenKrupp Immobilien Design for all - Anpassungen im Wohnungsbestand 1.Demographie.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Jakis Überblick! Ein Viereck hat 4 Ecken (und 4 Seiten).
Analyse von Ablaufdiagrammen
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Das Bernoulli-Prinzip
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.

Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Computergestützte Verifikation
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Es war einmal ein Haus
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
1 Computergestützte Verifikation Übung 1 Konstruiere den Regionengraph für folgendes System (Anfang: k = 0) ! Identifiziere in diesem Graph.
Übung 1 Gegeben ist folgender Pfad. Die Notation ( ... ) * soll bedeuten, daß sich die eingeklammerte Sequenz bis ins Unendliche wiederholt. Welche Pfadeigenschaften.
 Präsentation transkript:

Computergestützte Verifikation 19.4.2002

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

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

Kapitel 2 Temporale Logik

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

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

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

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

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

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

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

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 

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

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

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

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))

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) 14444444244444444444443 + atomare Aussagen + Boolesche Operatoren = Linear Time Temporal Logic (LTL)

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

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.

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

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

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

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

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

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

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)

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

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

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

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))

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

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

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

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

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

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|)

Ü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

Ü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

Ü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!