Mathematische Grundlagen der Informatik I - Logik und Algebra Emanuele Delucchi Vorläufige Version - bitte nicht weiterverteilen. Kommentare und Korrekturen sind vom Autor willkommen. 11. November 2012 Inhaltsverzeichnis 1 Logik 1.1 Sprache und Gegenstand . . . . . . . . . . . . . . . . 1.2 Gegenstand und Sprache . . . . . . . . . . . . . . . . 1.3 Von Wahrnehmung zu Erkenntnis: Datenstrukturen 1.3.1 Äquivalenzrelationen . . . . . . . . . . . . . . 1.4 Neue Erkenntnisse aus alten . . . . . . . . . . . . . . 1.5 Für den mathematischen Alltag: Beweismethoden . . 1.5.1 Direkter Beweis . . . . . . . . . . . . . . . . . 1.5.2 Beweis durch Kontraposition . . . . . . . . . 1.5.3 Widerspruchsbeweis . . . . . . . . . . . . . . 1.5.4 Beweis durch (vollständige) Induktion . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 6 8 9 11 14 14 14 14 14 Kapitel 1 Logik Sprachen ermöglichen die Speicherung und Vermittlung von Erkenntnissen, sowie die Untersuchung deren Gründe und Implikationen. Die Stärke der ‘üblichen’ Sprachen (Deutsch, Französisch, Englisch, Mandarin,... - die wir im Folgenden ‘natürliche Sprachen’ nennen) liegt unter anderem darin, dass sie eine breite Palette von Zwecken in angemessener Weise erfüllen: man kann damit über Gefühle, Ästhetik, Mystik, sowie über Quantenphysik, Kartoffelanbau und Börsengeschäfte reden. Diese Versatilität erzwingt aber eine gewisse Informalität, die wir vermeiden wollen. Programmiersprachen sind meistens (mehr oder weniger) formale Sprachen, mit reservierten Symbolen und vorgegebener Syntax. Manche Bausteine sind so grundlegend, dass sie in den meisten Programmiersprachen vorkommen, andere sind charakteristisch von der einzelnen Sprache. Hier wollen wir die Grundzüge der Struktur von formalen Sprachen vorstellen, und die Art und Weise, wie deren Ausdrücke Wahrheitswerte zugeordnet werden können. 1.1 Sprache und Gegenstand Das Alphabet einer (formalen) Sprache L besteht aus folgenden Zeichen: Klammern Gleichheitszeichen Variabeln Junktoren Quantoren Konstanten Funktionssymbole Relationssymbole (,) = x, y, z, . . . ∨, ∧, ¬, →, ↔ ∀, ∃ a, b, c, . . . f, g, . . . (jew. mit “Stelligkeit”) R, . . . (jew. mir “Stelligkeit”) (unabhängig von L ) (je nach L ) Bemerkung 1. Man beachte die Ähnlichkeit mit vielen Programmierumgebungen, die ‘reservierte Symbole’ und ‘standard-Befehle’ (z.B. if- und for- Schleifen) haben, es jedoch auch erlauben, je nach Programm eigene ‘lokale’ Befehle und Prozeduren zu definieren. 2 Beispiel 2. Eine mögliche Sprache, z.B. um über Arithmetik zu ‘reden’, ist diejenige mit den Konstanten �, |, der Funktionssymbol s (2-stellig), der Relationssymbol ≤ (2-stellig). Wir werden diese im Folgenden als LA bezeichnen. Die Terme der Sprache L werden durch (ggf. wiederholte - jedoch höchstens endlich oft) Anwendung folgender Regeln gebildet: (a) Variabeln und Konstanten sind Terme; (b) sind t1 , . . . , tk Terme, und ist f ein (k-stelliges) Funktionssymbol, so ist f (t1 , . . . , tk ) ein Term. Terme werden später gebraucht, um ‘Gegenstände’ in der Sprache abzubilden. In der natürlichen Sprachen wird diese Funktion meistens von Substantiven (wörtlich: die ‘Substanz’ tragen) erfüllt, so wie ‘Bratapfel’ als Funktion von (den Konstanten) ‘Ofen’ und ‘Apfel’ gesehen werden kann. Beispiel 3. Die folgende sind Terme von LA : | ; s(�, |) ; s(|, s(|, |)) ; s(s(|, �), s(|, s(�, |))). Ein Ausdruck in der Sprache L besteht aus Terme, die durch andere Zeichen des Alphabets nach folgender Regeln verkettet werden: (c) Sind t1 , t2 Terme, so ist t1 = t2 ein Ausdruck; (d) Sind t1 , . . . , tk Terme und ist R ein (k-stelliges) Relationssymbol, so ist R(t1 , . . . , tk ) ein Ausdruck; (e) Ist A ein Ausdruck, so auch ¬A; (f) Sind A, B Ausdrücke, so auch (A ∧ B), (A ∨ B), (A → B), (A ↔ B); (g) Ist A ein Ausdruck und x eine Variable, so sind ∀x(A) und ∃x(A) Ausdrücke; ( ) Wir erlauben ‘unnötige’ Klammern zur besseren Lesbarkeit. Wenn Terme der formalen Sprache Substantive der natürlichen Sprache entsprechen, dann entsprechen Ausdrücke syntaktisch wohlgebildete ‘Sätze’. Beispiel 4. Die folgende sind wohlgeformten Ausdrücke in LA , bis auf einen. Finden Sie heraus, welcher es ist. (i) | = � (ii) s(|, �) = | (iii) s(|, |) = x (iv) ≤ (x, |), oder auch x ≤ |, vgl. Punkt (d) oben (v) s(|, s(|, |)) ≤ | (vi) (x ≤ |) ∨ (| ≤ x) 3 (vii) ∀x((x ≤ |) ∨ (| ≤ x)) (viii) ∀x(∃y(s(x, y) = �)) (ix) ∃y(∀x(s(x, y) = �)) (x) ∀y((x ≥ y) ∨ y) (xi) ∀y(x ≤ y) (xii) ∀x(∀y(x = s(|, y) → y ≤ x)) Wir beginnen nun die Untersuchung des Bezuges einer Sprache zu ihrem “Gegenstand”. Eine Auslegung der Sprache L besteht aus einem “Universum” U von Gegenständen und aus einer Regel, die • jeder Konstante c von L einen Gegenstand G(c) aus U zuordnet; • jedem (k-stelligen) Funktionssymbol f eine Vorschrift zuordnet, die jeder Ansammlung von k Gegenständen g1 , . . . , gk aus U einem Gegenstand f (g1 , . . . , gk ) aus U zuweist; • jedem (k-stelligen) Relationssymbol R eine Vorschrift zuordnet, die jeder Ansammlung von k Gegenständen g1 , . . . , gk einen “Wahrheitswert” R(g1 , . . . , g2 ) zuordnet (Wahrheitswerte sind: W, F). Beispiel 5. Eine Auslegung von LA über die natürliche Zahlen ist die folgende: • U := N = {0, 1, 2, 3, . . .}, • G(�) = 0, G(|) = 1; • für Zahlen g1 , g2 gilt s(g1 , g2 ) =“g1 + g2 ” (die Summe); • für Zahlen g1 , g2 hat g1 ≤ g2 (d.h. ≤ (g1 , g2 )) genau dann den Wert W , wenn g1 kleiner oder gleich g2 ist. Analog erhält man eine Auslegung über die ganzen Zahlen, indem man das Universum erweitert auf U := Z = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}. Bemerkung 6. Im obigen Beispiel haben wir das Gleichheitszeichen leicht missbraucht: eigentlich ist es ein Zeichen unseres formalen Alphabets, während es hier als “Symbol für die Identität zweier Objekte” steht. Da diese die Auslegung von = sein wird, erlauben wir uns diese Zweideutigkeit, in der Hoffnung, dass sie die Lesbarkeit des Textes erleichtert. Die Angabe einer Auslegung ist aber offensichtlich nicht genug, um jedem Ausdruck einen Wahrheitswert zuzuordnen. Ein ‘Problem’ ist, dass Terme, die Variablen enthalten, nichts ‘konkretem’ entsprechen - solange wir ‘nichts in der Variable einsetzen’ (besser gesagt: solange wir die Variable nicht belegen). Manchmal ist das aber im jeweiligen Kontext kein Problem (z.B. bei (vii), (viii), (ix), (xii) in Beispiel 4), denn nur die sog. freien Variablen müssen belegt werden. In unserem Vergleich zu den natürlichen Sprachen würden wir sagen, dass Ausdrücke mit freien Variablen zwar syntaktisch korrekte Sätze sind, die aber keine meinungsvollen Aussagen darstellen. 4 Um genauer zu sein, benutzen wir die hierarchische ‘Bauweise’ von Ausdrücken und sagen zunächst, dass eine Variable x frei in einem Term t ist, wenn (a) t die Variable x ist; (b) t von der Form f (t1 , . . . , tk ) und x frei in einem der ti ist. Die Variable x ist frei in einem Ausdruck P , wenn (c) P von der Form t1 = t2 und x frei in t1 oder t2 ist; (d) P von der Form R(t1 , . . . , tk ) und x frei in einem der ti ist; (e) P von der Form ¬Q und x frei in Q ist; (f) P von einer der Formen Q1 ∨ Q1 , Q1 ∧ Q2 , Q1 → Q2 , Q1 ↔ Q2 , und x frei in Q1 oder Q2 ist. (g) P der Form ∀y(Q) (bzw. ∃y(Q)) und y verschieden von x ist. Beispiel 7. Unter den Ausdrücken aus Beispiel 4 ist x frei in (iii), (iv), (vi) und (xi), doch y kommt nie als freie Variable vor. Sind etwa x1 , . . . , xk die freien Variablen eines Ausdrucks P , so wird dies oft mit der Schreibweise P (x1 , . . . , xk ) gedeutet. Eine Belegung der freien Variablen eines Ausdruckes P ist die Wahl eines Gegenstandes B(xi ) für jede freie Variable xi von P . Definition 1.1.1. Eine Interpretation einer Sprache besteht aus einer Auslegung zusammen mit einer Belegung ihrer Variablen. Ist eine Interpretation der Sprache L festgelegt, so kann jedem Term t ein Gegenstand GB (t) zugeordnet werden. Es kann dann auch jedem Ausdruck P ein Wahrheitswert zugewiesen werden: (c) P der Form t1 = t2 hat den Wert W genau dann, wenn GB (t1 ) und GB (t2 ) der gleiche Gegenstand ist; (d) P der Form R(t1 , . . . , tk ) bekommt den gleichen Wahrheitswert wie R(GB (t1 ), . . . , GB (tk )); (e) P der Form ¬Q hat den Wert W g.d.w. Q den Wert F hat; (f) Ist P aus zwei Ausdrücken A, B mittels eines Junktors gebildet, so ist der Wahrheitswert anhand folgender Wahrheitstafeln festgelegt: A W F W F B W W F F A∧B W F F F A∨B W W W F A→B W W F W A↔B W F F W (g) P der Form ∀y(Q) hat den Wert W , wenn Q für alle möglichen Belegungen von y den Wert W ; P der Form ∃y(Q) hat den Wert W wenn Q den Wert W in mindestens einer Belegung B(y) erhält. 5 Definition 1.1.2. Wird einem Ausdruck A unter einer bestimmten Interpretation der Wahrheitswert W zugewiesen, so sagen wir, dass die gegebene Interpretation den Ausdruck A erfüllt. Beispiel 8. In der genannten Auslegung der Sprache LA über N ist (i): F ; (ii): W ; (v): F ; (vii): W ; (viii): F ; (ix): F ; (xii): W . In der Auslegung über Z ist jedoch (viii): W (die Existenz eines additiven ‘Inversen’ ist ein gültiger Satz über ganze, aber nicht über natürliche Zahlen. Mit der Belegung B(x) = 2 ist (iii): W ; (vi): W ; (xi): F . Mit der Belegung B(x) = 1 ist aber (iii): F ; (vi): W ; (xi): F . 1.2 Gegenstand und Sprache Wir greifen zunächst auf einen Absatz eines Artikels von Georg Cantor (Math. Annalen, 1895) zurück. Zwei übliche Schreibweisen, um eine Menge anzugeben, sind als Auflistung, etwa wie in {3, 5, 7, 11, 13}, oder durch Charakterisierung ihrer Elementen, etwa wie {x | x ist ungerade Primzahl kleiner oder gleich 13}. Strenggenommen soll rechts von dem Strich ein formaler Ausdruck stehen, dem man dann einen wohldefinierten Wahrheitswert zuordnen kann. Wir werden uns erlauben, dort semi-formale Sätze zu schreiben, wobei wir so weit wie möglich eine weitgehend allgemein benutzte Sprache für Mengentheorie benutzen, gegeben durch: Alphabet: Konstante: ∅ ; Funktionssymbole: ; (keine) Relationssymbole: ∈, Auslegung: U = G, die Gesamtheit aller Mengen; G(∅): die leere Menge; g1 ∈ g2 g.d.w. g1 ist Element von g2 . 6 Wir schreiben A ⊆ B (und sagen “A ist eine Teilmenge von B”), wenn jedes Element von A auch ein Element von B ist (d.h., falls ∀x(x ∈ A → x ∈ B) gilt). Bemerkung 9. Sei A eine Menge. Ist P (x) ein Ausdruck mit einer freien Variable, so ist {a ∈ A | P (a)} eine Teilmenge von A (bestehend aus allen Elementen, für die a den Wert W hat). Umgekehrt ist jede Teilmenge K ⊆ A von der form {x | P (x)}, wobei P (x) der Ausdruck (x ∈ T ) ist. So ist Mengenlehre ‘mindestens so fundamental wie’ Logik. Diesen ‘Wettkampf der Fundamentalität’ wollen wir aber nicht weiter betreiben. Es sei hier nur noch angemerkt, dass die Schreibweise {x | . . .} nicht immer gute Mengen produziert (z.B. ist {x | x �∈ x} keine Menge), hingegen ist {x ∈ A | . . .} eine Menge, wenn A eine ist. Beispiel 10. {x ∈ Z | x ≤ 4} = {. . . , −6, −5, −4, −3, −2, −1, 0, 1, 2, 3, 4} {x ∈ Z | ∃y(x = 2y)} = {. . . , −8, −6, −4, −2, 0, 2, 4, 6, . . .} {x ∈ N | ∃y(xy = 10)} = {1, 2, 5, 10} {x ∈ N | ∀y(x ≤ y)} = {0} {x ∈ Z | ∀y(x ≤ y)} = ∅ Wobei die Quantoren stets über Z verstanden werden. Beispiel 11. Für jede Menge X gilt: X = {a ∈ X | a = a} ⊆ X ∅ = {a ∈ X | ¬(a = a)} ⊆ X Bemerkung 12. Diese intuitive Auffassung der Mengenlehre hat bedeutende Grenzen. Nicht jede beliebige “Zusammenfassung von Objekten” ist eine Menge (zum Beispiel darf die Gesamtheit G aller Mengen keine Menge sein): im Umgang mit Mengen fordert man, dass gewisse “Sicherheitsregeln” erfüllt werden (die sogenannten Axiomen von Zermelo-Fraenkel-Cohen). Wohlbewusst dieser Problematik, geben wir einige ‘sichere’ Mengenbildungsoperationen. Sind A und B Teilmengen einer Grundmenge U , so auch Ac := {x ∈ U | ¬(x ∈ A)}, das Komplement von A; � �� � auch: x�∈A A \ B := {x ∈ A | ¬(x ∈ B)}, die Differenz “A ohne B”; A ∩ B := {x ∈ U | (x ∈ A) ∧ (x ∈ B)}, der Durchschnitt von A und B; A ∪ B := {x ∈ U | (x ∈ A) ∨ (x ∈ B)}, die Vereinigung von A und B. P(A) := {K | K ⊆ A}, die Potenzmenge von A. 7 Beispiel 13. Zur Differenz: {1, 2, 3} \ {3, 4} = {1, 2} {1, 2, 3} \ N = ∅ {x, y} \ {z, w} = {x, y} Zum Durchschnitt: {1, 2, 3} ∩ {3, 4} = {3} {1, 2, 3} ∩ N = {1, 2, 3} {x, y} ∩ {z, w} = ∅ Zur Vereinigung: {1, 2, 3} ∪ {3, 4} = {1, 2, 3, 4} {1, 2, 3} ∪ N = N {x, y} ∪ {z, w} = {x, y, w, z} Zur Potenzmengenbildung P({1, 2}) = {∅, {1}, {2}, {1, 2}} P(∅) = {∅} P(P(∅)) = {∅, {∅}} Beispiel 14. Die Formel (Ac )c = A gilt nach den gegebenen Definitionen, denn (Ac )c := {x ∈ U | ¬(x ∈ Ac )} heißt: für x ∈ U gilt x ∈ (Ac )c genau dann wenn ¬(x ∈ Ac ) gilt. Und x ∈ Ac gilt wiederum genau dann wenn ¬(x ∈ A) gilt. Deshalb (Ac )c = {x ∈ U | ¬(¬(x ∈ A))} = {x ∈ U | x ∈ A} = A, wobei die erste Gleichung nach Definition gilt, die Zweite aufgrund der Wahrheitstafel der Negation und die Dritte, weil A ⊆ U . Bemerkung 15. Eine sehr hilfreiche Darstellung von Zusammenhängen unter Mengen sind Euler-Venn Diagramme (vgl. Vorlesung). 1.3 Von Wahrnehmung zu Erkenntnis: Datenstrukturen Eine (binäre) Relation ist das, was wir früher “Auslegung eines (binären) Relationssymbols” genannt haben. Wir werden im Folgenden vorwiegend binäre Relationen betrachten, deshalb werden wir die Stelligkeit einer Relation nur dann spezifizieren, wenn diese ungleich 2 ist. Eine Relation auf einer Menge A ist also eine Vorschrift, die jedem Paar von Elementen x, y ∈ A ein Wahrheitswert R(x, y) zuordnet. Es hat sich eingebürgert, für manche Relationssymbole R die Schreibweise “xRy” zu benutzen für “R(x, y) ist W ”, sonst x R � y. Definition 1.3.1. Eigenschaften von Relationen Die Relation R auf der Menge A heißt 8 (r) reflexiv, falls für alle a ∈ A gilt aRa; (s) symmetrisch, falls für alle a, b ∈ A gilt aRb → bRa. (a) antisymmetrisch, falls für alle a, b ∈ A gilt (aRb ∧ bRa) → a = b. (t) transitiv, falls für alle a, b, c ∈ A gilt (aRb ∧ bRc) → aRc Beispiel 16. Eigenschaften von einige Relationen über Z: xRy wenn: reflexiv symmetrisch antisymm. transitiv |x − y| = 1 |x − y| ≤ 1 X � X X � � X X x teilt y, d.h. x = yk für ein k ∈ N � X � � x≤y � X � � x und y stellen die “gleiche Uhrzeit” dar. � � X � Eine reflexive, antisymmetrische, transitive (r-a-t) Relation auf A heißt partielle Ordnung auf A. Eine totale Ordnung auf A ist eine partielle Ordnung, so dass für alle a, b ∈ A gilt aRb oder bRa. Beispiel 17. • Teilbarkeit: partielle (nicht totale) Ordnung; • “x ≤ y” : totale Ordnung; • Auf Chomp-Konfigurationen setze k1 Rk2 falls man k2 durch erlaubte Züge von k1 aus erreichen kann: das ist eine partielle Ordnung; • Das Analoge im Spiel “15” ist keine Ordnung (nicht (a)). Eine total geordnete Menge kann man “der Reihe nach” auflisten, und man benutzt dazu runde Klammern: so wird die Menge {2, 1, 13, 5} bezüglich der totalen Ordnung ≤ zum 4-Tupel (1, 2, 5, 13). Eine 2-elementige total geordnete Menge heißt “Paar”. Damit können wir unsere letzte Operation auf Mengen einführen: sind A, B Mengen, so ist ihr kartesisches Produkt definiert durch A × B := {(a, b) | (a ∈ A) ∧ (b ∈ B)} In diesem Sinne entspricht jede Relation auf A einer Teilmenge von A × A (bestehend aus den Paaren, für die die Relation “gilt”). 1.3.1 Äquivalenzrelationen Definition 1.3.2. Eine Äquivalenzrelation ist eine reflexive, symmetrische, transitive (r-s-t) Relation. Beispiel 18. Wähle ein festes m ∈ N>0 . Für a, b ∈ Z schreiben wir a ∼m b, wenn a − b ein Vielfach von m ist, d.h. wenn a − b = mk für ein k ∈ Z. Dies definiert eine Relation auf Z. Diese Relation ist 9 (r) reflexiv: für jedes a ∈ Z gilt a − a = 0m, deshalb a ∼m a. (s) symmetrisch: sind a, b ∈ Z mit a ∼m b gegeben, so gibt es ein k ∈ Z mit a − b = mk. Dann aber ist b − a = m(−k) und da −k ∈ Z heißt das, dass b ∼m a. (t) transitiv: seien a, b, c ∈ Z so, dass a ∼m b und b ∼m c. Dann gibt es k1 , k2 ∈ Z mit a − b = mk1 b − c = mk2 . somit: a − c = a − b + b − c = mk1 + mk2 = m(k1 + k2 ) und deshalb a ∼m c. Definition 1.3.3. Ist eine Äquivalenzrelation ∼ auf einer Menge A gegeben, so ist für a ∈ A [a] := {x ∈ A | a ∼ x} die Äquivalenzklasse von a. Satz 1.3.1. Ist eine Äquivalenzrelation ∼ auf einer Menge A gegeben, so gilt für a, b ∈ A: entweder [a] ∩ [b] = ∅ oder [a] = [b]. Bemerkung 19. Dieser Satz besagt, dass eine Äquivalenzrelation ihre Grundmenge dadurch ‘strukturiert’, indem sie sie in ‘nichtüberlappende’ Portionen unterteilt. Elemente in der selben Portion können nicht durch die Äquivalenzrelation unterschieden werden. Ist auf einer Menge von Bauklötzchen etwa die Relation ‘von der gleichen Farbe sein’ gegeben, so sind die dazugehörige Äquivalenzklassen: diejenige aller blauen Klötzchen, die aller roten Klötzchen, etc. Damit ist die ursprüngliche Menge strukturiert, indem die Klötzchen ‘nach Farben sortiert’ wurden. Beweis des Satzes. Wir zeigen, dass [a] ∩ [b] �= ∅ impliziert [a] = [b] (denn: die Wahrheitstafeln von A ∨ B und (¬A) → B stimmen überein - verifizieren Sie das!). Nehmen wir also an, es gilt [a] ∩ [b] �= ∅, und wählen ein x ∈ [a] ∩ [b]. Insbesondere gilt dann a ∼ x und b ∼ x. Für jedes y ∈ [a] gilt: Schritt 1. 2. 3. 4. 5. 6. 7. 8. Behauptung a∼y y∼a a∼x y∼x b∼x x∼b y∼b b∼y Begründung Definition von [a] (s) auf 1. Wahl von x (t) auf 2. und 3. Wahl von x (s) auf 5. (t) auf 4. und 6. (s) auf 7. und deshalb y ∈ [b]. Deshalb gilt [a] ⊆ [b]. Auf analoge Weise (empfohlene Übung!) folgt [b] ⊆ [a] und damit [a] = [b], was zu zeigen war. Beispiel 20 (Fortsetzung). Die Äquivalenzklassen von ∼m heißen “Restklassen modulo m”. So ist die Restklasse von 2 modulo 3 die Menge {. . . , −4, −1, 2, 5, . . .}. 10 Die Menge aller Restklassen modulo m wird Zm geschrieben; so ist Z2 = {[0], [1]} und allgemein Zm = {[0], [1], [2], . . . , [m − 1]}. Beispiel 21. Auf der Produktmenge Z × (Z \ {0}) definieren wir die Relation (a, b) ∼ (c, d) wenn ad = bc. Dies ergibt eine Äquivalenzrelation, dessen Menge der Äquivalenzklassen als Q (die Menge der rationalen Zahlen) bezeichnet wird, wobei die Äquivalenzklasse [(a, b)] meistens mit dem Bruch ab bezeichnet wird. Deshalb kann man “kürzen” a - es gilt nämlich für alle x ∈ Z \ {0}, dass ax bx = b . 1.4 Neue Erkenntnisse aus alten Schon in manchem vorangehenden Beweis haben wir uns zugetraut, durch “sprachliches” Argumentieren aus gültigen Prämissen gültige Schlussfolgerungen ableiten zu können. Wir möchten diesen Prozess befestigen indem wir es auch in unserem strengen Kontext formalisieren, also wenn eine Auslegung einer Sprache gegeben ist. Damit gibt es aber drei Probleme. (i) Das erste Problem ist sicherzustellen, dass die Prämissen wirklich wahre Sachverhalte darstellen. Das ist im Allgemeinen ein erkennungstheoretischer Aspekt, der in der Mathematik oft umgegangen wird, indem man die Gültigkeit gewisser “ur-Prämissen” (Axiome) schlichtweg postuliert. (ii) Das zweite Problem besteht darin ein System zu entwerfen, das nur korrekte Schlussfolgerungen erlaubt. Deshalb, genau so wie wir in Abschnitt 1.1 Regeln zur korrekten Bildung von Ausdrücken angegeben haben, brauchen wir nun weitere Regeln zur ‘korrekten Folgerung’ von Ausdrücken aus anderen Ausdrücken. (iii) Das dritte Problem ist dann, dass die Gesamtheit der Ausdrücke, die durch die Regeln von (ii) aus den Axiomen von (i) erhältlich ist (die ‘beweisbare Sachverhalte’) im Allgemeinen nicht mit der Gesamtheit der im Universum unserer Auslegung ‘gültigen Sachverhalte’ übereinstimmt. Das ist ein sehr ernstes Problem und kann i.A. nicht umgegangen werden (dieses Problem wurde durch die Arbeit von Kurt Gödel ans Licht gebracht). Wir befassen uns hier nicht mit Grundlagenfragen - und wollen doch zumindest verstehen, wann und wie aus einer gegebenen Familie von Ausdrücken ein neuer Ausdruck hergeleitet werden kann. Dabei muss, um (ii) gerecht zu werden, folgendes Korrektheitskriterium gelten: es ist nur dann zulässig ein Ausdruck P aus einer Menge von Ausdrücken K herzuleiten, wenn jede Interpretation, die alle Elemente von K erfüllt, auch P erfüllt. Beispiel 22 (Fallunterscheidungsregel (FU).). Sei K eine Menge von Ausdrücken, P und Q Ausdrücke. Dann schreiben wir K ∪ {Q} K ∪ {¬Q} K 11 : : : P P P und meinen damit: kann P sowohl aus K ∪ {Q} als auch aus K ∪ {¬Q} abgeleitet werden, dann kann P aus K hergeleitet werden. Korrektheit: Jede Interpretation, die K erfüllt, erfüllt entweder Q oder ¬Q. D.h., sie erfüllt K∪{Q} oder K∪{¬Q} - in beiden Fällen erfüllt sie nach den Prämissen auch P . Beispiel 23 (Widerspruchsregel (Wid).). Wie oben sei K eine Menge von Ausdrücken, P und Q Ausdrücke. Dann lautet die Regel K K K : : : Q ¬Q P und meint: kann sowohl Q als auch ¬Q aus K hergeleitet werden, dann kann P aus K hergeleitet werden. Korrektheit: Jede Interpretation, die K erfüllt, erfüllt sowohl Q als auch ¬Q: aber jede Interpretation weist jedem Ausdruck einen eindeutigen Wahrheitswert zu, deshalb gibt es überhaupt keine Interpretation, die K erfüllt. Und somit (!) wird P von jeder Interpretation erfüllt, die K erfüllt. Wenn man die Schreibweise dekodiert hat, dann erscheint die Korrektheit beider folgenden Regeln offensichtlich. Beispiel 24 (Antezedensregel (Ant).). Falls K ⊆ K� , dann K K� : : P P Beispiel 25 (Voraussetzungsregel (Vor).). Falls P ∈ K, dann K : P Damit man nicht immer die Korrektheit explizit nachprüfen muss, kann man Regeln aus anderen Regeln herleiten. Beispiel 26 (Kettenschlussregel (KS).). K K ∪ {P } K : : : P Q Q Rechtfertigung: 1. 2. 3. 4. 5. 6. K K ∪ {P } K ∪ {¬P } K ∪ {¬P } K ∪ {¬P } K : : : : : : P Q P ¬P Q Q Prämisse Prämisse (Ant) auf 1. (Vor) (Wid) auf 3., 4. (FU) auf 4., 5. Beispiel 27 (Kontrapositionsregel (KP).). K ∪ {¬Q} : K ∪ {P } : Rechtfertigung: 12 ¬P Q 1. 2. 3. 4. 5. 6. K ∪ {¬Q} K ∪ {¬Q, P } K ∪ {¬Q, P } K ∪ {¬Q, P } K ∪ {Q, P } K ∪ {P } : : : : : : ¬P ¬P P Q Q Q Prämisse (Ant) (Vor) (Wid) auf 2., 3. (Vor) (FU) auf 2., 5. Wir sehen, dass die Verifikation der Korrektheit (aber nicht die Erfindung!) solcher ‘Rechtfertigungen’ im Prinzip auch maschinell erfolgen kann. 1.5 1.5.1 Für den mathematischen Alltag: Beweismethoden Direkter Beweis Satz 1.5.1. Ist n eine ungerade natürliche Zahl, so ist n2 auch ungerade. Beweis. Eine narürliche Zahl n ist genau dann ungerade, wenn es eine natürliche Zahl k gibt, mit n = 2k + 1. Dann ist aber n2 = (2k + 1)(2k + 1) = 4k 2 + 4k + 1 = 2(2k 2 + 2k) + 1. Weil 2k 2 +2k eine natürliche Zahl ist, hat n2 die Form einer ungeraden Zahl. Satz 1.5.2. Die Winkelsumme eines Dreieckes in der Euklidischen Ebene ist gleich einem Halb-Dreh. 1.5.2 Beweis durch Kontraposition Satz 1.5.3. Sei n eine natürliche Zahl. Ist n2 gerade, so ist auch n gerade. Beweis. Durch Kontraposition genügt es zu zeigen, dass wenn n ungerade ist, dann muss n2 ungerade sein. Das haben wir aber schon als Satz 1.5.1 gezeigt. 1.5.3 Widerspruchsbeweis Satz 1.5.4. Bei jedem Chomp hat der erste Spieler eine Gewinnstrategie. Beweis. Siehe Kapitel 0. √ √ Satz 1.5.5. Die Zahl 2 ist keine rationale Zahl (also: 2 �∈ Q). √ Beweis. Zum Widerspruch nehmen √ wirp an, dass 2 ∈ Q. dann gibt es ganze, teilerfremde Zahlen p, q ∈ Z mit 2 = q , und insbesondere gilt 2q 2 = p2 . Deshalb müsste p2 eine gerade Zahl sein, und mit Satz 1.5.3 wäre p auch gerade, also p = 2k für ein k ∈ Z. Damit ist aber 2q 2 = p2 = 4k 2 und deshalb ist q 2 = 2k 2 ebenfalls gerade, und wiederum mit Satz 1.5.3 wäre q gerade. Also würde 2 sowohl p als auch q teilen, im Widerspruch zur Annahme. 13 1.5.4 Beweis durch (vollständige) Induktion Beweise durch mathematische Induktion sind nicht durch spezielle logische Deduktionsregeln gekennzeichnet, sondern dadurch, dass sie auf der Axiomatik der (Peano-)Arithmetik zurückgreifen. Diese legt als grundlegende Eigenschaft von N die Existenz einer ‘Nachfolgerfunktion’, die jeder Zahl n ihr Nachfolger S(n) (für das Englische ‘Successor’) zuordnet, also umgangssprachlich: S(n) = n + 1. Dann besagt das Induktionsprinzip das Folgende: Jede Teilmenge X ⊆ N mit 0 ∈ X, die der Nachfolger (“n + 1”) jedem seiner Elementen (“n”) enthält, ist gleich ganz N. Die Idee ist, dass wenn man ein Sachverhalt P (n) für alle n ∈ N zeigen möchte, dann versucht man zu zeigen, dass die Menge X = {n ∈ N | P (n)} gleich ganz N ist. Unter Benutzung des Induktionsprinzip ergibt sich zunächst einmal folgender Methode: “schwache” Induktion Zu zeigen: P (n) gilt für alle n ∈ N Beweismethode: 1. Verankerung: Zeige, dass P (0) gilt. 2. Zeige, dass ∀n(P (n) → P (n + 1))). D.h., gilt P (x) für eine Zahl n, dann gilt es auch für n + 1 (hier ist unser Induktionsprinzip: die Menge der Zahlen n für die P (n) gilt enthät der Nachfolger jedes seiner Elementen). Der Klarheit halber trennt man diesen Teil in: Induktionsannahme: Es gelte P (n) für eine Zahl n. Induktionsschritt: Zeige, dass unter der Induktionsannahme auch P (n+ 1) gilt Satz 1.5.6. Die Summe der Natürliche Zahlen 1 bis n ist n(n + 1)/2. Beweis. Verankerung. P (0) lautet ‘Die Summe der Zahlen bis 0 ist gleich 0’. Induktionsannahme. Sei n ≥ 0 und nehmen wir an, dass 0 + 1 + . . . + n = n(n+1) . 2 Induktionsschritt. Betrachte die Summe der Zahlen bis n + 1. Es gilt 0 + 1 + 2 + . . . + n + (n + 1) = n(n + 1) (n + 1)(n + 2) + (n + 1) = 2 2 wobei die erste Gleichung folgt mit der Induktionsannahme, die andere durch elementare Umformungen. 14 Man sieht, dass der Induktionsprinzip auch allgemeiner hilft, wenn man eine Eigenschaft für ‘alle Zahlen grösser als einem gegebenem Startwert n0 ’, indem man eben die 0 in der obigen Methode mit n0 ersetzt. Als Beispiel lösen wir das Josephus-Problem. Satz 1.5.7. Für die n-te Josephus-Zahl gilt: J(n) = 2l + 1 wobei l ist so, dass 2m ≤ n = 2m + l < 2m+1 für ein m. Kurz, behaupten wir J(2m + l) = 2l + 1. Beweis. Durch Induktion, startend mit n = 1. Verankerung bei n = 1. Man sieht sofort anhand der Zeichnung, dass J(1) = 1 Induktionsannahme. Sei n ≥ 1 und wir nehmen an, dass die Behauptung gilt für die Zahl n. Induktionsschritt. Betrachten wir eine Josephus-Situation mit n + 1 Positionen. Bei dem ersten ‘Schritt’ im Josephus-Verfahren wird die Position 2 eliminiert. Wenn wir die erste Position umbenennen nach n + 2 haben wir ein Josephus-Spiel mit n positionen, die von 3 bis n + 2 nummeriert sind (also ihre Nummer ist 2 mehr als ihre - neue - Position). Diesen Josephus wird dann bei Position J(n) enden. Nun schreibe wie oben n + 1 = 2m + l. Dann gibt es zwei Fälle: (a) l = 0, also n = 2m−1 + (2m−1 − 1) und deshalb J(n) = 2(2m−1 − 1) + 1 = 2m − 1, das n-Josephus endet in Position 2m − 1 = n und damit J(n + 1) = 1 = 2l + 1. (b) l > 0. Dann ist n = 2m + l − 1 und deshalb J(n) = 2(l − 1) + 1. Insbesondere J(n) �= n, da dies l = 2m + 1 implizieren würde. Also gilt J(n + 1) = J(n) + 2 = 2l + 1. Bemerkung 28. Dieser Beweis benutzt zwar nicht die Erkenntnisse, die wir schon über den Josephus haben, suggeriert aber folgendes Problem: Was passiert wenn wir die Josephus-Frage betrachten, aber anstatt jeder zweiten jede k-ter Position eliminieren? “starke” Induktion Eine Alternative bietet die folgende, zur vorhergehenden äquivalente (!) Version der Induktion. Zu zeigen: P (n) gilt für alle n ∈ N Beweismethode: 1. Verankerung: Zeige, dass P (0) gilt. 2. Zeige, dass ∀n((∀k ≤ n : P (k)) → P (n + 1))). D.h., gilt P (x) für alle Zahlen bis n, dann gilt es auch für n + 1. Der Klarheit halber trennt man diesen Teil in: Induktionsannahme: Sei n ≥ 0 und es gelte P (k) für alle Zahlen k ≤ n. Induktionsschritt: Zeige, dass unter der Induktionsannahme auch P (n+ 1) gilt 15 Satz 1.5.8. Jede natürliche Zahl grösser als 1 ist entweder eine Primzahl oder lässt sich als Produkt von Primzahlen schreiben. Beweis. Durch Induktion. Verankerung. Der Satz gilt trivialerweise für 2 ∈ N. Induktionsannahme. Sei n > 0 und es gelte der Satz für alle Zahlen in {0, . . . , n − 1}. Induktionsschritt. Ist n = 1 oder n eine Primzahl, so ist nichts weiter zu zeigen. Sei also n keine Primzahl - das heisst, es gibt ganze Zahlen p, q, beide ungleich 1, sodass n = pq. Weil p und q ungleich 1 sind, sind sie auch beide strikt kleiner als n: der Satz gilt dann nach Induktionsvoraussetzung für p und q, d.h., es gibt Primzahlen p1 , . . . , pk und q1 , . . . , qh mit p = p1 . . . pk und q = q1 . . . qh (k oder h können auch 1 sein, falls p bzw. q Prim ist). Wir erhalten n = pq = p1 · · · pk q1 · · · qh , und deshalb gilt der Satz auch für n. 16