Einführung in LTL unter MAUDE Maschine!es Beweisen Einführung in LTL Seit# 1 Verifikation eines Systems SystemVerhalte% Maschine!es Beweisen SystemSpezifikatio% Einführung in LTL Seit# 2 Verifikation eines Systems 7 Model Checking .7 SystemVerhalte% SystemSpezifikatio% Model„system Checking enjoys property” Theorem Proving: „Systems formula implies property formula.“ ür eine gegebene Kripke-Struktur M = (S, R, L) u φ =⇒ ff ist zu berechne Model Checking: egebene temporal-logische Formel „Systems semantics is model of property formula.“ {s ∈ S | M, s |= f } Maschine!es Beweisen Einführung in LTL Seit# 3 phen, ergänzt um logische Formeln. Kripkestrukturen sind typisch für model checking-Verfahren. Definition 5.29 Eine Kripke-Struktur ist ein Tupel M := (S, S0 , R, L), für das folgendes gilt: 5.5 Kripke-Strukturen 1. S endliche Zustandsmenge, 2. S0 ⊆ S Menge von Anfangszuständen, PNL/2002-03 3. R ⊆ S × S links totale6 (Transitions-) Relation, 4. L : S → 2AP Abbildung, die jedem Zustand s eine Menge L(s) ⊆ AP von aussagenlogischen atomaren Formeln zuordnet (die in diesem Zustand gelten). 5. Ein Pfad oder eine Rechnung aus s ∈ S ist eine Folge π = s0 , s1 , s2 , . . . mit s0 = s und ∀i ≥: R(si , si+1 ) Beispiel: L(3) = {¬Start, Close, ¬Heat, ¬Error} in der Maschine!es Beweisen Einführung in LTL Seit# 4 Kripke-Struktur von Abb. 5.18. Maschine!es Beweisen Einführung in LTL Seit# 5 Abbildung 5.18: Kripke-Struktur für das Mikrowellenofen- Kapitel 5: Verifikation und Model Checking 5.6 Temporale Logik Modallogik Predikatenlogik Temporallogik Aussagenlogik Beispiel 5.32 Spezifikation eines Aufzuges (Fragment) Maschine!es Beweisen Einführung in LTL Seit# 6 I. Jede Anforderung des Aufzugs wird auch erfüllt. Aussagenlogik Beispiel 5.32 Spezifikation eines Aufzuges (Fragment) I. Jede Anforderung des Aufzugs wird auch erfüllt. II. Der Aufzug passiert keinen Stockwerk (SW) mit einer nicht erfüllten Anforderung. Beispiel für physikalisches Bewegungsgesetz: z(t) = − 12 gt2 (freier Fall des Aufzuges) Maschine!es Beweisen Einführung in LTL Seit# 7 ! > t . serv(n, t! )) I. ∀t, ∀n(app(n, t) ⇒ ∃t Beispiel 5.32 Spezifikation eines Aufzuges (Frag- ment)II. 5.6 Temporale ! Logik " ∀t, ∀t! > t, ∀n app(n, t) ∧ H(t! ) %= n ∧ ∃ttrav . t ≤ ttrav ≤ t! ∧ H(ttr I. Jede Anforderung des Aufzugs wird auch erfüllt. " Die Punkte I und II in Prädikatenlogik: II. Der Aufzug passiert keinen Stockwerk ⇒ ∃tserv . t(SW) ≤ tserv mit ≤ t! ∧einer serv(n, nicht erf∀n(app(n, üllten Anforderung. I. ∀t, t) ⇒ ∃t! > t . serv(n, t! )) Dabei bedeuten BeispielII. für physikalisches Bewegungsgesetz: z(t) = − 12 gt2 ! H(t) Position des Fahrstuhls zur Zeit t, " (freier Fall des Aufzuges) ! ! ∀t, ∀t > t, ∀n app(n, t) ∧ H(t ) %= n ∧ ∃ttrav . t ≤ ttrav ≤ app(n, t) offene Anforderung von Stockwerk n zur Zeit t, " ! ⇒ ∃t . t ≤ t ≤ t serv serv serv(n, t) Fahrstuhl bedient Stockwerk n Dabei bedeuten Maschine!es Beweisen Einführung in LTL Seit# 8 Temporale Logik für Informatik: Pnueli serv(n, t) Fahrstuhl bedient Stockwerk n serv(n, t) Fahrstuhl bedient Stockwerk n Temporale Logik für Informatik: Pnueli 1977 Temporale Logik für die Informatik: Pnueli 1977: Temporale Logik für Informatik: Pnueli Temporale Logik f ür Informatik: Pnueli Temporale Logik für Informatik: Pnueli 1977 1977 1977 ∗ CT L : computation logic, Emerson Halpern 1986 Linear tree Temporal Logic:und LTL ∗ computation ∗ : computation CT tree logic, Emerson und Halpern Halpern 1986 CT treeEmerson logic, Emerson und Halpern 1986 CTL L∗:!p :L computation tree logic, und 1986 irgendwann einmal gilt p !p irgendwann einmal gilt pp !p !p irgendwann einmaleinmal gilt irgendwann gilt p p pp tt00 t0 p t tt t0 "p von jetzt an giltp immer p "p gilt immer "p von von jetzt jetzt an t "p von jetzt an gilt immer p pp pp pp tt00 tp11 pt 22 p t0 t1 t2 PNL/2002-03 PNL/2002-03 t0 t1 PNL/2002-03 Maschine!es Beweisen PNL/2002-03 p p pp t2 pp p p p pp p p p pp pp t tn n tn+1 tn+1p p p p tn tn Einführung in LTL Seit# 9 p p tn+1 tn+1 Kapitel 5: Verifikation und Model Checking !"p bedeutet? t0 5.6 Temporale Logik 295 !"p bedeutet? t0 CT L∗ -Formeln Dienen der Berschreibung von Eigenschaften des Berechnungsbaumes (computation tree). Dieses entsteht z.B. durch Maschine!es Beweisen Einführung in LTL “Abwickeln” der Kripke-Struktur. CT L∗ -Formel enthalten Seit# 10 CT L∗ -Formeln Dienen der Berschreibung von Eigenschaften des Berec nungsbaumes (computation tree). Dieses entsteht z.B. dur Dienen der Berschreibung von Eigenschaften des Berech- ∗ “Abwickeln” der Kripke-Struktur. L -Formel enthalt nungsbaumes (computation tree). Dieses entsteht z.B.CT durch “Abwickeln” der Kripke-Struktur. CT L∗ -Formel enthalten ab ab ab bc c ab bc c c ab bc c c c Abbildung 5.15: Abwicklung einer Kripke-Struktur ab bc c Pfad-Quantoren: Maschine!es Beweisen A “für alle Pfade”, Einführung in LTL Seit# 11 c bc ab c Dienen der Berschreibung von Eigenschaften des Berechnungsbaumes (computation tree).ab Dieses entsteht z.B. durch “Abwickeln” der Kripke-Struktur. CT L∗ -Formel enthalten bc c c c ∗ CT LAbbildung -Formeln 5.15: Abwicklung einer Kripke-Struktur ab ab Abbildung 5.15: Abwicklung einer Kripke-Struktur Zustandsquantoren Zustands- 5.6 Temporale Logik bc c 295 c Pfad-Quantoren: ab !"p bedeutet? bc c c Dienen der Berschreibung von Eigenschaften des BerechPfad-Quantoren: A “für alle(computation Pfade”, nungsbaumes tree). Dieses entsteht z.B. durch einer Kripke-Struktur t Abbildung 5.15: Abwicklung A “für alleder Pfade”, ∗ -Formel enthalten “Abwickeln” Kripke-Struktur. CT L Pfad-Quantoren: E “es gibt ein Pfad”, 0 ∗ CT Lein -Formeln E “es gibt A Pfad”, “für alle Pfade”, E “es gibt ein Pfad”, und temporale Pfad- Quantoren: Dienen Quantoren: der temporale Berschreibung von Eigenschaften des Berechund Quantoren: undPfadquantoren temporale nungsbaumes (computation tree). Dieses entsteht z.B. durch ab “Abwickeln” der Kripke-Struktur. CT L∗ -Formel Xp next time : p gilt im zweitem Zustandenthalten des Pfades (vorher "), Xp next time : p gilt im zweitem Zustand des Pfades (vorXp her next"), time : p gilt im zweitem Zustand des Pfades (vorPNL/2002-03 ab abher "), ab bc PNL/2002-03 PNL/2002-03 bc c c c ab bc c c c Abbildung 5.15: Abwicklung einer Kripke-Struktur Maschine!es Beweisen bc Pfad-Quantoren: Einführung in LTL ab Seit# 12 c c E “es gibt ein Pfad”, Pfad- und temporale Quantoren: Pfadquantoren Xp nextKapitel time : p 5: giltVerifikation im zweitem und Zustand des Checking Pfades (vorModel her "), Kapitel 5: Verifikation und Model Checking Kapitel Kapitel5:5:Verifikation Verifikationund und Model Model Checking Checking F p eventually, PNL/2002-03in the future : p gilt in einem Zustand des F p eventually, in the future : p gilt in einem Zustand des Pfades (vorher !),ininthe FFp pPfades eventually, eventually, future: :ppgilt giltin in einem einem Zustand Zustand des des (vorher the !),future Pfades Pfades(vorher (vorher!), Gp always, globally : p gilt!), in allen Zuständen des Pfades Gp always, globally : p gilt in allen Zuständen des Pfades (vorher "), globally Gp always, Gp(vorher always, globally: :ppgilt giltininallen allenZust Zuständen änden des des Pfades Pfades "), (vorher (vorher"), "), pU q until : es gibt einen Zustand auf dem Pfad, in dem q pU q until : es gibt einen Zustand auf dem Pfad, in dem q gilt vor: diesem Zustand gilt immer p. Pfad, pU until esesgibt einen Zustand auf dem in dem qq pUqund qgilt until : gibt einen Zustand auf dem Pfad, in dem und vor diesem Zustand gilt immer p. gilt giltund undvor vordiesem diesemZustand Zustandgilt giltimmer immer p. p. p p p pp p p pp Maschine!es Beweisen p p pp p p pp p p pp Einführung in LTL p p pp p p pp p p pp q p pp Seit# 13 pRq release : Dual zu pU q. q gilt bis einschließlich des ersten pRq desersten ersten pRqrelease release: Dual : Dualzu zupU pUq.q.qqgilt gilt bis bis einschließlich einschließlich des q qq p p p p p p p p p p p p p p p p p p q pRq release : Dual zu pU q. q gilt bis einschließlich des ersten pRq release :Zustands, Dual zu pU q. gilt bisp einschließlich inq dem gilt oder q des giltersten immer. Zustands, in dem p gilt oder q gilt immer. q q q q q q qq qq qq q q q q q p p q qq q q q q q qq qq qq qq q q q Es gibt zwei Arten von CT L∗ -Formeln: Zustands-Formeln Es gibt zwei CT L∗ -Formeln: Zustands-Formeln und Pfad-Formeln. DieArten Syntaxvon der Formeln ist: und Pfad-Formeln. Die Syntax der Formeln ist: • Eine atomare Aussage p ∈ AP ist eine ZustandsFormel. • Eine atomare Aussage p ∈ AP ist eine Zustands- Formel. • Sind f und g Zustands-Formeln, dann auch Maschine!es Beweisen Einführung in LTL ¬f , f ∨ g und f ∧ g. Seit# 14 • Sind f und g Zustands-Formeln, dann auch ¬f , f ∨ g q Formeln definiert durch: 2. sind, M,sosist|=|=¬f ⇔ 1 M, s %|= f1 . 3. M, s |= f1 ∨ f2 ⇔ M, s |= f1 oder M, s |= f2 . M,p s |= f1⇔∧ fp2 ∈ L(s). ⇔ M, s |= f1 und M, s |= f2 . 1. 4.M, s |= Angenommen, f%|=1 ,f .f∃π Zustands2 = M,¬fs1 |= Eg⇔1dass s · · · . M, πund |= g1g.1 , g2 Pfad2. 5.M, s |= M, s ⇔ 1 so 3. Formeln ∨|= f2 Ag ⇔1 ist M,|= s⇔ |=definiert f1 oder M,sdurch: s· |= . π |= g1 . 6.M, s |= M,f1ssind, ∀π = · · f. 2M, 4. 7.M, s |= f2 f ⇔ M, s ⇔ |= f1 und f2 . M, s |= f . M,f1π∧ |= π =M, s ·s·|= · und 1 1 5. M, s |= Eg1 ⇔ ∃π = s · · · . M, π |= g1 . M,Agπ1 |= ¬g⇔1 ∀π =⇔ 6. 8.M, s |= s · · · .M, M, ππ|=%|=g1g. 1 . 1. pπ∈s|=|= L(s). M,M, gf11 . oder M, π |= g2 . 7. 9. M, π M, |=M, f1π s|=|=g1p ⇔∨ gπ2 = s⇔ · ·⇔ · und 8. 10. M, π M, |=M, ¬g ⇔∧ 1gM, %|= ⇔ g1 . M,M, π1s|=|=g1¬f π |= 2. s %|g=1 fund 2 π⇔ 1 . M, π |= g2 . 9. 11. M, π M, |= g1π∨|= g2 Xg ⇔ M, π ⇔ |= g1 M, oderπM, π |= 1 |= g1gf.21. oder M, s |= f2 . 1 ∨ f2 3. M, s |= f ⇔ M, s |= 1 10. M, π |= g1 ∧ g2 ⇔ M, π |= g1 und M, π |= g2 . k π1s|=|=Ff⇔ g11 ∧M, ≥ 0s. |= M,fπ1 und |= g1M, . s |= f2 . 4. f2π1⇔|=⇔ 11. 12. M, π M, |=M, Xg g1∃k . M, ≥ g01= π·k .|= g1π. |= g1 . 12. 13. M, π M, |=M, Fπ g1s|=|=Gg ⇔1 1∃k ≥⇔ 0 .⇔ M,∀k π k ∃π |= .. M, 5. Eg s · · M, 13. 14. M, π M, |= Gg ∀k ≥⇔ 0 . M,∃k π k |= g01 .. M, π k |= g2 und für alle 0 ≤ j < k gilt M, π 1 |= g1⇔ π U g ≥ 2 6. M, s |= Ag ⇔ ∀π = s · · · . M, π |= g . 14. M, π |= g1 U g2 ⇔ 1∃k ≥ 0 . M, π k |= g2 und für alle 0 ≤ j < k1 gilt M, π j |= g1 . i %|= 15. M, π |= g Rg ⇔ ∀j ≥ 0, wenn f ür jeden i < j M, π g1 gilt, dann M 1 2 i j 7. M, π |= f ⇔ π = s · · · und M, s |= f . Struktur M . 15. M, π |= g1 Rg2 8. 9. 10. 11. 12. 13. 14. 15. ⇔1 ∀j ≥ 0, wenn für jeden i < j M, π %|= g1 gilt,1dann M, π |= g2 . M, π |= ¬g1 M, π |= g1 ∨ g2 M, π |= g1 ∧ g2 M, π |= Xg1 M, π |= F g1 M, π |= Gg1 Maschine!es Beweisen M, π |= g1 U g2 M, π |= g1 Rg2 PNL/2002-03 PNL/2002-03 ⇔ ⇔ ⇔ ⇔ ⇔ ⇔ ⇔ ⇔ M, π %|= g1 . M, π |= g1 oder M, π |= g2 . M, π |= g1 und M, π |= g2 . M, π 1 |= g1 . ∃k ≥ 0 . M, π k |= g1 . ∀k ≥ 0 . M, π k |= g1 . Einführung in LTL 15 ∃k ≥ 0 . M, π k |= g2 undSeit# für alle 0 ≤ j < k gilt ∀j ≥ 0, wenn für jeden i < j M, π i %|= g1 gilt, d 5.7 Model Checking 5.4 Model Checking 5.7 Model Checking Für eine gegebene Kripke-Struktur M = (S, R, L) und eine gegebene temporal-logische Formel f ist zu berechnen: {s ∈ S | M, s |= f } M ist hier als Graph explizit gegeben. 5.7.1 Algorithmen Erweitere L(s) für alle s ∈ S schrittweise zu label(s), die Menge der Teilformeln von f , die in s wahr sind. Maschine!es Beweisen Einführung in LTL Seit# 16 in Schritt i: alle Teilformeln mit i − 1 geschachtelten CT L-Operatoren sind behandelt.