Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101.

Slides:



Advertisements
Ähnliche Präsentationen
Temporale Logiken: LTL und CTL
Advertisements

Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Statistische Aspekte der PSG
Daniel Neumann Seminar Systementwurf Wintersemester 2006/07 Zustandsautomaten/ Kripke-Strukturen Daniel Neumann
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Eingebettete Systeme Qualität und Produktivität
Bounded Model Checking II
Default Logiken Zhao Li
8. Formale Sprachen und Grammatiken
Finale Semantik und beobachtbares Verhalten
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Hauptseminar Modellüberprüfung Kathrin Ott
Seminar Modellüberprüfung
Kapitel 4 Datenstrukturen
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
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 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:
1 Computergestützte Verifikation Probleme bei der Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen.
Computergestützte Verifikation
1 Computergestützte Verifikation Teil II Infinite State Systems.
1 Computergestützte Verifikation Real Time Systeme 5.1 Timed Automata 5.2 TCTL 5.3 Abstraktion durch Regionen 5.4 Abstraktion durch Zonen.
Computergestützte Verifikation
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Java: Dynamische Datentypen
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Symbolisches Model Checking mit Binary Decision Diagrams
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Das Symbolic Model Verifier (SMV) System Präsentation im Rahmen.
Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät.
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Christian Schindelhauer
GROOVE Graphs for Object-Oriented Verification Seminar: SEFSIS Sommersemester 2006 Basil Becker
Dieter Bergmann, Lichtenfels
Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Zentralübung Automotive Software Engineering – Übungsblatt 8
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Vorlesung Automatisierungsprojekte Seite 6/1
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
Computergestützte Verifikation
Korrektheit von Programmen – Testen
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Korrektheit von Programmen – Testen
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.
 Präsentation transkript:

Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R Fr R.4.101

Testen: kann nur die Anwesenheit von Fehlern feststellen, nicht ihre Abwesenheit. (E. Dijkstra) Verifikation: Nachweis der Korrektheit (theoretisch) Fähigkeit, subtile Fehler zu finden (praktisch) Konstruktion: Erzeugen des Systems aus der Spezifikation Systematische Entwicklungsprozesse: z.B. ISO 9000

Anwendungsgebiete (Auswahl) Safety critical systems (Autos, Flugzeuge, Atomkraftwerke...) Mission critical systems(Raumsonden) Hardware Standards, Protokolle Imageträchtige Software(MS Windows) Tendenz wachsend.....

Verifikationstechniken manuell automatisch Korrektheitsbeweis (z.B. Hoare-Kalkül) interaktivTheorembeweisen Model Checking

Literatur Konferenzen Computer Aided Verification (LNCS...) Skript meiner Vorlesung Model Checking ~kschmidt/modelchecking/

Was ist Model Checking? Erschöpfende Durchmusterung der Zustände eines Systems zur Prüfung einer vorgegebenen Eigenschaft erster Ansatz: 1986 Durchbruch: 1992 inzwischen: einige Erfolgsstories, Einsatz in einigen Firmen, stetige Steigerung der Leistungsfähigkeit Grundproblem: Zustandsexplosion

Zustandsexplosion Wieviele Zustände kann man in welcher Zeit durchmustern? Annahme: 800MHz, genug Speicher, ein neuer Zustand pro Prozessorzyklus 800,000,000 pro Sekunde 48,000,000,000 pro Minute 2,880,000,000,000 pro Stunde 69,120,000,000,000 pro Tag 25,246,080,000,000,000 pro Jahr 504,921,600,000,000,000,000,000,000 seit Urknall (< )

Zustandsexplosion Wie groß muß ein System sein, um Zustände zu haben? Theoretisch reichen boolesche Variablen Praktisch reichen 200 boolesche Variablen (in verteilten Systemen) Meilensteine der Technologie Model Checking: 1986: : : :

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

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

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

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

Inhalt System Abstraktion Spezifikation Simulation Formalisierung Model Checker Gegenbeispiel Modell log. Formel + - Verfeinerung Fehler- beseitigung Präzisierung Überlauf Kapitel 1: Systeme Kapitel 2: Temporale Logik Kapitel 3-k: Finite State Systems Kapitel (k+1)-n: Infinite State Sys.

Kapitel 1 Systeme

Zustand Zusammenfassung aller Systemgrößen, die das weitere Systemverhalten wesentlich beeinflussen können in der Regel beschrieben durch Zuordnung von Werten zu Variablen Kreuzprodukt aller Wertebereiche = Zustandsraum diskrete Systeme = alle Wertebereiche abzaehlbar kontinuierliche Systeme = alle Wertebereiche dicht hybride Systeme = sowohl als auch real-time Systeme = einzige kontinuierliche Größe ist die Zeit finite state systems = Zustandsraum endlich inifinite state systems = Zustandsraum unendlich Abstraktion

System = Zustandsraum S + Menge von Anfangszuständen I + Zustandsübergangsrelation E kontinuierliche Systeme Differenzialgleichungen diskrete Systeme Teilmenge von S x A x S (A = Aktionen) hybride Systeme eine Differenzialgleichung pro Zustand der diskreten Variablen, plus diskrete Relation Für diskrete Systeme: [S,I,A,E] = Transitionssystem

x,y: Nat while x != y do if x < y then y = y – x else x = x – y end Beispiel für Transitionssystem ;6,4 0;2,6 1;6,4 1;2,6 3;6,4 2;2,6 0;2,4 1;2,4 2;2,4 0;2,2 4;2,2 S = {0,1,2,3} x Nat x Nat I = {0} x Nat x Nat A = spaeter E = irgendwie klar

Transitionssysteme sind einfach genug, allgemein genug als zugrundeliegendes theoretisches Konzept, aber.... System Abstraktion Spezifikation Simulation Formalisierung Model Checker Gegenbeispiel Modell log. Formel + - Verfeinerung Fehler- beseitigung Präzisierung Überlauf... ungeeignet als Eingabesprache (wg. Zustandsexplosion)... Programme auch ungeeignet, wg. zu komplexer Syntax

x,y: Nat while x != y do if x < y then y = y – x else x = x – y end Eingabesprache 1: Guarded Commands Var x,y: Nat pc: {0,1,2,3} init(pc) = 0 pc = 0 & x = y pc = 4 pc = 0 & x != y pc = 1 pc = 1 & x < y pc = 2 pc = 1 & x >= y pc = 3 pc = 2 y = y – x, pc = 0 pc = 3 x = x – y, pc = 0 Jedes guarded command bildet eine Aktion Enabling: en(a) Teilmenge von S ( = guard liefert true) Zustandsübergang = wähle enabled guarded command und führe simultane Zuweisung aus

weitere Klassifikation von Systemen sequentiell = jeder Zustand hat max. einen Nachfolgezst. deterministisch = pro Zustand und Aktion max. 1 Nachfolgezst. nichtdeterministisch = beliebig viele Nachfolger verteilt = viele unabhängige Aktionen Unabhängigkeitsrelation I zwischen Aktionen: [a,b] in I gdw. keine der beiden Aktionen kann die Enabling- Bedingung der anderen ändern, und Resultat der Hinterein- anderausführung von a und b ist unabhängig von der Reihenfolge s s1 s2 s z.B. [g,g] in I gdw. vorkommende Variablen disjunkt

Eingabesprache 2: Transitionsrelationen Ursprung: Hardware Logik Register (n bits) r i = f i (r 1,...,r n, i 1,...,i m ) Input Output o j = f j (r 1,...,r n, i 1,...,i m )

x,y: Nat while x != y do if x < y then y = y – x else x = x – y end Var x,y: Nat pc: {0,1,2,3} init(pc) = 0 next(pc) = switch(pc) case 0 : if x = y then 4 else 1 case 1 : if x < y then 2 else 3 case 2 : 0 case 3 : 0 else 4 next(x) = if pc = 3 then x – y else x next(y) = if pc = 2 then y – x else y alle Variablen werden simultan geändert; Aktionen = (z.B.) Werte der Eingabevariablen

Weitere Eingabesprachen Petrinetze Prozeßalgebren Komposition von Transitionssystemen Variablen-Transitionssysteme

Konstruktion des Transitionssystems ist Aufgabe des Model Checkers Als Modell wird dem Model Checker eine implizite Systembeschreibung übergeben Hinter jeder impliziten Beschreibung steckt ein Transitionssystem Zusammenfassung Kapitel 1 Es gibt viele Beschreibungssprachen

Übung 1: Konstruiere das Transitionssystem zu folgendem Programm (als guarded commands): init(x1) = 1; init(x2) = 1, init(pc1) = 0, init(pc2) = 0, init(y) = 1 pc1 = 0 & y = 1 pc1 = 1, y = 0 pc2 = 0 & y = 1 pc2 = 1, y = 0 pc1 = 1 x1 = - x1, pc1 = 2 pc2 = 1 x2 = -x2, pc2 = 2 pc1 = 2 y = 1, pc1 = 0 pc2 = 2 y = 1, pc2 = 0

Übung 2: Ein 3-bit-Counter hat 3 Bits als Zustandsvariablen, die eine Zahl zwischen 0 und 7 im Binärkode repräsentieren. Der Counter soll pro Takt um eine Zahl weiterzählen, wobei der Nachfolger der 7 wieder die Null sein soll. Anfangszustand sei die Null. Beschreibe dieses Verhalten als Nextstate-Programm mit drei booleschen Variablen!

Übung 3: Gegeben sei folgendes Transitionssystem (Zustände sind Knoten, Ereignisse sind durch Kanten zwischen Knoten repräsentiert, die mit Aktionen beschriftet sind). Gib die größtmögliche symmetrische und irreflexive Relation zwischen Aktionen an, die die Eigenschaften einer Unabhängigkeitsrelation erfüllt! b c d a c d a c d a c d a f f f f g g g g e e e e