¨Ubungen zur Vorlesung Logik für Informatiker WS 2015/16

Werbung
Übungen zur Vorlesung Logik für Informatiker
Gabriele Kern-Isberner
Martin Schuster Nils Vortmeier
WS 2015/16
Übungsblatt 6
30.11.2015
Abgabe bis zum 7.12.2015 um 10:10 Uhr
• (vor der Vorlesung) im HG II, HS 3, oder
• in den Briefkästen mit den Nummern 26-31 im Durchgangsflur,
der die 1. Etage der OH 12 mit dem Erdgeschoss der OH 14
verbindet.
Es gelten die Bedingungen von Blatt 1 und 2.
Quizfragen:
Welche der folgenden Aussagen sind richtig, welche sind falsch? Und warum?
keine Punkte
1. Für eine unerfüllbare modallogische Formel muss es mindestens ein geschlossenes saturiertes
Tableau geben. Es kann für dieselbe Formel aber auch offene saturierte Tableaus geben.
2. Für eine Kripkestruktur K mit endlich vielen Welten und eine Welt s in K ist die Abwicklung
TK,s immer endlich.
3. Seien K = (V, E, P ) und K′ = (V ′ , E ′ , P ′ ) Kripkestrukturen und s ∈ V und s′ ∈ V ′ Welten in
K bzw. K′ . Wenn P (s) = P ′ (s′ ), dann gilt auch (K, s) ∼ (K′ , s′ ).
Übungsblatt 6
Übungen zur Logik
Seite 2
Aufgabe 6.1 [Model Checking]
3 Punkte
Model Checking ist ein Teilbereich der Informatik, der sich mit der algorithmischen Systemverifikation beschäftigt; es soll also für ein gegebenes Computerprogramm automatisch überprüft werden,
ob jede Ausführung des Programms eine gegebene Eigenschaft erfüllt.
Zu diesem Zweck modelliert man das gegebene Programm durch eine Kripkestruktur, in der jede
Welt einen möglichen Programmzustand darstellt und eine Kante von Welt s nach Welt t führt,
wenn es möglich ist, dass in einer Ausführung des Programms Zustand t auf Zustand s folgt. Ein
Zustand kann dabei auch mehrere Nachfolgezustände haben, zum Beispiel weil Benutzereingaben
oder Systemvariablen abgefragt werden.
In der Praxis werden diese Kripkestrukturen meist aus dem Programmcode automatisch generiert
und können sehr komplex werden; die aussagenlogischen Variablen, die in einer Welt gelten können,
entsprechen dort möglichen Werten (oder Wertebereichen) von Programmvariablen. Wir betrachten
hier eine stark vereinfachte Variante, in der in einem Programmzustand die folgenden Variablen
gelten können:
• K: im aktuellen Zustand wird auf einen kritischen Speicherbereich zugegriffen
• E: im aktuellen Zustand wird eine Nutzereingabe abgefragt
• A: im aktuellen Zustand wird eine Bildschirmausgabe erzeugt
• F : im aktuellen Zustand ist ein kritischer Fehler aufgetreten
Geben Sie für die folgenden Eigenschaften jeweils eine modallogische Formel an, die diese beschreibt.
Die angegebene Formel soll also genau dann in einer Welt s gelten, wenn der durch s modellierte
Zustand die Eigenschaft hat. Denken Sie daran, Ihre Antworten zu begründen.
a) In einem Fehlerzustand (also einem Zustand, in dem ein kritischer Fehler aufgetreten ist) wird
niemals auf einen kritischen Speicherbereich zugegriffen; außerdem können nur Fehlerzustände
auf einen Fehlerzustand folgen.
(1 Punkt)
b) Wenn in einem Zustand eine Nutzereingabe abgefragt wird und nicht unmittelbar danach
mit Sicherheit eine Bildschirmausgabe erfolgt, dann kann entweder in einem Nachfolgezustand auf einen kritischen Speicherbereich zugegriffen werden und unmittelbar darauf folgt
mit Sicherheit eine Bildschirmausgabe, oder jeder Nachfolgezustand ist ein Fehlerzustand.
(2 Punkte)
Bemerkung: In der Praxis werden zu überprüfende Eigenschaften üblicherweise in ausdrucksstärkeren Logiken als der Modallogik modelliert, beispielsweise in Temporallogiken wie LTL (vgl.
Zusatzaufgabe Blatt 5).
Übungsblatt 6
Seite 3
Übungen zur Logik
Aufgabe 6.2 [Bisimulationen]
Betrachten Sie die folgenden drei Kripkestrukturen:
K:
2
A, B
K′ :
7 Punkte
3′
A, B
K′′ :
4′
B
4
A
3
B
2′
A
1′
6′′
B
7′
A
5′
B
6′
A, B
1
4′′
A, B
7′′
A
1′′
2′′
A
3′′
B
5′′
A, B
a) Geben Sie die ersten drei Ebenen der Abwicklung TK,1 von K an. Die Wurzel zählt dabei als
erste Ebene.
(1 Punkt)
b) Untersuchen Sie die obigen Kripkestrukturen auf die folgenden Bisimilaritäten. Berechnen
Sie dabei mit dem Bisimulationsalgorithmus die maximale Bisimulation um zu zeigen, dass
zwei Welten bisimilar sind. Um zu zeigen, dass zwei Welten nicht bisimilar sind, können
Sie ebenfalls diesen Algorithmus verwenden. Alternativ können Sie auch eine modallogische
Formel angeben, die in genau einer der beiden Welten gilt. Begründen Sie dann ausführlich,
warum dies gilt.
(i) Gilt (K, 1) ∼ (K′ , 1′ )?
[2 Punkte]
(ii) Gilt (K, 1) ∼ (K′′ , 1′′ )?
[3 Punkte]
(iii) Können Sie folgern, ob (K′ , 1′ ) ∼ (K′′ , 1′′ ) gilt?
[1 Punkt]
Zusatzaufgabe [Bisimulation und Äquivalenz von Kripke-Strukturen]
2 Punkte
Satz 7.9 besagt, dass für endliche Kripkestrukturen K1 und K2 sowie Welten s1 , s2 gilt:
Wenn (K1 , s1 ) ≡ (K2 , s2 ) dann (K1 , s1 ) ∼ (K2 , s2 )
Zeigen Sie: Dies gilt nicht für unendliche Strukturen. Beschreiben Sie dazu unendliche Kripkestrukturen K1 und K2 mit Welten s1 und s2 , so dass für jede modallogische Formel ϕ gilt
(K1 , s1 ) |= ϕ gdw. (K2 , s2 ) |= ϕ, aber (K1 , s1 ) und (K2 , s2 ) nicht bisimilar sind. Begründen Sie,
warum dies ein Gegenbeispiel ist.
Herunterladen