grundlagen des expliziten model checkings · ii dawid kopetzki [email protected]...

37
Seminararbeit Grundlagen des expliziten Model Checkings Dawid Kopetzki 26. Juni 2012 Gutachter: Prof. Dr. Jan J¨ urjens Dipl.-Inform. Daniel Warzecha Prof. Dr. Jan J¨ urjens Lehrstuhl 14 Software Engineering Fakult¨ at Informatik Technische Universit¨ at Dortmund Otto-Hahn-Straße 14 44227 Dortmund http://www-jj.cs.uni-dortmund.de/secse

Upload: trinhhanh

Post on 20-Aug-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Seminararbeit

Grundlagen des expliziten ModelCheckings

Dawid Kopetzki26. Juni 2012

Gutachter: Prof. Dr. Jan JurjensDipl.-Inform. Daniel Warzecha

Prof. Dr. Jan Jurjens Lehrstuhl 14 Software EngineeringFakultat InformatikTechnische Universitat DortmundOtto-Hahn-Straße 1444227 Dortmundhttp://www-jj.cs.uni-dortmund.de/secse

ii

Dawid [email protected]: 124196Studiengang: Master Informatik

Ausgewahlte Themen des Modellbasierten Sicherheits-EngineeringsThema: Grundlagen des expliziten Model Checkings

Eingereicht: 26. Juni 2012

Betreuer: Daniel Warzecha

Prof. Dr. Jan Jurjens Lehrstuhl 14 Software EngineeringFakultat InformatikTechnische Universitat DortmundOtto-Hahn-Straße 1444227 Dortmund

iii

iv

v

Ehrenwortliche Erklarung

Ich erklare hiermit ehrenwortlich, dass ich die vorliegende Arbeit selbststandig ange-fertigt habe; die aus fremden Quellen direkt oder indirekt ubernommenen Gedankensind als solche kenntlich gemacht.

Die Arbeit wurde bisher keiner anderen Prufungsbehorde vorgelegt und auch nochnicht veroffentlicht.

Dortmund, den 26. Juni 2012

Dawid Kopetzki

vi

vii INHALTSVERZEICHNIS

Inhaltsverzeichnis

Abbildungsverzeichnis ix

1 Einleitung 11.1 Explosion der Ariane 5 . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Einordnung in bestehende Testmethoden . . . . . . . . . . . . . . . . 11.3 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Systemmodellierung 32.1 Kripke-Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Beschriftetes Transitionssystem . . . . . . . . . . . . . . . . . . . . . 42.3 Kripke Transitionssystem . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Temporale Logiken 73.1 Linear Temporal Logic LTL . . . . . . . . . . . . . . . . . . . . . . . 73.2 Computational Tree Logic CTL . . . . . . . . . . . . . . . . . . . . . 103.3 Computational Tree Logic CTL* . . . . . . . . . . . . . . . . . . . . 12

4 Model Checking Verfahren 154.1 Model Checking fur CTL Formeln . . . . . . . . . . . . . . . . . . . . 154.2 LTL Model Checking mit Buchi Automaten . . . . . . . . . . . . . . 21

5 Fazit 25

Literaturverzeichnis 27

INHALTSVERZEICHNIS viii

ix ABBILDUNGSVERZEICHNIS

Abbildungsverzeichnis

2.1 Abstrakte Darstellung einer Kuhlschranksteuerung durch eine Kripke-Struktur. Dieses Beispiel ist durch das Mikrowellen-Beispiel aus [3]inspiriert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Beschriftete Transitionssysteme eines Getrankeautomaten [6] . . . . . 52.3 Kuhlschranksteuerung, erweitert durch Aktionen, dargestellt als Krip-

ke Transitionssystem . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1 Veranschaulichung der Semantik der temporalen Operatoren [6] . . . 83.2 Links: Kripke-Struktur. Rechts: Baumabwicklung der Kripke-Struktur [3] 103.3 Semantik der Operatoren EG, AF, EF, AG und EU verdeutlicht an

einer Baumabwicklung [3] . . . . . . . . . . . . . . . . . . . . . . . . 12

4.1 CheckEU Algorithmus [3] . . . . . . . . . . . . . . . . . . . . . . . . 164.2 CheckEG Algorithmus [3] . . . . . . . . . . . . . . . . . . . . . . . . 184.3 Induzierte Subgraph durch Zustande die

”Cooling“ erfullen . . . . . . 19

4.4 Induzierte Subgraph durch Zustande die”Cooling“ erfullen . . . . . . 19

ABBILDUNGSVERZEICHNIS x

1

1 Einleitung

Heutzutage wird das alltagliche Leben stark von elektronischen Systemen begleitet.Diese Systeme finden sich in fast allen Lebenssituationen wieder. Von der Bedienungeines Kaffeevollautomaten bis hin zu der Finanz-Verwaltung durch beispielsweiseOnline Banking. Durch die vielen und teilweise auch sicherheitskritischen Einsatz-gebiete muss gewahrleistet werden, dass diese Systeme fehlerfrei arbeiten. Fehler,die in sicherheitskritischen Systemen geschehen, tragen haufig einen Sachschadennach sich und konnen manchmal sogar zu lebensbedrohlichen Situationen fuhren.Einer der bekanntesten Softwarefehler, der durch Model Checking verhindert werdenkonnte, wird in Abschnitt 1.1 vorgestellt. In Abschnitt 1.2 wird das Model Checkingmit anderen Methoden zum Testen von Systemen verglichen. Anschließend wird derAufbau dieser Seminararbeit beschrieben.

1.1 Explosion der Ariane 5

Die Ariane 5 war eine Rakete, die sich kurz nach dem Abheben zerstort hat. DieRakete war unbemannt, die Explosion hat jedoch einen sehr hohen finanziellen Scha-den nach sich gezogen. Wie in [7] beschrieben, trat ein Fehler nach dem Abheben derRakete auf, der dazu fuhrte, dass diese explodierte. Bei dem Fehler handelte es sichum eine Ausnahme, die bei der Konvertierung einer 64 Bit Gleitkommazahl zu einer16 Bit Ganzzahl auftrat. Weiter wird in [7] beschrieben, dass das fehlerhafte Systemnur fur den Zeitraum vor dem Liftoff, also dem Abheben der Rakete vom Boden,relevant ist. Die Explosion hatte moglicherweise verhindert werden konnen, indemdie Ausnahme korrekt behandelt ware, oder sichergestellt ware, dass das fehlerhafteSystem nach dem Liftoff deaktiviert ist.Es gibt verschiedene Verfahren, mit denen Systeme auf bestimmte Eigenschaftengepruft werden konnen. Dazu gehort auch Model Checking, dessen Grundlagen indieser Ausarbeitung beschrieben werden. Doch zunachst werden weitere Testverfah-ren vorgestellt, um das Model Checking vor diesem Hintergrund besser einordnenzu konnen.

1.2 Einordnung in bestehende Testmethoden

Weitere Verfahren neben dem Model Checking sind Simulation, Testen und deduk-tives Schließen. Wie in [3] beschrieben, werden bei der Simulation und dem TestenExperimente durchgefuhrt. Die Simulation fuhrt die Experimente auf einem abstrak-ten Modell des realen Systems durch, wohingegen das Testen auf dem realen Systemdurchgefuhrt wird. Ein Beispiel waren Crashtests fur Automobile. Dabei werden zu-

KAPITEL 1. EINLEITUNG 2

nachst Simulationen durch Programme durchgefuhrt, bevor das Auto gebaut unddurch eine ungebremste Kollision mit einer Mauer getestet wird. Eine Gemeinsam-keit beider Verfahren ist das Experimentieren. Dazu werden Eingaben generiert unddas System bzw. das Modell des Systems damit gestartet. Als Ergebnis erhalt manBeobachtungen mit denen weitergearbeitet wird. Probleme bei diesen Methodensind, dass hohe Kosten entstehen und es außerdem, auf Grund der Komplexitat derSysteme, nicht praktikabel ist alle moglichen Eingaben zu testen bzw. simulieren.Die deduktive Verifikation wird dazu benutzt, um bestimmte Eigenschaften einesSystems zu beweisen. Im Gegensatz zur Simulation und zum Testen werden hiernicht Beobachtungen gemacht, sondern die Antwort auf die Frage, ob eine Eigen-schaft in dem System erfullt ist, gefunden. Diese Beweise konnen haufig nur durchExperten durchgefuhrt werden und nehmen viel Zeit in Anspruch. Es gibt Werkzeu-ge, die bei der Herleitung der Beweise helfen konnen. Das Verfahren ist jedoch nichtvollstandig automatisierbar. Grenzen fur automatische Beweissysteme sind durchbeispielsweise die nicht-Entscheidbarkeit des Halteproblems gegeben. Fur die Soft-wareentwicklung bedeutet dies, dass es kein automatisches Verfahren gibt, das furbeliebige Algorithmen mit beliebigen Eingaben pruft, ob der Algorithmus terminiert.Beim Model Checking werden logische Aussagen uber das System aufgestellt, derenGultigkeit durch Algorithmen bestimmt werden kann. Im Gegensatz zum Simulie-ren und Testen wird, wie beim deduktiven Schließen, zielgerichtet vorgegangen. DerVorteil dem deduktiven Schließen gegenuber ist, dass die Verifikation vollstandigautomatisierbar ist.

1.3 Aufbau der Arbeit

Der weitere Teil der Ausarbeitung ist folgendermaßen aufgebaut. Im folgenden Kapi-tel werden Moglichkeiten zur Abstraktion des zugrunde liegenden Systems beschrie-ben. Danach folgt in Kapitel 3 die Definition der Logiken, mit denen Aussagen uberein System ausgedruckt werden. In Kapitel 4 werden Verfahren beschrieben, mit de-nen die Gultigkeit der Aussagen validiert werden. Im letzten Kapitel wird ein Fazitverfasst.

3

2 Systemmodellierung

Oft sind die betrachteten Systeme komplex und nicht alle Details sind relevant. Des-wegen wurden abstrakte Modelle entwickelt, die die relevanten Teile eines Systemsbeschreiben.In diesem Kapitel werden die drei Modell-Typen vorgestellt, die in [6] beschriebenwerden. Alle Modell-Typen nehmen an, dass das Verhalten des gegebenen Systemsdiskret dargestellt werden kann. Sie haben als Grundlage einen gerichteten GraphenG = (V,A) mit einer Knotenmenge V und einer Kantenmenge A ⊆ V × V . DieZustande eines Systems werden durch Knoten modelliert, die moglichen Ubergangedurch gerichtete Kanten.Zunachst wird die Kripke-Struktur definiert. Danach folgt die Definition eines be-schrifteten Transitionssystems und zum Schluss wird die Mischung aus den beidenModell-Typen, das Kripke Transitionssystem, beschrieben.

2.1 Kripke-Struktur

Eine Kripke-Struktur ist ein gerichteter Graph mit Knotenbeschriftungen. Formalwird sie in [6] folgendermaßen definiert.

Definition 1. Eine Kripke-Struktur (KS) ist ein Tripel K = (S,R, I) uber einerMenge von atomaren Aussagen AP . Dabei ist S eine endliche Menge von Zustanden,R ⊆ S × S eine totale Transitionsrelation und I : S → 2AP eine Interpretation. DieTransitionsrelation R ist total, wenn gilt: ∀s ∈ S∃t ∈ S : R(s, t).

Die Zustandsmenge und Transitionsrelation entsprechen den Knoten und Kanteneines Graphen. Die Kripke-Struktur besitzt keinen terminalen Zustand, da die Tran-sitionsrelation R total ist. Die Interpretation I ist eine Beschriftungsfunktion. Sieordnet den Zustanden atomare Aussagen (Eigenschaften) zu, die in diesen gelten.In der Literatur wird, wie beispielsweise in [1], zusatzlich eine Menge S0 ⊆ S voninitialen Zustanden definiert. Diese wird im weiteren Verlauf nur mit aufgefuhrt,wenn sie benotigt wird.In der Menge der atomaren Aussagen sind true und false immer enthalten. Es giltalso {true, false} ⊆ AP . Außerdem wird angenommen, dass fur jeden Zustand s ∈ Sder Kripke-Struktur true ∈ I(s) und false /∈ I(s) gilt.Ein Beispiel fur eine Kripke-Struktur uber AP = {Cooling,DoorOpen,Warm} mit

• Cooling ≡ Kuhlen

• DoorOpen ≡ Tur offnen

KAPITEL 2. SYSTEMMODELLIERUNG 4

• Warm ≡ Temperatur im Kuhlschrank zu hoch

ist in Abbildung 2.1 gegeben. Die Zustandsmenge S ist gegeben durch {S1, S2, S3, S4, S5, S6, S7, S8}.Dabei ist S1 der Startzustand. Fur den Zustand S1 gilt I(S1) = {¬Cooling,¬DoorOpen,¬Warm}.

Abbildung 2.1: Abstrakte Darstellung einer Kuhlschranksteuerung durch eine Kripke-Struktur. Dieses Beispiel ist durch das Mikrowellen-Beispiel aus [3] in-spiriert

Wird eine Kripke-Struktur zur Modellierung verwendet, liegt der Fokus der Model-lierung auf den Zustanden des Systems. Sollen jedoch die Transitionen im Fokus derModellierung stehen, wird ein beschriftetes Transitionssystem als Modell-Typ ge-wahlt. Das ist beispielsweise der Fall, falls die Kommunikation zwischen Prozessenmodelliert werden soll [1].

2.2 Beschriftetes Transitionssystem

Das beschriftete Transitionssystem (engl.: Labeled Trasition System (LTS)) bietetdie Moglichkeit ein System durch Aktionen zu modellieren [6] .

Definition 2. Ein LTS ist ein Tripel T = (S,Act,→). S ist die Menge der Zustan-de, Act eine Menge von Aktionen und →⊆ S × Act× S eine totale Transistionsre-lation.

Fur zwei Zustande s, s′ ∈ S und eine Aktion a ∈ Act bedeutet (s, a, s′) ∈→, dasses von dem Zustand s zu dem Zustand s′ eine Transition gibt, die uber die Aktion

5 2.3. KRIPKE TRANSITIONSSYSTEM

a ausgelost wird. Abkurzend fur (s, a, s′) ∈→ wird auch sa→ s′ geschrieben. Der

Zustand s′ wird a-Nachfolger von s genannt.Das Transitionssystem lasst sich wieder durch einen gerichteten Graphen darstellen.Die Zustandsmenge des Transitionssystems entspricht der Knotenmenge des Gra-phen. Die Aktionen Act und die Transitionsrelation

”→“ implizieren die Kanten des

Graphen. Dabei ist jede Kante mit der zugehorigen Aktion beschriftet. Abbildung 2.2zeigt zwei kleine Beispiele aus [6]. Es ist zu beachten, dass die Transitionsrelationin diesen Beispielen nicht total ist. Dies kann behoben werden, indem eine neue Ak-tion τ hinzufugt wird, die interne Ablaufe reprasentiert [1]. Von den Endzustandender beschrifteten Transitionssysteme kann eine Kante zu den initialen Zustandeneingefugt werden, die mit τ beschriftet wird.

tee

coin

coffee

coin

tee coffee

coin

Abbildung 2.2: Beschriftete Transitionssysteme eines Getrankeautomaten [6]

Die Kripke-Struktur und das beschriftete Transitionssystem bieten zwei Moglichkei-ten ein System zu modellieren. Eine weiterer Modell-Typ ist die Kombination derKripke-Struktur und dem beschrifteten Transitionssystem.

2.3 Kripke Transitionssystem

Aus Sicht der Modellierung ist es vom Vorteil, Kanten- und Knoten-Beschriftungeneinsetzten zu konnen. Diese Moglichkeit bietet das Kripke Transitionssystem. Eskann beispielsweise fur die Entwicklung von Datenfluss-Algorithmen eingesetzt wer-den, da ein Kripke Transitionssystem der Reprasentation eines Datenfluss-Algorithmusahnelt [8]. Ein Kripke Transitionssystem ist folgendermaßen definiert [6].

Definition 3. Ein Kripke Transitionssystem (KTS) ist ein 4-Tupel KT = (S,Act,→, I) uber einer Menge von atomaren Aussagen AP . S ist eine endliche Menge vonZustanden, Act eine endliche Menge von Aktionen, →⊆ S × Act × S eine totaleTransistionsrelation und I : S → 2AP eine Interpretation.

Die Bedeutung der Mengen andert sich im Vergleich zu Definition 1 und Definition 2nicht. Aus technischen Grunden sollten die Mengen AP und Act bei der Modellie-rung so gewahlt werden, dass sie disjunkt sind.Ein KTS mit Act = ∅ impliziert eine Kripke-Struktur. Ein KTS mit der trivialenInterpretation I, die jedem Zustand den Wert true zuweist, impliziert ein beschrif-tetes Transitionssystem.Ist ein KTS T = (S,Act,→, S0, I) uber AP gegeben, lasst sich eine Kripke-SturkturKT = (S ×Act,R, S0, I ′) uber AP ∪Act konstruieren, indem die Informationen der

KAPITEL 2. SYSTEMMODELLIERUNG 6

Transitionen in den Knoten kodiert werden. Die Transitionsrelation und die Inter-pretation werden folgendermaßen definiert:

• R = { (〈s, a〉, 〈s′, a′〉) | s a′→ s′ }

• I ′(〈s, a〉) = I(s) ∪ {a}

Das in Abbildung 2.3 dargestellte Kripke Transistionssystem ist eine Erweiterungder Kripke-Struktur aus Abbildung 2.1.

Abbildung 2.3: Kuhlschranksteuerung, erweitert durch Aktionen, dargestellt als KripkeTransitionssystem

Mit diesen Modellen kann das gegebene System modellieren werden. Als nachsteswird eine Moglichkeit benotigt, bestimmte Eigenschaften des Modells auszudrucken.Dazu werden im nachsten Kapitel temporale Logiken vorgestellt.

7

3 Temporale Logiken

Mit Hilfe temporaler Logiken werden Aussagen uber ein Modell aufgestellt, derenGultigkeit mit Hilfe des Model Checking uberpruft werden. Sie werden hier als Er-weiterungen der propositionellen Logik beschrieben. Es wird zwischen linear-timeund branching-time Logik unterschieden. Linear-Time Logiken kommen zum Ein-satz, wenn Aussagen uber einen Pfad des Modells getroffen werden. Im Gegensatzdazu werden branching-time Logiken benutzt, wenn etwas uber die Pfade, die voneinem Zustand ausgehen, ausgesagt wird. In Abbildung 2.2 kann mit einer branching-time Logik uberpruft werden, ob es immer moglich ist, einen Kaffee zu bekommen,nachdem eine Munze eingeworfen wurde. Obwohl die Berechnungspfade beider Mo-delle mit {〈coin, coffee〉, 〈coin, tee〉} identisch sind, trifft diese Aussage nicht auf daslinke Modell zu. In diesem Modell wird nach Einwurf der Munze intern entschieden,welches Getrank ausgegeben wird.Bevor Aussagen uber alle ausgehenden Pfade eines Zustands aufgestellt werden kon-nen, wird zunachst gezeigt, wie Aussagen uber einen einzelnen Pfad spezifiziert wer-den.

3.1 Linear Temporal Logic LTL

Durch LTL ist es moglich Eigenschaften eines Berechnungspfades intuitiv auszu-drucken. Die Formulierung ist dabei mathematisch prazise. Es konnen auch Aus-sagen uber Berechnungspfade in reaktiven Systemen spezifiziert werden, wodurchBerechnungspfade unendlicher Lange nicht ausgeschlossen sind [1]. Um die Aus-sagen interpretieren zu konnen, wird zunachst die formale Definition eines Pfadesaus [6] beschrieben.

Definition 4. Ein endlicher Pfad einer Kripke-Struktur K = (S,R, I) ist eine nichtleere Sequenz π = 〈π0, . . . , πn−1〉 mit π0, . . . , πn−1 ∈ S und (πi, πi+1) ∈ R fur alle0 ≤ i ≤ n− 1. Die Lange |π| des Pfades π ist n.Ein unendlicher Pfad π = 〈π0, π1, π2, . . . 〉 ist eine unendliche Sequenz von Zustan-den, so dass (πi, πi+1) ∈ R fur alle i ≥ 0 gilt. Die Lange eines unendlichen Pfadesist ∞. Mit πi wird der i-te Zustand des Pfades π beschrieben. Weiter beschreibt πi

den Suffix 〈πi, πi+1, . . . 〉 des Pfades π, der im Zustand πi beginnt.

Eine LTL Formel kann mit Hilfe der temporalen Operatoren X (neXt), F (Future),G (Global) und U (Until) rekursiv definiert werden. Sei p eine Variable uber derMenge der atomaren Aussagen AP . Dann ist eine LTL Formel φ definiert durch [6]:

φ := p | ¬φ | φ1 ∨ φ2 | X(φ) | F (φ) | G(φ) | U(φ1, φ2)

KAPITEL 3. TEMPORALE LOGIKEN 8

U(φ1, φ2) wird hier als (φ1Uφ2) geschrieben. Formeln, die nach dieser Grammatikerzeugt werden, werden auch Pfadformeln genannt. Die Semantik der Pfadformelnwird in [6] folgendermaßen definiert.

Definition 5. Sei K = (S,R, I) eine Kripke-Struktur uber den atomaren AussagenAP , p eine Variable uber AP , π = 〈π0, π1, . . . 〉 ein unendlicher Pfad in der Kripke-Struktur K und seien g1, g2 Pfadformeln, dann gilt:

K, π |= p ⇔ p ∈ I(s),mit s = π0

K, π |= g1 ⇔ K, s |= g1,mit s = π0

K, π |= ¬g1 ⇔ K, π 2 g1K, π |= g1 ∨ g2 ⇔ K, π |= g1 oder K, π |= g2

K, π |= X g1 ⇔ K, π1 |= g1

K, π |= F g1 ⇔ ∃i, i ≥ 0 : K, πi |= g1

K, π |= G g1 ⇔ ∀i, i ≥ 0 : K, πi |= g1

K, π |= g1 U g2 ⇔ ∃j, j ≥ 0 : K, πj |= g2 und

∀i, 0 ≤ i < j : K, πi |= g1

Da die Negation”¬“ in Verbindung mit der Disjunktion

”∨“ funktional vollstandig

sind, konnen daraus die allgemein bekannten boolschen Operatoren wie Konjunktion

”∧“, Implikation

”→“ und Aquivalenz

”↔“ hergeleitet werden. In Abbildung 3.1 ist

die Bedeutung der temporalen Operatoren veranschaulicht. Umgangssprachlich kann

Abbildung 3.1: Veranschaulichung der Semantik der temporalen Operatoren [6]

die Bedeutung der Operatoren folgendermaßen beschreiben werden:

• X f : Die Formel f muss im nachsten Zustand erfullt sein.

• F f : Die Formel f muss in einem Zustand auf dem Pfad erfullt sein.

• G f : Die Formel f muss in allen Zustanden des Pfades erfullt sein.

• f U g: Es muss einen Zustand auf dem Pfad geben, der g erfullt. Bis zu diesemZustand mussen alle vorherigen Zustande des Pfades die Formel f erfullen

Beispiel 1. Am Beispiel der Kripke-Struktur aus Abbildung 2.1 sagt die Formel

G(Warm→ (Warm U Cooling))

9 3.1. LINEAR TEMPORAL LOGIC LTL

aus, dass falls es in einem Zustand auf einem Pfad im Kuhlschrank zu warm wird,es so lange warm bleibt bis irgendwann die Kuhlung eingeschaltet wird.

Es ist moglich die Anzahl der temporalen Operatoren einzuschranken. Sei f einePfadformel, dann gilt:

• G f = ¬F(¬f)

• F f = (true U f)

Diese Regeln implizieren, dass nur die beiden temporalen Operatoren X und U be-notigt werden, um die volle Ausdrucksstarke von LTL zu erreichen.Eine Methode, die Gultigkeit von LTL Formeln zu prufen, benutzt endliche Auto-maten. Da die meisten Systeme heutzutage reaktiv sind, werden dazu Automatenbenotigt, die mit Eingaben arbeiten konnen, die unendliche Lange haben. GeeigneteAutomaten sind Buchi-Automaten. Sie unterscheiden sich nur gering von endlichenAutomaten uber endliche Eingaben.Sei ein endlicher Automat A = (Σ, Q,∆, Q0, F ) uber endliche Eingaben gegeben.Ein Buchi-Automat B = (Σ′, Q′,∆′, Q′0, F ′) unterscheidet sich in seinem Berech-nungspfad und Akzeptanzverhalten von A. Die Unterschiede werden im folgendendargestellt.Sei w ∈ Σ∗ eine Eingabe fur A der Lange |w|. Ein Lauf des Automaten A uber dasWort w ist eine Abbildung ρ : {0, 1, . . . , |w|} 7→ Q. Fur eine Berechnung ρ gilt:

• ρ(0) ∈ Q0

• Der Zustandsubergang von ρ(i) nach ρ(i+1) beim Lesen des i-ten Zeichens derEingabe w ist konsistent mit der Zustandsuberfuhrungsfunktion ∆. Es mussalso gelten: (ρ(i), w(i), ρ(i+ 1)) ∈ ∆ fur alle 0 ≤ i < |w|.

Falls ρ(|w|) ∈ F gilt, so akzeptiert der Automat A die Eingabe w, andernfalls lehnter ab. Die Sprache eines Automaten L(A) ist die Menge der Eingaben, die derAutomat akzeptiert.Fur einen Buchi-Automaten B gilt:

• Die Eingaben sind Elemente aus Σω, wobei ω ein Zeichen dafur ist, dass dieEingaben unendliche Lange besitzen

• F wird als Menge von akzeptierenden Zustanden bezeichnet

• Ein Lauf ρ eines Buchi-Automaten bei Eingabe w ∈ Σω wird durch einen Pfadunendlicher Lange dargestellt

Sei inf(ρ) die Menge der Zustande, die unendlich oft in der Berechnung durchlaufenwerden, dann akzeptiert B die Eingabe w ∈ Σω, falls inf(ρ) ∩ F 6= ∅ gilt. Das heißt,dass der Buchi-Automat bei der Berechnung unendlich oft einen akzeptierendenZustand durchlauft.

KAPITEL 3. TEMPORALE LOGIKEN 10

3.2 Computational Tree Logic CTL

In Abschnitt 3.1 wurde eine Logik vorgestellt, mit der Eigenschaften eines Pfadesbeschrieben werden. Durch CTL werden Aussagen uber Berechnungsbaume formu-liert. Die Baumabwicklung einer Kripke-Struktur stellt deren Berechnungsbaum dar.Die Baumabwicklung ist ein Baum, dessen Wurzel der Initialzustand der Kripke-Struktur ist. Der Baum hat unendliche Tiefe und wird entsprechend den Transi-tionen der Kripke-Struktur aufgebaut. Ein Beispiel fur eine Baumabwicklung ist inAbbildung 3.2 gegeben.

Abbildung 3.2: Links: Kripke-Struktur. Rechts: Baumabwicklung der Kripke-Struktur [3]

Um Aussagen uber den Berechnungsbaum zu formulieren, werden die Quantoren Aund E zu den schon bekannten temporalen Operatoren hinzugefugt. Diese werdenbenotigt, um Aussagen uber die Verzweigungen in dem Berechnungsbaum zu for-mulieren. Eine wichtige Eigenschaft von CTL Formeln ist, dass jedes Vorkommeneines temporalen Operators direkt davor quantifiziert sein muss. Daraus ergibt sichfolgende Definition einer CTL Formel φ [1]

φ := true | p | ¬φ | φ1 ∧ φ2 | Eϕ | Aϕ

mit

ϕ := Xφ | φ1Uφ2

Hierbei sind φ, φ1 und φ2 Zustandsformeln und ϕ Pfadformel. Um mit der bisherigenNotation konsistent zu bleiben, wurde die Notation aus [1] entsprechend angepasst.Sei f eine Pfadformel, dann ist die Bedeutung der Quantoren in einem Zustand sgegeben durch:

• A f : Fur alle von s ausgehenden Pfade gilt f

11 3.2. COMPUTATIONAL TREE LOGIC CTL

• E f : Es existiert ein von s ausgehender Pfad fur den f gilt.

Da CTL Formeln Aussagen uber Zustande machen, werden diese auch Zustands-formeln genannt. Die Semantik der Zustandsformeln ist durch folgende Definitiongegeben.

Definition 6. Sei K = (S,R, I) Kripke-Struktur, s ∈ S ein Zustand, π = 〈π0, π1, . . . 〉ein Pfad mit πi ∈ S fur i ≥ 0, g Pfadformel, f1, f2 Zustandsformeln und p eine Va-riable uber AP , dann ist die Semantik einer CTL Formel definiert durch:

K, s |= p ⇔ p ∈ I(s)

K, s |= ¬f ⇔K, s 2 fK, s |= f1 ∧ f2⇔ K, sf1 und K, s |= f2

K, s |= A g ⇔ K, π |= g fur alle Pfade π mit π0 = s

K, s |= E g ⇔ K, π |= g fur einen Pfad π mit π0 = s

Die Semantik von Pfadformeln ist durch Definition 5 gegeben.

Seien f, g Zustandsformeln, dann gelten folgende Umformungsregeln [3]:

• AX f = ¬EX(¬f)

• EF f = E(true U f)

• AG f = ¬EF(¬f)

• AF f = ¬EG(¬f)

• A(f U g) = ¬E(¬g U (¬f ∧ ¬g)) ∧ ¬EG¬g

Mit diesen Regeln lassen sich die folgenden CTL Operatoren herleiten:

• AX und EX

• AU und EU

• AF und EF

• AG und EG

Mit diesen Operatoren lassen sich auf naturliche Weise Aussagen aufstellen.

Beispiel 2. Die CTL Formel

AG((Warm ∧ Cooling)→ EF(¬Warm ∧ ¬Cooling))

bezogen auf das Beispiel aus Abbildung 2.1 besagt, dass fur alle Pfade gilt: Falls eszu warm ist und die Kuhlung eingeschaltet ist, wird es irgendwann wieder kalt genugund die Kuhlung schaltet sich aus.

Die Semantik einiger CTL Operatoren ist in Abbildung 3.3 dargestellt.

KAPITEL 3. TEMPORALE LOGIKEN 12

fEG f

f

f

AF f

f

f f

EF f

f

fAG f

f

f f

f

f f

f

E(fUg)

f

g

Abbildung 3.3: Semantik der Operatoren EG, AF, EF, AG und EU verdeutlicht aneiner Baumabwicklung [3]

3.3 Computational Tree Logic CTL*

Es kann gezeigt werden, dass die Logiken LTL und CTL nicht die gleiche Aus-drucksstarke haben. Die LTL Formel FG(p) kann nicht durch eine CTL Formelausgedruckt werden. Andererseits kann die CTL Formel AG(EF p) nicht in LTLausgedruckt werden [3]. Beide Logiken sind jedoch Teilmenge der Logik CTL*. Daaus den Abschnitten 3.1 und 3.2 Pfadformeln und Zustandsformeln bekannt sind,kann die Syntax von CTL* folgendermaßen definiert werden [3].

Definition 7. Sei AP die Menge der atomaren Aussagen.

• Falls p ∈ AP , dann ist p eine Zustandsformel

• Sind f, g Zustandsformeln, dann sind ¬f, f∧g und f∨g auch Zustandsformeln

• Ist f eine Pfadformel, dann sind Af und Ef Zustandsformeln

• Wenn f eine Zustandsformel ist, dann ist f auch eine Pfadformel.

• Falls f, g Pfadformeln sind, dann sind ¬f, f∧g, f∨g,Xf,Ff,Gf, (fUg) auchPfadformeln

CTL* ist die Menge der Zustandsformeln, die sich aus den obigen Regeln herleitenlasst.

In der Definition von CTL* wird die Menge der Pfadformeln erweitert, indem alleZustandsformeln als Pfadformeln definiert werden. Die so entstehenden Formelnsind nicht mehr Pfadformeln im Sinne der LTL Definition. Die Semantik von CTL*Formeln ergibt sich aus den Definitionen 5, 6 und der folgenden Definition:

13 3.3. COMPUTATIONAL TREE LOGIC CTL*

Definition 8. Sei K = (S,R, I) Kripke-Struktur, s ∈ S ein Zustand, π = 〈π0, π1, . . . 〉ein Pfad mit πi ∈ S fur i ≥ 0 und f Zustandsformel dann gilt:

K, π |= f⇔ M, s |= f und s ist der erste Zustand auf dem Pfad π

Damit wird definiert, wann eine Zustandsformel durch einen Pfad erfullt wird. DieseDefinition wird auf Grund der Erweiterung der Pfadformeln durch Zustandsformelnbenotigt.Ein Beispiel fur eine CTL* Formel ist A(FGp)∨AG(EFp). Diese Formel lasst sichweder in LTL noch in CTL ausdrucken [3]. Trotz der hoheren Ausdrucksstarke vonCTL* gegenuber LTL und CTL, ist die Komplexitat des Model Checking Problemsfur CTL* im Grunde wie die Komplexitat fur LTL [2, 4].

Mit LTL, CTL und CTL* sind drei Logiken gegeben, mit denen Aussagen uberein Modell aufgestellt werden konnen. Der nachste Schritt besteht darin, ModelChecking Verfahren anzugeben, mit denen, die in den Logiken formulierten Aussa-gen, auf einem Modell validiert werden konnen.

KAPITEL 3. TEMPORALE LOGIKEN 14

15

4 Model Checking Verfahren

Beim Model Checking wird zwischen lokalem und globalem Model Checking unter-scheiden. Beim globalen Model Checking ist eine Formel f gegeben und es wird dieMenge aller Zustande gesucht, die diese Formel erfullen. Es wird also die Menge{s | K, s |= f} gesucht. Beim lokalen Model Checking ist eine Zustand s ∈ S undeine Formel f gegeben. Es soll bestimmt werden, ob K, s |= f gilt. Naturlich lasstsich das lokale Problem durch das globale losen und das globale Problem durch daslokale. Dennoch werden lokales und globales Model Checking in unterschiedlichenBereichen eingesetzt. Das lokale Verfahren wird gewahlt, wenn das state-explosionProblem auftritt. Dabei handelt es sich beispielsweise um das exponentielle Wachs-tum eines Modells fur ein Programm in der Anzahl der Variablen.In diesem Kapitel werden Model Checking Methoden vorgestellt, mit denen Aus-sagen in Form von LTL, CTL und CTL* Formeln validiert werden. In Kapitel 2wurden drei mogliche Modelle betrachtet, mit denen ein gegebenes System model-liert werden kann. Um die Verfahren zu beschreiben, wird angenommen, dass alsModell eine Kripke Struktur K = (S,R, I) mit zugehoriger graphischer Reprasenta-tion zugrunde liegt.

4.1 Model Checking fur CTL Formeln

In diesem Abschnitt wird beschrieben, wie das globale Model Checking Problem furCTL Formeln gelost werden kann. Die Methode basiert auf einem algorithmischenAnsatz, der auf der graphischen Reprasentation der Kripke Struktur arbeitet. Seieine CTL Formel f gegeben. Der Algorithmus markiert jeden Zustand s ∈ S miteiner Menge label(s) von Teilformeln von f , die im Zustand s erfullt sind. Initial giltlabel(s) = I(s). Sei l die Verschachtelungstiefe der CTL Operatoren in der Formelf . Der Algorithmus verarbeitet in der i-ten Iteration, 1 ≤ i ≤ l, Formeln der Tiefei− 1. Nach der letzten Iteration des Algorithmus gilt:

K, s |= f , falls f ∈ label(s)

Es muss noch geklart werden, wie der Algorithmus erkennt, dass eine Teilformel vonf in einem Zustand gultig ist. Wie in Abschnitt 3.2 gezeigt, werden fur die volleAusdrucksstarke von CTL Formeln nur die Operatoren EX, EU und EG benotigt.Da

”¬“ und

”∨“ in der Aussagenlogik funktional vollstandig sind, mussen somit

nur die Operatoren ¬,∨,EX,EU und EG betrachtet werden. Zunachst werden dietrivialen Falle fur eine Iteration des Algorithmus betrachtet.

KAPITEL 4. MODEL CHECKING VERFAHREN 16

Seien f1, f2 CTL Formeln, dann gilt fur einen Zustand s ∈ S:

• label(s) := label(s) ∪ {¬f1}, falls f1 /∈ label(s)

• label(s) := label(s) ∪ {f1 ∨ f2}, falls f1 ∈ label(s) oder f2 ∈ label(s)

• label(s) := label(s) ∪ {f1 ∧ f2}, falls f1 ∈ label(s) und f2 ∈ label(s)

• label(s) := label(s) ∪ {Xf1}, falls ∃s′ ∈ S : (s, s′) ∈ R und f1 ∈ label(s′)

Um Formeln der Form E(f1Uf2) und EGf1 zu verarbeiten bedarf es einem hoherenAufwand.Sei g = E(f1Uf2). Zunachst werden alle Zustande gesucht, die f2 erfullen. Diese er-fullen auch die Formel g. Als nachstes werden alle eingehende Pfade dieser Zustandebetrachtet. Sei sj ein Zustand der g erfullt. Weiter sei π = 〈· · · , sj−2, sj−1, sj〉 eineingehender Pfad von sj. Die Beschriftung der Zustande si fur i < j wird induktivaktualisiert. Falls si+1 die Formel g erfullt und si die Teilformel f1 erfullt, so erfulltsi auch die Formel g. Die Beschriftung von si, label(si), wird um g erweitert. DerEU Algorithmus ist in Abbildung 4.1 dargestellt.

T := {s | f2 ∈ label(s)}for all s ∈ T do

label(s) := label(s) ∪ {E(f1Uf2)}end forwhile T 6= ∅ do

choose s ∈ TT := T \ {s}for all t : (t, s) ∈ R do

if E(f1Uf2) /∈ label(t) and f1 ∈ label(t) thenlabel(t) := label(t) ∪ {E(f1Uf2)}T := T ∪ {t}

end ifend for

end while

Abbildung 4.1: CheckEU Algorithmus [3]

Zur Verdeutlichung des Ablaufes des EU Algorithmus wird ein kleines Beispiel ge-geben.

Beispiel 3. Am Beispiel der Kripke-Struktur in Abbildung 2.1 auf Seite 4 soll be-rechnet werden, in welchen Zustanden die Aussage

f := E(WarmUCooling)

erfullt ist. Im ersten Schritt werden die Beschriftungen der Zustande um f erweitert,die Cooling erfullen. Diese Zustande werden einer Menge T hinzugefugt. Es ergibtsich somit

T := {S5, S6, S7, S8}Es gilt beispielsweise fur die Zustande S5 und S8:

17 4.1. MODEL CHECKING FUR CTL FORMELN

• I(S5) = {Cooling, WarmE(WarmUCooling)}

• I(S8) = {Cooling, DoorOpen, Warm,E(WarmUCooling)}

Im nachsten Schritt wird ein Zustand aus der Menge T gewahlt und aus dieserentfernt. Sei hier der gewahlte Zustand S8. Es wird

T := T \ {S8}

gesetzt. Nun wird uber die Vorganger von S8 iteriert. Dies sind die Zustande S5

und S3. Da f ∈ I(S5) gilt, wird keine weitere Berechnung durchgefuhrt. Nun wirdder Zustand S3 betrachtet. Es gilt f /∈ I(S3), aber der Zustand erfullt die Formel

”Warm“, da

”Warm“ ∈ I(S3) gilt. Die Beschriftung von S3 wird um die Formel f

erweitert wodurch

I(S3) = {DoorOpen, Warm, E(Warm U Cooling)}

resultiert. S3 wird in die Menge T aufgenommen

T := {S5, S6, S7} ∪ {S3}

Da T noch Elemente enthalt, wird wieder ein Zustand aus T ausgewahlt. Sei diesS3. Es folgt

T := T \ {S3}

Es wird uber die Vorganger von S3, welche S2 und S4 sind, iteriert. S4 ist nichtmit der Formel f markiert, erfullt jedoch

”Warm“. Die Beschriftung von S4 wird

aktualisiert und S4 in T aufgenommen. S2 ist nicht mit der Formel f markiert,erfullt jedoch

”Warm“ nicht. Somit wird die Beschriftung von S2 nicht erweitert.

Das Verfahren wird so lange Iteriert, bis T = ∅ gilt. Die Menge der Zustande, dieE(Warm U Cooling) erfullt, ist {S3, S4, S5, S6, S7, S8}.

Als nachstes wird der Algorithmus zur Berechnung der Formel g := EGf vorgestellt.Der Algorithmus benutzt zur Berechnung der Menge {s | K, s |= g} die Dekompositi-on eines Graphen in eine nicht-triviale stark zusammenhangende Komponente. Einenicht-triviale stark zusammenhangende Komponente wird in [3] wie folgt definiert.

Definition 9. Sei G = (V,A) ein gerichteter Graph. Eine nicht-triviale stark zusam-menhangende Komponente (SZK) von G ist der maximale Subgraph G′ = (V ′, A′)von G, so dass gelten:

• ∀u, v ∈ V ′ : ∃π = 〈u, x1, . . . , xn, v〉 mit xi ∈ V ′ fur alle 1 ≤ i ≤ n und(xi, xi+1) ∈ A′ fur 1 ≤ i ≤ n− 1

• |V ′| > 1 oder

• |V ′| = 1 und (v, v) ∈ A′, mit v ∈ V ′

KAPITEL 4. MODEL CHECKING VERFAHREN 18

Es muss also jeder Knoten in G′ von jedem anderen Knoten aus G′ durch einengerichteten Pfad erreichbar sein. Dieser Pfad darf nur aus Knoten aus G′ bestehen.Weiter muss die triviale SZK mehr als einen Knoten, oder genau einen Knoten miteiner Schleife enthalten.Mit Hilfe der Definition kann nun der Algorithmus vorgestellt werden. Zuerst wirdaus der graphischen Darstellung der Kripke Struktur K = (S,R, I) uber AP eineKripke Struktur K′ = (S ′, R′, I ′) generiert, mit

• S ′ := {s | f1 ∈ label(s)}

• R′ := {(s, t) | s, t ∈ S ′ und (s, t) ∈ R}

• I : S ′ → AP

Es gilt K, s |= EGf1 wenn zwei Bedingungen erfullt sind:

• s ∈ S ′

• Es existiert ein Pfad von s zu einem Knoten t in der zu K′ zugehorigen nicht-trivialen SZK.

Der Algorithmus zur Berechnung von EGf1 ist in Abbildung 4.2 dargestellt.

S ′ := {s | f1 ∈ label(s)}SCC := {C | C ist eine nicht-triviale SZK von S ′}T :=

⋃C∈SCC{s | s ∈ C}

for all s ∈ T dolabel(s) := label(s) ∪ {EG(f1)}

end forwhile T 6= ∅ do

chooses ∈ TT := T \ {s}for all t : t ∈ S ′ and (t, s) ∈ R do

if EG(f1) /∈ label(t) thenlabel(t) := label(t) ∪ {EG(f1)}T := T ∪ {t}

end ifend for

end while

Abbildung 4.2: CheckEG Algorithmus [3]

Beispiel 4. Als Beispiel fur den EG Algorithmus wird die Formel f = EG(Cooling)und die Kripke-Struktur aus Abbildung 2.1 auf Seite 4 betrachtet.Zunachst wird die Menge der Zustande bestimmt, die

”Cooling“ erfullen.

S ′ := {S5, S6, S7, S8}

19 4.1. MODEL CHECKING FUR CTL FORMELN

Abbildung 4.3: Induzierte Subgraph durch Zustande die”Cooling“ erfullen

Abbildung 4.4: Induzierte Subgraph durch Zustande die”Cooling“ erfullen

Um die Menge der SZK zu berechnen, wird hier zunachst der durch S ′ induzier-te Teilgraph betrachtet (Abbildung 4.3). In diesem Graphen lassen sich zwei SZKerkennen (Abbildung 4.4). Es gilt

SCC := {{S6, S7}, {S5, S8}}

Die Menge T ergibt sich aus der Vereinigung aller Zustande, die in einer SZK ent-halten sind. Es gilt

T := {S5, S6, S7, S8}Alle Beschriftungen der Zustande, die in T enthalten sind, werden um EG(Warm)erweitert. Im nachsten Schritt wird ein Zustand aus T gewahlt und dieser aus T ent-fernt. Sei dies der Zustand S5. Es wird uber alle Vorganger von S5 iteriert, die dieFormel

”Cooling“ erfullen. Das sind die Vorganger, die in S ′ enthalten sind. Fur S5

ist das der Zustand S8. Dieser ist schon mit EG(Warm) markiert, also wird keineweitere Berechnung durchgefuhrt. S5 hat keine Vorganger in S ′ mehr und ist somitabgearbeitet. Als nachstes wird S6 ∈ T ausgewahlt. Die Vorganger von S6, die in S ′

enthalten sind, sind die Zustande S7 und S5. S7 ist schon mit EG(Warm) markiert.Das gleiche gilt fur S5. Der Algorithmus arbeitet die Zustande {S7, S8} ∈ T nachein-ander ab. Es stellt sich heraus, dass EG(Warm) in den Zustanden {S5, S6, S7, S8}erfullt ist.

KAPITEL 4. MODEL CHECKING VERFAHREN 20

Der Algorithmus fur eine CTL Formel f wendet nun sukzessive die Beschriftungsal-gorithmen auf die kleinste noch nicht bearbeitete Teilformel von f an. In der erstenIteration sind das die atomaren Aussagen. Durch diese Arbeitsweise ist sicherge-stellt, dass jede Teilformel der aktuell betrachteten Teilformel schon abgearbeitetwurde. Das Beispiel zu der Arbeitsweise des Algorithmus orientiert sich stark andem Beispiel aus [3].

Beispiel 5. Die Arbeitsweise des Algorithmus wird an der Formel

f = AG(Warm→ AF(Cooling))

verdeutlicht. Zunachst muss die Formel so umgewandelt werden, dass sie aus denOperatoren EX, EU und EG besteht. Dazu werden die in Abschnitt 3.2 vorgestelltenRegeln verwendet:

f = AG(Warm→ AF(Cooling))

= AG(¬Warm ∨AF(Cooling))

= ¬EF [¬(¬Warm ∨AF(Cooling))]

= ¬EF(Warm ∧ ¬AF(Cooling))

= ¬EF(Warm ∧EG(¬Cooling))

EF(φ) wird hier als abkurzende Schreibweise fur E(trueUφ) verwendet. Der Algo-rithmus bestimmt zunachst die Zustande, die die atomaren Aussagen erfullen. Indiesem Fall mussen also die Aussagen

”Warm“ und

”Cooling“ betrachtet werden. Sei

ϕ eine CTL Formel, dann wird im Folgenden mit S(ϕ) die Menge von Zustandenbezeichnet, die ϕ erfullen. Fur das Beispiel gilt somit

• S(Warm) = {S3, S4, S5, S8}

• S(Cooling) = {S5, S6, S7, S8} und somit S(¬Cooling) = {S1, S2, S3, S4}

Als nachstes wird die Formel EG(¬Cooling) verarbeitet. Der EG Algorithmus bildetwahren der Berechnung folgende Mengen:

• S ′ := S(¬Cooling) = {S1, S2, S3, S4}

• SCC := {{S1, S2}, {S3, S4}}

• T := S ′

Es resultiert, dass

S(EG(¬Cooling)) = {S1, S2, S3, S4}

gilt. Im nachsten Schritt wird die Formel (Warm ∧ EG(¬Cooling)) verarbeitet. Daes sich um eine Konjunktion der beiden Teilformeln handelt, wird der Schnitt derMengen S(Warm) und S(EG(¬Cooling)) gebildet. Daraus ergibt sich

S(Warm ∧EG(¬Cooling)) = {S3, S4}

21 4.2. LTL MODEL CHECKING MIT BUCHI AUTOMATEN

Nun muss berechnet werden, in welchen Zustanden EF(Warm ∧ EG(¬Cooling))gilt. Das geschieht mit Hilfe des EU Algorithmus. Die Zustande, die (Warm ∧EG(¬Cooling)) erfullen sind, wie schon berechnet, S3 und S4. Die weiteren Ite-rationsschritte des Algorithmus ergeben, dass alle Zustande die Formel erfullen. Esgilt also

S(EF(Warm ∧EG(¬Cooling))) = {S1, S2, S3, S4, S5, S6, S7, S8}

Durch die Negation gilt schließlich

S(f) = ∅

Da der initiale Zustand S1 nicht in S(f) enthalten ist, folgt, dass diese Eigenschaftin dem Modell nicht erfullt ist.

Die Laufzeit des Algorithmus wird von CheckEU und CheckEG dominiert. Sie be-notigen O(|S| + |R|). Da jede Teilformel von f betrachtet wird, kommt der Faktor|f | hinzu was in einer Laufzeit von O(|f | · (|S|+ |R|)) resultiert.

4.2 LTL Model Checking mit Buchi Automaten

In diesem Abschnitt wird eine Model Checking Methode zur Validierung von LTLFormeln vorgestellt. Ein Vorteil das Model Checking Problem mit Hilfe von Auto-maten zu losen, ist, dass sowohl das Modell als auch die spezifizierten Eigenschaf-ten durch Automaten beschrieben werden konnen. Somit konnen schon bekann-te Resultate der Automatentheorie, die in Lehrveranstaltungen wie beispielsweise

”Grundbegriffe der theoretischen Informatik“ vermittelt werden, zum Losen des Mo-

del Checking Problems verwendet werden. Die Idee besteht darin, fur das Modellund die Spezifikation der Eigenschaften Automaten zu erzeugen. Mit Hilfe der Au-tomaten wird validiert, ob die Eigenschaft in dem Modell gultig ist. Mit diesemVerfahren wird die Gultigkeit einer Formel fur die Pfade, die von dem initialen Zu-stand des Modells ausgehen, gepruft. Somit gehort dieses Verfahren zu den lokalenModel Checking Methoden.Sind die Automaten fur das Verhalten des Modells (A) und der Beschreibung der Ei-genschaften (S) gegeben, dann sind die von A und S induzierten Sprachen L(A) undL(S) die Mengen der zulassigen Systemlaufe bzw. die Menge der durch S reprasen-tierten erlaubten Verhaltensweisen. Daraus kann gefolgert werden, dass ein Systemden aufgestellten Eigenschaften genugt, wenn L(A) ⊆ L(S) gilt. Diese Bedingungkann umformuliert werden zu L(A) ∩ L(S) = ∅. L(S) bezeichnet das Komplementder Sprache L(S). Durch das Komplement werden somit alle unerlaubten Verhal-tensweisen beschrieben. Ist die Menge der moglichen Systemlaufe und die Mengeunerlaubter Verhaltensweisen disjunkt, dann verhalt sich das Modell entsprechendden geforderten Eigenschaften.Um das Model Checking Problem zu losen, mussen zunachst die Automaten fur dasModell und das Komplement der LTL Formel erstellt werden. Anschließend wirdein Automat D konstruiert, der den Schnitt der beiden Sprachen akzeptiert. Ist dieMenge der akzeptierten Worter von D leer, so ist die Formel in dem Modell erfullt.

KAPITEL 4. MODEL CHECKING VERFAHREN 22

Gegeben sei eine Kripke Struktur K = (S,R, S0, L) uber AP , dann ist der zugehorigeAutomat A = (Σ, S ∪ {τ},∆, {τ}, S ∪ {τ}) mit:

• Eingabealphabet Σ = 2AP

• (s, α, s′) ∈ ∆, wenn s, s′ ∈ S, (s, s′) ∈ R und α ∈ I(s′)

• (τ, α, s) ∈ ∆, wenn s ∈ S0 und α ∈ I(s)

Die Beschreibung der Transformation einer LTL Formel in einen Buchi Automatenwurde den Rahmen dieser Ausarbeitung sprengen. Der Algorithmus ist in [3, 5] er-klart.Sei B1 = (Σ, Q1,∆1, Q

01, F1) der Buchi Automat der Kripke Struktur und B2 =

(Σ, Q2,∆2, Q02, F2) der komplementare Buchi Automat fur eine LTL Formel. Die Zu-

stande des resultierenden Automaten mussen um eine Komponente erweitert werden.Hier handelt es sich um eine Zahl aus der Menge {0, 1, 2}. Die Notwendigkeit dieserKomponente wird nach der Beschreibung der Konstruktion des Automaten erlautert.Der Automat D, der L(B1) ∩ L(B2) akzeptiert, wird folgendermaßen konstruiert.

D = (Σ, Q1 ×Q2 × {0, 1, 2},∆, Q1 ×Q2 × {0}, Q1 ×Q2 × {2})

mit (〈ri, qj, x〉, a, 〈rm, qn, y〉) ∈ ∆ genau dann wenn die folgenden Bedingungen erfulltsind:

• (ri, a, rm) ∈ ∆1 und (qj, a, qn) ∈ ∆2

• Falls x = 0 und rm ∈ F1, dann y = 1

• Falls x = 1 und qn ∈ F2, dann y = 2

• Falls x = 2, dann y = 0

• sonst y = x

Die Konstruktion ahnelt der Konstruktion eines Produktautomaten. Da es sich aberum Buchi Automaten handelt, muss das Akzeptanzverhalten genauer betrachtenwerden. Es muss sichergestellt werden, dass D nur dann akzeptiert, wenn ein akzep-tierender Zustand von B1 sowie von B2 in einer Berechnung unendlich oft vorkommt.Deswegen wurde in den Zustanden von D die dritte Komponente eingefuhrt. Sie wirdmit 0 initialisiert. Sie wird von 0 auf 1 geandert, falls ein akzeptierender Zustandvon B1 durchlaufen wird und von 1 auf 2, falls ein akzeptierender Zustand von B2durchlaufen wird. Im nachsten Schritt wird sie wieder auf 0 zuruckgesetzt.Einfacher wird die Konstruktion, wenn einer der beiden Ausgangsautomaten nur ausakzeptierenden Zustanden besteht. Das trifft in diesem Fall auf den Automaten desModells (B1) zu. Es entsteht dann der Automat

D = (Σ, Q1 ×Q2,∆′, Q0

1 ×Q02, Q1 × F2)

mit (〈ri, qj〉, a, 〈rm, qn〉) ∈ ∆′, wenn (ri, a, rm) ∈ ∆1 und (qj, a, qn) ∈ ∆2.Ist der Schnittautomat D konstruiert, muss getestet werden, ob die durch diesenAutomaten akzeptierte Sprache leer ist. Das ist der Fall, falls es keinen unendlichlangen akzeptierenden Berechnungspfad ρ gibt. In [3] wird der folgende Beweisangegeben.

23 4.2. LTL MODEL CHECKING MIT BUCHI AUTOMATEN

Beweis. Angenommen der Berechnungspfad ρ existiert, ist akzeptierend und hateine unendliche Lange. Da der Automat D nur endlich viele Zustande hat, folgt,dass ρ einen Suffix ρ′ besitzt, auf dem jeder Zustand unendlich oft vorkommt. Somitliegen alle Zustande, die in ρ′ vorkommen, auf einer SZK C. Da ρ akzeptierend ist,muss es einen akzeptierenden Zustand in C geben. Dieser akzeptierende Zustandmuss wegen den Eigenschaften einer SZK auf einem Kreis liegen.

Somit kann entschieden werden, ob L(D) = ∅ gilt, indem ein Kreis in D gesuchtwird, der von dem Initialzustand erreichbar ist und auf dem ein akzeptierender Zu-stand liegt. Dieses Problem lasst sich beispielsweise mit Tarjan’s Tiefensuche [9] inO(|Q|+ |∆′|) losen.

Zum Schluss dieses Kapitels soll noch kurz eine Idee vorgestellt werden, wie CTL*Formeln validiert werden konnen. Die Idee basiert auf der Verknupfung der Algo-rithmen fur CTL- und LTL-Formeln. Der LTL Model Checking Algorithmus lasstsich so erweitern, dass er Formeln der Form Ef validieren kann. Dabei ist f eine ein-geschrankte Pfadformel, sodass alle Teilformeln von f , die eine Zustandsformel sind,die Form von atomaren Aussagen haben. Der CTL* Algorithmus arbeitet die Formelnach Lange der Teilformeln ab, angefangen bei der kleinsten. Ist die Teilformel eineCTL Formel, so wird das in Abschnitt 4.1 Verfahren fur CTL Formeln eingesetzt.Ist die Teilformel eine LTL Formel, so wird das erweiterte LTL Model Checking Ver-fahren eingesetzt. Die Laufzeit fur diesen Algorithmus wird durch die Laufzeit desLTL Verfahrens dominiert, wodurch sich die ahnliche Laufzeitkomplexitat ergibt.

KAPITEL 4. MODEL CHECKING VERFAHREN 24

25

5 Fazit

In der Ausarbeitung wurde gezeigt, warum Model Checking eine sinnvoll Methodeist sicherheitskritische Systeme zu verifizieren. Im Gegensatz zur Simulation undzum Testen, wird dabei gezielter vorgegangen. Wichtige Eigenschaften, die das Sys-tem erfullen muss, konnen aufgestellt und validiert werden. Hierbei bietet sich derVorteil, dass Model Checking Verfahren automatisierbar sind und die Algorithmennicht zu hohe Laufzeiten haben. Die Anwendung beschrankt sich auch nicht auf einbestimmtes Gebiet. Model Checking kann beispielsweise zur Verifikation von Hard-ware oder Software dienen.Es wurden drei Modell-Typen vorgestellt, mit denen ein System, reduziert auf seinewichtigsten Komponenten, darstellen werden kann. Als Grundlage fur die Ausfuh-rung von Model Checking Verfahren wird die Kripke-Struktur bevorzugt. Das KripkeTransitionssystem erfreut sich auch einer immer weiter steigenden Aufmerksamkeit.Sie wird beispielsweise in Bereichen der Datenfluss-Analyse eingesetzt.Die drei Logiken LTL, CTL und CTL* wurden beschrieben. Trotz der unterschied-lichen Ausdrucksstarke der Logiken, haben die Algorithmen zur Validierung einerCTL* Formeln ahnliche Laufzeitkomplexitat wie die Algorithmen zur Validierungeiner LTL Formel.Es gibt viele Model Checking Verfahren fur die verschiedenen Logiken, die aber indieser Ausarbeitung nicht alle vorgestellt werden konnen. Fur LTL und CTL wurdejeweils ein Model Checking Verfahren beschrieben.Es sollte zusatzlich erwahnen werden, dass das Model Checking nur solange gut ist,solange die Systeme nicht zu komplex werden. Das fuhrt dazu, dass die Modelle rie-sig werden (state-explosion) und ein globales Model Checking Verfahren nicht mehrangewendet werden kann. Hier hat das Testen einen Vorteil, da das System in seinemspateren Auslieferungszustand vorliegt.Das Model Checking erfreut sich trotzdem einer hohen Aufmerksamkeit und wirdweiter Verbessert und in immer mehr Gebieten eingesetzt.

KAPITEL 5. FAZIT 26

27 LITERATURVERZEICHNIS

Literaturverzeichnis

[1] Baier, Christel und Joost-Pieter Katoen: Principles of Model Checking(Representation and Mind Series). The MIT Press, 2008.

[2] Clarke, E. M., E. A. Emerson und A. P. Sistla: Automatic verificati-on of finite-state concurrent systems using temporal logic specifications. ACMTransactions on Programming Languages and Systems, 8:244–263, 1986.

[3] Edmund M. Clarke, Jr., Orna Grumberg und Doron A. Peled: ModelChecking. The MIT Press, 2001.

[4] Emerson, E. Allen und Chin-Laung Lei: Modalities for model checking:branching time logic strikes back. Sci. Comput. Program., 8(3):275–306, Juni1987.

[5] Gerth, R., D. Peled, M. Y. Vardi und P. Wolper: Simple On-the-flyAutomatic Verification of Linear Temporal Logic, 1995.

[6] Muller-Olm, Markus, David A. Schmidt und Bernhard Steffen:Model-Checking: A Tutorial Introduction. In: Proceedings of the 6th Interna-tional Symposium on Static Analysis, SAS ’99, Seiten 330–354, London, UK,UK, 1999. Springer-Verlag.

[7] Prof. J. L. Lions, Chairman Inquiry Board: ARIANE 5 - Flight 501Failure. CTAN: http://esamultimedia.esa.int/docs/esa-x-1819eng.pdf,Juli 1996.

[8] Steffen, Bernhard: Data Flow Analysis as Model Checking. In: TACS, Seiten346–365, 1991.

[9] Tarjan, Robert Endre: Depth-First Search and Linear Graph Algorithms.SIAM J. Comput., 1(2):146–160, 1972.