1 Computergestützte Verifikation 3.5.2002. 2 Model Checking für finite state systems...

Post on 05-Apr-2015

108 views 3 download

transcript

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: 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

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

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

5

Agenda

1. Formale Definition: symmetrisches Verhalten

2. Konstruktion des Quotientensystems

3. Welche Eigenschaften bleiben erhalten?

4. Erkennung von Datenstruktursymmetrie

5. Erkennung von Komponentensymmetrie

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

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

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

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]

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]

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

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”

13

3.5.3 Welche Eigenschaften bleiben erhalten?

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

Brauchen: TS gdw. TS/~

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”

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

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

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

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’)

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?

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

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)

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

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)

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

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’)])

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

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

28

Komplexität des Automorphismenproblems

eng verwandt: Graphisomorphie NP

NPV

P

?

?Ein Graph kann exponentiellviele Automorphismen haben

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

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

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

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

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

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

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

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

37

Übung 3

Bestimme alle Automorphismen des folgenden Graphen: