1 Computergestützte Verifikation 14.6.2002. 2 6. Abstraktion.
Computergest ützte Verifikation
-
Upload
camilla-cardenas -
Category
Documents
-
view
29 -
download
0
description
Transcript of Computergest ützte Verifikation
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
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
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
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’)
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”!
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.)
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)
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.
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
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
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
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
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
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
18
Wo spalten?Bisimulation:
gut schlecht
Bewahrung von ACTL* in die “andere” Richtung:
gut genug: “Core”
Core muss sich wieBisimulation verhalten
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
20
Propagierung
Spaltung eines abstrakten Zustandes kann weitereSpaltungen notwendig machen Propagation nachrückwärts...
... bis sich nix mehr ändert
21
Konsequenteste Umsetzung
Beginne mit
Entwickle Transitionssystem ausschliesslich per Verfeinerung
Splitting Tree: dokumentiert Spaltgeschichte = Datenstruktur für Zustandsmenge (Zustand = Pfad im Splitting Tree)
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
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
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
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
26
Verfeinerungsproblem
Welche (möglichst wenige) Variablen sichtbar machen,damit bad und dead end states getrennt werden?
Optimale Lösungen algorithmisch schwer
Approximationen, Heuristiken, ....
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)
28
Andere Separationsideen
- Mache signifikante Variablen in der Pfadformel sichtbar + Konfliktanalyse im SAT-Checker + Fourieranalyse + Lernansätze
+ Analyse abhängiger Variablen