TU Ilmenau, Fachgebiet Automaten und Logik Prof. Dr. Dietrich Kuske, Dipl. Inf. Faried Abu Zaid SS 2016 10. Übung Logik und Logikprogrammierung Dieses Übungsblatt dient und Klausurvorbereitung und wird nicht korrigiert. Aufgabe 1 Sei ∆ die Menge der Paare (α, β), so dass α ≡ β auf Folie 123 aufgelistet ist. Beweisen Sie die angegebenen Äquivalenzen mittels Ableitung aus ∆. (a) (p0 → q) ∧ (p1 → q) ≡ (p0 ∨ p1 ) → q (b) p → (q0 ∧ q1 ) ≡ (p → q0 ) ∧ (p → q1 ) Lösung: (a) Wir zeigen ∆ ` ((p0 → q) ∧ (p1 → q), (p0 ∨ p1 ) → q): (1) a∧b a∧b (R2) (2) p0 p0 (R2) (3) p1 p1 (R2) (4) q q (R2) (5) p1 → p2 ¬p1 ∨ p2 (R1) (6) p1 → q ¬p1 ∨ q (R5) i = 5, j = 4, p = p2 (7) p0 → q ¬p0 ∨ q (R5) i = 6, j = 2, p = p1 (8) (p0 → q) ∧ b (9) (p0 → q) ∧ (p1 → q) (10) p1 ∨ (p2 ∧ p3 ) (11) p1 ∨ p2 (12) (p2 ∧ p3 ) (13) p1 ∨ (p2 ∧ p3 ) (p2 ∧ p3 ) ∨ p1 (R5) i = 11, j = 12, p = p2 (14) (p2 ∧ p3 ) ∨ p1 p1 ∨ (p2 ∧ p3 ) (R4) i = 13 (15) (p2 ∧ p3 ) ∨ p1 (p1 ∨ p2 ) ∧ (p1 ∨ p3 ) (16) (p1 ∨ p2 ) ∧ (p1 ∨ p3 ) (17) ¬p0 ¬p0 (R2) (18) ¬p1 ¬p1 (R2) (19) p3 p3 (R2) (20) p1 ∨ p3 (21) (p1 ∨ p2 ) ∧ b (22) (p1 ∨ p2 ) ∧ (p1 ∨ p3 ) (p2 ∨ p1 ) ∧ (p3 ∨ p1 ) (R5) i = 21, j = 20, p = b (23) (p2 ∨ p1 ) ∧ (p3 ∨ p1 ) (p1 ∨ p2 ) ∧ (p1 ∨ p3 ) (R4) (¬p0 ∨ q) ∧ b (R5) i = 1, j = 7, p = a (¬p0 ∨ q) ∧ (¬p1 ∨ q) (R5) i = 8, j = 6, p = b (p1 ∨ p2 ) ∧ (p1 ∨ p3 ) (R1) p2 ∨ p1 (R1) (p2 ∧ p3 ) (R2) (p2 ∧ p3 ) ∨ p1 p3 ∨ p1 (p2 ∨ p1 ) ∧ b (R3) i = 13, j = 10 (R4) i = 15 (R5 ) i = 11, j = 19, p = p2 (R5) i = 1, j = 11, p = a http://www.tu-ilmenau.de/al/lehre/ss-2016/logik-und-logikprogrammierung/ (24) (¬p0 ∨ p1 ) ∧ (p3 ∨ p1 ) (25) (¬p0 ∨ q) ∧ (p3 ∨ q) (26) (¬p0 ∨ q) ∧ (¬p1 ∨ q) (27) (q ∨ p2 ) ∧ (q ∨ p3 ) (28) (q ∨ ¬p0 ) ∧ (q ∨ p3 ) (29) (q ∨ ¬p0 ) ∧ (q ∨ ¬p1 ) (30) ¬(p1 ∨ p2 ) (31) (p1 ∨ ¬p0 ) ∧ (p1 ∨ p3 ) (q ∨ ¬p0 ) ∧ (q ∨ p3 ) (q ∨ ¬p0 ) ∧ (q ∨ ¬p1 ) (p2 ∧ p3 ) ∨ q (R5) i = 23, j = 17, p = p2 (R5) i = 24, j = 4, p = p1 (R5) i = 25, j = 18, p = p3 (R5) i = 16, j = 4, p = p1 (¬p0 ∧ p3 ) ∨ q (R5) i = 27, j = 17, p = p2 (¬p0 ∧ ¬p1 ) ∨ q (R5) i = 28, j = 18, p = p3 (¬p1 ∧ ¬p2 ) (R1 ) (¬p1 ∧ ¬p2 ) ¬(p1 ∨ p2 ) (R4) (32) (¬p0 ∧ ¬p2 ) ¬(p0 ∨ p2 ) (R5) i = 31, , j = 2, p = p1 (33) (¬p0 ∧ ¬p1 ) ¬(p0 ∨ p1 ) (R5) i = 32, , j = 3, p = p2 (34) a∨q (35) (¬p0 ∧ ¬p1 ) ∨ q (36) ¬p1 ∨ p2 p1 → p2 (37) (p0 ∨ p1 ) (p0 ∨ p1 ) (38) ¬(p0 ∨ p1 ) ∨ p2 (p0 ∨ p1 ) → p2 (R5) i = 35, j = 36, p = p1 (39) ¬(p0 ∨ p1 ) ∨ q (p0 ∨ p1 ) → q (R5) i = 37, j = 34, p = p2 (40) (¬p0 ∧ ¬p1 ) ∨ q (p0 ∨ p1 ) → q (R3) i = 35, j = 39 (41) (q ∨ ¬p0 ) ∧ (q ∨ ¬p1 ) (p0 ∨ p1 ) → q (R3) i = 29, j = 40 (42) (p0 → q) ∧ (p1 → q) (p0 ∨ p1 ) → q (R3) i = 9, j = 41 a∨q ¬(p0 ∨ p1 ) ∨ q (R2) (R5) i = 34, j = 33, p = a (R4) i = 5 (R2) (b) Wir zeigen ∆ ` (p → (q0 ∧ q1 ), (p → q0 ) ∧ (p → q1 )): (1) p p (R2) (2) ¬p ¬p (R2) (3) q0 q0 (R2) (4) q1 q1 (R2) (5) (q0 ∧ q1 ) (q0 ∧ q1 ) (R2) (6) p1 → p2 ¬p1 ∨ p2 (R1) (7) p → p2 ¬p ∨ p2 (R5) i = 6, j = 1, p = p1 (8) p → (q0 ∧ q1 ) ¬p ∨ (q0 ∧ q1 ) (R5) i = 7, j = 5, p = p2 (9) p1 ∨ (p2 ∧ p3 ) (p1 ∨ p2 ) ∧ (p1 ∨ p3 ) (10) ¬p ∨ (p2 ∧ p3 ) (¬p ∨ p2 ) ∧ (¬p ∨ p3 ) (R5) i = 9, j = 2, p = p1 (11) ¬p ∨ (q0 ∧ p3 ) (¬p ∨ q0 ) ∧ (¬p ∨ p3 ) (R5) i = 10, j = 3, p = p2 (12) ¬p ∨ (q0 ∧ q1 ) (¬p ∨ q0 ) ∧ (¬p ∨ q1 ) (R5) i = 11, j = 4, p = p3 (13) ¬p ∨ p2 p → p2 (R4) i = 7 (14) ¬p ∨ q0 p → q0 (R5) i = 13, j = 3, p = p2 (15) ¬p ∨ q1 p → q1 (R4) i = 13, j = 4, p = p2 (16) a∧b (17) (¬p ∨ q0 ) ∧ b (18) a∧b (R1) (R2) (p → q0 ) ∧ b (R5) i = 16, j = 14, p = a (¬p ∨ q0 ) ∧ (¬p ∨ q1 ) (p → q0 ) ∧ (p → q1 ) (R5) i = 17, j = 15, p = b (19) ¬p ∨ (q0 ∧ q1 ) (p → q0 ) ∧ (p → q1 ) (R3) i = 12, j = 18 (20) p → (q0 ∧ q1 ) (p → q0 ) ∧ (p → q1 ) (R3) i = 8, j = 19 http://www.tu-ilmenau.de/al/lehre/ss-2016/logik-und-logikprogrammierung/ Aufgabe 2 Betrachten Sie die Horn-Formel ϕ = p ∧ ((p ∧ q ∧ s) → t) ∧ (p → r) ∧ ((p ∧ r) → s) ∧ q ∧ ((r ∧ t) → ⊥) . (a) Zeigen Sie mithilfe des SLD-Resolutionsverfahrens, dass ϕ unerfüllbar ist. Geben Sie dazu eine SLD-Resolution der leeren Klausel an, die mit K0 = ¬p ∨ ¬q ∨ ¬s ∨ t beginnt. (b) Zeigen Sie nun mittels des Markierungsalgorithmus erneut, dass ϕ unerfüllbar ist. Lösung: Wir schreiben zunächst ϕ als Menge von Hornklauseln Γ: Γ = {∅ → p, {p, q, s} → t, {p} → r, {p, r} → s, ∅ → q, {r, t} → ⊥} (a) Wir geben eine SLD-Resolution der leeren Klausel wie auf Folie 164 beschrieben an. (0) M0 = {r, t} //{r, t} → ⊥ ∈ Γ (1) M1 = M0 \ {t} ∪ {p, q, s} = {p, q, r, s} //{p, q, s} → t ∈ Γ (2) M2 = M1 \ {s} ∪ {p, r} = {p, q, r} //{p, r} → s ∈ Γ (3) M3 = M2 \ {r} ∪ {p} = {p, q} //{p} → r ∈ Γ (4) M4 = M3 \ {q} ∪ ∅ = {p} //∅ → q ∈ Γ (5) M5 = M4 \ {p} ∪ ∅ = ∅ //∅ → p ∈ Γ (b) Wir führen den Markierungsalgorithmus wie auf Folie 156 beschrieben aus. Dabei markieren wir die Variablen in der zu der SLD-Resolution aus Aufgabenteil (a) korrespondierenden Reihenfolge. (1) M1 = {p} //∅ → p ∈ Γ (2) M2 = M1 ∪ {q} = {p, q} //∅ → q ∈ Γ (3) M3 = M2 ∪ {r} = {p, q, r} //{p} → r ∈ Γ (4) M4 = M3 ∪ {s} = {p, q, r, s} //{p, r} → s ∈ Γ (5) M5 = M4 ∪ {t} = {p, q, r, s, t} //{p, q, s} → t ∈ Γ Nun sind keine weiteren Variablen markierbar. Wir finden {r, t} → ⊥ ∈ Γ und {r, t} ⊆ M5 , daher ist ϕ unerfüllbar. Aufgabe 3 Betrachten Sie die beiden nachstehenden aussagenlogischen Formeln ϕ und ψ in NNF: ϕ = (p ∧ ¬r) ∧ q ∧ (p ∧ ¬q) ∨ (¬q ∨ r) ψ = p ∧ (q ∨ ¬r) ∧ p ∨ (¬q ∧ r) (a) Entscheiden Sie für beide Formeln mithilfe des Tableau-Verfahrens, ob Sie erfüllbar sind. Entwickeln Sie dabei jeweils vollständige Tableaus. (b) Geben Sie für beide Formeln alle erfüllenden Belegungen B : {p, q, r} → {0, 1} an. http://www.tu-ilmenau.de/al/lehre/ss-2016/logik-und-logikprogrammierung/ Lösung: (a) Die Formel ϕ ist unerfüllbar, da jeder Ast des unten angegebenen, vollständigen Tableaus widersprüchlich ist. Die Formel ψ ist dagegen erfüllbar, da das unten angegebene, vollständige Tableau einen nicht widersprüchlichen Ast besitzt (tatsächlich ist keiner der beiden Äste widersprüchlich). (p ∧ ¬r) ∧ q ∧ (p ∧ ¬q) ∨ (¬q ∨ r) p ∧ (q ∨ ¬r) ∧ p ∨ (¬q ∧ r) p ∧ ¬r p ∧ (q ∨ ¬r) q ∧ ((p ∧ ¬q) ∨ (¬q ∨ r) p ∨ (¬q ∧ r) p p ¬r q ∨ ¬r q q ¬r ((p ∧ ¬q) ∨ (¬q ∨ r) p ∧ ¬q ¬q (b) ¬q ∨ r ¬q r • ϕ besitzt keine erfüllende Belegung. • Die erfüllenden Belegungen von ψ sind: 1 0 x=p x = q, r 1 0 x = p, q x=r ( B1 (x) = ( B2 (x) = B3 (x) = 1 für x = p, q, r http://www.tu-ilmenau.de/al/lehre/ss-2016/logik-und-logikprogrammierung/ Aufgabe 4 Wir betrachten die Struktur A = (N, +, ·). Geben Sie jeweils eine Formel ϕ(x) an, so dass für jede Belegung ρ der Variable x genau dann (A, ρ) |= ϕ gilt, wenn (a) ρ(x) ist eine Primzahl. (b) ρ(x) ist eine Primpotenz, d.h. a = pn für ein n ∈ N und eine Primzahl p. (c) ρ(x) ist die Summe zweier Quadratzahlen. (d) zwischen ρ(x)2 und (ρ(x) + 1)2 liegt eine Primzahl. Lösung: Wir definieren zunächst einige Hilfsformeln. ϕ1 (x) ≡ ∀y(·(x, y) = y) ϕdiv (x, y) ≡ ∃a(·(x, a) = y) ϕ≤ (x, y) ≡ ∃a(+(x, a) = y) (a) ϕa (x) ≡ ¬ϕ1 (x) ∧ ∀y ϕdiv (y, x) → (ϕ1 (y) ∨ x = y) (b) ϕb (x) ≡ ∃p(ϕa (p) ∧ ∀y(ϕdiv (y, x) → (ϕ1 (y) ∨ ϕdiv (p, y)))) (c) ϕc (x) ≡ ∃y∃z(+(·(y, y), ·(z, z)) = x) (d) ϕd (x) ≡ ∃e∃y(ϕ1 (e) ∧ ϕ≤ (·(x, x), y) ∧ ϕ≤ (y, ·(+(x, e), +(x, e))) ∧ ϕa (y)) Aufgabe 5 Zeigen Sie durch Angabe einer Deduktion, dass folgende Formeln Theoreme sind. (a) ∀x(P (x) ∧ Q(x)) → ∀x(P (x)) ∧ ∀x(Q(x)) (b) (∀x(P (x) → P (f (x))) ∧ P (y)) → P (f (y)) Lösung: (a) (b) [∀x(P (x) ∧ Q(x))] [∀x(P (x) ∧ Q(x))] (∀E) (∀E) P (x) ∧ Q(x) P (x) ∧ Q(x) (∧E1 ) (∧E2 ) P (x) Q(x) (∀I) (∀I) ∀x(P (x)) ∀x(Q(x)) (∧I) ∀x(P (x)) ∧ ∀x(Q(x)) (→ I) ∀x(P (x) ∧ Q(x)) → ∀x(P (x)) ∧ ∀x(Q(x)) [∀x(P (x) → P (f (x))) ∧ P (y)] (∧E1 ) [∀x(P (x) → P (f (x))) ∧ P (y)] ∀x(P (x) → P (f (x)) (∧E2 ) (∀E) P (y) P (y) → P (f (y)) (→ E) P (f (y)) (→ I) (∀x(P (x) → P (f (x))) ∧ P (y)) → P (f (y)) http://www.tu-ilmenau.de/al/lehre/ss-2016/logik-und-logikprogrammierung/ Aufgabe 6 Sei < eine zweistelliges Relationssymbol. Wir betrachten folgende Formeln. ϕirr = ∀x¬(x < x) ϕtrans = ∀x∀y∀z((x < y ∧ y < z) → x < z) ϕdicht = ∀x∀y(x < y → ∃z(x < z ∧ z < y)) ϕex = ∃x∃y(x < y) ϕ = ϕirr ∧ ϕtrans ∧ ϕdicht ∧ ϕex Sei Σ eine Signatur, welche das Symbol < nicht enthält. Zeigen Sie, für alle Σ-Sätze ψ: Der systematische Tableaualgorithmus terminiert genau dann auf ψ 0 ∧ ϕ, wenn ψ unerfüllbar ist. Dabei ist ψ 0 der erfüllbarkeitsäquivalente relationale Satz in Negationsnormalform, welcher aus ψ mittel des Verfahrens aus dem Satz auf Folie 291 berechnet wird. Hinweis: Zeigen Sie zunächst, dass ϕ erfüllbar ist, aber kein endliches Modell hat. Zeigen Sie zusätzlich, dass jede endliche Hintikka Menge ein endliches Modell besitzt. Lösung: Wir zeigen zunächst, dass ϕ erfüllbar ist, aber kein endliches Modell besitzt. Zunächst kann leicht überprüft werden, dass Q = (Q, <) (die gewöhnliche Ordnung auf den rationalen Zahlen) ein Modell von ϕ ist. Sein nun A = (A, <A ) ein Modell von ϕ. Wir müssen zeigen, dass A ein unendliches Universum besitzt. Hierzu wählen wir ein geeignetes Element b und konstruieren induktiv eine Folge (ai )i∈N von Elementen aus A mit a0 <A a1 <A a2 <A · · · <A b ∈ A und ai 6= aj für alle 0 ≤ i < j ∈ N. Da A |= ϕex , existieren zwei Elemente a0 und b mit a0 <A b. Seien nun a0 <A a1 <A · · · <A an <A b bereits konstruiert. Da an <A b und A |= ϕdicht existiert ein an+1 ∈ A mit an <A an+1 < b. Es bleibt zu zeigen, dass ai 6= an+1 für alle 0 ≤ i < n+1. Wir peilen einen Widerspruch an und betrachten den Fall, dass ai = an+1 für ein 0 ≤ i < n + 1 gilt. In diesem Fall gilt ai <A ai+1 <A · · · <A an <A an+1 = ai . Nun gilt aber auch A |= ϕtrans . Durch iteriertes anwenden der Transitivitätseingenschaft auf die beschriebene Kette erhalten wir ai <A an+1 = ai . Dies ist ein Widerspruch zu A |= ϕirr ! Als nächstes zeigen wir, dass jeder erfüllbare gleichungsfreie Satz ein abzählbar unendliches Modell besitzt. Sei also ϕ ein erfüllbarer gleichungsfreier Σ-Satz. Nach Folie 324 besitzt ϕ ein abzählbares Modell A = (A, (RA )R∈Rel ). Falls A bereits unendlich ist, sind wir fertig. Ansonsten 0 gilt |A| = n für ein n ∈ N. Wir definieren eine Struktur A0 = (A × N, (RA )R∈Rel ) wie folgt: Sei R ∈ Rel ein k-stelliges Relationssymbol. Wir definieren 0 n o RA := ((a1 , n1 ), . . . , (ak , nk )) ∈ (A × N)k | (a1 , . . . , ak ) ∈ RA . Dann ist ∼⊆ (A × N)2 mit (a, n) ∼ (b, m) :⇔ a = b eine Kongruenz auf A0 und A0 /∼ ∼ = A. Nach dem Satz auf Folie 281 gilt A0 |= ϕ ⇔ A |= ϕ (man beachte hierzu, dass ϕGL = ϕ, da ϕ gleichungsfrei ist). Also ist A0 ein Modell von ϕ. Zudem ist A × N abzählbar: Nummeriere die Elemente von A = {a0 , . . . , an−1 }. Dann ist π : A × N → N; (ai , k) 7→ kn + i eine Bijektion. Wir zeigen nun, dass ψ genau dann erfüllbar ist, wenn ψ 0 ∧ ϕ erfüllbar ist. ψ efüllbar ⇔ ψ 0 erfüllbar ⇔ ψ 0 besitzt abzählbar unendliches Modell A = A, (RA )R∈RelΣGL ⇔ ψ 0 besitzt ein Modell A = A, (RA )R∈RelΣGL < nicht in ΣGL ⇒ und es gibt Bijektion π : Q → A Es existstiert eine Struktur A = A, (RA )R∈RelΣGL und eine Bijektion π : Q → A mit (A, <A ) |= ψ 0 ∧ ϕ, wobei <A = {(π(p), π(q)) | p, q ∈ Q, p < q} ⇒ ψ 0 ∧ ϕ erfüllbar http://www.tu-ilmenau.de/al/lehre/ss-2016/logik-und-logikprogrammierung/ Andererseits ist, falls ψ 0 ∧ ϕ erfüllbar ist, offensichtlich auch ψ 0 und somit auch ψ erfüllbar. Wir können nun zeigen, dass der systematische Tableaualgorithmus genau dann auf ψ 0 ∧ ϕ terminiert, wenn ψ unerfüllbar ist. Falls ψ unerfüllbar ist, dann ist auch ψ 0 ∧ϕ unerfüllbar. Nach dem Satz auf Folie 329 gibt der systematische Tableaualgorithmus in diesem Fall unerfüllbar aus. Nehmen wir nun an ψ ist erfüllbar. Dann ist auch ψ 0 ∧ ϕ erfüllbar. Nehmen wir weiter an der systematische Tableaualgorithmus terminiert auf ψ 0 ∧ ϕ. Dann muss er erfüllbar ausgeben. Das bedeutet aber, dass der Algorithmus einen widerspruchsfreien Ast im Tableau gefunden hat, welcher nicht weiter entwickelbar ist. Nach dem Lemma auf Folie 316 ist die (endliche) Menge M der auf diesem Ast vorkommenden Formeln eine Hintikka Menge, die ψ 0 ∧ ϕ enthält. Nach dem Beweis des Lemmas auf Folie 311 besitzt M ein Modell über dem Universum U = {c0 } ∪ {c ∈ C | c kommt in einem α ∈ M vor}. Da aber M endlich ist, muss U endlich sein. Der Satz ψ 0 ∧ ϕ kann aber kein endliches Modell besitzen, da ϕ kein endliches Modell besitzt. Widerspruch! Aufgabe 7 Sei ϕ = ∃x(f (f (x)) = x). (a) Überführen Sie ϕ in eine erfüllbarkeitsäquivalente relationale Formel ψ. (b) Überführen Sie ψ in eine erfüllbarkeitsäquivalente gleichungsfreie Formel ϑ. Lösung: (a) Sei Rf 6∈ Rel ein zweistelliges Relationssymbol. (i) Äquivalente termreduzierte Formel: ϕ0 ≡ ∃x∃y(f (x) = y ∧ f (y) = x) (ii) Ersetzen der Funktionssymbole: ϕ00 ≡ ∃x∃y(Rf (x, y) ∧ Rf (y, x)) (iii) Hinzufügen von „Rf ist Graph einer Funktion“: ψ ≡ ∀x∃y((Rf (x, y)) ∧ ∀x∀y∀y 0 (Rf (x, y) ∧ Rf (x, y 0 )) → y = y 0 ) ∧ ϕ00 (b) Sei G 6∈ Rel ein zweistelliges Relationssymbol. (i) Ersetzen von „=“: ψ 0 ≡ ∀x∃y((Rf (x, y)) ∧ ∀x∀y∀y 0 (Rf (x, y) ∧ Rf (x, y 0 )) → G(y, y 0 )) ∧ ϕ00 (ii) Hinzufügen von „G ist Kongruenz“: ∀x(G(x, x)) ∧∀x∀y(G(x, y) → G(y, x)) ∧∀x∀y∀z((G(x, y) ∧ G(y, z)) → G(x, z)) ∧∀x∀x0 ∀y∀y 0 ((G(x, x0 ) ∧ G(y, y 0 ) → (Rf (x, y) ↔ Rf (x0 , y 0 ))) ∧ψ 0 http://www.tu-ilmenau.de/al/lehre/ss-2016/logik-und-logikprogrammierung/