Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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:

Ähnliche Präsentationen


Präsentation zum Thema: "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:"—  Präsentation transkript:

1 1 Computergestützte Verifikation

2 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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

36 Fairness

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

38 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 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 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 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 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 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 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 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 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 47 Übung 1 Adaptiere die Prozeduren CheckEU und/oder CheckAU zu Prozeduren CheckEF und CheckAF!

48 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 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


Herunterladen ppt "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:"

Ähnliche Präsentationen


Google-Anzeigen