Model Checking für finite tte ytem Computergetützte Verifiktion 17.5.2002 explizit: 3.1: Tiefenuche Kpitel 3 ymbolich: Kpitel 4 3.2: LTL-Model Checking 3.3: CTL-Model Checking 3.4: Firne 4.1: BDD-bierte CTL-Model Checking 4.2: ST-bierte Model Checking 3.5: Reduktion durch Symmetrie 3.6: Prtil Order Reduction 4.3: Tool 1 3.7: Tool 2 Verteilte Syteme Unbhängigkeitreltion I zichen ktionen: [,b] in I gd. keine der beiden ktionen knn die Enbling- Bedingung der nderen ändern, und Reultt der Hintereinnderuführung von und b it unbhängig von der Reihenfolge ntz bekämpfe Zutndrumexploion durch Unbhängigkeit unbhängige ktionen können in beliebiger Reihenfolge tttfinden 2 z.b. [g,g ] in I gd. vorkommende Vriblen dijunkt Unbhängige ktionen trgen eentlich zur Zutndrumexploion bei. 3 Reihenfolge it oft unerheblich für Eigenchft reduziere, o möglich, die nzhl der Reihenfolgen, in denen unbhängige ktionen ugeführt erden 4 mple et Sei Zutnd. mple() it eine (enn möglich) nichtleere Teilmenge der ktionen, die bei enbled ind Reduzierte Trnitionytem: verfolge bei nur die ktionen in mple() Reduzierte Trnitionytem 111 211 121 112 311 221 131 212 122 113 312 321 231 222 132 213 123 322 331 232 313 133 223 332 323 233 333 444 5 111 121 222 323 333 444 122 223 6 1
Weitere Vorgehen 1. Studieren Prinzipien, die mple et erfüllen müen, um LTL-Eigenchften zu behren 2. Implementtionfrgen Prinzip # 1: Unbhängigkeit Für jeden bei beginnenden Pfd de originlen Sytem: Keine ktion, die von einer ktion in mple() bhängig it, kommt vor einer ktion u mple() vor. 3. Wie e bei CTL(*) uieht 4. Vrinten für einfche Eigenchftklen lle ktionen, die in enbled ind und nicht in mple(), ind von jeder ktion in mple() unbhängig 7 Stttfinden der ugechloenen ktionen ird uf Nchfolgezutände vertrötet 8 Erte Prinzip und unendliche Pfde Stz: Wenn d originle TS einen unendlichen Pfd enthält, o uch d reduzierte. 1. Fll: in kommt ein u mple() vor 1 1 2. Fll: in kommt kein u mple() vor Wenn bei unendl. Pfd uführbr it, o gibt e im red. TS einen Nchfolger von, bei dem ein unendl. Pfd uführbr 9 it. Ret: Induktion Prinzip # 2: Sichtbrkeit mple() enthält enteder keine einzige ichtbre ktion oder lle ktionen, die enbled ind (ichtbr ie unichtbr) 1. Fll: in kommt ein u mple() vor 1 1 d 2. Fll: in kommt kein u mple() vor unichtbr oder 1 leer unichtbr diejenigen ichtbren ktionen, die u dem Originlpfd in den reduzierten Pfd übernommen erden, bleiben in der 10 gleichen Reihenfolge Prinzip # 3: Nichtignorierung Jeder Krei im reduzierten Trnitionytem enthält einen Zutnd, o mple() lle ktionen enthält, die in enbled ind Implementtion von Prinzip # 1 Wenn mple*() folgende Bedingungen erfüllt: (E) Wenn g in mple*() und en(g,), o ind lle von g bhängigen ktionen in mple*() (D) Wenn g in mple*() und en(g,), o ind für ein U mit en(g,,u) lle ktionen u rup(g,u) in mple*() Wirkung: in einem olchen Zutnd knn Fll 1 der Pfdrgumenttion ngeendet erden. Jede ktion de Originlpfde ird irgendnn\ uch im kontruieerten Pfd ugeführt 11 dnn erfüllt mple() := mple*() en() Prinzip # 1: Wenn g in mple(), o ind lle bhängigen ktionen in mple*() (E) Wenn g in mple*() und dibled, o können ktionen ußerhlb mple*() g nicht ktivieren. lgorithmu: Eretze ind drin durch müen uch rein, löe Nichtdeterminimu bei der Whl von U irgendie uf. 12 2
Beipiel: Wecheleitiger uchluß g3: pc1 = crit em := 1, pc1 := idle g2 : pc2 = req em = 1 em := 0, pc2 := crit g3 : pc2 = crit em := 1, pc2 := idle unbhängig: [g1,g1 ], [g3,g3 ], Beipiel: Wecheleitiger uchluß g3: pc1 = crit em := 1, pc1 := idle g2 : pc2 = req em = 1 em := 0, pc2 := crit g3 : pc2 = crit em := 1, pc2 := idle unbhängig: [g1,g1 ], [g3,g3 ], (i,i,1) g1 g2 g3 (i,i,1) g1 g2 g3 (r,r,1) 13 14 Beipiel: Wecheleitiger uchluß g3: pc1 = crit em := 1, pc1 := idle g2 : pc2 = req em = 1 em := 0, pc2 := crit g3 : pc2 = crit em := 1, pc2 := idle unbhängig: [g1,g1 ], [g3,g3 ], (i,i,1) g1 g2 g3 (i,r,1) Wie ieht e bei CTL(*) u? b c b c B C b B C B c C (r,r,1) rot + blu = voll Prinzipien 1-3 erfüllt rot = reduziert (c,r,0) (r,c,0) p.o. red: 6/8 ymm: 5/8 p.o red + ymm: 4/8 15 EF( EF B EF C) 16 Wie ieht e bei CTL(*) u? Vorläufige Zummenfung Problem: CTL(*) it enitiv gegenüber dem Zeitpunkt, o Pfde verzeigen Reduktion drf Verzeigungpunkte nicht verchieben linerer Overhed zur Betimmung von mple et Umfng der Reduktion cher prognotizierbr, ber in vielen typichen nendungen exponentiell Signifiknte Zhl unichtbrer ktionen notendig Prinzip CTL*: mple() beteht enteder u einer einzigen ktion, die uperdeterminitich it und unichtbr, oder u llen ktivierten ktionen (determinitich in llen Zutänden) Für unverteilte Syteme komplett unbruchbr Bei verteilten Sytemen it prtil order reduction meit die leitungfähigere Methode 17 Beide Reduktiontechniken kombinierbr 18 3
Vrinten für einfche Eigenchftklen Ziel: Reduktiontechniken, die nicht uf unichtbre ktionen ngeieen ind Sei φ Zutndprädikt (Formel ohne Temporlopertionen) Sei φ rup(, φ ) = Menge von ktionen, o dß jeder Weg von zu einem mit φ mind. eine ktion u rup(, φ ) enthält. orig. red. Beei φ u rup(, φ) 1. u mple() Stz: Originle TS erfüllt EF φ gd. ein reduzierte, d Prinzip # 1 befolgt und o jede mple*() uch rup(, φ) enthält. 19 0 näher n l 20 Sei φ Zutndprädikt G EF G EF G EF G EF TS G EF φ gd. terminle SZK C C: φ TS EF G φ gd. terminle SZK C C: φ TS EF G EF φ gd. terminle SZK C C: φ TS G EF G φ gd. terminle SZK C C: φ Verifiktion TSZK-bezogender Eigenchften 1. Schritt. kontruiere red. TS nch Prinzipien #1 und #3 2. Schritt. Wähle ein i u jeder TSZK Ci TS G EF G EF φ gd. TS G EF φ TS EF G EF G φ gd. TS EF G φ Stz: Wenn red. TS Prinzipen #1 und #3 erfüllt, o it u jeder TSZK de orig. Sytem mind. 1 Zutnd uch in einer TSZK de red. Sytem enthlten, und jede TSZK de red. 3. Schritt. Prüfe i EF φ bz. i EF φ für lle i nch der rup-methode Sytem it Teilmenge einer TSZK de orig. Sytem. 21 22 Spin Eingbeprche: Promel Prozee + gurded commnd Spezifiktion: LTL oder direkt l Büchi-utomt 3.7 Tool Reduktiontechniken: Prtil Order Reduction Sontige Trick: Bithhing http://netlib.bell-lb.com/netlib/pin/htipin.html 23 24 4
Murφ Eingbeprche: Gurded Commnd Spezifiktion: Einfche Erreichbrkeitquerie Reduktiontechniken: Symmetrie (clr et) ontige Trick: prllele Verion LoL Eingbeprche: Petrinetze (gurded commnd der Form x1 k1... xm km x1 := x1 k1,...,xm := xm km, y1 : y1 : l1,..., yn := yn+ln) Spezifiktion: CTL, viele kleine Eigenchftklen Reduktiontechniken: tubborn et, Symmetrien (utomorphimen) ontige Trick: Petrinetzpezifiche Trick, prllele Verion, Bithhing http://verify.tnford.edu/dill/murphi.html 25 http://.informtik.hu-berlin.de/~kchmidt/lol.html 26 Übung Generiere ein reduzierte Trnitionytem, d Prinzip # 1 genügt, zu folgendem Progrmm Vr 1, 2: {idle, pending, riting} Vr em: {0,1,2,3} Vr r1,r2,r3:{idle,reding} Vr key: bool init(i) = init(ri) = idle, init(em) = 3, init(key) = true g1[i]: i = idle key key := fle, i := pending g2[i]: i = pending em = 3 em := 0, key := true, i := riting g3[i]: i = riting i := idle, em := 3 g1 [i]: ri = idle key em > 0 ri = reding, em := em 1 g2 [i]: ri = reding ri := idle, em := em + 1 27 5