1 Computergestützte Verifikation 24.5.2002. 2 Binary Decision Diagrams (BDD) Inhalt: 4.1.1 Die...
-
Upload
aurel-zank -
Category
Documents
-
view
111 -
download
1
Transcript of 1 Computergestützte Verifikation 24.5.2002. 2 Binary Decision Diagrams (BDD) Inhalt: 4.1.1 Die...
1
Computergestützte Verifikation
24.5.2002
2
Binary Decision Diagrams (BDD)
Inhalt:4.1.1 Die Datenstruktur BDD4.1.2 Operationen auf BDD4.1.3 CTL Model Checking mit BDD4.1.4 Fairness
3
Binary Decision Tree
x1=?
x2=?x2=?
x3=? x3=?
x4=? x4=? x4=? x4=? x4=?
x3=?
x4=?
x3=?
x4=? x4=?
Y YY YN NNN NNNNNN NN
0
1
0
0
1
1
0011 M
1
0
0
0
1000 M
4
Ordered Binary Decision Diagram
x1=?
x2=?x2=?
x3=?
x4=? x4=?
Y N
keine äquivalentenTeilbäume
Keine redundantenKnoten
Variablen auf jedem Pfad in gleicher Reihenfolge
0
1
0011 M 1000 M
0
0
1
1
1
0 (00)
5
Mengengröße vs. BDD-Größe
YN YNYN Y N
0 4 8 12 16Elemente in Menge
Mengengröße
BDDGröße
6
Implementation von APPLY
YN
e
b
Y N
f
=
a
c
d
g h
i
af
bg
dY
Y
dY Y
eN
YN
YN Y
N
NN
NN N
A
eN Abg B
B
ch
eN Ni
NNNYNY Y
Y N A
Y A B
Ni Ach Aaf C
C
B A C
O ( |BDD1| |BDD2| )
7
RESTRICT
geg: f n-stellig b in {0,1} i in {1,...,n}
f’(x1,......,xn) := f(x1,....xi-1,b,xi+1,.....,xn)
Implementation ähnlich zu APPLY
O( |BDD| )
8
Abgeleitete Operationen
xi . f(x1,...,xi,...,xn) f(x1,...,0,....,xn) f(x1,....,1,...,xn)
(= 2 x RESTRICT, 1 x APPLY)
Mengenoperationen: = APPLY( ,) Komplement = tausche Y und N = APPLY( ,)
Relation = Menge von Paaren = BDD der Länge 2n
R1 o R2: y1 ... yn f1(x1,...,xn,y1,...,yn) f1(y1,...,yn,z1,...,zn)
Substitution: h(x1,...,xn) := f(x1,....g(x1,....,xn),....,xn = g f(x1,...,1,...xn) ¬g f(x1,....,0.,....,xn) ( = 2 x RESTRICT, 3 x APPLY)
9
4.1.3 CTL Model Checking
Arbeiten mit SAT= {s | s } - repräsentiert als BDD
und T(s,s’) – der Zustandsübergangsrelation, auch als BDD
T(s,s’) = 1 gdw. (s,s’) in E
T(s,s’) kann aus einer Systembeschreibung alsnextstate-Funktion generiert werden
System erfüllt gdw. I SAT
10
Beispiel:3-bit-Zähler
x0’ x0 x1’ (¬ x1 x0)x2’ (¬ x2 (x0 x1 ))
11
CTL Model Checking –einfache Fälle
1. Elementare Aussagen – setzen BDD voraus, normalerweise kein Problem
2. ¬ -- einfache Anwendung von APPLY
3. SATEX y1 .... yn[T(x1,...,xn,y1,....,yn) SAT(y1,....,yn)]
4. AX ¬ EX ¬
bleiben: EU und EG – Rest ist dann ableitbar per Tautologien
12
Model Checking EU
geg: SAT, SATges: SATE(U
wissen: SAT SATE(U
wissen auch: Wenn s’ in SATE(U und s in SATund T(s,s’), so ist auch s in SATE(U
und schließlich: Weiter nix
Z:= SAT do
ZZ (SAT SATEX Zuntil nothing changes SATE(U:=Z
Berechnen kleinsten Fixpunkt eines monoton wachsendenMengenoperators
13
Model Checking EG
geg: SATges: SATEG
wissen: SATEG SAT wissen auch: Wenn s’ in SATEG und s in SATund T(s,s’), so ist auch s in SATEG
und schließlich: Weiter nix
Z := SAT do
Z ZSATEX Z
until nothing changes SATEG := Z
Berechnen größten Fixpunkt eines monoton fallendenMengenoperators
14
By the way....
-Kalkül einfache Aussagen (Mengen) + boolesche Operationen (Mengenoperationen) + “kleinster Fixpunkt von ... “ + “größter Fixpunkt von ...”
wird auch als Spezifikationssprache verwendet
15
Bottlenecks
1. Größe des BDD für Z in den Fixpunktberechnungen
Lösung: Gelegentliches Umordnen der Variablen,z.B. Sifting = tausche 2 benachbarte Variablen und schaue, ob BDD dadurch kleiner wird
2. Das BDD für die Übergangsrelation T
Lösung: Partitionierung von T
16
Partitionierung der Übergangsrelation
Idee: T ist meistens Konjunktion Teilformeln
T1: x0’ x0 T2: x1’ (¬ x1 x0)T3: x2’ (¬ x2 (x0 x1))
Beispiel:
T T1 T2 T3
Partitionen kleiner als T, günstigenfalls auch in der Summe
mindestens: Eine Partition hängt normalerweise nicht von allen Variablen ab, ist also auf jeden Fall flacher als das BDD von T
Nutzt das?
17
Frühe Quantifizierung
T wird verwendet für EX:
Y [T(X,Y) SAT(Y)]
partitioniert: Y [T1(X,Y) ... Tn(X,Y) SAT(Y)]
Normalerweise sind und nicht vertauschbar, es sei denn,in einer Seite von kommt die quantifizierte Variable nicht vor
Yi := { y in Y | y kommt nicht in T1...Ti-1 vor}
Y1(T1(X,Y) Y2 (T2(X,Y) (... Yn (Tn(X,Y) SAT(Y) ))...))
Effekt: BDD von Yi Ti(X,Y) hängt nicht von Variablen in Yi ab,ist also flacher als das von BDD von Ti(X,Y) kleinere BDDs in Zwischenschritten!!!
18
4.1.4 Fairness
Arbeiten mit zustandsbasierter Fairness und schwachenFairnessannahmen
geg: BDDs C1, ..., Cn, stehen für FairnessannahmenGF C1, ...., GF Cn
Ansatz: trickreiche Adaption der Fixpunktoperationen
19
Faires EG
fair:Z := SAT
do
Z Zk=1nSATEX E( U (Z Ck))
until nothing changes
SATECG := Z
unfair:
Z := SAT
do
Z ZSATEX Z
until nothing changes
SATEG := Z
20
Andere faire Operatoren
EC( U ) = E( U (ECG true))
ECX = EX( ECG true)
Rest: Tautologien
21
Übung 1
Gib einen eigenen Fixpunktalgorithmus zurBerechnung von SATEFan!
22
Übung 2
Wende die Formel zur frühen Quantifizierung (Folie 17)auf die partitionierte Transitionsrelation des 3-bit-Zählersauf Folie 16 an!
Wie groß ist die maximale Tiefe (Zahl der vorkommendenVariablen) eines Zwischenresultats bei dieser Berechnung?