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.

6<br />

Eigenschaft spezifiziert sein soll. Diese Eigenschaft besagt, der Zähler soll nach<br />

endlich vielen Zeitschritten leer sein. Diese Eigenschaft kann temporallogisch als<br />

AF(x = 0) formuliert werden.<br />

Würde man nun das Komplement dieser Eigenschaft annehmen und es untersuchen,<br />

was würde das Ergebnis aussagen? Würde ein Gegenbeispiel gefunden, so<br />

wäre die Annahme falsch, was wiederum die Richtigkeit der anfangs getroffenen<br />

Eigenschaft zeigt. Ergäbe sich allerdings kein Gegenbeispiel gefunden, so wäre<br />

die eigentliche Annahme falsch. Am Beispiel gesehen, besagt das Komplement<br />

der Annahme EG(x ≠ 0) , dass ein Pfad gesucht wird, auf dem nie x = 0 gilt.<br />

Um nun zu zeigen, ob diese Eigenschaft gilt, ist es notwendig das Design des<br />

Produktes zu besitzen, auf dem die Eigenschaft überprüft werden soll. Wie in<br />

Abbildung 1 zu erkennen handelt es sich dabei um eine noch unvollständige<br />

Modellierung. Zu sehen sind die Zustände des Zählers nach zwei Transaktionen.<br />

Der Zähler im Initialzustand (x 0 ) und die Überführung in Folgezustände. Da<br />

im Bereich der Reaktiven <strong>Systeme</strong> man von unendlich langen Pfaden ausgeht<br />

ist es wichtig, dass man mit Hilfe von Schleifen in einen schon besuchten, vorhergehenden<br />

Zustand gelangt, um das unendliche Verhalten sicherzustellen. Die<br />

Modellierung kommt diesem nach, indem sie die Möglichkeiten mit Hilfe von<br />

drei Schleifenkonstrukte wiederspiegelt (S i ). Die Übergänge zwischen aktuellem<br />

Zustand x und Folgezustand x’ werden durch die Transitionen T ausgedrückt.<br />

Die Eingangsbelegung sei im weiteren nicht näher spezifiziert.<br />

(x ′ [0] = x[1]) ∧ (x ′ [1] = x[2]) ∧ (x ′ [2] = 1)<br />

Abbildung 1. 3-Bit Shift Register<br />

Im Prinzip könnte man hier schon eine Aussage über die Erfüllbarkeit der Eigenschaft<br />

treffen, da man am dritten Register erkennt, dass dieses niemals Null<br />

wird und demnach der Zähler niemals den Leerzustand erreichen würde.<br />

Mit Hilfe von bounded model checking lässt sich dies jedoch auch formal als Formel<br />

aufstellen. Wie im oberen Teil bereits erwähnt wird nun ein Pfad gesucht,<br />

auf dem niemals x=0 gilt. Hierzu wird der Zähler entfaltet beziehungsweise aufgerollt.<br />

Das bedeutet, der Zähler wird (k+1)-mal hintereinander geschrieben.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!