Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Computergestützte Verifikation 26.4.2002. 2 CTL* LTL CTL nur Pfad- formeln Nur Zust.- formeln X, F, G, UX, F, G, U, A, E EX, AX, EF, AF, EG, AG, E(.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Computergestützte Verifikation 26.4.2002. 2 CTL* LTL CTL nur Pfad- formeln Nur Zust.- formeln X, F, G, UX, F, G, U, A, E EX, AX, EF, AF, EG, AG, E(."—  Präsentation transkript:

1 1 Computergestützte Verifikation

2 2 CTL* LTL CTL nur Pfad- formeln Nur Zust.- formeln X, F, G, UX, F, G, U, A, E EX, AX, EF, AF, EG, AG, E(. U. ) A(. U. )

3 3 Lösung: Fairnessannahmen Eine Fairnessannahme ist eine Pfadeigenschaft und Bestandteil der Systembeschreibung. Gültigkeit unter Fairness: A = für jeden Pfad, der alle Fairnessannahmen erfüllt, gilt.... E = es gibt einen Pfad, der alle Fairnessannahmen erfüllt und... Fairness aktionsbasiertzustandsbasiert

4 4 Wie geht es weiter? System Abstraktion Spezifikation Simulation Formalisierung Model Checker Gegenbeispiel Modell log. Formel + - Verfeinerung Fehler- beseitigung Präzisierung Überlauf A) Finite state systems B) Infinite state systems

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

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

7 7 Tarjans Algorithmus VAR Tarj: Stack von Knoten, maxdfs: Nat, weiss: Knotenmenge weiss := V, maxdfs = 0; Tarj := empty stack dfs(v 0 ); dfs(v): v.dfs = v.lowlink = maxdfs; maxdfs += 1; push(v,Tarj);weiss := weiss \ {v} FOR ALL v ([v,v] in E) DO IF v in weiss THEN dfs(v) v.lowlink = MIN(v.lowlink,v.lowlink) ELSE IF v on Tarj THEN v.lowlink = MIN(v.lowlink,v.dfs) END IF v.lowlink = v.dfs THEN REPEAT v* = pop(Tarj) UNTIL v = v* END eine SZK Baumkante andere Kante

8 8 3.2 LTL Model Checking

9 9 Grundidee 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

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

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

12 12 Beispiele X = {a,b,c} A C B a a a b b b c c c Z 0 = Z F 1 = {A,B} F 2 = {A,C} L B = { | in unendlich oft a oder unendlich of b und c} 1 L B = { | nach jedem a in kommt irgendwann b} 2 a b b,ca,c Z 0 = {1} F 1 = {1}

13 13 Transitionssystem und Büchi-Automat Eine Menge L von unendlichen Sequenzen heißt regulär, wenn es einen endlichen Büchi-Automaten gibt, der L akzeptiert. Beobachtung: Jede Menge von Systemabläufen eines finite state Transitionssystems ist regulär. Z = S, Z 0 = I, (z,x) =, sonst {z | [z,z] E}, falls x den Wahrheitswerten der Aussagen in z entspricht X = Vektoren von booleschen Werten, die als Wahrheits- werte der elementaren Aussagen interpretiert werden F 1 = Z, F = {F 1 }

14 14 Beispiele (i,i,1) (r,i,1)(i,r,1) (r,r,1)(c,i,0)(i,c,0) (c,r,0) (r,c,0) g2 g1 g2 g1 g3 g2 g0,g0 g0 S: G (pc1 critical pc2 critical ) G (pc2 = request F pc2 = critical) L: G (pc1 = request F pc1 = critical) 1.pc1 = crit 2. pc2 = crit 3. pc1 = req 4. pc2 = req

15 15 Beispiele (i,i,1) (r,i,1)(i,r,1) (r,r,1)(c,i,0)(i,c,0) (c,r,0) (r,c,0) FFWF FFFF FFFW FWFF FFWF WFFF FWFF FWWFWFFW FFWW FFFF FFFW FWFF FFWF WFFF 1.pc1 = crit 2. pc2 = crit 3. pc1 = req 4. pc2 = req

16 16 Büchi-Automaten und LTL Satz: Zu jeder LTL-Formel gibt es einen Büchi-Automaten mit max 2 Zuständen, der genau die unendlichen Sequenzen akzeptiert, die erfüllen. Beispiele: X a * ?W* ?F* * * Z 0 = {0}, F = { {2} } F a 2 0 * 1 * ?W* Z 0 = {0}, F = { {1} } G a 2 0 ?W* 1 * ?F* Z 0 = {0}, F = { {0} } ?W* ??W* * * * Z 0 = {0}, F = { {1} } a 2 U a 3

17 17 Automaten für komplexe Formeln (Bsp) ?F* ?W* ??W* * G(a 2 F a 3 ) Z 0 = {0} F = {{0}} * * ?F* ??W* * (G F a 2 ) (G F a 3 ) Z 0 = {0} F = { {1,2} }

18 18 Zwischenfazit Haben: -Büchi-Automat für L TS -Büchi-Automat für L ¬ Ziel: L TS L ¬ nächster Schritt: geg: B 1,B 2 ges: B*: L B* = L B 1 L B 2

19 19 Produktautomat B 1 = [X,Z 1,Z 0 1, 1,F 1 ] B 2 = [X,Z 2,Z 0 2, 2,F 2 ] B* = [X,Z*,Z 0 *, *,F*] Z* = Z 1 x Z 2 Z 0 * = Z 0 1 x Z 0 2 *([z,z],x) = 1 (z,x) x 2 (z,x) F* = { F x Z 2 | F F 1 } { Z 1 x F | F F 2 } Satz: L B* = L B 1 L B 2 Idee: beide Automaten arbeiten parallel, Akzeptierungs- mengen werden nebeneinandergestellt

20 20 Beispiel B1: 01 cba W,F F WF F (a,0) (a,1) (b,0) (b,1) (c,0) (c,1) W W F F F F F F B2: Z0 = {0} F = { {1} } Z0 = {a} F = { {a,b,c} } Z0 = {(a,0)} F = { Z, {(a,1),(b,1),(c,1)} } B* :

21 21 Emptiness geg.: Büchi-Automat B Frage L B = ? : Sei Sequenz, die von B akzeptiert wird. Z* sei Menge der Zustände, die im akzeptierenden Lauf unendlich oft durchlaufen werden. Z* ist stark zusammen- hängend, und enthält Elemente aus jeder Akzeptierungsmenge : Konstruiere zur SZK eine Sequenz, die vom Initialzustand zur SZK gelangt, und dort zyklisch alle Zst. durchläuft. Diese Sequenz ist offenbar in L B Lösung: L B gdw. es gibt eine nichttriv. SZK in B (von einem Initialzustand erreichbar), die aus jeder Akzeptierungsmenge Elemente enthält. nichttriv. = mehrere Zst. oder 1 Zustand mit Schleife

22 22 LTL Model Checking Geg.: TS (implizit),. 1. Konstruiere B ¬ 2. Konstruiere Produktautomat B* aus TS und B ¬ 3. Suche in B* nach SZK, die aus jeder Akzeptierungsmenge ein Element enthalten 4. gefunden nein, bilde Gegenbeispiel aus gefundener SZK 5. nicht gefunden ja 1 Schritt! O(2 | | |TS|)

23 23 Beispiel G F a (negiert: F G ¬a) cba WF F TS: 01 W,F F Z0 = {0} F = { {1} } Z0 = {a} F = { {a,b,c} } (a,0) (a,1) (b,0) (b,1) (c,0) (c,1) W W F F F F F F Z0 = {(a,0)} F = { Z, {(a,1),(b,1),(c,1)} } B* : nur triv. SZK akzeptieren also: Formel wahr

24 24 Beispiel G F a (negiert: F G ¬a) 01 cba W,F F WF F (a,0) (a,1) (b,0) (b,1) (c,0) (c,1) W W F F F F F F TS: Z0 = {0} F = { {1} } Z0 = {a} F = { {a,b,c} } Z0 = {(a,0)} F = { Z, {(a,1),(b,1),(c,1)} } B* : nichttriv. SZK, Formel falsch, Gbsp: a (b c)* FF F F

25 25 On-The-Fly Verifikation LTL-Formel wahr kompletter Produktautomat wird konstruiert LTL-Formel falsch Konstruktion des Produktautomaten kann vorzeitig abgebrochen werden weniger Speicherverbrauch

26 CTL Model Checking Spezifisch für LTL: alle Formeln betreffen Pfade Spezifisch für CTL: alle (Teil-)Formeln betreffen Zustände Idee: - Jeder Zustand hat Liste mit Wahrheitswerten aller Teilformeln ( {W,F,?} ) L(s, ) -Für die Wertberechnung werden Teilformeln jeweils als atomar angesehen - Werte von Teilformeln werden bei Bedarf berechnet

27 27 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 */

28 28 Rahmenprozedur (Fortsetzung) (... CASE ) E( U ) : CheckEU(s,, ); A( U ) : CheckAU(s,, ); EF, AF, EG, AG : /* über Tautologien */ Also bleiben: CheckAU, CheckEU

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

30 30 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 s Keine Fortsetzung des Pfades kann Gegenbeispiel sein Backtracking von s

31 31 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 s Gegenbeispiel gefunden L(s,A( U )) := F, RETURN

32 32 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 s Da jede Fortsetzung bei s U erfüllt, kann keine Fortsetzung Gegenbeispiel liefern Backtracking

33 33 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 s Gegenbeispiel gefunden ( = s....s + Gegenbeispiel bei s) L(s,A( U )) = F, RETURN

34 34 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 Gegenbeispiel L(s, A( U ) = F, RETURN

35 35 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 Suchraum komplett durchsucht, ohne Gegenbeispiel L(s,A( U )) = W

36 36 CheckEU s CheckEU(s,, ): Suche Zeugenpfad L(s, ) = W L(s, ) = F L(s,E( U )) = ? L(s, ) = W L(s, ) = F L(s,E( U ) = W L(s,E( U ) = F

37 37 CheckEU s CheckEU(s,, ): Suche Zeugenpfad L(s, ) = W L(s, ) = F L(s,E( U )) = ? L(s, ) = W L(s, ) = F L(s,E( U ) = W L(s,E( U ) = F s Zeuge gefunden L(s,E( U )) = W, RETURN

38 38 CheckEU s CheckEU(s,, ): Suche Zeugenpfad L(s, ) = W L(s, ) = F L(s,E( U )) = ? L(s, ) = W L(s, ) = F L(s,E( U ) = W L(s,E( U ) = F s keine Fortsetzung kann Zeuge sein Backtracking

39 39 CheckEU s CheckEU(s,, ): Suche Zeugenpfad L(s, ) = W L(s, ) = F L(s,E( U )) = ? L(s, ) = W L(s, ) = F L(s,E( U ) = W L(s,E( U ) = F s Zeuge (= s....s + Zeuge bei s) L(s,E( U )) = W, RETURN

40 40 CheckEU s CheckEU(s,, ): Suche Zeugenpfad L(s, ) = W L(s, ) = F L(s,E( U )) = ? L(s, ) = W L(s, ) = F L(s,E( U ) = W L(s,E( U ) = F s Keine Fortzsetung kann Zeuge sei Backtracking

41 41 CheckEU s CheckEU(s,, ): Suche Zeugenpfad L(s, ) = W L(s, ) = F L(s,E( U )) = ? L(s, ) = W L(s, ) = F L(s,E( U ) = W L(s,E( U ) = F Suche komplett ohne Zeuge L(s,E( U )) = F

42 42 Zwischenfazit CheckAU und CheckEU L(s,A/E( U )) kann durch einfache Tiefensuche ermittelt werden Das würde Laufzeit von O( | | |TS| |TS| ) = O(| | |TS| 2 ) liefern: Für jede Teilformel und jeden Zustand eine Tiefensuche Ziel : O((| | |TS|)

43 43 Lineare Gesamtlaufzeit - Idee s L(s, ) = W L(s, ) = F L(s,A/E( U )) = ? L(s, ) = W L(s, ) = F L(s,A/E( U ) = W L(s,A/E( U ) = F Bestimme durch eine einzige Tiefensuche nicht nur L(s,A/E( U )), sondern auch L(s,A/E( U )) für alle während der Suche betretenen Zustände!

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

45 45 Übung 1 Konstruiere einen Büchi-Automat, der genau die Sequenzen akzeptiert, die (G a) (F G b) erfüllen

46 46 Übung 2 Konstruiere den Produktautomat, der entsteht, wenn die Formel F a G F b auf folgendem Transitionssystem verifiziert wird: ba (Der untere Zustand ist einziger Initialzustand)

47 47 Übung 3 Finde das kleinstmögliche Transitionssystem, das folgende LTL-Formeln erfüllt.... G F b F G a a U b... und folgende LTL-Formeln nicht erfüllt: G b G a a X a


Herunterladen ppt "1 Computergestützte Verifikation 26.4.2002. 2 CTL* LTL CTL nur Pfad- formeln Nur Zust.- formeln X, F, G, UX, F, G, U, A, E EX, AX, EF, AF, EG, AG, E(."

Ähnliche Präsentationen


Google-Anzeigen