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: