Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
246,71 KB
Nội dung
2.3 Ausf ¨ uhrbare Verhaltensmodelle 71 drei unterschiedlichen Aktionen (copyStore, copyInput und copyApprox) und einem endlichen Automaten M mit zwei Zust ¨ anden (start und stop). Mit Hilfe der Funktion copyStore wird ein neuer Wert von dem FIFO-Kanal der Quelle src gelesen und in der Variablen tmp i0 gespeichert. Weiterhin wird dieser Wert auf den Ausgangsport geschrieben, welcher mit dem approx-Aktor verbunden ist. Die Funk- tion copyInput kopiert f ¨ ur den approx-Aktor den gespeicherten Wert aus der Varia- blen tmp i0. Schließlich kopiert die Funktion copyApprox das Ergebnis vom dup- Aktor zum sink-Aktor. Die Aktionen copyStore, copyInput und copyApprox k ¨ onnen auf die angeschlossenen Kan ¨ ale zugreifen. Die Verbindungen zu den Ports sind nicht eingezeichnet. Die Zustands ¨ uberg ¨ ange werden im Konstruktor des Aktors definiert, wobei im Gegensatz zu FunState auch gepr ¨ uft werden kann, ob ein Speicherelement gen ¨ ugend freie Speicherpl ¨ atze zum Schreiben besitzt, sollten diese beschr ¨ ankt sein. So kann beispielsweise vom Zustand start in den Zustand loop gewechselt werden, sofern von der Quelle src mindestens ein Datum zur Verf ¨ ugung gestellt wurde (i0(1)) und ein Datum in den FIFO-Kan ¨ alen zum approx-Aktor geschrieben werden kann (o1(1)). Bei diesem Zustands ¨ ubergang wird die Funktion copyStore ausgef ¨ uhrt. Neben der Anzahl der Marken bzw. freien Speicherpl ¨ atze k ¨ onnen auch sog. W ¨ achter- funktionen (engl. guards), Funktionen mit einem Booleschen R ¨ uckgabewert, die den Zustand eines SysteMoC-Modells nicht ¨ andern, als Bedingung ber ¨ ucksichtigt wer- den. Die W ¨ achterfunktionen k ¨ onnen somit die mit Marken assoziierten Werte be- ziehungsweise einen internen Aktorzustand ¨ uberpr ¨ ufen. Eine W ¨ achterfunktion im SqrRoot-Aktor ist die Funktion check, welcher die Genauigkeit des Ergebnisses ¨ uberpr ¨ uft. Ist das Ergebnis zu ungenau, verbleibt der Aktor im Zustand loop und wartet auf eine neue (genauere) Approximation. Ist jedoch die Abweichung der Be- rechnung von der tats ¨ achlichen Quadratwurzel kleiner als eine vorgegebene Schran- ke, so wird dies als Ergebnis an den Aktor sink ¨ ubertragen. Der interne Aktorzu- stand ist in einem Register gespeichert, welches nicht im Bild dargestellt. Es folgt der SysteMoC-Quelltext des SqrRoot-Aktors: 1 class SqrLoop : public smoc_actor { 2 public: 3 smoc_port_in<double> i0, i3; 4 smoc_port_out<double> o1, o2; 5 private: 6 double tmp_i0; 7 void copyStore() { 8 tmp_i0 = i0[0]; 9 o1[0] = tmp_i0; 10 } 11 void copyInput() { o1[0] = tmp_i0; } 12 void copyApprox() { o2[0] = i3[0]; } 13 bool check() const { 14 return fabs(tmp_i0 - i3[0]*i3[0]) < 0.0001; 15 } 16 17 smoc_firing_state start; 72 2 Spezifikation digitaler Systeme 18 smoc_firing_state loop; 19 public: 20 SqrLoop(sc_module_name name) : 21 smoc_actor( name, start ) { 22 start = 23 i0(1) >> 24 o1(1) >> 25 CALL(SqrLoop::copyStore) >> loop; 26 loop = 27 (i3(1) && GUARD(SqrLoop::check)) >> 28 o2(1) >> 29 CALL(SqrLoop::copyApprox) >> start 30 | (i3(1) && !GUARD(SqrLoop::check)) >> 31 o1(1) >> 32 CALL(SqrLoop::copyInput) >> loop; 33 } 34 }; 2.4 Formale Spezifikation funktionaler Anforderungen Neben dem Verhaltensmodell enth ¨ alt die Spezifikation von Systemen stets Anfor- derungen an die Implementierung. Diese Anforderungen k ¨ onnen sich dabei sowohl auf funktionale Eigenschaften als auch auf nichtfunktionale Eigenschaften beziehen. Entsprechend spricht man von funktionalen bzw. nichtfunktionalen Anforderungen. Erste Beispiele f ¨ ur funktionale Eigenschaften wurden bereits im Abschnitt 2.2.1 im Zusammenhang mit Petri-Netzen diskutiert. Funktionale Eigenschaften sind da- bei h ¨ aufig sog. Gefahrlosigkeits- oder Lebendigkeitseigenschaften. Ein Beispiel f ¨ ur eine Gefahrlosigkeitseigenschaft ist, dass ein gegebenes Petri-Netz beschr ¨ ankt ist. Ist das Petri-Netz beschr ¨ ankt, so ist sichergestellt, dass keine Puffer ¨ uberl ¨ aufe zu Da- tenverlusten mit eventuell katastrophalen Folgen f ¨ uhren. Ein Beispiel f ¨ ur eine Le- bendigkeitseigenschaft ist die Reversibilit ¨ at eines Petri-Netzes. Ist diese gegeben, so wird das modellierte System immer verf ¨ ugbar sein, also die geplante Funktionalit ¨ at, eventuell in gemindertem Umfang, erbringen. In diesem Abschnitt werden wichtige Ans ¨ atze zur Formulierung von Anforde- rungen an die funktionalen Eigenschaften pr ¨ asentiert. Im folgenden Abschnitt wer- den zun ¨ achst die grundlegenden Konzepte zur formalen Spezifikation funktionaler Anforderungen diskutiert. Dabei wird eine Einschr ¨ ankung auf Ans ¨ atze vorgenom- men, die eine automatische Verifikation erlauben. Als zwei wichtige Vertreter wer- den die Logiken CTL (engl. Computation Tree Logic) und LTL (engl. Linear Time propositional Logic) vorgestellt. Die zugeh ¨ origen Verifikationsmethoden werden in Kapitel 5 pr ¨ asentiert. Eine Verallgemeinerung von LTL und CTL wird unter dem Na- men CTL* diskutiert. Zum Abschluss dieses Abschnittes wird noch auf die Sprache PSL (engl. Property Specification Language) eingegangen, die von vielen Werkzeu- gen als Eingabem ¨ oglichkeit temporallogischer Formeln unterst ¨ utzt wird. 2.4 Formale Spezifikation funktionaler Anforderungen 73 2.4.1 Temporale Strukturen Die i n Abschnitt 2.2.1 aufgelisteten Eigenschaften f ¨ ur Petri-Netze k ¨ onnen als Ge- fahrlosigkeits- und Lebendigkeitseigenschaften aufgefasst werden. Diese unterschei- den sich typischerweise in ihrer Formulierung: • Gefahrlosigkeitseigenschaften besagen, dass etwas Schlimmes niemals passiert. • Lebendigkeitseigenschaften besagen, dass etwas Gutes irgendwann eintritt. In dieser Formulierung kann man bereits an den W ¨ ortern niemals und irgendwann erkennen, dass zeitliche Aspekte bei der Formulierung von funktionalen Anforderun- gen eine Rolle spielen. Zeitliche Aspekte k ¨ onnen in Aussagenlogik (siehe Anhang A) nicht formuliert werden. Hierf ¨ ur ist eine Erweiterung um temporale Operatoren not- wendig. Hierdurch entsteht eine temporale Aussagenlogik. Ein wesentlicher Unterschied zwischen Aussagenlogik und temporaler Aussa- genlogik besteht in der Auswertung von Formeln. W ¨ ahrend aussagenlogische For- meln konstante Werte repr ¨ asentieren, k ¨ onnen dies im Fall von temporallogischen Formeln Wertsequenzen sein, welche die funktionalen Eigenschaften eines System beschreiben. Diese Sequenzen werden in einer sog. temporalen Struktur repr ¨ asen- tiert. Aus historischen Gr ¨ unden werden temporale Strukturen auch h ¨ aufig als Kripke- Strukturen bezeichnet [269]. Definition 2.4.1 (Temporale Struktur). Eine temporale Struktur M ist ein Tripel (S,R,L), wobei S eine endliche Menge an Zust ¨ anden, R ⊆ S × Seine ¨ Ubergangsre- lation und L : S → 2 V eine Markierungsfunktion ist. V ist eine Menge an aussagen- logischen Variablen. Die ¨ Ubergangsrelation R ist total, d. h. ∀s ∈ S : ∃s ∈ S : (s,s ) ∈ R. Eine tempo- rale Struktur kann als Graph visualisiert werden, wobei die Zust ¨ ande als Knoten und die ¨ Ubergangsrelation als Kanten repr ¨ asentiert werden. Die Knoten werden zus ¨ atz- lich mit einer Teilmenge von Variablen V entsprechend der Markierungsfunktion beschriftet. Beispiel 2.4.1. Ein Beispiel f ¨ ur eine temporale Struktur M ist in Abb. 2.14a) zu sehen. M besteht aus den drei Zust ¨ anden s 0 , s 1 und s 2 . Insgesamt sind f ¨ unf Zu- stands ¨ uberg ¨ ange definiert, d. h. R = {(s 0 ,s 1 ),(s 0 ,s 2 ),(s 1 ,s 1 ),(s 2 ,s 0 ),(s 2 ,s 1 )}.Die Menge der Variablen V enth ¨ alt die drei Elemente a, b und c. Die Markierungsfunk- tion L liefert L(s 0 )={a,b}, L(s 1 )={c} und L(s 2 )={b,c}. Definiert man einen Anfangszustand, k ¨ onnen die durch die temporale Struktur re- pr ¨ asentierten Sequenzen in einem unendlichen Graphen dargestellt werden. Da die- se Sequenzen typischerweise mit Berechnungen in einem System assoziiert werden, wird dieser Graph als Berechnungsbaum (engl. computation tree) bezeichnet. F ¨ ur die temporale Struktur aus Abb. 2.14a) und dem Anfangszustand s 0 ist der Berechnungs- baum in Abb. 2.14b) zu sehen. Man beachte, dass die durch die temporale Struktur repr ¨ asentierten Sequenzen unendlich lang sind, weshalb nur ein Ausschnitt aus dem Berechnungsbaum gezeichnet werden kann. 74 2 Spezifikation digitaler Systeme a) b) bcs 2 s 0 ab cs 1 ab cbc ab c c cccbc Abb. 2.14. a) Temporale Struktur und b) Berechnungsbaum [272] Pfade in einer temporalen Struktur beschreiben Sequenzen. Ein Pfad in einer temporalen Struktur M l ¨ asst sich formal definieren. Definition 2.4.2 (Pfad). Ein Pfad ˜s in einer temporalen Struktur M =(S,R,L) ist ei- ne unendliche Sequenz ˜s := s 0 ,s 1 , an Zust ¨ anden s ∈ S, wobei ∀i ≥ 0:(s i ,s i+1 ) ∈ R gilt. Ein Suffix ˜s i eines Pfades ˜s = s 0 ,s 1 , ,s i ,s i+1 , ist definiert durch ˜s i := s i ,s i+1 , .EinPr ¨ afix i ˜s eines Pfades ˜s = s 0 ,s 1 , ,s i ,s i+1 , ist definiert durch i ˜s := s 0 ,s 1 , ,s i+1 ,s i . Temporale Strukturen sind eng verwandt mit endlichen Automaten (siehe Defi- nition 2.2.13 auf Seite 47). Intuitiv ist eine temporale Struktur ein endlicher Automat ohne Ausgabe. Erfasst man die Eingabe in jedem Zustand einer temporalen Struktur, k ¨ onnen endliche Automaten (ohne Ausgabe) in eine ¨ aquivalente temporale Struktur umgewandelt werden. Die Umwandlung eines gegeben endlichen Automaten ohne Ausgabe in eine temporale Struktur erfolgt, indem jeder Zustand einzeln bearbeitet wird. Dies ge- schieht in vier Schritten: 1. Alle eingehenden Zustands ¨ uberg ¨ ange werden anhand ihrer Eingabesymbole par- titioniert. 2. F ¨ ur jede Partition wird ein Zustand in der temporalen Struktur erzeugt. 3. Jeder neue Zustand wird mit dem Namen des Zustands des endlichen Automaten und dem Eingabesymbols markiert. 4. Entsprechend der partitionierten Zielzust ¨ ande werde Zustands ¨ uberg ¨ ange in der temporalen Struktur eingef ¨ ugt. Beispiel 2.4.2. Gegeben ist der endliche Automat in Abb. 2.15a) mit drei Zust ¨ anden s 0 , s 1 und s 2 . Abbildung 2.15b) zeigt die ¨ aquivalente temporale Struktur. Zustand s 0 besitzt lediglich einen eingehenden Zustands ¨ ubergang mit Eingabesymbol i 0 .Aus 2.4 Formale Spezifikation funktionaler Anforderungen 75 diesem Grund gibt es in der temporalen Struktur auch nur einen Zustand der mit s 0 i 0 markiert ist. a) b) s 0 s 1 s 2 s 0 i 0 s 2 i 2 s 1 i 1 s 1 i 3 s 2 i 4 i 0 i 1 i 1 i 2 i 3 i 4 Abb. 2.15. a) endlicher Automat und b) ¨ aquivalente temporale Struktur Zustand s 1 hingegen besitzt drei eingehende Zustands ¨ uberg ¨ ange mit zwei unter- schiedlichen Symbolen, weshalb in der temporalen Struktur zwei Zust ¨ ande angelegt und mit Eingabesymbolen markiert werden. Schließlich besitzt Zustand s 2 zwei ein- gehende Zustands ¨ uberg ¨ ange mit zwei unterschiedlichen Symbolen. Es werden ent- sprechend zwei Zust ¨ ande in der temporalen Struktur angelegt. 2.4.2 Temporale Aussagenlogik Temporale Strukturen repr ¨ asentieren Sequenzen. Diese beschreiben funktionale Ei- genschaften eines Systems und werden in der Spezifikation als funktionale Anforde- rungen verwendet. Temporale Strukturen lassen sich mittels temporallogischer For- meln beschreiben. Im Folgenden werden zwei wichtige Vertreter sog. temporaler Aussagenlogiken und deren Relation zueinander diskutiert. Lineare temporale Aussagenlogik (LTL) Handelt es sich bei der ¨ Ubergangsrelation R einer temporalen Struktur in Definiti- on 2.4.1 um eine Funktion, so besitzt jeder Zustand s ∈ S der temporalen Struktur genau einen Nachfolgezustand. In diesem Fall repr ¨ asentiert die temporale Struktur genau einen unendlich langen Pfad. Da die Berechnungssequenz nicht verzweigen kann, spricht man auch von einem linearen Zeitmodell. Im Folgenden wird die Er- weiterung der Aussagenlogik (siehe Anhang A) um temporale Operatoren f ¨ ur linea- re Zeitmodelle pr ¨ asentiert. Das Ergebnis ist eine lineare temporale Aussagenlogik (engl. Linear Time propositional Logic, LTL). Im Anschluss wird die Annahme ei- nes linearen Zeitmodells verworfen. Somit k ¨ onnen Sequenzen ” verzweigen“ (siehe Abb. 2.14b)). In diesem Fall spricht man von einem verzweigenden Zeitmodell (engl. branching time). 76 2 Spezifikation digitaler Systeme LTL-Formeln werden mittels atomarer Aussagen (aussagenlogische Variablen), logischen Operatoren und temporalen Operatoren gebildet. Zwei grundlegende tem- porale Operatoren existieren hierbei: X und U. Diese werden als Next- und Until- Operatoren bezeichnet. Der Next-Operator ist ein un ¨ arer, der Until-Operator ein bin ¨ arer Operator. Ein Zustands ¨ ubergang in einer temporalen Struktur wird als Zeit- schritt bezeichnet. Die Formel X ϕ sagt aus, dass ϕ im n ¨ achsten Zeitschritt gilt. Die Formel ϕ U ψ besagt, dass ϕ solange gilt, bis ψ wahr wird. Implizit gilt, dass ψ irgendwann gilt. Definition 2.4.3 (Syntax von LTL). Sei V die Menge an aussagenlogischen Varia- blen (atomaren Formeln). Eine LTL-Formel wird rekursiv wie folgt definiert: • Atomare Formeln ϕ ∈ V sind LTL-Formeln. • Seien ϕ und ψ LTL-Formeln, so sind auch ¬ ϕ und ϕ ∨ ψ LTL-Formeln. • Seien ϕ und ψ LTL-Formeln, so sind auch X ϕ und ϕ U ψ LTL-Formeln. Weitere logische Verkn ¨ upfungen k ¨ onnen aus ¬ und ∨ gebildet werden, z. B. ϕ ∧ ψ := ¬(¬ ϕ ∨¬ ψ ). Neben den temporalen Operatoren X und U gibt es weitere temporale Operatoren: Der Globally-Operator G ϕ besagt, dass ϕ f ¨ ur alle Zeiten gilt. Der Finally-Operator F ϕ sagt aus, dass ϕ irgendwann in der Zukunft gilt. Dabei schließt die Zukunft die Gegenwart mit ein. Schließlich besagt der Release-Operator ϕ R ψ , dass ψ solange gilt, bis ϕ das erste Mal wahr wird (eventuell f ¨ ur immer, falls ϕ niemals gilt, wodurch sich R von dem Operator U unterscheidet). Diese temporalen Operatoren k ¨ onnen mit Hilfe des Until-Operators definiert werden: F ϕ := T U ϕ G ϕ := ¬F ¬ ϕ ϕ R ψ := ¬(¬ ϕ U ¬ ψ ) Die Semantik von LTL-Formeln wird mit Hilfe eines unendlichen Pfad ˜s in einer temporalen Struktur definiert: Definition 2.4.4 (Semantik von LTL-Formeln). Sei ϕ eine LTL-Formel, so bedeu- tet M, ˜s |= ϕ , dass ϕ entlang des Pfades ˜s = s 0 ,s 1 , der linearen temporalen Struktur M mit Anfangszustand s 0 gilt. Seien ϕ und ψ zwei LTL-Formeln, dann kann |= wie folgt definiert werden: M, ˜s |= T ⇔ gilt immer M, ˜s |= ϕ ⇔ ϕ ∈ L(s 0 ), falls ϕ ∈ V M, ˜s |= ¬ ϕ ⇔ M, ˜s |= ϕ M, ˜s |= ϕ ∨ ψ ⇔ M, ˜s |= ϕ oder M, ˜s |= ψ M, ˜s |= X ϕ ⇔ M, ˜s 1 |= ϕ M, ˜s |= ϕ U ψ ⇔∃k ≥ 0:M, ˜s k |= ψ ∧∀0 ≤ j < k : M, ˜s j |= ϕ Man beachte, dass die Semantik von LTL-Formeln bez ¨ uglich eines Pfades de- finiert ist, d. h. das zugrundeliegende Zeitmodell einer LTL-Formel ist linear. Die Semantik der temporalen Operatoren in LTL ist in Abb. 2.16 dargestellt. 2.4 Formale Spezifikation funktionaler Anforderungen 77 F ϕ : G ϕ : X ϕ : ϕ U ψ : ϕϕϕψ ϕ ϕϕϕϕ ϕ Abb. 2.16. Semantik der temporalen Operatoren in LTL [272] Definition 2.4.5 (G ¨ ultigkeit und Erf ¨ ullbarkeit von LTL-Formeln). Eine LTL- Formel ϕ heißt g ¨ ultig, falls f ¨ ur alle linearen temporalen Strukturen M gilt, dass M, ˜s |= ϕ . Sie heißt erf ¨ ullbar, falls eine temporale Struktur M existiert, so dass M, ˜s |= ϕ . Jede Struktur M, f ¨ ur die gilt, dass M, ˜s |= ϕ , heißt Modell von ϕ . Eine LTL-Formel ist in ihrer Normalform gegeben, wenn Negationen lediglich vor aussagenlogischen Formeln auftreten. So ist beispielsweise ¬F ϕ nicht in Nor- malform, da die Negation vor dem temporalen Operator F auftritt. Die ¨ aquivalente LTL-Formel G ¬ ϕ hingegen ist in Normalform. Eine LTL-Formel kann immer in ei- ne ¨ aquivalente LTL-Formel in Normalform gebracht werden, indem die Negationen hinter die temporalen Operatoren gebracht werden. Die wichtigsten ¨ Aquivalenzen hierf ¨ ur lauten: X ϕ = ¬X ¬ ϕ G ϕ = ¬F ¬ ϕ ϕ U ψ = ¬(¬ ψ R ¬ ϕ ) F ϕ = T U ϕ Verzweigende temporale Aussagenlogik (CTL) Nach der Einf ¨ uhrung von LTL wird nun die Annahme verworfen, dass die ¨ Uber- gangsrelation R der temporalen Struktur M eine Funktion sein muss. Als Konse- quenz k ¨ onnen die repr ¨ asentierten Sequenzen ” verzweigen“und man erh ¨ alt dann ein verzweigendes Zeitmodell (engl. branching time). In einem verzweigenden Zeitmo- dell ist es allerdings nicht mehr ausreichend, lediglich temporale Aspekte, wie in einem linearen Zeitmodell, zu ber ¨ ucksichtigen. Vielmehr sind auch die Umst ¨ ande (Modalit ¨ aten) von Bedeutung, f ¨ ur welchen Zweig eine Formel gelten soll. Deshalb werden neben temporalen Operatoren auch modallogische Operatoren ben ¨ otigt. Zwei modallogische Operatoren werden unterschieden: E und A. Der Operator E beschreibt die M ¨ oglichkeit, der Operator A die Notwendigkeit, dass die folgende Formel g ¨ ultig wird. ¨ Ubertragen auf das verzweigende Zeitmodell bedeutet dies, dass zur Erf ¨ ullung einer Formel, der der Operator E voransteht, ein Pfad existiert, auf dem die Formel erf ¨ ullt. Im Fall einer Formel, der der Operator A voransteht, muss die folgende Formel auf allen Pfaden g ¨ ultig werden. Aus diesem Grund werden die 78 2 Spezifikation digitaler Systeme modallogischen Operatoren auch als Pfadquantoren bezeichnet. Der Pfadquantor E wird als existenzieller Pfadquantor (auch Existenzquantor) bezeichnet, da dieser die Existenz mindestens eines Pfades fordert, der die folgende Formel erf ¨ ullt. Der Pfad- quantor A wird als universeller Pfadquantor (auch Allquantor) bezeichnet, da dieser verlangt, dass alle Pfade die folgende Formel erf ¨ ullen. Die beiden Pfadquantoren E und A sind integraler Bestandteil von CTL (engl. Computation Tree Logic) und eine Voraussetzung f ¨ ur eine temporale Aussagenlogik f ¨ ur verzweigende Zeitmodelle. Definition 2.4.6 (Syntax von CTL). Sei V die Menge der aussagenlogischen Varia- blen (atomaren Formeln). Eine CTL-Formel wird rekursiv wie folgt definiert: • Atomare Formeln ϕ ∈ V sind CTL-Formeln. • Seien ϕ und ψ CTL-Formeln, so sind auch ¬ ϕ und ϕ ∨ ψ CTL-Formeln. • Seien ϕ und ψ CTL-Formeln, so sind auch EX ϕ , E ϕ U ψ und EG ϕ CTL- Formeln. Wie im Fall von LTL, k ¨ onnen auch bei CTL weitere logische und temporale Ope- ratoren abgeleitet werden. Man beachte, dass in CTL jedem temporalen Operator ein Pfadquantor vorangestellt wird. Ber ¨ ucksichtigt man die Pfadquantoren E und A sowie die temporalen Operatoren X, F, G und U, so gibt es in CTL acht temporal- logische Operatoren EX, AX, EF, AF, EG, AG, EU und AU. Die in Definition 2.4.6 verwendeten Operatoren EX, EG und EU bilden jedoch eine vollst ¨ andige Basis, d. h. die anderen temporallogischen Operatoren k ¨ onnen aus ihnen abgeleitet werden. Definition 2.4.7 (Semantik von CTL-Formeln). Sei ϕ eine CTL-Formel, so bedeu- tet M,s |= ϕ , dass ϕ im Zustand s der temporalen Struktur M gilt. Seien ϕ und ψ zwei CTL-Formeln, dann kann |= wie folgt definiert werden: M,s |= T ⇔ gilt immer M,s |= ϕ ⇔ ϕ ∈ L(s) falls ϕ ∈ V M,s |= ¬ ϕ ⇔ M, s |= ϕ M,s |= ϕ ∨ ψ ⇔ M, s |= ϕ oder M, s |= ψ M,s |= EX ϕ ⇔∃s 0 ,s 1 , ,(s = s 0 ) : M,s 1 |= ϕ M,s |= EG ϕ ⇔∃s 0 ,s 1 , ,(s = s 0 ) : ∀k ≥ 0:M,s k |= ϕ M,s |= E ϕ U ψ ⇔∃s 0 ,s 1 , ,(s = s 0 ) : ∃k ≥ 0:M, s k |= ψ ∧∀0 ≤ j < k : M,s j |= ϕ Abbildung 2.17 zeigt die Semantik der acht temporallogischen CTL-Operatoren. Definition 2.4.8 (G ¨ ultigkeit und Erf ¨ ullbarkeit von CTL-Formeln). Eine CTL- Forme l ϕ heißt g ¨ ultig, falls f ¨ ur alle temporalen Strukturen M und f ¨ ur alle Zust ¨ ande s gilt, dass M, s |= ϕ . Ist eine temporale Struktur M gegeben, so heißt sie g ¨ ultig in M, falls f ¨ ur alle Zust ¨ ande s von M gilt, dass M, s |= ϕ . Sie heißt erf ¨ ullbar, falls eine temporale Struktur M mit Zustand s existiert, so dass M , s |= ϕ . 2.4 Formale Spezifikation funktionaler Anforderungen 79 s 0 s 0 ϕϕ s 0 s 0 s 0 s 0 s 0 s 0 s 0 |= EX ϕ : s 0 |= AX ϕ : ϕϕϕ s 0 |= AF ϕ :s 0 |= EF ϕ : ϕ ϕ s 0 |= AG ϕ :s 0 |= EG ϕ : ϕϕ ϕϕϕ ϕϕϕϕϕ ϕ s 0 |= A ϕ U ψ :s 0 |= E ϕ U ψ : ϕ ϕψ ψψψ ϕ Abb. 2.17. Semantik der acht temporallogischen Operatoren in CTL [272] 80 2 Spezifikation digitaler Systeme Eine CTL-Formel ist in Normalform, wenn die Negation nur f ¨ ur aussagenlogi- sche Formeln verwendet wird. Entsprechend ist ¬AX ϕ nicht in Normalform, da die Negation vor AX steht. Hingegen ist die CTL-Formel EX ¬ ϕ in Normalform und ¨ aquivalent zu ¬AX ϕ . Eine CTL-Formel kann stets mit den folgenden ¨ Aquivalenzen in Normalform ¨ uberf ¨ uhrt werden: AX ϕ = ¬EX ¬ ϕ AG ϕ = ¬EF ¬ ϕ A ϕ U ψ = ¬(E ¬ ψ U ¬ ϕ ∧¬ ψ ) ∧¬EG ¬ ψ AF ϕ = A T U ϕ EF ϕ = E T U ϕ CTL* Das lineare Zeitmodell, welches LTL zugrundeliegt, ist eine Spezialfall des verzwei- genden Zeitmodells. Aus diesem Grund ist es m ¨ oglich, LTL auch auf einem verzwei- genden Zeitmodell zu definieren. Hierzu wird jede LTL-Formel implizit allquantifi- ziert. In LTL muss nicht jedem temporalen Operator ein Pfadquantor vorangestellt werden, w ¨ ahrend dies in CTL-Formeln notwendig ist. Deshalb gibt es LTL-Formeln, die sich nicht in CTL ausdr ¨ ucken lassen und umgekehrt. Beispiel 2.4.3. Gegeben ist die LTL-Formel ϕ := FG p. Wird diese in ein verzwei- gendes Zeitmodell eingebettet, erh ¨ alt man ϕ = AF G p. Eine temporale Struktur, die ein Modell f ¨ ur ϕ darstellt, ist in Abb. 2.18 zu sehen. Die LTL-Formel ϕ ist allerdings nicht ¨ aquivalent zu der CTL-Formel ψ = AF AG p. qp p s 2 s 1 s 0 s 3 Abb. 2.18. Temporale Struktur, die ein Modell f ¨ ur AF G p ist [457] Der Grund hierf ¨ ur ist, dass LTL-Formeln mit individuellen Pfaden assoziiert wer- den. Auf jedem unendlichen Pfad beginnend im Zustand s 0 kann der Zustand s 2 er- reicht werden. Sobald s 2 erreicht ist, gilt p in jedem Folgezustand. Die CTL-Formel ψ := AF AGp verlangt allerdings, dass auf jedem Pfad, beginnend in s 0 , ein Zustand erreicht werden kann, in dem AG p gilt. Der einzige Zustand, in dem AG p gilt, ist Zustand s 2 . Allerdings muss nicht jeder Pfad zwangsl ¨ aufig zum Zustand s 2 f ¨ uhren. Vielmehr gibt es einen Pfad, der beliebig lange in Zustand s 0 verweilt. Genau dieser Pfad ist ein Gegenbeispiel f ¨ ur die G ¨ ultigkeit von AF AG p. [...]... Abb 2.20 dargestellt Definition 2.4.10 (Semantik von CTL*) Sei ϕ eine Zustandsformel Dann besagt M, s |= ϕ , dass ϕ im Zustand s der temporalen Struktur M gilt Sei ψ eine Pfadformel 82 2 Spezifikation digitaler Systeme V Zustandsformeln = CTL* Pfadformeln E ¬, ∨ ¬, ∨ , X, U Abb 2.20 Zustands- und Pfadformeln in CTL* [272] Dann besagt M, s |= ψ , dass ψ entlang des Pfades s = s0 , s1 , der temporalen... werden Zur Formulierung von CTL-Formeln wird PSL OBE verwendet Da PSL oft in Werkzeugen zur Simulation zum Einsatz kommt, wird im Folgenden die hierzu konzipierte PSL FL betrachtet 84 2 Spezifikation digitaler Systeme Boolesche Ebene Auf der Booleschen Ebene wird eine funktionale Eigenschaft anhand von Variablen und deren logischen Verkn¨ pfungen beschrieben Bei den Variablen in PSL handelt u es sich... j, k, l ∈ N mit i ≥ j, l ≥ k und l, k > 0 PSL-Eigenschaften lassen sich wie folgt auf Basis der PSL-FL− definieren: • b1 und b2 sind PSL-Eigenschaften • {r} ist eine PSL-Eigenschaft 86 2 Spezifikation digitaler Systeme Dabei wird davon ausgegangen, dass b1 und b2 bzw {r} in der Simulation auftritt Ist dies nicht der Fall, wird dies als Fehler bewertet Allerdings ist diese Bedingung eine schwache Bedingung... Verf¨ gung, die u dem verwendeten Verifikationswerkzeug mitteilen, wie eine bestimmte Eigenschaft zu verwenden ist Dabei wird unterschieden, ob eine Eigenschaft erf¨ llt sein muss, u 88 2 Spezifikation digitaler Systeme d h dass die Eigenschaft eine Zusicherung ist, oder diese erf¨ llt sein sollte, d h dass u es sich um eine Annahme handelt Eine Zusicherung wird mit der assert-Anweisung ausgedr¨ ckt,... Beschr¨ nkung einer TTS ist die ausschließliche Verwendung a von Zeitintervallen, deren oberen und unteren Grenzen aufeinander fallen, d h die Verz¨ gerungszeit ist ein exakter Wert o 90 2 Spezifikation digitaler Systeme Beispiel 2.5.1 Gegeben ist die TTS in Abb 2.21 aus [312] Die TTS besteht aus drei u a o Zust¨ nden s0 , s1 und s2 Die Zustands¨ berg¨ nge sind mit den Verz¨ gerungszeiten a ¨ beschriftet . return fabs(tmp_i0 - i3[0]*i3[0]) < 0.0001; 15 } 16 17 smoc_firing_state start; 72 2 Spezifikation digitaler Systeme 18 smoc_firing_state loop; 19 public: 20 SqrLoop(sc_module_name name) : 21 smoc_actor(. sind, weshalb nur ein Ausschnitt aus dem Berechnungsbaum gezeichnet werden kann. 74 2 Spezifikation digitaler Systeme a) b) bcs 2 s 0 ab cs 1 ab cbc ab c c cccbc Abb. 2.14. a) Temporale Struktur und. diesem Fall spricht man von einem verzweigenden Zeitmodell (engl. branching time). 76 2 Spezifikation digitaler Systeme LTL-Formeln werden mittels atomarer Aussagen (aussagenlogische Variablen), logischen