1 / 82

Computergest ützte Verifikation

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.

chuck
Download Presentation

Computergest ützte Verifikation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computergestützte Verifikation 5.7.2002

  2. 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 Verifikation: Nachweis der Korrektheit (theoretisch) Fähigkeit, subtile Fehler zu finden (praktisch)

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

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

  5. Abstraktion 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

  6. G F f = f gilt unendlich oft ....... F G f = f stabilisiert .......... G ( fu F y) = fführt zuy .......... 2 Temporale Logik Tautologien: F G F fw G F f G F G fw F G f

  7. s1 s1 s4 s2 s1 s6 s2 s4 s5 s5 s3 s3 s5 s2 s4 s6 s4 s1 s5 s6 Der Berechnungsbaum s1 s4 s2 s6 s5 s3

  8. CTL* -Pfadquantoren Wenn f eine Pfadformel ist, so ist E f eine Zustandsformel s s erfüllt E f gdw. es einen Pfad p gibt, der bei s beginnt und p~f Wenn f eine Pfadformel ist, so ist A f eine Zustandsformel a,b a,d s erfüllt Af gdw. für alle Pfade p, die bei s beginnen, gilt: p~f c Tautologien: A fw E f A f uE f s ~ E F c s ~ A X a

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

  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 e d a b p p p a d f c b e F p gilt nicht !!?!?!?! p

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

  13. 3 Explizites Model Checking3.1 Tiefensuche 6 2 [v,v’] ist Baumkante, falls [v,v’] in T 5 4 [v,v’] ist Vorwärtskante, falls [v,v’] in T*\T 3 1 [v,v’] ist Rückwärtskante, falls [v’,v] in T* [v,v’] ist Querkante, sonst 0 2 5 [v,v’] in Quer  v.dfs > v’.dfs 1 [v,v’] in Vorwärtsv.dfs v’.dfs 3 [v,v’] in Rückwärts  v.dfs > v’.dfs 6 4 [v,v’] in Rückwärts  v ~ v’ 0

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

  15. 3.2 LTL Model Checking LTL-Eigenschaft  Menge derjenigen Pfade, die f erfüllen  Lfw Transitionssystem  Menge derjenigen Pfade, die in TS realisiert werden können  LTSw TS erfüllt f genau dann, wenn jeder Pfad in TS f erfüllt, d.h. LTSw Lfw

  16. Büchi-Automaten = endliche Automaten mit einem für unendliche Sequenzen geeigneten Akzeptierungskriterium B = [X, Z, Z0, d , F] X – Alphabet Z – Zustandsmenge Z0 – Anfangszustandsmenge d: Z x X  2Z F = {F1,...,Fn}, Fi  Z Akzeptierungsmengen unendliche Sequenz p in Xw • B akzeptiert p: es ex. unendliche Sequenz z = z0 z1 z2 .... • z0 Z0, zi+1  d(zi,xi), • Für jedes Fi F:z enthält unendlich oft Elemente aus Fi  LB

  17. L(s’,A(y U c)) = W L(s’,c) = F L(s’,y) = F L(s’,A(y U c)) = F L(s’,c) = W L(s’,y) = W L(s’,c) = F L(s’,A(y U c)) = ? s 3.3 CTL Model Checking CheckAU(s,y,c): Suche Gegenbeispiel

  18. L(s,A/E(y U c))  ? |f| ( O(|S1|) + O( |S2|) + .... + O(|Sn|) ) Was hilft das? S S1 S2 Sn = O(|f|(|S1| +|S2|+...+ |Sn|)) .... = O((|f| |TS|) s0

  19. 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 C 2. Fall: eine schwache Annahme verletzt (also: kein f-Zst. in C)  return ø 3. Fall: eine starke Annahme (G F f) (G F y) ist verletzt (also: es gibt in C f-Zst., aber keine y-Zst.)  Streiche alle f-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: • regelmäßig strukturierte Datentypen • 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 S = { Id, s} s([x,y,z]) = [y,x,z] (i,i,1) (r,i,1) (i,r,1) g1 (c,i,0) (r,r,1) (i,c,0) (r,c,0) (c,r,0)

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

  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, b eine Belegung dieser Variablen mit Werten, und p eine Permutation auf D. Setzen p zu einer Symmetrie s fort

  24. = = 2 2 incr incr    = = 1  3 1 3 = =  incr incr  = = 4 4 Graphautomorphismen • Eine Permutation s: V  V heißt Graphautomorphismus, • falls für alle v,v’ aus V gilt: • c(v) = c(s(v)) • Wenn [v,v’]  E, so [s(v),s(v’)]  E und c([v,v’]) = c([s(v),s(v’)]) Graphautomorphismen des Kommunikationsgraphen induzieren Symmetrien eines Komponentensystems Hinter allen Symmetrieansätzen stecken Graphautomorphismen, z.B. auch hinter Datentypsymmetrie:

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

  26. Konzept für Erzeugendensystem U1 U2 U1  U2  U3  ...  Un = {e} U3 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. poly 2 2 3 3 8 8 3 3 exp c c c c ist selten  meistens poly. Laufzeit!!! = #Ai  #Bi Automorphismenberechnung 3 4 2 1 1 8 8 6 7 5 a b f a e c R* D R* R* R* D D R* R* R* R* R*

  28. Orbitproblem id id g11 g12 g13 g14 g21 g22 g23 g31 g32 geg: s ges: canrep(s) ........ n. sn := MIN{g1i-1(s[n-1]), i = ...} 1. s1 := MIN{g1i-1(s), i = ...} 2. s2 := MIN{g2i-1(s1), i = ...} canrep(s) := sn 3. s3 := MIN{g3i-1(s2), i = ...}

  29. 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 s1 s s’ s2 3.6 Partial Order Reduction z.B. [g,g’] in I gdw. vorkommende Variablen disjunkt Unabhängige Aktionen tragen wesentlich zur Zustandsraumexplosion bei.

  30. Prinzip # 1: Unabhängigkeit 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. • 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”

  31. w s w1 a w2 s s1 s2 a w1 w2 s1’ s2 w s a w s1’ Erstes Prinzip und unendliche Pfade Satz: Wenn das originale TS einen unendlichen Pfad enthält, so auch das reduzierte. 1. Fall: in w kommt ein a aus ample(s) vor 2. Fall: in w kommt kein a aus ample(s) vor • 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

  32. 1. Fall: in w kommt ein a aus ample(s) vor a unsichtbar oder w1 leer w1 a w2 s s1 s2 a w1 w2 d s1’ s2 2. Fall: in w kommt kein a aus ample(s) vor a unsichtbar w s a w s1’ Prinzip # 2: Sichtbarkeit ample(s) enthält entweder keine einzige sichtbare Aktion oder alle Aktionen, die enabled sind (sichtbar wie 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. Mengen größe N Y BDD Größe 4. Symbolisches Model Checking4.1 BDD N N Y Y N Y 0 4 8 12 16 Elemente in Menge

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

  36. Model Checking EU geg: SATf, SAT y ges: SATE(f U y) Z:= SAT y do Z:= Z  (SATf  SATEX Z) until nothing changes SATE(f U y) :=Z Berechnen kleinsten Fixpunkt eines monoton wachsenden Mengenoperators

  37. Partitionierung der Übergangsrelation Idee: T ist meistens Konjunktion Teilformeln Beispiel: T1: x0’   x0 T2: x1’  (¬ x1 x0) T3: x2’  (¬x2 (x0  x1)) 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 4.2.1 Ein effizienter SAT-Solver 4.2.2 Noch ein effizienter SAT-Solver 4.2.3 LTL Model Checking als SAT-Problem

  39. x ¬x decide unit propagation z pure literal propagation y (z)  (¬z) leere Klauselmenge = SAT! z () leere Klausel = Konflikt  Backtracking zur letzten offenen Entscheidung 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)

  40. Simple Rules 0  (y  z) x  (y  1) x  (1  z) y/1 z/0 x/1 x/z x  (0  z) x  (y  0) x/1 x/¬y x  (x  z) x  (y  y) x/1 x/1

  41. s(x/1) s(x/0) Ableitung 1 Ableitung 2 s1 s2 s1s2 = Eine der Subst., falls andere zu Konflikt führt; = diejenigen Subst., die in beiden Zweigen gleich sind, sonst Dilemma rule Zusammenführen der Zweige  Vermeide redundante Arbeit in verschiedenen Zweigen s

  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. k k 1 1 l Beschränkte Semantik von LTL Idee: beschreiben Gegenbeispiel der Länge k Ziel: Wenn beschränkter Pfad f erfüllt, so auch jede unendliche Fortzsetzung • Lassopfade: beschr. Semantik = originale Semantik • kreisfrei: • k F f   i  k: p(i)k-if • k G f  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))  f0k kreisfrei: pik := p(x(i)) f yik := fik yik ¬fik := ¬ fik G fik := false F fik := j=ikfjk X fik := falls i < k, dann fi+1k sonst false f U yik := j=ik ( yjk  n=jkfnk)

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

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

  47. Pfade in Timed Automata Problem: Zeitkonvergente Pfade “Zeno-Verhalten” d1  d2  d3  d4  .... 1/16 1/2 1/4 1/8 Def: Nur die zeitdivergenten Pfade bilden die Semantik von Timed Automata (Annahme analog zu Fairness)

  48. Regionen c2 2 1 0 2 1 3 c1

  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

More Related