Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101."—  Präsentation transkript:

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

2 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

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

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

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

6 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

7 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 (< 10 27 )

8 Zustandsexplosion Wie groß muß ein System sein, um 10 27 Zustände zu haben? Theoretisch reichen 80-90 boolesche Variablen Praktisch reichen 200 boolesche Variablen (in verteilten Systemen) Meilensteine der Technologie Model Checking: 1986: 10 6 1992: 10 20 1996: 10 100 2000: 10 1000

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

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

11 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

12 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

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

14 Kapitel 1 Systeme

15 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

16 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

17 x,y: Nat while x != y do if x < y then y = y – x else x = x – y end Beispiel für Transitionssystem 0 1 2 3 4 0;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

18 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

19 x,y: Nat while x != y do if x < y then y = y – x else x = x – y end Eingabesprache 1: Guarded Commands 0 1 2 3 4 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

20 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

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

22 x,y: Nat while x != y do if x < y then y = y – x else x = x – y end 0 1 2 3 4 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

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

24 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

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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen