Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Leonhardt Wolfgram Geändert vor über 11 Jahren
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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.