1 / 30

Computergest ützte Verifikation

Computergest ützte Verifikation. 14.6.2002. 6. Abstraktion. C. r. A. Simulation. ist Simulationsrelation, wenn f ür alle c,a,c’ : Wenn c r a und c  c’ in C, so ex. ein a’ mit c’ r a’ und a  a’ in A. Simulation und Computation Tree. rot. Bremse. r. gelb. Gas. gr ün.

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 14.6.2002

  2. 6. Abstraktion

  3. C r A Simulation • ist Simulationsrelation, wenn für alle c,a,c’: Wenn c r a und c  c’ in C, so ex. ein a’ mit c’ r a’ und a  a’ in A

  4. Simulation und Computation Tree rot Bremse r gelb Gas grün

  5. Existential Abstraction • Sehr praktikabel: • Wähle abstrakte Zustandsmenge (nach Kriterien wie z.B. Bewahrung elementarer Eigenschaften) 2. Ergänze kanonisch eine Übergangsrelation rot Bremse r gelb Gas grün

  6. Beispiele 1. Vorzeichenabstraktion 2. Logarithmische Abstraktion Nat  {< 0 , 0 , > 0} Nat  Nat; i  lg i = log2(i+1) 3. Bit-Abstraktion I O I AND/ OR/NOT AND/ OR/NOT O R e g R e g

  7. Bit-Abstraktion I O AND/ OR/NOT • T(x1...xn,x1’...xn’) = • i1...im R(x1..xn,i1...im,x1’...xn’) R e g 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

  8. Bisimulation Wenn sowohl r als auch r-1 Simulationsrelationen sind, heißen C und A bisimilar, und r 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 r a, es existiert c’: c  c’ und c’ r a’ (Bisimulation) es existiertc: c r a es existiert c’: c  c’ und c’ r a’ (exist. Abstr.)

  10. Beispiele für Bisimulationen • 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 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.

  12. Konstruktion von Bisimulationen Nicht jede abstrakte Zustandsmenge kann zu einem bisimilaren Transitionssystem ergänzt werden rot Bremse r gelb Gas grün Konstruktion von bisimilaren Transitionssystemen aus abstrakter Zustandsmenge erfordert Abstraktionsverfeinerung

  13. 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 r zum Zustand von Spieler 1 steht • C simuliert A schwach • schwache Bisimulation ( r und r-1 ..., wie gehabt) ... bewahrt CTL*-X Partial order reduction für CTL* liefert schwach bisimilares reduziertes Transitionssystem

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

  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. Bewahrung von ACTL* in die “andere” Richtung: “Core” gut genug: Core muss sich wie Bisimulation verhalten Wo spalten? Bisimulation: gut schlecht

  19. Beispiel: Zonen Wie spalten? Welche Uhrenstellung in Z1 hat Nachfolger in Z2? • Schnitt mit Constraint • Nullstellen • Schnitt mit Invariante des diskreten Nachfolgers • Zeitverlauf • Schnitt mit Invariante Komplement nicht unbedingt konvex  ggf. mehrere Zonen als Spaltprodukt • 1. Schnitt mit Null • 2. Öffnung “nach oben” • Schnitt mit Constraint • Schnitt mit Zone • lernen: brauchen Möglichkeit, abstrakten Vorgänger zu berechnen

  20. Propagierung Spaltung eines abstrakten Zustandes kann weitere Spaltungen notwendig machen  Propagation nach rü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: • initiale Abstraktion • Verifikation von f (aus ACTL*) im abstrakten System • 3. f gilt  f gilt auch im konkreten System • 4. f gilt nicht  abstraktes Gegenbeispiel • 5. 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

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

  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. erfüllbare Pfadformel nicht erfüllbare Pfadformel dead end state = erreichbar von einem konkreten Zustand im ersten abstrakten Zustand bad state = hat Nachfolger Scheingegenbeispiele Verfeinerung = trenne dead end und bad states

  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 d1 = (0,1,0,1) d2 = (1,1,1,0) b1 = (1,1,1,1) b2 = (0,0,0,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 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

  29. Übung 1 Verfeinere die gegebene Abstraktion zu einer Bisimulation (r = gleiche Strichart)!

  30. Übung 2 Verfeinere die gegebene Abstraktion derart, daß der abstrakte Pfad A  B  C  D nicht mehr realisierbar ist! 1,2,3 r A 4,5,6 r B 7,8 r C 9,10,11 r D 1 4 8 11 6 2 9 5 3 7 10

More Related