Transitionssysteme und Verifikation 3. Transitionssysteme.................................. 3. Produkte von Transitionssystemen......................... 9.3 Automaten und reguläre Sprachen......................... 3.4 Kripkestrukturen................................... 9.4. Verifikation und Model-Checking...................... 9.4. Transitionssysteme in Form von Kripke-Strukturen.............4.3 Kripke-Strukturen von Programmen.................... 5.4.4 Wechselseitiger Ausschluss.......................... 7.5 Temporale Logik................................... 3.5. Syntax und Semantik von LTL-Formeln.................. 34.5. Syntax und Semantik von CTL- und CTL -Formeln........... 37.5.3 Faire Kripke-Struktur............................ 4.5.4 CTL-Model-Checking............................ 4 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite
men und Problemen bei Petrinetzen ist bei Esparza und Nie zu finden. Definition.3 5.44 (Kripke-Struktur ) 5.6 Kripke-Strukturen Eine Kripke-Struktur M := (S, S0, R, ES ) besteht aus a) einer b) einer c) einer Wir kommen nun zu Analyseverfahren, die auf Transitionssy beliebigen Systemen anwendbar sind, also nicht speziell nu endlichen Zustandsmenge S, Wegen ihrer Wurzeln in der Logik heißen sie Kripkenetze. Dabei werden weniger die Aktionsfolgen als vielmehr die Eig der Zusta nde betrachtet. Solche Eigenschaften werden dur Menge S0 S von Anfangszust a nden, Aussagen in den Zusta nden beschrieben. Im Gegensatz zu pitel betrachteten Transitionsetikettenfunktion haben w linkstotalen (Transitions-)Relation R S S und Zustandsetikettenfunktion. d) einer Zustandsetikettenfunktion ES : S5.4 Sei P(AP Definition T S =),(S,die A, tr,jedem S 0, S F ) Zuein Transitions ne Zustandsetikettenfunktion ist eineatomaren Abbildung ES : S P stand s eine Menge ES (s) AP von aussagenlogischen bei AP eine Menge von atomaren Aussagen ist. Formeln zuordnet (die in diesem Zustand gelten). s0! utet: s S s S : (s, s ) R Kaffee_einfüllen Tee_einfüllen s4 {α } s Tee Kaffee " s5 " s Formale Grundlagen der Informatik II {α, α } Kap : Transitionssysteme und Verifikation (Teil ) s3 {α, α3 } Seite
Zuweisung: C(l, v e, l ) pc = l pc = l v = e same(v \{v}) Hintereinanderausführung:? C(l, (P ; l : P ) 7, l ) C(l, P, l ) C(l, P, l ) (l, P, (l, P, l Anfangswert x =,y =. l : x := y; l = =. : y := y ; l 3 S 0 (x = y = pc = l ) Beispiel.8 auf Seite 8 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 3
Schleifen-Anweisung: C(l, while b do l : P endwhile, l ) (pc = l pc = l b same(v )) (pc = l pc = l b same(v )) C(l, P, l) (l b b l : P l ) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 4
Skip: C(l, skip, l ) pc = l pc = l same(v ) Bedingte Anweisung: C(l, if b then l : P else l : P endif, l ) (pc = l pc = l b same(v )) (pc = l pc = l b same(v )) C(l, P, l ) C(l, P, l ) b l : P (l b l : P l ) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 5
P L = cobegin l : P L l... l n : P L n l n; coend C(l, P L, l ) (pc = l pc = l... pc n = l n pc = ) Initialisierung (pc = pc = l... pc n = l n pc = l n i= (pc i = )) Termination ( n i= (C(l i, P i, l i ) same(v \V i) same(p C\{pc i }))) Transition von P i Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 6
await-anweisung: C(l, await(b),l ) (pc i = l pc i = l b same(v i)) (pc i = l pc i = l b same(v i )) await b warte bis b gilt! b = false b = true busy waiting b (l b l ) Beispielprogramm für wechselseitigen Ausschluss P = m : cobegin P 0 P coend Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 7
========================= Parallele Programme oder Prozesse können zum konsistenten Schreiben auf gemeinsame Daten einen kritischen Abschnitt enthalten, der nicht überlappend ausgeführt werden darf. Dies kommt im nicht-kritischen Abschnitt nicht vor. Die Programme sollen dabei (für den Fall zweier Prozesse P und Q) folgende Eigenschaften erfüllen: A) Die Befehlszähler von P und Q sind nie gleichzeitig in ihren kritischen Abschnitten. Markierungs-Invarianz B) Meldet der Prozess P oder Q den Wunsch zum Eintritt in den kritischen Abschnitt an (wantp = True oder wantq = True), so kann er nach einer gewissen endlichen Zeit tatsächlich in seinen kritischen Abschnitt eintreten. Lebendigkeits-Invarianz liveness property safety property Es gilt immer... Es gilt später einmal... Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 8
a'gemeines Programm-Schema Initialisierung m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p i : non-critical section; q i : non-critical section; Eintrittsprotokoll Eintrittsprotokoll p j : critical section; q j : critical section; Austrittsprotokoll : Austrittsprotokoll endwhile l0 endwhile l Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 9
s0 FF p p p5 s p s6 p3 s0 q 5 s4 TF p 3 TF p 5 TF p5 q3 q s6 33 q 3 FT 5 Formale Grundlagen der Informatik II s9 35 s9 q3 wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei l0 : while True do [ p0 : non-critical section; ] p : wantp := T rue; p : last := ; p3 :await wait(wantq = F alse last = ); [ p4 : critical section; ] p5 : wantp := F alse; endwhile l0 5 s3 FT p (pi, qj, Zustand die q5 p3 5 p q3 s8 P: s5 q3 p s5 q p 3 s q 53 FT q q p3 q3 q5 p q s 33 q q s7 s 8 p 3 p3 p q s3 s4 FT TF q s FF p3 s7 j, last = n, wantp, wantq = ) lautet. p5 : Transitionssysteme und Verifikation (Teil ) Kap Seite 0
Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite