Ausarbeitung / Bachelorarbeit / Diplomhausarbeit

Werbung
Westfälische Wilhelms-Universität Münster
Ausarbeitung
Temporale Logiken: CTL und LTL
im Rahmen des Seminars Formale Spezifikation im WS 2005/06
Thorsten Bruns
Themensteller: Prof. Dr. Herbert Kuchen
Betreuer: (Prof. Dr. Herbert Kuchen)
Institut für Wirtschaftsinformatik
Praktische Informatik in der Wirtschaft
Inhaltsverzeichnis
1
Einleitung................................................................................................................... 1
2
Grundlagen der Logik................................................................................................ 2
3
2.1
Aussagenlogik................................................................................................... 2
2.2
Prädikatenlogik ................................................................................................. 3
2.3
Entscheidbarkeit von Logiken .......................................................................... 6
Temporale Logiken.................................................................................................... 7
3.1
Erweiterung der Aussagen- oder Prädikatenlogik ............................................ 7
3.2
Klassifikation temporaler Logiken ................................................................... 7
3.3
Semantik verschiedener Zeitmodelle................................................................ 8
3.4
LTL ................................................................................................................... 9
3.4.1
3.4.2
3.4.3
3.5
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5
4
Syntax von LTL ............................................................................................ 9
Semantik von LTL ...................................................................................... 10
Varianten von LTL ..................................................................................... 12
CTL................................................................................................................. 12
Syntax von CTL.......................................................................................... 12
Semantik von CTL...................................................................................... 13
Semantische Äquivalenzen ......................................................................... 15
CTL Model Checking ................................................................................. 15
Anwendung des Markierungsalgorithmus .................................................. 17
3.6
Fixpunktcharakterisierung .............................................................................. 18
3.7
Theoretische Aspekte temporaler Logiken ..................................................... 19
Zusammenfassung ................................................................................................... 20
Literaturverzeichnis ........................................................................................................ 21
II
Kapitel 1: Einleitung
1 Einleitung
Einen Problembereich der Informatik stellt die Qualitätssicherung von Hard- und
Software dar. Dieses Problem kann einerseits durch Testen und andererseits durch
Beweise gelöst werden. Das Testen lässt sich größtenteils automatisieren, es kann aber
nicht sichergestellt werden, dass alle möglichen Fälle berücksichtigt werden. Die
Alternative zum Testen sind Beweise. Hierbei wird zwischen Theorembeweisen und
Model Checkern unterschieden. Theorembeweise müssen interaktiv durchgeführt
werden und erfordern viel Zeit, daher sind sie weniger beliebt. Model Checker bieten
die Möglichkeit, Eigenschaften von Programmen vollständig automatisiert zu prüfen.
Dazu muss das zu prüfende Soft- oder Hardwaresystem als formales Modell mit endlich
vielen Zuständen darstellbar sein. Als weiteres wird eine formale Spezifikation benötigt,
die festlegt, welche Eigenschaften das Programm erfüllen soll. Die Aufgabe eines
Model Checkers besteht darin, zu prüfen, ob die Implementierung der Spezifikation
genügt.
Bei den zu prüfenden Systemen handelt es sich um sogenannte reaktive Systeme, die in
ständiger Interaktion mit Ihrer Umgebung stehen, auf die Signale aus ihrer Umgebung
reagieren und im Normalfall nie terminieren, wie z. B. Betriebssysteme, Netzwerkprotokolle oder Prozesssteuerungen. Diese Systeme lassen sich in endlichen Modellen
darstellen. Die Eigenschaften, die sich prüfen lassen, sind z. B. Lebendigkeit, Deadlockfreiheit, Fairness und Sicherheit.
Das Ziel dieser Arbeit ist es, die Möglichkeiten der Darstellung einer formalen
Spezifikation durch temporale Logiken darzustellen und aufzuzeigen, wie diese
Logiken für das Model Checking eingesetzt werden können.
Die Arbeit gliedert sich in ein Grundlagen- und ein Hauptkapitel. Im ersten wird ein
kurzer Überblick über die Aussagen- und die Prädikatenlogik gegeben, da diese als
Voraussetzung für temporale Logiken benötigt werden. Im nächsten Kapitel werden die
beiden temporalen Logiken LTL und CTL genauer untersucht.
1
Kapitel 2: Grundlagen der Logik
2 Grundlagen der Logik
2.1 Aussagenlogik
Die Aussagenlogik beschäftigt sich mit der Untersuchung des Wahrheitswertes von
Aussagen. Diese können entweder wahr oder falsch sein und sind somit zweiwertig. Die
formale Darstellung von Aussagen geschieht in einer formalen Logik, der Aussagenlogik. Die Wahrheitswerte von Aussagen sind hier statisch, d. h. sie gelten dauerhaft
und können sich nicht dynamisch ändern.
Die Syntax der Aussagenlogik ist nach [Sc00] folgendermaßen definiert:
Formeln bestehen aus atomaren Formeln der Form Ai mit i = 1,2,3,K . Formeln werden
durch folgenden induktiven Prozess definiert:
1. Alle atomaren Formeln Ai sind Formeln.
2. Für alle Formeln F und G sind (F ∧ G ) und (F ∨ G ) Formeln.
3. Für jede Formel F ist ¬F eine Formel.
Eine Formel der Form (F ∧ G ) wird als Konjunktion bezeichnet, eine Formel der Form
(F ∨ G ) als Disjunktion und ¬F
als Negation.
Nachfolgend werden einige Umformungsregeln aufgestellt. Dabei werden zwei neue
Symbole, → und ↔ , sowie die boolschen Konstanten true und false eingeführt.
Hierbei bezeichnen A und B beliebige aussagenlogische Formeln:
(A ∨ B)
=
¬(¬A ∧ ¬B )
(A → B)
=
(¬A ∨ B )
(A ↔ B)
=
(( A ∧ B ) ∨ (¬A ∧ ¬B ))
true
=
A ∨ ¬A
false
=
¬true
Die Semantik der Aussagenlogik ist nach [Sc00] wie folgt definiert:
Jede atomare Formel besitzt eine Belegung mit einem Wahrheitswert aus {0,1} . Eine
Belegung ist eine Funktion A : D → {0,1} mit der Menge D , die eine Teilmenge der
atomaren Formeln ist. A wird zu  : E → {0,1} erweitert, wobei E die Menge aller
2
Kapitel 2: Grundlagen der Logik
Formeln ist, die sich aus der Menge D der atomaren Formeln zusammensetzt. So lässt
sich jeder beliebigen Formel, die nur aus atomaren Formeln zusammengesetzt ist, ein
Wahrheitswert zuordnen.
1. Für jede atomare Formel Ai ∈ D gilt  ( Ai ) = A( Ai ) mit i = 1,2,3,K .
2.  ((F ∧ G )) = 1 , falls  (F ) = 1 und  (G ) = 1 , sonst 0.
3.  ((F ∨ G )) = 1 , falls  (F ) = 1 oder  (G ) = 1 , sonst 0.
4.  (¬F ) = 1 , falls  (F ) = 0 , sonst 0.
Zur Berechnung des Wahrheitswertes aussagenlogischer Formeln können diese in
Verknüpfungstabellen dargestellt werden. Anhand dieser Tabellen ist ersichtlich, dass
die Anzahl aller möglicher Wertebelegungen für einen Ausdruck exponentiell in Bezug
auf die Anzahl der in einem Ausdruck enthaltenen atomaren Formeln wächst.
Im folgenden werden weitere Begriffe nach [Sc00] definiert:
Sei F eine Formel und A eine Belegung. Dann heißt A zu F passend, wenn A für
alle in F vorkommenden atomaren Formeln definiert ist. Falls A zu F passend ist und
A(F ) = 1 gilt, so wird A ⊨ F geschrieben. F gilt unter der Belegung von A bzw. A
ist ein Modell für F . Umgekehrt ist A kein Modell für F , falls A(F ) = 0 , geschrieben
A ⊭ F . Jede Belegung von Wahrheitswerten, die der Formel F den Wert 1 zuordnet,
wird somit als Modell bezeichnet.
Eine Formel heißt erfüllbar, falls F mindestens ein Modell besitzt, sonst heißt F
unerfüllbar. Um zu prüfen, ob eine Formel erfüllbar ist, müssen alle möglichen
Belegungen geprüft werden, ob mindestens eine Belegung für die Formel den Wert 1
ergibt.
Eine Formel heißt gültig oder Tautologie, falls jede zu F passende Belegung ein
Modell für F ist. In diesem Fall wird nur ⊨ F geschrieben.
2.2 Prädikatenlogik
Die Prädikatenlogik ist eine Erweiterung der Aussagenlogik um Quantoren, Funktionssowie Prädikatsymbole. Hiermit lassen sich Aussagen über Objekte machen, die durch
Variablen repräsentiert werden, z. B., dass Objekte gewisse Eigenschaften haben oder
mit anderen Objekten in Beziehung stehen.
3
Kapitel 2: Grundlagen der Logik
Die Syntax prädikatenlogischer Formeln ist nach [Sc00] folgendermaßen definiert:
Zur Definition prädikatenlogischer Formeln werden Variablen, Prädikat- und Funktionssymbole eingeführt. Eine Variable hat die Form xi mit i = 1,2,3,K . Ein Prädikatsymbol hat die Form Pi k mit i = 1,2,3,K und k = 0,1,2,3,K . Ein Funktionssymbol hat
die Form f i k mit i = 1,2,3,K und k = 0,1,2,3,K . Hierbei stellt i den Index und k die
Stelligkeit der Prädikate und Funktionen dar.
Mit Variablen und Funktionen werden Terme gebildet. Diese sind wie folgt definiert:
1. Jede Variable xi mit i = 1,2,3,K ist ein Term.
2. Ist f ein Funktionssymbol mit der Stelligkeit k und sind t1 ,..., t k Terme, so ist
auch f (t1 ,..., t k ) ein Term.
Funktionen der Stelligkeit null werden als Konstanten bezeichnet und ohne Klammern
dargestellt.
Prädikatenlogische Formeln sind definiert:
1. Ist P ein Prädikatsymbol der Stelligkeit k und sind t1 ,..., t k Terme, so ist
P(t1 ,..., t k ) eine Formel.
2. Für jede Formel F ist auch ¬F eine Formel.
3. Für alle Formeln F und G sind auch (F ∧ G ) und (F ∨ G ) Formeln.
4. Ist x eine Variable und F eine Formel, so sind auch ∃xF und ∀xF Formeln.
Variablen werden in freie und gebundene unterteilt. Kommt eine Variable x in einer
Teilformel G der Formeln ∃xG oder ∀xG vor, so wird diese Variable als gebunden
bezeichnet, anderenfalls als frei. Eine Formel wird nur dann als Aussage bezeichnet,
wenn diese ausschließlich gebundene Variablen enthält. Das Symbol ∃ wird als
Existenzquantor und das Symbol ∀ als Allquantor bezeichnet.
Die Semantik prädikatenlogischer Ausdrücke ist nach [Sc00] folgendermaßen definiert:
Zur Definition der Semantik der Prädikatenlogik wird zunächst eine Struktur
A = (U A , I A ) benötigt. U A bezeichnet eine beliebige nichtleere Menge, die auch als
Grundmenge von A bezeichnet wird. Weiter ist I A eine Abbildung, die
•
jedem k-stelligen Prädikatsymbol P ein k-stelliges Prädikat über U A zuordnet,
•
jedem k-stelligen Funktionssymbol f eine k-stellige Funktion auf U A zuordnet
4
Kapitel 2: Grundlagen der Logik
•
und jeder Variablen x ein Element der Grundmenge U A zuordnet.
Sie F eine Formel und A = (U A , I A ) eine Struktur. A heißt zu F passend, falls I A für
alle in F vorkommenden Prädikat- und Funktionssymbole sowie freien Variablen
definiert ist.
Sei F eine Formel und A eine zu F passende Struktur. Für jeden Term t , der sich aus
den Bestandteilen von F bilden lässt, wird der Wert von t in der Struktur A ,
bezeichnet mit A(t ) , wie folgt definiert:
1. Falls t eine Variable t = x ist, so gilt A(t ) = x A .
2. Falls
t
A(t ) = f
ein
A
k-stelliges
Funktionssymbol
t = f (t1 ,..., t k )
ist,
so
gilt
( A(t1 ),..., A(t k )) .
Bei nullstelligen Funktionssymbolen t = a gilt A(t ) = a A .
Der Wahrheitswert einer Formel F wird folgendermaßen definiert:
1. Hat F die Form F = P (t1 ,...t k ) mit den Termen t1 ,..., t k und dem k-stelligen
Prädikatsymbol P , so ist A(F ) = 1 , falls ( A(t1 ),..., A(t k )) ∈ P A , sonst 0.
2. Hat F die Form F = ¬G , so ist A(F ) = 1 , falls A(G ) = 0 , sonst 0.
3. Hat F die Form F = (G ∧ H ) , so ist A(F ) = 1 , falls A(G ) = 1 und A(H ) = 1 ,
sonst 0.
4. Hat F die Form F = (G ∨ H ) , so ist A(F ) = 1 , falls A(G ) = 1 oder A(H ) = 1 ,
sonst 0.
5. Hat F die Form F = ∀xG , so ist A(F ) = 1 , falls für alle d ∈ U A gilt:
A[ x / d ] (G ) = 1 , sonst 0.
6. Hat F die Form F = ∃xG , so ist A(F ) = 1 , falls es ein d ∈ U A gibt mit:
A[ x / d ] (G ) = 1 , sonst 0.
Die Modell-, Erfüllbarkeits- und Gültigkeitsdefinitionen gelten hier analog zur
Aussagenlogik.
Die Prädikatenlogik ist ausdrucksstärker als die Aussagenlogik, allerdings kann auch
hiermit nicht jede mathematische Aussage formuliert werden. Die Quantoren lassen sich
in der dargestellten Form nur auf Variablen anwenden, nicht aber auf Funktions-
5
Kapitel 2: Grundlagen der Logik
symbole. Daher wird diese Logik Prädikatenlogik erster Stufe genannt. Die zweite Stufe
umfasst zusätzlich die Anwendung der Quantoren auf Funktionssymbole.
2.3 Entscheidbarkeit von Logiken
Für Anwendungszwecke ist es wichtig zu wissen, ob eine Logik entscheidbar ist oder
nicht. Der Ausdruck entscheidbar bedeutet, ob sich ein Algorithmus finden lässt, der in
endlicher Zeit ausgibt, ob es zu einer beliebigen Formel einer gegebenen Logik ein
Modell, d. h. mindestens eine gültige Belegung, gibt oder nicht. Wichtig ist hierbei, dass
so ein Algorithmus nicht nur positive, sondern auch negative Ergebnisse ausgibt und
dabei in jedem Fall stoppt. Für aussagenlogische Ausdrücke ist diese Überlegung
einfach. Das Aufschreiben aller möglichen Belegungen ist bereits ein entsprechender
Algorithmus. Es gibt in einer aussagenlogischen Formel mit n atomaren Formeln
immer genau 2 n mögliche Belegungen, die überprüft werden müssen, da jede atomare
Formel genau zwei Wahrheitswerte, 0 oder 1, belegen kann. Daraus folgt, dass die
Aussagenlogik entscheidbar ist.
In der Prädikatenlogik ist bereits das Gültigkeitsproblem unentscheidbar, d. h. es lässt
sich kein Algorithmus finden, der in endlicher Zeit feststellen kann, ob eine Belegung
eines beliebigen prädikatenlogischen Ausdrucks wahr oder falsch ist. Daraus lässt sich
folgern, dass das Erfüllbarkeitsproblem der Prädikatenlogik ebenfalls unentscheidbar
ist, da dieses Problem die Entscheidbarkeit des Gültigkeitsproblems voraussetzt.
Das Aufschreiben aller möglichen Belegungen lässt sich nicht auf die Prädikatenlogik
übertragen, da hier Strukturen anstatt Belegungen existieren. Diese Strukturen können
unendliche Mengen enthalten, die ein vollständiges Aufschreiben verhindern.
Dies alleine ist jedoch noch kein Beweis für die Unentscheidbarkeit des
Gültigkeitsproblems der Prädikatenlogik. Der Beweis erfolgt, indem dieses Problem auf
ein bereits als unentscheidbar bekanntes Problem, das Postsche Korrespondenzproblem,
zurückgeführt wird. Dazu muss ein Algorithmus gefunden werden, der in endlicher Zeit
jedes beliebige Postsche Korrespondenzproblem K in eine prädikatenlogische Formel
FK überführt, so dass K genau dann eine Lösung besitzt, wenn FK gültig ist. Da dieser
Beweis einen tieferen Einstieg in die Berechenbarkeitstheorie erfordert, wird dieser hier
ausgelassen. Der Beweis kann in [Sc00, S.71-73] nachgelesen werden.
6
Kapitel 3: Temporale Logiken
3 Temporale Logiken
3.1 Erweiterung der Aussagen- oder Prädikatenlogik
Temporale Logiken sind Erweiterungen der Aussagen- oder der Prädikatenlogik. Diese
Logiken ermöglichen Aussagen über zeitliche Veränderungen. In der Aussagenlogik
sind Aussagen entweder immer oder nie wahr. Bei temporalen Logiken ist der Wahrheitswert einer Aussage zusätzlich vom aktuellen Zeitpunkt abhängig, da es möglich ist,
sowohl Aussagen über die Zukunft als auch über die Vergangenheit zu formulieren. Mit
der Erweiterung der Aussagenlogik um einen Zeitoperator für die Zukunft und einen für
die Vergangenheit lassen sich bereits beliebig komplexe Zeitstrukturen darstellen, die
sprachlich nicht mehr ausgedrückt werden können. Der Ursprung der temporalen Logik
entstammt der Philosophie, daher existiert ein enger Bezug zur Repräsentation der
Zeitformen einer natürlichen Sprache durch eine formale Logik [Bu84].
3.2 Klassifikation temporaler Logiken
Temporale Logiken lassen sich nach [Em90] auf verschiedene Arten klassifizieren.
Temporale Logiken können:
•
Auf der Aussagen- oder der Prädikatenlogik basieren. Dazu erweitert eine
temporale Logik entweder die Aussagen- oder die Prädikatenlogik um neue
Operatoren.
•
Ein lineares oder ein verzweigtes Zeitmodell besitzen. Die Zeit kann entweder
eindeutig oder nicht eindeutig modelliert werden. Ist die Zeit eindeutig, so
existiert zu jedem Zeitpunkt nur ein möglicher unmittelbarer Nachfolger in der
Zukunft. Bei Verwendung eines verzweigten Zeitmodells können zu jedem
Zeitpunkt mehrere unmittelbare Nachfolger existieren. Dabei ist festzuhalten,
dass dieser Nichtdeterminismus nur für die Zukunft, nicht aber für die
Vergangenheit gilt. Die Vergangenheit ist in jedem Zeitpunkt eindeutig.
•
Die Zeit diskret oder kontinuierlich modellieren. Die Zeit kann als Folge von
Zeitpunkten angesehen werden, so dass bei Verwendung eines linearen
Zeitmodells jeder Zeitpunkt genau einen Nachfolger hat und bei einem
verzweigten Zeitmodell jeder Zeitpunkt abzählbar viele Nachfolger besitzt. Hier
7
Kapitel 3: Temporale Logiken
kann von jedem Zeitpunkt zum nächsten gesprungen werden. Alternativ kann
die Zeit auch kontinuierlich sein, so dass es zu keinem Zeitpunkt einen
unmittelbar nachfolgenden Zeitpunkt gibt. Hier ist nur ein Vergleich auf früher
oder später zwischen zwei Zeitpunkten möglich. Da in Programmen nur diskrete
Berechnungen möglich sind, wird die Zeit in der Regel als diskret angesehen.
•
Zeitpunkte oder Zeiträume betrachten. Die Zeit kann als Folge aufeinanderfolgender Zeitpunkte oder auch als Folge von Intervallen betrachtet werden.
•
Die Vergangenheit oder die Zukunft berücksichtigen. Es gibt sowohl Operatoren
für die Zukunft als auch für die Vergangenheit. Temporale Logiken, die zur
Programmverifikation eingesetzt werden, besitzen nur Operatoren für die
Zukunft, da jedes Programm einen definierten Startzeitpunkt besitzt und die
Betrachtung der Vergangenheit somit irrelevant ist. Der zusätzliche Operator für
die Vergangenheit bringt außerdem keine Erweiterung der Ausdrucksstärke.
Bis auf den letzten Punkt schließen sich alle Alternativen gegenseitig aus. Eine
temporale Logik kann beim letzten Punkt beide Fälle berücksichtigen.
Die hier dargestellten Kombinationen erlauben, eine Vielzahl möglicher temporaler
Logiken zu definieren. Im folgenden werden zwei Alternativen genauer untersucht, die
sich hauptsächlich im verwendeten Zeitmodell unterscheiden.
3.3 Semantik verschiedener Zeitmodelle
Zur späteren Definition der Semantik einer temporalen Logik wird die Bedeutung der
verschiedenen Zeitmodelle benötigt. Dazu müssen die verschiedenen Zeitmodelle
definiert werden. Im Falle der Modellierung diskreter Systeme, wie eines Soft- oder
Hardwaresystems, muss auch die Zeit diskret modelliert werden. Daher existiert in
diesen Fällen eine Menge von Zuständen, die den zeitlichen Ablauf repräsentieren.
Zudem wird auf dieser Menge von Zuständen wird eine zeitliche Ordnung benötigt, die
festlegt, wie sich die Zustände ordnen lassen. Dazu wird ein Tupel gebildet, das in
diesem Zusammenhang Rahmen genannt wird. Dieser Rahmen enthält die Menge der
Zustände und die zugehörige Ordnungsrelation.
Wird eine lineare Zeitstruktur verwendet, so lässt sich jedem Zustand eindeutig eine
Zahl aus der Menge der natürlichen Zahlen zuordnen. Die auf den natürlichen Zahlen
basierende Ordnungsrelation ist total. Dies bedeutet auf die Menge der Zustände
8
Kapitel 3: Temporale Logiken
übertragen, dass für zwei beliebige Zustände s und t gilt: Entweder kommt s zeitlich
vor t , s und t sind gleich oder s kommt nach t .
Bei Verwendung einer verzweigten Zeitstruktur ist die Zukunft nicht eindeutig definiert.
Die hier verwendete Ordnungsrelation muss einer Baumordnung entsprechen. Für jeden
Zustand, der mehrere unmittelbare Nachfolger enthält, steht nicht eindeutig fest,
welcher Zustand danach als erstes eintritt. Da die Verzweigung nur in die Zukunft
gerichtet ist, besitzen die Zustände der Vergangenheit eine lineare Ordnungsrelation.
3.4 LTL
LTL steht für linear temporal logic. Diese Logik zeichnet sich durch die Verwendung
einer linearen Zeitstruktur aus. In [Em90] werden folgende drei grundlegende Annahmen für LTL getroffen:
1. Die Zeit ist diskret.
2. Es gibt einen Startzustand, der keine Vorgänger besitzt.
3. Die Zukunft ist unendlich.
Die Annahme einer diskreten Zeit ist darauf zurückzuführen, dass heutige Computer
digitale Geräte sind, die nur diskrete Berechnungen ermöglichen. Somit läuft auch die
Zeit diskret ab, indem jeder Zeitpunkt als ein Zustand betrachtet wird. Jedes Programm
beginnt in einem Startzustand ohne vorherige Informationen, dies rechtfertigt die zweite
Annahme. Die letzte Annahme ist damit zu begründen, dass die zu untersuchenden
Programme im Idealfall nie stoppen und unendlich lange laufen sollen.
Zu LTL gibt es Varianten, die entweder auf der Aussagenlogik oder der Prädikatenlogik
basieren. Im folgenden wird nur die Erweiterung der Aussagenlogik untersucht. Diese
Logik wird in [Em90] als PLTL bezeichnet.
3.4.1 Syntax von LTL
Die Syntax von LTL erweitert die Syntax der Aussagenlogik um vier weitere
Operatoren. Sie wird mittels Backus Naur Form (BNF) nach [HR01] folgendermaßen
definiert:
p ::= P | (¬p ) | ( p ∧ p ) | ( p ∨ p ) | ( p → p ) | ( p ↔ p ) | Xp | Fp | Gp | ( p U p )
P bezeichnet hier eine beliebig atomare aussagenlogische Formel.
9
Kapitel 3: Temporale Logiken
Die höchste Bindung besitzen die unären Operatoren ¬ , X , F und G . Danach folgen
zuerst das ∧ und anschließend das ∨ . Als letztes kommen → , ↔ sowie U .
Zusätzlich zu den Umformungsmöglichkeiten der Aussagenlogik können in LTL
folgende Umformungen durchgeführt werden:
Fp
=
(true U p )
Gp
=
¬F¬p
3.4.2 Semantik von LTL
Zur Definition der Semantik von LTL wird neben der Definition des Rahmens der
linearen Zeitstruktur eine Auswertungsfunktion benötigt, die jeder Formel in jedem
Zustand einen Wahrheitswert zuordnet bzw. jedem Zustand die Menge der gültigen
atomaren Aussagen zuweist. Damit wird der Rahmen um eine Funktion erweitet. Die
Zeitstruktur in der Verwendung einer temporalen Logik wird als Struktur M = (S , R, L )
definiert. Diese Strukturen werden auch als Kripkestrukturen bezeichnet. S bezeichnet
die Menge der Zustände, R die Übergangsrelation R ⊆ S × S über den Zuständen und
L : S → Potenzmenge(P ) die Funktion, die jedem Zustand eine Teilmenge der Menge
P aller atomaren Aussagen zuweist, die in diesem Zustand gültig sind.
Da in LTL nur lineare Zeitstrukturen betrachtet werden, sind Aussagen nicht auf
einzelnen Zuständen, sondern auf einem Pfad oder auf Teilpfaden definiert. Im
folgenden bedeutet M , π ⊨ p , dass die Formel p im Pfad π = (s 0 , s1 ,....) für die
Struktur M gültig ist, M , π i ⊨ p bedeutet, dass die Formel p in einem Teilpfad von
π = (s 0 , s1 ,....) beginnend mit dem Zustand si gültig ist. Ist die Struktur klar, so kann
das Symbol M weggelassen werden und es wird nur π ⊨ p geschrieben. Die Semantik
von LTL ist nach [HR01] folgendermaßen definiert:
1. π ⊨ P gdw. P ∈ L(s 0 ) für eine atomare aussagenlogische Formel P .
2. π ⊨ ¬p gdw. π ⊭ p .
3. π ⊨ ( p ∧ q ) gdw. π ⊨ p und π ⊨ q .
4. π ⊨ Xp gdw. π 1 ⊨ p .
5. π ⊨ Fp gdw. ∃j ≥ 0 für das gilt: π j ⊨ p .
10
Kapitel 3: Temporale Logiken
6. π ⊨ Gp gdw. ∀j ≥ 0 gilt: π j ⊨ p .
7. π ⊨ ( p U q ) gdw. ∃j ≥ 0 für das gilt: π j ⊨ q und ∀0 ≤ k < j gilt: π k ⊨ p .
Der Wahrheitswert einer Formel ist immer auf den gegenwärtigen Zeitpunkt bzw.
Zustand bezogen. In den nachfolgenden Abbildungen stellt der erste dargestellte
Zustand den jeweils aktuellen Zustand dar. Die vollständig ausgefüllten Zustände sind
diejenigen, in denen die Aussage p wahr ist.
Die Formel Xp ist im aktuellen Zustand wahr, wenn p im nächsten Zustand wahr ist.
Die Formel Fp ist im aktuellen Zustand wahr, wenn p in einem beliebigen Zustand in
der Zukunft wahr ist.
Die Formel Gp ist im aktuellen Zustand wahr, wenn p in jedem Zustand in der
Zukunft wahr ist.
Die Formel ( p U q ) ist im aktuellen Zustand wahr, wenn p vom aktuellen Zustand an
solange wahr ist, bis q wahr wird. In dem schraffierten Zustand ist q wahr, über p
wird hierbei keine Aussage mehr getroffen.
Eine Formel verhält sich nach [Mc93] wie ein offener Satz mit einem freien Parameter,
der den aktuellen Zustand repräsentiert. Da eine Formel aber nicht nur in einem
bestimmten Zustand gültig sein muss, steht dieser Parameter für die Menge aller
gültigen Zustände. Anders herum wird durch die Festlegung eines Zustandes eine
Menge von Formeln definiert, die in diesem Zustand gültig sind.
Eine Formel
p in LTL ist genau dann erfüllbar, wenn es eine Zeitstruktur
M = (S , R, L ) gibt, auf der ein Pfad π definiert ist, so dass M , π ⊨ p gilt. Jede
Zeitstruktur, die dies erfüllt, wird somit als Modell für p bezeichnet. Die Formel p
heißt gültig genau dann, wenn diese Formel für alle Zeitstrukturen M = (S , R, L ) gilt. In
diesem Fall wird nur ⊨ p geschrieben. Die Formel p ist gültig genau dann, wenn ¬p
nicht erfüllbar ist.
11
Kapitel 3: Temporale Logiken
3.4.3 Varianten von LTL
Es gibt viele Varianten von LTL. Diese betreffen z. B. die Semantik der Operatoren
oder die verwendeten Operatoren überhaupt. Zu den hier verwendeten lassen sich noch
Operatoren hinzufügen, die Aussagen über die Vergangenheit ermöglichen. Die
Semantik der Operatoren lässt sich z. B. auf die Frage hin ändern, ob die Zukunft die
Gegenwart mit einschließt oder nicht. Weitere Beispiele von Varianten, welche die
Semantik von Operatoren betreffen, können in [Em90] nachgelesen werden.
Die zuvor angegebene Logik basiert auf der Aussagenlogik. Eine grundlegende
Änderung dieser Logik besteht darin, diese auf der Prädikatenlogik aufzubauen. Bei
einer solchen Erweiterung muss die Unentscheidbarkeit der Prädikatenlogik beachtet
werden. Da Formeln temporaler Logiken automatisiert auf Gültigkeit überprüft werden
sollen, kann diese Erweiterung nur so restriktiv erfolgen, dass die daraus entstehende
Logik entscheidbar ist. Diese Erweiterung wird in dieser Arbeit nicht weiter untersucht.
3.5 CTL
CTL steht für Computation tree logic. Diese temporale Logik wurde von Clarke und
Emerson [CE81] definiert. CTL basiert auf der Aussagenlogik und benutzt eine
verzweigte Zeitstruktur. Jeder Zeitpunkt kann bei dieser Zeitstruktur mehrere
nachfolgende Zeitpunkte besitzen, d. h. die Zukunft ist nichtdeterministisch. Dieses
Zeitmodell besitzt eine baumähnliche Struktur, da sich die Menge aller möglichen Pfade
eines Modells als Baum darstellen lässt. Hieraus stammt auch der Name dieser Logik,
Berechnungsbaumlogik.
CTL ist syntaktisch eng mit LTL verbunden, da es die gleichen temporalen Operatoren
benutzt. CTL ist im Vergleich zu LTL aber eine syntaktisch sehr restriktive Logik. Dies
schränkt ihre Ausdrucksstärke stark ein.
3.5.1 Syntax von CTL
Formeln in CTL enthalten Paare von temporalen Konnektoren, die aus einem
Pfadquantor gefolgt von einem temporalen Operator bestehen. Die Pfadquantoren sind
die Symbole A und E , die temporalen Operatoren die Symbole X , F , G und U . Diese
Konnektoren dürfen in einer syntaktisch korrekten Formel nie getrennt vorkommen. Die
Syntax einer Formel in CTL wird in BNF nach [HR01] folgendermaßen definiert:
12
Kapitel 3: Temporale Logiken
p ::= P | (¬p ) | ( p ∧ p ) | ( p ∨ p ) | ( p → p ) | ( p ↔ p ) | AXp | EXp | AFp | EFp |
AGp | EGp | A( p U p ) | E ( p U p )
P bezeichnet hier eine beliebig atomare aussagenlogische Formel.
Die höchste Bindung besitzen die unären Operatoren ¬, AX , EX , AF , EF , AG und EG .
Danach folgen ∧ und ∨ . Als letztes kommen → , ↔ sowie AU und EU . Zur
eindeutigen Bindung können beliebig zusätzliche Klammern gesetzt werden.
Mit obigen Regeln können zu den Umformungsmöglichkeiten der Aussagenlogik
folgende weitere Umformungen vorgenommen werden:
•
AFp ≡ A(true U p )
•
EFp ≡ E (true U p )
•
AGp ≡ ¬E (true U ¬p )
•
EGp ≡ ¬A(true U ¬p )
3.5.2 Semantik von CTL
Zur Definition der Semantik von CTL wird analog zur Definition der Semantik von
LTL neben der Definition des Rahmens noch eine Auswertungsfunktion benötigt, die
jedem Zustand die Menge der in dem jeweiligen Zustand gültigen atomaren Aussagen
zuweist. Der verwendete Rahmen besitzt hier keine lineare, sondern eine verzweigte
Zeitstruktur. Die um die Auswertungsfunktion erweiterte Zeitstruktur M = (S , R, L )
enthält die Menge der Zustände S , die Übergangsrelation R ⊆ S × S über diesen
Zuständen, die jedem Zustand mindestens einen Nachfolger zuweist, und die
Auswertungsfunktion L : S → Potenzmenge(P ) , die jedem Zustand eine Teilmenge der
Menge P aller atomaren Aussagen zuweist, die in diesem Zustand gültig sind.
Im folgenden bedeutet M , si ⊨ p , dass die Formel p im Zustand si für die Struktur M
gültig ist. Ist die Struktur klar, so kann das Symbol M weggelassen werden und es wird
nur si ⊨ p geschrieben. Die Semantik von CTL ist wird nach [CE81] über strukturelle
Induktion folgendermaßen definiert:
1. s 0 ⊨ P gdw. P ∈ L( s 0 ) , für eine atomare aussagenlogische Formel P .
2. s 0 ⊨ ¬p gdw. s 0 ⊭ p
13
Kapitel 3: Temporale Logiken
3. s 0 ⊨ ( p1 ∧ p 2 ) gdw. s 0 ⊨ p1 und s 0 ⊨ p 2 .
4. s 0 ⊨ AXp gdw. für alle Pfade (s 0 , s1 ,...) gilt: s1 ⊨ p .
5. s 0 ⊨ EXp gdw. für mindestens einen Pfad (s 0 , s1 ,...) gilt: s1 ⊨ p .
6. s 0 ⊨ A( p1 U p 2 ) gdw. für alle Pfade (s 0 , s1 ,...) für mindestens ein i ≥ 0 gilt:
si ⊨ p 2 und für alle 0 ≤ j < i gilt: s j ⊨ p1 .
7. s 0 ⊨ E ( p1 U p 2 ) gdw. für mindestens einen Pfad (s 0 , s1 ,...) für mindestens ein
i ≥ 0 gilt: si ⊨ p 2 und für alle 0 ≤ j < i gilt: s j ⊨ p1 .
Die übrigen Operatoren werden an dieser Stelle nicht explizit definiert, da diese sich
über die Umformungsregeln ableiten lassen.
Der Pfadquantor A bedeutet, dass eine Aussage für alle Pfade gilt, der Pfadquantor E
besagt, dass eine Aussage für mindestens einen Pfad gilt. Die temporalen Operatoren
X , F , G und U besitzen dieselbe Bedeutung wie in der Logik LTL.
Die folgenden Abbildungen zeigen die Bedeutungen der Formeln grafisch. In den
Abbildungen sind diejenigen Zustände ausgefüllt, in denen die Aussage p wahr ist. In
den schraffiert dargestellten Zuständen ist die Aussage q wahr. Die Wurzel der
abgebildeten Bäume stellt den aktuellen Zustand dar, in dem die jeweilig angegebene
Formel wahr ist. Jeder Knoten besitzt hier genau zwei Nachfolger. Dies muss nicht
grundsätzlich der Fall sein. Jeder Knoten muss mindestens einen Nachfolger besitzen.
Jeder dargestellte Pfad geht unendlich lange weiter. Zur Veranschaulichung ist die
verwendete Baumtiefe ausreichend.
EXp
EFp
EGp
E(p U q)
AXp
AFp
AGp
A(p U q)
14
Kapitel 3: Temporale Logiken
3.5.3 Semantische Äquivalenzen
Zwei Formeln p und q in CTL sind genau dann äquivalent, wenn in jedem Zustand
eines beliebigen Modells, in dem eine der beiden Formeln erfüllt ist, gleichzeitig auch
die andere Formel gilt.
Zur vollständigen Ausdrucksstärke genügt es, die Logik CTL über der Menge der
Operatoren false , ¬ und ∧ zusammen mit EX , E ( U
)
und EG zu definieren. Alle
anderen Operatoren lassen sich daraus ableiten. Dafür müssen die folgenden
Äquivalenzen bekannt sein:
AFp ≡ ¬EG¬p
EFp ≡ E (true U p )
AXp ≡ ¬EX¬p
AGp ≡ ¬E (true U ¬p )
A( p U q ) ≡ ¬(E (¬q U (¬p ∧ ¬q )) ∨ EG¬q )
Die vollständige Ausdrucksstärke lässt sich auch über andere Operatoren umsetzen.
3.5.4 CTL Model Checking
Der Ausgangspunkt des Model Checking ist die Frage, ob in einem gegebenen Modell,
das sich in einem bestimmten Zustand befindet, eine gegebene Formel in diesem
Zustand wahr ist oder nicht. Die Gleichung M , s ⊨ p wird als ein Berechnungsproblem
betrachtet. Alternativ könnte auch nur ein Modell und eine Formel gegeben sein, und es
interessiert die Menge der Zustände, für die diese Formel gültig ist. Dieses Problem
würde die erste Fragegestellung automatisch mit beantworten.
Die zweite Fragestellung lässt sich mit Hilfe des sogenannten Markierungsalgorithmus
berechnen. Dieser läuft folgendermaßen ab: Als Eingabe wird ein Modell M und eine
Formel p erwartet. Die Formel p muss in CTL sein und darf nur die Operatoren
false , ¬ und ∧ zusammen mit EX , E ( U
) und
AF besitzen, alle anderen Konnek-
toren müssen vor der Anwendung des Algorithmus entsprechend semantisch äquivalent
umgeformt werden. Die angegebenen Konnektoren sind zur Vollständigkeit der
Ausdrucksstärke von CTL ausreichend. Der Algorithmus gibt die Menge der Zustände
des Modells M aus, welche die Formel p erfüllen. Der erste Schritt des Algorithmus
15
Kapitel 3: Temporale Logiken
besteht darin, die Potenzmenge der Teilformeln der Formel p zu bilden. Beginnend mit
der kürzesten Teilformel wird mit jedem Element dieser Potenzmenge einer der
nachfolgenden Schritte durchgeführt. Dieser Schritt hängt vom Inhalt der Teilformel ab:
•
false : Es wird kein Zustand markiert.
•
p : Alle Zustände werden markiert, für die gilt: p ∈ L(s ) .
•
p ∧ q : Markiere alle Zustände mit p ∧ q , die bereits sowohl mit p als auch mit
q markiert sind.
•
¬p : Markiere alle Zustände mit ¬p , die nicht bereits mit p markiert sind.
•
AFp : Falls es irgendeinen Zustand gibt, der bereits mit p markiert ist, so
markiere diesen mit AFp . Markiere solange alle Zustände mit AFp , dessen
Nachfolger alle bereits mit AFp markiert sind, bis sich keine Änderungen mehr
ergeben.
•
E ( p U q ) : Markiere alle Zustände mit E ( p U q ) , die bereits mit q markiert
sind. Markiere solange alle Zustände mit E ( p U q ) , die bereits mit p markiert
sind und mindestens einen unmittelbaren Nachfolger besitzen, der bereits mit
E ( p U q ) markiert ist, bis keine weiteren Änderungen möglich sind.
•
EXp : Markiere jeden Zustand mit EXp , der mindestens einen unmittelbaren
Nachfolger besitzt, der bereits mit p markiert ist.
Wurde dieser Algorithmus mit allen Teilformeln und der zu prüfenden Formel selber
durchgeführt, so müssen die Zustände gesucht werden, die mit der zu prüfenden Formel
markiert sind. Für die Menge dieser Zustände ist die eingegebene Formel gültig.
Dieser Algorithmus besitzt die Komplexität O( f ⋅ V ⋅ (V + E )) . Hierbei ist f die Anzahl
der Konnektoren der zu prüfenden Formel, V entspricht der Menge der Zustände des
Modells und E entspricht der Anzahl der Zustandsübergänge. Zur Laufzeitverbesserung können in der zu prüfenden Formel auch mehr als nur die minimal benötigte
Menge an zulässigen Konnektoren erlaubt werden. Das Problem der Zustandsexplosion
bleibt jedoch auch bei diesen Verbesserungen erhalten. Unter diesem Problem wird die
exponentiell mit der Anzahl der Programmvariablen wachsende Menge der Zustände
eines Modells verstanden.
16
Kapitel 3: Temporale Logiken
3.5.5 Anwendung des Markierungsalgorithmus
Gegeben sei ein beliebiges Modell dargestellt als gerichteter Graph. Mit Hilfe des
Markierungsalgorithmus sollen alle Zustände gefunden werden, in denen eine gegebene
Formel F wahr ist. Dazu werden der nachfolgende Graph und die Formel EFp
untersucht. Der Zustand, in dem die Teilformel p wahr ist, ist entsprechend beschriftet.
s0
s1
s2
s3
p
Zur Anwendung des Markierungsalgorithmus wird die Formel EFp so umgeformt, dass
nur Teilformeln enthalten sind, für die der Algorithmus definiert ist.
EFp ≡ E (true U p ) ≡ E (¬false U p )
Als nächstes wird diese Formel in ihre Teilformeln zerlegt. Zusätzlich werden die
Teilformeln der Länge nach sortiert, so dass der Algorithmus der Reihenfolge der Länge
der Teilformeln nach auf jede Teilformel angewandt werden kann. Die Menge der
Teilformeln ergibt:
p, false, ¬false, E (¬false U p )
Im ersten Schritt wird der Algorithmus für die Teilformeln der Länge eins, p und
false , durchlaufen. Es werden alle Zustände mit p markiert, in denen die Teilformel
p gilt, dies ist nur der Zustand s1 . Die boolsche Konstante false ist immer falsch,
daher werden hiermit keine Zustände markiert. Im zweiten Schritt wird der Algorithmus
auf die Teilformel ¬false angewandt. Diese ist überall wahr, daher wird hiermit jeder
Zustand markiert. Im letzten Schritt wird die Formel E (¬false U p ) angewandt. Dazu
werden mit dieser Formel zuerst alle Zustände markiert, in denen p gilt, dies ist
Zustand s1 . Im weiteren werden die Zustände markiert, welche bereits mit ¬false
markiert sind und mindestens einen unmittelbaren Nachfolger besitzen, der mit p
markiert ist. Dies wird solange wiederholt bis keine Änderungen mehr erfolgen. Dabei
wird zuerst Zustand s 0 und dann s 2 markiert. Danach erfolgen keine weiteren
Änderungen. Damit ist die Formel EFp in den Zuständen s 0 , s1 und s 2 gültig.
17
Kapitel 3: Temporale Logiken
3.6 Fixpunktcharakterisierung
Der zuvor dargestellte Algorithmus nutzt die Eigenschaft, dass sich die Operatoren
temporaler Logiken als Fixpunkte monotoner Funktionale berechnen lassen.
Funktionale werden in der Form λy. f geschrieben, wobei f die Formel und y die
Variable bezeichnen. Ein Fixpunkt eines Funktionals f ist gegeben, wenn f ( p ) = p
gilt. Ein Funktional f ist monoton, wenn für alle Teilmengen x , y seiner Definitionsmenge S gilt: Aus x ⊆ y folgt f ( x ) ⊆ f ( y ) . Monotone Funktionale besitzen nach
[Ta55] einen kleinsten sowie einen größten Fixpunkt. Zur Berechnung des kleinsten
Fixpunktes wird als Startwert die leere Menge übergeben. Der größte Fixpunkte wird
berechnet, indem als Startwert die Menge aller Elemente der Definitionsmenge
übergeben wird. Auf diese Startwerte wird die Funktion solange auf sich selber
angewandt, bis keine Änderung des Funktionswertes mehr erfolgt. Zur Berechnung der
Fixpunkte der Operatoren einer temporalen Logik wird die Funktion einmal mit false
und einmal mit true gestartet. Auf das Model Checking übertragen, entspricht dies
einmal der leeren Menge und einmal der Menge der Zustände eines Modells. Diese
Menge ist endlich, da nur Systeme betrachtet werden, die sich in endlichen Modellen
darstellen lassen. Bei einer endlichen Zustandsmenge mit n Zuständen muss ein
monotones Funktional f maximal n -mal auf sich selber angewandt werden, um einen
Fixpunkt zu finden.
Die Fixpunktcharakterisierung der Operatoren von CTL führt zu folgendem Ergebnis,
wobei µy. f den kleinsten und νy. f den größten Fixpunkt bezeichnet.
AGp = νy. p ∧ AX y
EGp = νy. p ∧ EX y
AFp = µy. p ∨ AX y
EFp = µy. p ∨ EX y
A(q U p ) = µy. p ∨ (q ∧ AX y )
E (q U p ) = µy.( p ∨ (q ∧ EX y ))
Diese Darstellung der Operatoren als Fixpunkte wird im obigen Algorithmus für das
Model Checking ausgenutzt. Da hiermit gezeigt ist, dass jede Fixpunktberechnung
höchstens so viele Schritte erfordert, wie das entsprechende Modell Zustände enthält, ist
auch bewiesen, dass der Markierungsalgorithmus terminiert.
18
Kapitel 3: Temporale Logiken
3.7 Theoretische Aspekte temporaler Logiken
In diesem Abschnitt werden theoretische Aspekte der dargestellten temporalen Logiken
untersucht. Hier geht es darum, Aussagen über die Entscheidbarkeit, Ausdrucksstärke
und Komplexität zu treffen und die verschiedenen Logiken daraufhin zu vergleichen.
Die Entscheidbarkeit ist sowohl bei LTL als auch bei CTL gegeben. Die Grundlage
hierfür ist darin begründet, dass beide Logiken auf der Aussagenlogik basieren, die
ebenfalls entscheidbar ist. Weiter wurde durch die Angabe eines Algorithmus zum
Model Checking gezeigt, dass Aussagen in CTL in endlicher Zeit überprüfbar sind. Für
LTL existieren ebenso Algorithmen. Eine Möglichkeit besteht hier, ein System als
Büchi-Automat darzustellen.
Die Komplexität des dargestellten Markierungsalgorithmus liegt in deterministisch
polynomieller Zeit bezüglich der Modellgröße und der Formellänge. Die Komplexität
der bekannten Algorithmen für LTL Formeln ist weitaus größer und befindet sich in der
Klasse PSPACE-vollständig.
Bezüglich der Ausdrucksstärke sind LTL und CTL unvergleichbar. Es entsteht zunächst
der Eindruck, dass CTL gegenüber LTL ausdrucksstärker ist, da hier zusätzlich zu den
temporalen Operatoren Pfadquantoren erlaubt sind, die Bedeutungen für einzelne
Berechnungspfade besitzen. In einem anderen Punkt ist jedoch LTL ausdrucksstärker.
In LTL sind bestimmte Verschachtelungen boolscher Konnektoren mit den temporalen
Operatoren erlaubt, die in CTL nicht gestattet sind. Daher ist weder LTL noch CTL
ausdrucksstärker. Vielmehr ist es möglich, bestimmte Aussagen in beiden Logiken
auszudrücken. Daher bilden die Ausdrucksmöglichkeiten beider Logiken nur eine
Schnittmenge.
LTL
CTL
Die Formel AG EFp ist nur in CTL enthalten, nicht aber in LTL. Die hier angegebenen
Pfadquantoren existieren in LTL nicht, daher sind dort Aussagen über alle oder nur
einige Pfade nicht möglich. Diese Möglichkeit ist nur in CTL gegeben.
19
Kapitel 4: Zusammenfassung
Die Formel GFp → Fq ist nur in LTL enthalten, nicht aber in CTL. Würde diese
Formel in CTL um den Pfadquantor A ergänzt, so hätte die neue Formel nicht die
gleiche Bedeutung. Außerdem können in CTL temporale Operatoren nicht wie in LTL
unmittelbar nacheinander folgen.
Die Formel AG ( p → AFq ) ist sowohl in CTL als auch in LTL enthalten, da diese
Formel aus syntaktischer Sicht um den Operator A gekürzt werden kann, so dass nur
noch G ( p → Fq ) übrig bleibt. Dies sagt in LTL immer noch dasselbe aus, da nur ein
Zeitpfad betrachtet wird. Semantisch bedeutet die Formel, dass (für alle Pfade) immer
gilt: p impliziert, dass (für alle Pfade) irgendwann q gilt. Dies ist auch in CTL (für
alle Pfade) der Fall, da jeder temporaler Operator den Pfadquantor A besitzt. Da in
LTL nur ein Pfad betrachtet wird, entspricht dies der Formel ohne A in LTL.
4 Zusammenfassung
Soft- und Hardwaresystemen lassen sich neben dem Testen auch durch Beweise auf
Korrektheit prüfen. Eine Möglichkeit ist, dies mittels Model Checker durchzuführen.
Dafür wird vorausgesetzt, dass sich ein zu prüfendes System als endliches Modell
darstellen lässt. Model Checker erlauben zudem nur die Prüfung bestimmter Eigenschaften wie z. B. Lebendigkeit oder Deadlockfreiheit. Diese Eigenschaften müssen in
einer formalen Spezifikation dargestellt werden. Dazu werden temporale Logiken
benötigt, die eine Erweiterung der Aussagen- oder auch der Prädikatenlogik sind. Diese
Logiken basieren auf unterschiedlichen Zeitmodellen. Unterschieden werden lineare
und verzweigte Zeitmodelle. Die Logik LTL basiert auf einem linearen Zeitmodell,
CTL dagegen basiert auf einem verzweigten Zeitmodell. Der Algorithmus des CTL
Model Checking erwartet als Eingabe die Spezifikation einer zu prüfenden Eigenschaft
in einer temporalen Logik und ein Modell des zu prüfenden Systems. Dieses Modell
enthält die Zustände, Zustandsübergänge und Auswertungsfunktion. Der vorgestellte
Markierungsalgorithmus berechnet die Menge der Zustände, in denen eine gegebene
Formel in CTL gültig ist. Die Grundlage dieses Algorithmus ist die Fixpunktcharakterisierung. Diese besagt, dass jede monotone Funktion einen kleinsten und einen
größten Fixpunkt besitzt, die sich bei endlicher Anwendung der Funktion auf sich selber
berechnen lassen. Da die Systeme endlich sind, lässt sich dies auf das Model Checking
übertragen. Als Fixpunkte ergeben sich die Operatoren der temporalen Logiken.
20
Literaturverzeichnis
[Bu84]
Burges, John. P.: Basic tense logic. In: Handbook of philosophical logic.
Band II: Extensions of Classical Logic. Hrsg.: D. Gabbay, F. Guenthner.
Dordrecht, Bosten, Lancester 1984, S. 89-133.
[CE81]
Clarke, Edmund M.; Emerson, E. Allen: Design and Synthesis of
Synchronization Skeletons using Branching Time Temporal Logic. In:
Lecture Notes on Computer Science, Hrsg.: Dexter Kozen, Band 131, 1981,
S. 52-71.
[Em90]
Emerson, E. Allen: Temporal and Modal Logic. In: Formal Models and
Semantics. Hrsg.: Jan van Leeuwen, Band B, Amsterdam u.a. 1990,
S. 995-1072.
[HR01]
Huth, Michael; Ryan, Mark: Logic in Computer Science, Cambridge 2001.
[Mc93]
McMillan, Kenneth L.: Symbolic Model Checking, Boston u.a. 1993.
[Sc00]
Schöning, Uwe: Logik für Informatiker, 5.Aufl., Heidelberg, Berlin 2000.
[Ta55]
Tarski, Alfred: A lattice-theoretical fixpoint theorem and its applications.
Pacific Journal of Mathematics, 1955, S. 285-309.
Herunterladen