Logik für Informatiker Mario Lipinski <[email protected]> Wintersemester 2004/2005 Dozent: Sándor Fekete E-Mail: [email protected] Mailing-Liste: → Anmeldung über Webseite Webseite: http://www.math.tu-bs.de/ fekete Zur Vorlesung: http://www.math.tu-bs.de/ fekete/logik.html Übungsgruppen: Eintragen in Liste Einteilung kommt auf Webseite Klausurtermin: Samstag, 12. Februar, 12-15 Uhr Literatur: Mathematische Logik Tuschik/Wolter Mehr Hinweise auf Webseite! 2 Inhaltsverzeichnis 0 Vorspann: Ein logisches Problem 1 Aussagenlogik 1.1 Logische Ausdrücke, logischer Syntax 1.2 Semantik . . . . . . . . . . . . . . . 1.4 Normalformen . . . . . . . . . . . . . 1.2 Semantik . . . . . . . . . . . . . . . 1.3 Schlussregeln . . . . . . . . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 11 15 17 2 Prädikatenlogik 2.1 Strukturen und Relationen . . . . . . . . . . . . 2.2 Elementare Sprachen . . . . . . . . . . . . . . . . 2.2.1 Grundbestandteile elementarer Sprachen . 2.2.2 Terme . . . . . . . . . . . . . . . . . . . . 2.2.3 Prädikative oder auch atomare Ausdrücke 2.2.4 Ausdrücke oder Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 25 28 28 30 30 31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Entscheidbarkeit elementarer Theorien 41 4.1 Berechenbare Funktion . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2 Rekursiv-auszählbarkeit und Entscheidbarkeit . . . . . . . . . . . 47 4.3 Entscheidbarkeit der Zahlentheorie . . . . . . . . . . . . . . . . . 50 4.3.1 Noch einmal logisches Ableiten: Einige folmale Ableitungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4 Der Gödelsche Unvollständigkeitssatz . . . . . . . . . . . . . . . . 53 3 Kapitel 0 Vorspann: Ein logisches Problem Gegeben: Eine Zeichenkette, Umformungsregeln, eine Zielkette Gesucht: Eine Herstullgsmethode für die Zielkette Konkret: Gegeben das Wort “M I” Regeln: Regel I: Wenn xI ein Wort ist, das wir schon haben (dabi ist x eine beliebige Zeichenkette), dann dürfen wir daraus das Wort xIU bauen. Regel II: Wen M x ein vorhandenes WOrt ist, dann dürfen wir daraus M xx bauen (x ist wieder beliebige Zeichenfolge) Regel III: Wenn xIIIy ein vorhandenes Wort ist, dann dürfen wie daraus xU y bauen. (x, y bel. Zeichenketten) Regel IV: Wenn xU U y ein vorhandenes Wort ist, dann dürfen wie daraus xy bauen. (x, y bel. Zeichenketten) Beispiel: M I →2 M II →2 M IIII →3 M U I M I →1 M IU →2 M U IU I Aufgabe: Kontruiere M U Logik betrachtet u.a. ähnliche formale Systeme 4 Kapitel 1 Aussagenlogik 1.1 Logische Ausdrücke, logischer Syntax Beispiel: “Wenn Kerry nicht in Ohio bei 200000 ausstehenden Stimmen 120000 Stimmen gut macht und Bush Iowa, Nevada oder New Mexiko gewinnt, dann ist Bush widergewählt.” Logisch zergliedert: K: “Kerry holt in Ohio bei 200000 ausstehenden Stimmen mindestens 120000 mehr als Bush.” K 0 : “Kerry holt in Ohio mindestens 160000 von 200000 ausstehenden Stimmen” B1 : “Bush gewinnt in Iowa” B2 : “Bush gewinnt in Nevada” B3 : “Bush gewinnt in New Mexiko” Wenn ((nicht K 0 ) und (B1 oder B2 oder B3 )) dann (Bp ) Bp : Bush widergewählt Etwas formaler: (¬K 0 ∧ (B1 ∨ B2 ∨ B3 )) → Bp Zunächst betrachten wir logischen Syntax! Syntax: Formale Regeln der Sprache, d.h. Einhaltung der Bildungsregeln von Zeichenketten. Zeichenketten: Inhaltliche Bedeutung einer Sprache (bzw. sprachlichen Aussage), insbesondere Wahrheitsgehalt Äquivalente Aussage, andersherum betrachtet: ¬Bp → (K 0 ∨ ((¬B1 ) ∧ (¬B2 ) ∧ (¬B3 ))) Diese Art der Umformung geht in die Semantik hinein. Box 1: Aussagenkalkül (d.h. rein formale Beschreibung der Zeichenketten, die man Bilden darf) (1) Verwendete Zeichen (a) logische Variablen p1 , p2 , p3 5 (b) Verbindende logische Zeichen (“Konnektoren”) ¬ (Bedeutung: “nicht”) ∧ (Bedeutung: “und”) ∨ (Bedeutung: “oder”) → (Bedeutung “folgt”, bzw. “Wenn ... dann ...”) ↔” (Bedeutung: “äquivalent”, bzw. “... genau dann, wenn ...”) (c) Strukturzeichen: (, ) (2) [...] Klammern in logischen Formeln 1. Außeklammern kann man weglassen 2. ¬ stärker als ∧ und ∨. 3. ∧ und ∨ stärker als → und ↔ Beispiel ((p ∧ q) → ((¬r) ∨ s)) Hier kann man stufenweise alle Klammern weglassen! Klammerebene 1 wg. Regel (1) Klammerebene 2 wg. Regel (3) Klammerebene 3 wg. Regel (2) Noch eine Bezeichnung: Wenn ϕ eine Formel ist, dass ist V (ϕ) die Menge aller vorkommenden Variablen. 1.2 Semantik Wie schon erläutert: Semantik beschäftigt sich mit der Bedeutung von Aussagen (also dem ”Inhalt”), d.h. dem Wahrheitsgehalt. Dafür betrachtet man ”Belegungen” der Variablen mit logischen Wahrheitswerten: • WAHR oder 1 • FALSCH oder 0 Hier bleiben wir bei diesen beiden Möglichkeiten, d.h. wir betrachten zweiwertige Logik. (Mehrwertig wäre z.B. • WAHR 1 • FALSCH 0 • WEISSNICH X ) Hat man eine logische Formel, z.B. (p ∧ q) ∨ r, so ergibt sich der Wahrheitswert der ganzen Formel aus einer Belegung der Variablen: z.B. p = 1 6 q=1 r=0 So ergibt sich (1 ∧ 1) ∨ 0 d.h. 1∨0 d.h. 1 , d.h. die Formel ist erfüllt. 2: Belegungen Für eine Formel ϕ und die Menge V (ϕ) der Variablen ist eine Belegung eine Abbildung F : V (ϕ) → {0, 1}. (Also: Wähle für jede Variable einen Wert!) Uns interessiert der resultierende Wahrheitswert! Für eine Belegung F (ϕ) von ϕ schreiben wir F ∗ (ϕ) für den resultierenden Wahrheitswert. Dieser lässt sich folgendermaßen rekursiv festlegen: (a) Für eine Aussagenvariable p ist F ∗ (p) = F (p) (D.h. Formeln die nur aus einer einzigen Variablen bestehen, bekommen gerade den Wahrheitswert, den man hineingelegt hat.) (b) Für zusammengesetztes ϕ bekommt man F ∗ (ϕ) rekursiv durch folgende Regeln: (i) F ∗ (¬ψ) = 1 − F ∗ (ψ) (Verneinung) (ii) F ∗ (ψ ∧ χ) = min{F ∗ (ψ), F ∗ (χ)} (“UND”gibt WAHR, wenn beide Teile WAHR sind) (iii) F ∗ (ψ ∨ χ) = max{F ∗ (ψ), F ∗ (chi)} (”ODER” ist WAHR, wenn einer der beiden Teile WAHR ist.) (iv) F ∗ (ψ → χ) = max{1 − F ∗ (ψ), F ∗ (χ)} = F ∗ (6= ψ ∨ χ)) (”Folgerung” ist WAHR wenn Voraussetzung FALSCH oder Folge WAHR.) 1 falls F ∗ (ψ) = F ∗ (χ) ∗ (v) F (ψ ↔ χ) = 0 sonst Sprechweisen: (1) F ∗ (ϕ) ist (Wahrheits-)Wert von ϕ bei Belegung F . (2) F erfüllt ϕ, wenn F ∗ (ϕ) = 1 (3) F ∗ (ϕ) = 1 → F |= ϕ F ∗ (ϕ) = 0 → F 6|= ϕ (4) ϕ erfüllbar, wenn es eine Belegung F gibt, so dass F ∗ (ϕ) = 1 ist. 7 (5) ϕ nicht erfüllbar, wenn für alle Belegungen F F ∗ (ϕ) = 0 ist; dann nennt man ϕ ”widersprüchlich”, oder eine ”Kontradiktion”. (6) Wird ϕ durch jede Belegung erfüllt, so ist ϕ “allgemeingültig”, oder auch eine “ Tautologie”. Exkurs: Algorithmische Aspekte zwei Probleme: PROBLEM “Logisches Einsetzen” GEGEBEN: Eine aussagenlogische Formel ϕ eine Wahrheitsbelegung F GESUCHT: F ∗ (ϕ) Beobachtung: Das Problem ist ziemlich leicht polynomiell lösbar. PROBLEM “Logische Erfüllbarkeit” GEGEBEN: Eine aussagenlogische Formel ϕ GESUCHT: Eine ϕ erfüllende Wahrheitsbelegung, falls es eine gibt. Satz: (Cook 1971): Dieses Problem ist NP-vollständig. Satz 1.1’: “Logisches Einsetzen” hat einen endlichen Algorithmus. Satz 1.2’: “Logische Erfüllbarkeit” hat einen endlichen Algorithmus. Beweis von Satz 1.2’: Probiere (bei n Variablen) alle 2n möglichen Belegungen aus. (Kommentar: Dieser Algorithmus ist sehr langsam, denn die Laufzeit wächst exponentiellmit der Problemgröße.) Satz von Cook besagt: Polynomiell geht es wahrscheinlich nicht! Box 3: Wahrheitsfunktionen Berechnung bzw. Beschreibung in Tabellenform: p ¬p 0 1 1 0 p q p∧q p∨q p→q p↔q 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 Beispiel 3: ϕ := [p → (q → r)] → [(p → q) → (p → r)] mit ψ := p → (q → r) χ := (p → q) → (p → r) 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 Einsetzen von logischen Ausdrücken: Sei ϕ ein Asudruck mit Variablen p1 , . . . , pn , seien ϕ1 , . . . , ϕn Ausdrücke. Mit ϕ(p1 /ϕ1 , . . . , pn /ϕn ) bezeichnet man den Ausdruck, den man bekommt, wenn man jede Variable pi durch Ausdruck ϕ1 ersetze. Kurzform: ϕ[ϕ1 , . . . , ϕn ] 8 Beispiel: ϕ = (p1 ∧ p2 ) ϕ1 = (q1 → q2 ) ϕ2 = (q2 → q3 ) Dann ist ϕ[ϕ1 , ϕ2 ] = ((q1 → q2 ) ∧ (q2 → q3 )) Beobachtung: Satz 1.3: Ist ϕ(p1 , . . . , Pn ) eine Tautologie, sind ϕ1 , . . . , ϕn beliebige Ausdrücke. Dann ist auch ϕ[ϕ1 , . . . , ϕn ] eine Tautologie. Beweisskizze Da ϕ Tautologie ist und für jede Kombination von Wahrheitswerten F ∗ (ϕ1 ), . . . , F ∗ (ϕn ) auch ϕ(F ∗ (ϕ1 ), . . . , F ∗ (ϕn )) für jede Belegung F wahr, d.h. ϕ[ϕ1 , . . . , ϕn ] ist Tautologie. Wichtige Tautologien: (1) p ∨ ¬p (2) (p → q) ∧ (q → r) → (p → r) (3) (p → q) ∧ (p → r) → (p → q ∧ r) (4) (p → q) ∧ (q → p) → (p ↔ q) (5) (¬q → ¬p) → (p → q) (6) (¬p → q) ∧ (¬p → q) → p Besonderheiten: Tautologien von Typ ϕ ↔ ψ. `‘ϕ und ψ sind logisch äquivalent.” Schreibweise: ϕ ≡ ψ Interpretation: Logisch durcheinander ersetzbar, “wertverlauf gleich”. Box 4: Wichtige Äquivalenzen (1) Assoziativität ϕ ∧ (ψ ∧ χ) ≡ (ϕ ∧ ψ) ∧ χ (Nachweis: p ∧ (q ∧ r) ≡ (p ∧ q) ∧ r, ist Tautologie, dazu Satz 1.3!) ϕ ∨ (ψ ∨ χ) ≡ (ϕ ∨ ψ) ∨ χ (2) Kommutativität ϕ∧ψ ≡ψ∧ϕ ϕ∨ψ ≡ψ∨ϕ ϕ↔ψ≡ψ↔ϕ (3) Distributivität ϕ ∧ (ψ ∨ χ) ≡ (ϕ ∧ ψ) ∨ (ϕ ∧ χ) ϕ ∨ (ψ ∧ χ) ≡ (ϕ ∨ ψ) ∧ (ϕ ∨ χ) ϕ → (ψ ∧ χ) ≡ (ϕ → ψ) ∧ (ϕ → χ) ϕ → (ψ ∨ χ) ≡ (ϕ → ψ) ∨ (ϕ → χ) 9 (4) Idempotenz ϕ∧ϕ≡ϕ ϕ∨ϕ≡ϕ (5) Negation ¬(¬ϕ) ≡ ϕ ¬(ϕ ∧ ψ) ≡ ¬ϕ ∨ ¬ψ ¬(ϕ ∨ ψ) ≡ ¬ϕ ∧ ¬ψ ¬(ϕ → ψ) ≡ ϕ ∧ ¬ψ ¬(ϕ ↔ ψ) ≡ (ϕ ∧ ¬ψ) ∨ (¬ϕ ∧ ψ) (6) Definierbarkeit ϕ ∧ ψ ≡ ¬(¬ϕ ∨ ¬ψ) ϕ ∨ ψ ≡ ¬(¬ϕ ∧ ¬ψ) ϕ → ψ ≡ ¬ϕ ∨ ψ ϕ ↔ ψ ≡ (ϕ → ψ) ∧ (ψ → ϕ) A) Sind zwei Dinge einem dritten Gleich, so sind sie einander gleich. B) Die zwei Seiten dieses Dreiecks sind einer weiteren gleich. Z) Die zwei Seiten dieses Dreiecks sind einander gleich. C) Wenn A und B wahr sind, muss Z wahr sein. D) Wenn A und B und C wahr sind, muss Z wahr sein. E) Wenn A und B und C und D wahr sind, muss Z wahr sein. Definitionen: Σ Menge von Ausdrücken F heißt Realisierung von Σ : ∀ϕ ∈ Σ : F ∗ (ϕ) = 1 Schreibweise F |= Σ Σ ist widerspruchsfrei ⇔ Σ besitzt Realisierung. Sonst Σ widerspruchsvoll. ϕ folgt aus Σ (geschrieben Σ |= ϕ), wenn für jede Realisiertung F von Σ gilt: F |= ϕ Menge aller Forderungen aus Σ: “Deduktiver Abschluss”, Abkürzung Ded(Σ) p→q p: (1) Ich schreibe meinen Namen nicht auf abgegebene Übungsblatt. (2) Falscher Kasten (3) Nicht getackert q: (1) Ich bekomme keine Punkte. 10 (2) Zuordnung problematisch (3) Keine komplette Bepunktung 4. Stock Forumsgebäude, Gangende Liftseite --------------------| | | | | | --------------------=========================== || || || || || || p(4): Abgabe nicht im Kasten, nach 945 q(4): Keine Punkte. 1.4 Normalformen Beobachtungen: (1) Zur übersichtlichen und systematischen Behandlung von logischen Ausdrücken ist es zweckmäßig, sich auf mög-lichst einfach und einheitlich struckturierte Ausdrücke zu beschränken. (2) Man kommt weniger als 5 Konnektoren aus! z.B. kann man (ϕ ↔ ψ) ersetzen durch (φ → ψ) ∧ (ψ → ϕ) Ähnlich geht das auch für →. (ϕ → ψ) ≡ (¬ϕ ∨ ψ) Damit kann man jeden logischen Ausdruck durch einen gleich-wertigen ersetzen, der nur die Konnektoren ¬, ∨, ∧ verwendet. Besondere Form: verneinungstechnische Normalform (vNF): Nur Konnektoren ¬, ∨, ∧, Verneinung nur direkt vor Variablen. Formale Grundlage für all diese Ersetzungen: Satz 1.28 (Ersetzbarkeitssatz) Wenn man in einem Ausdruck ϕ1 einen Teilausdruck χ1 , durhc einen logisch gleichwertigen Teilasudruck ersetzt, dann ist der entstehende Ausdruck ϕ2 äquivalent zu ϕ1 . Satz 1.29 Jeder Ausdruck ist logisch äquivalent zu einem Ausdruck in vNF. (Beispiel: ϕ := (p → q) → (¬q → ¬p) Vorgehensweise: (1) ¬(¬p ∨ q) ∨ (¬(¬q) ∨ ¬p) (2) (¬(¬p) ∧ ¬q)) ∨ (¬(¬q) ∨ ¬p) (Ersetze →) (Negation ausführen) 11 (3) (p ∧ ¬q) ∨ (q ∨ ¬p) (Weglassen von ¬¬) Beweis von 1.29: Wir beschränken uns auf Ausdrücke, die nur ¬, ∧, ∨ enthalten. Vorgehen per Induktion über die Länge des Ausdrucks. Induktionsanfang: ϕ Variable: klar! Induktionsschriitt: ϕ muss die Form ψ ∧ χ, ψ∨χ oder ¬ψ haben, wobei ψ und χ kürzer sind, lassen sich also äquivalent duch ψ 0 bzw. χ0 in vNF ersetzen. Dann sind ψ 0 ∧ χ0 bzw. ψ 0 ∨ χ0 bereits bereits in vNF → fertig! Also bliebt zu betrachten: ϕ = ¬ψ 0 Dann betrachte: (a) ψ 0 ist Variable → fertig, vNF! (b) ψ 0 ist Verneinung einer Variablen, d.hj.d ϕ = ¬(¬p) Dann kann man ϕ durch p ersetzen → fertig! (c) ψ 0 = (ψ1 ∨ ψ2 ), d.h. ϕ = ¬(ψ1 ∨ ψ2 ) Dann ersetze ¬ψ 0 durch (¬ψ1 ∧ ¬ψ2 ) und ¬ψ1 bzw. ¬ψ2 sind kürzer als ϕ, also auch durch vNF-Ausdrücke ψ10 , ψ20 ersetzbar, also (ψ10 ∧ ψ20 ) → fertig. (d) Wie (c), verwende ¬(ψ1 ∧ ψ2 ) ≡ (¬ψ1 ∨ ¬(ψ1 ∨ ¬ψ2 ) 2 Noch eine speziellere Normalform: Kontext in Komplexitätstheorie Problem SAT (Satisfiability) GEGEBEN: Ausdruck (p ∨ q ∨ r) ← Klausel ∧ (¬p ∨ ¬s¬t) Klausel ∧ (|{z} . . . Alternative von Variablen oder verneinten Variablen ) Klausel in kon- junktiver Normalform (KNF oder englisch CNF) GESUCHT: Erfüllende Wahrheitsbelegung, falls existent! Beobachtung: SAT ist ein kniffliges Problem Präzisierung: (Cook 1971) SAT ist NP-vollständig, d.h. vermutlich nicht schnell durch herkömmliche Computer lösbar. Möglicher Ausweg: Dedizierte Hardware! (p ∨ q ∨ ¬s) ∧ (¬p ∨ r) ∧ (r ∨ s) ∧ (¬q ∨ ¬s ∨ ¬r) ∧ (¬r ∨ s) 12 p = 1, q = 0, r = 1, s = 1 p = 0, q = 1, r = 0, s = 1 Konjunktive Normaform: ϕ hat die Form ∧ni=1 ϕi , wobei jedes ϕi die Form i ∨m ji =1 lji hat, mit lji (“Lieteral”) Variable oder verneinte Variable. Satz 1.30 (1) Jeder logische Ausdruck ist äquivalent zu einem Ausdruck in CNF. (Beispiel: (p → q) → (¬q → ¬p) übersetzt in (3)(p ∧ ¬q) ∨ (q ∨ ¬p) mit Distributivität: (4)(p ∨ q ∨ ¬p) ∧ (¬q ∨ q ∨ ¬p) Aufgabe 4 (a) Beweisen Sie, dass folgender Ausdruck eine Tautologie ist: (p → (q → r)) → ((p → q) → (p → r)) Möglichkeit 1: (“Brutales Einsetzen”) 8 Möglichkeiten! Der Reihe nach: p = 0, q = 0, r = 0 → Einsetzen: (0 → (0 → 0)) → ((0 → 0) → (0 → 0)) = (0 → 1) → (1 → 1) = (1 → 1) =1 Möglichkeit 2: Versuche zu zeigen, dass sich die Formel nicht durch Einsetzen zu FALSCH bekommen lässt! Also: Wie kann man am Schluss eine 0 bekommen? Dafür müsste (p → (q → r)) = 1 und ((p → q) → (q → r)) = 0 sein, also (p → q) = 1 und (p → r) = 0. Daher müsste p = 1, r = 0 sein. Wegen (p → q) = 1 muss q = 1 sein. Mit dieser Belegung ergibt sich aber (p → (q → r)) = 0, d.h. die Formel ist trotzdem WAHR. Aufgabe (1) (a) Wenn die Sonne scheint, ist Susi gut gelaunt. Wenn es regnet, scheint nie die Sonne. Folgt daraus, dass Susi nicht gut gelaunt ist, wenn es regnet? Formeltechnisch: p: Die Sonne scheint. q: Susi ist gut gelaunt r: Es regnet. ((p → q) ∧ (r → ¬p)) → (r → ¬q) Ist das afu jeden Fall wahr, d.h. ist das eine Tautologie? Nicht erfüllt für q = 1 und geeignetes p, r. 13 (b) Wenn die Sonne scheint, dann regnet es nicht. Wenn Susi gut gelaunt ist, dann scheint die Sonne. Folgt daraus, dass es nicht regnet, wenn Susi gut gelaunt ist? ((q → p) ∧ (p → r)) → (q → r) Spezialfälle logischer Ausdrücke • Elementarkonjugation: p1 ∧ p2 ∧ ¬p3 ∧ . . . ∧ pn = ∧ni=1 li ( wobei li = pi oder ¬pi s) |{z} • Elementaralternative: q1 ∨ q2 ∨ . . . ∨ ¬qm−1 ∨ qm = ∨m oder ¬qj ) j=1 kj ( wobei kj = qj |{z} Besondere Normalformen: • Konjunktive Normalform (KNF, englisch CNF) Konkunktion von Elementaralternativen, i d.h. ∧ni1 (∨m ij =1 kij ) • Alternative Normalform (ANF) Alternative von Elementarkonjunktionen, ni d.h. ∨m j=1 (∧ji =1 lij ) Satz 1.30: Normalformen (1) Jeder Ausdruck ist äquivalent zu einem Ausdruck in CNF. (2) Jeder Ausdruck ist äquivalent zu einem Ausdruck in ANF. Beweis: O.B.d.A. sei ϕ in vNF (1) Induktion über die Länge des Ausdrucks. Induktionsanfang: ϕ unnegierte oder negierte Variable → fertig. Ansonsten: ϕ muss die Form (a) ϕ = ψ ∧ χ oder (b) ϕ = ψ ∨ χ haben. Nach Induktionsannahme lassen sich ψ und χ ersetzen durch CNF- Ausdrücke ψ 0 bzw. χ0 . Fall (a): ϕ äquivalent zu ψ 0 ∧ χ0 , udn das ist bereits eine CNF. Fall (b): ψ 0 und χ0 haben (als CNF-Ausdrücke) die Form ∧ni=1 ψi bzw. ∧m j=1 χj , 14 wobei ψi bzw. χj Elementaralternativen sind. Dann ilt ein allgemeines Distributivgesetz: n m (∧ni=1 ψi ) ∨ (∧m j=1 χj ) ≡ ∧i=1 ∧j=1 (ψi ∨ χj ) Also ist ϕ äquivalent zu ∧ni=1 ∧m j=1 (ψi ∨ χj ), d.h. zu einem Ausdruck in CNF. (2) geht genau nach dem gelichen Prinzip. 2 Ende von 1.4 Weiter bei 1.2 Semantik P Zur Erinnerung: F |= (“F realisiert Σ”) P |= ϕ(“ϕ folgt aus Σ) Ded(Σ): Menge aller Folgerungen aus Σ. Satz 1.4 (1) Ded(∅) ist die Menge der Tautologien. (2) Ist Σ widerspruchsvoll, so ist Ded(Σ) =Menge aller Ausdrücke. Beweis: (1) Jede beliebige Belegung erfüllt alle logischen Ausdrücke in ∅. Also erfüllt die Behauptung. (2) Keine Belegung ist Realisierung von Σ. Dann gilt aber, dass irgendein logischer Ausdruck von jeder Belegung erfüllt wird, die Σ realisiert. 2 Satz 1.5 (Hülleigenschaften) Σ und ∆ beliebige Mengen von Ausdrücken. Dann gilt (1) Σ ⊆ Ded(Σ) (2) Wenn ∆ ⊆ Σ dann Ded(∆) ⊆ Ded(Σ) (3) Ded(Ded(Σ)) = Ded(Σ) Beweis: (1) Sei ϕ ∈ Σ und sei F Realisierung von Σ. Dann ist natürlich F ∗ (ϕ) = 1. (2) Sei ∆ ⊆ Σ, sei ϕ ∈ Ded(∆), F Realisierung von Σ damit ist auch F ∗ (ϕ) = 1, denn ϕ ∈ Ded(∆). Also gilt ϕ ∈ Ded(Σ), d.h. Ded(∆) ⊆ Ded(Σ). 15 (3) Wegen Σ ⊆ Ded(Σ) (nach (1)) und (2) gilt Ded(Σ) ⊆ Ded(Ded(Σ)). Also noch z.Z.: Ded(Ded(Σ)) ⊆ Ded(Σ). Sei also ϕ ∈ Ded(Ded(Σ)), sei F Realisierung von Ded(Σ), d.h. F ∗ (ϕ) = 1. Betrachten wird ein ψ ∈ Ded(Σ). Da F Ralisierung von Ded(Σ) ist, muss uach F ∗ (ψ) = 1 sein. Also gilt für jede Realisierung G von Σ, dass sie auch jedes ψ ∈ Ded(Σ) erfüllen muss, also gilt auch G∗ (ϕ) = 1 also ϕ ∈ Ded(Σ) 2 Satz 1.6 (Abtrenungsregel für das Folgern) Wenn Σ |= (ϕ → ψ), dann Σ ∪ {ϕ} |= ψ Beweis: Sei Σ |= (ϕ → ψ), F Realisirung von Σ ∪ {ϕ}. Dann ist F auch Realisierung von Σ, und ALso muss 1 = F ∗ (ϕ → ψ) = max{1 − F ∗ (ϕ), F ∗ (ψ)} Außerdem ist F ∗ (ϕ) = 1, also muss 1 = max{0, F ∗ (ψ)} sein, d.h. F ∗ (ψ) = 1. 2 Umkehrung: Satz 1.7 (Deduktionstheorem für das Folgern) Sei: Σ Menge von Audrücken, ϕ, ψ Ausdrücke. Es gilt: Wenn Σ ∪ {ϕ} |= ψ, dann Σ |= (ϕ → ψ). Beweis: Sei F Realisierung von Σ. Wir zeigen, dass F den Ausdruck (ϕ → ψ) erfüllt. 1. Fall: F 6|= ϕ d.h. F ∗ (ϕ) = 0, also F ∗ (ϕ → ψ) = max{1 − F ∗ (ϕ), F ∗ (ψ)} = 1 2. Fall: F |= ϕ, d.hd. F Realisierung von Σ ∪ {ϕ}. Wegen Σ ∪ {ϕ} |= ψ gilt F ∗ (ϕ) = 1. Damit gilt F ∗ (ϕ → ψ) = max{1 − F ∗ (ϕ), F ∗ (ψ)} = 1 2 Satz 1.8 (Endlichkeitssatz) Wenn ϕ aus einer Menge Σ foglt, dann folgt ϕ bereits aus einer englichen Teilmenge von Σ. Beweis: nicht hier. Satz 1.9 (Kompaktheitssatz) “Σ” ist widerspruchsfrei, genau dann, wenn jede endliche Teilmenge widerspruchsfrei ist. “:” ist klar “⇐” Mit Satz 1.8! 16 Annahme: Jede enlgiche Teilmenge von Σ sei widerspruchsfrei, d.h. habe eine Realisierung. Beweis im Rest indirekt! Also: Angenommen, Σ sei widerspruchsvoll. Also folgt nach Satz 1.4 aus Σ auch (p ∧ ¬p) Nach Satz 1.8 existiert eine endliche Teilmenge ∆ ⊆ Σ mit ∆ |= (p ∧ ¬p) Nach VOrraussetzung besitzt ∆ eine Realisierung F . Wengen ∆ |= (p ∧ ¬p) ist F ∗ (p ∧ ¬p) = 1 . Aber F ∗ (p ∧ ¬p) = min{F ∗ (p), 1 − F ∗ (p)} = 1 d.h. F ∗ (p) = 1 und 1 − F ∗ (p) = 1 ⇔ f ∗ (p) = 0E Daher ist die Annahme falsch, dass Σ widerspruchsvoll ist. 2 ϕ: Jede endliche Teilmenge von Σ ist widerspruchsfrei. ψ: Σ ist wiederspruchsfrei. Beweisstruktur: ψ ↔≡ (ψ → ϕ) ∧ (ϕ → ψ) ≡ (ψ → ϕ) ∧ (¬ψ → ¬ϕ) (und (¬ψ ∧ ϕ) ist wiedersprüchlich) 1.3 Schlussregeln Idee: Nicht nur die Mengen von Wahrheitsbelegungen überprüfen, sondern systematisch nach gewissen Regeln aus gesicherten Ausdrücken neue gesicherte Ausdrücke bauen bzw. “ableiten”. Ausgangspunkte: Sogenannte “Axiome” Schlussregel: “Modus Ponens” oder “Abtrennungsregel”: Ist aus Σ sowohl ϕ also auch ϕ → ψ beweisbar, dann ist aus Σ auch ψ beweisbar. Einfaches Beispiel zum Folgern (d.h. zu Aufgabe 2 von Blatt 3): Σ = {(p → q), (p → ¬q)} Wir zeigen Σ |= ¬p Also nachzuweisen: Für jede Realisirung F von Σ gilt, dass sie auch (¬p) erfüllt. p q (p → q) (p → ¬q) ¬p 1 1 1 0 0 1 1 1 Überprüfe die Realisierungen von Σ: 0 1 1 0 0 1 0 1 1 1 0 0 Also sehen wir: Für jede Belegung F die sowohl (p → q) also auch (p → ¬q) erfüllt, ist auch (¬p) wahr. Auflösung M U -Rätsel Gegeben: Axiom: M I Schlussregeln: (1) xI ` xIU (2) M x ` M xx (3) xIIIy ` xU y 17 (4) xU U y ` xy Gesucht: Ableitung (“Bauanleitung”) für MU. M I ` M U I, M U IU I ` M II, M IIU, M IIU IIU ` M IIII, M U I, M U IU, M U IU U IU, M U IIU ` M IIIIIIII Beobachtung: Irgendwie klappt das nicht.... Genauer: Irgendwie wird man nie alle Is los! Wie zeigt man das?! Beweis: Durch Induktion! Behauptung: Die Zahl der Is ist nie durch 3 Teilbar. Induktionsanfang: M I hat ein I also richtig. Induktionsschritt: Angenommen, die Behauptung gilt für alle Wörter, die mir durch höchstens k Bauschritte konstruieren können, und betrachten wir ein in (k+1) Beuaschitten konstruiertes Wort. Betrachten wir den (k + 1)-ten Bauschitt. Wenn dieser mit Regel (1) oder (4) erfolgt ist, hat sich die Zahl der Is nicht geändert. Wenn die Zahl nach Schritt k nicht durch 3 teilbar war, hat sie Dreierrest 1 oder 2. Regel (2) verdoppelt die Zahl, d.h. wir bbekommen Dreierrest 2 oder 1. Regel (3) ändert den Dreierrest nicht, er bleibt also 1 oder 2. 2 Schaltalgebra + E-TEchnik (→ Box 5) In E-Technik: Strom fließt: 1, bzw. WAHR fliegt nicht: 0, bzw. FALSCH Aufgabe: Logische Wahrheitswertfunktion mit Schaltkreisen realisieren! Beispiel: Digitale Ziffernanzeige! | | | | 0 1 2 Input Zahlen in Binärform 3 4 .. . 0000 0001 0010 9 1001 Also: für Belegung (1, 0, 0, 1) bekommt man eine 1 für ein leuchtendes Element eine, eine 0 für ein nicht leuchtendes Element. 18 p1 p2 p3 p 4 abcdef g 0 1 1 0 2 1 3 0 1. Schritt: JEdes einzelne Bit als logischen 4 0 5 0 6 1 7 0 8 1 9 1001 1111011 Ausdruk der Inputbits realisieren. 2. Schritt: Diese jeweiligen Funktionen durch bestimmte Schaltelemete realisieren. Konkret z.B.: NAND, d.h. (N (p, q) = ¬(p ∧ q)) (→ Zur Erinnerung: p|q := ¬(p ∨ q)) Inhalt von 1.1: Syntax der Aussagenlogik, d.h. formal korrektes Bauen von Formeln 1.2: Semantik der Aussagenlogik, d.h. Fragen der Wahrheitswerte von Formeln, inbesondere logisches Folgern 1.3: Formales Beweisen, d.h. nicht Folgern durch Betrachtung der Wahrheitswerte, sondern syntaktisches “Bauen” von wahren Ausdrücken. Schreibweisen: Σ |= ϕ: Aus Σ folgt ϕ Σ |= ϕ: Aus Σ kann man ϕ ableiten. Idee zum Ableiten: Gegeben: • Menge Σ • Schlussregel(n) ϕ ableitbar aus Σ, wenn mit Ausgangsmenge Σ und mit endlicher Folge von Anwendung der Schlussregel(n) ϕ kontruiert werden kann. Bezeichnung auch “Formales Beweisen” Ein “Beweis” von ϕ aus Σ ist also eine formale Bauanleitung von ϕ aus Σ mit den Schlussregeln. Wie sieht Σ aus??! Das kann eine Menge von konkret gegebenen Ausdrücken sein, oder auch eine allgemein immer angenommene “Grundausstattung”. So eine Grundausstattung nennt man in der Mathematik eine Menge von Axiomen. Ax 1: p → (q → p) Ax 2: [p → (q → r)] → [(p → q) → (p → r)] Ax 3: (¬p → ¬q) → (q → p) Ax 4: (p ∧ q) → p und (p ∧ q) → q 19 Ax 5: (r → p) → ((r → q) → (r → (p ∧ q))) Ax 6: p → (p ∨ q) und q → (p ∨ q) Ax 7: (p → r) → ((q → r) → ((p ∨ q) → r)) Das sind die “Axiome des Aussagenkalküls” Schlussregel: “Modus Ponens” oder “Abtrannungsregel” Ist aus Σ sowohl ϕ als auch ϕ → ψ formal beweisbar, dann ist aus Σ auch ψ formal beweisbar. Vorgehensweise “Ableitung” Satz 1.11: ϕ → ϕ ist ableitbar Beweis: Wir geben eine Kette von Schritten aus Axiomen und Schlussregel an. (1) In Ax 2 mit p := ϕ q := ϕ → ϕ r := ϕ ergibt sich: ϕ1 := [ϕ → ((ϕ → ϕ) → ϕ)]ϕ[(ϕ → (ϕ → ϕ) → (ϕ → ϕ)] (2) In Ax 1 mit p := ϕ und q := ϕ → ϕ ergibt sich: ϕs := ϕ → ((ϕ → ϕ) → ϕ) (3) ϕ3 := (ϕ → (ϕ → ϕ)) → (ϕ → ϕ) ergibt sich aus ϕ1 und ϕ2 durch Anwenden der Schlussregel. (4) Aus Ax 1 mit p := ϕ, q := ϕ ergibt sich ϕ4 := (ϕ → (ϕ → ϕ)) (5) ϕ5 := (ϕ → ϕ) ergibt sich aus ϕ3 und ϕ4 durch anwenden der Schlussregel. 2 Definitionen: • ψ heißt direkte Konsequenz von ϕ und ϕ → ψ • Endliche Folge (ϕ1 , . . . , ϕn ) heißt Σ-Beweis, wenn gilt (1) ϕi ist ein Axiom (2) ϕi gehört zu Σ (3) ϕi ist direkte Konsequenz von ϕj , ϕk , d.h. ϕj := ψ ϕk := ψ → χ ϕi := χ Konsequenzen Satz 1.12 Abl(Σ) ist Hülloperator, d.h. (1) Σ ⊆ Abl(Σ) (2) ∆ ⊆ Σ:Abl(∆) ⊆ Abl(Σ) 20 j, k < i, (3) Abl(Abl(Σ)) = Abl(Σ) Satz 1.13 Ist ϕ aus Σ ableitbar, so ist ϕ aus einer endlichen Teilmenge von Σ ableitbar. Satz 1.15 Wenn Σ ` ϕ, dann Σ |= ϕ. Beweis: Argumentation durch Induktion! Betrachte einen Σ-Beweis für ϕ, d.h. eine endliche Kette (ϕ1 , . . . , ϕn )(mit)ϕn := ϕ, so dass (1) ϕi ergibt sich aus Axiom (2) ϕi ist in Σ (3) ϕi ergibt sich als direkte Konsequenz von früheren ϕj , ϕk . Zu betrachten: Wahrheitswerte für Realisierung von F von Σ! Warum ist ϕi ebenfalls wahr für F ? (1) Alle Axiome sind Tautologien, daher ist F ∗ (ϕ) = 1 (2) Für ϕ ∈ Σ ist nach annahme F ∗ (ϕ) = 1 (3) Hier greift die Induktion über die Kettenlänge, d.h. über n: ϕn ergibt sich als Konsequenz aus ϕj und ϕk mit j, k < n, für die nach Induktionsannahme also F ∗ (ϕj ) = F ∗ (ϕk ) = 1 gilt, d.h. F ∗ (ψ) = 1 und F ∗ (ψ → χ) = 1, ((mit)ϕj := ψϕk := ψ → χϕn := χ ) Also muss F ∗ (χ) = 1, also F ∗ (ϕn ) = F ∗ (ϕ) = 1 2 Satz 1.17 Ist ψ aus Σ ∪ {ϕ} ableitbar, dann ist ϕ → ψ aus Σ ableitbar. Semantisch: Σ widerspruchsfrei: Σ erfüllbar, d.h. es gibt eine Belegung, die für alle Ausdrücke in Σ “WAHR”’ liefert. Analoger Begriff für syntaktisches Beweisen: “Σ konsistent” Gegenstück: Σ inkonsitent: Σ ` ϕ und Σ ` ¬ϕ Beobachtung: Wenn Σ inkonsistens ist, dann ist Σ nicht realisierbar. Argumentation: Wäre Σ realisierbar, so gäbe es eine Belegung, die alle Ausdrücke in Σ erfüllt, 21 aber auch alle abgeleiteten Ausdrücke. Also gilt sowohl F ∗ (ϕ) = 1 als auch F ∗ (¬ϕ) = 1, {z } | =1−F ∗ (ϕ) was nicht sein kann. Satz 1.18 Wenn Σ inkonsistent ist, dann kann man aus Σ jeden belibigen Ausdruck ableiten. Beweis: Betrachte irgendeinen Ausdruck ψ. Ist Σ inkonsistent, dann gibt es einen Ausdruck ψ, so dass sowohl Σ ` ϕ als auch Σ ` ¬ϕ ableitbar sind. Also: (1) Σ ` ϕ (2) Σ ` ¬ϕ Dann: (3) Σ ∨ {¬ψ} ` ¬ϕ (Nach Satz 1.12 (2)) (4) Σ ` (¬ψ → ¬ϕ) (Satz 1.17 “Deduktionssatz”) (5) Σ ` (¬ψ → ¬ϕ) → (ϕ → (ϕ → ψ) Ax 3 (6) Σ ` (ϕ → ψ) Abtrennungsregel auf (4) und (5). (7) Σ ` ψ Abtrennungsregel auf (1) und (6). 2 Satz 1.19 Σ widerspruchsfrei :Σ konsistent. Beweis: Wenn Σ inkonsistent wäre, ließe sich jeder Ausdruck ableiten, insbesondere auch (p ∧ ¬p). Damit hätte man aber einen aus Σ abgeleiteten Asudruck, der sich durch keine Belegung erfüllen lässt. Nach Satz 1.15 ist (p ∧ ¬p) auch durch jede Realisierung von Σ erfüllt. Also kann es eine Realisierung von Σ geben, d.h. Σ ist widersprüchlich. Satz 1.20 Wenn Σ ∨ {¬ϕ} inkonsistent ist, dann gilt Σ ` ϕ. Wichtiger Begriff: Σ ist vollständig, wenn für jeden Ausdruck gilt endweder (Σ ` ϕ) oder Σ ` ¬ϕ Problem: Im allgemeinen sind Mengen Σ nicht vollständig! Beispiel: Σ = {Ax1, . . . , Ax7} ϕ = p ← ist “unabhängig” von Axiomen! Satz 1.21 (Satz von Lindenbaum) Jede konsistente Menge Σ lässt sich zu einer vollständigen Menge Σ0 erweitern. Beweis: Betrachte Σ abzählbar (Die Gesamtmenge aller logischen Ausdrücke ist abzählbar!) Betrachte Aufzählung ϕ1 , ϕ2 , ϕ3 , . . . der Ausdrücke. Dann baue Σ0 ⊆ Σ1 ⊆ Σ2 ⊆ . . . wie folgt: 22 (a) Σ = Σ0 (b) Wenn Σn ∪ {ϕn } konsistent, dann Σn+1 = Σ1 ∪ {ϕn }. Sonst Σn+1 = Σn Behauptung 1: Σn+1 ist konsistent. (Beweis durch Induktion!) S∞ Behauptung 2: Σ0 n=0 Σn konsistent. 0 Beweis: Falls Σ inkonsistent, dann gibt eine eine endliche Teilmenge ∆, die inkonsistent ist. Dann ist aber für eine genügend große Zahl n ∆ ⊆ Σn , im Widerspruch zu Beh.! Behauptung 3: Σ0 ist vollständig. Beweis: Sei ϕ ein Ausdruck. Da alle Ausdrücke aufzählbar sind, besitzt ¬ϕ eine Nummer k, also ¬ϕ = ϕk . Ist Σk {ϕk } konsistent, so ist ϕk ∈ Σ0 also Σ0 ` ¬ϕ Andernfalls ist Σk ∪ {ϕk } inkonsistent. Aus Satz 1.20 folgt also Σk ` ϕ, also Σ0 ` ϕ. Satz 1.25 Jede Tautologie ist aus den Axiomen ableitbar. Frage: Kann man Q abeiten? (Also P : “Ihr sagt ein Wort.” ¬P : “Ihr sagt kein Wort.” Q: “Ihr verliert eure Köpfe.” Gegeben: (P → Q) ∧ (¬P → Q) (P → Q) Zerlegen: jeweils mit Ax 4 (¬P → Q) (P → Q) → (¬Q → ¬P ) Ax 3 (¬P → Q) → (¬Q → P ) Ax 4 (¬Q → ¬P )(¬Q → P )} Abtrennen Also (¬Q → ¬P ) → ((¬Q → P ) → (¬Q → (P ∧ ¬P )) Ax 5 (¬Q → P ) → (¬Q → (P ∧ ¬P )) (Abtrennen) ¬Q → (P ∧ ¬P ) (Abtrennen) Angenommen, Σ ` ¬Q, dann Σ inkonsistent. (Q ∨ ¬Q) ist Tautologie. (1) (P → Q) ∧ (¬P → Q) Σ gesucht: Ableitung für Q (2) ((P → Q) ∧ (¬P → Q)) → (P → Q) und((P → Q) ∧ (¬P → Q)) → (¬P → Q)qquad Ax 4 (3) (P → Q) (4) (¬P → Q) Abtr. (1),(2) Abtr. (1),(2) (5) (P → Q) → (¬Q → ¬P ) (6) ¬Q → ¬P Ax 3 Abtr. (3),(5) (7) (¬P → Q) → (¬Q → P ) Ax 3 23 (8) ¬Q → P Abtr. (4),(7) (9) ((¬Q → ¬P ) → ((¬Q → P ) → (¬Q → (P ∧ ¬P )))) (10) (¬Q → P ) → (¬Q → (P ∧ ¬P )) (11) (¬Q → (P ∧ ¬P )) Abtr. (6),(9) Abtr. (8),(10) (12) (¬Q → (P ∧ ¬P )) → (¬(P ∧ ¬P ) → Q) (13) (¬(P ∧ ¬P ) → Q) d.h. (¬P ∨ P ) → Q Ax 5 Ax 3 Abtr. (11), (12) (14) P → P (Satz 1.11) d.h. (¬P ∨ P ) (15) Q Abtr. (13), (14) Weiter nach Satz 1.21! “Jede Konsistente Menge Σ lässt sich zu einer vollständigen Menge Σ0 erweitern.” Aus so einer vollständigen Erweiterung kann man eine Belegung basteln: FΣ0 (pi ) = {1 falls Σ0 ` pi 0 falls Σ0 ` ¬pi Damit: Satz 1.22 Sei Σ vollständig. Dann gilt: FΣ∗ (ϕ) = 1 ⇔ Σ ` ϕ Beweis: (Induktion über Formelaufbau) Daraus ergibt sich Satz 1.23 Σ konsistent ⇔ Σ widerspruchsfrei und weiter Satz 1.24 (Vollständigkeitssatz) Sei Σ Ausdrucksmenge, ϕ Ausdruck. Dann gilt Σ |= ϕ ⇔ Σ ` ϕ Spezielle Form: Satz 1.25 ϕ ist genau dann Tautologie, wenn aus den Axiomen ableitbar. 24 Kapitel 2 Prädikatenlogik Nun: Logik auf mathematischen Strukturen! Beliebtes Beispiel: (Ganze) Zahlen 2.1 Strukturen und Relationen Beispiele: “Bush bekommt mehr Wahlmänner als Kerry” z}|{ Schreibweise: nBush > Beispiel einer RelationnKerry Andere Beispiele: (a) 2 < 4 (b) 7 > 9 (c) 5 | 11 (d) 3 4 = 0.75 Begriff: Relation (“Beziehung”) Beispiel: a < b Genauer: Gegeben: Grundmenge A (z.B. N) S ⊆ A2 A2 = A × A: Menge aller geordneten Paare von Objekten aus A nennt man eine zweistellige Relation. Dies ist also die Menge aller geordneten Paare, die zueinander in Beziehung stehen. (Beispiel: S ⊆ N2 kann etwa die Menge {(a, b) ∈ N2 | a < b} sein.) Anderes wichtiges Beispiel! Betrachte “<” auf {1, 2, 3, 4, 5} : (1, 2), (1, 3), (1, 4), (1, 5) (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5) Graphisch dargestellt: Also: Gegeben (endliche) Menge von Objekten, “Knoten”, Menge von gerichteten “Kanten”, so dass eine Kante (v, w) von Konten v und Konten w genau vorhanden ist, wenn (v, w) zur Relation gehört. 25 So eine Struktur nennt man einen gerichteten Graphen. Inhaltlich ist das genau dasselbe wie eine zweistellige Relation. Besondere Eigenschaften von Relationen: Eine zweistellige Relation S ⊆ A2 heißt (R) reflexiv: Für alle a ∈ A gilt (a, a) ∈ S (IR) irreflexiv: Für alle a ∈ A gilt (a, a) 6∈ S (S) symmetrisch: Für alle a, b ∈ A gilt (a, b) ∈ S ⇔ (b, a) (AS) antisymmetrisch: Für alle a, b ∈ A gilt: (a, b) ∈ S ∧ (b, a) ∈ S, so gilt a=b (K) Konnex: Für alle a, b ∈ A gilt: (a, b) ∈ S oder (b, a) ∈ S oder a = b (L) linear: Für alle a, b ∈ A gilt (a, b) ∈ S oder (b, a) ∈ S. (T) transitiv: Für alle a, b, c ∈ A gilt (a, b) ∈ S ∧ (b, c) ∈ S:(a, c) ∈ S Das nennt man einen Graphen. Ein Graph besteht aus einer Menge von Objekten (“Knoten”), die z.T. paarweise verbunden sind (durch ungerichtete “Kanten”) Besondere Teilklasse und ihre Visualisierung: Sei S ⊆ A2 irreflexiv und symmetrisch. Beispiel: (1, 2), (2, 1), (1, 5), (5, 1), (2, 5), (5, 2), (2, 3), (3, 2), (2, 4), (4, 2), (3, 4), (4, 3), (3, 5), (5, 3), (4, 5), (5, 4) Schreibweise und Bezeichnung: Graph G = (V, E) mit V : Menge von Objekten (Knoten, engl. “vertices”, sing. “vertex”) E: Menge von ungerichteten Kanten (Kanten, engl. “edges”) Kante: e = {v, w} ← also ungeordnetes Paar! Besondere Art von Relationen. reflexiv + symmetrisch + tranistiv Äquivalenzrealtionen Beispiel: Reste bei ganzen Zahlen! Sei A = Z (ganze Zahlen) und sei m ∈ N. Dann setzen wir für a, b ∈ A a ∼m b :⇔ Es gibt K(a,b) ∈ Z mit (a − b) = m · K(a,b) (oder auch: m teilt (a − b), geschrieben als m|(a − b)) Behauptung: ∼m beschreibt Äquivalenzrelation auf Z Beweis: Nachzuprüfen ist: (a) ∼m ist reflexiv (b) ∼m ist symmetrisch (c) ∼m ist transitiv zu (a): zu zeigen ist Für alle a ∈ Z gilt: a ∼m a, d.h. es gibt K(a, a) mit (a − a). Wählt man K(a, a) = 0, so ist tatsächlich (u − a) = 0 = 0 · m = K(a, a) · m = K(a, a) = m zu (b): zu zeigen ist Für alle a, b ∈ Z gilt: a ∼m b ⇔ b ∼m a. 26 Sei also m ∈ N, a, b ∈ Z und a ∼m b, d.h. es gibt ein K(a,a) ∈ Z mit (a − a) = m · K(a, a). z.Z. Es gibt ein K(b,a) mit (b − a) = m · K(b, a) Wähle K(b, a) = −K(a,b) , dann ist (b − a) = −(a − b) = −m · K(a, b) = m · (−K(a,b) ) = m · K(b,a) “ ⇐00 analog zu (b) zu zeigen: Für alle a, b, c ∈ Z mit a ∼m b, b ∼m c, dann gilt a ∼m c Seien also a ∼m b und b ∼m c, d.h. es gibt K(a, b) mit (a − b) = m · K(a,b) und K(b,c) mit (b − c) = m · K(b, c) zu zeigen: Es gibt K(a, c) mit (a, c) = m · K(a, c) Wähle: K(a,c) = K(a,b) + K(b,c). Dann ist: (a − c) = (a − b) + (b − c) = m · K(a, b) + m · K(b, c) = m · (K(a+b) + K(b+c) ) = m · K(a, c) Also gibt es tatsächlich a ∼m c Dann ist ∼m tatsächlich Äquivalenzrelation. 2 - Weitere Betrachtung: Wann sind ganze Zahlen a, b äquivalent? Schreiben wir a = m · Ka + ra mit Ka ∈ Z und ra ∈ {0, . . . , m − 1} b = m · kb + rb mit Kb ∈ Z und rb ∈ {0, . . . , m − 1}, dann sieht man, dass (a−b) genau dann ein Vielfaches von m ist, wenn ra −rb = 0, bzw. ra = rb Also a m b ⇔ Bei Division durch m bleibt bei a und b jeweils der gleiche Rest. Dafür gebraucht man auch die Schreibweise a ≡ b(modm) “a kongruent b modulo m” Durch eien Äquivalenzrelation wird die Grundmenge A in eine Position von Teilmehngen unterteilt. Betrachte a ∈ A Dann ist a/ := {x ∈ A|a x} die sogenannte Äquivalenzklasse von a. Aus der Transitivität folgt: Wenn isch zwei Äquivalenzklassen schneiden, dann sind sie auch schon gleich. Zum Beispiel: Aufteilung in Restklasse! Genauer: Z zerfällt durch die Äquivalenzrelation m in genau m Äquivalenzklassen, nämlich in R0 , . . . , Rm−1 , wobei Ri = {a ∈ Z|a = m · Ka + i} Man erinnert sich: Mit Resten kann man rechnen ganz ähnlich wie mit ganzen Zahlen! Noch ein Beispiel: Betrachte = N 2 , setze (m1 , n1 ) (m2 , n2 ) ⇔ m1 · n2 = m2 · n1 Behauptung: Dies definiert eine Äquivalenzrelation! (a) Wenn a = (m1 , n1 ), dann ist m1 ·n1 = m1 ·n1 , also a = (m1 , n1 ) (m1 , n1 ) = a (b) Wenn a = (m1 , n1 ) (m2 , n2 ) = b, also m1 · n2 = m2 = m1 , d.h. natürlich auch m2 · n1 = m1 · n2 , d.h. b a (c) Selbst! Gedankliche Nachbetrachtung: Es gibt a b, d.h. m1 · n2 = m2 · n1 , was dasselbe bedeutet wie 27 m1 n1 = m2 n2 . a und b sind also genau dann äquivalent, wenn sie die gleiche positive rationale Zahl beschreiben. Wenn man also von rationalen Zahlen spricht, hat man es mit Repräsentanten von Äquivalenzklassen zu tun. Merhstellige Relationen: S ⊆ An (mit n ∈ N) d.h. n-Tupel (a1 , . . . , an ) ∈ An . (; “Hypergraphen”) Besonderer Typ von mehrstelligen Relationen: Funktionen Betrachte (a1 , . . . , an , b) ∈ S ⊆ An+1 Ist (a1 , . . . , an , b) ∈ S und (a1 , . . . , an , c) ∈ S dann gilt bereits b = c, d.h. das letzte Element ist eindeutig bestimmt. → n-stellige Funktion, Besondere Elemten hervorheben: Konstate (in A) (z.B. in R : 0, 1, 2, π, . . .) oft Interpretation als “nullstellige Funktionen” - Bezeichnungen: A Grundmenge f1 , . . . , fn , dann nennt man A =< A, f1 , . . . , fn > algebraische Struktur oder Algebra. Sind außerdem: S1 , . . . , Sm Relationen auf A c1 , . . . , ck Konstanten aus A dann heißt A =< A, f1 , . . . , fn , S1 , . . . , Sm , c1 , . . . , ck > Struktur Beispiele für Strukturen: < R, +, ·, <, 0, 1 > oder auch < Z, +, ·, <, 0, 1 > 2.2 Elementare Sprachen Idee: Aussagen über ganze Mengen von Objekten und innerhalb von Strukturen! Beispiel: Aussage ϕ: “Die “kleiner-als”-Beziehung ist transitiv.” Formulierung: “Für alle natürlichen Zahlen m, n, k gilt: Ist m kleiner als n und n kleiner als k dann ist m kleiner als k.” Hinterer Teil: (m kleiner als n) ∧ (n kleiner als k) → (n kleiner als k). Abkürzung: Relationssymbol “¡” statt “kleiner als” (m < n) ∧ (n < k) → (m < k) Jetzt noch der vordere Teil: Symbol ∀ “alle” ∃ “ex gibt ein” Also: ∀m∀n∀k((m < n) ∧ (n < k) → (m < k)) 2.2.1 Grundbestandteile elementarer Sprachen Struktur A =< A, f1 , . . . , fm , R1 , . . . , Rn , a1 , . . . , ak > Elementare Sprache L hat folgende Zeichen: 28 (1) Variablen: v0 , v1 , v2 , . . .(oder auch x, y, z) (2) Funktionszeichen: F1 , . . . , Fm (3) Relationszeichen: P1 , . . . , Pn (4) Konstantenzeichen: c1 , . . . , ck (5) Logische Zeichen: ¬, ∧, ∨, →, ↔, ∀, ∃, = (6) Technische Zeichen: (, ) und andere Klammern F1 , . . . , Fm : Namen von Funktionen f1 , . . . , fm P1 , . . . , Pn : Namen von Relationen R1 , . . . , Rn c1 , . . . , ck : Namen von Konstanten a1 , . . . , ak . Umgekehrt: f1 , . . . , fm F1 , . . . , Fm R1 , . . . , R n P1 , . . . , Pn Interpretation von a1 , . . . , ak c1 , . . . ck Warum diese Unterscheidung? → Unterschied zwischen Name und Objekt! (Beispiel: Unterschied zwischen Name “Hans” als Zeichenkette und Person Hand als Objekt) Sehr wichtig bei Unterscheidung zwischen String “a” Variable a Wert der Variable a Motivation in der Logik auch: Abstrakte Sichtweise lässt oft sehr allgemeine Betrachtung zu und erfordert auch eine sehr allgemeine Schreibweise. Beispiel: Betrachte die Strukturen < N, + > und < ,· > . Beide bestehen außer der Grundmenge noch aus einer zweistelligen Funktion. Also: Parallelität der Struktur! Für solche Dinge führt man eine allgemeinere Bezeichnung ein. A =< A, F1 > mit F1 zweistellig. Bezeichnung hier: L(F1 ) mit F1 zweistellig “Die Sprache der Strukturen mit einer zweistelligen Funktion.” Allgemein: L(F1 , . . . , Fm , P1 , . . . , Pn , c1 , . . . , ck ) Wichtig: “Stellenzahl” der Symbole muss klar sein! Bezeichnung dafür: “Signatur” der Sprache σ : {F1 , . . . , Fm , P1 , . . . , Pm , c1 , . . . , ck } → N, ordnet jedem Symbol eine Stellenzahl zu (wobei c1 , . . . , ck nullstellig) Wichtiger Begriff: “Modell” einer Sprache: Konkrete Struktur mit gewisser Sprache! 29 2.2.2 Terme Definiere Terme einer Sprache L rekursiv: (a) Jede Variable, jedes Konstantensymbol sind Term (b) Ist F ein n-stelliges Funktionssymbol und sind t1 , . . . , tn , dann ist F (t1 , . . . , tn ) ein Term. (c) Eine Zeichenkette ist genau dann ein Term, wenn man sie durch endliche oftmalige Anwendung von (a) und (b) konstruieren kann. Beispiele: sinx, ex · (2 · sin5x + x2 · cosx), x2 + y 2 Formale Wertbildung: Definiere den Wert eines Terms analog zur Termbildung: (a) Ist t ein Konstantensymbol c, so ist W (t) = a. (Auch möglich: Symbol b, W (t) = b) (b) Ist t zusammengesetzt, so hat t die Form t = F (t1 , . . . , tm ) mit einfacheren Termen t1 , . . . , t1 , . . . , tm . Dann ist W (t) = F (W (t1 ), . . . , W (tm )). Beispiel: W (sin( π2 )) = sin π2 = 1 2.2.3 Prädikative oder auch atomare Ausdrücke (a) Sind t1 , t2 Terme, so ist die Zeichenfolge t1 = t2 ein atomarer Ausdruck (speziell Termgleichung) (b) Ist P ein n-stelliges Relationssymbol, dann ist mit Termen t1 , . . . , tn P (t1 , . . . , tn ) ein atomarer Ausdruck. (c) Atomare Ausdrücke sind genau die Zeichenketten, die durch endliche oftmalige Anwendung von (a) und (b) entstehen. Wahrheitswerte atomarer Ausdrücke, rekursiv analog Bildung der Ausdrücke: (a) Ist ϕ Termgleichung t1 = t2 , dann ist ϕ in A wahr oder erfüllt, wenn W (t1 ) = W (t2 ) (b) Hat ϕ die Form Pi (t1 , . . . , tn ), dann ist ϕ in A wahr oder erfüllt, wenn (W (t1 ), . . . , W (tn )) ∈ Ri , wobei Ri die konkrete Relation zum Symbol Pi ist. Wichtige Fragestellung: Erfüllung eines Ausdrucks. Symbolische Schreibweise: A |= ϕ für “ϕ ist wahr A” oder “ϕ ist erfüllt in A”. 30 2.2.4 Ausdrücke oder Formeln Wieder rekursiv: (a) Jeder atomare Ausdruck ist eine Formel. (b) Sind ϕ und ψ Ausdrücke, dann sind auch (¬ϕ), (ϕ ∧ ψ), (ϕ ∨ ψ), (ϕ → ψ), (ϕ ↔ ψ) Ausdrücke (c) Ist ϕ ein Ausdruck und x eine beliebige Variable, dann sind auch (∀x ϕ) ← “Für alle x gilt ϕ” und (∃x ϕ) ← “Es existiert ein x, so dass ϕ gilt00 Ausdrücke. (d) Ausdrücke sind genau die Zeichenketten, die durch endlich oftmaliges Anwenden von (a), (b), (b) entstehen. Bezeichnung: ∀, ∃ nennt man “Quandtoren”, ϕ wird in (∀xϕ) bzw. (∃xϕ) durch ∀ oder ∃ quantifiziert. Nächste Schritte: Einsetzen von Werten. Zubeachten: Nicht alle Variablen sind frei ersetzbar! ∀x∀y(x < y) ← x, y“gebunden” ist deutlich anders als ∃x∃y(x < y)“gebunden” aber auch als (|{z} x < y ) ← x, y“frei” |{z} 5 7 ∀x(x > 0) ∃x(x > y) Definition: Eine Variable x kommt in einem Ausdruck ϕ frei vor: (a) ϕ ist atomarer Ausdruck (b) ϕ hat die Form ¬ψ und x kommt frei vor in ψ oder (c) ϕ hat die Form ψ ∧ χ oder ψ ∨ χ oder ψ → χ oder ψ ↔ χ und x kommt frei vor in ψ oder χ. oder (d) ϕ hat die Form ∀y ψ oder ∃y y sind verschiedene Variable. ψ und x kommt frei vor in ψ und x und Beispiel: ϕ := ∀z(∃x(x + y < z) → ∀y(y + 2 < x)) Kommen x, y, z in ϕ frei vor? Zerlege ϕ: ψ := (x + y < z) ← x, y, z kommen frei vor χ := (y + 2 < x) ← x, y kommen frei vor ψ 0 := ∃x χ ← y, z kommen frei vor, x nicht (mehr) 31 χ0 := ∀y χ ← x kommt frei vor, y nicht (mehr) ϕ0 := ψ 0 → χ0 ← x, y, z kommen frei vor ϕ := ∀z ϕ0 ← x, y kommen frei vor, z nicht (mehr) In jedem Ausdruck gibt es nur endlich viele Variable, also auch nur endlich viele freie Variable. Schreibweise: ϕ(x1 , . . . , xn ), um anzudeuten, dass x1 , . . . , xn die freien Variablen in Ausdruck ϕ sind. Umbenennung bzw. Einsetzen: ϕ(x1 , . . . , xi−1 , yxi+1 , . . . , xn ) bezeichnet den Ausdruck der aus ϕ(x1 , . . . , xn ) entsteht, wenn man an allen Stellen, an denen xi frei vorkommt, xi durch y ersetzt. Beispiel: ϕ(x1 , x2 ) := ∃x3 (x1 + x2 = x23 ) Dann: ϕ(1, x2 ) := ∃x3 (1 + x2 = x23 ) ϕ(1, 3) := ∃x3 (1 + 3 = x23 ) Terme einsetzen: ϕ(3x4 , x2 ) := ∃x3 (3x4 + x2 = x23 ) ϕ(x24 + 1, 2 + x1 ) := ∃x3 (x24 + 1 + 2 + x1 = x23 ) Gültigkeit/Wahrheitswert von Ausdrücken Achtung: Mit freien Variablen ist nicht auf Anhieb klar, wie es um den Wahrheitswert eines Ausdruckes bestellt ist. Deshalb zunächst für Ausdrücke ohne freie Variable! Also: Sei L elementare Sprache. Sei A Struktur für L. Dann definieren wir “ϕ gültig in A” wie folgt: (1) Wenn ϕ atomar ist, dann wurde die Gültigkeit von ϕ ind A bereits definiert. (2 ] Für zusammengesetzte Ausdrücke: A |= ¬ϕ ⇔ ϕ gilt nicht in A (Schreibweise: A 6|= ϕ) A |= ϕ ∧ χ ⇔ A |= ϕ und A |= ψ A |= ϕ ∨ χ ⇔ A |= ϕ oder A |= ψ A |= ψ ⇔ Wenn A |= ϕ, dann A |= ψ A |= ϕ ↔ ψ ⇔ A |= ϕ genau dann, wenn A |= ψ A |= ∀xϕ ⇔ Für alle a in A gilt A |= ϕ(a) A |= ∃xϕ ⇔ Es gibt ein a in A mit A |= ϕ(a) Mit freien Variablen: ϕ(x1 , . . . , xn ) ist gültig A ∀x1 . . . ∀xn ϕ(x1 , . . . , xn ) ist gültig in A. {z } | Der “universale Abschluss” von ϕ(x1 , . . . , xn ) Wichtige Begriffe: Erfüllbar: ϕ erfüllbar: Es gibt eine Struktur A, so dass A |= ϕ Allgemeingültig: ϕ allgemeingültig: Für jede Struktur A mit passender Signatur gilt A |= ϕ Modell: A Modell für eine Menge von Ausdrücken Σ: Für jedes ϕ ∈ Σ gilt A |= ϕ Folgerung: Ausdruck ϕ folgt aus der Menge von Ausdrücken Σ: Für jedes Modell A von Σ gilt A |= ϕ. Deduktiver Abschluss: Ded(Σ): Menge aller Folgerungen aus Σ. ⇔ 32 Beispiel für Objekte, für die es um die genannten Begriffe geht: Sei Σ := {ϕ1 , ϕ2 , ϕ3 } in L(F, e) mit σ(F ) = 2 )) = ((x◦y)·z) ← Assoziativität ϕ1 := ∀x∀y∀z( x ◦(y ◦ z |{z} |{z} | {z } SymbolderzweistelligenF unktion ϕ2 := ∀x(x ◦ e = e) ← Neutrales Element ϕ3 := ∀x∃y(x ◦ y = e) ← Inverses Element Das sind die drei Gruppenaxiome. Jede Struktur, die alle diese Axiome erfüllt, nennt man Gruppe. Z.B. ist (Z, +, 0) ein Modell einer Gruppe. Folgerungen aus den Axiomen?! → Allgemeine Folgerungen Beispiele für weitere Aussagen: ϕ4 := (Für jedes Element gilt: Das Inverse des Inversen ist wieder das Element) ϕ5 := ∀x∀y(x ◦ y = y ◦ x) ← Kommutativität ∀x, (x ◦ y = e), (y ◦ z = e), z = x ∀x∀y∀z((x ◦ y = e) ∧ (y · z = e)) → (z = x) Menge der Folgerungen aus den Gruppenaxiomen: Gruppentheorie Fragen: • Sind die Gruppenaxiome erfüllbar oder widersprüchlich? | {z } Ja, es gibt konkrete Gruppen! • Gehört ϕ5 zur Ded(Σ)? Gehört ϕ4 zu Ded(Σ)? Belegung für JA: “Beweis” aus den Gruppenaxiomen NEIN: Widerlegung durch Nachweis der Unabhängigkeit: Es gibt Modelle A∞ , mit A∞ |= {ϕ1 , ϕ2 , ϕ3 , ϕ5 } und A∈ mit A∈ |= {ϕ1 , ϕ2 , ϕ3 , ¬ϕ5 } Im Beispiel: Es gibt kommutative Gruppen und es gibt nicht kommutative Gruppen. Prädikatenlogisches Folgern: Menge von Aussagen Σ Aussage ϕ Σ |= ϕ (“ϕ folgt aus Σ”) ⇔ für jedes Modell A, das alle Aussagen in Σ erfüllt sind gilt, dass auch ϕ erfüllt ist. Gesuchte Objekte: Modelle! D.h. Konkrete Strukturen mit irgendwelchen Eigenschaften. Aussagenlogisches Folgern Menge von Ausdrücken Σ Ausdruck ϕ Σ |= ϕ (“ϕ folgt aus Σ”) ⇔ Für jede Belegung F die alle Ausdrücke in Σ erfüllt, gilt dass F auch ϕ erfüllt. Gesuchte Objekte: Belegungen! D.h. Entscheidungen über eine Menge von Bits. Viele Eigenschaften des prädikaenlogischen Folgerns sind völlig analog zu Eigenschaften des aussagenlogischen Folgern: 33 Satz 2.1 (Hülleigenschaften) Seien T und T 0 Mengen von Aussagen, d.h. “Theorien”. Dann gilt: (0) Ded(∅) ist die Menge der allgemeingültigen Aussagen. (1) T ⊆ Ded(T ) (2) Wenn T ⊆ T 0 , dann Ded(T ) ⊆ Ded(T 0 ) (3) Ded(Ded(T )) = Ded(T ) Beweis: Analog Satz 1.4 und Satz 1.5. 2 Satz 2.2 (Abtrennungsregel) Wenn T |= (ϕ → ψ), dann T ∪ {ϕ} |= ψ. Beweis: Analog Satz 1.6 2 Satz 2.3 (Deduktionstheorem) Für jede Aussage ϕ gilt: Wenn T ∪ {ϕ} |= ψ, dann T |= (ϕ → ψ). Beweis: Analog zu Satz 1.7 2 Satz 2.4 (Endlichkeitssatz) Wenn ϕ aus einer Theorie T folgt, dann gibt es eine endliche Teiltheorie von T , aus der ϕ folgt. Beweis: später, Aussage ist analog zu Satz 1.8. Satz 2.5 (Kompaktheitssatz) Eine Theorie T ist genau dann widerspruchsfrei, wenn jede endlihe Teiltheorie widerspruchsfrei ist. Beweis: Analog zu Satz 1.9 2 Satz 2.5 Aus einer widerspruchsvollen Aussage folgt jeder Ausdruck. Beweis: Analog Satz 1.4 Satz 2.7 Für jede Aussage ϕ gilt: T ∪{¬ϕ} ist widerspruchsfrei, genau dann wenn ϕ nicht aus T folgt. x2 + y 2 = z 2 ← Ganze Zahlen x, y, z → Pythagoräische Tripel 2 a + b2 = c2 ← Satz des Pythagoras (495 v. Chr.) Beispiel: 3, 4, 5 oder 5, 12, 13 32 + 42 = 52 oder 52 + 122 = 132 Fermatsche Vermutung: Für n ∈ N mit n ≥ 3 gibt es keine positive ganzzahlige Lösung von xn +y n = n z (Fermat, Anfang 17, Jht.) 350 Jahre offen! Bewiesen von Andrew Wites 34 Euklid ca. 300 v. Chr. “Elemente” Euklidsche Geometrie Beruhend auf 5 Axiomen (1) Man kann von jedem Punkt zu jedem Punkt die Verbindungsstrecke ziehen. x---------------x (2) Eine begrenzte gerade Linie kann endlos in gerader Linie verlängert werden. <.....x---------------x.....> (3) Man kann um jeden Mittelpunkt mit jedem Radius den Kreis zeichnen /---\ | x-| \---/ (4) Alle rechten Winkel sind gleich. (5) Wenn eine gerade Linie beim Schnitt mit zwei geraden Linien bewirkt, dass immer auf der selben Seiten entstehende Winkel zusammen kleiner als zwei Rechte Winkel sind, dann dann treffen sich die zwei geraden Linien bei Verlängerung im Unendlichen auf der Seite, auf der die Winkel liegen, die zusammen kleiner als zwei rechte WInkel sind. \ --------------|---g3 <-----/ \| <------\ /\ ------------- \--- g2 \ \ g1 (5’) (Parallelenaxiom) Zu einer gegebenen Geraden und einem Punkt nicht auf der Geraden gibt es genau eine Parallele, d.h. eine Gerade durch den Punkt die die vorgegebene gerade nicht schneidet. .............x................... ^ ^ | | v v _________________________________ Folgerungen aus diesen 5 Axiomen: Euklidische Geometrie Ersten 28 Sätze in den “Elementen” benutzen nur die Axiome (“Postulate”) (1) - (4): 35 Frage: Kann man ohne das Axiom (5) auskommen, d.h. kann man das fünfte aus den anderen ver folgern, d.h. beweisen. x Legendre: Beweis für (5) aus (1) - (4) v J’anos Bolyai (21 Jahre): (5) lässt sich aus (1) - (4) nicht beweisen! v Nikolai Lobatschewski (30 Jahre): Wie Bolyai Beweisidee: (5) ist unabhängig von (1) - (4), d.h. sowhohl {(1), (2), (3), (4), (5)} sind widerspruchsfrei → Modell als auch {(1), (2), (3), (4), ¬(5)} → Modell. Modell für die zweite Variante: “Punkte”: Punkte auf einer Kugeloberfläche “Geraden”: Großkreise → Nichteuklidische Geometrie! Praktischer Einschub: Verneinen von Aussagen Beispiel: ∀x∃y(x ◦ y = e) Verneint?! ¬(∀x∃y(x ◦ y = e)) Verneint: ∃x∀y¬(x ◦ y = e) bzw. ∃x∀y(x ◦ y 6= e) Formal: Ziehe “¬” an Quantoren vorbei nach innen, ersetze dabei jeweils “∀” durch “∃” und umgekehrt. Prädikatenlogische Tautologien: Ersetze in einer aussagenlogischen Tautologie Φ(p1 , . . . , pn ) die Variablen p1 , . . . , pn durch die Ausdrücke ϕ1 , . . . , ϕn . Satz 2.8 Jede prädikatenlogische Tautologie ist allgemeingültig. Zwei Ausdrück sind logisch äquivalent (geschrieben ϕ ≡ ψ), wenn ϕ ↔ ψ allgemeingültig ist. Wichtige Äquivalenzen: (1) ¬∃xϕ ≡ ∀x¬ϕ (2) ¬∀xϕ ≡ ∃x¬ϕ (3) ∃xϕ ≡ ¬∀x¬ϕ (4) ∃x(ϕ ∨ ψ) ≡ ∃xϕ ∨ ∃xψ (5) ∃x(ϕ ∧ ψ) ≡ ∃xϕ ∧ ∃xψ (6) ∀x(ϕ ∧ ψ) ≡ ∀xϕ ∧ ∀xψ (7) ∀x∀yϕ ≡ ∀y∀xϕ (8) ∃x∃yϕ ≡ ∃y∃xϕ Achtung! ∀x∃yϕ ist völlig anders als ∃y∀xϕ Falls x in ψ nicht frei vorkommt, dann gilt (9) ∀xψ ≡ ψ 36 (10) ∃xψ ≡ ψ (11) ∃x(ϕ ∨ ψ) ≡ (∃xϕ) ∨ ψ (12) ∃x(ϕ ∧ ψ) ≡ (∃xϕ) ∧ ψ (13) ∀x(ϕ ∨ ψ) ≡ (∀xϕ) ∨ ψ (14) ∀x(ϕ ∧ ψ) ≡ (∀xϕ) ∧ ψ Falls in ϕ(x)y nicht vorkommt, gilt (15) ∀xϕ(x) ≡ ∀yϕ(y) (16) ∃xϕ(x) ≡ ∃yϕ(y) Normalformen: Jeder quantorenfreie ausdruck ist äquivalen zu einem Audruck in alternativer oder konjunktiver Normalform. Beweis: Wie Satz 1.30. Weitere Normalformen: mit Quantoren! z.B. (f orallx(x > 0)) ∨ (∃y(x · y = z)) → ∀x∃y QuantorenvorspannPräfix ((x > 0) ∨ (x · y = Z))AussageteilMatrix ?! Normalform mit Präfix und Matrix: “Pränexe” Normalform. “Pränex alternativ”: Matrix alternativ “Pränex konjunktiv”: Matrix konjunktiv Satz 2.10 (1) Jeder Ausdruck ist äquivalent zu einer pränexen alternativen NF. (2) Jeder Ausdruck ist äquivalent zu einer pränexen konjunktiven NF. Beweis: Beweis über Formelaufbau unter Verwendung von Quantorenäquivalenzen. 2.3 Beweisbarkeit In der Aussagenlogik: A00 : Σ |= ϕ (gemeint war: “ϕ folgt aus Σ” d.h. für jede Belegung F , die alle Ausdrücke in Σ erfüllt gilt auch, dass F ϕ erfüllt.) → Auswerten bzw. Benutzen mittels Wahrheitstabellen → Endliches Verfahren, da ϕ nur endlich viele Variable, also nur endliche viele Belegungen hat. A0 : Σ ` ϕ (gemeint war: “ϕ kann aus Σ abgeleitet werden”, d.h. aus einer Reiche von Axiomen und den Ausdrücken aus Σ kann man mit einer Folgerungsregel ϕ bauen. → Funktioniert ggf. auch unabhängig von Variablenzahl, erspart u.U. Wahrheitstabellen. Nachteil: Ableitungsfolgt kann schwer zu finden udn kompliziert sein, es gibt kein ähnlich sicheres Verfahren. Zusammenführen dieser Parallelwelten: Satz 1.24 (Vollständigkeitssatz) Σ |= ϕ ⇔ Σ ` ϕ Prädikatenlogik: 37 p”: |{z} T |= ϕ T heorie (Gemeint ist: Für jede Struktur die T erfüllt, ist auch ϕ erfüllt. Oder auch: Jedes Modell von T ist auch Modell von ϕ. Wichtig: So etwas wie Wahrheitstabllen gibt’s hier nicht!!! p’: T ` ϕ Gemeint ist: ϕ lässt sich aus T ableiten, d.h. es gibt eine Reihe von Axiomen udn Folgerungsregeln, mit denen man ϕ aus T konstruieren kann. Entsprechend gitl in der Prädikatenlogik: Satz 2.31 (Gödelscher Vollständigkeitssatz) T |= ϕ ⇔ T ` ϕ. Axiome für die Prädikatenlogik (PK 1) ϕ → (ψ → ϕ) (PK 2) (ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ)) (PK 3) (¬ψ → ¬ϕ) → (ϕ → ψ) (PK 4) (a) ϕ ∧ ψ → ϕ (b) ϕ ∧ ψ → ψ (PK 5) (χ → ϕ) → ((χ → ψ) → (ϕ(ψ ∧ χ))) (PK 6) (a) ϕ → ϕ ∨ ψ (b) ψ → ϕ ∨ ψ (PK 7) (ϕ → χ) → ((ψ → χ) → ((ϕ ∨ ψ) → χ)) Analog zu Axiomen des Aussagenkalküls! Axiome über Quantoren (PK 8) ∀xϕ(x) → ϕ(t) wobei: t ein beliebier Term ist, der nur Variabeln enthält, die für x frei sind. (PK 9) ∀x(ϕ → ψ) → (ϕ → ∀xψ), wobei x in ϕ nicht frei vorkommt. (PK 10) (a) (¬∀x¬ϕ) → ∃xϕ (b) ∃xϕ → ¬∀x¬ϕ Axiome für Gleichheit (PK 11) ∀x(x = x) (PK 12) ∀x∀y(x = y → (ϕ → ϕ0 )), wobei y in ϕ frei für x ist und ϕ0 aus ϕ entsteht, indem man an Stellen (nicht unbedingt an allen) an denen x frei vorkommt, x durch y ersetzt. Folgerungsregeln: (1) Abtrennungsrgel: Wenn ϕ → ψ und ϕ ableitbar sind, dann ist ψ auch ableitbar. 38 (2) Geralisierung: Für jede Variabel x ist eine direkte Konsequenz eines ableitbaren Ausdrucks ϕ der Ausdruck ∀xϕ. Ableitungsfolgen: Ist T eine Theorie und (ϕ1 , . . . , ϕm ) eine Folge von Audrücken, dann ist diese Folge eine Ableitungsfolge,w enn jeden ϕi eine der folgenden Bedingungen erfüllt: (B1) ϕi gehört der Menge der Axiome P k an (B2) ϕi gehört zu T (B3) ϕi ist direkte Konsequenz von zwei Ausdrücken ϕj und ϕk (d.h. j, k < i) mit Hilfe der Abtrennungsregel. (B4) ϕi ist direkte Konsequenz eines früheren Audruckes mit Hilfe der Generealisierung. In der Regel macht man beim Beweisen (auch beim formalen Beweisen) starken Gebrauch von bereits bekannten Aussagen, die also bereits abgeleitet sind. Das liefert sog. “verkürzte” Ableitungsfolgen, im SInne dass man zusätzlich noch verwendet. (B5) ϕi ist ein als bereits ableitbar bekannter Ausdruck. Beispiel für eine Ableitungsfolge: Folgender Ausdruck wird abgeleitet Für beliebiges ϕ(x, y) ist ∀x∀yϕ(x, y):∀y∀xϕ(x, y) ψ1 := ∀x∀yϕ → ∀yϕ (PK 8) ψ2 := ∀yϕ → ϕ (PK 8) ψ3 := (p → q) → ((q → r) → (p → r)) (prädikatenlogische Tautologie) mit p := ∀x∀yϕ, q := ∀yϕ, r := ϕ ψ4 := (∀yϕ → ϕ) → (∀x∀yϕ → ϕ) (direkte Konsequenz aus ψ1 und ψ3 ) ψ5 := (∀x∀yϕ → ϕ (direkte Konsequenz aus ψ2 und ψ4 ) ψ6 := ∀x(∀x∀yϕ → ϕ) (Generalisierung von ψ5 ) ψ7 := ∀x(∀x∀yϕ → ϕ) → ∀x∀yϕ → ∀xϕ (PK 9) ψ8 := ∀x∀yϕ → ∀xϕ (direkte Konsequenz von ψ6 und ψ7 ) ψ9 := ∀y(∀x∀yϕ → ∀xϕ) (Generalisierung von ψ8 ) ψ1 0 := ∀y(∀x∀yϕ → ∀xϕ) → (∀x∀yϕ → ∀y∀xϕ) (PK 9) ψ1 1 := ∀x∀yϕ → ∀y∀xϕ (direkte Konsequenz aus ψ9 und ψ1 0) Satz 2.11 (Hülleigenschaften) Für belibige Theorien T und T 0 gilt: (a) T ⊆ Abl(T ) (b) wenn T ⊆ T 0 , so Abl(T ) ⊆ Abl(T 0 ) (c) Abl(Abl(T )) = Abl(T ) Satz 2.12 (Endlichkeitssatz) Ist ϕ aus T ableitbar, dann ist ϕ bereits aus einer endlichen Teilmenge von T ableitbar. Satz 2.13 Jeder aus einer Theorie T ableitbare Ausdruck folgt aus T . D.h. T ` ϕ:T |= ϕ 39 Satz 2.19 (Deduktionstheorem) Sei ϕ eine Aussage, ψ ein Ausdruck. Ist ψ aus T ∪{ϕ} ableitbar, so ist ϕ → ψ aus T ableitbar. Begriffe Widerspruchsfreiheit bzw. Widersrüchlichkeit einer Theorie T : Existenz oder Nichtexistenz eines Modells Konsistenz bzw. Inkonsistenz einer Theorie T : Unmöglichkeit bzw. Möglichkeit, einen Ausdruck ϕ und einen Ausdruck ¬ϕ abzuleiten. Satz 2.23 Ist T widerspruchsfrei, dann ist T konsistent. Wie in der Aussagenlogik: Vollständigkeit von Theorien: T ist vollstöndig: Für jeen Ausdruck ϕ der Sprache gilt entweder T ` ϕ oder T ` ¬ϕ. Satz 2.27 (Satz von Lindenbaum) Jede konsistente Theorie T kann zu einer vollständigen Theorie T 0 erweitert werden. Satz 2.30 (Modellexistenztheorem) Ist T eine konsistente Theorie eine (abzählbare elementare) Sprache L, dann besitzt T ein Modell. Satz 2.3 (Gödelscher Vollständigkeitssatz) Ist T Theorie der Sprache L, so gilt fpr jede Aussage ϕ in L: T ` ϕ ⇔ T |= ϕ Weiter mit: 40 Kapitel 4 Entscheidbarkeit elementarer Theorien Eine spezielle Theorie: (1) S(x) 6= 0 (2) S(x) = S(y) → x = y (3) x + 0 = x (4) x + S(y) = S(x + y) (5) x · 0 = 0 (6) x · S(y) = x · y + x (7) ¬(x < 0) (8) x < S(y) → x < y ∨ x = y (9) x < y ∨ x = y ∨ y < x Dies sind die Axiome der Zahlentheorie (d.h. die Theorie der naütrlichen Zahlen) Algorithmik natürlicher Zahlen Kryptographieverfahren RSA Idee: Codezahl N , Produkt von zwei großen Primzahlen, z.B. N = p · q. Funktionsweise: Codieren geht, wenn man nur N kennt. Decodieren geht schnell, wenn man p und q kennt. “Public Key Cryptopsystems” Das motiviert folgende Frage: Gegeben: N Gesucht: p, q mit p · q = N Einfache Möglichkeit: Durchprobieren aller potentiellen Faktoren zwischen 2 und N − 1. → Das ist ein endliches aber sehr langsames Verfahren. Eng verwandt: Gegeben p ∈ N Frage: Ist p Primzahl? Andere zahlentheoretische Fragen: 41 (1) Fermat-Problem: Gibt es a, b, c ∈ N, n > 2, a, b, c positiv mit an + bn = cn (2) Goldbach-Vermutung (1642): Stimmt es, dass jede gerade Zahl größer als 4 Summe zweier ungerader Primzahlen ist? (z.B. 6 = 3 + 3, 8 = 3 + 5, 10 = 3 + 7 = 5 + 5, 12 = 5 + 7) Faktorisierung: Gegeben: n Gesucht: Primfaktorzerlegung von n Verwandt: P RIM E(n): WAHR falls n Primzahl FALSCH falls n keine Primzahl Man unterscheidet: Lösung eines konkreten Einzelfalles: 1. Lösung eines konkreten Einzelfalles → Instanz ← i.S.d. Komplexitätstheorie 2. Lösund in systematischer Art aller beliebigen Einzelfälle → Problem ← i.S.d. Komplexitätstheorie ,→ Also: Entwicklung von Algorithmen bzw. Programmen Mathematische Probleme: Fermat-Problem: ∃n ≥ , a, b, c : an + bn = cn ? Goldbach-Vermutung: ∀m = 2n ≥ 6 : ∃p, qp und q Primzahlen) ∧ (p + q = m) Äquivalent: ∃m = 2n ≥ 6 : ∀p, q : (p und q keine Primzahl ) ∨ (p + q 6= m) Hilberts 10. Problem: Gibt es einen endlichen Algorithmus der für jede Diophantische Gleichung (d.h. eine Polynomgleichung, z.B. a + b = c, a6 5537 + b6 5537 = c6 5537, a + b2 + c3 + 97d = 0) entscheidet, ob sie eine ganzzahlige Lösung hat? Wichtig dabei: Algorithmus soll auf jeden Fall in endlicher Zeit eine Antowort liefern! Wie kann man eine Antwort gegründen?! Positive Antwort: Beleg durch Angabe einer Lösung! Also: Existenzbeweis durch Demonstration Negative Antwort: ?? Alltragserfahrungen: Asymmetrie zwischen Existenz und Nichtexistenz (z.B. Verlieren geht schneller als Wiederfinden) Wichtiger Aspekt: “JA”, d.h. Existenzverifizierung ist Aussage über ein Objekt “NEIN” d.h. Nichtexistenz ist Aussage über alle Objekte — Halteproblem: Gegeben: Ein Algorithmus (oder Programm) Frage: Ist der Algorithmus endlich, d.h. wird er irgendwann fertig? Beispiel: 42 VLAM(n) WHILE(n != 1) { IF(n gerade) n = n/2; ELSE n = 3n + 1; } RETURN ‘‘STOP’’ Hilberts Problem So einen Algorithmus kann es nicht geben (Matyasevich 1970) Gäbe es eine Lösung zum Halteproblem, wäre ein Algorithmus zum Testen der Endlichkeit in der Lage, sehr viele Probleme in endlicher Zeit zu entscheiden. Beispiel: GOLDBACH(n): Liefert WAHR, wenn n Summer zweier Primzahlen ist, FALSH sonst PRIME(n): WAHR, wenn n Primzahl ist, FALSCH sonst. n = 6; WHILE(GOLDBACH(n)) { n=n+2; } RETURN Gegenbeispiel; Falls dieses Programm hält, ist die Goldbach-Vermutung falsch; falls das Programm nicht hält, stimmt sie. Selbstbezüglichkeit von Aussagen Beispiele: Dieser Satz hat fünf Worte. Dieser Satz hat sechs Worte. Dieser Satz hat nicht sechs Worte. Klassisch: Epimenides der Kreter sagt: “Alle Kreter sind Lügner.” Dieser Satz ist falsch. Historisch: Krise der Mathmatik in der Mengenlehre! M = {M |M istM enge} Y := {M ∈ M|M 6∈ M }“Menge aller Mengen, die sich nicht selbst enthalten.” Problem des Barbiers: Rasiert genau die Leute im Dort, die sich nicht selbst rasieren! Wer rasiert den Barbier? ϕ1 : Der Satz ϕ2 stimmt. ⇔ ϕ2 : Der Satz ϕ1 stimmt nicht. Ähnliche Strukturen nennt Hofstadter “Seltsame Schleifen”. Gödel: Mathematiker (bzw. Logiker) Escher: Niederländischer Künstler (Bilderlinks kommen auf Webseite) Bach: Was war letzten Freitag dran? → Probleme , Lösungen → Halteproblem 43 → Selbstbezüglichkeit von Aussagen “Dieser Satz ist falsch.” Bsp.: “Sei Spontan!” → Themen: Berechenbarkeit, Entscheidbarkeit Was hast dies mit Logik zu tun? elem. Theorie: (beliebige) Menge von Ausdrücken der Zugrundegelegten elem. Sprache L Entscheidbarkeit einer elem. Theorie T Gibt es einen Algorithmus (“allgemeines Verfahren”) für folgendes Problem: Gegeben: Aussage ϕ aus T Entscheide: 4.1 Ist ϕ Theorem von T ? ← (also T formal beweisbar/ableitbar). Berechenbare Funktion Was ist ein Algorithmus/Programm? Modell für einen virtuellen Rechner: → unbegrenzte Speicherkapazität → (unendlich hohe Arbeitsgeschwindigkeit) → belibig viele Variablen X0 , X1 , . . . für Verwalten von natürlichen Zahlen → elementare Operationen können ausgeführt werden. ,→ Lösche ,→ Erhöhen ,→ Kopieren ,→ Verzweigen : Anweisungen Beispiel: EPS aus dem Logik-Buch Turingmaschinen Programm(I1 , . . . , In ) I: Anweisungen Zeilen des Prgs Hier führen wir Programmiersprache BlooP ein. Was kann sie? (a) Addition zweier belibiger natürlicher Zahlen (b) Multiplikation zweier beliebiger natürlicher Zahlen (c) Feststellen, ob zwei Zahlen gleich sind 44 (d) Bestimmen von Minimum und Maximum zweier Zahlen (e) Schleifen mit Obergrenzen → im vorraus berechnete Obergrenze → höchstens so viel wiederholen wie Obergrenze z.B. Obergrenze = 300 ≡} Befehle wiederholen 0 mal, 7 mal oder 300 mal, aber nicht 301 mal. N → Folie 2 - Bsp, Fkt 23 , N natürliche Zahl. (f) Wenn-Befehle und Verästellungen Bloop-Konventionen → Prozeduren werden definiert → Input-Parameter → Output (der gesuchte Wert) ∗ Wert der Variable OUTPUT ∗ Zu Beginn: “Default”-Wert 0 (immer wohldefiniert) → Prozeduren haben Block-Struktur → gewisse Teile als Einheiten gesehen → Blöcken → Blöcke haben ANFANG, ENDE und eine Nummer → Variablen ZELLE[0], ZELLE[1], . . . Prozeduren werden hintereinander aufgerufen. Zu f) • siehe Folie 3: Beispiel zur Berechnung von M − N (M − N ) ∈ N? + N = M , | {z } | {z } N • zwei verschiedene Befehle für Sprung – BEENDE BLOCK n ,→ gehe zur letzten Zeile von Block n – BRECHE AB SCHLEIFE n ,→ gehe unter die letzte Zeile des Beckes n BlooP - Programmiersprache für Definition vorraussagbar endender Berechnungen. Was kann man BlooP berechnen? → die Fkt, die man mit BlooP berechnen kann heißen primitiv-rekusive FunkN tionen wie f (n) = 23 . 45 M, N ∈ FRAGE: Gibt es Funktionen, die NICHT primitiv-rekursiv sind? ANTWORK: JA! Beweis: Betrachte Programme mit genau 1 Input-Parameter - die BLAUEN Programme. Idee: Jedes Programm P bekommt eine Zahl < P >∈ N seine IndexZahl (z.B. sortieren lexikographisch, wenn Programm als String ausgesehen wird) Programm P ist Blauprogramm<P > Betrachte Funktion Blaudiag[N ]: Blaudiag[N ] = 1 + BlauprogrammN [N ] (1) Kann man Blaudiag[N] in Bloop programmieren? Angenommen: Ja. Dann gäbe es ein Programm, das Blaudiag[N] berechnet mit Nummer X. ,→ Blaudiag[N ] = BlauprogrammX [N ] (2) Zwischen (1) und (2) besteht ein Widerspruch: Blaudiag[X] = 1+BlauprogrammX [X] Blaudiag[X] = BlauprogrammX [X] :0 = 1 E Diagonalmethode (geht zurück auf Cantor) → eine natürliche zahl wird auf 2 verschiedenen Ebenen benutzt. Nachtrag zu BlooP | {z } begrenzterLoop auch Tests: Prozeduren die JA oder NEIN zurückgeben. Default-Wert von OUTPUT ist dann NEIN. Name einer Test-Prozedur mit “?” beenden. Bsp: Primzahltest → benutzt 2 Prozeduren: 1. M IN U S[A, B] 2. REST [A, B]: berechnet den Rest, den man bei der ganzzahligen Division von A durch B erhält. → Idee: probiere alle potentiellen Faktoren von N die zw. 2 und N − 1 sind. “Eigenschaften” (Prädikate), die von BlooP entdeckt werden können, heißen primitiv-rekursiv Prädikate. Man kann nicht alle Funktionen mit BlooP berechnet → “unBlooPbare” Blaudiag[N ] Wie können wir BlooP verbessern? → “FlooP” Programmiersprache (freier Loop) Schleifen ohne Obergrenze MU-Schleife: BLOCK n ANFANG .. .← BLOCK n ENDE “freie” Suchaktionen, (ohne Grenzen) (µ-Operator) Bemerkungen: Digonalmethode lässt sich nciht anwenden. Warum? F Diag[N ] = 1+F P rogrammN [N ] dies muss nicht unbedingt einen Wert haben, wenn Programm nicht a | {z } Definition 4.2 Eine Funktion ist berechenbar (rekursiv) falls sie durch einen korrektes FlooP Programm berechnet werden kann. (Eine andere geeignete Programmiersprache → EPS (aus dem Logik-Buch), → Turing-Maschinen.) 46 Andere Ansätze zur Definition berechenbarer Funktionen → rekursive Funktionen (Kleene 1952) 4.2 Rekursiv-auszählbarkeit und Entscheidbarkeit Definition 4.3 Eine Menge A ⊆ Nk (oder eine n-stellige Relation A in N ) heißt rekursiv-aufzählbar, wenn es ein Programm gibt, das für eingabe ω 1 ausgibt ⇔ω∈A Bemerkung: für ω 6∈ A muss Programm nicht unbedingt anhalten. Also Programm könnte für ω 6∈ A undendlich lange laufen. Definition 4.4: EIne Menge A ⊆ Nk heißt entscheidbar, wenn die chrarkteristische Funktion χA berechenbar ist. χA : Nk → N; χA (ω) = {1, ω ∈ A0, ω 6∈ A Frage: Gibt es L mit L nicht rekursiv aufzählbar? Antwort: JA! Konstruktion: a) Programm M →< M >∈ N Gödelnummer. b) Ld = {< M > |M hält nicht bei Eingabe < M >} Satz 4.5 Ld ist nicht rekursiv aufzählbar! Beweis: Angenommen, doch: ∃ Programm M0 , das das genau bei allen Eingaben Ld anhält. Was macht M0 auf Eingabe < M0 >? Fall 1: M0 hält bei < M0 > an: : < M0 >∈ Ld (aus Def von M0 ) :M0 hält nicht bei < M0 > an. E Fall 2: M0 hält nicht bei < M0 an: : < M0 >6∈ Ld (aus Def von M0 ) :M0 hält bei < M0 > an (Def von Ld ) E Gr. Ü. Aufg 1 f1 (x, y) =√xy f2 (x) = b xc BlooP Programm, N f1 : analog wie 23 f2 : Ausgabewert: M ∈ N M2 ≤ x M maximal mit der Eigenschaft wie bei MINUS. Aufg. 2: A, B entscheidbar χA : Nk → N, χa (x) = {1, x ∈ A0, x 6∈ A PA χB : Nk → N . . . PB Programm für A ∪ B, bzw.A ∩ B, B ∨ A, . . . - benutze PA und PB . Aufg 3: n-stelliges Prädikat P (x1 , . . . , xN ) ist entscheidbar, wenn die Menge W AHR(P ) = {(x1 , . . . , xn )|P (x1 , . . . , xn ) ist wahr} entscheidbar ist. Goldbach-Eigenschat von n: ∃p, q (p und q Primzahlen) ∧(p + q = 2n ) Idee: test alle Zerlegungen m + 2n − m = 2n darauf, ob m, 2n − m prim sind. 47 (|{z} m p, 2n − m p) | {z } für m = 2, . . . Teste: Ist m prim und ist 2n − m prim? Satz: L ∈ Nk ist entscheidbar ⇔ L aufzählbar. N k \ L aufzählbar. “:” “⇐” P1 aufzählt L P2 aufzählt Nk \ L (PK8) ∀xϕ(x) → ϕ(t), t beliebiger Term, der nur Var enthält, dir für x frei sind. ϕ(x, y) ∀x∀yϕ(x, y)∀y∀xϕ(x, y) ϕ : Abk. für ϕ(x, y) ψ1 : ∀x∀yϕ → ∀yϕ ∀xϕ(x) → ϕ(x) Letzte Woche: Sprache BlooP (“Bounded Lopp”) Erlaubt einefach zahlentheoretische Funktionen zu berechnen. Beobachtung: Durch die Beschränkung der Schleifenlängen muss edes derartige Programm nach endlicher Zeit anhalten. → BlooP-berechbare Funktionen nenne man auch primitiv-rekursiv Vermutung (Hilbert 1926): Alle zahlentheoretischen Funktionen sind primitivrekursiv. Ackermann (1928): Stimmt nicht! → Ackermann-Funktion ist nicht primitiv-rekursiv. Mehr dazu: Übung! Satz: Es gibt nicht primitiv-rekursive Funktionen. Argument: Cantors Diagonalmethode Kurz wiederholt: (1) Betrachte die Menge aller aufruflosen BlooP-Programme, die Funktionene von genau einem Input-Parameter berechnen. (2) Diese Menge ist abzählbar, d.h. jedem Programm lässt sich eine eindeutige Indexzahl zuordnen. ((A) Sortiere nach Länge (a) Sortiere lexikografisch, also etwa BAR vor BART vor BAST) z.B. könnte das zwölfte derartige Programm 2N berechnen. Das 5000. könnte z.B. N 3 berechnen. Jetzt nenne wir diese Menge von Programmen “blaue” Programme. Dann können wir schrieben: BLAU P ROGRAM Mx [N ] für das x-te blaue Programm. Z.B. wäre BLAU P ROGRAM M12 [N ] = 2N BLAU P ROGRAM M5000 = N 3 Damit ist BLAU P ROGRAM Mk [N ] im Prinzip eine Funktion mit 2 Eingabeparametern. In Tabellenform: 48 Eingabe N / Programm K .. . 12 .. . 1 2 3 4 ... 12 ... 5000 2 4 6 8 24 ... 10000 ... 5000 1 Was steht auf der Diagonalen? 8 27 64 (viel) 125.000.000.000 BLAU BLAU [N ] = BLAU P ROGRAM MN [N ] Das wäre eigentlich auch prima berechenbar. . . BLAU DIAG[N ] = 1 + BLAU BLAU [N ] = 1 + BLAU P ROGRAM MN [N ] Frage: Ist diese Funktion primitiv-rekursiv, d.hd. in BlooP programmierbar? Überlegung: Wenn ja, dann gäbe es ein BlooP-Programm, das BLAU DIAG[N ] berechnet, also ein blaues Programm, d.h. es hat eine Nummer X, mit der es in der Liste auftaucht. Also ist BLAU DIAG[N ] = BLAU P ROGRAM MX [N ] und damit auch BLAU DIAG[X] = BLAU P ROGRAM MX [X] . Andererseits war BLAU DIAG[X]definiert als 1 + BLAU P ROGRAM MX [X] Das ist ein Widerspruch, also ist BLAU DIAG[N ] nicht primitiv-rekursiv. Das bedeutet: Es gibt Funktionen, bei deren Berechnung man nicht vorhersagen kann, wie Obergrenzen für die einzelnen Schleifen auszusehen haben! ,→ Was passiert, wenn man keine garantierten Schranken für die Anzahl der Schleifendurchläufe fordert? → FlooP (für “Free Loop”) Beispiel: PROZEDURDEFINITION INF[B] BLOCK 0: ANFANG ZELLE(0) = 2 MU-SCHLEIFE BLOCK 1: ANFANG WENN ZELLE(0) = 0 DANN BEENDE SCHLEIFE ZELLE(0) = ZELLE(0)+1 BLOCK1: ENDE BLOCK 0: ENDE Wichtige Unterscheidung: 1. Programme, die enden 2. Programm, die unendlich weiterlaufen 49 ... Ein superpraktisches Programm wäre das folgendes: EN DEN D? → liefert für ein Programm JA, wenn es endet. Liefert NEIN, wenn es nicht endet. (Codierungdes Inputprogrammes stellen wir uns in geeigneter Weise vor: z.B. liefert Binärcodierung für jedes Programm eine Binärzahl ds Input für den hypothetischen Supercompiler. So ein Compiler würde also nicht nur den Syntax checken, sondern auch zumindest einen wesentlichen Teil der Semantik. So ein Compiler wäre nicht nur praktisch, sondern geradezu sensationell! Wenn man etwa ZELLE(0) = 0 in o.a. Programm durch GOLDBERG[2 · ZELLE(0)] = 0 ersetzt, dann heißt das: Ist 2·ZELLE(0) Summe zweier Primzahlen, dann ist GOLDBERG[2·ZELLE(0)] = 1, also kein Gegenbeispiel gefunden → WEITER! Ist 2·ZELLE(0) nicht Summe zweier Primzahlen, dann ist GOLDBERG[ZELLE(0)] = 0 also Gegenbeispiel gefunden → STOP! EN DEN D aus dieses Programm (bzw. seine Codierung) losgelassen würde also “mal eben” die Wahrheit der Goldberg-Vermutung entscheiden. Jezt versucen wir die Existenz so eines Supercompilers zu widerlegen! 1. Versuch: Grüne Programme: Menge aller aufruflosen FlooP-Programme, die Funktoinen genau eines Input-Parameters brauchen. Das lösst sich auch weiter aufzäheln und numerieren. Program für Diagonalargument: Gründiag[N ] = 1+GrünprogrammN [N ] nicht sauber definiert: Programm muss ja nicht stoppen, liefert {z } | Also: Betrachte nur die stoppenden Programme ,→ Verwende Supercomiler-Programm EN DEN D als Filter für die grünen Programme, der nur endende durchlässt. Damit: 2. Versuch: Rote Programme stop!: Menge aller aufruflosen FlooP-Pogramme die Funk| {z } toin mit genau einem Input-Parameter berechnen und für jeden Input stoppen. Diese Programme können wir (wenn EN DEN D existiert) auszählen, also jedem eine Nummer zuordnen. Dann: ROT DIAG[N ] = 1 + ROT P ROGRAM MN [N ] ROT DIAG ist (mit Hilfe des EN DEN D-Filter) wohldefiniert und berechenbar - aber nicht im Katalog der roten Programme. 4.3 Entscheidbarkeit der Zahlentheorie 4.3.1 Noch einmal logisches Ableiten: Einige folmale Ableitungssysteme (I) Anfangsbastein: 1 Bauregeln: Regel 1: Wenn x gebau werden kann, dann kann 2x gebaut werden. Regel 2: Wenn x gebaut werden kann und die Form 6y + 4 hat, dann kann 2y+1 gebaut werden. 50 Regel 2’: (Wenn x gebaut werden kann und die Form 3z + 1 mit z ungerade hat, dann kann z gebaut werden.) Frage: Kann 42 gebaut werden? Suche nach Bauanleitung: 1 ↓ (1)2 ↓ (1)4 → (2)1(s.o.) ↓ (1)8 ↓ (1)16 → (2)5 → 10 → (20 → 40)|(3 → 6) ↓ (1)32 ↓ (1)64 → (2)21 → (1)42 ↓ (1)128 ↓ (1)256 Wie findet man so eine Bauanleitung systematisch?! Oft (usn so auch hier) hilft eine “Umkehrung” das Konstrauktionsweges, d.h. eine Rückverfolgung eines möglichen Ableitungsweges! Also: 1 ↓ (1) 2 ↓ (1) 4 ↓ (1) 8 ↓ (1) 16 ↓ (1) 32 ↓ (1) 64 ↓ (2) 21 ↓ (1) 42 Rückwärts: Angenomen, 42 ist kontruierbar. Dann ist 42 ein Axiom (NEIN!) oder durch eine Bauregel entstanden. Beobachtung: Regel 1 liefert immer gerade Zahlen. Regel 2 liefert immer ungerade Zahlen. Also: Wenn 42 kontruierbar ist, dann ist sie aus 21 entstanden. Wenn 21 kontruierbar ist, dann ist sie aus 64 entstanden. → ALso Ersetze (rückwärts!) ungerade Zahl 2y + 1 durch 6y + 4 = 3(2y + 1) + 1 Wenn Wenn Wenn Wenn Wenn Wenn 64 kb, dann aus 32. 32 kb, dann aus 16. 16 kb, dann aus 8. 8 kb, dann aus 4. 4 kb, dann aus 2. 2 kb, dann aus 1. ← ENDE! Diese betrachtung liefert also die Folge ci (n) mit c0 (n) = n ci+1 = c21 für ci gerade3ci + 1fürci ungerade → Mehr dazu siehe Übungsaufgabe! Offene Frage (Ulam): Gibt es ein n ∈ N, das nicht gebaut werden kann? (II) Anfangsbaustein: MI Bauregeln: Regel 1: Wenn xI kb ist, dann ist auch xIU kb. Regel 2: Wenn Mx kb ist, dann ist auch Mxx kb. Regel 3: Wenn xIIIy kb ist, dann ist auch xUy kb. Regel 4: Wenn xUUy kb ist, dann ist auch xy. 51 Frage: Kann M U gebaut werden? Möglicher Ansatz: MI ->(1) MIU ->(2) MIUIU |(2) v MII ->(1) MIIU ->(2) MIIUIIU |(2) v MIIII -> ((3) MUI) | ((3)MIU) | ((1) MIIIIU) |(2) v MIIIIIIII Antwort: MU kann nicht gebaut werden! Argument: (außerhalb des Regelsystms) Zahl der Is ist nie durch 3 teilbar! (Beweis durch Induktion). Daher ist auch MU nicht kontruierbar. Noch etwas schneller hätte man dieses Argument vielleicht in einer etwas anderen Codierung des MIU-Systems gefunden: M → 3 U →0 I→1 und insgesamt MUI → 301 Dann heißt offenbar: Zahl der Is in einem Wort ist duch 3 teilbar ⇔ Codezahl durch 3 teilbar. Beobachtung: Nicht nur einzelne Worte sind codierbar, sondern ganze Beweis, d.h. Ableitungsfolgen. Beispiel: MI MII MIIII MUI kann man auch als Zahl codieren: 3131131111301 (Auftrennen in Einzelschritte an den Dreien!) Formulierung: Zwei Zahlen m und n bilden ein Beweispaar im MIUSystem, genau dann wenn m die Code-Zahl einer Bauvorschrift im MIUSystem, deren letzter Schritt n liefert. Angenommen, wir wollen die Gültigkeit eines codierten Beweises (d.h. eines Beweispaares) überprüfen. Was ist dann zu tun? Beispiel: 3131131111301, 301 Ist das ein Beweispaar? Kontrolle: (1) Übersetze m in eine Kette von Einzelschritten im MIU-System. MI MII MIIII MUI 52 (2) Letzte Zeile stimmt codiert mit n überein. (3) Überprüfe Einzelschritte: M I → (2)M II → (2)M IIII → (3)M U I Also ist 301 bzw. MUI kontruierbar! Beobachtung: (a) Das Kontrollieren ist ein rein mechanischer Vorgang. (b) Das Umcodieren kann man sich sparen, indem man die Bauregeln auf Zahlen übersetzt. HOPPLA! Dann sind Beweise plötzlich selber Zahlen, dh. die Ebenen zwischen Objekten (Zahlen) und Beweisen (auch Zahlen) werden verischbar. Noch ein Beispiel: Ist 31311311130 , 30 ein Beweispaar? (Hoffentlich nicht, sonst wäre 30 ↔ MU kontruierbar!) Kontrolle: Decodierung liefert MI -¿ (2) MII -¿ x ¡- kein gültiger Schritt! MIII -¿ (3) MU (III) Aussagenlogik: Anfangsbausteine: 7 Axiome (evtl. wietere Aussagen) Bauregel: Modus Ponens oder Antrennungsregel Zwei Arten von Fragen: (1) Gegeben eine Aussage. Ist sie ableitbar? (2) Gegeben eine Ableitungsfolge für eine Aussage. Ist sie korrekt? Frage (2) ist deutlich einfacher! Das lässt sich genauso mechanisch entscheiden wie im MIU-System. Frage (1) ist prinzipiell schwieriger, aber prinzipiell noch relativ (!) vernünftig zu entscheiden: Σ |= ϕ ⇔ Σ ` ϕ, und Σ |= ϕ lässt sich inder Aussagenlogik (!) durch überprüfen aller möglichen Belegungen, d.h. durch Wahrheitstabellen testen. “Dieser Satz ist nicht beweisbar.” Möglichkeit W: Der Satz trifft zu. Dann ist er nicht beweisbar. Möglichkeit F: Der Saatz trifft nicht zu. Dann ist er beweisbar. Satz (Gödel 1931): In der Zahlentheorie ist es möglich, solche Aussagen zu formulieren. Oder: Jedes hinreichend möchtige formale System ist entweder unvollständig (d.h. es enthält wahre Aussagen, die nicht beweisbar sind) oder widersprüchlich (d.h. es enthält falsche Aussagen, die beweisbar sind). 4.4 Der Gödelsche Unvollständigkeitssatz (1) Was heißt hinreichend mächtig? (2) Widerspricht das nicht dem Gödelschen Vollständigkeitssatz? 53 (3) Wie beweist man den Satz, d.h. wie konstruiert man so eine Aussage? Antworten: (1) Mindestens so mächtig wie die Zahlentheorie; damit verfügt man über die Möglichkeiten: (a) Sätze über Zahlen zu formulieren (b) Sätze als Zahlen zu formulieren Damit kann man Sätze über Sätze formulieren, also hat man prinzipiell die Möglichkeit, Sätze zu formulieren, die über sich selbst Aussagen machen. (2) Der Gödelsche Vollstöndigkeitssatz gilt in einem schwächeren System, ohne Zahlentheorie. (Noch anders formuliert: Mit der Theorie der ganzen Zahlen bewegen wir uns in einem Konkreten Modell.) (3) Das braucht etwas längerund erfordert etwas Phyntasie und Konzentration. . . Ideen dazu: (I) Codiere logische Aussagen über Zahlen als Zahlen (II) Formuliere Beweisbarkeit als zahlentheoretische Aussage. (III) Formuliere eine Aussage G, die besagt: “Aussage G ist nicht beweisbar.” Schritte: (I) Codierung: Haben wir im Prinzip gesehen! z.B. bei Hofstädter: 0 → 666 S → 123 (Nachfolgesymbol: SS0 ist 2) =→ 111 + → 112 · → 236 a → 262 0 → 163 ∧ → 161 ¬ → 223 ∃ → 333 ∀ → 626 :→ 636 ST OP → 611 Etwa: ∀a : ¬Sa = 0 wird codiert zu 626.262.636.223.123.262.111.666 - und umgekehrt. Diese Art der Codierung nennt man auch “Gödelisierung”, 626. . . . .666 ist die Gödelnummer von ∀a : ¬Sa = 0 54 (II) Verwende Begriff des Beweispaares: TNT-Beweispaar (m, n) bedeutet: m ist Codierung einer Ableitung der zahlentheoretischen Aussage, die durch n codiert ist. (Das haben wir für das MIU-System schon gesehen!) Beobachtung I: Die Eigenschaft, ein Beweispaar zu sein, ist eine primitiv-rekursive Eigenschaft, die sicht durch ein BlooP-Programm testen lässt. Beobachtung II: Die Eigenschaft, Beweispaar zu sein, lässt sich mit BlooP testen, also durch eine Zahlentheoretische Formel ausdrückbar, die zwei freie Varable hat. (III) (i) Verwende den Ausdruck für TNT-Beweispaar (a, a0 ) für die Konstruktion neuer Aussagen! Beispiel: ∃a : TNT-Beweispaar(a, . . SS0} |SS . {z /a0 ) 666.111.666−malS Bedeutung: “Es gibt eine Zahl a, die die Codierung einer Ableitung der duch 666.111.666 codierten Aussage ist. oder “0 = 0 ist beweisbar.” (ii) Finde eine Formel, die über die eigene Codierungszahl spricht UND behauptet, nicht beweisbar zu sein. Problem: Codierung von Zahlen auf offensichtliche Weise liefert Zahlen, die deutlich länger sind. Trick 1: Beschreibe das Ersetzen von Variablen durch Zahlen als BlooP-Programm und damit als zahlentheoretischen Ausdruck! Liefert zahlentheoretischen Ausdruck SU B(a, a0 , a00 ) : Ersetzen der freien Variablen, im durch a codierten Ausdruck durch den Zahlenwert a0 liefert einen Ausdruck, der durch a00 codiert ist. Trick 2: Betrachte SU B(a00 , a00 , a) Das bedeutet: Ersetzt man im durch a00 codierten Ausdruck die freie Variable durch den Zahlenwert a00 , so erhält man den durch a codierten Ausdruck. Kurzform: ARIT HM OQU IN E(a00 , a) Mit BlooP testbar, also als zahlentheoretischer Ausdruck formulierbar. Trick 2 wird oft als Witzgrundlage verwendet: “Ein Hund lief ni die Küche und stahl dem Koch ein Ei. Da nahm der Koch den Löffel und schlug den Hund zu Brei. Da kamen alle Hunde und gruben ihm ein Grab und setzen einen Grabstein 55 wo draufgeschrieben stand: “Ein Hund lief. . . ” ” Anderes Beispiel: “Ist kein ganzer Satz” ist kein ganzer Satz. “Ergibt eine Unwahrheit, wenn ihm sein eigenes Zitat vorangeht” ergibt einen Unwahrheit wenn ihm sein eigenes Zitat vorangeht. Nun betracht folgende Formel: ¬∃a : ∃a0 (TNT-Beweispaar(a, a0 ) ∧ ARITHMOQUINE(a00 , a0 )) Diese Formel (“Onkel”) hat eine Nummer - sagen wir u. Jetzt Formel G: ¬∃a : ∃a0 : (T N T −Beweispaar(a, a0 )∧ARIT HM OQU IN E(SS . . SS0} /a00 , a0 )) | . {z u−malS Was sagt die Codierungszahl von G? ARITHMOQUINIERUNG von u Bedeutung von G: “Es gibt keine Zahlen a und a’, so dass (1) beide ein TNT-Beweispaar und (2) a’ die Arthmoquinierung von u ist. ” a0 gibt es, also: “Es gibt keine Zahl a, die mit der Arithmoquinierung von u ein TNT-Beweispaar bildet.“ Oder: “Die Formel, deren Gödel-Nummer die Arithmoquinierung von u ist, ist kein Satz von TNT.” oder: “G ist kein Satz von TNT.” oder: “Ich bin nicht beweisbar.” 2 Klausur 12.02.05 12:30 - 15:30 Uhr (siehe Webseite), Wer? > 45% Erlaubt ABER - Skripten → keine sonstige Bücher - Übungsblätter → keine Taschenrechner - eigene Aufzeichnungen → keine Laptops/schweres Gerät - Logik-Buch/Skript → KEINE HANDYS! Nächste Woche Mittwoch → bis nächste Woche Diesntag 14 Uhr. E-Mail an mich mit Wünschen bzgl. Logik-Vorbereitung. Freitag? Ich werde da sein für Fragen Kapitel 1 → Aussagenlogik 1) Syntax → Formale Regeln! 2) Semantik → Bedeutung von Aussagen (Wahrheitsgehalt) zu 1) Box 1 zu 2) Bedeutung: Wahrheitswert → “Belegungen” durch Wahrheitswerte Box 2 (Belegungen) Gegeben: Variablenmenge V Formel ϕ 56 F : V (ϕ) → {0, 1} F ∗ (ϕ) rekursiv definiert. F ∗ (ϕ) = 1 → F |= ϕ ϕ ist erfüllt bei Belegung F → erfüllbar → widerspruchsvoll → allgemeingültig (Tautologie) Aufgabe (Klausur, letztes Jahr) Gegeben: ϕ1 = ¬(p → (p ∨ q)) ϕ2 = (p → q) ↔ (p → r) a) Bestimmen Sie Wahrheitstabellen für ϕ1 und ϕ2 b) Welche sind erfüllbar oder allgemeingültig. → Wichtige Äquivalenzen Normalformen: • Konjunktive Normalform (KNF) (Konjuktion von Elementaralternativen) • Alternative Normalform (ANF) Beispiel: ϕ := (p → q) → (¬q → ¬p); Finde KFN für ϕ (1) ¬(¬p ∨ q) ∨ (¬(¬q) ∨ ¬p) (2) (¬(¬p ∧ ¬q) ∨ (¬(¬q) ∨ ¬p) (3) (p ∧ ¬q) ∨ (q ∨ ¬p) (Ersetzen von →) (Negation ausführen) (weglassen von ¬¬) (4) (p ∨ q ∨ ¬p) ∧ (¬q ∨ q ∨ ¬p) (Distributivität) (KNF) Aufgabe (Klausur, letztes Jahr) Gegeben sei der Ausdruck ϕ = (p ∨ q) → (p ∨ r) (a) Bestimmen Sie KNF von ϕ mittels Äquivalenzumformungen (b) Berechnen Sie die ANF von ϕ nach einer Methode Ihrer Wahl p q r p ∨ q p ∨ r (p ∨ q) → (p ∨ r) 0 0 1 (1) 0 0 0 (2) 0 0 1 0 1 1 (3) 0 1 0 1 0 0 (4) 1 0 0 1 1 1 1 1 1 (5) 0 1 1 (6) 1 1 0 1 1 1 (7) 1 0 1 1 1 1 (8) 1 1 1 1 1 1 ¬p ∧ ¬q ∧ ¬r) für (1) ∨(¬p ∧ ¬q ∧ r) für (2) ∨(p ∧ ¬q ∧ ¬r) für (4) ∨ . . . Wie leitet man die KNF aus W-Tabelllen her? Für ¬ϕ liegt man folgendes aus der W-Tabelle: ¬ϕ = ¬p ∧ q¬r ϕ = ¬¬ϕ = ¬(¬p ∧ q ∧ ¬r) = (p ∨ ¬q ∨ r) ← KNF Folgern 57 • Σ Menge von Ausdrücken • F Realisierungen von Σ(F |= Σ) • Σ |= ϕ (ϕ folgt aus Σ) gdw F |= ϕ für alle ϕ ∈ Σ • Ded(Σ) (Deduktiver Abschluss) = alle Folgerungen aus Σ. Ded(∅) = alle Tautologien, Ded(Widerspruchsvolle Σ) = Alles Aufgabe (Klausur, ’04) Bestimmen Sie, ob da ϕ ∈ Ded(Σ) gilt, wobei Σ = {ϕ1 , ϕ2 } mit ϕ1 = (p → r) → (p ∧ q) ϕ2 == (p ∧ q) ∨ (¬p ∧ r) ϕ = (p → q) ↔ r. Schlussregeln → Formaler Beweis Σ ` ϕ Gegeben: Menge Σ, Schlussregeln ϕ ableitbar aus Σ, wenn mit Σ und endl.Folge von Anwendungen der Schlussregeln konstruierbar! → Axiome → Direkte Konsequenz → Deduktionstheorem Σ ableitbar. ist ψ aus Σ ∪ {ϕ} ableitbar, dann ist ϕ → ψ aus Aufgabe (Klausur, ’04) }| { }| { z z Gegeben Sei ϕ = ∃x[(∀x(x < y)) → (∀y(y ≤ x))] ϕ1 ϕ2 Zeigen Sie, dass ϕ erfüllbar ist. Kapitel 2 (Prädikatenlogik) → Logik auf mathematischen Strukturen A =< A, f1 , . . . , fm , R1 , . . . , Rn , a1 , . . . , ak > → Terme → Prädikate: – t1 = t2 , wobei t1 , t2 Terme – P (t1 , . . . , tn ), wobei P Relationssysmbol ist ti Terme → Ausdrücke (Formeln) → Quantoren ∀xϕ, ∃xϕ ∀x((∀y(Ki(y, x) → F l(y))) → Gl(x)) ∀x((∀y(Ki(y, x) ∧ F l(y)) → Gl(x)) {z } | f alsch in ϕ2 - y ist gebunden - x ist in ϕ2 zwar frei, ABER in ϕ ist X in Wirkungsbereich des Quantors ∃. (siehe ϕ = ∃x[. . .]). x ist eine gebundene Variable! 58 Bsp2: (aus der Klausur 03/04) ϕ = ∃x[(∀x(x ≤ y)) → (∀y(y ≤ x))] | | {z } {z } ϕ1 ϕ2 [...] Schreibweise: ϕ(x1 , . . . , xn ), um anzudeuten, dass x1 , . . . , xn die freien Variablen im Ausdruck ϕ sind. Mit freien Variablen: ϕ(x1 , . . . , xn ) ist gültig in A ⇔ ∀x1 , x2 . . . ∀xn ϕ(x1 , . . . , xn ) für Struktur A ist gültig in A - Elementare Sprachen: • Idee: Aussagen über ganze Mengen von Objekten auf einmal! • Box 9 • Allgmeien: L(F1 , . . . , Fn , P1 , . . . , Pn , c1 , . . . , cn ) mit Stelligkeit σ{F1 , . . . , Fn , P1 , . . . , Pm } → N → Sprache aller Strukturen mit m Fktn, n, Relationen, k Konst mit entspr. Stelligkeiten. • Wichtiger Begriff: “Modell” für Sprachen A |= ϕ für “ϕ ist wahr in A” • Gültigkeit und Wahrheitswert von Ausdrücken: erfüllbar: ϕ ist erfüllbar: es gibt Struktur A, so dass A |= ϕ allgemeingültig: ϕ ist allgemeingültig: Für jede Struktur A mit passender Stelligkeit gilt: A |= ϕ Bsp: (Box II) ϕ(x, y) := (x < y) ↔ ∃z((y = x + z) ∧ (y 6= x)) andere Möglichkeit: R(x, y) ↔ ∃z((y = f (x, z)) ∧ ¬(y = x)) Modell für ϕ(x, y) :< N, +, <> < N, +, <> ϕ(x, y) Kein Modell für ϕ(x, y) < R, +, <>6|= ϕ(x, y) Äquivalenzen (siehe entspr. Box) → Pränexe Normalform |___________| |____________| Quantoren Aussagenteil "Vorspann" ∀x((∀y(Ki(y, x) → F l(y))) → Gl(x)) [p → q = ¬p ∨ q] = ∀x(¬ϕ(∀y(Ki(y, x) → F l(y))) ∨ Gl(x)) (zweiten → ersetzt) = ∀x(¬(∀y(¬Ki(y, x) ∨ F l(y))) ∨ Gl(x)) (wieder → ersetzt) 59 = ∀x(∃y (Ki(y, x) ∧ ¬F l(y)) ∨ Gl(x)) | {z } | {z } = ∀x∃y((Ki(y, x) ∧ ¬F l(y)) ∨Gl(x)) | {z } Folgerung: Ausdruck ϕ folgt aus Menge von Ausdrücken Σ: Für jeden Modell A von Σ gilt A |= ϕ. (Unterschied zur Aussagenlogik: da warne die gesuchten Objekte Belegungen: d.h. in der Aussagenlogik Σ |= ϕ ⇔ Für jede Belegung F die alle Ausdrücke aus Σ erfüllt, gilt F |= ϕ. Ableiten: Σ ` ϕ: ϕ lässt sich durch Axiome und Folgerungsregeln aus Σ ableiten Vollständigkeitssatz: Σ |= ϕ ⇔ Σ ` ϕ Fürs Ableiten ist das Deduktionstheorem hilfreich. → Sei ϕ eine Aussage und ψ ein Ausdruck. Ist ψ aus T ∪ {ϕ} ableitbar, so ist ϕ → ψ aus T ableitbar. - Aufabe Beispiel: Gegeben Ableitungsfolge. Ist sie korrekt? - Betrachte Generalisierung: Für jede Variable X ist ∀xϕ eine direkte Konsequenz von ϕ 60