1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Algorithmen für das Erfüllbarkeitsproblem SAT
Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Übung 1 Konstruiere einen Büchi-Automat, der genau die
Bounded Model Checking II
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Default Logiken Zhao Li
Hauptseminar Modellüberprüfung Kathrin Ott
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Verifizieren versus Berechnen
Kapitel 4 Syntaktische Analyse: LR Parsing.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Computergestützte Verifikation
1 Computergestützte Verifikation Abstraktion.
Computergestützte Verifikation
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
Computergestützte Verifikation
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
Computergestützte Verifikation
1 Übung 1 Adaptiere die Prozeduren CheckEU und/oder CheckAU zu Prozeduren CheckEF und CheckAF!
1 Computergestützte Verifikation Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Symbolisches Model Checking mit Binary Decision Diagrams
Katja Losemann Chris Schwiegelshohn
Christian Schindelhauer
Christian Schindelhauer
Schieferdeckarten Dach.ppt
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
20:00.
„Küsse deine Freunde“ – FlexKom-App teilen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
für Weihnachten oder als Tischdekoration für das ganze Jahr
Syntaxanalyse Bottom-Up und LR(0)
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
PROCAM Score Alter (Jahre)
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Computergestützte Verifikation
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Es war einmal ein Haus
Analyse der Laufzeit von Algorithmen
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Präsentation transkript:

1 Computergestützte Verifikation

2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3: CTL-Model Checking 3.5: Reduktion durch Symmetrie 3.6: Partial Order Reduction 3.7: Tools 4.1: BDD-basiertes CTL-Model Checking 4.2: SAT-basiertes Model Checking 4.3: Tools 3.4: Fairness Kapitel 3 Kapitel 4

3 Wie kann man Inklusion entscheiden? L TS L L TS L ¬ Agenda: 1. Automaten, die L TS und L ¬ akzeptieren 2. Konstruktion eines Schnittautomaten 3. Entscheidung, ob Automat die leere Sprache akzeptiert Problem: Wir reden über unendliche Sequenzen!

4 Rahmenprozedur CTL(s, ) IF L(s, ? THEN RETURN END CASE AP: berechne L(s, ) END : CTL(s, ) IF L(s, ) THEN CTL(s, ); L(s, ) = L(s, ); ELSE L(s, ) = F END ¬ analog AX : FOR ALL s: [s,s] E DO CTL(s, ); IF L(s, ) = F THEN L(s, ) = F; RETURN; END END L(s, ) = W EX : analog /* Fortsetzung folgt */

5 CheckAU 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

6 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 )) ?

7 Verbesserung von CheckAU 1.Fall s A ( U ) alle s im Suchraum: s A ( U ) (sonst: s.....s + Gegenbeispiel bei s wäre Gegenbsp. bei s!) 2. Fall s A ( U ) Stack zum Abbruchzeitpunkt bildet Gegenbeispiel 2a) s auf dem Tiefensuchstack (grau) Stack ab s ist immer noch Gegenbeispiel, also s A ( U 2b) s nicht mehr auf dem Tiefensuchstack (schwarz) s A ( U ) (b.w.)

8 Verbesserung von CheckAU Ggbsp. s s 1.Ggbsp. ab s ohne graue Knoten geht nicht, hätte ja bei dfs(s) gefunden werden müssen schwarz grau weiss 3. Ggbsp. ab s muß also graue Knoten enthalten 2. wissen: ex. Weg von s s s* 3a. vor s* Kreis Ggbsp, wäre früher gefunden worden 3b. nach s* Knoten ab s** wären schon bei Suche von s aus bearbeitet worden ( Wid!) s** also: es kann kein Ggbsp. ab s geben s A ( U )

9 CheckAU - Pseudocode weiss := V; grau := schwarz := ø; CheckAU(s,, ) weiss := weiss \ {s}; grau := grau {s}; IF L(s,A( U )) = F THEN EXIT CheckAU; END; IF L(s,A( U )) = W THEN RETURN; END; CTL(s, ); IF L(s, ) = W THEN L(s,A( U )) := W; RETURN; END; L(s,A( U )) := F; CTL(s, ); IF L(s, ) = F THEN EXIT CheckAU; END; FOR ALL s: [s,s] E DO IF s weiss THEN CheckAU(s,, ); ELSIF s grau THEN EXIT CheckAU; END; END; grau := grau \{s}; schwarz := schwarz {s};L(s,A( U )) = W;

10 Verbesserung von CheckEU 1.Fall s E ( U ) alle s im Suchraum: s E ( U ) (sonst: s.....s + Zeuge bei s wäre Zeuge bei s!) 2. Fall s E ( U ) Stack zum Abbruchzeitpunkt bildet Zeuge 2a) s auf dem Tiefensuchstack (grau) Stack ab s ist immer noch Zeuge, also s E ( U 2b) s nicht mehr auf dem Tiefensuchstack (schwarz) (b.w.)

11 Verbesserung von CheckEU s s s E( U ) (s in nicht beendeter SZK) s E( U ) (s in beendeter SZK) Argumentation analog zu CheckAU

12 CheckEU - Pseudocode maxdfs = 0; weiss := V; T := emptystack; CheckEU(s,, ) IF L(s,E( U ) = W THEN EXIT CheckEU END; IF L(s,E( U ) = F THEN L(s,E( U )) := F; RETURN END; CTL(s, ); IFL(s, ) = W THEN L(s,E( U )) = W; EXIT; END CTL(s, ); IF L(s, ) = F THEN L(s,E( U )) = F; RETURN; END L(s,E( U )) := W; s.dfs = maxdfs; maxdfs += 1; weiss := weiss \{s}; push(T,s); s.lowlink := s.dfs; FOR s:[s,s] E DO IF s weiss THEN CheckEU(s,, ); s.lowlink := MIN(s.lowlink,s.lowlink); ELSE IF s T THEN s.lowlink := MIN(s.lowlink,s.dfs); END END; END IF s.lowlink = s.dfs THEN REPEAT s := pop(T); L(s,E( U )) := F; UNTIL s = s END

13 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? WF??? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b))

14 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? WF??? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b))

15 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? WF??? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(0,a,b)

16 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? WF??? WF?F? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(0,a,b)

17 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? FF?F? WF??? WF?F? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(0,a,b)

18 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? FF?F? WF??? WF?F? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckEU(0,a,b)

19 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? FF?F? WF??? WFWF? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckEU(0,a,b)

20 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? FFFF? WF??? WFWF? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckEU(0,a,b)

21 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? FFFF? WF??? WFW?? WFWF? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckEU(0,a,b)

22 Beispiel:E(E(a U b) U A (a U b)) a b a a a FW??? FF??? FFFF? WFW?? WFWF? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckEU(0,a,b)

23 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF??? FFFF? WFW?? WFWF? 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckEU(0,a,b)

24 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF??? FFFF? WFW?? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b))

25 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF??? FFFFF WFW?? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b))

26 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF??? FFFFF WFW?? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(1,a,b)

27 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF??? FFFFF WFW?? WFWF? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(1,a,b)

28 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF?F? FFFFF WFWF? WFW?? WFWF? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(1,a,b)

29 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF?F? FFFFF WFWF? WFW?? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b))

30 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF?F? FFFFF WFWFW WFW?? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b))

31 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWW?? FF?F? FFFFF WFWFW WFW?? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(5,a,b)

32 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWWW? FF?F? FFFFF WFWFW WFWW? WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) CheckAU(5,a,b)

33 Beispiel:E(E(a U b) U A (a U b)) a b a a a FWWW? FF?F? FFFFF WFWFW WFWWW WFWFW 1.a 2.b 3.E(a U b) 4.A(a U b) 5.E(E(a U b) U A(a U b)) CheckEU(0,E(a U b),A(a U b)) Zeugenpfad gefunden! fertig.

34 CTL Model Checking - Abschluß Der Algorithmus ist Instanz der Technik Dynamisches Programmieren = mehrfach verwendete Zwischenresultate werden nur einmal berechnet, bei wiederholter Verwendung nur noch abgelesen.

35 Nur so zur Info: CTL*-Model Checking = LTL-Model Checking, wobei jede mit einem Pfadquantor beginnende Teilformel als atomare Zustandsaussage angesehen wird. Wert von quantifizierten Teilformeln wird durch rekursiven Aufruf eines LTL-Model Checkers für die Pfadformel unterhalb des Quantors bestimmt Soviele rekursive LTL-Model Checker, wie Pfadquantoren in der Formel

Fairness

37 Bestandsaufnahme LTL Model Checking Gegenbeispiel CTL Model Checking Zeuge (CheckEU) Gegenbeispiel (CheckAU) mit Fairness: Gegenbeispiel/Zeuge, der alle Fairnessannahmen erfüllt

38 Bestandsaufnahme unendliche Gegenbsp. endliche Zeugen/Gegenbsp. LTL-Gegenbsp.: st. zus. akzeptierende Menge CheckAU-Gegenbsp.: st. zus. Menge innerhalb Suchraum (EG ) Zeuge in CheckEU: CheckAU-Gegenbsp.: irgendeine faire Fortsetzung bei s Übersetzen Fairness in zusätzliche Bedingungen an die st. zus. Menge s s

39 Bemerkung zu endlichen Pfaden aktionsbasiert: Jeder endliche Pfad kann immer zu einem fairen Pfad fortgesetzt werden Strategie: Von allen Aktionen, die enabled sind, folge der, deren letzte Benutzung am weitesten zurückliegt zustandsbasiert: möglicherweise gibt es keine faire Fortsetzung, aber in diesem Fall sind die Fairnessannahmen unangemessen

40 Schwache Fairness und st. zus. Mengen Sei G F schwache Fairnessannahme Pfad erfüllt gdw. die Menge der unendlich oft von durchlaufenen Zustände einen -Zustand enthält. Pfad behandelt Aktion a schwach fair gdw. die Menge der unendlich oft von durchlaufenen Zustände einen Zustand enthält, wo entweder a nicht enabled ist, oder ein a-Nachfolger ebenfalls in der Menge enthalten ist.

41 Starke Fairness und st. zus. Mengen Sei G F G F starke Fairnessannahme Pfad erfüllt gdw. die Menge der unendlich oft von durchlaufenen Zustände keinen -Zustand enthält oder einen -Zustand enthält Pfad behandelt Aktion a stark fair gdw. die Menge der unendlich oft von durchlaufenen Zustände keinen Zustand enthält, wo a enabled ist, oder einen Zustand enthält, dessen a-Nachfolger ebenfalls in der Menge enthalten ist.

42 Aktions- oder zustandsbasiert? In ihrer SZM-Formulierung sind zustandsbasierte und aktionsbasierte Annahmen im Prinzip identisch wir behandeln nur zustandsbasierte Fairnessannahmen; aktionsbasierte Algorithmen funktionieren analog

43 Stark zusammenhängende Mengen und starke Fairness a (0 1 2)* (G F a) (G F b) kein Pfad, der unendlich oft 3 durchläuft, erfüllt die Annahme es reicht nicht, Komponenten zu betrachten; alle stark zusammenhängenden Mengen müssen untersucht werden immerhin: Jede SZM ist in einer SZK enthalten

44 Algorithmus von Lichtenstein+Pnueli -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

45 Komplexität Platz: kein zus. Platz notwendig, die Datenstrukturen der Top-Level-Tiefensuche können recycled werden Zeit: Jede starke Fairnessannahme kann potentiell eine Rekursionsebene verursachen, diese Annahme ist aber in allen tieferen Ebenen immer erfüllt (keine -Zst. mehr!) Innerhalb einer Rekursionsebene sind alle Suchräume disjunkt O( (|V| |E| |F ST |) |F ST | normalerweise klein. Der Algorithmus kann unmittelbar in den originalen Modelchecker integriert werden, egal ob CTL oder LTL

46 Fazit 3.1 – 3.4 Explizites Model Checking basiert im wesentlichen auf Tiefensuche Die Algorithmen sind extrem leichtgewichtig, arbeiten aber auf riesigen Graphen wichtigstes Mittel zur Leistungssteigerung ist Verkleinerung des Transitionssystems Dies ist Gegenstand der nächsten 2 Abschnitte

47 Übung 1 Adaptiere die Prozeduren CheckEU und/oder CheckAU zu Prozeduren CheckEF und CheckAF!

48 Übung 2 Konstruiere ein (kleines) Transitionssystem, das jede der folgenden Formeln erfüllt und keine der folgenden Formeln erfüllt! E( (EG a) U b) EG a EX a AF ¬b EG (b ¬a)

49 Übung 3 Gibt es im gegebenen Transitionssystem einen unendlichen Pfad, der alle der folgenden Fairnessannahmen erfüllt (der Initialzustand ist links unten)? G F a G F b (G F c) (G F d) (G F e) (G F d) e a b c d