25.11.2014 Aufrufe

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!