1 computergestützte verifikation 3.5.2002. 2 model checking für finite state systems...

37
1 Computergestützte Verifikation 3.5.2002

Upload: ebbe-wolk

Post on 05-Apr-2015

111 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

1

Computergestützte Verifikation

3.5.2002

Page 2: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

2

Model Checking für finite state systems

explizit: symbolisch:

3.1: Tiefensuche

3.2: LTL-Model Checking

3.3: CTL-Model Checking

3.5: Reduktion durch Symmetrie3.6: Partial Order Reduction

3.7: Tools

4.1: BDD-basiertes CTL-Model Checking

4.2: SAT-basiertes Model Checking

4.3: Tools

3.4: Fairness

Kapitel 3 Kapitel 4

Page 3: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

3

Fazit 3.1 – 3.4

Explizites Model Checking basiert im wesentlichen auf Tiefensuche

Die Algorithmen sind extrem leichtgewichtig, arbeitenaber auf riesigen Graphen

wichtigstes Mittel zur Leistungssteigerung ist Verkleinerung des Transitionssystems

Dies ist Gegenstand der nächsten 2 Abschnitte

Page 4: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

4

3.5 Symmetrie

Grundgedanke: symmetrisch strukturierte Systeme haben symmetrisches Verhalten

Quellen für Symmetrie:a) regelmäßig strukturierte Datentypenb) replizierte Komponenten im Gesamtsystem

Wenn Verhalten bei s bekannt und s’ symmetrisch zu s,braucht Verhalten bei s’ nicht mehr untersucht werden

technisch: Äquivalenzrelation; Quotienten-Transitionssystem

Page 5: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

5

Agenda

1. Formale Definition: symmetrisches Verhalten

2. Konstruktion des Quotientensystems

3. Welche Eigenschaften bleiben erhalten?

4. Erkennung von Datenstruktursymmetrie

5. Erkennung von Komponentensymmetrie

Page 6: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

6

3.5.1 Symmetrisches Verhalten

Basis: Transitionssystem

heißt Symmetrie, wenn: - ist Bijektion S S - s –e s’ gdw. ex. e’: (s) –e’(s’)-s I gdw. (s) I

mit Induktion:s0 s1 s2 ... Pfad in einem Transitionssystem (s0) (s1) (s2) ... ebenfalls

-Id ist immer Symmetrie-Wenn Symmetrie, so auch -1

-Wenn 1 und 2 Symmetrien, so auch 1 o 2

TS: Menge allerSymmetrien von TS

[TS,o] istGruppe

Page 7: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

7

Zustandsäquivalenz

Analyse der Struktur liefert i.d.R. nicht alle Symmetrien,aber immer eine bzgl. Inversion und Komposition ab-geschlossene Menge von Symmetrien

ab jetzt betrachten wir immer eine beliebige Untergruppe TS

s ~ s’ gdw. es ex. mit (s) = s’

~ ist Äquivalenzrelation

Page 8: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

8

3.5.2 reduziertes Transitionssystem

TS= [S/~ , E, I/~,*]

E = { [ [s],[s’] ] | ex. s [s], ex. s’ [s’] : [s,s’] E}

Größe des reduzierten Systems:

| S/~ | | S | / | |

| | kann exponentiell in der Zahl der Elemente einessymm. Datentyps bzw. exponentiell in der Anzahl derreplizierten Kompnenten sein

Page 9: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

9

Beispiel 1

(i,i,1)

(r,i,1) (i,r,1)

(r,r,1)(c,i,0) (i,c,0)

(c,r,0) (r,c,0)

g1

= { Id, } ([x,y,z]) = [y,x,z]

Page 10: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

10

Beispiel 1

(i,i,1)

(r,i,1)

(r,r,1)(c,i,0)

(c,r,0)

= { Id, } ([x,y,z]) = [y,x,z]

Page 11: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

11

Beispiel 2

init(x) {0,1,2} x := (x + 1) mod 3

0

12

= {Id, 1, 2} 1(0) = 1, 1(1) = 2, 1(2) = 0 2(0) = 2, 2(1) = 0, 2(2) = 1

0

Page 12: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

12

Konstruktion des red. TS

S := E := ø; dfs(i)

dfs(s)S := S {s};FOR ALL s’: [s,s’] E DO

IF es kann mit (s’) S gefunden werden THEN

E := E {[s, (s’) ]}; ELSE

E := E {[s, s’ ]}; dfs(s’);

ENDEND

approximativeLösungen

Das “Orbit-Problem”

Page 13: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

13

3.5.3 Welche Eigenschaften bleiben erhalten?

Eigentlich: Wie muß ich wählen, damit gegebene Formelerhalten bleibt?

Brauchen: TS gdw. TS/~

Page 14: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

14

Symmetrische Propositionen

Hinreichend: Jede elementare Zustandsaussageist insensitiv bzgl. , d.h wenn s , so (s) für alle

Satz: wenn alle verwendeten Zustandsaussagen insensitivbzgl. Symmetrie sind, dann gilt jede CTL*-Formel in TS/~gdw. sie in TS gilt.

Bsp: G (pc1 “critical” pc2 “critical”)

“atomar”

Page 15: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

15

Symmetrische Propositionen

“alle elementaren Zustandsaussagen sind symmetrisch”kann dahingehend aufgeweicht werden, daß man diedurch die Assoziativität und Kommutativität von und, oder,, und eingeführte Symmetrie mit beachtet.

Tools: Symmetriegruppe wird so weit eingeschränkt, daßSymmetrie gesichert ist

Page 16: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

16

3.5.4 Symmetrie in DatentypenFall 1: Skalare Datentypen

-Menge D von Werten- nur = , in Guards - := (Zuweisung)- als Indexmenge von (einfachen) Arrays anderer Datentypen- Schleifen der Form FOR ALL x D DO ... - choose(x)- keine Konstanten

Seien x1 , ... , xn alle Variablen eines skalaren Datentyps D, eine Belegung dieser Variablen mit Werten, und eine Permutation auf D.

Setzen zu einer Symmetrie fort

Page 17: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

17

Symmetrie in Datentypen

(s) : (s)(x) = (s(x)), falls x vom Typ D (s)(x[(i)]) = s(x[i]) , falls x array mit D als Indexmenge (s)(x) = s(x), sonst

Beispiel: D = {1,2,3,4} : 1 2 2 4 3 3 4 1

s: x1 = 1 x2 = 3 x3 = “hallo” x4[1] = A x4[2] = B x4[3] = C x4[4] = C

(s): x1 = 2 x2 = 3 x3 = “hallo” x4[1] = C x4[2] = A x4[3] = C x4[4] = B

Page 18: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

18

Nachweis der Symmetrieeigenschaft

1. Alle Terme anderer Datentypen liefern in s und (s) die gleichen Werte

Beispiel: D = {1,2,3,4} : 1 2 2 4 3 3 4 1

s: x1 = 1 x2 = 3 x3 = “hallo” x4[1] = A x4[2] = B x4[3] = C x4[4] = C

(s): x1 = 2 x2 = 3 x3 = “hallo” x4[1] = C x4[2] = A x4[3] = C x4[4] = B

x3 x4[x1]

2. Wenn ein Term in s den Wert d D liefert, so liefert er in (s) den Wert (d) x1 x2

3. Ausdrücke sind wahr in s gdw. in (s) x1 = x2 x4[x1] A

4. Zuweisungen erhalten Eigenschaften 1-3

Also: Wenn s s’, so (s) (s’)

Page 19: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

19

Das Orbit-Problem

geg.: Zustand s, Zustandsmenge S, Symmetriegruppe Frage: gibt es ein mit (s) S ?

Lösung (meistens): kanonische Repräsentanten

= ein speziell ausgezeichneter, leicht berechenbarer Vertreter der eigenen Äquivalenzklasse

-in S werden nur kanonische Repräsentanten gespeichert- Orbitproblem reduziert sich zu: canrep(s) S?

Page 20: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

20

Implementation von canrep aufskalaren Datentypen

Kanonischer Repräsentant = lexikographisch kleinster Vertreter seiner Klasse

x1 = 1 x2 = 3 x3 = “hallo” x4[1] = A x4[2] = B x4[3] = C x4[4] = C

x1 = 2 x2 = 3 x3 = “hallo” x4[1] = C x4[2] = A x4[3] = C x4[4] = B

<

x1 = 11 1x2 = 23 2x3 = “hallo”

x4[1] = Ax4[2] = Cx4[3] = B

2 34 4

x4[4] = C

x1 = 1 2 1x2 = 2 3 2x3 = “hallo”x4[1] = Ax4[2] = Cx4[3] = B

4 31 4

x4[4] = C Sortieren

Page 21: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

21

Symmetrie in Datentypen

Fall 2: wie skalare Datentypen, mit zusätzlichen Operationen INCR(x) und DECR(x), die wie Addition/Subtraktion von 1 modulo n funktioniert

Nur Rotationen (= Permutationen der Form ai a(i+k) mod n)generieren Symmetrien.

andere Permutationen liefern potenziell unverträgliche Wertefür Terme der Form INCR(x)

Beispiel: s: x1 = 2 : 1 2 2 1 3 3 4 4

(s): x1 = 1

INCR(x1) = 3 INCR(x1) = 2 (3)

Page 22: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

22

Letzte Folie zu Symmetrie in Datentypen

prinzipiell könnte man die Liste der Datentypen erweitern

Tools nutzen meist nur skalare Typen

Methode der kanonischen Repräsentanten ist effizient

Der Nutzer ist dafür verantwortlich, die Datentypen geeignet zu wählen und damit die Symmetrie dem Toolzu vermitteln

Man kann auch mehrere Skalar- und Rotationstypengleichzeitig handhaben

Page 23: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

23

3.5.5 Komponentensymmetrie

Basis: System, das aus mehreren identischen Komponenten P1, ...., Pn besteht

d.h. Variablen sind global oder lokal (d.h. mit einer Instanz pro Komponente)

Jede lokale Aktion kann gleichwertig für eine beliebige Komponente ausgeführt werden a[P]

Nichtlokale Aktionen betreffen ggf. mehrere Komponenten(z.B. Senden von Nachrichten) a[P,P’]

Nichtlokale Aktionen müssen nicht notwendigerweisefür alle Paare/Tripel ... von Komponenten ausführbar sein(z.B. Senden nur zwischen Komponenten, die durch einenNachrichtenkanal verbunden sind)

Page 24: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

24

Komponentensymmetrie

Symmetrie wird realisiert durch Permutieren der lokalenZustände zwischen den Komponenten

Die nichtlokalen Aktionen definieren die Kommunikationsstrukturdes Gesamtsystems

Die Kommunikationsstruktur kann als beschrifteter Graphabstrahiert werden (Knoten = Komponenten, Kanten mitAktionstyp beschriftet)

pc = “idle”x = 2

pc = “req”x = 3

pc = “idle”x = 5

pc = “idle”x = 5

pc = “idle”x = 2

pc = “req”x = 3

Page 25: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

25

Formalisierung

Betrachten Permutationen : {P1,....,Pn} {P1,....,Pn}

(s): (s)(x) = s(x) (x global) (s)((P).x) = s(P.x) (x lokal)

Beschrifteter Graph: [V,E,c] E V x V, c: V E D

Damit wirklich das Verhalten symmetrisch wird, darf der lokaleZustand nur dann von P nach P’ verschoben werden, wennin P’ äquivalente nichtlokale Aktionen zu denen in Pmöglich sind

D.h., der Kommunikationsgraph muß erfüllen:

Wenn [v,v’] E, so [(v),(v’)] E und c([v,v’]) = c([(v),(v’)])

Page 26: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

26

Graphautomorphismen

Eine Permutation s: V V heißt Graphautomorphismus,falls für alle v,v’ aus V gilt:1. c(v) = c((v))2. Wenn [v,v’] E, so [(v),(v’)] E und c([v,v’]) = c([(v),(v’)])

Graphautomorphismen des Kommunikationsgraphen induzierenSymmetrien eines Komponentensystems

Hinter allen Symmetrieansätzen stecken Graphautomorphismen,z.B. auch hinter Datentypsymmetrie:

1

2

4

3=

=

=

=

1

2

4

3=

=

=

=

incr

incrincr

incr

Page 27: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

27

Graphautomorphismen als Grundlagefür Symmetrie

So gut wie alle Zusammenhänge lassen sich als Graphdarstellen

Wenn der Graph alle für das Systemverhalten relevantenInformationen enthält, dann lassen sich die Systemsymmetriengenau aus den Graphautomorphismen ableiten

Ab jetzt: betrachten Graphautomorphismen unabhängig vonihrer Herkunft

Page 28: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

28

Komplexität des Automorphismenproblems

eng verwandt: Graphisomorphie NP

NPV

P

?

?Ein Graph kann exponentiellviele Automorphismen haben

Page 29: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

29

Weiteres Vorgehen

1. ein bißchen Gruppentheorie, mit dem Ziel:

2. ein polynomiell großes Erzeugendensystem

3. Berechnung des Erzeugendensystems

4. Lösung des Orbit-Problems

Page 30: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

30

Gruppentheorie

[G,o] ist Gruppe, wenn o assoziative Operation auf G ist,es ein neutrales Element e gibt, und jedes Element g ein Inverses g-1 hat.

Beispiele:

Menge der Graphautomorphismen mit Hintereinander-ausführung.

Menge der ganzen Zahlen mit Addition

Menge der positiven rationalen Zahlen mit Multiplikation

Page 31: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

31

Untergruppen

U G heißt Untergruppe, wenn o nicht aus U herausführtund [U,o] Gruppe ist.

Beispiele: {Id}

Die durch k teilbaren ganzen Zahlen (k > 0) mit + diejenigen rationalen Zahlen, wo Zähler und Nenner Zweierpotenzen sind, mit Multiplikation

Page 32: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

32

Orbits

Jede Untergruppe U definiert eine Äquivalenzrelation auf G:

g ~U g’ gdw. g o g’-1 U

reflexiv: g o g-1 = e U

symmetrisch: Sei g o g’-1 = u U g’ o g-1 = (g o g’-1)-1 = u-1 U

transitiv: Sei g o g’-1 = u U und g’ o g’’-1 = u’ U g o g’’-1 = g o (g’-1 o g’) o g’’-1

= (g o g’-1) o (g’ o g’’-1) = u o u’ U

Klassen heißen Orbits Bsp: Restklassen modulo kx y mod k gdw. k | x - y

Page 33: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

33

Orbits endlicher Gruppen

Alle Orbits haben gleich viele Elemente, nämlich |U|

Sei g G und Og der Orbit, in dem g liegt.Og = { g o u | u U}

(Ein Erzeugendensystem für) U + pro Orbit ein (beliebiges!) Element bilden zusammen ein Erzeugendensystem für G

Erzeugung ist in einem gewissen Sinne eindeutig:für jedes g’ Og gibt es genau ein u U mit g’ = g o u

Page 34: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

34

Konzept für Erzeugendensystem

U1U2

U3 U1 U2 U3 ... Un = {e}

Eindeutige Darstellung:Jedes Element g von G besitzt genau eine Darstellungder Formg = g1 o g2 o... o gn mit gi aus einem der vonUi in U(i-1) generierten Orbit

Page 35: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

35

Übung 1

Sei D = { a,b,c,d,e } ein skalarer Datentyp

Bestimme den kanonischen Repräsentanten von

s: x1 = “bla” x2[a] = 5 x2[b] = 3 x2[c] = 3 x2[d] = 4 x2[e] = 3 x3 = c x4 = b

Page 36: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

36

Übung 2

Konstruiere das symmetrisch reduzierte Transitionssystemzu folgendem Programm

y1,y2: scalarset {1,2} pc1,pc2: {a,b,c} z: array {1,2} of boolean

pc1 = a choose(y1),pc1 := bpc1 = b y2 := y1, pc1 := cpc1 = c pc2 = c pc1 := a, pc2 := apc2 = a pc1 = c pc2 := bpc2 = b z[y2] := true, pc2 := c

init(z) := [false,false] init(pc1) = a init(pc2) = a

Page 37: 1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

37

Übung 3

Bestimme alle Automorphismen des folgenden Graphen: