1 Computergestützte Verifikation 24.5.2002. 2 Binary Decision Diagrams (BDD) Inhalt: 4.1.1 Die...

Post on 06-Apr-2015

111 views 1 download

Tags:

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?