Logik Sommersemester 2009 Institut für Theoretische Informatik Leibniz Universität Hannover Lösung zum 7. Übungsblatt 08.06.2009 Stundenübung Aufgabe 1: Die Struktur der natürlichen Zahlen (N, <) versehen mit der aufsteigenden Sortierung der Elemente 1 < 2 < 3 < . . . ist eine Ordnung. Allgemein heißt eine Struktur (A, <) Ordnung, wenn sie die folgenden Bedingungen erfüllt: 1) Je zwei Elemente lassen sich mittels < vergleichen. 2) Wenn a kleiner als b und b kleiner als c ist, so ist auch a kleiner als c. 3) Ein Element ist nicht kleiner als es selbst. a) Kennen Sie weitere Beispiele für Ordnungen? b) Man gebe einen Satz ϕO an, so dass für alle Modelle M gilt: M |= ϕO genau dann, wenn M eine Ordnung ist. Lösung: a) Das deutsche Alphabet ({a, b, c, . . . , x, y, z}, <lex ) versehen mit der üblichen lexikographischen Ordnung a < b < . . . < y < z ist eine Ordnung (In unserer Definition der lexikographischen Ordnung sei a ≮ a, b ≮ b etc.). Genauso werden die reellen Zahlen (R, <) und die rationalen Zahlen (Q, <) versehen mit ihren üblichen Ordnungsrelationen zu Ordnungen. b) Als Sprache L verwenden wir die üblichen logischen Zeichen sowie das zweistellige Relationssymbol <. Wir geben für jede der Eigenschaften 1 bis 3 einen Satz ϕi an. ϕO ist dann die Konjunktion der ϕi . Es ist ϕ1 = ∀x∀y(x < y ∨ x = y ∨ y < x) ϕ2 = ∀x∀y∀z((x < y ∧ y < z) → x < z) ϕ3 = ∀x(¬x < x) ¤ Aufgabe 2: Die Sprache L der Prädikatenlogik enthalte nur die logischen Zeichen. a) Geben Sie eine Aussage ϕn an, so dass für alle Modelle M gilt: M |= ϕn genau dann, wenn M mindestens n Elemente hat. b) Geben Sie eine Aussage ψn an, so dass für alle Modelle M gilt: M |= ψn genau dann, wenn M genau n Elemente hat. V Lösung: a) Die Formel ϕn = ∃x1 . . . ∃xn 1≤i<j≤n ¬xi = xj tut’s. b) Unter Verwendung von ϕn aus Teil a ist ψn = ϕn ∧ ¬ϕn+1 . ¤ Aufgabe 3: a) Eine dichte Ordnung ist eine Ordnung, in der zwischen je zwei Elementen ein weiteres Element liegt. Geben Sie ein abzählbares und ein überabzählbares Beispiel einer dichten Ordnung an. Geben Sie weiterhin einen Satz ϕDO an, für den gilt: M |= ϕDO genau dann, wenn M eine dichte Ordnung ist. b) Ein Element einer Ordnung heißt kleinstes Element, wenn alle anderen Elemente größer als dieses Element sind. Entsprechend heißt ein Element größtes Element, falls es kein größeres Element gibt. Geben Sie eine Aussage ϕDOK an für die gilt: M |= ϕDOK genau dann, wenn M eine dichte Ordnung mit kleinstem aber ohne größtes Element ist. Geben Sie ein Beispiel für ein solches Modell M an. Lösung: a) Einfache Beispiele für dichte Ordnungen sind (Q, <) und (R, <). Dichte Ordnungen lassen sich wie folgt formalisieren: ϕDO = ϕO ∧ ∀x∀y∃z(x < y → (x < z ∧ z < y)) b) Der Satz ϕK = ∃x∀y(x < y ∨ x = y) sagt aus, dass es ein kleinstes Element gibt. Entsprechend besagt ϕG = ∃x∀y(y < x ∨ x = y), dass es ein größtes Element gibt. Somit ist ϕDOK = ϕDO ∧ ϕK ∧ ¬ϕG Eine dichte Ordnungen mit kleinstem und ohne größtem Element ist ([0, 1), <), also das rechts offene, links abgeschlossene Einheitsintervall mit der üblichen Ordnungsrelation. ¤ Hausübung Aufgabe 4: (Koinzidenzlemma) Sei ϕ ∈ Form mit frei (ϕ) ⊆ {x1 , . . . , xn } und seien M1 = (A, w1 ), M2 = (A, w2 ) Modelle mit w1 (xi ) = w2 (xi ) für alle i ∈ {1, . . . , n}. Zeigen Sie: M1 |= ϕ(x1 , . . . , xn ) genau dann, wenn M2 |= ϕ(x1 , . . . , xn ). Lösung: Induktiv über den Termaufbau zeigt man tM1 = tM2 . Anschließend zeigt man das Gewünschte induktiv über den Formelaufbau. ¤ Aufgabe 5: Es seien x, y ∈ Var , t, s ∈ Term und ϕ eine Formel. Man zeige: a) Wenn y ∈ / Var (s) und x ∈ / Var (t), dann ist (ϕ[x/s])[y/t] = (ϕ[y/t])[x/s] = ϕ[x/s, y/t]. b) Zeigen Sie, dass Teil a im Allgemeinen nicht gilt, wenn man die zusätzlichen Voraussetzungen weglässt. Lösung: a)Für (ϕ[x/s])[y/t] schreiben wir im Folgenden ϕ[x/s][y/t]. Aus Symmetriegründen reicht es ϕ[x/s][y/t] = ϕ[x/s, y/t] zu zeigen, da ϕ[x/s, y/t] = ϕ[y/t, x/s] ist. Zunächst zeigen wir das Gewünschte für Terme mit Hilfe von Induktion über den Termaufbau. Für Konstanten c gilt c[x/s][y/t] = c = c[x/s, y/t]. Entsprechend gilt für Variay ∈Var / (s) blen x[x/s][y/t] = s[y/t] = s = x[x/s, y/t]. Analog ist y[x/s][y/t] = y[x/s, y/t] und z[x/s][y/t] = z[x/s, y/t]. Der Induktionsschritt ergibt sich aus f (t1 , . . . , tn )[x/s][y/t] = f (t1 [x/s], . . . , tn [x/s])[y/t] = f (t1 [x/s][y/t], . . . , tn [x/s][y/t]) I.V. = f (t1 [x/s, y/t], . . . , tn [x/s, y/t]) = f (t1 , . . . , tn )[x/s, y/t] Für Terme gilt die Behauptung also. Bleibt zu zeigen, dass sie für Formeln gilt. Auch das zeigen wir per Induktion, diesmal über den Formelaufbau. Für Primformeln haben wir: (t1 = t2 )[x/s][y/t] = (t1 [x/s] = t2 [x/s])[y/t] = t1 [x/s][y/t] = t2 [x/s][y/t] = t1 [x/s, y/t] = t2 [x/s, y/t] = (t1 = t2 )[x/s, y/t] (Man beachte die unterschiedliche Bedeutung der Gleichheitszeichen: Die hervorgehobenen (’=’) sind metasprachliche Gleichheitszeichen, die anderen sind Gleichheitszeichen aus der Sprache L.) Analog für Relationen, ∧, ¬ und ∀. b) Für ϕ := x = y führen alle drei Ersetzungsmethoden zu verschiedene Ergebnissen ϕ[x/y][y/x]=(y = y)[y/x]=x = x ϕ[y/x][x/y]=(x = x)[x/y]=y = y ϕ[x/y, y/x]=y = x wobei auch hier die metasprachlichen Gleichheitszeichen wieder hervorgehoben sind. Für die Nicht-Kommutativität reicht bereits, dass eine der Bedingungen nicht erfüllt ist. Für ϕ := x = c ist ϕ[x/y][y/x]=(y = c)[y/x]=x = c ϕ[y/x][x/y]=(x = c)[x/y]=y = c ¤ Abgabe: 15.06.2009 vor der Vorlesung