Schwache Bisimulation

Werbung
Computergestützte Verifikation
14.6.2002
1
6. Abstraktion
2
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
3
Simulation und Computation Tree
rot
gelb
Bremse

Gas
grün
4
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
Bremse

Gas
grün
5
Beispiele
1. Vorzeichenabstraktion
Nat  {< 0 , 0 , > 0}
2. Logarithmische Abstraktion
Nat  Nat; i  lg i = log2(i+1)
3. Bit-Abstraktion
I
AND/
OR/NOT
R
e
g
O
I
AND/
OR/NOT
R
e
g
O
6
Bit-Abstraktion
I
AND/
OR/NOT
O
T(x1...xn,x1’...xn’) =
 i1...im
R(x1..xn,i1...im,x1’...xn’)
R
e
g
I
AND/
OR/NOT
R
e
g
O
T(x1..xj,x1’...xj’) =
 i1...im  xj+1...xn  xj+1’...xn’
R(x1...xn,i1...im,x1’...xn’)
7
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”!
8
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.)
9
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)
10
Bisimulation und CTL(*)
Satz 1: Wenn A und C bisimilar sind, so erfüllen sie die
gleichen 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.
11
Konstruktion von Bisimulationen
Nicht jede abstrakte Zustandsmenge kann zu einem
bisimilaren Transitionssystem ergänzt werden
rot
gelb
Bremse

Gas
grün
Konstruktion von bisimilaren Transitionssystemen aus abstrakter
Zustandsmenge erfordert Abstraktionsverfeinerung
12
Schwache Bisimulation
Erweitertes Spiel (aktionsbasiert):
spezielle Aktion t: “unsichtbar”
Spieler 1 macht einen Zug (ein Schritt)
Spieler 2 darf einen Zug machen, der aus der von Spieler 1
gewählten Aktion, umrahmt von beliebig vielen t-Aktionen,
besteht, und zu einem Zustand führt, der in Relation  zum
Zustand 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 bisimilares
13
reduziertes Transitionssystem
Zusammenfassung Abstraktion
zentral: Simulation/Bisimulation
Simulation  ACTL*
Bisimulation  CTL*
Jede Menge abstrakter Zustände kann zu Simulation
fortgesetzt werden, aber nicht immer zu einer Bisimulation
Die meisten Reduktionstechniken sind Abstraktionen
14
7. Abstraktionsverfeinerung
7.1 allgemeine Abstraktionsverfeinerung
geg.: Abstraktion
ges: aussagekräftigere
Abstraktion
7.2 Gegenbeispielgesteuerte Verfeinerung
geg.: Abstraktion, Scheingegenbeispiel
15
ges.: Abstraktion, die Gegenbeispiel ausschließt
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
16
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
17
Wo spalten?
Bisimulation:
gut
schlecht
Bewahrung von ACTL* in die “andere” Richtung:
gut genug:
“Core”
Core muss sich wie
Bisimulation verhalten
18
Beispiel: Zonen
Wie spalten?
Welche Uhrenstellung in Z1 hat Nachfolger in Z2?
1.
2.
3.
4.
5.
1.
2.
3.
4.
Schnitt mit Constraint
Nullstellen
Schnitt mit Invariante des diskreten Nachfolgers
Zeitverlauf
Schnitt mit Invariante
Schnitt mit Null
Öffnung “nach oben”
Schnitt mit Constraint
Schnitt mit Zone
Komplement nicht unbedingt konvex
 ggf. mehrere Zonen als Spaltprodukt
lernen: brauchen Möglichkeit,
abstrakten Vorgänger zu berechnen
19
Propagierung
Spaltung eines abstrakten Zustandes kann weitere
Spaltungen notwendig machen  Propagation nach
rückwärts...
... bis sich nix mehr ändert
20
Konsequenteste Umsetzung
Beginne mit
Entwickle Transitionssystem ausschliesslich per Verfeinerung
Splitting Tree: dokumentiert Spaltgeschichte
= Datenstruktur für Zustandsmenge
(Zustand = Pfad im Splitting Tree)
21
7.2 Gegenbeispielgesteuerte
Verfeinerung
Algorithmus:
1.
2.
3.
4.
5.
initiale Abstraktion
Verifikation von f (aus ACTL*) im abstrakten System
f gilt  f gilt auch im konkreten System
f gilt nicht  abstraktes Gegenbeispiel
Prüfe, ob Gegenbeispiel im konkreten System
realisierbar ist
6. ja  f gilt nicht
7. nein  verfeinere Abstraktion derart, daß Gegenbeispiel
auch im abstrakten System unrealisierbar wird
8. GOTO 2
22
Beispiel: Bit-Abstraktion
I
AND/
OR/NOT
O
T(x1..xj,x1’...xj’) =
 i1...im  xj+1...xn  xj+1’...xn’
R(x1...xn,i1...im,x1’...xn’)
R
e
g
initiale Abstraktion: möglichst wenige Variablen sichtbar
z.B. die in der Formel vorkommenden
Existential Abstraction (Abstraktion ist Funktion)
Verifikation mit BDD- oder SAT-basiertem Model Checking 23
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
24
Scheingegenbeispiele
erfüllbare Pfadformel
nicht erfüllbare Pfadformel
dead end state = erreichbar von einem konkreten Zustand im
ersten abstrakten Zustand
bad state = hat Nachfolger
Verfeinerung = trenne dead end und bad states
25
Verfeinerungsproblem
Welche (möglichst wenige) Variablen sichtbar machen,
damit bad und dead end states getrennt werden?
Optimale Lösungen algorithmisch schwer
 Approximationen, Heuristiken, ....
26
Eine Separationsidee
d1 = (0,1,0,1)
d2 = (1,1,1,0)
b1 = (1,1,1,1)
b2 = (0,0,0,1)
1. ein paar konkrete Beispiele gewinnen
.... macht der SAT-Checker
2. wenigstens die Beispiele trennen
indem möglichst wenige Variable sichtbar werden, Si=14 vi = min
die
d1 von b1 v1 + v3  1, d1 von b2 v2  1
d2 von b1 v4  1 und d2 von b2 v1 + v2 + v3 + v4  1 trenne
27
ganzzahliges Optimierungsproblem, NP=hart, (v1,v2,v4), (v2,v3,v4)
Andere Separationsideen
- Mache signifikante Variablen in der Pfadformel
sichtbar
+ Konfliktanalyse im SAT-Checker
+ Fourieranalyse
+ Lernansätze
+ Analyse abhängiger Variablen
28
Übung 1
Verfeinere die gegebene Abstraktion zu einer
Bisimulation ( = gleiche Strichart)!
29
Übung 2
Verfeinere die gegebene Abstraktion derart, daß der
abstrakte Pfad A  B  C  D nicht mehr realisierbar ist!
1,2,3  A
1
4,5,6  B
7,8  C
4
8
11
6
2
9
5
3
9,10,11  D
7
10
30
Herunterladen