Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction



Ähnliche Dokumente
Logische Folgerung. Definition 2.11

Informationsblatt Induktionsbeweis

Übung Theoretische Grundlagen

Grundlagen der Künstlichen Intelligenz

Grundlagen des Maschinellen Lernens Kap. 4: Lernmodelle Teil II

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Theoretische Grundlagen des Software Engineering

Seminar Analyse von Petrinetz-Modellen

Kap. 8: Speziell gewählte Kurven

Primzahlen und RSA-Verschlüsselung

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

QM: Prüfen -1- KN

Konzepte der Informatik

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

1 Mathematische Grundlagen

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Semantik von Formeln und Sequenzen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Statuten in leichter Sprache

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Approximation durch Taylorpolynome

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

4. Dynamische Optimierung

Algorithmen II Vorlesung am

Beweisbar sichere Verschlüsselung

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

Wortproblem für kontextfreie Grammatiken

Übung - Konfigurieren einer Windows 7-Firewall

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Nachweis der Verhaltensäquivalenz von Feldbus-Komponenten auf unterschiedlichen Abstraktionsebenen

2.1 Präsentieren wozu eigentlich?

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Nichtmonotones Schließen

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Verhaltensanalysegraph für Petrinetze

Wie Sie mit Mastern arbeiten

Datenaufbereitung in SPSS. Daten zusammenfügen

Theoretische Grundlagen des Software Engineering

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Grundlagen der Theoretischen Informatik, SoSe 2008

Lineare Gleichungssysteme

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Erstellen von x-y-diagrammen in OpenOffice.calc

Grundbegriffe der Informatik

Verkehrsteilnehmer. Beispiel: Wir betrachten die Modellierung von Handlungskomponenten wie Verkehrsteilnehmern und Straßen.

Mean Time Between Failures (MTBF)

Was ist das Budget für Arbeit?

Programmiersprachen und Übersetzer

Anmerkungen zur Übergangsprüfung

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Einführung in die Algebra

Lösung. Prüfungsteil 1: Aufgabe 1

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Achtung! In Abhängigkeit Ihrer Lohnlizenz können einzelne Felder evtl. nicht angezeigt werden (z.b. Pfänd.summe, PV-frei, UV-frei).

Musterlösungen zur Linearen Algebra II Blatt 5

Definition und Begriffe

Mathematische Maschinen

Korrelation (II) Korrelation und Kausalität

Die Optimalität von Randomisationstests

Grundlagen verteilter Systeme

Logik für Informatiker

Gruppenrichtlinien und Softwareverteilung

1 topologisches Sortieren

Softwarelösungen: Versuch 4

7 Rechnen mit Polynomen

Erfüllbarkeit und Allgemeingültigkeit

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Lineare Gleichungssysteme

Binärer Entscheidungsbaum. für Boole sche Funktionen. (binary decision tree: BDT) Kapitel 4: Binäre Entscheidungsdiagramme

Endlicher Automat (EA)

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Lineare Gleichungssysteme I (Matrixgleichungen)

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Erwin Grüner

C++ Tutorial: Timer 1

Software-Engineering SS03. Zustandsautomat

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Diese Prozesse und noch viele andere Tricks werden in der Digitalfotografie mit Hilfe von Bildbearbeitungsprogrammen, wie z. B. Gimp, bewältigt.

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Das Recht auf gesundheitliche Versorgung ein Menschenrecht!

Java-Programmierung mit NetBeans

GS-Buchhalter/GS-Office 2015 Saldovorträge in folgenden Wirtschaftsjahren erfassen

Die reellen Lösungen der kubischen Gleichung

Transkript:

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Robert Mattmüller Betreuer: Prof. Dr. Stefan Leue Wintersemester 2003/2004 1. Dezember 2003

1 Software Model Checking Predicate Abstraction 1. Dezember 2003 Überblick Einleitung Was bedeutet predicate abstraction? Konstruktion abstrakter Zustandsgraphen Definitionen Ein Abstraktionsschema Exploration des abstrakten Zustandsraumes Eine Implementierung Anwendungsbeispiel und Zusammenfassung

2 Software Model Checking Predicate Abstraction 1. Dezember 2003 Einleitung Was bedeutet predicate abstraction? Ziel: Verifikation von unendlichen (Software-)Systemen. Methoden: theorem proving und model checking. Schritt 1: automatische Erzeugung eines endlichen abstrakten Systems unter wesentlicher Verwendung von theorem proving. Schritt 2: Nachweis der gewünschten Eigenschaft im abstrakten System (model checking).

3 Software Model Checking Predicate Abstraction 1. Dezember 2003 Abstrakter Zustandsraum: Menge der Monome in konkreten Zustandsprädikaten ϕ 1,..., ϕ l. Abstrakte Transitionsrelation: Monom m kleinstes Monom m, das von allen Nachfolgern der von m repräsentierten konkreten Zustände erfüllt wird. Damit konstruierbar: abstrakter Zustandsgraph. Darin Ermittlung der Menge der erreichbaren abstrakten Zustände. Diese liefert obere Abschätzung der Menge der erreichbaren Zustände im konkreten System (Invariante).

4 Software Model Checking Predicate Abstraction 1. Dezember 2003 Überblick Einleitung Was bedeutet predicate abstraction? Konstruktion abstrakter Zustandsgraphen Definitionen Ein Abstraktionsschema Exploration des abstrakten Zustandsraumes Eine Implementierung Anwendungsbeispiel und Zusammenfassung

5 Software Model Checking Predicate Abstraction 1. Dezember 2003 Definitionen und Folgerungen post[r](ϕ) = q.r(q, q) ϕ(q ) beschreibt die Menge der Nachfolgerzustände von ϕ bzgl. R, pre[r](ϕ) = q.(r(q, q ) ϕ(q )) die Menge aller Zustände, die immer in Zustände übergehen, die ϕ erfüllen (Vorgänger von ϕ bzgl. R, schwächste Vorbedingung). Damit gilt: pre[τ i ](ϕ) gdw. (g i ( x) ϕ[ass i ( x)/ x]) post[r](ϕ) ϕ gdw. ϕ pre[r](ϕ ) ϕ ϕ ϕ... ϕ

6 Software Model Checking Predicate Abstraction 1. Dezember 2003 Definitionen S = (Q, R, I) ist der Zustandsgraph eines konkreten Systems, bestehend aus einer Menge von Variablenbelegungen (Zuständen) Q, einer partiellen Übergangsrelation R unter Berücksichtigung von guarded commands, und einer Menge von Startzuständen I. Seien Q A ein Verband abstrakter Zustände, α : P(Q) Q A eine Abstraktionsund γ : Q A P(Q) eine Konkretisierungsfunktion. Dann heißt S A = (Q A, τ A i, IA ) Abstraktion von S genau dann, wenn I γ(i A ) und i q A Q A. post[τ i ](γ(q A )) γ(τi A γ (qa )) τi A(qA ) γ(q A ) post[τ i ] γ q A τ A i

7 Software Model Checking Predicate Abstraction 1. Dezember 2003 Eigenschaften der Abstraktion Der abstrakte Anfangszustand repräsentiert mindestens alle konkreten Anfangszustände. Der Nachfolger eines abstrakten Zustandes repräsentiert mindestens alle Nachfolger von konkreten Zuständen, die von dem abstrakten Zustand repräsentiert werden. Also wird jede konkrete Übergangsabfolge von mindestens einer abstrakten dargestellt. Aus Effizienzgründen gilt i.a. nicht post[τ i ](γ(q A )) = γ(τ A i (qa )).

8 Software Model Checking Predicate Abstraction 1. Dezember 2003 Überblick Einleitung Was bedeutet predicate abstraction? Konstruktion abstrakter Zustandsgraphen Definitionen Ein Abstraktionsschema Exploration des abstrakten Zustandsraumes Eine Implementierung Anwendungsbeispiel und Zusammenfassung

9 Software Model Checking Predicate Abstraction 1. Dezember 2003 Ein spezielles Abstraktionsschema Verband der abstrakten Zustände: Monome in Booleschen Variablen B 1,..., B l. Konkretisierungsfunktion: γ(m( B)) = m[ ϕ/ B] Abstraktionsfunktion (obere Abschätzung): α (ϕ) = l {B i ϕ ϕ i } i=1 l { B i ϕ ϕ i } i=1

10 Software Model Checking Predicate Abstraction 1. Dezember 2003 Abstrakte Transitionen: für eine konkrete Transition τ i so definiert, dass das folgende Diagramm kommutiert: m γ γ(m) τ A i post[τ i ] α (post[τ i ](γ(m))) α post[τ i ](γ(m)) Genauer und unter Berücksichtigung von guarded assignments definiert man τ A i (m) := false l j=1 falls m[ ϕ/ B] g i B j falls post[τ i ](m[ ϕ/ B]) ϕ j B j falls post[τ i ](m[ ϕ/ B]) ϕ j true sonst sonst.

11 Software Model Checking Predicate Abstraction 1. Dezember 2003 Zur Erinnerung: pre[τ i ](ϕ) gdw. (g i ( x) ϕ[ass i ( x)/ x]) post[r](ϕ) ϕ gdw. ϕ pre[r](ϕ ) Damit lässt sich die Definition von τ A i τ A i (m) := false l j=1 (m) ohne -Quantoren darstellen: falls m[ ϕ/ B] g i B j falls (m[ ϕ/ B] g i ( x)) ϕ j [ass i ( x)/ x]) B j falls (m[ ϕ/ B] g i ( x)) ϕ j [ass i ( x)/ x]) true sonst sonst. Beweis der Implikationen in der Fallunterscheidung mit Hilfe von theorem proving.

12 Software Model Checking Predicate Abstraction 1. Dezember 2003 Mögliche Gründe für Nicht-Durchführbarkeit eines der Beweise: Zu schwache Beweisstrategie Nicht-Determinismus der abstrakten Übergangsrelation Zu große abstrakte Startzustandsmenge Zu grober abstrakter Zustandsraum Einschränkung auf Monome Wahl des abstrakten Startzustandes: I A := α (init)

13 Software Model Checking Predicate Abstraction 1. Dezember 2003 Überblick Einleitung Was bedeutet predicate abstraction? Konstruktion abstrakter Zustandsgraphen Definitionen Ein Abstraktionsschema Exploration des abstrakten Zustandsraumes Eine Implementierung Anwendungsbeispiel und Zusammenfassung

14 Software Model Checking Predicate Abstraction 1. Dezember 2003 Methoden zum Durchsuchen des abstrakten Zustandsraumes Erste Approximation der Menge der erreichbaren Zustände: alle berechneten Zustandsmengen seien durch Monome ausdrückbar. Vorbemerkung: Der Supremumsoperator ordnet je zwei Monomen m 1, m 2 das stärkste Monom zu, das höchstens so stark ist wie m 1 m 2. Beispiel: (B 1 B 2 ) (B 2 B 3 ) B 2. I 1 := j=0 X j, mit { X0 := I A X j+1 := p i=1 τ A i (X j) X X X 0 j l Die Berechnung benötigt höchstens l Iterationen. Bei K = 2pl + p Beweisen pro Iteration insgesamt l K Beweise.

15 Software Model Checking Predicate Abstraction 1. Dezember 2003 Zweite Approximation: beliebige Boolesche Ausdrücke in B, Anwendung von τi A auf einzelne abstrakte Zustände: nur I 2 := j=0 X j, mit { X0 := I A X j+1 := {τ A i (m) m X j, i = 1,..., p} X 0..................... Genauere Approximation, aber schlechtere worst case Laufzeit: pro Iteration müssen schlimmstenfalls die Nachfolger aller exponentiell vieler abstrakter Zustände berechnet werden.

16 Software Model Checking Predicate Abstraction 1. Dezember 2003 Relativierung der exponentiellen worst case Laufzeit: Mögliche Vermischung der beiden Approximationen. Nur eine kleine Teilmenge der abstrakten Zustände sollte überhaupt erreichbar sein. Manche abstrakten Zustände haben keine entsprechenden konkreten Zustände ( dependency predicates). Verbesserung der berechneten Invarianten: Rückwärtsanalyse, beginnend mit der ermittelten Invariante.

17 Software Model Checking Predicate Abstraction 1. Dezember 2003 Weitere Möglichkeiten Speicherung der abstrakten Übergangsrelation ( abstrakter Zustandsgraph ) Verifikation von Eigenschaften, die als temporallogische Formeln in B ohne -Quantifikation über Ausführungspfade repräsentiert werden können. Abstrakter Zustandsgraph globaler Kontrollgraph. Inkrementelle Verfeinerung des abstrakten Zustandsgraphen ohne Neuberechnung aller geführten Beweise.

18 Software Model Checking Predicate Abstraction 1. Dezember 2003 Überblick Einleitung Was bedeutet predicate abstraction? Konstruktion abstrakter Zustandsgraphen Definitionen Ein Abstraktionsschema Exploration des abstrakten Zustandsraumes Eine Implementierung Anwendungsbeispiel und Zusammenfassung

19 Software Model Checking Predicate Abstraction 1. Dezember 2003 Pvs als theorem prover. Eine Implementierung Einsatz von decision procedures, rewriting und Booleschen Vereinfachungen mit BDDs. Einführung eines dependency predicate. Berücksichtigung von Vorwissen über das System. Berechnung nur der Implikationen, die mit dependency predicate vereinbar sind und sich nicht aus dem bereits berechneten Graphen ableiten lassen.

20 Software Model Checking Predicate Abstraction 1. Dezember 2003 Eine Implementierung (Forts.) Wichtigste Eigenschaft des Verfahrens: keine Nutzereingriffe notwendig (Ausnahme: Wahl der Beweisstrategie, Wahl der Prädikate ϕ j ). In Frage kommende Prädikate: Vorbedingungen (guards) der Transitionen. Teilformeln der zu verifizierenden Invarianten.

21 Software Model Checking Predicate Abstraction 1. Dezember 2003 Überblick Einleitung Was bedeutet predicate abstraction? Konstruktion abstrakter Zustandsgraphen Definitionen Ein Abstraktionsschema Exploration des abstrakten Zustandsraumes Eine Implementierung Anwendungsbeispiel und Zusammenfassung

22 Software Model Checking Predicate Abstraction 1. Dezember 2003 Eine Anwendung: Bounded Retransmission Protocol Paketweise Datenübertragung Höchstens max viele Wiederholungen der Übertragung einer Nachricht Sender: OK, NOT OK, DONT KNOW Empfänger: FIRST, INCOMPLETE, OK, NOT OK Timers: T1, T2

23 Software Model Checking Predicate Abstraction 1. Dezember 2003 Bounded Retransmission Protocol (Forts.) Korrektheitskriterium: Konsistenz der Confirmations und Indications, Konsistenz von Folgen gesendeter und empfangener Nachrichten, etwa (IN = OUT IN = tail(out )) ϕ 1 := (IN = OUT), ϕ 2 := (IN = tail(out )). Verifikation des Protokolles: 19 Prädikate aus den guards. Abstrakter Zustandsgraph: 475 Zustände, 685 Transitionen, berechnet in drei Stunden auf einer Sparc 10.

24 Software Model Checking Predicate Abstraction 1. Dezember 2003 Zusammenfassung Endliches abstraktes System anstelle eines unendlichen konkreten. Repräsentation der Zustände durch Monome. Abstrakter Zustandsgraph, Menge der erreichbaren abstrakten Zustände. Keine Berechnung von Nachfolgern unerreichbarer Zustände. Berechnung von Invarianten (vollautomatisch). Inkrementelle Anwendbarkeit. Weitere Effizienzsteigerung möglich.

25 Software Model Checking Predicate Abstraction 1. Dezember 2003 Literatur [DDP99] Das, Satyaki, David L. Dill und Seungjoon Park: Experience with Predicate Abstraction. In: Computer Aided Verification, Seiten 160 171, 1999. [GS97] [SO01] Graf, Susanne und Hassen Saïdi: Construction of abstract state graphs with PVS. In: Proc. 9th International Conference on Computer Aided Verification 1997 (CAV 97), Band 1254 der Reihe Lecture Notes in Computer Science, Seiten 72 83. Springer Verlag, 1997. Shankar, N. und S. Owre: PVS Prover Guide. Computer Science Laboratory, SRI International, Menlo Park, CA, 2001.