x 2 - Universität Münster

Werbung
WIRTSCHAFTSINFORMATIK
Westfälische
Wilhelms-Universität
Münster
WIRTSCHAFTS
INFORMATIK
Symbolisches Model Checking
mit
Binary Decision Diagrams
Im Rahmen des Seminars "Ausgewählte Kapitel des
Software Engineering insb. Formale Spezifikation"
Andreas Jacobs
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Motivation
2. Model Checking
3. Binary Decision Diagrams
4. Symbolisches Model Checking
5. Fazit
2
1. Motivation
WIRTSCHAFTS
INFORMATIK
Verifikation von Hardware- und
Softwaresystemen
Testfälle


Testen
Simulation
- Unvollständigkeit
+ einfache Verfahren
+ große Erfahrung
Beweis der Korrektheit

Deduktive Verifikation

Model Checking
- aufwendige Verfahren
- bei kleinen Systemen
+ Beweis der Korrektheit
3
1. Motivation
WIRTSCHAFTS
INFORMATIK
Warum Verifikation von Hardware- und
Softwaresystemen?

Hardware- und Softwaresysteme finden immer größere Verbreitung
-
Eingebettete Systeme (Handys, Autos, usw.)
Flächendeckende Verbreitung im betrieblichen Bereich
Abhängigkeit von den Systemen

Systeme werden immer komplexer
-
Mooresches Gesetz
Betriebssystementwicklung
Fehler schwieriger zu finden
4
1. Motivation
WIRTSCHAFTS
INFORMATIK
Fehler verursachen hohe Kosten
Ariane 5 (1996)
Pentium-Division (1994)
Quelle: http://www.cpu-museum.de/?m=Intel&f=Pentium+P5
Die neue "Ariane 5 ESC-A" auf der Startrampe.
(Foto: ESA)
5
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Motivation
2.
2. Model
ModelChecking
Checking
2.1 Modellbildung
2.2 Spezifikation
2.3 Verifikation
3. Binary Decision Diagrams
4. Symbolisches Model Checking
5. Fazit
6
2. Model Checking
WIRTSCHAFTS
INFORMATIK
+ automatisch
-bei Fehlern Ausgabe eines Fehlerpfades
-kein Eingriff während des Algorithmus nötig
- endlicher Zustandraum
-state expolsion problem
7
2.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
Sei AP eine Menge atomarer Aussagen.
Als Kripke-Struktur wird ein
Tripel M = (S, R, L) über AP bezeichnet mit



S als endliche Menge von Systemzuständen,
einer totalen Transitionsmenge R ⊆ S×S, so dass
jeder Zustand s ∈ S einen Nachfolger t ∈ S in der
Form hat, dass gilt R(s,t),
einer Funktion L, die jedem Zustand s ∈ S eine
Menge der in s wahren atomaren Aussagen
zuweist.
8
2.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
Ein Pfad mit einem Startzustand s ist eine unendliche Folge von
Zuständen π = s0,s1,s2,s3,… , so dass s0 = s und R(si, si+1) für alle i ≥ 0 gilt.
Beispielsweise s1,s2,s2,s5,s6,….
9
2.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
state explosion problem


Variable mit n Bits hat 2n Zustände.
Bei n parallelen, unabhängigen Prozessen gibt es n! unterschiedliche
Ausführungsreihenfolgen.
Lösungsansätze:


Symbolische Darstellung der Zustandsmenge
Partial Order Reduction
10
2.2 Spezifikation
WIRTSCHAFTS
INFORMATIK
Eine CTL Formel kann folgende Elemente enthalten:

Aussagevariablen (atomar): (vgl. Menge AP der Kripke-Struktur),

Boolesche Operatoren: ∧,∨,…(16 Operatoren),

Pfadquantoren: A (auf allen Pfaden gilt), E (auf mindestens einem Pfad
gilt),

temporale Operatoren: X (Nachfolger), F (zukünftig), G (immer), U (bis)
und R (Komplement zu U).
Auf einen Pfadquantor folgt immer ein temporaler Operator und alle
10 Kombinationen lassen sich durch EX, EG und EU ausdrücken.
11
2.2 Spezifikation
WIRTSCHAFTS
INFORMATIK
CTL Formeln
12
2.3 Verifikation
WIRTSCHAFTS
INFORMATIK
2. Model Checking
2.1 Modellbildung: Kripke-Struktur
2.2 Spezifikation:
CTL Formel
2.3
2.3 Verifikation
Verifikation
2.3.1 Fixpunkte
2.3.2 kleinste/größte Fixpunkte
2.3.3 CTL Model Checking
Es muss ein Algorithmus definiert werden, mit dem man in der
Lage ist zu prüfen, ob eine Kripke-Struktur einer CTL Formel
genügt.
13
2.3.1 Fixpunkte
WIRTSCHAFTS
INFORMATIK
P ({s1,s2,s3}) bzgl. der Teilmengenrelation ⊆
P
14
2.3.1 Fixpunkte
WIRTSCHAFTS
INFORMATIK
15
2.3.2 Kleinste / größte Fixpunkte
WIRTSCHAFTS
INFORMATIK
16
2.3.2 Kleinste / größte Fixpunkte
WIRTSCHAFTS
INFORMATIK
17

2.3.3 CTL Model Checking
WIRTSCHAFTS
INFORMATIK
function getExtremeFixpoint(τ: Funktional,
Z{false,true}):Z;
begin
Z’ = τ(Z);
while(Z’≠Z)do
Z = Z’;
Z’ = τ(Z);
end while;
return(Z);
end function.
18
2.3.3 CTL Model Checking: Beispiel 1
WIRTSCHAFTS
INFORMATIK
EG p
Z’=
τ(τ(
true
true
) ))
Z = τ(
true
τ(τ(τ(true)))
s1
τ=
Z = true;
Z’= τ(Z);
while(Z’≠Z)do
Z = Z’;
Z’ = τ(Z);
end while;
p
s2
p
s3
p,
r
s5
==
≠
1,s
2,s
3}5}
Z =ZZ{s
==1{s
,s{s
2,s
1
3,s
2
4,s
3
,s6}
s6
s4
p
r
return(Z);
19
2.3.3 CTL Model Checking: Beispiel 2
WIRTSCHAFTS
INFORMATIK
E[p U r] =
1.
Hallo
Hallo
Hallo
Hallo
Hallo
3.
Hallo
Hallo
Hallo
Hallo
Hallo
2.
Hallo
Hallo
Hallo
Hallo
Hallo
4.
Hallo
Hallo
Hallo
Hallo
Hallo
20
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Motivation
2. Model Checking
3.
Decision
Diagrams
3. Binary
Binary
Decision
Diagrams
3.1 Ordered Binary Decision Diagrams
3.2 Operationen auf OBDDs
3.3 Komplexitätsbetrachtungen
4. Symbolisches Model Checking
5. Fazit
21
3.1 Ordered Binary Decision Diagrams
WIRTSCHAFTS
INFORMATIK
3. Binary Decision Diagrams
3.1
Diagrams
3.1 Ordered
OrderedBinary
BinaryDecision
Decision
Diagrams
3.1.1 Definition Binary Decision Diagrams
3.1.2 Ordnung und Reduktion
3.1.3 Problem der Variablenordnung
3.2 Operationen auf OBDDs
3.3 Komplexitätsbetrachtungen
22
3.1.1 Definition Binary Decision Diagram
WIRTSCHAFTS
INFORMATIK
Ein Binary Decision Diagram (BDD) stellt eine Boolesche
Funktion als einen gerichteten, azyklischen Graphen dar.
f  (x1  x 2 )  x 3

Alle Endknoten (Blätter) sind entweder mit 0 oder 1 markiert.

Jeder andere Knoten k repräsentiert eine binäre Variable xi
und hat genau zwei Nachfolger:
lo(k), wenn xi=0
hi(k), wenn xi=1
23
3.1.2 Ordnung und Reduktion
WIRTSCHAFTS
INFORMATIK
Ordered BDD (Randal E. Bryant 1986)
Effiziente Darstellung von (vielen) Booleschen Funktionen durch
zwei Einschränkungen auf BDDs:
1. Ordnung des BDD -> OBDD
2. Reduktion des OBDD -> (Reduced) OBDD
24
3.1.2 Ordnung und Reduktion
WIRTSCHAFTS
INFORMATIK
1. Ordnung

totale Ordnung auf die Menge der Variablen, so dass für jeden
Knoten k mit dem Wert xi gilt:
- ∄ n ∈ {lo(k), hi(k)} mit xj, dass gilt: i,j ∈1..n und j≥i
25
3.1.2 Ordnung und Reduktion
WIRTSCHAFTS
INFORMATIK
2. Reduktion (zwei Regeln)
verdeckung
26
3.1.2 Ordnung und Reduktion
WIRTSCHAFTS
INFORMATIK
Beispiel:
verdeckung
verdeckung
verdeckung
27
3.1.2 Ordnung und Reduktion
WIRTSCHAFTS
INFORMATIK
OBDD
Ein Ordered Binary Decision Diagram (OBDD) stellt
eine Boolesche Funktion als einen gerichteten,
azyklischen Graphen dar, der sowohl geordnet als
auch reduziert ist.

Genau ein Blatt hat den Wert 0,
das andere den Wert 1.

Jeder andere Knoten k repräsentiert eine binäre
Variable xi und hat genau zwei Nachfolger:
- lo(k), wenn xi=0
- hi(k), wenn xi=1
Ein OBDD ist eine kanonische Darstellung einer Booleschen Funktion.
28
3.1.3 Problem der Variablenordnung
WIRTSCHAFTS
INFORMATIK
OBDDs zu derselben Funktion (a1  b1 )  (a 2  b2 )  (a 3  b3 )
a1  b1  a 2  b2  a 3  b3
a1  a 2  a 3  b1  b2  b3
29
3.1.3 Problem der Variablenordnung
WIRTSCHAFTS
INFORMATIK
Sifting-Algorithmus
// Phase 1: Ermittlung der lokal besten Position von x2
// x2 steigt in Richtung der Blätter auf
// x2 sinkt in Richtung des Startknotens ab
// alle Positionen durchlaufen
// Phase 2: Aufsteigen zur besten Variablenordnung
// beste Variablenordnung erreicht: x1<x3<x2<x4
x1
x1
x1
x1
x1
x2
x2
x3
x3
x3
x2
x1
x3
x2
x4
x2
x3
x3
x4
x4
x2
x4
x4
x4
x1<x2<x3<x4
swap(x2, x3)
swap(x2, x4)
swap(x4, x2)
swap(x3, x2)
swap(x1, x2)
x1
x1
x2
x3
x3
x2
x4
x4
swap(x2, x1)
swap(x2, x3)
30
3.2 Operationen auf OBDDs
WIRTSCHAFTS
INFORMATIK
3. Binary Decision Diagrams
3.1 Ordered Binary Decision Diagrams
3.2
3.2 Operationen
Operationenauf
aufOBDDs
OBDDs
3.2.1 Negation
3.2.2 Apply
3.2.3 AndExists
3.3 Komplexitätsbetrachtungen
31
3.2.1 Negation
WIRTSCHAFTS
INFORMATIK
32
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
Verknüpfung zweier Boolescher Funktionen mit einem
beliebigen zweistelligen Booleschen Operator:
(f g)(x1 ,..., x n )  f (x1,..., x n ) g(x1,..., x n )
33
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
Apply-Algorithmus:

Gleiche Variablenordnung, rekursiv durch Shannon-Entwicklung
f g  (x i  (f xi 0

g xi 0 ))  (x i  (f xi 1
g xi 1 ))
Fallunterscheidung beim Aufruf der OBDDs:
1.
F und G sind Blätter -> Rekursion beendet
2.
F und/oder G sind keine Blätter -> rekursiver Aufruf von Apply
2.1 Startknoten beider OBDD repräsentieren die gleiche Variable
2.2 Startknoten repräsentieren nicht die gleiche Variable
34
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
2.1: Beide Startknoten repräsentieren x1

Knoten mit x1 wird erzeugt.

Zwei rekursive Aufrufe von Apply.
35
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
2.2: F repräsentiert die „kleinere Variable“ x2

Knoten mit x2 wird erzeugt.

Zwei rekursive Aufrufe von Apply.
36
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
2.2: G repräsentiert die „kleinere Variable“ x3

Knoten mit x3 wird erzeugt.

Zwei rekursive Aufrufe von Apply.
37
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
1: F und G sind Blätter

Ein Blatt wird entsprechend dem Booleschen Operator erzeugt.

Apply wird mehr rekursiv aufgerufen.
38
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
1: F und G sind Blätter

Ein Blatt wird entsprechend dem Booleschen Operator erzeugt.

Apply wird mehr rekursiv aufgerufen.
39
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
2.1: Beide Startknoten repräsentieren x3

Knoten mit x3 wird erzeugt.

Zwei rekursive Aufrufe von Apply.
40
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
1: F und G sind Blätter

Es wird auf ein bereits berechnetes Ergebnis zurückgegriffen.

Kein rekursiver Aufruf von Apply.
41
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
1: F und G sind Blätter

Ein Blatt wird entsprechend dem Booleschen Operator erzeugt.

Kein rekursiver Aufruf von Apply.
42
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
2.2: F repräsentiert die „kleinere Variable“ x3

Ein Blatt wird entsprechend dem Booleschen Operator erzeugt.

Apply ist fertig. Das Ergebnis-OBDD ist nicht reduziert.
43
3.2.2 Apply
WIRTSCHAFTS
INFORMATIK
Komplexität von Apply: O(|F|*|G|)
Tricks:
1. Frühzeitige
Auswertung
2. Hashtabelle zum
Speichern der
Berechnungen
44
3.2.3 AndExists
WIRTSCHAFTS
INFORMATIK
existentielle Quantifizierung von Variablen

Für eine Boolesche Funktion ist die existenzielle Quantifizierung
bezüglich der Variablen x definiert durch
x.f  f x 0  f x 1

Für einen Vektor x  (x1 ,..., x n )
gilt:
x.f 
V
(x.f )(a)
a{false,true}n
45
3.2.3 AndExists
WIRTSCHAFTS
INFORMATIK
AndExists funktioniert wie Apply mit der Konjunktion (∧) als Booleschen
Operator.
Die einzige Änderung ist:
x.f  f x 0  f x 1
46
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
47
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
48
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
49
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
50
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
51
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
Das Ergebnis von AndExists ist nicht reduziert.
52
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
53
3.2.3 AndExists – Beispiel
WIRTSCHAFTS
INFORMATIK
54
3.3 Komplexitätsbetrachtungen
WIRTSCHAFTS
INFORMATIK
3. Binary Decision Diagrams
3.1 Ordered Binary Decision Diagrams
3.2 Operationen auf OBDDs
3.3
3.3 Komplexitätsbetrachtungen
Komplexitätsbetrachtungen
3.3.1 Darstellung Boolescher Funktionen als OBDDs
3.3.2 Operationen auf OBDDs
55
WIRTSCHAFTS
INFORMATIK
3.3.1 Darstellung Boolescher
Funktionen als OBDDs
Funktionsklasse
Komplexität
bester Fall
schlechtester Fall
symmetrisch
linear
quadratisch
Integer Addition
linear
exponentiell
Integer Multiplikation
exponentiell
exponentiell
56
3.3.2 Operationen auf OBDDs
WIRTSCHAFTS
INFORMATIK
Algorithmus
Komplexität
Reduktion von F
proportional zur Knotenanzahl: O(F)
Variablenordnung mit Sifting
O(n2) Vertauschungen zweier Variablen
Negation
konstant (Vertauschung der Blätter)
Apply(F,G,*)
quadratisch: O(|F|*|G|)
AndExists((x1,…,xn),F,G)
exponentiell: O(|F|*|G|*22n)
57
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Motivation
2. Model Checking
3. Binary Decision Diagrams
4.
Symbolisches Model
Checking
4. Symbolisches
Model
Checking
4.1 Modellbildung
4.2 Spezifikation
4.3 Verifikation
5. Fazit
58
4.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
Symbolische Darstellung der Kripke-Struktur
59
4.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
M = (S, S0, R, L)

Ein Zustand kann durch einen Vektor Boolescher Werte
ausgedrückt werden:
z.B. s1 ≙ (0,0)

Eine Menge von Zuständen kann eindeutig durch ein
Funktional dargestellt werden:
p  (x1 ,..., x n ).p
- OBDD p enthält nur die Variablen x1,…,xn
- p ist eine Menge von Booleschen Vektoren
60
4.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
M = (S, S0, R, L)

Beispiel zur Menge von Zuständen:
p  (x1 ,..., x n ).p
Boolescher Vektor (x2, x1):
s3 und s4: (x 2  x1 )  (x 2  x1 )  x 2 = p
 (1) ≙ Menge der Zustände, in denen r∈AP gilt.
61
4.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
M = (S, S0, R, L)

Ein Zustandsübergang wird durch ein Paar von
Zuständen ausgedrückt:
(s,s)

z.B. (s1,s2)≙( (0,0), (0,1) )
Eine Menge von Zustandsübergängen kann eindeutig
durch ein Funktional dargestellt werden:
R  ((x1 ,..., x n ),(x1 ,..., x n )). R
- OBDD R enthält nur die Variablen x1,…, xn, x1´,…, xn´
- R ist eine Menge von Paaren Boolescher Vektoren
62
4.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
M = (S, S0, R, L)
R  ((x1 ,..., x n ),(x1 ,..., x n )). R
Überlagerung
R = ((s
1,s2), (s2,s2),
(s2,s3), (s3,s4))
≙
63
4.1 Modellbildung
WIRTSCHAFTS
INFORMATIK
M = (S, S0, R, L)

Anhand einer atomaren Aussage wird ein OBDD mit denjenigen
Zuständen zurückgegeben, in denen die Aussage gilt.
L(p) = (x 2  x1 )  (x 2  x1 )  (x 2  x1 )  x 2  (x 2  x1 )
64
4.2 Spezifikation
WIRTSCHAFTS
INFORMATIK
Zur Erinnerung:
65
4.2 Spezifikation
WIRTSCHAFTS
INFORMATIK
Gesucht: CTL-Operator EX auf symbolischer Kripke-Struktur
Gegeben:
EXp ≙
(x1 ,..., x n )  x
Nachfolger (x1 ,..., xn )  x
Übergang
((x1 ,..., x n ),(x1 ,..., x n ))
Lösung:
66
4.2 Spezifikation
WIRTSCHAFTS
INFORMATIK
EXp  x.x .(R(x, x )  p(x ))
R  ((x1 ,..., x n ),(x1 ,..., x n )).R
p  (x1 ,..., x n ).p
EXp  x.x.(R  p)
AndExists Algorithmus
67
4.3 Verifikation
WIRTSCHAFTS
INFORMATIK
Analyse
der
Formel
AndExists
kleinster
Fixpunkt
größter
Fixpunkt
68
4.3 Verifikation: Beispiel
WIRTSCHAFTS
INFORMATIK
EG p
69
4.3 Verifikation: Beispiel
WIRTSCHAFTS
INFORMATIK
70
4.3 Verifikation: Beispiel
WIRTSCHAFTS
INFORMATIK
71
4.3 Verifikation: Beispiel
WIRTSCHAFTS
INFORMATIK
72
4.3 Verifikation: Beispiel
WIRTSCHAFTS
INFORMATIK
73
4.3 Verifikation: Beispiel
WIRTSCHAFTS
INFORMATIK
74
4.3 Verifikation: Beispiel
WIRTSCHAFTS
INFORMATIK
75
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Motivation
2. Model Checking
3. Binary Decision Diagrams
4. Symbolisches Model Checking
5.
Fazit
5. Fazit
76
5. Fazit
WIRTSCHAFTS
INFORMATIK

Der vorgestellte Algorithmus zum Symbolischen Model Checking
ist ein effizientes Verfahren zur automatischen Verifikation.

Grenzen des Model Checking:
- endlicher Zustandsraum
- state explosion problem

Symbolic Model Verifier (SMV) System in der Praxis
- Cache-Protokoll im IEEE-Futurebus+ (1992)

bisherige Erfolge vor allem im Hardwarebereich und bei
Kommunikationsprotokollen
77
5. Fazit
WIRTSCHAFTS
INFORMATIK

große Unternehmen aktiv im Bereich Model Checking
- SLAM Projekt von Microsoft: Treiberverifikation bei Windows XP

aktuelle Forschungsrichtung: Software Model Checking

Verbesserungen notwendig
- einheitlicher Ansatz mit deduktiver Verifikation
78
WIRTSCHAFTS
INFORMATIK
Vielen Dank für die
Aufmerksamkeit!
79
Herunterladen