30
1 Computergestützte Verifikation 14.6.2002

1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

Embed Size (px)

Citation preview

Page 1: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

1

Computergestützte Verifikation

14.6.2002

Page 2: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

2

6. Abstraktion

Page 3: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

3

Simulation

ist Simulationsrelation, wenn für alle c,a,c’:

Wenn c a und c c’ in C, so ex. ein a’ mit c’ a’ und a a’ in A

C

A

Page 4: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

4

Simulation und Computation Tree

rot

gelb

grün

Gas

Bremse

Page 5: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

5

Existential Abstraction

Sehr praktikabel:

1. Wähle abstrakte Zustandsmenge (nach Kriterien wie z.B. Bewahrung elementarer Eigenschaften)

2. Ergänze kanonisch eine Übergangsrelation

rot

gelb

grün

Gas

Bremse

Page 6: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

6

Beispiele

1. Vorzeichenabstraktion

Nat {< 0 , 0 , > 0}

2. Logarithmische Abstraktion

Nat Nat; i lg i = log2(i+1)

3. Bit-Abstraktion

AND/OR/NOT

Reg

AND/OR/NOT

Reg

I O I O

Page 7: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

7

Bit-Abstraktion

AND/OR/NOT

Reg

I O

T(x1...xn,x1’...xn’) = i1...im R(x1..xn,i1...im,x1’...xn’)

AND/OR/NOT

Reg

I OT(x1..xj,x1’...xj’) = i1...im xj+1...xn xj+1’...xn’ R(x1...xn,i1...im,x1’...xn’)

Page 8: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

8

Bisimulation

Wenn sowohl als auch -1 Simulationsrelationen sind,heißen C und A bisimilar, und heißt Bisimulationsrelation

“bisimilar” ist schärfer als “A simuliert C und C simuliert A”!

Page 9: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

9

graphische Veranschaulichung

Sei a a’. Daraus folgt

für alle c: c a, es existiert c’: c c’ und c’ a’ (Bisimulation)es existiert c: c a es existiert c’: c c’ und c’ a’ (exist. Abstr.)

Page 10: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

10

Beispiele für Bisimulationen

1. Symmetrien

Wenn [s] [s’], so gibt es ein s” in [s’] mit s s”

2. Regionen

(mit “Selbstschleifentrick” wie bei Zonen)

Page 11: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

11

Bisimulation und CTL(*)

Satz 1: Wenn A und C bisimilar sind, so erfüllen sie diegleichen CTL*-Formeln

Satz 2: Wenn A und C die gleichen CTL-Formeln erfüllen,so sind sie bisimilar

Das heißt: Wenn es eine CTL*-Formel gibt, die A und C unterscheidet, so gibt es bereits eine CTL-Formel.

Page 12: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

12

Konstruktion von Bisimulationen

Nicht jede abstrakte Zustandsmenge kann zu einembisimilaren Transitionssystem ergänzt werden

rot

gelb

grün

Gas

Bremse

Konstruktion von bisimilaren Transitionssystemen aus abstrakterZustandsmenge erfordert Abstraktionsverfeinerung

Page 13: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

13

Schwache Bisimulation

Erweitertes Spiel (aktionsbasiert):spezielle Aktion: “unsichtbar”Spieler 1 macht einen Zug (ein Schritt)Spieler 2 darf einen Zug machen, der aus der von Spieler 1gewählten Aktion, umrahmt von beliebig vielen -Aktionen,besteht, und zu einem Zustand führt, der in Relation zumZustand von Spieler 1 steht

C simuliert A schwach

schwache Bisimulation ( und -1 ..., wie gehabt) ... bewahrt CTL*-X

Partial order reduction für CTL* liefert schwach bisimilaresreduziertes Transitionssystem

Page 14: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

14

Zusammenfassung Abstraktion

zentral: Simulation/Bisimulation

Simulation ACTL*Bisimulation CTL*

Jede Menge abstrakter Zustände kann zu Simulationfortgesetzt werden, aber nicht immer zu einer Bisimulation

Die meisten Reduktionstechniken sind Abstraktionen

Page 15: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

15

7. Abstraktionsverfeinerung

7.1 allgemeine Abstraktionsverfeinerung

geg.: Abstraktion ges: aussagekräftigere Abstraktion

7.2 Gegenbeispielgesteuerte Verfeinerung geg.: Abstraktion, Scheingegenbeispiel ges.: Abstraktion, die Gegenbeispiel ausschließt

Page 16: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

16

Spaltung abstrakter Zustände

z.B. Zonen:

Z1 := Z ci – cj < k Z2 := Z ci – cj k

z.B. Bit-Abstraktion:

weitere Variablen sichtbar machen

Page 17: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

17

7.1 allgemeine Verfeinerung

geg.: simulierende Abstraktionsrelation z.B. Zonengraph

ges.: mögl. grobe Verfeinerung, die zus. Bedingungen erfüllt. z.B. Bisimulation oder Vererbung von ACTL* in die andere Richtung oder Bewahrung weiterer Elementaraussagen

Mittel: Spaltung von abstrakten Zuständen

Page 18: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

18

Wo spalten?Bisimulation:

gut schlecht

Bewahrung von ACTL* in die “andere” Richtung:

gut genug: “Core”

Core muss sich wieBisimulation verhalten

Page 19: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

19

Wie spalten?Beispiel: Zonen

Welche Uhrenstellung in Z1 hat Nachfolger in Z2?

1. Schnitt mit Constraint2. Nullstellen3. Schnitt mit Invariante des diskreten Nachfolgers4. Zeitverlauf5. Schnitt mit Invariante

Komplement nicht unbedingt konvex ggf. mehrere Zonen als Spaltprodukt

lernen: brauchen Möglichkeit, abstrakten Vorgänger zu berechnen

1. Schnitt mit Null2. Öffnung “nach oben”3. Schnitt mit Constraint4. Schnitt mit Zone

Page 20: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

20

Propagierung

Spaltung eines abstrakten Zustandes kann weitereSpaltungen notwendig machen Propagation nachrückwärts...

... bis sich nix mehr ändert

Page 21: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

21

Konsequenteste Umsetzung

Beginne mit

Entwickle Transitionssystem ausschliesslich per Verfeinerung

Splitting Tree: dokumentiert Spaltgeschichte = Datenstruktur für Zustandsmenge (Zustand = Pfad im Splitting Tree)

Page 22: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

22

7.2 GegenbeispielgesteuerteVerfeinerung

Algorithmus:

1. initiale Abstraktion2. Verifikation von (aus ACTL*) im abstrakten System3. gilt gilt auch im konkreten System4. gilt nicht abstraktes Gegenbeispiel 5. Prüfe, ob Gegenbeispiel im konkreten System realisierbar ist6. ja gilt nicht7. nein verfeinere Abstraktion derart, daß Gegenbeispiel auch im abstrakten System unrealisierbar wird8. GOTO 2

Page 23: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

23

Beispiel: Bit-Abstraktion

AND/OR/NOT

Reg

I OT(x1..xj,x1’...xj’) = i1...im xj+1...xn xj+1’...xn’ R(x1...xn,i1...im,x1’...xn’)

initiale Abstraktion: möglichst wenige Variablen sichtbarz.B. die in der Formel vorkommenden

Existential Abstraction (Abstraktion ist Funktion)

Verifikation mit BDD- oder SAT-basiertem Model Checking

Page 24: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

24

Abstraktes Gegenbeispiel

einfachster Fall: Gegenbeispiel = endl. Pfad

= Folge von Belegungen der sichtbaren Variablen c1(k) .. cj(k)

Realisierbarkeit im konkreten System =Erfüllbarkeit von

I(c1(0) ...cj(0),x(j+1)(0)...x(n)(0))T(c1(0) ...cj(0),x(j+1)(0)...x(n)(0) ,c1(1) ...cj(1),x(j+1)(1)...x(n)(1)))....

SAT-Checker

Page 25: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

25

Scheingegenbeispiele

dead end state = erreichbar von einem konkreten Zustand imersten abstrakten Zustandbad state = hat Nachfolger

Verfeinerung = trenne dead end und bad states

erfüllbare Pfadformel

nicht erfüllbare Pfadformel

Page 26: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

26

Verfeinerungsproblem

Welche (möglichst wenige) Variablen sichtbar machen,damit bad und dead end states getrennt werden?

Optimale Lösungen algorithmisch schwer

Approximationen, Heuristiken, ....

Page 27: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

27

Eine Separationsidee

1. ein paar konkrete Beispiele gewinnen .... macht der SAT-Checker2. wenigstens die Beispiele trennen

d1 = (0,1,0,1)d2 = (1,1,1,0)

b1 = (1,1,1,1)b2 = (0,0,0,1)

indem möglichst wenige Variable sichtbar werden, i=14 vi = min

die d1 von b1 v1 + v3 1, d1 von b2 v2 1d2 von b1 v4 1 und d2 von b2 v1 + v2 + v3 + v4 1 trennen

ganzzahliges Optimierungsproblem, NP=hart, (v1,v2,v4), (v2,v3,v4)

Page 28: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

28

Andere Separationsideen

- Mache signifikante Variablen in der Pfadformel sichtbar + Konfliktanalyse im SAT-Checker + Fourieranalyse + Lernansätze

+ Analyse abhängiger Variablen

Page 29: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

29

Übung 1

Verfeinere die gegebene Abstraktion zu einerBisimulation ( = gleiche Strichart)!

Page 30: 1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion

30

Übung 2

Verfeinere die gegebene Abstraktion derart, daß derabstrakte Pfad A B C D nicht mehr realisierbar ist!

1,2,3 A 4,5,6 B 7,8 C 9,10,11 D

5

3 10

1

2

4

6

7

8

9

11