computergest ützte verifikation
DESCRIPTION
Computergest ützte Verifikation. 5.7.2002. Korrektheit. Testen : kann nur die Anwesenheit von Fehlern feststellen, nicht ihre Abwesenheit . (E. Dijkstra). Systematische Entwicklungsprozesse: z.B. ISO 9000. Konstruktion : Erzeugen des Systems aus der Spezifikation. - PowerPoint PPT PresentationTRANSCRIPT
Computergestützte Verifikation
5.7.2002
Testen: kann nur die Anwesenheit von Fehlernfeststellen, nicht ihre Abwesenheit. (E. Dijkstra)
Verifikation: Nachweis der Korrektheit (theoretisch)
Fähigkeit, subtile Fehler zu finden (praktisch)
Konstruktion: Erzeugen des Systems aus derSpezifikation
Systematische Entwicklungsprozesse: z.B. ISO 9000
Was ist Model Checking?
Erschöpfende Durchmusterung der Zustände einesSystems zur Prüfung einer vorgegebenen Eigenschaft
Grundproblem: Zustandsexplosion
Model Checking: Prinzipskizze
System
Spezifikation Formalisierung log. Formel
Abstraktion Modell
Model Checker+
Gegenbeispiel
-
Simulation
VerfeinerungFehler-beseitigung
Präzisierung
Überlauf
1 Systeme
Zustand:Zusammenfassung aller Systemgrößen, die das weitereSystemverhalten wesentlich beeinflussen können
diskrete Systeme = alle Wertebereiche abzaehlbarkontinuierliche Systeme = alle Wertebereiche dichthybride Systeme = sowohl als auchreal-time Systeme = einzige kontinuierliche Größe ist die Zeitfinite state systems = Zustandsraum endlichinifinite state systems = Zustandsraum unendlich
Abstraktion
2 Temporale Logik
G F = gilt unendlich oft
.......
F G = stabilisiert
..........
G ( F ) = führt zu
..........
Tautologien: F G F G F G F G F G
s5
Der Berechnungsbaum
s1
s2
s3
s4
s6
s1s1
s4s2
s4
s2
s5
s3
s3
s5
s1
s1
s5
s5 s6
s6
s2 s4 s6 s4
CTL* -Pfadquantoren
s
Wenn eine Pfadformel ist, soist E eine Zustandsformel
s erfüllt E gdw. es einen Pfad gibt, der bei s beginnt und
a,b a,d
c
s E F c s A X aTautologien: A E AE
Wenn eine Pfadformel ist, soist A eine Zustandsformel
s erfüllt A gdw. für alle Pfade die bei s beginnen, gilt:
CTL* - Zusammenfassung
CTL*
LTL CTL
nur Pfad-formeln
Nur Zust.-formeln
Computation Tree Logic (CTL)
CTL = atomare Zustandsaussagen + Boolesche Operatoren + Paare [ Pfadquantor , Temporaloperator ]
AG (invariant) AF (irgendwann)
AX (in allen Nachf.) A( . U . ) (bis)
EG (mgl.weise immer) EF (möglich)
EX (in einem Nachf.) E( . U . ) (bis)
Progress und Fairness
p
a
bc
d
e
f
p p p
a
b
d e
F p gilt nicht !!?!?!?!
Model Checking für finite state systems
explizit: symbolisch:
explizite Konstruktion einesTransitionssystems,
das sich in bezug auf dieuntersuchte Eigenschaftäquivalent zum gegebenenverhält, aber in der Regelwesentlich kleiner ist.
Eigenschaft wird durchGraphsuche nach Zeugen/Gegenbeispielenverifiziert
Datenstruktur, die Mengen vonZuständen bzw. Pfadenbeschreibt,Operationen, die simultan dieNachfolger aller Zuständeberechnet
Eigenschaft wird durch Fixpunktoperationen auf dersymbolischen Datenstrukturberechnet
3 Explizites Model Checking3.1 Tiefensuche
0
3
26
1
5
4 [v,v’] ist Vorwärtskante, falls [v,v’] in T*\T
[v,v’] ist Rückwärtskante, falls [v’,v] in T*
[v,v’] ist Querkante, sonst
[v,v’] ist Baumkante, falls [v,v’] in T
[v,v’] in Quer v.dfs > v’.dfs
[v,v’] in Vorwärts v.dfs v’.dfs
[v,v’] in Rückwärts v.dfs > v’.dfs
[v,v’] in Rückwärts v ~ v’0
6
52
4
1
3
Kriterium für Startknoten von SZK
0
3
26
1
5
4v.lowlink = MIN(v’.dfs | v’ von v erreichbar über beliebig vieleBaumkanten, gefolgt von max. eineranderen Kante [v,v’] mit v ~ v’)
0
1
1
3
4
44
Satz: v ist genau dann Startknoten einerSZK wenn v.lowlink = v.dfs
0
6
52
4
1
3
0
1 1
1
6
4
4
3.2 LTL Model Checking
LTL-Eigenschaft Menge derjenigen Pfade, die erfüllen L
Transitionssystem Menge derjenigen Pfade, die in TS realisiert werden können
LTS
TS erfüllt genau dann, wenn jeder Pfad in TS erfüllt, d.h.
LTS L
Büchi-Automaten
= endliche Automaten mit einem für unendliche Sequenzengeeigneten Akzeptierungskriterium
B = [X, Z, Z0, , F]
X – Alphabet Z – ZustandsmengeZ0 – Anfangszustandsmenge : Z x X 2Z
F = {F1,...,Fn}, Fi Z Akzeptierungsmengen
unendliche Sequenz in X
B akzeptiert: es ex. unendliche Sequenz = z0 z1 z2 ....- z0 Z0, zi+1 d(zi,xi), - Für jedes Fi F: enthält unendlich oft Elemente aus Fi
LB
3.3 CTL Model Checking
s
CheckAU(s,,): Suche Gegenbeispiel
L(s’,) = W
L(s’,) = F
L(s’,A( U )) = ?
L(s’,) = W
L(s’,) = FL(s’,) = F
L(s’,A( U ) = W
L(s’,A( U ) = F
Was hilft das?
s0
S
S1
S2 Sn
....
|| ( O(|S1|) +
.... + O(|Sn|))
O( |S2|) +
= O(||(|S1| +|S2|+...+ |Sn|))
= O((|| |TS|)
L(s,A/E( U )) ?
3.4 Fairness-Eingabe: eine SZK C, Mengen Fschw und Fst von Fairnessannahmen-Ausgabe: eine SZM, die in C enthalten ist und alle Fairnessannahmen erfüllt (bzw. ø, falls keine ex.)
0. Fall: C trivial return ø 1. Fall: alle Fairnessannahmen erfüllt (Test ist leicht, siehe vorn) return C2. Fall: eine schwache Annahme verletzt (also: kein -Zst. in C) return ø3. Fall: eine starke Annahme (G F ) (G F ) ist verletzt (also: es gibt in C -Zst., aber keine -Zst.) Streiche alle -Zst. aus C, zerlege die entstehende Menge in SZK und rufe den Algorithmus rekursiv für alle Fragmente auf, bis ein Aufruf eine nichttriviale SZM liefert
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
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]
Beispiel 1
(i,i,1)
(r,i,1)
(r,r,1)(c,i,0)
(c,r,0)
= { Id, } ([x,y,z]) = [y,x,z]
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
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
Komplexität des Automorphismenproblems
eng verwandt: Graphisomorphie NP
NPV
P
?
?Ein Graph kann exponentiellviele Automorphismen haben
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
Automorphismenberechnung
41 8
62
ae
b f a
871
3
5
c
83
32
c c
R*D
R* R* R*D D
R* R* R*R* R*
poly
exp
83
32
c c
= #Ai #Bi ist selten meistens poly. Laufzeit!!!
id id
g11 g12 g13 g14 g21 g22 g23 g31 g32
Orbitproblem
geg: s ges: canrep(s)
1. s1 := MIN{g1i-1(s), i = ...}2. s2 := MIN{g2i-1(s1), i = ...}
3. s3 := MIN{g3i-1(s2), i = ...}
........n. sn := MIN{g1i-1(s[n-1]), i = ...}
canrep(s) := sn
3.6 Partial Order ReductionUnabhängigkeitsrelation I zwischen Aktionen:
[a,b] in I gdw. keine der beiden Aktionen kann die Enabling-Bedingung der anderen ändern, und Resultat der Hinterein-anderausführung von a und b ist unabhängig von der Reihenfolge
s
s1
s2
s’
z.B. [g,g’] in I gdw. vorkommende Variablen disjunkt
Unabhängige Aktionen tragen wesentlich zur Zustandsraumexplosion bei.
Prinzip # 1: Unabhängigkeit
Alle Aktionen, die in s enabled sind und nicht in ample(s), sind von jeder Aktion in ample(s) unabhängig
“Stattfinden der ausgeschlossenen Aktionen wird auf Nachfolgezustände vertröstet”
Für jeden bei s beginnenden Pfad des originalen Systems:
Keine Aktion, die von einer Aktion in ample(s) abhängig ist,kommt vor einer Aktion aus ample(s) vor.
Erstes Prinzip und unendliche PfadeSatz: Wenn das originale TS einen unendlichen Pfad enthält,so auch das reduzierte.
s w
1. Fall: in w kommt ein a aus ample(s) vors s1 s2w1 a w2
2. Fall: in w kommt kein a aus ample(s) vors w
a
s1’ s2w1
aw2
Wenn bei s unendl. Pfad ausführbar ist, so gibt es im red. TS einen Nachfolger von s, bei dem ein unendl. Pfad ausführbar ist. Rest: Induktion
s1’w
Prinzip # 2: Sichtbarkeitample(s) enthält entweder keine einzige sichtbare Aktion oderalle Aktionen, die enabled sind (sichtbar wie unsichtbar)
1. Fall: in w kommt ein a aus ample(s) vors s1 s2w1 a w2
s1’ s2 dw1a
w2
a unsichtbar oderw1 leer
2. Fall: in w kommt kein a aus ample(s) vor
s was1’
w
a unsichtbar
diejenigen sichtbaren Aktionen, die aus dem Originalpfad in den reduzierten Pfad übernommen werden, bleiben in der gleichen Reihenfolge
Prinzip # 3: Nichtignorierung
Jeder Kreis im reduzierten Transitionssystem enthält einenZustand s, wo ample(s) alle Aktionen enthält, die in senabled sind
Wirkung: in einem solchen Zustand kann Fall 1 derPfadargumentation angewendet werden.
Jede Aktion des Originalpfades wird irgendwann auch im konstruierten Pfad ausgeführt
4. Symbolisches Model Checking4.1 BDD
YN YNYN Y N
0 4 8 12 16Elemente in Menge
Mengengröße
BDDGröße
Implementation von APPLY
YN
e
b
Y N
f
=
a
c
d
g h
i
af
bg
dY
Y
dY Y
eN
YN
YN Y
N
NN
NN N
A
eN Abg B
B
ch
eN Ni
NNNYNY Y
Y N A
Y A B
Ni Ach Aaf C
C
B A C
O ( |BDD1| |BDD2| )
Model Checking EU
geg: SAT, SATges: SATE(U
Z:= SAT do
ZZ (SAT SATEX Zuntil nothing changes SATE(U:=Z
Berechnen kleinsten Fixpunkt eines monoton wachsendenMengenoperators
Partitionierung der Übergangsrelation
Idee: T ist meistens Konjunktion Teilformeln
T1: x0’ x0 T2: x1’ (¬ x1 x0)T3: x2’ (¬ x2 (x0 x1))
Beispiel:
T T1 T2 T3
Partitionen kleiner als T, günstigenfalls auch in der Summe
mindestens: Eine Partition hängt normalerweise nicht von allen Variablen ab, ist also auf jeden Fall flacher als das BDD von T
Nutzt das?
4.2 SAT-basiertes Model Checking
Ansatz: Übersetze das Model Checking Problem inein aussagenlogisches Erfüllbarkeitsproblem undlöse dieses.
Inhalt4.2.1 Ein effizienter SAT-Solver4.2.2 Noch ein effizienter SAT-Solver4.2.3 LTL Model Checking als SAT-Problem
SAT-Solver für CNF
(Suche nach erfüllender Belegung)
Ausgangspunkt: Algorithmus von Davis-Putnam aus den 60ern
(xyz) (¬xy) (¬yz) (¬x¬y¬z)
(y) (¬yz) (¬y¬z) (yz) (¬yz)
x ¬x decide
(z) (¬z) yunit
propagationz
leere Klauselmenge= SAT!
pure literalpropagation
z
()leere Klausel = Konflikt Backtracking zur letzten offenen Entscheidung
Simple Rules
0 (y z)
y/1 z/0
x (0 z)
x/1
x (x z)
x/1
x (y 1)
x/1
x (y 0)
x/¬y
x (y y)
x/1
x (1 z)
x/z
Dilemma rule
12
(x/0) (x/1)
1 2
Ableitung 1 Ableitung 2
= Eine der Subst., falls andere zu Konflikt führt;= diejenigen Subst., die in beiden Zweigen gleich sind, sonst
Zusammenführen derZweige Vermeideredundante Arbeit inverschiedenen Zweigen
SAT-basiertes Model Checking
Idee: Übersetze Model Checking Problem in ein Erfüllbarkeitsproblem
Ausgangspunkt:
boolesche Kodierung des Zustandsraums, analogzu BDD-basiertem Model Checking
Zustandsüberführungsrelation als boolesche Formel
T(x , x’), ebenfalls analog BDD-Methode
Beschränkte Semantik von LTL
Idee: beschreiben Gegenbeispiel der Länge k
1 k 1l
k
Ziel: Wenn beschränkter Pfad erfüllt, so auch jede unendlicheFortzsetzung
Lassopfade: beschr. Semantik = originale Semantikkreisfrei: k F i k: (i) k-i k G false
die anderen Operatoren so, wie man es sich denkt
Übersetzung der Semantik
I(x(0)) T(x(0),x(1)) ... T(x(k-1),x(k)) 0k
pik := p(x(i))
ik := i
k ik ¬ i
k := ¬ ik
G ik := false
F ik := j=i
k jk
X ik := falls i < k, dann i+1
k sonst false
U ik := j=i
k ( jk n=j
knk)
kreisfrei:
Prinzipskizze
Inf. StateModell
Formel
ABSTRAKTION Fin. StateModell
Fin. StateModel Checker
+
Gegenbeispiel
-
Analyse
Abstraktions-verfeinerung
-
Infinite State Model Checker
5. Real-Time Systeme
aus ein hell kaputtklickklick
klickklick
Uhren c1, c2 Uhrenmenge C
lineare Constraints: ci k oder ci - cj k (k in Nat, in {=,<,>,,,} können boolesch verknüpft sein)
c1>3c1 3 c2>10000
Invarianten (gleiche Syntax)
c2 20000
Resets = Uhren, die auf 0 gesetzt werden
c1 c2
Pfade in Timed Automata
Problem: Zeitkonvergente Pfade “Zeno-Verhalten”
d1 d2 d3 d4 ....
1/2 1/4 1/8 1/16
Def: Nur die zeitdivergenten Pfade bilden die Semantik von Timed Automata
(Annahme analog zu Fairness)
Regionen
c2
c10
1
2
1 2 3
Regionengraphb) Zeitverlauf
{0} < ......... < {c2,c42,c200} {0,c2,c42,200} < ........{0,c2,c42,c200} < ....... {0} < {c2,c42,c200} < .......
Zonen
Problem des Regionengraphs: Zu viele Regionen neue Idee: größere Einheiten
Zone = Menge von Uhrenstellungen, die durch eine Konjunktionvon Uhrenconstraints (ci k oder ci - cj k, in {=,<,>,,,}) beschreibbar ist
Vereinfachende Annahmen: Constraints und Invarianten imTimed Automaton seien nur per Konjunktion verknüpft sind ihreserseits Zonen
geometrische Veranschaulichung
0 c1
c2
c1>2
c2 – c1 0
c1 – c2 < 4
c2 > 1
c2 3
c1 4
Berechnung engerer Constraints
c1
c1 – c2 < 4
0 - c2 < -1c1 – 0 4
c1 – c2 < 3
c1 – 0 4+ 0 - c2 < -1 c1 – c2 < 3
6 Abstraktion
geg: 2 Systeme C und A
Verbindung wird über eine Relation hergestellt
rot
gelb
grün
Gas
Bremse
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
Simulation und Computation Tree
rot
gelb
grün
Gas
Bremse
Bewahrung von ACTL*
Fazit: Berechnungsbaum von C findet sich “als Teilbaum”des Berechnungsbaums von A wieder
ACTL* quantifiziert nuruniversell über Pfade
Satz: Wenn C A simuliert, so gilt jede ACTL*-Eigenschaft von A auch in C
Konstruktion von Abstraktionen
geg: Konkretes System C = [S,E], Menge A von abstrakten Zuständen, Relation vonC in Ages: E’, so daß Simulationsrelation zwischen C und A wird
Lösung: a a’ gdw. es gibt c,c’ mit c a und c’ a’ undc c’
“Existential Abstraction”
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”!
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.
7 Abstraktionsverfeinerung7.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
Propagierung
Spaltung eines abstrakten Zustandes kann weitereSpaltungen notwendig machen Propagation nachrückwärts...
... bis sich nix mehr ändert
7.2 Gegenbeispielgesteuerte AV
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
8. Softwareverifikation
1. komplexe Datentypen und Expressions
2. Pointer und dynamische Datenstrukturen
3. Prozeduren und Rekursion
4. Bibliotheken
PredicateAbstraction
typedef struct cell{ int val; struct cell* next;} * list;
list partition(list *l, int v) { list curr, prev, newl, nextCurr;
curr = * l; prev = NULL; newl = NULL; while( curr != NULL) { nextCurr = curr -> next; if(curr -> val > v) { if(prev != NULL) { prev -> next = nextCurr; } if(curr == *l) { *l = nextCurr; } curr -> next = newl;L: newl = curr; } else { prev = curr; } curr = nextCurr; } return newl;}
void partition() {bool b1,b2,b3,b4;
b1 = unknown();b3 = unknown();b2 = true;b4 = unknown();skip;while(*) { assume(!b1); skip; if(*) { assume(b3) if(*) { assume(!b2); skip; } if(*) { skip; } skip;L: skip; } else { assume(!b3); b2 = b1; b4 = b3; } b1 = unknown(); b3 = unknown(); } assume(b1);}
b1: curr==NULLb2: prev==NULLb3: curr->val>vb4: prev->val>v
AG(@L curr!=NULL AND curr->val>v AND (prev->val<=v OR prev=NULL))AG(@L !b1 AND b2 AND (!b3 OR b4))
Abstract Interpretation
, und “kleinster Fixpunkt” = unendliche Vereinigung
= Rechnen auf vollständigem Verband
[M, , ] ist Verband, falls – beide Operationen komm., ass. - Absorption
ggf. neutrale Elemente
vollständig = abgeschlossen geg. unendliche Vereinigung
Verband induziert Halbordnung: x y gdw. x y = x (gdw. x y = y)
ist gr. untere Schranke, ist kl. obere Schranke von
“passend” = Galois-Verbindung
Konkret: [C,,] Abstrakt: [A,,]
Abstraktionsfunktion : C AKonkretisierungsfunktion : A C
() ist Galoisverbindung, wenn (x) Y gdw. x (Y)
Insbesondere: z ((z)) (x := z, Y := (z) ) ((Z)) Z (x := (Z)), Y := Z )
– “präziseste Abstraktion” – “liberalste Interpretation”
Fixpunktberechnung
nutzt nur etwas, wenn sie in endlich vielen Schrittenterminiert
Variante 1: endlicher abstrakter Verband
Variante 2: Terminierung forcieren Widening
Shape-Analysis
Insert in Liste:
x : nichtleere Liste x
malloc(y) xy
y -> n = x xy
x = y xy
Coarsening xy
Slicing
1 read(n);2 i := 1;3 sum := 0;4 product := 1;5 while i <= n do6 sum := sum + 1;7 product := product * i;8 i := i + 1; end9 write(sum);10 write(product);
(product,10)
1 read(n);2 i := 1;
4 product := 1;5 while i <= n do
7 product := product * i;8 i := i + 1; end
10 write(product);
9.1 Hybride Systeme
hybrid = kontinuierliche + diskrete Variablen
Hybrider Automat:
Einlaufen Auslaufen
h>= max
h <= minh’ [ -0.5,0.7]h’ [ -0.8,0.9]
(Der hier ist ein linearer Automat: x’ [c1,c2])
9.2 Kompositionale Verifikation
System in Komponenten zerlegen
Komponenten verifizieren
Eigenschaft des Gesamtsystems schlußfolgern
Assume-Guarantee-Reasoning
Induktion
A gilt für System mit 0 oder 1 Komponente Model Checking
I) Wenn für System mit max. k Komponenten, so auch mit k+1 Komponenten
kompliziert. Meist manuell.z.B.:Versuche, 2 oder mehr Komponenten derart zu abstrahieren,daß sich Resultat wie 1 Komponente verhält
.... .....
Small Model Properties
Viele Logiken, auch temporale, haben Eigenschaftender Form
Wenn in irgendeinem Modellgilt, so gibt es auch ein Modell der Größe k, wo gilt.
k z.B. Anzahl der freien Variablen in
Parametrisiertes Problem kann auf endlich viele Model Checking Probleme reduziert werden
9.4 Security-Protokolle
Betrachten nicht: Verschlüsselung/Entschlüsselung,
sondern vor allem: Verbindungsaufbau, Authentifizierung,...
“Perfekte Verschlüsselung”= Inhalt einer verschlüsselten Nachricht ist ohne Schlüssel nicht verfügbar
“Begrenzter Zufall”= Wenn eine Zufallszahl (“Nonce”) Bestandteil einer verschlüsselten Nachricht ist, gibt es keine Möglichkeit, den Wert dieser Zahl zu ermitteln, als die Nachricht zu entschlüsseln.
Beide Annahmen falsch, aber sinnvoll.
9.5 Worst-Case-Execution-Time-Analyse
geg: Programm, Prozessor, Taktfrequenz
ges: max. Abarbeitungszeit T: jede Ausführung braucht garantiert nicht länger als T T möglichst klein
Probleme im Low-Level und im High-Level-Bereich
System
Spezifikation Formalisierung log. Formel
Abstraktion Modell
Model Checker
Gegenbeispiel
-
Verfeinerung
Transitionssystem
guarded commandsnextstate
enabledverteilt
CTL*LTLCTLACTLPfad, ,
Computation Tree
SicherheitLebendigkeit
Fairnessexplizites MC:-Tiefensuche-CTL-Algorithmus-LTL-Algorithmus (Büchi-Automat)-Symmetrie-Partial Order Reduction-Fairness
symbolisches MC:-BDD-basiert-Fixpunktoperationen Widening/Narrowing-Fairness-SAT-basiert-SAT-Checker
symbolische BeschreibungenSAT-basiertes MC,Abstraktionsverfeinerungallgemein (Bismulation)
zenoTimed AutomataHybrid Automata
gegenbeispielgesteuert(dead end/bad states)
SimulationBisimulationAbstract InterpretationExistential AbstractionPredicate AbstractionPolyhedral Abstraction (Zonen)
Regionen SymmetrieSlicingShapes
HardwareProtokolleReal-TimeHybridSoftwareSecurity
kompositionaleVerifikationparametrisierteSystemeInduktionAssume/GuaranteeSmall Model Props
Model Checking aus Anwendersicht
-Wahl der richtigen Tools/Methoden für den konkreten Anwendungsfall
verteilt? (ja Partial Order Reduction explizites MC)komplexe Daten? (ja symbolisch, predicate abstraction oder abstract interpretation)Zeit? Vielleicht nur Timeouts (ja Fairnessannahme, sonst RT)kont. Anteile hybrid oder diskrete AbstraktionRegelmäßige Struktur Symmetrie oder parametrisiertVermeidung schwieriger Operationen (z.B. Mult. bei BDD)Bewußte, saubere Abstraktion
-Realistische Erwartungshaltung für Resultate (Laufzeit, Platz, Lösungsgüte)
- Krisenmanagement (z.B. Weitere Abstraktion)
Model Checking aus Theoriesicht
-Logiken und ihre Eigenschaften small model prop, Gegenbeispielstruktur, Entscheidbarkeit, Komplexität
-Automatentheorie
-Beziehungen zwischen Systemen Simulation/Bisimulation/Abstraktion
-Rechtfertigung von Algorithmen (Korrektheit/Vollständigkeit) z.B. Partial Order Reduction, Bounded Semantics,
Model Checking aus Entwicklersicht
-vielseitig verwendbare Datenstrukturen/Algorithmen - Graphen, SZK, Automorphismen - BDD und Fixpunktoperationen - Automaten - Constraints und Linaer Programming/Constraint Programming - Aussagenlogik und SAT-Checking
-Prinzipien zur Effizienzsteigerung - dynamisches Programmieren (z.B. im expliziten CTL-Alg.) - Lerntechniken, Heuristiken (z.B. beim SAT-Checking) - Das “Low Hanging Fruit” Prinzip - domainspezifische Annahmen - teile und herrsche (z.B. explizite Fairness) ....
Austausch mit anderen Disziplinen
Model Checking
Komplexitätstheorie(Rechtfertigung “unsauberer”Verfahren)
Prozeßalgebra(Simulation, Bisimulation,Partial Order Reduction, Fairness, Systembeschreibungssprachen)
Graphtheorie(SZK, Automorphismen)
Schaltkreisentwurf(BDD)
Lineare Optimierung/Constraint Programming(Lösung von Constraint-Problemen)
Static Analysis(Abstract Interpretation,Alias-Analyse, Shape-Analysis,Slicing)
Theorembeweisen(Software-Verifikation, Predicate Abstraction, Entscheidungsprobleme - SAT - Bitvektor - Pressburger, .... )
Logik(Syntax, Semantik, Expressivität, Entscheidbarkeit)
Automatentheorie(Komposition, Minimierung, Expressivität)
usw usf
Letzte Folie
Erfolg = solide theoretische Basis + Interdisziplinäres Herangehen + gesunder Prgmatismus