Blatt 3 (PDF) - Universität Kassel
Blatt 3 (PDF) - Universität Kassel
Blatt 3 (PDF) - Universität Kassel
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Universität</strong> <strong>Kassel</strong> SS 2010<br />
FB Elektrotechnik/Informatik<br />
FG Formale Methoden und Verifikation<br />
Prof. Dr. M. Lange 20.5.10<br />
Übungen zur Vorlesung<br />
Grundlagen der Programmsicherheit<br />
<strong>Blatt</strong> 3<br />
Aufgabe 8: Betrachte die folgenden drei Transitionssysteme.<br />
p, q<br />
s1<br />
s3<br />
s5<br />
T1<br />
p p, q<br />
s2<br />
p, q<br />
s4<br />
s6<br />
t1<br />
t3<br />
T2<br />
p p, q<br />
p p, q<br />
p, q<br />
t2<br />
t4<br />
t5 t6 u5 u6<br />
a) Entscheide zu jedem Paar dieser Transitionssysteme, ob sie bisimilar sind oder nicht. Gib im Fall, dass<br />
sie es sind, jeweils eine Bisimulation zwischen ihnen an.<br />
b) Berechne für jedes dieser Transitionssysteme den Bisimulationsquotienten.<br />
Aufgabe 9: Wir betrachten ein System, welches aus drei parallelen Komponenten P1,P2,Q besteht. Diese<br />
sehen wie folgt aus.<br />
s3<br />
¯ b<br />
ā<br />
a<br />
s0<br />
s1<br />
s2<br />
b<br />
ā<br />
P1<br />
key1<br />
acc1<br />
¯ b<br />
ā<br />
s4<br />
t3<br />
b<br />
t0<br />
t1<br />
t2<br />
¯ b<br />
a<br />
¯ b ā<br />
ā<br />
P2<br />
key2<br />
acc2<br />
¯ b<br />
t4<br />
p, q<br />
u0<br />
u2<br />
p, q<br />
ā<br />
a<br />
ā<br />
a<br />
u1<br />
u3<br />
b ¯b b<br />
Q<br />
u1<br />
u3<br />
T3<br />
¯ b<br />
q<br />
u2<br />
p, q<br />
u4
a) Gib das Transitionsystem T an, welches aus der parallelen Komposition dieser drei Komponenten<br />
entsteht. Zur Erinnerung: Ist eine x-Transition in einer Komponente möglich, so ist diese auch im<br />
Produkt möglich, wobei die anderen Komponenten ihren Zustand nicht ändern. Sind in zwei Komponente<br />
jeweils eine x- und eine ¯x-Transition möglich, so können diese im Produkt zu einer τ-Transition<br />
verschmelzen. Die dritte Komponente bleibt davon unberührt.<br />
b) Betrachte nun die Invariante ϕ1 = “niemals gilt acc1 und acc2 und q”. Zeige mithilfe des Algorithmus<br />
aus der Vorlesung zur Verifikation von Invarianten, dass T |= ϕ1 gilt.<br />
c) Der Grund dafür, dass die Invariante aus (b) nicht erüllt ist, ist der, dass P1 und P2 einfach einzeln<br />
ihre Schritte zu s2 bzw. t2 machen können, ohne sich mit der dritten Komponente Q, die eigentlich als<br />
Controller fungieren soll, zu synchronisieren.<br />
Lässt sich eine Safety-Eigenschaft finden, die anhand von Auftreten von key1 und key2 besagt, dass<br />
es niemals möglich ist, dass beide Pi in den jeweiligen Zustand, in dem acci gilt, gelangen und die<br />
dahinführenden Transitionen aber mit der Controller-Komponente Q synchronisiert wurden? Wenn ja,<br />
dann gib solch eine Eigenschaft ϕ3 sowie den NFA, der die dazugehörigen schlechten Präfixe erkennt,<br />
an.<br />
d) Betrachte nun die Liveness-Eigenschaft ϕ2 = “irgendwann einmal gilt acc1 und q und nicht key2”.<br />
Erkläre, warum T |= ϕ2 gilt.<br />
e) Lassen sich geeignete Fairness-Constraints F finden, so dass T |=F ϕ2 gilt? Schränken diese die<br />
modellierten Läufe auf sinnvolle oder weniger sinnvolle Weise ein?