Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
37<br />
Abschätzung R p 1 [V/W 0 ] der erreichbaren Zustände. Wenn wir nun einen Fixpunkt<br />
erreicht haben, dann ist R eine induktive Invariante und da kein Zustand in R F<br />
erfüllen kann (weder F in bis zu k Schritten erreichen kann), kann die Prozedur mit<br />
dem Ergebnis, dass kein Durchlauf existiert, terminieren. Ist dies noch nicht der Fall,<br />
dann wird die Prozedur mit der neuen Abschätzung für R wiederholt.<br />
Theorem FiniteRun:<br />
Für k > 0 gilt: wenn FINITERUN (M, k) terminiert, liefert die Prozedur<br />
TRUE zurück, wenn M einen Durchlauf hat.<br />
Beweis:<br />
Nehmen wir an, dass die Prozedur TRUE zurückliefert. Dann ist entweder I F<br />
erfüllbar, was bedeutet, dass M einen Durchlauf der Länge 0 hat, oder<br />
BMC k ist erfüllbar, woraus folgt, dass M einen Durchlauf der Länge 1...k hat.<br />
1<br />
( M )<br />
Nun nehmen wir an, dass die Prozedur FALSE zurückliefert. Dann können folgende<br />
drei Fakten gezeigt werden:<br />
I impliziert R. Trivial.<br />
R ist eine Invariante von T (R(S) und T(S, S’) implizieren R(S’)). Da C 1 p 1<br />
impliziert folgt, dass für alle Zustände S, S’, R(S) T(S, S’) => R’(S’) gilt.<br />
Somit impliziert R’ R und dann implizieren R(S) und T(S, S’) auch R(S’).<br />
R F ist nicht erfüllbar. An Anfang gilt R = I und I F ist unerfüllbar. Bei<br />
k<br />
jeder Iteration wissen wir, dass p1 SUFF0<br />
( M ')<br />
unerfüllbar ist und somit<br />
ist auch R’ F unerfüllbar.<br />
Aus diesen drei Fakten folgt mit Induktion, dass M keinen Durchlauf von jedweder<br />
Länge hat. .<br />
Es kann auch gezeigt werden, dass die Prozedur für ausreichend große k terminiert.<br />
Dazu definieren wir die reverse depth von M als die maximale Länge des kürzesten<br />
Pfades von einem beliebigen Zustand zu einem Finalzustand. Die reverse depth wird<br />
durch 2 |V| nach oben begrenzt, in den meisten praktischen Fällen ist sie aber viel<br />
kleiner. |V| steht für die Anzahl der booleschen Variablen, die den Zustandsraum<br />
beschreiben, was wiederum bedeutet, dass die reverse depth durch die Anzahl der<br />
Zustände des Zustandsraumes nach oben beschräkt ist.<br />
Theorem FiniteRun terminiert:<br />
Für jedes M existiert ein Wert k, für den gilt dass FINITERUN (M, k)<br />
terminiert.<br />
Beweis:<br />
Sei k die reverse depth von M. In der ersten Iteration terminiert der Algorithmus,<br />
wenn das SAT-Problem erfüllbar ist. Andernfalls wissen wir, dass R’ in k Schritten F<br />
nicht erreichen kann. Da k die reverse depth ist, folgt dass R’ mit keiner Anzahl von<br />
Schritten F erreichen kann. Bei der nächsten Iteration kann R nun F in bis zu k + 1<br />
Schritten nicht erreichen, so dass das SAT-Problem wiederum unlösbar ist. Fährt<br />
man nun mit der Iteration fort, lässt sich daraus schließen, dass in jeder Iteration R<br />
in bis zu k + 1 Schritten nicht in der Lage sein wird, F zu erreichen. Deshalb muss R<br />
immer größer werden, bis es einen Fixpunkt erreicht hat, bei dem die Prozedur