Download - Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101
![Page 1: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/1.jpg)
Computergestützte Verifikation
(Halbkurs)
Karsten Schmidt
Di 9-11 R.3.113 Fr 15-17 R.4.101
![Page 2: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/2.jpg)
Testen: kann nur die Anwesenheit von Fehlernfeststellen, nicht ihre Abwesenheit. (E. Dijkstra)
Verifikation: Nachweis der Korrektheit (theoretisch)
Fähigkeit, subtile Fehler zu finden (praktisch)
Konstruktion: Erzeugen des Systems aus derSpezifikation
Systematische Entwicklungsprozesse: z.B. ISO 9000
![Page 3: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/3.jpg)
Anwendungsgebiete (Auswahl)
Safety critical systems (Autos, Flugzeuge, Atomkraftwerke...)
Mission critical systems (Raumsonden)
Hardware
Standards, Protokolle
Imageträchtige Software (MS Windows)
Tendenz wachsend.....
![Page 4: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/4.jpg)
Verifikationstechniken
manuell
automatisch
Korrektheitsbeweis (z.B. Hoare-Kalkül)
interaktiv Theorembeweisen
Model Checking
![Page 5: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/5.jpg)
Literatur
Konferenzen“Computer Aided Verification”(LNCS ...)
Skript meiner Vorlesung“Model Checking”~kschmidt/modelchecking/
![Page 6: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/6.jpg)
Was ist Model Checking?
Erschöpfende Durchmusterung der Zustände einesSystems 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
![Page 7: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/7.jpg)
Zustandsexplosion
Wieviele Zustände kann man in welcher Zeitdurchmustern?Annahme: 800MHz, genug Speicher,ein neuer Zustand pro Prozessorzyklus
800,000,000 pro Sekunde48,000,000,000 pro Minute
2,880,000,000,000 pro Stunde69,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 (< 1027)
![Page 8: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/8.jpg)
Zustandsexplosion
Wie “groß” muß ein System sein, um 1027 Zustände zu haben?
Theoretisch reichen 80-90 boolesche Variablen
Praktisch reichen 200 boolesche Variablen (in verteilten Systemen)
Meilensteine der Technologie Model Checking:
1986: 106 1992: 1020 1996: 10100
2000: 101000
![Page 9: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/9.jpg)
Model Checking: Prinzipskizze
System
Spezifikation Formalisierung log. Formel
Abstraktion Modell
Model Checker+
Gegenbeispiel
-
Simulation
VerfeinerungFehler-beseitigung
Präzisierung
Überlauf
![Page 10: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/10.jpg)
Inhalt
System Abstraktion
Spezifikation
Simulation
Formalisierung
Model Checker
Gegenbeispiel
Modell
log. Formel
+
-
VerfeinerungFehler-beseitigung
Präzisierung
Überlauf
Kapitel 1: Systeme
![Page 11: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/11.jpg)
Inhalt
System Abstraktion
Spezifikation
Simulation
Formalisierung
Model Checker
Gegenbeispiel
Modell
log. Formel
+
-
VerfeinerungFehler-beseitigung
Präzisierung
Überlauf
Kapitel 1: Systeme
Kapitel 2: Temporale Logik
![Page 12: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/12.jpg)
Inhalt
System Abstraktion
Spezifikation
Simulation
Formalisierung
Model Checker
Gegenbeispiel
Modell
log. Formel
+
-
VerfeinerungFehler-beseitigung
Präzisierung
Überlauf
Kapitel 1: Systeme
Kapitel 2: Temporale Logik
Kapitel 3-k: Finite State Systems
![Page 13: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/13.jpg)
Inhalt
System Abstraktion
Spezifikation
Simulation
Formalisierung
Model Checker
Gegenbeispiel
Modell
log. Formel
+
-
VerfeinerungFehler-beseitigung
Präzisierung
Überlauf
Kapitel 1: Systeme
Kapitel 2: Temporale Logik
Kapitel 3-k: Finite State SystemsKapitel (k+1)-n: Infinite State Sys.
![Page 14: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/14.jpg)
Kapitel 1
Systeme
![Page 15: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/15.jpg)
Zustand
Zusammenfassung aller Systemgrößen, die das weitereSystemverhalten wesentlich beeinflussen können
in der Regel beschrieben durch Zuordnung von Werten zuVariablen
Kreuzprodukt aller Wertebereiche = Zustandsraum
diskrete Systeme = alle Wertebereiche abzaehlbarkontinuierliche Systeme = alle Wertebereiche dichthybride Systeme = sowohl als auchreal-time Systeme = einzige kontinuierliche Größe ist die Zeitfinite state systems = Zustandsraum endlichinifinite state systems = Zustandsraum unendlich
Abstraktion
![Page 16: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/16.jpg)
System
=
Zustandsraum S + Menge von Anfangszuständen I +Zustandsübergangsrelation E
kontinuierliche Systeme Differenzialgleichungendiskrete 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
![Page 17: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/17.jpg)
x,y: Nat
while x != y doif x < y then
y = y – xelse
x = x – yend
end
Beispiel für Transitionssystem
0
12
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
![Page 18: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/18.jpg)
Transitionssysteme sind einfach genug, allgemein genugals zugrundeliegendes theoretisches Konzept, aber ....
System Abstraktion
Spezifikation
Simulation
Formalisierung
Model Checker
Gegenbeispiel
Modell
log. Formel
+
-
VerfeinerungFehler-beseitigung
Präzisierung
Überlauf
... ungeeignet als Eingabesprache (wg. Zustandsexplosion)
... Programme auch ungeeignet, wg. zu komplexer Syntax
![Page 19: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/19.jpg)
x,y: Nat
while x != y doif x < y then
y = y – xelse
x = x – yend
end
Eingabesprache 1: Guarded Commands
0
12
3
4
Var x,y: Nat pc: {0,1,2,3}
init(pc) = 0
pc = 0 & x = y pc = 4pc = 0 & x != y pc = 1pc = 1 & x < y pc = 2pc = 1 & x >= y pc = 3pc = 2 y = y – x, pc = 0pc = 3 x = x – y, pc = 0
Jedes guarded command bildet eine AktionEnabling: en(a) Teilmenge von S ( = guard liefert true)Zustandsübergang = wähle enabled guarded command undführe simultane Zuweisung aus
![Page 20: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/20.jpg)
weitere Klassifikation von Systemen
sequentiell = jeder Zustand hat max. einen Nachfolgezst.deterministisch = pro Zustand und Aktion max. 1 Nachfolgezst.nichtdeterministisch = beliebig viele Nachfolgerverteilt = 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
![Page 21: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/21.jpg)
Eingabesprache 2: Transitionsrelationen
Ursprung: Hardware
LogikRegister (n bits)
ri’ = fi(r1,...,rn,i1,...,im)
Input
Output
oj’ = fj(r1,...,rn,i1,...,im)
![Page 22: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/22.jpg)
x,y: Nat
while x != y doif x < y then
y = y – xelse
x = x – yend
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
![Page 23: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/23.jpg)
Weitere Eingabesprachen
Petrinetze
Prozeßalgebren
Komposition von Transitionssystemen
Variablen-Transitionssysteme
![Page 24: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/24.jpg)
Konstruktion des Transitionssystemsist Aufgabe des Model Checkers
Als Modell wird dem Model Checker eine implizite Systembeschreibung übergeben
Hinter jeder impliziten Beschreibung stecktein Transitionssystem
Zusammenfassung Kapitel 1
Es gibt viele Beschreibungssprachen
![Page 25: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/25.jpg)
Übung 1:
Konstruiere das Transitionssystem zu folgendemProgramm (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 = 0pc2 = 0 & y = 1 pc2 = 1, y = 0pc1 = 1 x1 = - x1 , pc1 = 2pc2 = 1 x2 = -x2 , pc2 = 2pc1 = 2 y = 1, pc1 = 0pc2 = 2 y = 1, pc2 = 0
![Page 26: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/26.jpg)
Übung 2:
Ein 3-bit-Counter hat 3 Bits als Zustandsvariablen, die eineZahl zwischen 0 und 7 im Binärkode repräsentieren.Der Counter soll pro Takt um eine Zahl weiterzählen, wobeider Nachfolger der 7 wieder die Null sein soll. Anfangszustandsei die Null.Beschreibe dieses Verhalten als Nextstate-Programm mitdrei booleschen Variablen!
![Page 27: Computergestützte Verifikation (Halbkurs) Karsten Schmidt Di 9-11 R.3.113 Fr 15-17 R.4.101](https://reader036.vdocuments.pub/reader036/viewer/2022062417/55204d6449795902118b9f78/html5/thumbnails/27.jpg)
Ü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öglichesymmetrische 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