Universität Paderborn Institut für Informatik Prof. Dr. Hans Kleine Büning 13. April 2004 Musterlösung zur 6. Übung zur Vorlesung Logik für die Informatik Aufgabe 1: ¯ n o ¯ Sei S eine geschlossene Formelmenge und D = :Mϕϕ ¯ ϕ ∈ S . Eine maximale konsistente Teilmenge von S ist eine Teilmenge C ⊆ S, die erfüllbar ist, wobei jedoch alle Mengen B, mit C ⊂ B ⊆ S, nicht erfüllbar sind. Beweisen Sie die folgenden Aussagen. a) Ist E eine Extension von (D, ∅), dann ist E ∩ S eine maximale konsistente Teilmenge von S. b) Ist C eine maximale konsistente Teilmenge von S, dann existiert eine Extension E von (D, ∅), so dass C = E ∩ S. Wir beweisen zuerst b). Sei C ⊆ S eine maximale konsistente Teilmenge von S. Wir betrachten nun die Menge Th (C). Nach Definition von C ist Th (C) konsistent. Wenn ϕ ∈ S \ C ist, dann ist ¬ϕ ∈ Th (C), da nach Definition von C die Menge C ∪ {ϕ} inkonsistent ist. Wendet man nun die induktive Definition der Extension auf Th (C) an, so kann man wegen dieser Eigenschaft kein ϕ ∈ S \ C hinzufügen. Es ergibt sich E0 = W = ∅ E1 = Th (E0 ) ∪ C = C E2 = Th (E1 ) ∪ ∅ = Th (C) Ei = Th (C) (i = 2, 3, ...). Somit ist Th (C) eine Extension von (D, ∅). Außerdem gilt für alle ϕ ∈ S \ C wegen der Konsistenz von Th (C) und ¬ϕ ∈ Th (C), dass ϕ 6∈ Th (C). Es ergibt sich also C = Th (C) ∩ S. Zu a) Nach der Definition der Extension hat eine solche Extension E immer die Form Th (W ∪ T ), wobei T eine Menge von Folgerungen durch D ist. Da hier W = ∅ gilt, erhält man E = Th (T ), für ein T ⊆ S. Da W konsistent ist, muss E ebenfalls konsistent sein. Daher ist E ∩ S eine konsistente Teilmenge von S. Wegen T ⊆ E und T ⊆ S erhält man außerdem T ⊆ E ∩ S. Nehmen wir nun an, dass E ∩S nicht maximal ist, so muss T nicht maximal gewesen sein. Sei nun C ⊃ T eine maximale konsistente Teilmenge von S. Nach dem Beweis zu b) ist E ′ = Th (C) eine Extension der gegebenen Default-Theorie. Da E ′ ∩S = C eine maximale konsistente Teilmenge von S ist, erhält man E 6= E ′ . Wegen T ⊆ C gilt außerdem E = Th (T ) ⊆ Th (C) = E ′ , weshalb E ⊂ E ′ gilt. Wir betrachten nun die ϕ ∈ C \ T . Für diese gilt ϕ ∈ E ′ . Es muss nun mindestens ein ϕ geben, für das ¬ϕ ∈ E gilt, da sonst nach Definition der Extension ϕ durch ein 1 Default ableitbar und somit ϕ ∈ E gelten würde. Dies widerspräche jedoch E ⊂ E ′ . Für dieses ϕ gilt demnach und ¬ϕ ∈ E ⊂ E ′ ϕ ∈ E′. Weshalb E ′ inkonsistent wäre. Dies widerspricht jedoch der Voraussetzung, dass C eine konsistente Menge ist. Somit muss E ∩ S maximal gewesen sein. Mit der oben gezeigten Konsistenz von E ∩ S ergibt sich die Aussage. Aufgabe 2: Über das Monster von Loch Ness sind folgende Informationen bekannt. • Wenn Nessie ein Fabelwesen ist, dann ist sie unsterblich. • Wenn sie kein Fabelwesen ist, dann ist sie sterblich und ein Tier. • Wenn Nessie unsterblich oder ein Tier ist, dann ist sie normalerweise ein Drache und ein Fabelwesen. • Sie ist normalerweise eine Touristenattraktion, wenn sie ein Drache ist. Wir F S T D A verwenden die - Nessie ist - Nessie ist - Nessie ist - Nessie ist - Nessie ist folgenden Variablen. ein Fabelwesen sterblich ein Tier ein Drache eine Touristenattraktion Dies ergibt folgende Default-Theorie (D, W ). ½ ¾ ¬S ∨ T : M (D ∧ F ) D : M (A) D = δ1 = , δ2 = D∧F A W = {F → ¬S, ¬F → S ∧ T } = {¬F ∨ ¬S, F ∨ (S ∧ T )} = {¬F ∨ ¬S, F ∨ S, F ∨ T )} Daraus können die folgenden induzierten Klauseln gewonnen werden. (D, {δ1 }), (F, {δ1 }), (A, {δ2 }), (¬F ∨ ¬S, {}), (F ∨ S, {}), (F ∨ T, {}) Um A zu beweisen wird (¬A, {}) der Klauselmenge hinzugefügt. Man kann dann folgenden linearen Resolutionsbeweis führen. L0 : (¬A, {}) und (A, {δ2 }) ergibt (⊔, {δ2 }) Nun muss ein weiterer linearer Resolutionsbeweis gefunden werden, um die Voraussetzungen von δ2 , also D herzuleiten. Dazu nehmen wir wiederum (¬D, {}) an. L1 : (¬D, {}) und (D, {δ1 }) ergibt (⊔, {δ1 }) Jetzt betrachten wir die Voraussetzungen für δ1 , also ¬S ∨ T . Negiert man diese, so erhält man S ∧ ¬T , wodurch wir die zwei Klauseln (S, {}) und (¬T, {}) erhalten. 2 Diese werden im folgenden linearen Resolutionsbeweis verarbeitet. L2 : (S, {}) und (¬F ∨ ¬S, {}) ergibt (¬F, {}) (¬F, {}) und (F ∨ T, {}) ergibt (T, {}) (T, {}) und (¬T, {}) ergibt (⊔, {}) Hier wurde kein Default benutzt, weshalb der Beweis somit abgeschlossen ist. Der gesuchte Top-Down-Default-Beweis ist {}, {δ1 }, {δ2 }. Aufgabe 3: a) ∀x x ∨ y ≈ y Präfixtyp: Π1 a) ∃x x ≈ 1 Präfixtyp: Σ1 c) ∀x∃y∃z (x ∨ z) ∧ (y ∨ ¬z) ≈ 1 Präfixtyp: Π2 d) ∃x∀y∃z (¬x ∧ z) ∨ (x ∧ y ∧ z) ≈ 1 Präfixtyp: Σ3 e) ∀u∀x∃y∃z (¬u ∨ x ∨ y) ∧ (u ∨ x ∨ ¬z) ≈ 1 Präfixtyp: Π2 Um zu beweisen, dass ∀x∃y (x ∨ y) ∧ (¬x ∨ ¬y) eine Tautologie ist, betrachten wir die Interpretation dieser Formel. ℑ(∀x∃y (x ∨ y) ∧ (¬x ∨ ¬y)) = 1 ⇔ ℑ(∃y (0 ∨ y) ∧ (1 ∨ ¬y)) = ℑ(∃y ′ (1 ∨ y ′ ) ∧ (0 ∨ ¬y ′ )) = 1 ⇔ ℑ(∃y y ∧ 1) = ℑ(∃y ′ 1 ∧ ¬y ′ ) = 1 ⇔ ℑ(∃y y) = ℑ(∃y ′ ¬y ′ ) = 1 ⇔ ℑ(∃y y) = 1 und ℑ(∃y ′ y ′ ) = 0 ⇔ ℑ(y) = 1 und ℑ(y ′ ) = 0 Für y wählen wir also y = ¬x. Aufgabe 4: Für die Variablen, die durch einen Existenzquantor gebundenen sind, müssen boolesche Funktionen gefunden werden, so dass diese genau den „passenden“ Wert annehmen. Diese sind jeweils von den übergeordneten allquantifizierten Variablen abhängig. Es gibt natürlich meist mehrere Möglichkeiten eine solche Funktion zu wählen. a) ∀x∃y (x ∨ y) ∧ (¬x ∨ y) Wähle fy (x) = 1 . Man erhält ∀x (x ∨ 1) ∧ (¬x ∨ 1) b) ∀x∃y (x ∨ ¬y) ∧ (¬x ∨ y) Wähle fy (x) = x . Man erhält ∀x (x ∨ ¬x) ∧ (¬x ∨ x) 3 c) ∀x∃y x ∧ y Die Formel ist immer falsch, egal was man für y auswählt. Wähle fy (x) = ¬x. Man erhält ∀x x ∧ ¬x d) ∀x∀y∃z ¬x ∨ ¬y ∨ z Wähle fz (x, y) = x ∧ y . Man erhält ∀x∀y ¬x ∨ ¬y ∨ (x ∧ y) e) ∀x∀y∃z (x ∧ y ∧ z) ∨ (x ∧ ¬y ∧ ¬z) ∨ (¬x ∧ y ∧ z) ∨ (¬x ∧ ¬y ∧ z) Hier machen wir mal eine genauere Betrachtung, wie z beschaffen sein muss, um die Formel zu erfüllen. Sei α = (x ∧ y ∧ z) ∨ (x ∧ ¬y ∧ ¬z) ∨ (¬x ∧ y ∧ z) ∨ (¬x ∧ ¬y ∧ z) x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 α 0 1 0 1 1 0 0 1 Man kann sehen, dass sich für jede Konfiguration von x und y ein z finden lässt, dass α erfüllt. Uns interessieren nur die Zeilen, für die α = 1 gilt. Wir wählen nun für z eine boolesche Funktion fz (x, y), so dass diese genau die gewünschten Werte annimmt. x 0 0 1 1 y 0 1 0 1 fz (x, y) 1 1 0 1 Man erhält also fz (x, y) = x → y. f) ∀u∃v∀x∃y ((u ∨ ¬x) ∧ y) ∨ ((v ∨ ¬y) ∧ x) Wir betrachten welche Werte in Abhängigkeit von u und x für v und y gewählt werden müssen, um die Matrix der Formel zu erfüllen. u=0 und x = 0: v = 0 und y = 1 oder v = 1 und y = 1 u=0 und x = 1: v = 1 und y = 0 oder v = 1 und y = 1 oder v = 0 und y = 0 u=1 und x = 0: v = 0 und y = 1 oder v = 1 und y = 1 4 u=1 und x = 1: v = 0 und y = 0 oder v = 0 und y = 1 oder v = 1 und y = 0 oder v = 1 und y = 1 Eine Möglichkeit die entsprechenden Funktionen zu bilden wäre also folgendermaßen. Die gewählten Konfigurationen wurden fett dargestellt. u 0 1 u 0 0 1 1 fv (u) 1 1 x 0 1 0 1 fy (u, x) 1 0 1 0 Aufgabe 5: Wir betrachten die folgende quantifizierte boolesche Formel. ∀x1 ∃y1 ∀x2 ∃y2 ∀x3 (x1 ∨ y1 ∨ ¬y2 ) ∧ (¬y1 ∨ x2 ∨ x3 ) ∧ (y2 ∨ x3 ) Die Frage ist nun, wie Resolution bei quantifizierten booleschen Formeln ablaufen könnte. Bei ∀ quantifizierten Variablen muss beachtet werden, dass unter Umständen die Wahl darauf folgender ∃-Variablen von diesen abhängt. Es ist also nicht unbedingt eine so gute Idee diese zu eliminieren. Bei ∃ Variablen sieht das dagegen anders aus. Diese können resolviert werden. Um nun unsere Formel zu betrachten, wählen wir erstmal zwei Klauseln aus, etwa und (x1 ∨ y1 ∨ ¬y2 ) (¬y1 ∨ x2 ∨ x3 ). In diesem Beispiel ist die Variable x3 ein Spezialfall, da ihr ∀−Quantor ganz rechts steht. Es sind also keine weiteren Variablen von x3 abhängig und x3 ist jeweils durch ein ∨ angehängt. Ist das Literal, das x3 enthält wahr, so erfüllt dies die gesamte Klausel. Wegen des ∀−Quantors müssen jedoch alle Belegungen von x3 betrachtet werden. Sind die entsprechenden Literale also falsch, so muss noch der Rest der Formel verifiziert werden. Man kann also x3 aus den betrachteten Klauseln streichen, da eh jeweils der Rest der Klausel noch verifiziert werden muss. Wir wenden nun also die Resolution, wie wir sie uns ausgedacht haben an, und erhalten aus (x1 ∨ y1 ∨ ¬y2 ) und (¬y1 ∨ x2 ∨ x3 ). als Zwischenschritt x1 ∨ ¬y2 ∨ x2 ∨ x3 und als Ergebnis die Klausel x1 ∨ ¬y2 ∨ x2 . Nun betrachten wir die Klauseln und (x1 ∨ ¬y2 ∨ x2 ) (y2 ∨ x3 ). Diese lassen sich zu x1 ∨ x2 resolvieren. Man erhält also ∀x1 ∀x2 x1 ∨ x2 ≈ ⊔. 5 Aufgabe 6: Für unsere 4-wertige Logik müssen wir uns zuerst auf die Definition der Werte einigen. Eine Möglichkeit wäre z.B. w - wahr ew - eher wahr wf - eher falsch f - falsch Nun können wir die Operationen ¬, ∧ und ∨ z.B. folgendermaßen definieren. a w ew ef f ¬a f ef ew w a w w w w ew ew ew ef ef f b w ew ef f ew ef f ef f f a∧b w ew ef f ew ef f ef f f 6 a w w w w ew ew ew ef ef f b w ew ef f ew ef f ef f f a∨b w w w w ew ew ew ef ef f