Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Computergestützte Verifikation 5.7.2002. Testen: kann nur die Anwesenheit von Fehlern feststellen, nicht ihre Abwesenheit. (E. Dijkstra) Verifikation:

Ähnliche Präsentationen


Präsentation zum Thema: "Computergestützte Verifikation 5.7.2002. Testen: kann nur die Anwesenheit von Fehlern feststellen, nicht ihre Abwesenheit. (E. Dijkstra) Verifikation:"—  Präsentation transkript:

1 Computergestützte Verifikation

2 Testen: kann nur die Anwesenheit von Fehlern feststellen, nicht ihre Abwesenheit. (E. Dijkstra) Verifikation: Nachweis der Korrektheit (theoretisch) Fähigkeit, subtile Fehler zu finden (praktisch) Konstruktion: Erzeugen des Systems aus der Spezifikation Systematische Entwicklungsprozesse: z.B. ISO 9000

3 Was ist Model Checking? Erschöpfende Durchmusterung der Zustände eines Systems zur Prüfung einer vorgegebenen Eigenschaft Grundproblem: Zustandsexplosion

4 Model Checking: Prinzipskizze System Spezifikation Formalisierung log. Formel Abstraktion Modell Model Checker + Gegenbeispiel - Simulation Verfeinerung Fehler- beseitigung Präzisierung Überlauf

5 1 Systeme Zustand: Zusammenfassung aller Systemgrößen, die das weitere Systemverhalten wesentlich beeinflussen können diskrete Systeme = alle Wertebereiche abzaehlbar kontinuierliche Systeme = alle Wertebereiche dicht hybride Systeme = sowohl als auch real-time Systeme = einzige kontinuierliche Größe ist die Zeit finite state systems = Zustandsraum endlich inifinite state systems = Zustandsraum unendlich Abstraktion

6 2 Temporale Logik G F = gilt unendlich oft F G = stabilisiert G ( u F ) = führt zu Tautologien: F G F w G F G F G w F G

7 s5 Der Berechnungsbaum s1 s2 s3 s4 s6 s1 s4s2 s4 s2 s5 s3 s5 s1 s5 s6 s2s4s6s4

8 CTL* -Pfadquantoren s Wenn eine Pfadformel ist, so ist 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 cs ~ A X a Tautologien: A w E A u E Wenn eine Pfadformel ist, so ist A eine Zustandsformel s erfüllt A gdw. für alle Pfade die bei s beginnen, gilt: ~

9 CTL* - Zusammenfassung CTL* LTL CTL nur Pfad- formeln Nur Zust.- formeln

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

11 Progress und Fairness p a b c d e f ppp a b d e F p gilt nicht !!?!?!?!

12 Model Checking für finite state systems explizit:symbolisch: explizite Konstruktion eines Transitionssystems, das sich in bezug auf die untersuchte Eigenschaft äquivalent zum gegebenen verhält, aber in der Regel wesentlich kleiner ist. Eigenschaft wird durch Graphsuche nach Zeugen/ Gegenbeispielen verifiziert Datenstruktur, die Mengen von Zuständen bzw. Pfaden beschreibt, Operationen, die simultan die Nachfolger aller Zustände berechnet Eigenschaft wird durch Fixpunktoperationen auf der symbolischen Datenstruktur berechnet

13 3 Explizites Model Checking 3.1 Tiefensuche [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

14 Kriterium für Startknoten von SZK v.lowlink = MIN(v.dfs | v von v erreichbar über beliebig viele Baumkanten, gefolgt von max. einer anderen Kante [v,v] mit v ~ v) Satz: v ist genau dann Startknoten einer SZK wenn v.lowlink = v.dfs

15 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 L TS TS erfüllt genau dann, wenn jeder Pfad in TS erfüllt, d.h. L TS L

16 Büchi-Automaten = endliche Automaten mit einem für unendliche Sequenzen geeigneten Akzeptierungskriterium B = [X, Z, Z 0,, F] X – Alphabet Z – Zustandsmenge Z 0 – Anfangszustandsmenge : Z x X 2 Z F = {F 1,...,F n }, F i Z Akzeptierungsmengen unendliche Sequenz in X B akzeptiert : es ex. unendliche Sequenz = z 0 z 1 z z 0 Z 0, z i+1 d(z i,x i ), - Für jedes F i F: enthält unendlich oft Elemente aus F i L B

17 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, ) = F L(s,A( U ) = W L(s,A( U ) = F

18 Was hilft das? s0s0 S S1S1 S2S2 SnSn.... | | ( O(|S 1 |) O(|S n |) ) O( |S 2 |) + = O(| |(|S 1 | +|S 2 |+...+ |S n |)) = O((| | |TS|) L(s,A/E( U )) ?

19 3.4 Fairness -Eingabe: eine SZK C, Mengen F schw und F st 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 C 2. 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

20 3.5 Symmetrie Grundgedanke: symmetrisch strukturierte Systeme haben symmetrisches Verhalten Quellen für Symmetrie: a)regelmäßig strukturierte Datentypen b)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

21 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]

22 Beispiel 1 (i,i,1) (r,i,1) (r,r,1)(c,i,0) (c,r,0) = { Id, } ([x,y,z]) = [y,x,z]

23 Symmetrie in Datentypen Fall 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

24 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 induzieren Symmetrien eines Komponentensystems Hinter allen Symmetrieansätzen stecken Graphautomorphismen, z.B. auch hinter Datentypsymmetrie: = = = = = = = = incr

25 Komplexität des Automorphismenproblems eng verwandt: Graphisomorphie NP NPV P ? ? Ein Graph kann exponentiell viele Automorphismen haben

26 Konzept für Erzeugendensystem U1 U2 U3 U1 U2 U3... Un = {e} Eindeutige Darstellung: Jedes Element g von G besitzt genau eine Darstellung der Form g = g1 o g2 o... o gn mit gi aus einem der von Ui in U(i-1) generierten Orbit

27 Automorphismenberechnung a e bfa c cc R* D DD poly exp cc = #Ai #Bi ist selten meistens poly. Laufzeit!!!

28 id g11 g12 g13 g14g21 g22 g23g31 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

29 3.6 Partial Order Reduction Unabhä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.

30 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.

31 Erstes Prinzip und unendliche Pfade Satz: 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) vor s s1s2 w1a w2 2. Fall: in w kommt kein a aus ample(s) vor s w a s1 s2 w1 a w2 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

32 Prinzip # 2: Sichtbarkeit ample(s) enthält entweder keine einzige sichtbare Aktion oder alle Aktionen, die enabled sind (sichtbar wie unsichtbar) 1. Fall: in w kommt ein a aus ample(s) vor s s1s2 w1a w2 s1 s2 d w1 a w2 a unsichtbar oder w1 leer 2. Fall: in w kommt kein a aus ample(s) vor s w a s1 w a unsichtbar diejenigen sichtbaren Aktionen, die aus dem Originalpfad in den reduzierten Pfad übernommen werden, bleiben in der gleichen Reihenfolge

33 Prinzip # 3: Nichtignorierung Jeder Kreis im reduzierten Transitionssystem enthält einen Zustand s, wo ample(s) alle Aktionen enthält, die in s enabled sind Wirkung: in einem solchen Zustand kann Fall 1 der Pfadargumentation angewendet werden. Jede Aktion des Originalpfades wird irgendwann auch im konstruierten Pfad ausgeführt

34 4. Symbolisches Model Checking 4.1 BDD Y NYN YN YN Elemente in Menge Mengen größe BDD Größe

35 Implementation von APPLY Y N e b YN f = a c d g h i af bg dY Y dY Y eN YN YN Y N NN NN N A eN A bg B B ch eN Ni NN NY NY Y Y N A Y A B Ni A ch A af C C B A C O ( |BDD1| |BDD2| )

36 Model Checking EU geg: SAT, SAT ges: SAT E( U Z := SAT do Z Z (SAT SAT EX Z until nothing changes SAT E( U :=Z Berechnen kleinsten Fixpunkt eines monoton wachsenden Mengenoperators

37 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?

38 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem und löse dieses. Inhalt Ein effizienter SAT-Solver Noch ein effizienter SAT-Solver LTL Model Checking als SAT-Problem

39 SAT-Solver für CNF (Suche nach erfüllender Belegung) Ausgangspunkt: Algorithmus von Davis-Putnam aus den 60ern (x y z) (¬x y) (¬y z) (¬x ¬y ¬z) (y) (¬y z) (¬y ¬z)(y z) (¬y z) x ¬x¬xdecide (z) (¬z) y unit propagation z leere Klauselmenge = SAT! pure literal propagation z () leere Klausel = Konflikt Backtracking zur letzten offenen Entscheidung

40 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

41 Dilemma rule 1 2 (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 der Zweige Vermeide redundante Arbeit in verschiedenen Zweigen

42 SAT-basiertes Model Checking Idee: Übersetze Model Checking Problem in ein Erfüllbarkeitsproblem Ausgangspunkt: boolesche Kodierung des Zustandsraums, analog zu BDD-basiertem Model Checking Zustandsüberführungsrelation als boolesche Formel T(x, x), ebenfalls analog BDD-Methode

43 Beschränkte Semantik von LTL Idee: beschreiben Gegenbeispiel der Länge k 1 k 1 l k Ziel: Wenn beschränkter Pfad erfüllt, so auch jede unendliche Fortzsetzung Lassopfade: beschr. Semantik = originale Semantik kreisfrei: k F i k: (i) k-i k G false die anderen Operatoren so, wie man es sich denkt

44 Übersetzung der Semantik I(x (0) ) T(x (0),x (1) )... T(x (k-1),x (k) ) 0 k p i k := p(x (i) ) i k := i k i k ¬ i k := ¬ i k G i k := false F i k := j=i k j k X i k := falls i < k, dann i+1 k sonst false U i k := j=i k ( j k n=j k n k ) kreisfrei:

45 Prinzipskizze Inf. State Modell Formel ABSTRAKTION Fin. State Modell Fin. State Model Checker + Gegenbeispiel - Analyse Abstraktions- verfeinerung - Infinite State Model Checker

46 5. Real-Time Systeme ausein hell kaputt klick Uhren c1, c2 Uhrenmenge C lineare Constraints: ci k oder ci - cj k (k in Nat, in {=,,,, } können boolesch verknüpft sein) c1>3 c1 3 c2>10000 Invarianten (gleiche Syntax) c Resets = Uhren, die auf 0 gesetzt werden c1 c2

47 Pfade in Timed Automata Problem: Zeitkonvergente Pfade Zeno-Verhalten d1 d2 d3 d /21/41/8 1/16 Def: Nur die zeitdivergenten Pfade bilden die Semantik von Timed Automata (Annahme analog zu Fairness)

48 Regionen c2 c

49 Regionengraph b) Zeitverlauf {0} < < {c2,c42,c200} {0,c2,c42,200} < {0,c2,c42,c200} < {0} < {c2,c42,c200} <

50 Zonen Problem des Regionengraphs: Zu viele Regionen neue Idee: größere Einheiten Zone = Menge von Uhrenstellungen, die durch eine Konjunktion von Uhrenconstraints (ci k oder ci - cj k, in {=,,,, }) beschreibbar ist Vereinfachende Annahmen: Constraints und Invarianten im Timed Automaton seien nur per Konjunktion verknüpft sind ihreserseits Zonen

51 geometrische Veranschaulichung 0 c1 c2 c1>2 c2 – c1 0 c1 – c2 < 4 c2 > 1 c2 3 c1 4

52 Berechnung engerer Constraints c1 c1 – c2 < c2 < -1 c1 – 0 4 c1 – c2 < 3 c1 – c2 < -1 c1 – c2 < 3

53 6 Abstraktion geg: 2 Systeme C und A Verbindung wird über eine Relation hergestellt rot gelb grün Gas Bremse

54 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

55 Simulation und Computation Tree rot gelb grün Gas Bremse

56 Bewahrung von ACTL* Fazit: Berechnungsbaum von C findet sich als Teilbaum des Berechnungsbaums von A wieder ACTL* quantifiziert nur universell über Pfade Satz: Wenn C A simuliert, so gilt jede ACTL*-Eigenschaft von A auch in C

57 Konstruktion von Abstraktionen geg: Konkretes System C = [S,E], Menge A von abstrakten Zuständen, Relation von C in A ges: E, so daß Simulationsrelation zwischen C und A wird Lösung: a a gdw. es gibt c,c mit c a und c a und c Existential Abstraction

58 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!

59 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.

60 7 Abstraktionsverfeinerung 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

61 Propagierung Spaltung eines abstrakten Zustandes kann weitere Spaltungen notwendig machen Pr opagation nach rückwärts bis sich nix mehr ändert

62 7.2 Gegenbeispielgesteuerte AV dead end state = erreichbar von einem konkreten Zustand im ersten abstrakten Zustand bad state = hat Nachfolger Verfeinerung = trenne dead end und bad states erfüllbare Pfadformel nicht erfüllbare Pfadformel

63 8. Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen 3.Prozeduren und Rekursion 4. Bibliotheken

64 Predicate Abstraction 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==NULL b2: prev==NULL b3: curr->val>v b4: prev->val>v curr!=NULL AND curr->val>v AND (prev->val<=v OR prev=NULL)) !b1 AND b2 AND (!b3 OR b4))

65 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

66 passend = Galois-Verbindung Konkret: [C,, ] Abstrakt: [A,, ] Abstraktionsfunktion : C A Konkretisierungsfunktion : 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

67 Fixpunktberechnung nutzt nur etwas, wenn sie in endlich vielen Schritten terminiert Variante 1: endlicher abstrakter Verband Variante 2: Terminierung forcieren Widening

68 Shape-Analysis Insert in Liste: x : nichtleere Liste x malloc(y) x y y -> n = x x y x = y x y Coarsening xy

69 Slicing 1 read(n); 2 i := 1; 3 sum := 0; 4 product := 1; 5 while i <= n do 6sum := sum + 1; 7product := product * i; 8i := i + 1; end 9 write(sum); 10 write(product); (product,10) 1 read(n); 2 i := 1; 4 product := 1; 5 while i <= n do 7product := product * i; 8i := i + 1; end 10 write(product);

70 9.1 Hybride Systeme hybrid = kontinuierliche + diskrete Variablen Hybrider Automat: Einlaufen Auslaufen h>= max h <= min h [ -0.5,0.7] h [ -0.8,0.9] (Der hier ist ein linearer Automat: x [c1,c2])

71 9.2 Kompositionale Verifikation System in Komponenten zerlegen Komponenten verifizieren Eigenschaft des Gesamtsystems schlußfolgern Assume-Guarantee-Reasoning

72 Induktion 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

73 Small Model Properties Viele Logiken, auch temporale, haben Eigenschaften der Form Wenn in irgendeinem Modell gilt, 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

74 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.

75 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

76 System Spezifikation Formalisierung log. Formel Abstraktion Modell Model Checker Gegenbeispiel - Verfeinerung Transitionssystem guarded commands nextstate enabled verteilt CTL* LTL CTL ACTL Pfad,, Computation Tree Sicherheit Lebendigkeit Fairness explizites 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 Beschreibungen SAT-basiertes MC, Abstraktionsverfeinerung allgemein (Bismulation) zeno Timed Automata Hybrid Automata gegenbeispielgesteuert (dead end/bad states) Simulation Bisimulation Abstract Interpretation Existential Abstraction Predicate Abstraction Polyhedral Abstraction (Zonen) Regionen Symmetrie Slicing Shapes Hardware Protokolle Real-Time Hybrid Software Security kompositionale Verifikation parametrisierte Systeme Induktion Assume/Guarantee Small Model Props

77 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 Abstraktion Regelmäßige Struktur Symmetrie oder parametrisiert Vermeidung 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)

78 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,

79 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)....

80 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

81 Letzte Folie Erfolg = solide theoretische Basis + Interdisziplinäres Herangehen + gesunder Prgmatismus

82


Herunterladen ppt "Computergestützte Verifikation 5.7.2002. Testen: kann nur die Anwesenheit von Fehlern feststellen, nicht ihre Abwesenheit. (E. Dijkstra) Verifikation:"

Ähnliche Präsentationen


Google-Anzeigen