Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
213<br />
Es konnten in diesem Beispiel also insgesamt vier Teilbäume, welche selbst<br />
wiederum neue Teilbäume hätten hervorbringen können, von der Berechnung<br />
ausgeschlossen werden. Weiterhin wurden die Zustände s 4 und s 5 überhaupt<br />
nicht besucht.<br />
Schleifenbildung und Rang<br />
Wie im Proof–Tree bereits angesprochen, können Knoten mit gleichem Inhalt<br />
verbunden werden, wenn sie sich in demselben Sichbarkeitsbereich befinden. Weiter<br />
oben wurde bereits gesagt, dass beim wiederholten Erreichen eines Knoten<br />
(s x , σx.ϕ) abhängig von der Fixpunktart 0 oder 1 zurückgegeben wird. Um zu<br />
erklären, warum dies korrekt ist, seien folgende Mengen<br />
iter 0 (σx.ϕ), iter 1 (σx.ϕ),...,iter n (σx.ϕ) für σ ∈{µ, ν}<br />
die bei der Fixpunktiteration Auftretenden. Wenn es sich hierbei um einen kleinsten<br />
Fixpunkt (σ = µ) handelt, gilt:<br />
s ∈ µx.ϕ K ⇒∃n ∈ N.s ∈ iter n (µx.ϕ) K<br />
In Worten: Sollte s in der Menge des Fixpunktes liegen, dann muss es eine<br />
bestimmte Zahl n geben, die für die n–te Iteration steht, in welcher s sich in<br />
der Menge befindet. Dies muss gelten, da bei der Iteration für einen kleinsten<br />
Fixpunkt mit der leeren Menge begonnen wird.<br />
Aufgrund der Monotonie der Fixpunktiteration muss es also ein kleinstes<br />
n geben, welches diese Eigenschaft erfüllt (d.h. dieses n ist die Nummer der<br />
Iteration, in welcher s in die Fixpunktmenge aufgenommen wird). Dies bietet<br />
die Möglichkeit, jedem Zustand (bei einer fest gegebenen Fixpunktformel) einen<br />
Wert – seinen Rang – zuzuweisen.<br />
Dieser zum Zustand s i zugehörige Rang für die Formel σx.ϕ lässt sich somit<br />
bestimmen durch:<br />
{<br />
0 ,s /∈ µx.ϕ K<br />
rank(s i , µx.ϕ) :=<br />
n ,∀x ∈ N.s ∈ iter x (µx.ϕ) → n ≤ x<br />
{<br />
0 ,s∈ νx.ϕ K<br />
rank(s i , νx.ϕ) :=<br />
n ,∀x ∈ N.s /∈ iter x (νx.ϕ) → n ≤ x<br />
Dadurch ist es möglich, die Zustände in eine Ordnung zueinander zu setzen. Sie<br />
werden ihrem Rang nach geordnet. Bei einem kleinsten Fixpunkt werden zum<br />
Beispiel der Reihe nach Zustände vom Rang 1, dann Zustände vom Rang 2, usw.<br />
hinzugefügt (bei einem größten Fixpunkt werden die Zustände dem Rang nach<br />
aus der Menge entfernt).<br />
Zustände, die in einem größten Fixpunkt liegen, haben damit den Rang 0.<br />
Genauso wie Zustände, die nicht in einem kleinsten Fixpunkt liegen.