1. Blatt Aufgabe 1.1. Welche der folgenden Formeln ist (mit bzw. ohne Vereinfachungsregeln) syntaktisch korrekt? (a) ¬(X 1 ∨ X 2 ) (b) (¬X 1 ) ∨ (X 1 ∧ X 0 ) (c) X 1 ∨ X 2 ∨ X 3 ∨ ¬(X 1 ∧ X 2 ∧ X 3 ) (d) ¬(¬X 1 ∨ X 2 ) ∨ (X 1 → X 2 ) (e) ¬(0 ∨ X 2 ) ∨ (1 → X 2 ) Aufgabe 1.2. Betrachten Sie die folgenden aussagenlogischen Formeln: (a) ((X 1 → X 2 ) ↔ (X 2 → X 1 )) (b) (¬X 1 → ¬X 2 ) (c) (¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 )) (d) (((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1) (e) ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 ))) Geben Sie zu jeder Formel jeweils eine Variablenbelegung an, für die der Wahrheitswert der Formel 1 (wahr) bzw. 0 (falsch) ist, falls eine solche Belegung existiert. Lösung. (a) Betrachte die folgenden Variablenbelegungen: β1 : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1 β2 : VAL 99K {0, 1} mit β2 (X 1 ) = 1, β2 (X 2 ) = 0. Dann ist J((X 1 → X 2 ) ↔ (X 2 → X 1 ))Kβ1 = J(X 1 → X 2 )Kβ1 ↔ ˙ J(X 2 → X 1 )Kβ1 = (J X 1 Kβ1 → ˙ J X 2 Kβ1 )↔( ˙ J X 2 Kβ 1 → ˙ J X 1 Kβ1 ) = (β1 (X 1 )→β ˙ 1 (X 2 ))↔(β ˙ 1 (X 2 )→β ˙ 1 (X 1 )) = (1→1) ˙ ↔(1 ˙ →1) ˙ = 1↔1 ˙ =1 und ˙ 2 (X 2 ))↔(β ˙ 2 (X 2 )→β ˙ 2 (X 1 )) J((X 1 → X 2 ) ↔ (X 2 → X 1 ))Kβ2 = (β2 (X 1 )→β = (1→0) ˙ ↔(0 ˙ →1) ˙ = 0↔1 ˙ = 0. (b) Betrachte die folgenden Variablenbelegungen: β1 : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1 β2 : VAL 99K {0, 1} mit β2 (X 1 ) = 0, β2 (X 2 ) = 1. 1 alleAufgaben.tex Rev 251 2009-02-03 1 Blatt Dann ist und J(¬X 1 → ¬X 2 )Kβ1 = ¬1 ˙ → ˙ ¬1 ˙ = 0→0 ˙ =1 J(¬X 1 → ¬X 2 )Kβ2 = ¬0 ˙ → ˙ ¬1 ˙ = 0. (c) Betrachte die folgenden Variablenbelegungen: β1 : VAL 99K {0, 1} mit β1 (X 1 ) = 0, β1 (X 2 ) = 0, β1 (X 3 ) = 1 β2 : VAL 99K {0, 1} mit β2 (X 1 ) = 1, β2 (X 2 ) = 1, β1 (X 3 ) = 0. Dann ist und ˙ ∨(0 ˙ →1) ˙ =1 J(¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 ))Kβ1 = ¬(0 ˙ ∧0) ˙ = ¬0 ˙ ∨1 ˙ ∨(1 ˙ →0) ˙ =0 J(¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 ))Kβ2 = ¬(1 ˙ ∧1) ˙ = ¬1 ˙ ∨0 (d) Betrachte die Variablenbelegung: β : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1, β1 (X 3 ) = 1. Dann ist J(((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1)Kβ = 1. Es gibt keine Belegung β0 ∈ VAL → {0, 1} mit J(((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1)Kβ = 1, da für alle Belegungen β0 und alle Formeln ϕ gilt: Jϕ → 1Kβ = JϕKβ →1 ˙ = 1. 0 0 (e) Betrachte die Variablenbelegung: β : VAL 99K {0, 1} mit β1 (X 1 ) = 1, β1 (X 2 ) = 1. Dann ist J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ = 1. Es gibt keine Belegung β0 ∈ VAL → {0, 1} mit J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ = 1. Es gilt: J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ ˙ J X 1 Kβ → = (¬ ˙ J X 1 Kβ ↔ ˙ J X 2 Kβ )→(( ˙ ¬ ˙ J X 2 Kβ → ˙ J X 1 Kβ )∧( ˙¬ ˙ J X 2 Kβ )) = ψ. 0 0 0 0 0 0 In der folgenden Tabelle sind alle möglichen Belegungen für die beiden Variablen und die daraus resultierende Sematik von ψ eingetragen: J X 1 K· J X 2 K· JψK· 0 0 1 1 0 1 0 1 1 1 1 1 (Die linke und rechte Seite von → sind sogar äquivalent.) 2 alleAufgaben.tex Rev 251 2009-02-03 1 Blatt Aufgabe 1.3. Als Länge einer Formel bezeichnen wir die Anzahl der Symbole, die in der Formel vorkommen. Dabei zählen wir jede Variable als ein Symbol. Definieren Sie induktiv eine Funktion l : F AL → N, die zu jeder aussagenlogischen Formel ψ ∈ F AL die Länge von ψ liefert. Beispiel. Ist ψ = ((X 1 ∨ X 3 ) ∧ (X 2 ∨ (X 3 → ¬X 1 ))), dann ist l (ψ) = 18. Lösung. Jeder Formel weisen wir ihre Länge per Induktion zu: 1. Basiszuordnung: l (0) = 1, l (1) = 1, l (X i ) = 1. 2. Induktionsregeln: Seien ϕ, ψ ∈ F AL . l (¬ϕ) = 1 + l (ϕ), l (ϕ ∗ ψ) = 3 + l (ϕ) + l (ψ) für ∗ ∈ {∨, ∧, →, ↔}. Aufgabe 1.4. Als Schachtelungstiefe einer Formel bezeichnen wir die maximale Rekursionstiefe der Formel (siehe Beispiel). Definieren Sie induktiv eine Funktion d : F AL → N, die zu jeder aussagenlogischen Formel ψ ∈ F AL die Schachtelungstiefe von ψ liefert. Beispiel. Ist ψ = ((X 1 ∨ X 3 ) ∧ (X 2 ∨ (X 3 → ¬X 1 ))), dann ist d (ψ) = 4. ψ X1 ∨ X3 X1 Tiefe 0 X 2 ∨ (X 3 → ¬X 1 ) X3 Tiefe 1 X 3 → ¬X 1 X2 X3 Tiefe 2 ¬X 1 Tiefe 3 X1 Tiefe 4 Lösung. Jeder Formel weisen wir ihre Schachtelungstiefe per Induktion zu: 1. Basiszuordnung: d (0) = 0, d (1) = 0, d (X i ) = 0. 2. Induktionsregeln: Seien ϕ, ψ ∈ F AL . d (¬ϕ) = 1 + d (ϕ), d (ϕ ∗ ψ) = 1 + max{d (ϕ), d (ψ)} für ∗ ∈ {∨, ∧, →, ↔}. Aufgabe 1.5. Das so genannte Schubfachprinzip (engl. pigeonhole principle) kann folgendermaßen beschrieben werden: Falls man n Objekte auf m Mengen (n, m > 0) verteilt, und n größer als m ist, dann gibt es mindestens eine Menge, in der mehr als ein Objekt landet. 3 alleAufgaben.tex Rev 251 2009-02-03 1 Blatt Seien nun n, m ∈ N, wobei n die Anzahl der Objekte und m die Anzahl der Mengen bezeichnet. Zur Modellierung wollen wir Variablen X i , j mit i ∈ {1, . . . , n} und j ∈ {1, . . . , m} verwenden. Dabei soll die Belegung der Variable X i , j festlegen, ob das Element i in der Menge j enthalten ist. (a) Geben Sie eine Formel ϕ an, die sicherstellt, dass jedem Objekt genau eine Menge zugeordnet ist. Formaler: Für jede Variablenbelegung β, die zu ϕ passt, soll gelten: ( 1 falls jedem Objekt genau eine Menge zugeordnet ist β JϕK = 0 sonst. (b) Geben Sie eine Formel ψ an, die sicherstellt, dass jeder Menge höchstens ein Objekt zugeordnet ist. Formaler: Für jede Variablenbelegung β, die zu ψ passt, soll gelten: ( 1 falls jeder Menge höchstens ein Element zugeordnet ist β JψK = 0 sonst. (c) Was kann man über J(ϕ ∧ ψ)Kβ in Abhängigkeit von n und m aussagen? Lösung. Sei E := {a 1 , . . . , a n } die Menge der Elemente und sei M := {T1 , . . . , Tm } die Menge der Mengen. Wir definieren eine Relation R ⊆ E × M , wobei (a, T ) ∈ R genau dann gelten soll, wenn Elemente a in Menge T enthalten ist. Wir identifizieren diese Relation mit einer Variablenbelegung βR durch ( 1 falls (a i , T j ) ∈ R βR (X i , j ) = 0 sonst. (a) Definiere m _ ϕ(1) := i Xi ,j j =1 | {z } ϕ(2) := i mind eine Menge m ^ (X i ,l → ¬( l =1 | m _ X i , j )) j =1, j 6=l {z max eine Menge } ϕi := ϕ(1) ∧ ϕ(2) i i und setze ϕ := n ^ ϕi . i =1 Sei nun βR eine Variablenbelegung die zu ϕ passt. Zu zeigen: jedem Element ist genau eine Menge zugeordnet (d.h. R ist Funktion), wenn der Wahrheitswert 1 ist. 4 alleAufgaben.tex Rev 251 2009-02-03 1 Blatt R Fall 1: JϕKβ = 1 R R R Kβ = Kβ = 1 und Jϕ(2) Dann gilt für alle i ∈ {1, . . . , n}: Jϕi Kβ = 1 und damit auch Jϕ(1) i i 1. R R Aus Jϕ(1) Kβ = 1 folgt, dass (mindestens) ein j ∈ {1, . . . , m} existiert, so dass J X i , j Kβ = i 1. Also ist jedem Element mindestens eine Menge zugeordnet. Sei j ∈ {1, . . . , m} R so, dass J X i , j Kβ = 1. R Aus Jϕ(2) Kβ = 1 folgt nun insbesondere, dass i J X i , j → ¬( m _ R k=1,k6= j X i ,k ))Kβ = 1. R Also ist J X i ,k Kβ = 0 für alle k ∈ {1, . . . , m} \ { j }, d.h. jedem Element ist genau eine Menge zugeordnet. Damit ist R tatsächlich eine Funktion. R Fall 2: JϕKβ = 0 R Dann existiert (mindestens) ein i ∈ {1, . . . , n}, so dass Jϕi Kβ = 0, also entweder R R Kβ = 0. Sei i so gewählt. Kβ = 0 oder Jϕ(2) Jϕ(1) i i R Fall 2.1: Jϕ(1) Kβ = 0 i R Dann ist J X i , j Kβ = 0 für alle j ∈ {1, . . . , m}, d.h. mindestens einem Element ist keine Menge zugeordnet worden. R Fall 2.2: Jϕ(2) Kβ = 0 i R R Dann existieren j , j 0 ∈ {1, . . . , m} mit J X i , j Kβ = J X i , j 0 Kβ = 1, also gibt es ein Element, dass zwei verschiedenen Mengen zugewiesen worden ist. Dann ist R keine Funktion. Ist umgekehrt R eine Funktion, so erfüllt die Variablenbelegung βR die aussagenloR gische Formel ϕ, da für jedes i ∈ {1, . . . , n} und j mit T j = R(a i ): J X i , j Kβ = 1 und R R J X i , j 0 Kβ = 0 für alle j 0 ∈ {1, . . . , m}\{ j } (da R Funktion ist) und damit ist sowohl Jϕ(1) Kβ = i R R R 1 als auch Jϕ(2) Kβ = 1. Also ist Jϕi Kβ = 1 für alle i ∈ {1, . . . , n} und damit JϕKβ = 1. i (b) Definiere ψ j := n ^ l =1 | n _ (X l , j → ¬( X k, j )) k=1,k6=l {z } max ein Element und setze ψ := m ^ ψj . j =1 Sei βR nun eine Variablenbelegung die zu ψ passt. R Fall 1: JψKβ = 1 R Dann gilt für alle j ∈ {1, . . . , m}: Jψ j Kβ = 1. Sei j ∈ {1, . . . , m}. R Fall 1.1: Es existiert ein l ∈ {1, . . . , n} mit J X l , j Kβ = 1. R Dann folgt: J X l 0 , j Kβ = 0 für alle l 0 ∈ {1, . . . , n} \ {l }. Damit existiert genau ein l mit (a l , T j ) ∈ R. 5 alleAufgaben.tex Rev 251 2009-02-03 1 Blatt R Fall 1.2: Für alle l ∈ {1, . . . , n} gilt J X l , j Kβ = 0. Damit existiert keine l ∈ {1, . . . , n} mit (a l , T j ) ∈ R. Insgesamt erhalten wir in diesem Fall eine Relation mit der gewünschten Eigenschaft. R Fall 2: JψKβ = 0 R Dann existiert ein j ∈ {1, . . . , m}: Jψ j Kβ = 0. Sei j ∈ {1, . . . , m} so gewählt. OffenR g bar existiert ein l ∈ {1, . . . , n} mit J X l , j Kβ = 1, sonst wäre Jψ j Kβ = 1. Weiter exisR R tiert ein l 6= l 0 ∈ {1, . . . , n} mit J X l , j Kβ = 1, sonst wäre wieder Jψ j Kβ = 1. Damit werden in diesem Fall mindestens einer Menge mehr als ein Element zugeordnet. Sei umgekehrt R eine Relation, die jeder Menge höchstens ein Element zuweist. Sei R j ∈ {1, . . . , m}. Ist (a i , T j ) ∈ R, so ist Jψ j Kβ = 1. Existiert kein i mit (a i , T j ) ∈ R, so ist R R Jψ j Kβ = 1. Also ist JψKβ = 1. (c) Das Schubfachprinzip besagt gerade, dass, falls n > m, so gilt für alle Variablenbelegungen β die zu ϕ, ψ passen: J(ϕ ∧ ψ)Kβ = 0. Falls n ≤ m, so existiert eine Variablenbelegung β die zu ϕ und ψ passt mit J(ϕ ∧ ψ)Kβ = 1. 6 alleAufgaben.tex Rev 251 2009-02-03 2. Blatt Aufgabe 2.1. Sei σ : VAL 99K F AL eine Substitution mit σ(X 1 ) = (ψ ∧ X 2 ) σ(X 2 ) = ¬X 1 σ(X 4 ) = X 1 . Sei ϕ := ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 3 ) ∧ ¬X 2 )). (a) Berechnen Sie ϕσ durch Anwendung der induktiven Definition der Substitution. (b) Was erhält man bei intuitiver Substitution? (c) Wie kann man sinnvoll die Komposition von zwei Substitutionen definieren? Lösung. (a) Es gilt: ϕσ = ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 3 ) ∧ ¬X 2 ))σ = ((¬X 1 ↔ X 2 )σ → ((X 1 → ¬X 3 ) ∧ ¬X 2 )σ) = (((¬X 1 )σ ↔ X 2 σ) → ((X 1 → ¬X 3 )σ ∧ (¬X 2 )σ)) = ((¬X 1 )σ ↔ ¬X 1 ) → ((X 1 σ → (¬X 3 )σ) ∧ ¬X 2 σ)) = ((¬X 1 σ ↔ ¬X 1 ) → (((ψ ∧ X 2 ) → ¬X 3 σ) ∧ ¬¬X 1 )) = ((¬(ψ ∧ X 2 ) ↔ ¬X 1 ) → (((ψ ∧ X 2 ) → ¬X 3 ) ∧ ¬¬X 1 )) (b) Das gleiche. (c) Sinnvoll ist die Komposition von zwei Substitutionen zum Beispiel dann, wenn gilt: ϕ(σσ0 ) = (ϕσ)σ0 . Beispiel. Sei σ wie oben und sei σ0 = [ψ/X 1 , X 2 /X 3 ] eine weitere Substitution. Dann ist σσ0 = [(ψ ∧ X 2 )/X 1 , (¬ψ)/X 2 , X 2 /X 3 , ψ/X 4 ]. Aufgabe 2.2. Zu jeder Formel ϕ ∈ NNF AL definieren wir die zu ihr duale Formel ϕ induktiv: 1. Basiszuordnung: 0 = 1, 1 = 0, X i = ¬X i , ¬X i = X i . 2. Induktionsregeln: Für alle ϕ, ψ ∈ NNF AL : ϕ ∧ ψ = ϕ ∨ ψ, ϕ ∨ ψ = ϕ ∧ ψ. (Beachten Sie, dass eindeutige Konstruktion hier gegeben ist.) Zeigen Sie per Induktion, dass für jedes ϕ ∈ NNF AL gilt: ¬ϕ ≡ ϕ. Lösung. Sei ϕ ∈ NNF AL . Basiszuordnung: • Ist ϕ = 1, so gilt: (Kmp) Def ¬ϕ = ¬1 ≡ 0 = 1 = ϕ . 7 alleAufgaben.tex Rev 251 2009-02-03 2 Blatt • Ist ϕ = 0, so gilt: (Kmp) Def ¬ϕ = ¬0 ≡ 1 = 0 = ϕ . • Ist ϕ = X i , so gilt: Def ¬ϕ = ¬X i = X i = ϕ . • Ist ϕ = ¬X i , so gilt: (DN) Def ¬ϕ = ¬¬X i ≡ X i = ¬X i = ϕ . Induktionsregeln: Seien nun ψ, θ ∈ NNF AL mit ¬ψ ≡ ψ und ¬θ ≡ θ. • Ist ϕ = (ψ ∧ θ), so gilt: (DM) IA Def (DM) IA Def ¬ϕ = ¬(ψ ∧ θ) ≡ (¬ψ ∨ ¬θ) ≡ (ψ ∨ θ) = (ψ ∧ θ) = ϕ . • Ist ϕ = (ψ ∨ θ), so gilt: ¬ϕ = ¬(ψ ∨ θ) ≡ (¬ψ ∧ ¬θ) ≡ (ψ ∧ θ) = (ψ ∨ θ) = ϕ . Aufgabe 2.3. Entwickeln Sie eine (Scheme-)Prozedur formula->string, die eine aussagenlogische Formel in eine Zeichenreihe umwandelt. Verwenden Sie dabei die auf Folie 13 vorgestellten Strukturen. Stellen Sie die Junktoren gemäß folgender Kodierung dar: Junktor ¬ → ↔ ∧ ∨ Kodierung -> <-> /\ \/ Beispiel. ((X_12 /\ -X_15) -> 0) ist eine typische Ausgabe. Hinweis. Die Ausgabe einer Zeichenreihe kann in Scheme zum Beispiel wie folgt aussehen: (display (string-append "X_" (number->string 1) " \\/ " "1")). Lösung. Eine solche Funktion kann zum Beispiel wie folgt aussehen: (define (formula->string formula) (cond ((eq? formula #t) "1") ((eq? formula #f) "0") ((variable? formula) (string-append "X_" (number->string (variable-index formula)) )) ((negation? formula) (string-append "-" (formula->string (negation-negated formula)))) ((disjunction? formula) (string-append "(" (formula->string (disjunction-left formula)) " \\/ " (formula->string (disjunction-right formula)) ")")) ((conjunction? formula) (string-append "(" (formula->string (conjunction-left formula)) 8 alleAufgaben.tex Rev 251 2009-02-03 2 Blatt " /\\ " (formula->string (conjunction-right formula)) ")")) ((conditional? formula) (string-append "(" (formula->string (conditional-left formula)) " -> " (formula->string (conditional-right formula)) ")")) ((biconditional? formula) (string-append "(" (formula->string (biconditional-left formula)) " <-> " (formula->string (biconditional-right formula)) ")")) )) Beispiel. (define phi1 (make-negation (make-disjunction (make-variable 1) (make-variable 2)))) (define phi2 (make-conjunction (make-variable 3) #f)) (define phi (make-biconditional phi1 (make-conditional phi2 #t))) (display (formula->string phi)) Liefert Ausgabe: "(-(X_1 OR X_2) <-> ((X_3 AND 0) -> 1))" 9 alleAufgaben.tex Rev 251 2009-02-03 3. Blatt Aufgabe 3.1. Überführen Sie die folgende aussagenlogische Formel in eine äquivalente Formel in KNF dargestellt als Klauselmenge. ^ (X i ↔ ¬X j ). 1≤i < j ≤n Zur Erinnerung: Formeln dieser Art traten bei der Frage auf, ob ein Graph bipartit ist. Lösung. Es gilt: (Elm) X i ↔ ¬X j ≡ (¬X i ∨ ¬X j ) ∧ (¬¬X j ∨ X i ) (DN)+2. EL ≡ Dargestellt als Klauselmenge erhält man lemma ist dann ^ (X i ↔ ¬X j ) ≡ 1≤i < j ≤n (¬X i ∨ ¬X j ) ∧ (X j ∨ X i ). VW {{¬X i , ¬X j }, {X j , X i }}. Mit dem 2. Ersetzungs- ^ ^_ {{¬X i , X j }, {¬X j , X i }} [ {{¬X i , X j }, {¬X j , X i }} 1≤i < j ≤n ≡ ^_ 1≤i < j ≤n Aufgabe 3.2. Überführen Sie die folgenden Formeln in NNF, KNF und DNF. (a) ¬((X 1 ∨ X 2 ) ∧ X 3 ) (b) (¬(X 1 → X 2 ) ↔ X 3 ) Lösung. (a) Es gilt: (DM) ¬((X 1 ∨ X 2 ) ∧ X 3 ) ≡ ¬(X 1 ∨ X 2 ) ∨ ¬X 3 (DM)+2.EL ≡ (¬X ∧ ¬X 2 ) ∨ ¬X 3 | 1 {z } NNF ≡ _^ | {{¬X 1 , ¬X 2 }, {¬X 3 }} . {z } DNF Für KNF: VW VW Betrachte zunächst: ¬X 1 ∧ ¬X 2 = {{¬X 1 }, {¬X 2 }} und ¬X 3 ≡ {{¬X 3 }}. Dann ist VW VW VW (¬X 1 ∧ ¬X 2 ) ∨ ¬X 3 ≡ {{¬X 1 }, {¬X 2 }} ∨ {{¬X 3 }} ≡ {{¬X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }}. (Dis) alternativ: (¬X 1 ∧ ¬X 2 ) ∨ ¬X 3 ≡ (¬X 1 ∨ ¬X 3 ) ∧ (¬X 2 ∨ ¬X 3 ). 10 alleAufgaben.tex Rev 251 2009-02-03 3 Blatt (b) Es gilt (¬(X 1 → X 2 ) ↔ X 3 ) ≡ (¬(¬X 1 ∨ X 2 ) ↔ X 3 ) ≡ ((X 1 ∧ ¬X 2 ) ↔ X 3 ) ≡ (¬(X 1 ∧ ¬X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 )) ≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 )) | {z } NNF ≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ ¬X 3 ) ∨ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (X 1 ∧ ¬X 2 )) ≡ ((¬X 1 ∧ ¬X 3 ) ∨ (X 2 ∧ ¬X 3 ) ∨ (X 3 ∧ ¬X 3 )) ∨ ((¬X 1 ∧ (X 1 ∧ ¬X 2 )) ∨ (X 2 ∧ (X 1 ∧ ¬X 2 )) ∨ (X 3 ∧ (X 1 ∧ ¬X 2 )) . WV DNF: {{¬X 1 , ¬X 2 }, {X 2 , ¬X 3 }, {X 3 , ¬X 3 }, {¬X 1 , X 1 , ¬X 2 }, {X 2 , X 1 , ¬X 2 }, {X 3 , X 1 , ¬X 2 }} Weiter gilt: ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 )) | {z } NNF ≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ X 1 ) ∧ (¬X 3 ∨ ¬X 2 )) ^_ ≡ {{¬X 1 , X 2 , X 3 }, {¬X 3 , X 1 }, {¬X 3 , ¬X 2 }} . {z } | KNF Aufgabe 3.3. Beweisen Sie Lemma 2.6. Lösung. Wir zeigen die (stärkere) Hilfsbehauptung, dass für alle einfachen Konjunktionen ϕ und für alle zu ϕ passenden Variablenbelegungen β gilt: JϕKβ = 1 genau dann, wenn β(X i ) = 1 für alle X i ∈ vars(ϕ). Beweis per Induktion über den Aufbau der einfachen Konjunktionen: Sei also ϕ eine einfache Konjunktion und β eine zu ϕ passende Variablenbelegung. I.A. • Ist ϕ = 1, dann gilt (unabhängig von β) JϕKβ = J1Kβ = 1. Da aber vars(ϕ) = ; gilt auch β(X i ) = 1 für alle X i ∈ vars(ϕ) • Ist ϕ = X i , dann gilt: JϕKβ = J X i Kβ = β(X i ). Da vars(ϕ) = {X i } gilt damit die Behauptung. I.S. Sei ϕ = (ϕ0 ∧ϕ1 ) mit einfachen Konjunktionen ϕ0 , ϕ1 für die die Induktionsvoraussetzung (IV) gelte. Nach IV ist ϕ j genau dann erfüllt, wenn β(X i ) = 1 für alle X i ∈ vars(ϕ j ) ( j ∈ {0, 1}). Damit gilt 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ0 ) JϕKβ = Jϕ0 ∧ ϕ1 Kβ = = und β(X i ) = 1 für alle X i ∈ vars(ϕ1 ) 0 sonst ( 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ0 ) ∪ vars(ϕ1 ) 0 sonst ( = 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ) 0 sonst . 11 alleAufgaben.tex Rev 251 2009-02-03 3 Blatt Also gilt die Hilfsbehauptung. Mit Hilfe dieser Hilfsbehauptung läßt sich wie folgt Lemma 2.6 zeigen. Seien ϕ, ψ einfache Konjuktionen mit vars(ϕ) = vars(ψ) und sei β eine zu ϕ (und damit auch zu ψ) passende Variablenbelegung. Dann gilt: ( 1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ) β JϕK = 0 sonst ( 1 falls β(X i ) = 1 für alle X i ∈ vars(ψ) = 0 sonst = JψKβ . Aufgabe 3.4. Beweisen Sie für alle ϕ, ψ, χ, ρ ∈ F AL die folgende Äquivalenz: ((ϕ ∧ ψ) ∧ χ) → ρ ≡ ϕ → (ψ → (χ → ρ)) . Verwenden Sie dabei die in der Vorlesung vorgestellten aussagenlogischen Gesetze. Geben Sie für jeden Schritt an, welches Gesetz und welche Substitution verwendet worden ist. Hinweis. Orientieren Sie sich an dem Beweis der Gültigkeit der Äquivalenz (2.6). Lösung. Seien ϕ, ψ, χ, ρ ∈ F AL und X i ∈ VAL mit X i 6∈ vars(ϕ) ∪ vars(ψ) ∪ vars(χ) ∪ vars(ρ). Dann gilt: (Elm) ((ϕ ∧ ψ) ∧ χ) → ρ ≡ ¬((ϕ ∧ ψ) ∧ χ) ∨ ρ Da nach (DM) ¬((ϕ∧ψ)∧χ) ≡ (¬(ϕ∧ψ)∨¬χ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf X i ∨ ρ: ≡ (¬(ϕ ∧ ψ) ∨ ¬χ) ∨ ρ Da nach (DM) ¬(ϕ ∧ ψ) ≡ (¬ϕ ∨ ¬ψ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf (X i ∨ ¬χ) ∨ ρ: ≡ ((¬ϕ ∨ ¬ψ) ∨ ¬χ) ∨ ρ Da nach (Ass) ((¬ϕ∨¬ψ)∨¬χ) ≡ (¬ϕ∨(¬ψ∨¬χ)), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf X i ∨ ρ: ≡ (¬ϕ ∨ (¬ψ ∨ ¬χ)) ∨ ρ (Ass) ≡ ¬ϕ ∨ ((¬ψ ∨ ¬χ) ∨ ρ) Da nach (Ass) (¬ψ∨¬χ)∨ρ ≡ ¬ψ∨(¬χ∨¬ρ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf ¬ϕ ∨ X i : ≡ ¬ϕ ∨ (¬ψ ∨ (¬χ ∨ ρ)) 12 alleAufgaben.tex Rev 251 2009-02-03 3 Blatt Da nach (Elm) ¬χ ∨ ρ ≡ χ → ρ, erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf ¬ϕ ∨ (¬ψ ∨ X i ): ≡ ¬ϕ ∨ (¬ψ ∨ (χ → ρ)) Da nach (Elm) ¬ψ ∨ (χ → ρ) ≡ ψ → (χ → ρ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf ¬ϕ ∨ X i : ≡ ¬ϕ ∨ (ψ → (χ → ρ)) (Elm) ≡ ϕ → (ψ → (χ → ρ)) Aufgabe 3.5. (a) Entwickeln Sie eine Prozedur, die eine Sudoku-Instanz in die zugeordnete Formel ϕS (siehe Skript Kapitel 2.3.2) in Klauseldarstellung umwandelt. (b) Entwickeln Sie eine Prozedur, die eine in Klauseldarstellung gegebene Formel in das DIMACS-Datenformat umwandelt. Stellen Sie Literale durch ganze, von 0 verschiedene Zahlen und Klauseln durch Listen von Listen von Literalen dar. Eine Sudoku-Instanz sei durch eine 9-elementige Liste von 9elementigen Listen von Zahlen aus {0, . . . , 9} dargestellt. Dabei kodieren wir ein unbelegtes Feld durch die Zahl 0. Beispiel. (list (list (list (list (list (list (list (list (list (list 0 4 0 0 0 0 3 0 0 0 0 2 0 0 0 0 5 0 0 0 0 0 8 1 0 0 0 0 0 0 0 0 0 4 1 8 0 0 0 5 0 9 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 4 3 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 ) ) ) ) ) ) ) ) )) Lösung. (a) Folgende Prozeduren liefern das gewünschte Ergebnis: ; row i, column j und number k: variable index (i-1)*81 + (j-1)*9 + k ; Generate (start start+offset start+2*offset ... start+(reps-1)*offset). (define (step start offset reps) (build-list reps (lambda (x) (+ start (* x offset))))) ; Append all members of l. (define (flat l) (foldr append null l)) ; Turn l = (l1 l2 ...) and m = (m1 m2 ...) 13 alleAufgaben.tex Rev 251 2009-02-03 3 Blatt ; into ((m1+l1 m1+l2 ...) (m2+l1 m2+l2) ...). (define (addin l m) (map (lambda (x) (map (lambda (y) (+ x y)) l)) m)) ; Produce ((a a+1) ... (a a+n) (a+1 a+2) ... (a+1 a+n) ... (a+n-1 a+n)) ; in some order. (define (pairs a n) (flat (build-list n (lambda (x) (build-list (+ 1 x) (lambda (y) (list (+ a y) (+ 1 (+ a x))))))))) ; The sudoku restrictions. (define (atLeastOneNumberPerEntry) (addin (step 0 1 9) (step 1 9 81))) (define (eachNumberInEachRow) (addin (step 0 9 9) (flat (addin (step 0 1 9) (step 1 81 9))))) (define (eachNumberInEachColumn) (addin (step 0 81 9) (step 1 1 81))) (define (eachNumberInEachRegion) (addin (flat (addin (step 0 81 3) (step 0 9 3))) (flat (addin (step 0 (* 3 81) 3) (flat (addin (step 0 27 3) (step 1 1 9))))))) (define (atMostOneNumberPerEntry) (flat (map (lambda (x) (pairs x 8)) (step (- 0 729) 9 81)))) ; Constructs the propositional logic formula in CNF ; out of the passed sudoku. (define (sudokuSet description) (append (atLeastOneNumberPerEntry) (atMostOneNumberPerEntry) (eachNumberInEachRow) (eachNumberInEachColumn) (eachNumberInEachRegion) (map (lambda (x) (list x)) (filter (lambda (x) (> x 0)) (map (lambda (x y) (if (= 0 x) 0 (+ x y))) (flat description) (step 0 9 81)))))) Der Aufruf von (sudokuSet description) liefert eine entsprechende Formel zurück. (b) Folgende Prozeduren liefern das gewünschte Ergebnis: ; Generates the DIMACS file header, including a reference to this program and ; the number of variables and clauses of the passed formula. 14 alleAufgaben.tex Rev 251 2009-02-03 3 Blatt (define (header formula) (string-append "c generated by formel->DIMACS\n" "p cnf " (number->string (numberOfVars formula)) " " (number->string (numberOfClauses formula)) "\n")) ; Converts the passed set of clauses to DIMACS format. (define (clauseset->DIMACS formula) (cond ((null? formula) "") ((list? formula) (string-append (clause->DIMACS (first formula)) (clauseset->DIMACS (rest formula)) )))) ; Converts the passed clause to DIMACS format. (define (clause->DIMACS formula) (cond ((null? formula) "0\n") ((list? formula) (string-append (number->string (first formula)) " " (clause->DIMACS (rest formula)))) )) ; Returns the number of distinct variables that occur within the passed formula. (define (numberOfVars formula) (cond ((null? formula) 0) ((list? formula) (max (numberOfVarsInClause (first formula)) (numberOfVars (rest formula)))))) ; Returns the number of distinct variables that occur within the passed clause. ; Assumes that there are no unused variable names between the first and last ; one used. (define (numberOfVarsInClause clause) (cond ((null? clause) 0) ((list? clause) (max (first clause) (numberOfVarsInClause (rest clause)))))) ; Returns the number of clauses of the passed formula. (define (numberOfClauses formula) (length formula)) ; Writes the example sudoku formula to a file in the DIMACS format. ;(define outputPort (open-output-file "/tmp/dimacs.cnf")) Der Aufruf von (formel->DIMACS formula) liefert die Darstellung von formula im DIMACS-Format. Beispiel. Ein Aufruf könnte also wie folgt aussehen: (define outputPort (open-output-file "/tmp/dimacs.cnf")) (display (formel->DIMACS (sudokuSet sudokuInstance)) outputPort) (close-output-port outputPort) 15 alleAufgaben.tex Rev 251 2009-02-03 4. Blatt Aufgabe 4.1. Die Menge MF AL ist induktiv definiert durch: 1. Basismenge: Die Basiselemente von MF AL sind 0, 1 und X i für i ∈ N. 2. Induktionsregeln: Sind ϕ, ψ ∈ MF AL , so ist (ϕ ∧ ψ) ∈ MF AL . Sei V ⊆ VAL und seien β, β0 : VAL 99K {0, 1} Variablenbelegungen mit dom(β) = V = dom(β0 ) und β(X i ) ≤ β0 (X i ) für alle X i ∈ V . Beweisen Sie, dass für alle ϕ ∈ MF AL mit vars(ϕ) ⊆ V gilt: JϕKβ ≤ JϕKβ . 0 Lösung. Sei V ⊆ VAL und seien β, β0 : VAL 99K {0, 1} Variablenbelegungen mit dom(β) = V = dom(β0 ) und β(X i ) ≤ β0 (X i ) für alle X i ∈ V . Sei weiter ϕ ∈ MF AL mit vars(ϕ) ⊆ V . 1. Basiszuordnung: 0 0 Ist ϕ = 1, dann gilt: JϕKβ = J1Kβ = 1 = J1Kβ = JϕKβ . 0 0 Ist ϕ = 0, dann gilt: JϕKβ = J0Kβ = 1 = J0Kβ = JϕKβ . 0 0 Ist ϕ = X i für ein i ∈ N, dann gilt: JϕKβ = J X i Kβ ≤ J X i Kβ = JϕKβ . 0 2. Induktionsregeln: Seien ϕ0 , ϕ1 ∈ MF AL und für ϕ0 , ϕ1 gelte Jϕ0 Kβ ≤ Jϕ0 Kβ Jϕ1 Kβ ≤ 0 Jϕ1 Kβ . Ist ϕ = (ϕ0 ∧ ϕ1 ), dann gilt: ! ˙ Jϕ1 Kβ ≤ Jϕ0 Kβ ∧ ˙ Jϕ1 Kβ = Jϕ0 ∧ ϕ1 Kβ = JϕKβ . JϕKβ = Jϕ0 ∧ ϕ1 Kβ = Jϕ0 Kβ ∧ 0 0 0 0 Aufgabe 4.2. Testen Sie die Erfüllbarkeit der folgenden Formeln mit Hilfe des DPLL- und des DP-Algorithmus. (a) ϕa = (X 1 ∨ X 2 ∨ ¬X 3 ) ∧ (X 1 ∨ ¬X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) ∧ ¬X 1 (b) ϕb = X 1 ∧ (X 1 → (X 2 ∨ X 4 )) ∧ ((X 1 ∧ X 4 ) → X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) Lösung. (a) Offenbar ist ϕa bereits in konjuktiver Normalform. Damit läßt sich ϕa als Klauselmenge schreiben: ϕa ≡ ^_ {{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }} . Im Folgenden prüfen wir die Erfüllbarkeit von ϕa mit Hilfe des DPLL- beziehungsweise des DPLL-Algorithmus: DPLL ^_ erfb(ϕa ) gdw. erfb( {{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }}) 16 alleAufgaben.tex Rev 251 2009-02-03 4 Blatt gdw. (Lemma, Teil 2, L = ¬X 1 ) erfb( ^_ {{X 2 , ¬X 3 }, {¬X 3 }, {¬X 2 , ¬X 3 }}) gdw. (Lemma, Teil 2, L = ¬X 3 ) erfb( ^_ ;) DP ^_ erfb(ϕa ) gdw. erfb( {{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }}) gdw. (Lemma, Teil 3, i = 1) erfb( ^_ {{X 2 , ¬X 3 }, {¬X 3 }, {¬X 2 , ¬X 3 }}) ^_ {{¬X 3 }, {¬X 3 }}) ^_ ;) gdw. (Lemma, Teil 3, i = 2) erfb( gdw. (Lemma, Teil 3, i = 3) erfb( VW In beiden Fällen wurde damit gezeigt, dass ϕa erfüllbar ist (da ; ≡ 1, also erfüllbar). (b) Da ϕb nicht in konjunktiver Normalform vorliegt, müssen wir die Formel zunächst umformen. Es gilt: ϕb = X 1 ∧ (X 1 → (X 2 ∨ X 4 )) ∧ ((X 1 ∧ X 4 ) → X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) ≡ X 1 ∧ (¬X 1 ∨ X 2 ∨ X 4 ) ∧ (¬X 1 ∨ X 2 ∨ ¬X 4 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) ^_ ≡ {{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }} Im Folgenden prüfen wir die Erfüllbarkeit von ϕa mit Hilfe des DPLL- beziehungsweise des DPLL-Algorithmus: DPLL erfb(ϕb ) gdw. erfb( ^_ {{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) gdw. (Lemma, Teil 2, L = X 1 ) erfb( ^_ {{X 2 , X 4 }, {X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) 17 alleAufgaben.tex Rev 251 2009-02-03 4 Blatt gdw. (Lemma, Teil 1, i = 2) erfb( ^_ ^_ {{X 3 }, {¬X 3 }}) oder erfb( {{X 4 }, {¬X 4 }) gdw. (Lemma, Teil 2, i = 3 bzw. i = 4) erfb( ^_ ^_ {;}) oder erfb( {;}) erfb( ^_ {{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) DP erfb(ϕb ) gdw. gdw. (Lemma, Teil 3, i = 1) erfb( ^_ {{X 2 , X 4 }, {X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}) gdw. (Lemma, Teil 3, i = 2) erfb( ^_ {{X 4 , X 3 }, {X 4 , ¬X 3 }, {¬X 4 , X 3 }, {¬X 4 , ¬X 3 }}) gdw. (Lemma, Teil 3, i = 3) erfb( ^_ {{X 4 }, {X 4 , ¬X 4 }, {¬X 4 }}) gdw. (Lemma, Teil 2) erfb( ^_ {{X 4 }, {¬X 4 }}) gdw. (Lemma, Teil 3, i = 4) erfb( ^_ {;}) In beiden Fällen wurde damit gezeigt, dass ϕa unerfüllbar ist (da erfüllbar). VW {;} ≡ 0, also un- Aufgabe 4.3. In der Vorlesung wurde die Lösbarbeit einer Instanz des Dominoproblems auf die Erfüllbarkeit einer aussagenlogischen Formelmenge zurückgeführt. Geben Sie eine Vaf riante dieser Rückführung an, bei der nur Variablen der Gestalt X i j benutzt werden. Dabei f soll X i j genau dann wahr sein, wenn an der Stelle (i , j ) der Dominostein(-typ) f benutzt wird. 18 alleAufgaben.tex Rev 251 2009-02-03 4 Blatt Lösung. (Lösungsskizze) Felder belegt ^_ f ϕ1 = Xi ,j jedem Feld ist ein Stein zugeordnet i,j f ϕ2 = ^^ i,j f f (X i , j → ¬ f0 _ f 0 , f 6= f 0 Xi ,j ) jedem Feld ist höchstens ein Stein zugeordnet Gültig ψ1 = ^ _ i , j f , f 0 : f (1)= f 0 (3) ψ2 = ^ _ i , j f , f 0 : f (0)= f 0 (2) f f0 f f0 (X i , j ∧ X i +1, j ) übereinander passend (X i , j ∧ X i , j +1 ) nebeneinander passend ϕ = ϕ 1 ∧ ϕ 2 ∧ ψ1 ∧ ψ 2 Aufgabe 4.4. Seien ϕ, ψ, θ ∈ F AL . Zeigen Sie mit Hilfe der aussagenlogischen Gesetze und unter Benutzung des 2. Ersetzunglemmas, dass folgende Formeln unerfüllbar sind. (a) ϕa = ¬((((θ ∧ ϕ) ∧ ¬ϕ) ∨ ψ) → ψ) (b) ϕb = ((¬(¬ψ → ¬ϕ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ)) (c) ϕc = (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬ψ → θ))) Lösung. Seien ϕ, ψ, θ ∈ F AL . Gemäß Lemma 2.9 reicht es, jeweils die Äquivalenz mit 0 zu zeigen. (a) Es gilt: ϕa = ¬((((θ ∧ ϕ) ∧ ¬ϕ) ∨ ψ) → ψ) (Ass)+2.EL ¬(((θ ∧ (ϕ ∧ ¬ϕ)) ∨ ψ) → ψ) ≡ (Tnd)+2.EL ≡ (GK)+2.EL ≡ ¬(((θ ∧ 0) ∨ ψ) → ψ) ¬((0 ∨ ψ) → ψ) (Elm)+2.EL ¬(¬(0 ∨ ψ) ∨ ψ) (DM)+2.EL ¬((¬0 ∧ ¬ψ) ∨ ψ) ≡ ≡ (Kmp)+2.EL ≡ ¬((1 ∧ ¬ψ) ∨ ψ) (Dis)+2.EL ¬((1 ∨ ψ) ∧ (¬ψ ∨ ψ)) (GK)+2.EL ¬(1 ∧ (¬ψ ∨ ψ)) ≡ ≡ (Tnd)+2.EL ≡ (Idp)+2.EL ≡ ¬(1 ∧ 1) ¬1 Kmp ≡ 0 Nach Lemma 2.9 ist ϕa also unerfüllbar. 19 alleAufgaben.tex Rev 251 2009-02-03 4 Blatt (b) Es gilt: ϕb = ((¬(¬ψ → ¬ϕ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ)) (Knt)+2.EL ≡ ((¬(ϕ → ψ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ)) (Tnd)+2.EL ≡ (0 ∧ ¬(ϕ ∧ ¬ψ)) (Kom)+(GK) ≡ 0 Nach Lemma 2.9 ist ϕb also unerfüllbar. (c) Es gilt: ϕc = (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬ψ → θ))) (Elm)+2.EL ≡ (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬¬ψ ∨ θ))) (DN)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(ψ ∨ θ))) (DM)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ (¬ψ ∧ ¬θ))) (Dis)+2.EL ≡ (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∨ ¬ψ) ∧ ¬θ)) (DM)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ (¬(ϕ ∧ ψ) ∧ ¬θ)) (DM)+2.EL (((ψ ∧ ϕ) ∨ θ) ∧ ¬((ϕ ∧ ψ) ∨ θ)) ≡ ≡ ≡ ≡ (Tnd) ≡ 0 Nach Lemma 2.9 ist ϕc als unerfüllbar. Aufgabe 4.5. Entwickeln Sie eine Prozedur, die mit Hilfe des DPLL-Algorithmus eine Klauselmenge (KNF) auf Erfüllbarkeit testet und eine erfüllende Belegung ausgibt. Hinweis. Orientieren Sie sich an der zweiten Fassung des DPLL-Algorithmus. Zum Testen können Sie zum Beispiel eine erfüllende Belegung der Klauselmenge einer Sudoku-Instanz aus Aufgabe 3.5 suchen. Lösung. Folgende Prozeduren liefern das gewünschte Ergebnis: ; Simplify formula, assuming literal is assigned true. (define (assign formula literal) (map (lambda (clause) (filter (lambda (lit) (not (= (- literal) lit))) clause)) (filter (lambda (clause) (not (member literal clause))) formula))) ; Return #t if formula is empty and else #f. (define (isEmptyFormula? formula) (null? formula)) ; Return #t if empty clause in formula and else #f. 20 alleAufgaben.tex Rev 251 2009-02-03 4 Blatt (define (containsEmptyClause? formula) (foldl (lambda (x y) (or x y)) #f (map (lambda (x) (null? x)) formula))) ; Return #t if clause is a unit clause and #f if clause is not a unit clause. (define (isUnitClause? clause) (and (not (null? clause)) (null? (rest clause)))) ; "Unit propagation". ; For each unit clause in formula, set the respective variable and simplify ; with regard to the literal. Do this until no more unit literals exist. (define (unitPropagate formula assignment) (local ((define literal (findUnitClause formula))) (if (= literal 0) (make-formass formula assignment) (unitPropagate (assign formula literal) (cons literal assignment))))) (define (findUnitClause formula) (if (empty? formula) 0 (if (isUnitClause? (first formula)) (first (first formula)) (findUnitClause (rest formula))))) ; Structure consisting of a formula and and assignment. (define-struct formass (form ass)) ; The DPLL algorithm. ; Returns an assignment extending assignment and satisfying formula if possible ; and #f otherwise. (define (DPLL formula assignment) ; Propagate unit clauses. (local ((define result (unitPropagate formula assignment)) (define simplifiedFormula (formass-form result)) (define newAssignment (formass-ass result))) ; If empty set, then satisfiable. (if (isEmptyFormula? simplifiedFormula) newAssignment ; If empty clause in formula, then unsatisfiable. (if (containsEmptyClause? simplifiedFormula) #f (local ( ; Choose literal. (define literal (first (first formula))) ; Check if satisfiable with literal set to true. (define firstResult (DPLL (assign simplifiedFormula literal) (cons literal newAssignment)))) 21 alleAufgaben.tex Rev 251 2009-02-03 4 Blatt (if (eq? firstResult #f) ; If unsuccessful, then check other option. (DPLL (assign simplifiedFormula (- literal)) (cons (- literal) newAssignment)) firstResult)))))) 22 alleAufgaben.tex Rev 251 2009-02-03 5. Blatt Aufgabe 5.1. Betrachten Sie das folgende Schaltnetz. X0 X2 =1 =1 X1 X3 ≥1 ≥1 X 10 ≥1 (a) Geben Sie eine formale Darstellung des obigen Schaltnetzes an. (b) Geben Sie die Funktion an, die von dem Schaltnetz berechnet wird. (c) Seien β0 , β1 Variablenbelegungen mit β0 (X 0 ) = 1, β0 (X 2 ) = 1, β0 (X 3 ) = 0 und β1 (X 1 ) = 0, β1 (X 10 ) = 1. Zeigen Sie mit Hilfe von Satz 2.10 aus der Vorlesung, dass f S (β0 ) = β1 gilt. Hinweis. Finden Sie eine Belegung β mit β |= ΦS , β|E = β0 und β| A = β1 . Lösung. (Lösungsskizze) (a) Definiere S = (E , F, A) durch E = {X 0 , X 2 , X 3 }, A = {X 1 , X 10 } und F :X 5 ← (X 0 ⊕ X 2 ), X 6 ← (X 3 ∨ X 5 ), X 1 ← (X 3 ⊕ X 5 ), X 7 ← (X 0 ∨ X 2 ), X 10 ← (X 6 ∨ X 7 ) (b) Es ist f S : {0, 1}E → {0, 1} A = {((0, 0, 0), (0, 0)), ((0, 0, 1), (1, 1)), ((0, 1, 0), (1, 1)), ((0, 1, 1), (0, 1)), ((1, 0, 0), (1, 1)), ((1, 0, 1), (0, 1)), ((1, 1, 0), (0, 1)), ((1, 1, 1), (1, 1))} , wobei eine Funktion von A beziehungsweise E nach {0, 1} jeweils repräsentiert wird durch die Funktionswerte der Variablen nach aufsteigendem Index sortiert. (c) Definiere eine Belegung β durch β(X 0 ) = 1, β(X 1 ) = 0, β(X 2 ) = 1, β(X 3 ) = 0, β(X 5 ) = 0, β(X 6 ) = 0, β(X 7 ) = 1,β(X 10 ) = 1, dann ist offenbar β|E = β0 und β| A = β1 und es ist leicht einzusehen, dass β |= ΦS . Mit Satz 2.10 aus der Vorlesung folgt, dass f S (β0 ) = β1 gilt. 23 alleAufgaben.tex Rev 251 2009-02-03 5 Blatt Aufgabe 5.2. Betrachten Sie die beiden folgenden Schaltnetze. ≥1 X1 X2 X3 ≥1 X1 X5 ≥1 X5 ≥1 X2 X3 (a) (b) (c) (d) Geben Sie eine formale Darstellung der beiden Schaltnetze an. Geben Sie die Funktionen f S1 , f S2 an, die von den Schaltnetzen berechnet werden. Geben Sie eine entkoppelnde Umbenennung σ an. Zeigen Sie, dass die beiden Schaltnetze nicht Äquivalent sind, indem Sie zeigen, dass ΦS1 ∪ ΦS2 σ 6|= ϕeqv , wobei ϕeqv wie in der Vorlesung definiert ist. Lösung. (Lösungsskizze) (a) Definiere S1 = (E , F 1 , A) durch E = {X 1 , X 2 , X 3 }, A = {X 5 } und F 1 :X 4 ← (X 2 ∨ X 3 ), X 5 ← ¬(X 1 ∨ X 4 ) und S2 = (E , F 2 , A) durch F 2 :X 4 ← ¬(X 2 ∨ X 3 ), X 5 ← (X 1 ∨ X 4 ) (b) Es ist f S1 : {0, 1}E → {0, 1} A = {((0, 0, 0), (1)), ((0, 0, 1), (0)), ((0, 1, 0), (0)), ((0, 1, 1), (0)), ((1, 0, 0), (0)), ((1, 0, 1), (0)), ((1, 1, 0), (0)), ((1, 1, 1), (0))} und f S2 : {0, 1}E → {0, 1} A = {((0, 0, 0), (1)), ((0, 0, 1), (0)), ((0, 1, 0), (0)), ((0, 1, 1), (0)), ((1, 0, 0), (1)), ((1, 0, 1), (1)), ((1, 1, 0), (1)), ((1, 1, 1), (1))} , wobei eine Funktion von A beziehungsweise E nach {0, 1} jeweils repräsentiert wird durch die Funktionswerte der Variablen nach aufsteigendem Index sortiert. (c) Definiere σ: vars(S2 ) → V AL , X i → X i +5 (d) Definiere eine Belegung β durch β(X 1 ) = 1, β(X 2 ) = 0, β(X 3 ) = 0, β(X 4 ) = 0, β(X 5 ) = 0, β(X 6 ) = 1, β(X 7 ) = 0, β(X 8 ) = 0, β(X 9 ) = 1, β(X 1 0) = 1, dann gilt β |= ΦS1 und β |= ΦS2 . Ausserdem ist ¡ ¢ ϕeqv = (X 1 ↔ X 6 ) ∧ (X 2 ↔ X 7 ) ∧ (X 3 ↔ X 10 ) → (X 5 ↔ X 10 ) und offensichtlich gilt β 6|= ϕeqv . Also gilt ΦS1 ∪ ΦS2 σ 6|= ϕeqv . Aufgabe 5.3. Seien Φ ⊆ F AL und ϕ, ψ ∈ F AL . Beweisen Sie, dass Φ |= ϕ und Φ |= ψ genau dann gilt, wenn Φ |= ϕ ∧ ψ gilt. Lösung. Seien Φ ⊆ F AL und ϕ, ψ ∈ F AL . Ausserdem sei β eine Variablenbelegung, die zu Φ, ϕ und ψ passt und für die β |= Φ gilt. 24 alleAufgaben.tex Rev 251 2009-02-03 5 Blatt ’⇒’ Es gelte Φ |= ϕ und Φ |= ψ. Dann gilt auch β |= ϕ und β |= ψ. Damit gilt dann JϕKβ = 1 = JψKβ . Also Jϕ ∧ ψKβ = 1, d.h. β |= ϕ ∧ ψ. Da β eine beliebige Variablenbelegung mit β |= Φ ist, gilt damit insbesondere auch Φ |= ϕ ∧ ψ. ˙ JψKβ . ’⇐’ Es gelte Φ |= ϕ∧ψ. Dann gilt auch β |= ϕ∧ψ. Damit gilt dann 1 = Jϕ ∧ ψKβ = JϕKβ ∧ β β Also JϕK = 1 = JψK d.h. β |= ϕ und β |= ψ. Da β eine beliebige Variablenbelegung mit β |= Φ ist, gilt damit insbesondere auch Φ |= ϕ und Φ |= ψ. Aufgabe 5.4. Beweisen Sie mit Hilfe der Resolution, dass die folgende Formel unerfüllbar ist: ^_ ϕ= {{X 1 , X 2 , ¬X 3 }, {X 3 , ¬X 4 , X 5 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 }, {¬X 5 }, {X 2 , X 4 }} . Lösung. Nach Resolution: 1. {X 1 , X 2 , ¬X 3 } 2. {X 3 , ¬X 4 , X 5 } 3. {X 1 , X 2 , ¬X 4 , X 5 } 4. {¬X 1 , X 2 , ¬X 4 } 5. {X 2 , ¬X 4 , X 5 } 6. {¬X 2 } 7. {¬X 4 , X 5 } 8. {¬X 5 } 9. {¬X 4 } 10. {X 2 , X 4 } 11. {X 2 } 12. ; (V) (V) (R) mit X 3 aus 1. und 2. (V) (R) mit X 1 aus 4. und 3. (V) (R) mit X 2 aus 5. und 6. (V) (R) mit X 5 aus 7. und 8. (V) (R) mit X 4 aus 9. und 10. (R) mit X 2 aus 6. und 11. Damit ist ϕ unerfüllbar. 25 alleAufgaben.tex Rev 251 2009-02-03 6. Blatt Aufgabe 6.1. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: {X 0 , X 0 → X 1 , X 1 → X 2 } `H ¬X 3 → X 2 Lösung. Es gilt: 1. X 0 2. X 0 → X 1 3. X 1 4. X 1 → X 2 5. X 2 6. (X 2 → (¬X 3 → X 2 )) 7. ¬X 3 → X 2 (V) (V) (MP) auf 1. und 2. (V) (MP) auf 3. und 4. (Ax1) mit ϕ = X 2 , ψ = ¬X 3 (MP) auf 5. und 6. Aufgabe 6.2. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: {X 0 → X 1 , X 1 → X 2 } `N X 0 → X 2 Lösung. Es gilt: 6. 1. X 0 (A) 2. X 0 → X 1 (V) 3. X 1 (el-→) auf 1. und 2. 4. X 1 → X 2 (V) 5. X 2 (el-→) auf 4. und 3. X0 → X2 (in-→) auf 1.–5. Aufgabe 6.3. Seien Φ ⊆ F [¬, →]AL und ϕ ∈ F [¬, →]AL . Zeigen Sie: Wenn Φ `H ϕ gilt, dann gilt Φ |= ϕ. Hinweis. Sie dürfen annehmen, dass die Lemmas 2.17 und 2.18 gelten. Lösung. Angenommen es gilt Φ `H ϕ. Dann existiert eine (Ableitungs-)Folge ϕ0 , . . . , ϕn−1 mit ϕn−1 = ϕ von Formeln aus F [¬, →]AL . (Für jedes i < n gelten die drei Bedingungen aus dem Skript.) Wir beweisen per Induktion über den Aufbau der Folge, dass für jedes i < n gilt: Φ |= ϕi . Ist i = 0, so gibt es genau zwei Fälle. 26 alleAufgaben.tex Rev 251 2009-02-03 6 Blatt 1. Fall (V) ϕ0 ∈ Φ. Dann gilt offenbar Φ |= ϕ0 . 2. Fall (Ax) ϕ0 ist von der Gestalt (Ax1), (Ax2) oder (Ax3). Dann gilt nach Lemma 2.17 |= ϕ0 und damit insbesondere Φ |= ϕ0 . Sei nun 0 < i < n und für alle ϕi 0 mit 0 ≤ i 0 < n gelte Φ |= ϕi 0 . Dann gibt es drei Fälle: 1. Fall (V) ϕi ∈ Φ. Dann gilt offenbar Φ |= ϕi . 2. Fall (Ax) ϕi ist von der Gestalt (Ax1), (Ax2) oder (Ax3). Dann gilt nach Lemma 2.17 |= ϕi und damit insbesondere Φ |= ϕi . 3. Fall (MP) Es existieren j , k < i mit ϕk = ϕ j → ϕi . Da j , k < i , gilt Φ |= ϕ j und Φ |= ϕk . Nach Lemma 2.18 gilt {ϕ j , ϕk } = {ϕ j , ϕ j → ϕi } |= ϕi . Damit gilt für jede zu Φ, ϕi , ϕ j und ϕk passende Variablenbelegung β mit β |= Φ: β |= ϕ j , β |= ϕk und damit auch β |= ϕi , also Φ |= ϕi . Aufgabe 6.4. Betrachten Sie folgenden Graphen, wobei V0 die Menge der kreisförmigen Knoten und V1 die Menge der rechteckigen Knoten sein soll. 1 3 5 7 9 2 4 6 8 10 Überprüfen Sie mit Hilfe des Markierungsalgorithmus für Horn-Formeln, ob für Spieler Null eine Gewinnstrategie mit s = 1 und t = 10 besteht. Lösung. Die Formel zum Graphen sieht wie folgt aus: ´ ^ ^ ^ ³¡ ^ ¢ ψG,V0 = X t ∧ (X j → X i ) ∧ X j → Xi i ∈V0 (i , j )∈E i ∈V \V0 j : (i , j )∈E = X 10 ^ ∧ {X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 , X 10 → X 9 } ^ ∧ {(X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 , 1 → X 10 } ^ ≡ {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 , X 10 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } Zu zeigen: ψG,V0 |= X 1 . 27 alleAufgaben.tex Rev 251 2009-02-03 6 Blatt Gemäßt Markierungsalgorithmus erhalten wir: 1 I M ; {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 , X 10 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } 2 {X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } 3 {X 7 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 } 4 {X 7 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , 1 → X 8 } 5 {X 7 , X 8 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , 1 → X 5 , X 6 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , 1 → X 8 } 6 {X 4 , X 5 , X 7 , X 8 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , 1 → X 5 , X 6 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ) → X 2 , 1 → X 4 , X 3 → X 6 , 1 → X 8 7 {X 5 , X 7 , X 8 , X 9 , X 10 } {1 → X 10 , X 6 → X 1 , X 2 → X 3 , 1 → X 5 , X 6 → X 7 , 1 → X 7 , X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ) → X 2 , 1 → X 4 , X 3 → X 6 , 1 → X 8 } Damit gilt ψG |= X i für alle X i ∈ {X 5 , X 7 , X 8 , X 9 , X 10 }, aber ψG 6|= X 1 . 28 alleAufgaben.tex Rev 251 2009-02-03 7. Blatt Aufgabe 7.1. (a) Geben Sie eine Signatur ΣR und eine Struktur S R für den geordneten Körper der reellen Zahlen an. (b) Geben Sie ΣR -Terme t 0 und t 1 an, so dass 1) t 0 dem Polynom (2x 02 · x 1 ) + 3x 1 entspricht und 2) die Interpretationen von t 1 alle nicht negative reellen Zahlen liefern. Lösung. (a) Die Signatur für den geordneten Körper der reellen Zahlen könnte zum Beispiel wie folgt aussehen: ΣR = {0̃, 1̃, +//2, ×//2, </2} Die ΣR -Struktur S = (T S ,C S , R S , F S ) für den geordneten Körper der reellen Zahlen läßt sich dann wie folgt definieren: S =TS =R Trägermenge C S = {0̃S , 1̃S } R S = {<S } S S S mit 0̃S = 0 ∈ R und 1̃S = 1 ∈ R Konstanten mit (a, b) ∈<S gdw. a < b für alle a, b ∈ S = R Relationen S S F = {+ , × } mit + (a, b) = a + b und × = ab für alle a, b ∈ S Funktionen . 1) Sei t 0 = +(×(+(×(x 0 , x 0 ), ×(x 0 , x 0 )), x 1 ), +(+(x 1 , x 1 ), x 1 )). Dann entspricht t 0 dem Polynom (2x 02 · x 1 ) + 3x 1 . 2) Sei t 1 = ×(x 0 , x 0 ). Dann liefern die Interpretationen von t 1 offenbar alle nicht negativen reellen Zahlen. (b) Aufgabe 7.2. (a) Sei ΣBi b = {Buch/3, Nutzer/2, Entliehen/2}. Betrachten Sie folgenden Datenbankzustand DB: T DB = {Wilke, Kähler, Schnoor, Thöle, Khan, Kuertz, Schloß Gripsholm, Tucholsky, Die Tore der Welt, Die Säulen der Erde, Follet, N1, N2, N3, N4, N5, N6, B1, B2, B3, B4, B5, B6} , DB Buch = {(B1, Tucholsky, Schloß Gripsholm), (B2, Follet, Die Tore der Welt), (B3, Follet, Die Tore der Welt), (B4, Follet, Die Tore der Welt), (B5, Follet, Die Säulen der Erde), (B6, Follet, Die Säulen der Erde)} , NutzerDB = {(N1, Wilke), (N2, Kähler), (N3, Schnoor), (N4, Thöle), (N5, Khan), (N6, Kuertz)} , EntliehenDB = {(N1, B1), (N1, B2), (N2, B4), (N3, B6), (N5, B5), (N6, B3)} . Geben Sie ΣBi b -Formeln an, die folgende Fragen beantworten: 29 alleAufgaben.tex Rev 251 2009-02-03 7 Blatt 1) Gibt es zwei Nutzer? 2) Gibt es zwei Exemplare von einem Buch? 3) Sind alle Bücher verliehen? 4) Hat ein Nutzer alle Bücher eines Autors entliehen? (b) Betrachten Sie die Signatur für Graphen ΣGr aph = {E /2}. Geben Sie ΣGr aph -Formeln an, die folgende Fragen beantworten: 1) Gibt es isolierte Knoten? 2) Gibt es Knoten mit mindestens 2 Nachbarn? 3) Hat jeder Knoten eine Kante zu jedem anderen Knoten? Lösung. (a) 1) ∃x 0 ∃x 1 ∃x 2 ∃x 3 (Nutzer(x 0 , x 1 ) ∧ Nutzer(x 2 , x 3 ) ∧ ¬x 0 = x 2 ) 2) ∃x 0 ∃x 1 ∃x 2 ∃x 3 (Buch(x 0 , x 1 , x 2 ) ∧ Buch(x 3 , x 1 , x 2 ) ∧ ¬x 0 = x 3 ) 3) ∀x 0 ∀x 1 ∀x 2 (Buch(x 0 , x 1 , x 2 ) → ∃x 3 Entliehen(x 0 , x 3 ) 4) ∃x 0 ∃x 1 (Nutzer(x 0 , x 1 ) → ∃x 3 ∃x 2 ∀x 4 (Buch(x 2 , x 3 , x 4 ) → Entliehen(x 0 , x 2 )) (Hier gehen wir davon aus, dass mit alle Bücher eines Autors, nur solche Bücher eines Autors gemeint sind, die unterschiedliche Titel haben.) (b) In dieser Aufgabe gehen wir von gerichteten Graphen aus. Die Relation E ist also nicht unbedingt symmetrisch. 1) ∃x 0 ∀x 1 ¬(x 0 E x 1 ∨ x 1 E x 2 ). 2) ∃x 0 ∃x 1 ∃x 2 (¬(x 0 = x 1 ∨ x 1 = x 2 ∨ x 2 = x 0 ) ∧ (x 0 E x 1 ∨ x 1 E x 0 ) ∧ (x 0 E x 2 ∨ x 2 E x 0 )) 3) ∀x 0 ∀x 1 (¬x 0 = x 1 → (x 0 E x 1 ∨ x 1 E x 0 )) Aufgabe 7.3. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: (a) {X 1 → (X 2 → X 3 ), X 1 → X 2 , ¬¬X 1 } `H X 3 (b) {¬X 1 → ¬X 2 , X 3 → X 4 } `N (X 2 ∧ X 3 ) → (X 1 ∧ X 4 ) Lösung. (a) Es gilt: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. X 1 → (X 2 → X 3 ) (X 1 → (X 2 → X 3 )) → ((X 1 → X 2 ) → (X 1 → X 3 )) (X 1 → X 2 ) → (X 1 → X 3 ) X1 → X2 X1 → X3 ¬¬X 1 ¬¬X 1 → (¬¬¬¬X 1 → ¬¬X 1 ) ¬¬¬¬X 1 → ¬¬X 1 (¬¬¬¬X 1 → ¬¬X 1 ) → (¬X 1 → ¬¬¬X 1 ) ¬X 1 → ¬¬¬X 1 (¬X 1 → ¬¬¬X 1 ) → (¬¬X 1 → X 1 ) ¬¬X 1 → X 1 X1 X3 Damit gilt {X 1 → (X 2 → X 3 ), X 1 → X 2 , ¬¬X 1 } `H X 3 . (b) Es gilt: 30 alleAufgaben.tex Rev 251 2009-02-03 (V) (Ax2) (MP) (V) (MP) (V) (Ax1) (MP) (Ax3) (MP) (Ax3) (MP) (MP) (MP) aus 1. & 2. aus 3. & 4. aus 6. & 7. aus 9. & 10. aus 10. & 11. aus 6. & 12. aus 5. & 13. 7 Blatt 1. (X 2 ∧ X 3 ) (A) 2. X 3 (el-∧-l) aus 1. 3. X 2 (el-∧-r) aus 1. 4. ¬X 1 (A) 5. ¬X 1 → ¬X 2 (V) 6. ¬X 2 (el-→) aus 4. & 5. 7. 0 (el-¬) aus 3. & 6. 8. ¬¬X 1 (in-¬) aus 4.–7. 9. X 1 (el-¬¬) aus 8. 10. X 3 → X 4 (V) 11. X 4 (el-→) aus 2. & 10. 12. X 1 ∧ X 4 (in-∧) aus 9. & 11. 13. (X 2 ∧ X 3 ) → (X 1 ∧ X 4 ) (in-→) aus 1.–12. Damit gilt: {¬X 1 → ¬X 2 , X 3 → X 4 } `N (X 2 ∧ X 3 ) → (X 1 ∧ X 4 ). Aufgabe 7.4. Implementieren Sie den Markierungsalgorithmus für HornFormeln. Die Eingabe soll dabei eine Hornformel dargestellt als Klauselmenge M sein. Ausgegeben werden soll die Menge folg(M ) oder »unerfüllbar«, falls die Hornformel nicht erfüllbar ist. Lösung. Folgende Prozeduren liefern das gewünschte Ergebnis: ; Returned if a passed horn formula turns out to be unsatisfiable. (define-struct unsatisfiable ()) ; The HornSAT algorithm. ; Computes all implications of the passed list of horn clauses. ; Returns that list, if it is not empty, and (make-unsatisfiable) otherwise. (define (HornSAT M) (let ((implications (paraHornSAT M ’()))) (if (null? implications) (make-unsatisfiable) implications))) (define (paraHornSAT M I) ; check if exists (1 -> Xi) in M where Xi not in I (let ((newTatsachenKlausel (findNewTatsachenklausel M I))) (if (>= newTatsachenKlausel 0) (let( ; if that is the case, append Xi to I... (neuesI (append I (list newTatsachenKlausel))) ; ... and remove its negation from all left sides... (neuesM (map (lambda (psi) (if (> (length psi) 1) (filter (lambda (x) (not (eq? (- x) newTatsachenKlausel))) psi) psi)) 31 alleAufgaben.tex Rev 251 2009-02-03 7 Blatt M))) ; ... and go on searching. (paraHornSAT neuesM neuesI)) ; if not, return I I))) ; Checks if exists (1 -> Xi) in M where Xi not in I. ; Returns i, if such an Xi exists, and -1 otherwise. (define (findNewTatsachenklausel M I) (if (null? M) -1 (if (and (eq? (length (car M)) 1) (not (contains I (car (car M))))) (car (car M)) (findNewTatsachenklausel (cdr M) I)))) ; Checks whether the passed list contains the specified element. (define (contains list element) (if (null? list) #f (or (= (car list) element) (contains (cdr list) element)))) 32 alleAufgaben.tex Rev 251 2009-02-03 8. Blatt Aufgabe 8.1. (a) Geben Sie eine Signatur Σt r ee für gerichtete, verwurzelte Bäume an. (b) Betrachten Sie die folgenden beiden Bäume: w 0 1 a 3 2 4 d e c b g f h Geben Sie zu diesen Bäumen passende Σt r ee -Strukturen an. (c) Geben Sie eine Σt r ee -Struktur an, die kein Baum ist. Lösung. (a) Die Signatur könnte zum Beispiel wie folgt aussehen: Σt r ee = {W, child /2} . (b) Eine Σt r ee -Struktur S1 zum ersten Baum ist S 1 = {0, 1, 2, 3, 4} Trägermenge childS1 = {(1, 0), (4, 1), (2, 0), (3, 0)} W S1 = 0 Relation Konstante Die Σt r ee -Struktur S2 zum zweiten Baum ist S 2 = {a, b, c, d , e, f , g , h, w} = {(a, w), (b, w), (c, w), (d , a), (e, a), ( f , a), (g , c), (h, c)} S1 =w child W Trägermenge S1 Relation Konstante (c) Sei S die folgende Σt r ee -Struktur: S = {0, 1, 2} Trägermenge childS = {(1, 0), (2, 1), (0, 2)} WS=0 Relation Konstante Dann ist S kein Baum. Aufgabe 8.2. (a) Sei ΣOr d = {</2} die Signatur der Ordnungen. Welche der folgende Formeln sind wahr bezüglich der Struktur der natürlichen Zahlen mit natürlicher Ordnung Nlt beziehungsweise bezüglich der Struktur der reellen Zahlen Rlt mit natürlicher Ordnung? 33 alleAufgaben.tex Rev 251 2009-02-03 8 Blatt 1) ∃x 0 ∀x 1 (x 0 < x 1 ∨ x 0 = x 1 ) 2) ∀x 0 ∀x 1 (x 0 < x 1 → ∃x 2 (x 0 < x 2 ∧ x 2 < x 1 )) 3) ∀x 0 ∀x 1 ((x 0 < x 1 ∨ x 0 = x 1 ) ∨ x 1 < x 0 ) (b) Sei Σ Ar = {0̃, 1̃, +//2, ×//2} die Signatur der Arithmetik. Formulieren Sie folgende Aussagen als Formeln: 1) Jede natürliche Zahl ist Summe von vier Quadratzahlen (Satz von Lagrange). 2) Alle geraden Zahlen ≥ 4 sind Summe von zwei Primzahlen (Vermutung von Goldbach). 3) Es gibt unendliche viele Primzahlzwillinge. Hinweis. Ein Primzahlzwilling ist ein Paar (p, p + 2), wobei p und p + 2 Primzahlen sind. Lösung. (a) 1) In der Struktur Nlt ist die Aussage wahr, da es in den natürlichen Zahlen ein kleinstes Element gibt. In der Struktur Rlt ist die Aussage falsch, da es zu jeder reellen Zahl kleinere reelle Zahlen gibt. 2) In der Struktur Nlt ist die Aussage falsch, da zum Beispiel zwischen den Zahlen 0 und 1 keine weiteren Zahlen sind. In der Struktur Rlt ist die Aussage wahr, da es zu je zwei verschiedenen reellen Zahlen eine reelle Zahl gibt, die zwischen den beiden Zahlen liegt. 3) In der Struktur Nlt und in der Struktur Nlt ist die Aussage wahr, da für je zwei Zahlen a, b eine der drei Möglichkeiten a < b, a = b oder a > b gilt. (b) Im Folgenden verwenden wir PRIMZ(x 0 ) als eine abkürzende Schreibweise für (¬x 0 = 1̃ ∧ ∀x 3 (∃x 4 x 0 = ×(x 3 , x 4 ) → (x 3 = 1̃ ∨ x 3 = x 0 )) . ( 1 falls β(x 0 ) Primzahl β Man kann sich überlegen, dass gilt: JPRIMZ(x 0 )KN = 0 sonst. 1) Betrachte die folgende Formel: ∀x 0 ∃x 1 ∃x 2 ∃x 3 ∃x 4 x 0 = (x 1 × x 1 ) + (x 2 × x 2 ) + (x 3 × x 3 ) + (x 4 × x 4 ) . 2) Betrachte die folgende Formel: ³ ¡ ¢ ∀x 0 ∃x 1 ¬x 1 = 0̃ ∧ ¬x 1 = 1̃ ∧ x 0 = (1̃ + 1̃) × x 1 ´ → ∃x 1 ∃x 2 (PRIMZ(x 1 ) ∧ PRIMZ(x 2 ) ∧ x 0 = x 1 + x 2 ) . 3) Betrachte die folgende Formel: ∀x 0 ∃x 1 PRIMZ(x 0 + x 1 ) ∧ PRIMZ(x 0 + x 1 + 1̃ + 1̃) . Aufgabe 8.3. Betrachten Sie die Signatur der Verwandtschaftsbeziehungen ΣV B und gehen Sie davon aus, dass folgende Symbole in ΣV B enthalten sind: Elternteil/2, Geschwister/2, Onkel/2, Tante/2, Cousin/2, mutter//1, vater//1, Weiblich/1, Männlich/1 34 alleAufgaben.tex Rev 251 2009-02-03 8 Blatt (a) Formalisieren Sie mit Hilfe der angegebenen Symbole folgende Verwandtschaftsbeziehungen: 1) x ist Vater von y genau dann, wenn x männliches Elternteil von y ist, 2) x ist Onkel von y genau dann, wenn x Bruder der Mutter oder des Vaters von y ist, 3) x ist Tante von y genau dann, wenn x Schwester der Mutter oder des Vaters von y ist, 4) x ist Cousin von y genau dann, wenn . . . . (b) Beweisen Sie, dass die folgende Formel eine logische Folgerung ist: ∀x 0 ∀x 1 ∀x 2 (Onkel(x 2 , x 0 )∧∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))) → Onkel(x 2 , x 1 )) . (c) Zeigen Sie (durch Angabe eines konkreten Beispiels), dass ∀x 0 ∀x 1 (∃x 2 (Onkel(x 0 , x 2 ) ∧ Onkel(x 1 , x 2 )) → Geschwister(x 0 , x 1 )) keine logische Folgerung aus den in (b) und der Vorlesung betrachteten Formeln ist. Lösung. (Lösungsskizze) (a) 1) ∀x∀y(vater(y) = x ↔ (Männlich(x) ∧ Elternteil(x, y)) 2) ∀x∀y(Onkel(x, y) ↔ (Männlich(x) ∧ ∃z(Elternteil(z, y) ∧ Geschwister(x, z))) 3) ∀x∀y(Tante(x, y) ↔ (Weiblich(x) ∧ ∃z(Elternteil(z, y) ∧ Geschwister(x, z))) 4) ∀x∀y(Cousin(x, y) ↔ (Männlich(x)∧∃z 1 ∃z 2 (Elternteil(z 1 , x)∧Elternteil(z 2 , y)∧ Geschwister(z 1 , z 2 ))) (b) Sei ϕ = ∀x 0 ∀x 1 ∀x 2 (Onkel(x 2 , x 0 )∧∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))) → Onkel(x 2 , x 1 )) und sei Φ die Menge der Formeln aus (a) und aus der Vorlesung. Zu zeigen: Φ |= ϕ, d.h. es ist zu zeigen, dass für alle ΣV B -Strukturen S und alle passenden S-Belegungen β, für die S, β |= ψ für alle ψ ∈ Φ gilt, auch schon S, β |= ϕ gilt. Sei also S eine ΣV B -Struktur und sei β eine passende S-Belegung mit S, β |= ψ für alle ψ ∈ Φ . β Nach Definition gilt JϕKS = 1 genau dann, wenn für alle b 0 , b 1 , b 2 ∈ S gilt: β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] J(Onkel(x 2 , x 0 ) ∧ ∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))) → Onkel(x 2 , x 1 ))KS =1 . Seien also b 0 , b 1 , b 2 ∈ S. Gilt β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] JOnkel(x 2 , x 0 ) ∧ ∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))KS =0 , so ist nach Definition der Semantik von → β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] J(Onkel(x 2 , x 0 ) ∧ ∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))) → Onkel(x 2 , x 1 ))KS Dann sind wir fertig. Nehmen wir also an, dass gilt: β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] JOnkel(x 2 , x 0 ) ∧ ∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))KS 35 alleAufgaben.tex Rev 251 2009-02-03 =1 . =1 . 8 Blatt Dann gilt (b 2 , b 0 ) ∈ OnkelS und für alle b 3 ∈ S gilt (b 3 , b 0 ) ∈ ElternteilS genau dann wenn (b 3 , b 1 ) ∈ ElternteilS . Es bleibt zu zeigen, dass folgt (b 2 , b 1 ) ∈ OnkelS . Mit Aufgabe a,2) folgt aus (b 2 , b 0 ) ∈ OnkelS : β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] JMännlich(x 2 ) ∧ ∃z(Elternteil(z, x 0 ) ∧ Geschwister(x 2 , z))KS =1 , also (b 2 ) ∈ MännlichS und es existiert ein b 4 ∈ S mit (b 4 , b 0 ) ∈ ElternteilS und (b 2 , b 4 ) ∈ GeschwisterS . Dann gilt aber auch (b 4 , b 1 ) ∈ ElternteilS und damit β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] JMännlich(x 2 ) ∧ ∃z(Elternteil(z, x 1 ) ∧ Geschwister(x 2 , z))KS β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] Mit Aufgabe a,2) folgt dann JOnkel(x 2 , x 1 )KS =1 . = 1, also insgesamt β[b 0 /x 0 ,b 1 /x 1 ,b 2 /x 2 ] J(Onkel(x 2 , x 0 ) ∧ ∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))) → Onkel(x 2 , x 1 ))KS Damit gilt die Behauptung. (c) Sei ϕ = ∀x 0 ∀x 1 (∃x 2 (Onkel(x 0 , x 2 ) ∧ Onkel(x 1 , x 2 )) → Geschwister(x 0 , x 1 )). Es reicht zu zeigen, dass es eine Struktur S gibt, mit S |= Φ (wobei Φ wieder die Menge der Formeln aus (a) sei) und S 6|= ϕ. Im folgenden definieren wir eine Struktur, die folgende Verwandtschaftsbeziehungen widerspiegelt: ∞ ∞ 1 2∞3 4 5 Sei S die folgende ΣV B -Struktur: • Trägermenge S = {1, 2, 3, 4, 5}, • ... Aufgabe 8.4. Analog zum Beispiel Gegenseitiger Ausschluss sollen in dieser Aufgabe Eigenschaften eines Fahrstuhls modelliert werden. Betrachten Sie dazu die Signatur ΣF S = { < /2, E 0 /1, E 1 /1, E 2 /1, E 3 /1, C 0 /1,C 1 /1,C 2 /1,C 3 /1, O 0 /1,O 1 /1,O 2 /1,O 3 /1, H /1} und eine ΣF S -Struktur S mit der Trägermenge S = N und der natürlichen Ordnung <S . Die Elemente der Trägermenge werden dann als Zeitpunkte interpretiert. Ausserdem interpretieren wir 36 alleAufgaben.tex Rev 251 2009-02-03 =1 . 8 Blatt • E iS als Zeitpunkte, zu denen sich der Fahrstuhl in der Etage i befindet, • C iS als Zeitpunkte, zu denen der Wunsch besteht, auf Etage i einzusteigen, • O iS als Zeitpunkte, zu denen der Wunsch besteht, auf Etage i auszusteigen und • H S als Zeitpunkte, zu denen der Fahrstuhl anhält (und die Tür geöffnet hat). Als (physikalische) Forderung an den Fahrstuhl können Sie annehmen, dass ∀x _ i <4 E i (x) ∧ ∀x ^ (¬E i (x) ∨ ¬E j (x)) . i < j <5 Beschreiben Sie die folgenden Anforderung mit Hilfe von Formeln: (a) Wenn ein Wunsch vorliegt, wird er erfüllt. (b) Wenn kein Wunsch vorliegt, fährt der Fahrstuhl nicht. (c) Der Fahrstuhl hält an, falls ein Wunsch bezüglich der aktuellen Etage vorliegt. Aufgabe 8.5. Sei G ein Graph. Betrachten Sie die Graphstruktur ΣGr aph = {E /2}. Geben Sie eine Formel an, die die Existenz eines Weges der Länge 10 mit nur zwei Variablen beschreibt. Aufgabe 8.6. Sei ΣB B = {</2, +1//1, P /1} eine Signatur. Betrachten Sie eine ΣB B -Strukur S mit Trägermenge S = N, der natürlichen Ordnung <S , der Nachfolgerfunktion +1S : N → N, i 7→ i + 1 und einem Prädikat P . Geben Sie eine Formel ϕ an, so dass ¯ S |= ¯ ϕ genau dann,¯ wenn ¯ ¯ für alle i ∈ N gilt:¯ ¯ ¯ ¯ 0 ≤ { j j < i und P ( j )} − ¯{ j ¯ j < i und ¬P ( j )}¯ ≤ 5. 37 alleAufgaben.tex Rev 251 2009-02-03 9. Blatt Aufgabe 9.1. Sei ΣK = {Kino/2, Film/3, Progr/3} die Signatur für eine (einfache) Kinodatenbank. Betrachten Sie den folgenden Datenbankzustand K: T K = { Metro, CinemaxX, Neues Studio, Holtenauer Straße, Wilhelminenstraße, Kaistraße, Bedtime Stories, Tintenherz, Transporter 3, Willkommen bei den Sch’tis, Adam Shankman, Adam Sandler, Iain Softley, Eliza Bennett, Olivier Megaton, Jason Statham, Dany Boon, Kad Merad, 15, 17, 18, 19, 20, 23} , K Kino = {(Metro, Holtenauer Straße), (CinemaxX, Kaistraße), (Neues Studio, Wilhelminenstraße)} , FilmK = {(Bedtime Stories, Adam Shankman, Adam Sandler), (Tintenherz, Iain Softley, Eliza Bennett), (Transporter 3, Olivier Megaton, Jason Statham), (Willkommen bei den Sch’tis, Dany Boon, Kad Merad)} , K Progr = {(Metro, Tintenherz, 15), (Metro, Tintenherz, 20), (CinemaxX, Tintenherz, 15), (CinemaxX, Tintenherz, 17), (Neues Studio, Bedtime Stories, 17), (Neues Studio, Bedtime Stories, 19), (CinemaxX, Bedtime Stories, 15), (CinemaxX, Bedtime Stories, 18), (CinemaxX, Bedtime Stories, 20), (CinemaxX, Bedtime Stories, 23), (CinemaxX, Transporter 3, 15), (CinemaxX, Transporter 3, 17), (CinemaxX, Transporter 3, 20), (CinemaxX, Transporter 3, 23), (Neues Studio, Willkommen bei den Sch’tis, 17), (Neues Studio, Willkommen bei den Sch’tis, 20), (CinemaxX, Willkommen bei den Sch’tis, 18)} . Die Kino-Relation enthält (Kino, Strasse)-Paare, die Film-Relation enthält (Filmtitel, Regisseur, Schauspieler)Paare und die Progr-Relation enthält (Kino, Filmtitel, Uhrzeit)-Paare. Betrachten Sie weiterhin die folgenden drei Formeln: ϕ0 = Kino(x 0 , x 1 ) ϕ1 = Kino(x 0 , x 1 ) ∧ ∀x 1 ∀x 2 ∀x 3 (Film(x 1 , x 2 , x 3 ) → ∃x 2 Progr(x 0 , x 1 , x 2 )) ³ ´ ¡ ¢ ϕ2 = ∀x 3 ∀x 4 ∃x 0 ∃x 1 ∃x 2 (Film(x 0 , x 1 , x 2 ) ∧ Progr(x 3 , x 0 , x 4 ) → ∃x 1 Progr(x 3 , x 1 , x 4 ) ¡ ¢ ∧ Kino(x 0 , x 1 ) ∨ ∃x 2 Film(x 1 , x 2 , x 0 ) (a) Geben Sie zur Anfrage ϕi die Anfrageergebnisse ϕi (K2 ) für i ∈ {0, 1, 2} an. (b) Beschreiben Sie umgangssprachlich die Anfragen ϕ0 , ϕ1 und ϕ2 . Lösung. (a) Die Anfrageergebnisse sehen wie folgt aus: ϕ0 (K2 ) = {(Metro, Holtenauer Straße), (CinemaxX, Kaistraße), (Neues Studio, Wilhelminenstraße)} , ϕ1 (K2 ) = {(CinemaxX, Kaistraße)} und ϕ2 (K2 ) = ϕ0 (K2 ) ∪ {(Adam Sandler, Bedtime Stories), (Eliza Bennett, Tintenherz), (Jason Statham, Transporter 3), (Kad Merad, Willkommen bei den Sch’tis)} 38 alleAufgaben.tex Rev 251 2009-02-03 9 Blatt (b) ϕ0 entspricht: Finde alle Kinos. ϕ1 entspricht: Finde alle Kinos, so dass jeder Film mindestens einmal im Programm ist. ϕ2 entspricht: Falls für alle passenden Paare von Kino und Zeiten ein Filmtitel existiert (trivial erfüllt), dann gib alle (Kino, Strasse)-Paare und alle (Schauspieler, Titel)Paare aus. Aufgabe 9.2. Formulieren Sie die folgenden umgangssprachlichen Anfragen als ΣK -Formeln: (a) Finde alle Titel von Filmen, die in mindestens zwei Kinos im Programm sind. (b) Welche Schauspieler spielen in Filmen, die in einem Kino zu mindestens zwei Zeiten im Programm sind? Lösung. (Lösungsskizze) (a) Setze ϕa = ∃x 1 ∃x 2 ∃x 3 ∃x 4 ∃x 5 ∃x 6 ∃x 7 ∃x 8 ¡ Kino(x 1 , x 2 ) // es gibt Kino1 ∧ Kino(x 3 , x 4 ) // es gibt Kino2 ∧ ¬x 1 = x 3 // Kino1 und Kino2 sind verschieden ∧ Film(x 0 , x 5 , x 6 ) // es gibt Film1 ∧ Progr(x 1 , x 0 , x 7 ) ∧ Progr(x 3 , x 0 , x 8 ) // Film1 lauft in Kino1 ¢ // Film1 laeuft in Kino2 (b) Setze ϕb = ∃x 1 ∃x 2 ∃x 3 ∃x 4 ∃x 5 ∃x 6 ¡ Kino(x 1 , x 2 ) // es gibt Kino1 ∧ Film(x 3 , x 4 , x 0 ) // es gibt Film1 ∧ Progr(x 1 , x 3 , x 5 ) // Film1 laeuft in Kino1 zu Zeit1 ∧ Progr(x 1 , x 3 , x 6 ) ¢ ∧ ¬x 5 = x 6 // Film1 laeuft in Kino1 zu Zeit2 // Zeit1 und Zeit2 sind verschieden Aufgabe 9.3. Seien Σ eine Signatur, t ein Σ-Term, S eine Σ-Struktur und β, β0 zu t passende S-Belegungen. β β0 Zeigen Sie: Ist β|vars(t ) = β0 |vars(t ) , so gilt Jt KS = Jt KS . Lösung. Es gelte β|vars(t ) = β0 |vars(t ) (ansonsten ist nichts zu zeigen). 1. Basiszuordnung: Ist t = c für ein c ∈ Σ, dann gilt: β β β0 Jt KS = Jc KS = c S = Jt KS . Ist t = x i für ein i ∈ N, dann gilt: β β β0 β0 Jt KS = Jx i KS = β(x i ) = β0 (x i ) = Jx i KS = Jt KS . 39 alleAufgaben.tex Rev 251 2009-02-03 9 Blatt 2. Induktionsregeln: Ist t von der Form t = f (t 0 , . . . , t n ) mit Termen t 0 , . . . , t n und n-stelliger Funktion f //n ∈ Σ, dann gilt: β β Jt KS = J f (t 0 , . . . , t n )KS β β = f S (Jt 0 KS , . . . , Jt n KS ) β0 β0 I.V. = f S (Jt 0 KS , . . . , Jt n KS ) β0 = J f (t 0 , . . . , t n )KS β0 = Jt KS . Aufgabe 9.4. Basierend auf verschiedenen Lemmas wurde in der Vorlesung der Auswertungsalgorithmus für prädikatenlogische Formeln skizziert (siehe Folie 53). Ergänzen Sie den Algorithmus um Pseudo-Code zur Auswertung von (a) negierten Formeln und (b) universiell quantifizierten Formeln. Lösung. (a) negierten Formeln: if ϕ = ¬ψ then return S n \ Eval(ψ, n, S) (b) universiell quantifizierten Formeln: if ϕ = ∀x i ψ then if i < n then let T = ; let T 0 = Eval(ψ, n, S) for each (b 0 , . . . , b n−1 ) ∈ T 0 © ª let L = (b 0 , . . . , b i −1 , a, b i +1 , . . . , b n−1 | a ∈ S) if L ⊆ T 0 then let T = T ∪ L return T else let T = ; let T 0 = Eval(ψ, i + 1, S) for each (b 0 , . . . , b i ) ∈ T 0 © ª let L = (b 0 , . . . , b i −1 , a) | a ∈ S) © ª if L ⊆ T 0 then let T = T ∪ (a 0 , . . . a n−1 ) | (a 0 , . . . , a i ) ∈ L return T 40 alleAufgaben.tex Rev 251 2009-02-03 10. Blatt Aufgabe 10.1. Sei Σ = {R/1, P /1,Q/2} eine Signatur. Sind die folgenden Formelpaare tatsächlich äquivalent? Begründen Sie Ihre Aussage. (a) ∀x 1 ∃x 2 x 1 = x 2 ≡ ∃x 2 ∀x 1 x 1 = x 2 (b) ∀x 1 ∃x 2 ¬x 1 = x 2 ≡ ∀x 2 ¬∀x 1 x 1 = x 2 (c) ∀x 1 (R(x 0 ) ∧Q(x 0 , x 1 )) ≡ R(x 0 ) ∧ ∀x 1 Q(x 0 , x 1 ) (d) ∀x 1 (R(x 1 ) ↔ P (x 1 )) ≡ ∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 ) (e) ∃x 1 (P (x 1 ) ↔ R(x 1 )) ≡ ∃x 1 P (x 1 ) ↔ ∃x 1 R(x 1 ) Lösung. Sei S Struktur mit Trägermenge S = {0, 1}, R S = {(0)} und P S = {(1)}. (a) Die beiden Formeln sind nicht äquivalent. β β Es gilt J∀x 1 ∃x 2 x 1 = x 2 KS = 1 6= 0 = J∃x 2 ∀x 1 x 1 = x 2 KS für eine beliebige Variablenbelegungen β (keine freien Variablen). (b) Die beiden Formeln sind äquivalent. Nach Lemma 3.14 gilt ∃x 2 ¬ϕ ≡ ¬∀x 2 ϕ. Lemma 3.13 und Variablenumbenennung (Lemma 3.17 mit π(x 1 ) = x 2 und π(x 2 ) = x 1 ) liefern das Ergebnis. (c) Die beiden Formeln sind äquivalent. Nach Lemma 3.15 gilt ϕ ∧ ∀x i ψ ≡ ∀x i (ϕ ∧ ψ) falls x i ∉ free(ϕ). Da x 1 offenbar nicht frei in R(x 0 ) vorkommt, sind beide Formeln äquivalent. (d) Die beiden Formeln sind nicht äquivalent. β β Es gilt J∀x 1 (R(x 1 ) ↔ P (x 1 ))KS = 0 6= 1 = J∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 )KS für eine beliebige Variablenbelegungen β (keine freien Variablen). Es gilt allerdings für alle Strukturen S mit S |= ∀x 1 (R(x 1 ) ↔ P (x 1 )) dass auch gilt S |= ∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 ). (e) Die beiden Formeln sind nicht äquivalent. β β Es gilt J∃x 1 (R(x 1 ) ↔ P (x 1 ))KS = 0 6= 1 = J∃x 1 R(x 1 ) ↔ ∃x 1 P (x 1 )KS für eine beliebige Variablenbelegungen β (keine freien Variablen). Es gilt allerdings für alle Strukturen S mit S |= ∃x 1 (R(x 1 ) ↔ P (x 1 )) dass auch gilt S |= ∃x 1 R(x 1 ) ↔ ∃x 1 P (x 1 ). Aufgabe 10.2. Sei Σ = {R/1, P /1} eine Signatur. Betrachten Sie die prädikatenlogische Formel ϕ = ∀x 0 ∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))∨∀x 3 ∃x 0 ¬P (x 0 ). Verwenden Sie den Algorithmus aus der Vorlesung, um für ϕ eine äquivalente prädikatenlogische Formel in pränexer Normalform zu finden. Geben Sie eine allgemeine umgangssprachliche Beschreibung an, wie eine Formel von dem Algorithmus umgeformt wird. Lösung. Die Funktionsaufrufe des Algorithmus sehen etwa wie folgt aus: PNF(ϕ) DisjPNF(PNF(∀x 0 ∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))), PNF(∀x 3 ∃x 0 ¬P (x 0 ))) 41 alleAufgaben.tex Rev 251 2009-02-03 10 Blatt DisjPNF(∀x 0 PNF(∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))), ∀x 3 PNF(∃x 0 ¬P (x 0 ))) DisjPNF(∀x 0 ∃x 1 PNF(∀x 2 (P (x 0 ) → R(x 2 ))), ∀x 3 ∃x 0 PNF(¬P (x 0 ))) DisjPNF(∀x 0 ∃x 1 ∀x 2 PNF((P (x 0 ) → R(x 2 ))), ∀x 3 ∃x 0 NegPNF(P (x 0 ))) DisjPNF(∀x 0 ∃x 1 ∀x 2 PNF(¬P (x 0 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) DisjPNF(∀x 0 ∃x 1 ∀x 2 DisjPNF(¬P (x 0 ), R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) DisjPNF(∀x 0 ∃x 1 ∀x 2 (¬P (x 0 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 DisjPNF(∃x 1 ∀x 2 (¬P (x 4 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 ∃x 5 DisjPNF(∀x 2 (¬P (x 4 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 ∃x 5 ∀x 6 DisjPNF( ¬P (x 4 ) ∨ R(x 6 ), ∀x 3 ∃x 0 ¬P (x 0 )) ∀x 4 ∃x 5 ∀x 6 DisjPNF( ∀x 3 ∃x 0 ¬P (x 0 ), ¬P (x 4 ) ∨ R(x 6 )) ∀x 4 ∃x 5 ∀x 6 ∀x 7 DisjPNF( ∃x 0 ¬P (x 0 ), ¬P (x 4 ) ∨ R(x 6 )) ∀x 4 ∃x 5 ∀x 6 ∀x 7 ∃x 7 DisjPNF( ¬P (x 7 ), ¬P (x 4 ) ∨ R(x 6 )) ∀x 4 ∃x 5 ∀x 6 ∀x 7 ∃x 7 (¬P (x 7 ) ∨ (¬P (x 4 ) ∨ R(x 6 ))) Aufgabe 10.3. Sei S eine endliche Struktur. Geben Sie einen rekursiven Algorithmus an (Pseudocode), der zu einer prädikatenlogischen Formel ϕ und einer Interpretation I = (S, β) den Wahrheitswert der Formel JϕKI berechnet. Hinweis. Gehen Sie davon aus, dass im Programm mittels β(i ) auf die Belegung der Variablen x i zugegriffen werden kann. Lösung. Der Pseudocode zur Berechnung des Wahrheitswertes einer Formel ϕ bezüglich einer Struktur S und einer Belegung β könnte wie folgt aussehen: EvalTerm ( S, β, t ) Vorbedingung : S Struktur , t Term , β Variablenbelegung die zu t passt . i f t = x i then return β(x i ) i f t = c then return c S i f t = f (t 0 , . . . , t n−1 ) then ¡ ¢ return f S EvalTerm(S, β, t 0 ), . . . ,EvalTerm(S, β, t n−1 ) Nachbedingung : return = Jt KSβ EvalFormula ( S, β, ϕ ) Vorbedingung : S Struktur , ϕ Formel , β Variablenbelegung die zu ϕ passt . i f ϕ = 1 then return true i f ϕ = 0 then return f a l s e i f ϕ = t 0 = t 1 then return EvalTerm ( t 0 ) == EvalTerm ( t 0 ) i f ϕ = R(t 0 , . . . , t n−1 ) then i f ( EvalTerm ( t 0 ) , . . . , EvalTerm ( t n−1 ) ) ∈ R S then return true e l s e return f a l s e i f ϕ = ¬ϕ0 then return NOT EvalFormula ( S, β, ϕ0 ) i f ϕ = ϕ1 ◦ ϕ2 then 42 alleAufgaben.tex Rev 251 2009-02-03 10 Blatt switch ( ◦ ) : case ∧ : return EvalFormula ( S, β, ϕ0 ) AND EvalFormula ( S, β, ϕ1 ) case ∨ : return EvalFormula ( S, β, ϕ0 ) OR EvalFormula ( S, β, ϕ1 ) case → : return EvalFormula ( S, β, ¬ϕ0 ) OR EvalFormula ( S, β, ϕ1 ) case ↔ : return EvalFormula ( S, β, ϕ0 → ϕ1 ) AND EvalFormula ( S, β, ϕ1 → ϕ0 ) i f ϕ = ∃x i ϕ1 then foreach a ∈ S l e t β0 = β[a/x i ] i f EvalFormula ( S, β0 , ϕ1 ) then return true return f a l s e i f ϕ = ∀x i ϕ1 then foreach a ∈ S l e t β0 = β[a/x i ] i f NOT EvalFormula ( S, β0 , ϕ1 ) then return f a l s e return true Nachbedingung : return = JϕKSβ Aufgabe 10.4. (a) In der Vorlesung wurde der PNF-Algorithmus für prädikatenlogische Formeln skizziert (siehe Folien 54 und 55). Vervollständigen Sie den Pseudo-Code. (b) Sei Σ = {R/1, P /1,Q/2} eine Signatur. Bringen Sie folgende Formeln in die pränexe Normalform. 1) R(x 0 ) ∧ ¬∃x 0Q(x 0 , x 0 ) 2) ¬∀x 0 R(x 0 ) ∧ ∀x 0 P (x 0 ) 3) ¬∀x 0 R(x 0 ) ∧ ∀x 1 (P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 )) 4) ¬∀x 0 R(x 0 ) → ∀x 1 (P (x 1 ) ↔ ∃x 0Q(x 0 , x 1 )) Lösung. (a) i) Im Code von PNF(ϕ) fehlt noch die Behandlung der Fälle → und ↔: i f ϕ = ϕ0 → ϕ1 then return DisjPNF(NegPNF(ϕ0 ), PNF(ϕ1 )) i f ϕ = ϕ0 ↔ ϕ1 then return KonjPNF(PNF(ϕ0 → ϕ1 ), PNF(ϕ1 → ϕ0 )) ii) Im Code von NegPNF(ϕ) fehlt noch die Behandlung der Fälle ∧, → und ↔: i f ϕ = ϕ0 ∧ ϕ1 then return DisjPNF(NegPNF(ϕ0 ), NegPNF(ϕ1 )) i f ϕ = ϕ0 → ϕ1 then return KonjPNF(PNF(ϕ0 ), NegPNF(ϕ1 )) i f ϕ = ϕ0 ↔ ϕ1 then return NegPNF((ϕ0 → ϕ) ∧ (ϕ1 → ϕ0 )) 43 alleAufgaben.tex Rev 251 2009-02-03 10 Blatt iii) Im Code von DisjPNF(ϕ, ψ) fehlt noch die Behandlung des Falls ∀x i ϕ0 : i f ϕ = ∀x i ψ then l e t V = vars(ϕ) ∪ vars(ψ) l e t j = max{k : x k ∈ V } + 1 l e t ϕ0 = Swap(i , j , ϕ) l e t χ = DisjPNF(ϕ0 , ψ) return ∀x i χ iv) Im Code von Swap(i , j , ϕ) fehlt noch der Hauptteil: i f ϕ = t 0 = t 1 then return SwapT(i , j , t 0 ) = SwapT(i , j , t 1 ) i f ϕ = R(t 0 , . .¡. , t n−1 ) then ¢ return R SwapT(i , j , t 0 ), . . . , SwapT(i , j , t n−1 ) i f ϕ = ¬ψ then return ¬Swap(i , j , ψ) i f ϕ = ϕ0 ∧ ϕ1 then return Swap(i , j , ϕ0 ) ∧ Swap(i , j , ϕ1 ) i f ϕ = ϕ0 ∨ ϕ1 then return Swap(i , j , ϕ0 ) ∨ Swap(i , j , ϕ1 ) i f ϕ = ∃x k ψ then i f k = i then return ∃x j Swap(i , j , ψ) else return ∃x k Swap(i , j , ψ) i f ϕ = ∀x k ψ then i f k = i then return ∀x j Swap(i , j , ψ) else return ∀x k Swap(i , j , ψ) In dem Code wird eine Methode/Funktion SwapT(i , j , t ) verwendet, die alle Variablen x i im Term t durch x j ersetzt. SwapT(i , j , t ) Vorbedingung : i , j ∈ N , t Σ−Term i f t = c then return c i f t = x k then i f k = i then return x j else return x k i f t = F (t 0 , . . . , t n−1 ) then return F (SwapT(i , j , t 0 ), . . . , SwapT(i , j , t n−1 )) Nachbedingung : return = t π mit π(x i ) = x j und π(x j ) = x i v) Der Code von KonjPNF(ϕ, ψ) ist: KonjPNF(ϕ, ψ) Vorbedingung : ϕ, ψ ∈ PNF(Σ) i f ϕ, ψ ∈ QF(Σ) then return ψ ∧ ϕ i f ϕ ∈ QF(Σ) then l e t (ϕ, ψ) = (ψ, ϕ) 44 alleAufgaben.tex Rev 251 2009-02-03 10 Blatt i f ϕ = ∃x i ψ then l e t V = vars(ϕ) ∪ vars(ψ) l e t j = max{k : x k ∈ V } + 1 l e t ϕ0 = Swap(i , j , ϕ) l e t χ = DisjPNF(ϕ0 , ψ) return ∃x i χ i f ϕ = ∀x i ψ then l e t V = vars(ϕ) ∪ vars(ψ) l e t j = max{k : x k ∈ V } + 1 l e t ϕ0 = Swap(i , j , ϕ) l e t χ = DisjPNF(ϕ0 , ψ) return ∀x i χ Nachbedingung : return ∈ PNF(Σ) und return ≡ ϕ ∧ ψ (b) Gemäß Algorithmus erhalten wir folgende Formeln (mit Zwischenschritten): 1) R(x 0 ) ∧ ¬∃x 0Q(x 0 ) R(x 0 ) ∧ ∀x 0 ¬Q(x 0 ) ∀x 0 ¬Q(x 0 ) ∧ R(x 0 ) ∀x 1 (¬Q(x 1 ) ∧ R(x 0 )) 2) ¬∀x 0 R(x 0 ) ∧ ∀x 0 P (x 0 ) ∃x 0 ¬R(x 0 ) ∧ ∀x 0 P (x 0 ) ∃x 1 (¬R(x 1 ) ∧ ∀x 0 P (x 0 )) ∃x 1 (∀x 0 P (x 0 ) ∧ ¬R(x 1 )) ∃x 1 ∀x 2 (P (x 2 ) ∧ ¬R(x 1 )) 3) ¬∀x 0 R(x 0 ) ∧ ∀x 1 (P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 )) ∃x 0 ¬R(x 0 ) ∧ ∀x 1 (∃x 0Q(x 0 , x 1 ) ∨ P (x 1 )) ∃x 0 ¬R(x 0 ) ∧ ∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 )) ∃x 3 (¬R(x 3 ) ∧ ∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 ))) ∃x 3 (∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 )) ∧ ¬R(x 3 )) ∃x 3 ∀x 4 (∃x 2 (Q(x 2 , x 4 ) ∨ P (x 4 )) ∧ ¬R(x 3 )) ∃x 3 ∀x 4 ∃x 5 ((Q(x 5 , x 4 ) ∨ P (x 4 )) ∧ ¬R(x 3 )) 45 alleAufgaben.tex Rev 251 2009-02-03 10 Blatt 4) ¬∀x 0 R(x 0 ) → ∀x 1 (P (x 1 ) ↔ ∃x 0Q(x 0 , x 1 )) ¬¬∀x 0 R(x 0 ) ∨ ∀x 1 ((¬P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 )) ∧ (P (x 1 ) ∨ ¬∃x 0Q(x 0 , x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 ((∃x 0Q(x 0 , x 1 ) ∨ ¬P (x 1 )) ∧ (¬∃x 0Q(x 0 , x 1 ) ∨ P (x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 (∃x 2 (Q(x 2 , x 1 ) ∨ ¬P (x 1 )) ∧ ∀x 2 (¬Q(x 2 , x 1 ) ∨ P (x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 ∃x 3 ((Q(x 3 , x 1 ) ∨ ¬P (x 1 )) ∧ ∀x 2 (¬Q(x 2 , x 1 ) ∨ P (x 1 ))) ∀x 0 R(x 0 ) ∨ ∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 ))) ∀x 5 (R(x 5 ) ∨ ∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 )))) ∀x 5 (∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 ))) ∨ R(x 5 )) ∀x 5 ∀x 6 (∃x 3 ∀x 4 ((¬Q(x 4 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 3 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 )) ∀x 5 ∀x 6 ∃x 7 (∀x 4 ((¬Q(x 4 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 7 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 )) ∀x 5 ∀x 6 ∃x 7 ∀x 8 (((¬Q(x 8 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 7 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 )) 46 alleAufgaben.tex Rev 251 2009-02-03 11. Blatt Aufgabe 11.1. Welche der Formeln sind unerfüllbar, erfüllbar oder allgemeingültig? Begründen Sie Ihre Aussage. (a) ∀x 1 ∀x 2 ∃x 3 (¬x 1 = x 2 → (x 1 < x 2 ∧ x 2 < x 3 )) (b) ∃x 1 ∀x 2 ¬x 1 = x 2 (c) ∃x 0 f (x 0 ) = x 0 (d) ∀x 1 ∀x 2 ∀x 3 ((x 1 = x 2 ∧ x 2 = x 3 ) → x 1 = x 3 ) Lösung. (Lösungsskizze) (a) erfüllbar: betrachte Struktur mit einelementiger Trägermenge, nicht allgemeingültig: betrachte Trägermenge S a = {0, 1} und 0 < 1. (b) unerfüllbar, da nach Voraussetzung die Trägermenge nicht leer ist und jedes Element zu sich selbst gleich ist. (c) erfüllbar: z.B. f S (0) = 0, nicht allgemeingültig: z.B. f S (i ) = i + 1 in den natürlichen Zahlen. (d) allgemeingültig: Gleichheit ist transitiv Aufgabe 11.2. (a) Sei Σ0 = {a, b, s//1, P /1} eine Signatur und ϕ0 = ∀x 0 (P (x 0 ) ↔ P (s(s(x 0 ))))∧ P (a) ∧ ¬P (b) eine Σ0 -Formel. Finden Sie für die Formel ϕ0 ein möglichst kleines Modell (möglichst kleine Trägermenge) und ein Termmodell. (b) Sei Σ1 = {z, s//1, P /1} eine Signatur und ϕ1 = P (z)∧∀x 0 (P (x 0 ) → P (s(x 0 )))∧∃x 0 ¬P (x 0 ) eine Σ1 -Formel. Zeigen Sie, dass ϕ1 erfüllbar ist, es aber kein Termmodell für ϕ1 gibt. Lösung. (Lösungsskizze) (a) Ein möglichst kleines Modell ist zum Beispiel S 0 = {0, 1} mit a S0 = 0, b S0 = 1, P S0 = {(0)} und s S0 (x) = x für alle x ∈ S 0 . Termmodel: Die Termstruktur T0 zur Signatur Σ0 ist bis auf die Interpretation der Relation P bereits festgelegt (nach Definition: a T0 = a, b T0 = b, s T0 (z) = s(z) für alle 0 z ∈ T0 , wobei T0 die Menge der Σ 0 -Grundterme (T (Σ0 )) ist). ¯ Sei zum Beispiel P T0 = {(s 2i (a)) ¯ i ∈ N}. (b) Ein Modell ist zum Beispiel S 1 = {0, 1} mit z S1 = 0, P S1 = {(0)} und s S1 = f mit f (x) = x. Termmodel: Die Termstruktur T1 zur Signatur Σ1 ist bis auf die Interpretation der Relation P bereits festgelegt (nach Definition: z T1 = z, s T0 (z) = s(z) für alle z ∈ T1 , wobei T1 die Menge der Σ1 -Grundterme ist). Offenbar muss (z) ∈ P T0 gelten. Mit ∀x 0 (P (x 0 ) → P (s(x 0 )) folgt damit aber schon, dass alle Elemente der Trägermenge in der Relation sind. Damit existiert dann aber β keine Belegung β für x 0 so, dass J¬P (x 0 )KT0 = 1 ist. 47 alleAufgaben.tex Rev 251 2009-02-03 11 Blatt Aufgabe 11.3. Welche der Formeln sind unerfüllbar, erfüllbar oder allgemeingültig? Begründen Sie Ihre Aussage. (a) ∃x 0 f (x 0 ) = g (x 0 ) (b) ∃x 1 ∀x 2 (R(x 1 ) → R(x 2 )) (c) ∀x 1 ∃x 2 (R(x 1 ) → R(x 2 )) (d) ∀x 0 ∀x 1 (R(x 0 , x 1 ) ↔ R(x 1 , x 0 )) ∧ ∃x 0 ∀x 1 (¬R(x 0 , x 1 ) ∧ R(x 1 , x 0 )) Lösung. (a) erfüllbar: Betrachte die Struktur Sa1 definiert durch: S a1 = {0} f Sa 1 (x) = x für alle x ∈ S a1 g Sa 1 (x) = x für alle x ∈ S a1 Dann gilt offenbar S a1 |= ϕa . Andererseits gilt für die Struktur Sa2 definiert durch: S a2 = ; f Sa2 (x) = x für alle x ∈ S a2 g Sa2 (x) = x für alle x ∈ S a2 offenbar S a2 6|= ϕa . (b) allgemeingültig: Sei S eine Struktur. Nach Voraussetzung darf die Trägermenge nicht leer sein. Wir unterscheiden zwei Fälle: 1) Für alle x ∈ S gilt (x) ∈ R S . Dann gilt offenbar S |= ϕb 2) Es existiert ein x ∈ S mit (x) 6∈ R S . Dann gilt offenbar S, β[a/x 1 ] |= ∀x 2 (R(x 1 ) → R(x 2 )) und damit auch S |= ϕb . (c) allgemeingültig: Sei S eine Struktur. Nach Voraussetzung darf die Trägermenge nicht β[a/x 0 ] leer sein. Sei a ∈ S. Dann gilt J∃x 1 (R(x 0 ) → R(x 1 ))KS = 1, da für b = a gilt: β[a/x 0 ,b/x 1 ] JR(x 0 ) → R(x 1 )KS =1 . (d) unerfüllbar: Sei S eine Struktur. Es gilt Jϕd KS = 1 genau dann, wenn J∀x 0 ∀x 1 (R(x 0 , x 1 ) ↔ R(x 1 , x 0 ))KS = 1 und J∃x 0 ∀x 1 (¬R(x 0 , x 1 ) ∧ R(x 1 , x 0 ))KS = 1 ist. Die erste Bedingung besagt, dass R symmetrisch sein muss, die zweite Bedingung besagt, dass es ein Gegenbeispiel für symmetrisch gibt. Aufgabe 11.4. Sei Σ eine Signatur und ϕ ∈ F PL (Σ). Beweisen Sie, dass gilt: ∀x 0 ∀x 1 ϕ ≡ ∀x 1 ∀x 0 ϕ 48 alleAufgaben.tex Rev 251 2009-02-03 11 Blatt Lösung. Sei S eine Struktur und β eine zu ϕ passende Variablenbelegung. Dann gilt S, β |= ∀x 0 ∀x 1 ϕ gdw. S, β[a/x 0 ] |= ∀x 1 ϕ für alle a ∈ S gdw. S, β[a/x 0 , b/x 1 ] |= ϕ für alle a, b ∈ S gdw. S, β[b/x 1 ] |= ∀x 0 ϕ für alle b ∈ S gdw. S, β |= ∀x 1 ∀x 0 ϕ . Aufgabe 11.5. Betrachten Sie die beiden folgenden PCP-Instanzen: F 1 = (ac, ab), (ba, bc), (abb, ac) F 2 = (aaaa, aaa), (aa, aaaaa) Geben Sie zu den beiden Instanzen jeweils die entsprechende prädikatenlogische Formel ϕFi an. Überlegen Sie sich, ob die PCP-Instanzen eine Lösung besitzen. Konstruieren Sie in beiden Fällen Modelle der Formel. Finden Sie gegebenenfalls eine Struktur, die kein Modell ist. Lösung. (Lösungsskizze) F 1 ist eine negative Instanz. Begründung: • Wird das dritte Paar verwendet, so sind die beide Worte stets unterschiedlich lang (die anderen Paare sind gleich lang). • Verwendet man nur das erste oder zweite Paar, so enthält mindestens entweder das erste Wort die Buchstabenfolge ac oder das zweite Wort die Buchstabenfolge bc. In beiden Fällen existieren, aber keine anderen Tupel, die diese Buchstabenfolgen im Gegenpart erzeugen. alternativ: Egal welches Tupel als erstes gewählt wird, die beiden Worte sind bereits verschieden. F 2 ist eine positive Instanz. Beispiel: Die Tupelfolge 0, 0, 0, 1 liefert die Worte aaaa aaaa aaaa aa bzw. aaa aaa aaa aaaaa ) (i i ) Es ist ϕFi = (ϕ(i F ∧ ϕF ) → ∃x 0 P (x 0 , x 0 ), wobei i ) ϕ(i F1 = ^ i P ( f ui (e), P v i (e)) i <3 = P ( f ac (e), f ab (e)) ∧ P ( f ba (e), f bc (e)) ∧ P ( f abb (e), f ac (e)) ^ ¡ ¢ i) ϕ(i P ( f ui (x 0 ), P v i (x 1 )) F 1 = ∀x 0 ∀x 1 P (x 0 , x 1 ) → i <3 ¡ = ∀x 0 ∀x 1 P (x 0 , x 1 ) → (P ( f ac (x 0 ), f ab (x 1 )) ∧ P ( f ba (x 0 ), f bc (x 1 )) ∧ P ( f abb (x 0 ), f ac (x 1 ))) ) (i i ) und ϕ(i F 2 , ϕF 2 analog. Da F 1 negativ, ist ϕF1 nicht allgemeingültig. Andererseits ist ϕF2 allgemeingültig, da F 2 positiv ist. 49 alleAufgaben.tex Rev 251 2009-02-03 11 Blatt Beispiele: Struktur S11 : S 11 = {a, b}∗ = A ∗ Menge der Zeichenreihen über {a, b} S1 f x 1 (w) = w x S11 P für allex ∈ A, w ∈ A ∗ ¯ = {(v, w) ¯ v, w ∈ A ∗ } Dann gilt offenbar, S11 |= ϕF1 , ¯aber ϕF1 nicht allgemeingültig, da zum Beispiel die gleiche Struktur nur mit P S12 = {(v, w) ¯ (v, w) ist erzeugbares Paar} kein Modell ist. Es gilt offenbar auch S11 |= ϕF2 . 50 alleAufgaben.tex Rev 251 2009-02-03 12. Blatt Aufgabe 12.1. Sei Σ eine Signatur. Betrachten Sie die Σ-Formeln ϕ0 = ∀x 0 (¬x 0 = 0 → ∃x 1 x 0 · x 1 = 1) ¡ ¢ ϕ1 = ∀x 0 ∃x 1 ∀x 2 ∃x 3 ∃x 4 P (x 0 , x 1 ) ∧ P (x 0 , x 2 ) → x 1 = x 5 ∨ P (x 2 , x 4 ) . Konstruieren Sie mit Hilfe des in der Vorlesung vorgestellten Algorithmus Skolem zu ϕ0 und ϕ1 erfüllbarkeitsäquivalente Formeln. Bringen Sie die Formel gegenbenenfalls vorher in PNF. Aufgabe 12.2. Sei Σ = {c, P /2} eine Signatur. Betrachten Sie die Σ-Formel ¡ ¢ ϕ = ∀x 0 ∀x 1 ∃x 2 P (x 2 , x 1 ) ∨ ¬P (x 0 , x 1 ) . Zeigen Sie mit Hilfe des Algorithmus aus der Vorlesung, dass diese Formel allgemeingültig ist. Hinweis. Folgende Schritte sind notwendig: • Negieren • PNF • Skolemisieren • Aussagenlogische Expansion τ(Θψ ) • Zeigen, dass τ(Θψ ) unerfüllbar ist. Lösung. (Lösungsskizze) ¡ ¢ Negation: ∃x 0 ∃x¡1 ∀x 2 ¬P (x 2 , x 1 ) ∧ P (x 0¢ , x 1 ) PNF: ∃x 3 ∃x 4¡∀x 5 ¬P (x 5 , x 4 ) ∧ P (x 3¢, x 4 ) Skolem: ∀x 5 ¬P (x 5 , c 2 ) ∧ P (c 1 , c 2 ) = ψ Aussagenlogische Expansion τ(Θψ ): Es ist ¯ Θψ = {(¬P (x 5 , c 2 ) ∧ P (c 1 , c 2 ))σ ¯ σ Grundsubstitution} = {¬P (c, c 2 ) ∧ P (c 1 , c 2 ), ¬P (c 1 , c 2 ) ∧ P (c 1 , c 2 ), ¬P (c 2 , c 2 ) ∧ P (c 1 , c 2 )} . Dann ist τ(Θψ ) = {¬X 0 ∧ X 1 , ¬X 1 ∧ X 1 , ¬X 2 ∧ X 1 } . Offenbar ist ¬X 1 ∧ X 1 schon unerfüllbar, also τ(Θψ ) unerfüllbar. Aufgabe 12.3. Sei Σ = {c, P /1,Q/1} eine Signatur. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt: {∀x 0 (P (x 0 ) → Q(x 0 )), P (c)} `HPL ∃x 0Q(x 0 ) . 51 alleAufgaben.tex Rev 251 2009-02-03 12 Blatt Lösung. Es gilt: ¢ ∀x 0 (P (x 0 ) → Q(x 0 )) → (P (c) → Q(c)) ∀x 0 (P (x 0 ) → Q(x 0 )) P (c) → Q(c) P (c) Q(c) Q(x 0 )[c/x 0 ] → ∃x 0Q(x 0 ) ≡ Q(c) → ∃x 0Q(x 0 ) 7. ∃x 0Q(x 0 ) 1. 2. 3. 4. 5. 6. ¡ Damit gilt die Behauptung. 52 alleAufgaben.tex Rev 251 2009-02-03 (∀/) (Voraussetzung) (MP) aus 1. & 2. (Voraussetzung) (MP) aus 3. & 4. (∃/) (MP) aus 5. & 6.