Ü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.