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

27
Computergestützte Verifikation (Halbkurs) Karsten Schmidt .3.113 Fr 15-17

Transcript of 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Kapitel 1

Systeme

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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

Ü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