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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

24<br />

A<br />

2-Bit Zähler<br />

Anhand des Zählers sollen verschiedene Eigenschaften mit Hilfe von bounded<br />

model checking überprüft werden. Die dabei abzuarbeitenden Phasen sind:<br />

1. Verhalten des Transitionssystems als aussagenlogische Formel kodieren<br />

2. Eingabe der Formel in einen Eigenschaftsprüfer<br />

Dazu werden benötigt:<br />

Transitionssystem M<br />

Eigenschaft als aussagenlogische Formel f<br />

Anfangsschranke k<br />

Die für das Transitionssystem benötigte aussagenlogische Formel wird durch<br />

folgende Parameter bestimmt:<br />

M k := I(s 0 ) ∧ k−1 ∧<br />

i=0<br />

T (s i ,s i+1 )<br />

Diese Formel in Kombination mit der zu untersuchenden Eigenschaft EFp und<br />

der Anfangsschranke k=2 führt zur Zielformel:<br />

M,f 2 := I(s 0 ) ∧ T (s 0 ,s 1 ) ∧ T (s 1 ,s 2 ) ∧ (p(s 0 ) ∨ p(s 1 ) ∨ p(s 2 ))<br />

Der letzte Maxterm drückt dabei die Eigenschaft EFp k aus.<br />

Der zu untersuchende 2-Bit Zähler ist dargestellt mit a als most significant Bit<br />

und b als least significant Bit. Daraus ergibt sich folgendes Transitionssystem:<br />

(a ′ ↔¬a) ∧ (b ′ ↔ a ⊕ b)<br />

Für den Startzustand (0, 0) soll überprüft werden, ob innerhalb zweier Zeitschritte<br />

der Zustand (1, 1) erreicht werden kann:<br />

I(s 0 ) ( ¬a 0 ∧¬b 0 )∧<br />

T (s 0 ,s 1 )((a 1 ↔¬a 0 ) ∧ (b 1 ↔ (a 0 ⊕ b 0 )) )∧<br />

T (s 1 ,s 2 )((a 2 ↔¬a 1 ) ∧ (b 2 ↔ (a 1 ⊕ b 1 )) )∧<br />

p(s 0 ): ( a 0 ∧ b 0 ∨<br />

p(s 1 ):<br />

a 1 ∧ b 1 ∨<br />

p(s 2 ): a 2 ∧ b 2 )<br />

Diese Formel ist unerfüllbar, wie erwartet.<br />

Der Zähler wird nun um eine weitere Transition ergänzt (Abbildung 7). Es wird<br />

eine Schleife vom Zustand (1, 0) zu sich selbst eingefügt. Es ergibt sich nachstehende<br />

Änderung:<br />

(a ′ ↔¬a) ∧ (b ′ ↔ a ⊕ b) ∨ (b ∧¬a ∧ b ′ ∧¬a ′ )

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!