MATHEMATIK 1 Eine Einführung in die mathematischen Grundlagen der Informatik Dozent: Prof.Dr. Carsten Elsner FHDW Hannover 1 = π Fassung: Januar 2017 3 10 − 14 110 25 − 2450 171 − 17556 533 − 75900 1207 − 244530 2289 − P (7) 3875 − P (8) Q(7) − . Q(8) − . . 1 m(m − 1)(2m − 1)(2m + 1)(4m − 5)(4m + 3) , 9 Q(m) = (4m + 1)(4m2 + 2m − 1) , m ≥ 2. P (m) = FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 1 MATHEMATIK, Teil 1 Eine Einführung in die mathematischen Grundlagen der Informatik Zusammenfassung Wie der Titel bereits andeutet, werden in dieser Vorlesung mathematische Themen behandelt, die Bedeutung im Bereich der modernen Informatik gefunden haben. In diesem ersten Teil sind hauptsächlich Grundlagen aufgeführt. Im Hinblick auf die in der InformatikAusbildung angestrebten praktischen Bezüge werden aber bereits konkrete mathematische Sätze erarbeitet. Da sich eine solche praxisorientierte Ausbildung zunächst an einer Programmierausbildung orientieren soll, in der weniger eine konkrete Programmiersprache als vielmehr die grundlegenden Konzepte der Programmierung (die sog. Semantik ) vermittelt werden, ist es das Ziel der Vorlesung, den dafür notwendigen mathematischen Apparat schnell zu erarbeiten. Nach der Einführung einiger fundamentaler Definitionen und Notationen aus dem Bereich Logik und Mengenlehre werden die für ein tieferes Verständnis der Informatik notwendigen Bereiche Relationen und Funktionen behandelt. Der praktisch orientierten Einführung der natürlichen Zahlen folgt im zweiten Hauptteil der Begriff der Rekursion. Hier werden die mathematischen Grundlagen für die in der Informatik übliche Definitionstechnik (z.B. für Sprachen oder Funktionen) gelegt. Zusammen mit dem Begriff Ordnung werden dann einige für die Programmsemantik wichtige Lehrsätze aufgestellt. Diese Vorlesung ermöglicht somit ein frühzeitiges strukturelles Verständnis der wesentlichen Sachverhalte in der praktischen Informatik. Lernziele Alle heute gängigen Programmiersprachen enthalten Kontrollstrukturen, die auf rekursiven Definitionen beruhen. Die Festlegung syntaktisch korrekter Programmtexte basiert ebenfalls auf rekursiven Definitionen. Das Ziel ist es daher, ein grundlegendes Verständnis für solche Konstrukte zu bekommen. Dies kann erschöpfend und präzise nur durch die Kenntnis des mathematischen Hintergrundes geschehen. Es soll aufgezeigt werden, daß die Mathematik immer noch das einzige und wesentliche Hilfsmittel für solche Untersuchungen ist. Zusätzlich ist es wichtig, Informatikern das kritische Betrachten von Artefakten in der Programmierung (oder generell im Software-Engineering) aufzuzeigen. Diese Thematik kann im wesentlichen unterteilt werden in einen syntaktischen Aspekt (Kann ein Compiler mein Programm verstehen? ) und in einen semantischen Aspekt (Arbeitet der Algorithmus korrekt? ). Eine gute Programmierung führt nicht am Verständnis abstrakter Programmstrukturen vorbei: Man denke nur an Polymorphie in der objektorientierten Programmierung, an abstrakte Datentypen in der Modellierung und an verallgemeinerte Strukturen im Datenbank-Design. Ein weiteres wichtiges Ziel ist es daher, den Begriff der Abstraktion in der Informatik mathematisch zu fassen und die im Hintergrund stehenden Denkweisen zu verdeutlichen. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 2 Literatur Die in dieser Vorlesung behandelten mathematischen Themen findet man in zahlreichen Büchern. Einen großen Teil des behandelten Stoffes findet man in Peter Hartmann, Mathematik für Informatiker, 3.Auflage, Vieweg 2004, ISBN 3-528-23181-5. und (neben vielen anderen Dingen) in H. Ehrig, B. Mahr, F. Cornelius, M. Große-Rhode, P. Zeitz, Mathematisch-strukturelle Grundlagen der Informatik , 2.Auflage, Springer 2001, ISBN 3-540-41923-3. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 3 Inhaltsverzeichnis 1 Grundlagen 5 1.1 Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Die Technik des Beweisens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3 Quantoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5 Konstruktion neuer Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 Relationen und Funktionen 27 2.1 Relationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3 Spezielle Funktionen in der Informatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.4 Äquivalenzrelationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3 Induktion 51 3.1 Einfache Induktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.2 Induktiv definierte Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.3 Strukturelle Induktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.4 Rekursiv definierte Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4 Ordnungen 68 4.1 Partielle und totale Ordnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.2 Spezielle Elemente partiell geordneter Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.3 Funktionen auf partiell geordneten Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 4 Literatur. • Peter Fejer & Dan Simovici: Mathematical Foundations of Computer Sciences, Springer (1990). • Martin Gardner: Gotcha, dtv. • Paul R. Halmos: Naive Mengenlehre, Vandenhoeck & Ruprecht (1994). • Peter Hartmann: Mathematik für Informatiker, Vieweg (2004). • H. Ehrig, B. Mahr, F. Cornelius, M. Große-Rhode, P. Zeitz: Mathematisch-strukturelle Grundlagen der Informatik , 2.Auflage, Springer (2001). • Guido Walz: Mathematik für Fachhochschule, Duale Hochschule und Berufsakademie, Spektrum Akademischer Verlag Heidelberg (2011), ISBN 978-3-8274-2521-8. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 5 1 Grundlagen Die mathematische Logik und die Mengenlehre stellen die Hilfsmittel bereit, mit denen dann später die Probleme und Sachverhalte der Informatik universell formuliert und verstanden werden können. Es werden daher in diesem Kapitel grundlegende Definitionen und Notationen aus der Logik und Mengenlehre aufgestellt. 1.1 Logik. Die im folgenden eingeführte Logik stellt ein mathematisches Modell für ein präzises Argumentieren und Ableiten von wahren Aussagen zur Verfügung. Die Aussage ist der zentrale Begriff in der Logik. Aussagen sind Wahrheitswerte zugeordnet: eine Aussage ist entweder wahr oder falsch. Eine dritte Alternative gibt es nicht; man spricht auch von zweiwertiger Logik . Die folgenden Beispiele sind Aussagen: • 3+3 = 6 • Die Erde ist eine flache Scheibe. • Wenn Java eine Insel ist, dann ist Pascal ein Ozean. Mit Aussagen, die für sich alleine stehen, kann man noch nicht viel anfangen. Erst durch das Kombinieren von Aussagen mit Hilfe von Operationen wird der Aussagenkalkül zu einem mächtigeren Instrument. Das dritte Beispiel in der obigen Aufzählung stellt eine solche Aussagenkombination dar. Es handelt sich nämlich um die Kombination zweier Aussagen mittels Wenn . . . , dann . . . . Es wird jetzt u.a. gezeigt, wie man eine solche Operation formalisiert und wie man ihren Wahrheitswert ermittelt. Die fünf wichtigsten Operationen mit Aussagen heißen Konjunktion ( und“), Alternative ” ( oder“), Negation ( nicht“), Implikation ( Wenn . . . , dann . . .“) und Äquivalenz ( Ge” ” ” ” nau dann, wenn “). Die Schreibweisen für diese Operationen entnimmt man der folgenden Tabelle, in der A und B irgendwelche Aussagen bezeichnen. Name Konjunktion Alternative Negation Implikation Äquivalenz Sprechweise A und B A oder B Nicht A Wenn A, dann B A genau dann, wenn B Schreibweise A∧B A∨B ¬A A =⇒ B A ⇐⇒ B Besonders übersichtlich werden Operationen auf Aussagen durch Wahrheitstafeln. Das sind Tabellen, in denen für jede Operation und jeden möglichen Wahrheitswert der beteiligten Aussagen aufgeschrieben ist, welchen Wahrheitswert die durch die Operation neu entstandene Aussage hat. So erhält man für die fünf oben definierten Operationen folgende Wahrheitstafel: A B A ∧ B A ∨ B ¬A A =⇒ B A ⇐⇒ B wahr wahr wahr wahr falsch wahr wahr wahr falsch falsch wahr falsch falsch falsch falsch wahr falsch wahr wahr wahr falsch falsch falsch falsch falsch wahr wahr wahr FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 6 Die Wahrheitswerte für die Operationen ∧, ∨ und ¬ bedürfen keiner weiteren Erläuterungen. Es ist jedoch einiges zur Implikation zu sagen. Bei einer Implikation A =⇒ B heißt die Aussage A die Hypothese und die Aussage B die Folgerung. Man sagt dann auch kurz: Aus A folgt B. In dem Satz Wenn es morgen regnet, werde ich zu Hause bleiben.“ (*) ” ist also der Teil vor dem Komma die Hypothese und der Teil nach dem Komma ist die Folgerung. Umgangssprachlich etwas holprig, aber mathematisch korrekt könnte man diesen Satz auch folgendermaßen formulieren: Aus Regen am nächsten Tag folgt, daß ich zu Hause ” bleibe.“Es ist klar, daß diese Gesamtaussage wahr ist, wenn sowohl die Aussage der Hypothese A ( Morgen regnet es.“) als auch die Aussage der Folgerung B ( Ich werde zu Hause ” ” bleiben.“) wahr ist. Ebenso sieht man leicht ein, daß die Gesamtaussage falsch ist, wenn zwar die Hypothese A wahr, aber die Folgerung B falsch ist (Der Satz Wenn es morgen ” regnet, werde ich das Haus verlassen.“widerspricht offensichtlich dem obigen Satz (*)). Es ist aber etwas kniffliger einzusehen, warum die Implikation A =⇒ B eine wahre Aussage ist, wenn die Hypothese A falsch ist, und zwar unabhängig davon, ob die Folgerung B wahr oder falsch ist. Es werden nämlich beide Aussagen Wenn es morgen nicht regnet, werde ich zu Hause bleiben.“ ” und Wenn es morgen nicht regnet, werde ich das Haus verlassen.“ ” als wahr angesehen, da sie nicht im Widerspruch zur Aussage in (*) stehen. Die Folgerung von A auf B ist nämlich nur dann bindend, wenn die Hypothese wahr ist. Die Äquivalenz zweier Aussagen ist nichts anderes als eine Abkürzung für die Aussage Wenn A dann B“ und Wenn B dann A“ ” ” Formalisieren kann man diese Aussage folgendermaßen: ( (A =⇒ B) ∧ (B =⇒ A) ) = (A ⇐⇒ B) . Man beachte, daß hier das Gleichheitszeichen ’=’ die Bedeutung der semantischen Gleichheit zweier Aussagen hat. Das bedeutet: Zwei Aussagen C und D sind gleich (C = D), wenn sich bei jeder Belegung aller in C und D vorkommenden Aussagen mit Wahrheitswerten für die Aussagen C und D stets der gleiche Wahrheitswert ergibt. Die oben vorgenommene Klammerung innerhalb von Aussagen gibt eine Auswertereihenfolge vor: Die Aussagen in den Klammern werden immer zuerst ausgewertet. Ziel ist es nun, die wichtigsten aussagenlogischen Gesetze aufzustellen. Diese Gesetze werden hauptsächlich zur Vereinfachung von logischen Aussagen verwendet. Diese Vorgehensweise soll zunächst an einem Beispiel verdeutlicht werden. Beispiel 1.1 In einem Programm steht die folgende Anweisungssequenz: if ((x > 0) and (y ≤ 6)) or ((x > 0) and (y > 6)) then ** do something** else ** do something else** FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 7 Wann wird nun der ’then’ - Teil und wann der ’else’ - Teil ausgeführt? Dies kann man mit einer Wahrheitstafel ermitteln: x>0 wahr wahr falsch falsch y ≤ 6 y > 6 Wahrheitswert der ’if ’ - Bedingung wahr falsch wahr falsch wahr wahr falsch wahr falsch falsch wahr falsch Offensichtlich ist der Wahrheitswert der ’if ’ - Bedingung garnicht vom Wahrheitswert der Aussage y ≤ 6 abhängig; kurz: die ’if ’ - Bedingung hängt nur vom Wahrheitswert der Aussage x > 0 ab. Für solche Vereinfachungen lassen sich nun allgemeine Regeln aufstellen. Einige solcher Regeln sind im folgenden Satz zusammengefaßt. Der Beweis dieser Regeln geschieht jeweils durch Ausprobieren aller Kombinationen von Wahrheitswerten. Satz 1.1 (Aussagenlogische Grundregeln) Für alle Aussagen A, B und C gelten die folgenden Gesetze. A∧B =B∧A A∨B =B∨A A ∧ (B ∧ C) = (A ∧ B) ∧ C A ∨ (B ∨ C) = (A ∨ B) ∨ C A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C) A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C) A ∧ wahr“ = A A ∨ falsch“ = A ” ” A ∧ falsch“ = falsch“ A ∨ wahr“ = wahr“ ” ” ” ” (A =⇒ B) = (¬B =⇒ ¬A) (Kommutativgesetze) (Assoziativgesetze) (Distributivgesetze) (Neutrale Elemente) (Konstante Funktion) (Kontraposition) Mit diesen Regeln wird noch einmal die Vereinfachung der ’if’ - Bedingung aus Beispiel 1.1 vorgenommen. Unter Anwendung des Distributivgesetzes kommt zunächst: (x > 0 ∧ y ≤ 6) ∨ (x > 0 ∧ y > 6) = (x > 0) ∧ (y ≤ 6 ∨ y > 6) . Da die Aussage (y ≤ 6 ∨ y > 6) offensichtlich immer wahr ist, erhält man weiter mit der Regel für neutrale Elemente: (x > 0 ∧ y ≤ 6) ∨ (x > 0 ∧ y > 6) = (x > 0) ∧ wahr“ = (x > 0) . ” Auch der nun folgende Satz enthält aussagenlogische Grundregeln. Wegen ihrer Bedeutung werden diese Regeln in einem gesonderten Satz aufgeführt. Satz 1.2 (De Morgansche Regeln) Es seien A und B beliebige Aussagen. Dann gilt: ¬(A ∧ B) = ¬A ∨ ¬B (1.1) ¬(A ∨ B) = ¬A ∧ ¬B (1.2) FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 8 Auch diese beiden Aussagen beweist man leicht, indem man alle vier Kombinationen von Wahrheitswerten für A und B durchprobiert. Eine Anwendung von Satz 1.2 findet man im folgenden Beispiel. Beispiel 1.2 In einem Programm steht die Anweisungssequenz if (not (x > 0) and not (y > x)) then ** do Anweisung 1** else ** do Anweisung 2** Man stellt nun fest, daß das Programm auch nach Weglassen der Anweisung 1 immer korrekt läuft. Also tritt stets die Negation der in der ’if ’ - Abfrage stehenden Aussage ein. Wegen (1.1) gilt nun ¬(¬A ∧ ¬B) = A ∨ B , und deshalb kann man das Programm mittels if (x > 0 or y > x) vereinfachen. then ** do Anweisung 2** FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 9 1.2 Die Technik des Beweisens. In diesem Abschnitt geht es um die Technik des Ableitens von wahren Aussagen. Beweise und logische Argumentation sind nicht immer etwas Abstraktes und nicht nur eine Domäne der Mathematiker. Das zeigt das folgende Beispiel aus der Finanzmathematik. Jemand behauptet, ein Kapital von 1000 Euro, das sich über mindestens 20 Jahre mit einem Zinssatz von 5% verzinst, ist am Ende der Laufzeit auf mindestens 2000 Euro angewachsen. Ist diese Aussage nun wahr oder falsch? Im ersten Schritt wird man diese Aussage erst einmal für die erwähnten Zahlen formalisieren; dadurch erhält man: 1000 · (1, 05)20 ≥ 2000 . (1.3) Es entsteht also keine formale Identität, sondern eine Ungleichung. Diese Ungleichung kann man durch 1000 teilen. Dadurch wird sie einfacher und es zeigt sich, daß die Aussage auch unabhängig vom Startkapital von 1000 Euro formuliert werden kann. Allerdings wurde oben mehr behauptet als nur die Gültigkeit der Ungleichung (1.3), von deren Richtigkeit man sich ja leicht mit dem Taschenrechner überzeugen kann. Es hieß aber mindestens zwanzig Jahre. Tatsächlich lautet in Erweiterung von (1.3) die Behauptung: Für alle natürlichen Zahlen n gilt: (n ≥ 20 =⇒ 1, 05n ≥ 2) . (1.4) Wir müssen hier eine Aussage für unendlich viele natürliche Zahlen n nachweisen, nämlich für alle, die größer oder gleich 20 sind. Nun wird man allein durch praktische Erfahrung natürlich einwenden, daß sich die Behauptung in (1.4) sofort ergibt, wenn man sie für die Mindestlaufzeit von 20 Jahren nachgerechnet hat. Aber man bedenke, daß man hier erstens bereits die Gültigkeit eines mathematischen Arguments (nämlich eine gewisse Monotonie der Exponentialfunktion und die Transitivität der Relation ’≥’) vorausgesetzt hat, und daß es zweitens nicht darum geht, möglichst schnell die Behauptung in (1.4) nachzuweisen. Vielmehr soll an diesem (einfachen) Beispiel eine allgemeine Beweistechnik demonstriert werden. Da wir die Aussage in (1.4) nicht für alle unendlich vielen natürlichen Zahlen n nachrechnen können, muß man stichhaltig argumentieren. Ein Beweis ist nun nichts anderes als eine logisch korrekte kausale Kette von Aussagen. Was das im konkreten Fall bedeutet wird gleich klar werden. Da man mit einem Beweis jedoch immer nur die Richtigkeit einer Aussage nachweisen kann, muß man sich zunächst entscheiden, was man beweisen will: die Aussage oder ihre Negation (Es könnte ja auch sein, daß die Behauptung in (1.4) falsch ist!). Im vorliegenden Fall entscheiden wir uns aber für den Beweis der Aussage selbst. Formal besteht ein Beweis nur aus zwei Teilen: Teil 1 Man schreibe die Hypothese(n) aus der Aussage auf. Dadurch erhält man eine Aussage A. Teil 2 Man finde Aussagen A1 , A2 , . . . , Ak , für die folgendes gilt: (i) (ii) A1 = A , Ak ist die zu beweisende Folgerung ; Die Implikationskette A1 =⇒ A2 =⇒ . . . =⇒ Ak ist wahr. Da man die Aussagen A2 , . . . , Ak−1 noch finden muß, kann man Teil 2 als den kreativen Teil des Beweises bezeichnen. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 10 Im vorliegenden Beispiel besteht Teil 1 aus dem Hinschreiben der folgenden Hypothese: A1 ist die Aussage: Sei n ≥ 20 eine beliebig gewählte natürliche Zahl. (1.5) Nun folgt der kreative Teil. Es muß also eine Idee her, wie man weitermachen kann. Dazu sollte man kurz innehalten und auf den Kontext des Problems schauen, um eine möglichst gute Abschätzung des Wertes von 1, 05n nach unten zu bekommen, um den es in der Behauptung ja geht. Hierfür ist nun die folgende Überlegung hilfreich: Wenn sich ein Kapital jährlich mit 5% verzinst, dann muß schon nach zwei Jahren mehr vorhanden sein, als wenn man jedes Jahr nur 5% des Anfangskapitals hinzuaddiert. Man berücksichtigt also nur die Verzinsung des Anfangskapitals und vernachlässigt den Zinseszinseffekt. Formal lautet das Ergebnis dieser Überlegung: Für alle natürlichen Zahlen n ≥ 1 gilt: (1, 05)n ≥ 1 + 0, 05 · n . (1.6) Wir haben mit (1.5) und (1.6) nun zwei Ungleichungen erhalten, die wir wegen der Transitivität der Relation ’≥’ miteinander kombinieren können. Daher führt der nächste Beweisschritt zu der Aussage: Da x ≥ y ∧ y ≥ z =⇒ x ≥ z immer wahr ist, folgt aus (1.5) und (1.6): (1, 05)n ≥ 1 + 0, 05 · 20 = 2 . (1.7) Eine aus dem Hintereinanderschreiben der Aussagen (1.5), (1.6) und (1.7) bestehende kausale Kette beweist also präzise die gewünschte Aussage. Die folgende formale Darstellung des Beweises zeigt noch einmal, daß es sich dabei wirklich um eine Implikationskette handelt. Man beachte, daß jede Teilimplikation für sich eine wahre Aussage darstellt, weil immer wieder aus einer wahren Hypothese eine wahre Folgerung gezogen wird! n ≥ 20 =⇒ n ≥ 20 ∧ (Für alle n ≥ 1 gilt: (1, 05)n ≥ 1 + 0, 05 · n) =⇒ n ≥ 20 ∧ (Für alle n ≥ 1 gilt: (1, 05)n ≥ 1 + 0, 05 · n) ∧ (Für alle reellen Zahlen x, y, z gilt: (x ≥ y ∧ y ≥ z =⇒ x ≥ z)) =⇒ 1 + 0, 05 · n ≥ 1 + 0, 05 · 20 ∧ (Für alle n ≥ 1 gilt: (1, 05)n ≥ 1 + 0, 05 · n) ∧ (Für alle reellen Zahlen x, y, z gilt: (x ≥ y ∧ y ≥ z =⇒ x ≥ z)) =⇒ (1, 05)n ≥ 1 + 0, 05 · 20 =⇒ (1, 05)n ≥ 1 + 0, 05 · 20 ∧ 1 + 0, 05 · 20 = 2 =⇒ (1, 05)n ≥ 2 . Zumindest das formale Schema von Beweisen orientiert sich immer an diesem Muster. Allerdings werden in der Praxis nicht alle Zwischenschritte in dieser Ausführlichkeit hingeschrieben. Vieles wird nämlich beim Leser des Beweises als bekannt vorausgesetzt; zu viele notierte Zwischenschritte würden die Beweise unübersichtlich machen. Ist ein Beweis beendet, wird dies mit einem vorab vereinbarten Zeichen angezeigt. Wir haben hier das Quadrat gewählt. Bei dem obigen Beispiel weisen wir noch auf die Tatsache hin, daß die Ungleichung 1, 05n ≥ 2 unter der allgemeinen Voraussetzung n ≥ 10 offensichtlich falsch ist (Für n = 10, 11, 12, 13, 14 gilt die Ungleichung nicht!). Was wäre unter der Voraussetzung n ≥ 10 geschehen? Man FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 11 hätte beliebig lange aus der Hypothese (n ≥ 10) Folgerungen ziehen können, ohne jemals auf die Aussage 1, 05n ≥ 2 zu stoßen. Dies erklärt sich dadurch, daß niemals eine falsche Aussage aus einer wahren Aussage folgen kann (Man beachte die zweite Zeile in der Wahrheitstafel für die Implikation ’=⇒’, Seite 4). Wenn man sehr lange erfolglos versucht hat, aus einer Hypothese eine Folgerung abzuleiten, sollte man vielleicht auch einmal versuchen, die gegenteilige Aussage zu beweisen. Wie man eine gegenteilige Aussage formal korrekt formuliert, wird im nächsten Abschnitt 1.3 erläutert. Eine häufig verwendete Beweistechnik soll jetzt behandelt werden, die nicht nur in vielen theoretischen Beispielen hilfreich ist, sondern auch als Denkmodell in zahlreichen praktischen Tätigkeiten in der Informatik vorkommt. Mit den Wahrheitstafeln auf Seite 4 findet man leicht die Identität (A =⇒ B) = (¬A ∨ B) , indem man alle vier Kombinationen von Wahrheitswerten für A und B durchprobiert. Zusammen mit der De Morganschen Regel (1.1) ergibt sich weiter (A =⇒ B) = ¬(A ∧ ¬B) . (1.8) Diese Gleichung wird nun folgendermaßen für Beweise angewendet: Um eine Implikation A =⇒ B zu beweisen, schreibt man zunächst wieder (wie in Teil 1 eines Beweises gefordert) die Hypothese A auf. Zusätzlich nimmt man dann noch an, daß ¬B gilt, daß also die eigentlich zu beweisende Behauptung falsch ist. Gelingt es nun zu zeigen, daß diese Konjunktion (nämlich die Aussage A∧¬B) falsch ist, so hat man wegen (1.8) die Richtigkeit von A =⇒ B bewiesen. Man wird dann beim Herleiten weiterer Aussagen aus A ∧ ¬B auf eine Situation stoßen, die erkennbar nicht möglich bzw. widersprüchlich ist. Die ganze Vorgehensweise nennt man einen Beweis durch Widerspruch. Dieses Verfahren soll an einem Beispiel erläutert werden. Die alten Griechen glaubten irrtümn darstellen lassen, wobei n und lich, daß sich alle positiven Zahlen in Gestalt eines Bruches m m > 0 für teilerfremde natürliche Zahlen stehen. Insbesondere sollte auch die Länge der Diagonale in einem Quadrat mit der Seitenlänge 1 durch einen solchen Bruch ausgedrückt n benennen, die die Gleichung werden können. Doch niemand konnte eine Zahl der Gestalt m 2 x = 2 löst und damit die Länge der Diagonale im Quadrat beschreibt. Woran liegt das? Wir werden die Richtigkeit des folgenden Lehrsatzes zunächst mit dem Beweisprinzip durch Widerspruch nachweisen. Satz 1.3 Ist p eine Primzahl, so besteht für alle natürlichen Zahlen n und m > 0 die Ungleichung 2 n 6= p . m Ist dieser Satz bewiesen, so wenden wir ihn insbesondere für die Primzahl p = 2 an und haben damit das Diagonalenproblem der alten Griechen gelöst: Die Länge der Diagonale im Einheitsquadrat wird nicht durch eine rationale Zahl beschrieben! FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 12 Beweis: Es sei p eine beliebige Primzahl. Zusätzlich wird nun angenommen, daß es teilerfremde natürliche Zahlen n und m > 0 gibt, die eine Darstellung 2 n = p (1.9) m zulassen; dies ist nun genau die gegenteilige Aussage von dem, was zu beweisen ist. Wenn die Zahlen m und n teilerfremd sind, so sind auch die Zahlen m2 und n2 teilerfremd, denn durch das Quadrieren sind keine neuen Primteiler bei m und n hinzugekommen. Die Gleichung in (1.9) wird nun umgestellt: n2 = p · m2 . (1.10) Hieraus liest man ab, daß p ein Teiler der Zahl n2 ist. Da nun n2 eine Quadratzahl ist, kommen alle Primteiler (und insbesondere der nachgewiesene Primteiler p) mindestens zweimal in der Primfaktorzerlegung vor. So ist beispielsweise 36 = 62 = (2 · 2) · (3 · 3). Daher existiert eine natürliche Zahl k mit der Eigenschaft n2 = p2 · k . (1.11) Aus (1.10) und (1.11) folgt durch Gleichsetzen über n2 die Gleichung p · m2 = p2 · k. Teilt man diese Gleichung einmal durch p, so erhält man m2 = p · k . Damit ist p aber auch ein Primteiler von m2 . Insgesamt haben wir nun nachgewiesen, daß p sowohl ein Primteiler von m2 als auch von n2 ist. Andererseits hatten wir aber m2 und n2 bereits als teilerfremd erkannt. Damit liegt ein Widerspruch vor, der den Satz (unter Berufung auf (1.8)) beweist. Warum ist diese doch befremdliche Argumentation legitim? Es wurde doch aus einer (wie sich ja nun im Nachhinein herausstellte) falschen Aussage, nämlich aus der Annahme der n 2 ) = p, eine andere falsche Aussage, nämlich Existenz natürlicher Zahlen n und m mit ( m (n2 und m2 sind teilerfremd) ∧ (p ist zugleich ein Teiler von n2 und von m2 ) , hergeleitet. Diese Argumentation ist genau deshalb erlaubt, weil die Implikation A =⇒ B auch dann eine wahre Aussage ist, wenn A und B beide falsch sind (Man beachte die Wahrheitstafel auf Seite 4!). Man kann dies auch anders formulieren: Wenn man davon ausgeht, daß die Argumentationskette im Beweis korrekt ist, so muß die Annahme falsch sein. Denn wäre sie wahr, hätte sich aus etwas Wahrem durch korrektes Schließen etwas Falsches ergeben. Dies ist aber gerade, wie man wieder aus der Wahrheitstafel abliest, nicht korrekt. 1.3 Quantoren. Häufig enthalten Aussagen Formulierungen wie ’für alle . . . ’ oder ’es gibt . . . ’. Diese Festlegungen nennt man Quantoren. Beispielsweise lautete die Behauptung in (1.6): Für alle natürlichen Zahlen n ≥ 1 gilt: (1, 05)n ≥ 1 + 0, 05 · n . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 13 Wie bei den im vorigen Abschnitt erläuterten Beweistechniken erwähnt, ist es in manchen Fällen wichtig, Aussagen zu negieren, etwa um in einem Beweis durch Widerspruch das Gegenteil einer Aussage formulieren zu können. Als Hilfsmittel zur Formalisierung von Aussagen und ihrer Negation werden die folgenden Symbole eingeführt: ∀ ∃ bedeutet bedeutet ’für alle’ ’es gibt’ Bisher wurden Aussagen etwa kurz mit A notiert. Aussagen, die noch zusätzlich von einem Parameter x abhängen, werden künftig mit A(x) bezeichnet. Dabei versteht man unter x einen Platzhalter für einen beliebigen Wert, z.B. für eine Zahl, für eine Zeichenkette oder auch für einen Wahrheitswert. Wenn die Aussage von mehreren Parametern x, y, z, . . . abhängt, schreiben wir entsprechend A(x, y, z, . . . ). Die oben eingeführten Quantoren - Symbole werden dann in folgender Weise verwendet: Symbolik ∀ x : A(x) ∃ x : B(x) Sprechweise Für alle x gilt die Aussage A(x) Es gibt ein x, für das die Aussage B(x) gilt Mit diesen neuen Symbolen können Aussagen leicht formal negiert werden. Eine Aussage A(x) gelte zuerst für alle möglichen Werte von x. Das Gegenteil dieser Aussage (also ihre Negation ¬(∀ x : A(x))) besagt dann offensichtlich, daß es ein gewisses x gibt, für das die Aussage A(x) nicht gilt (aber nicht, daß die Aussage A(x) für alle möglichen x nicht gilt!!). Gilt umgekehrt eine Aussage B(x) für ein gewisses x, so besteht hier die Negation (¬(∃ x : B(x))) offensichtlich in der Aussage, daß B(x) für alle x falsch ist. Besteht eine Aussage aus einer Gleichung oder Ungleichung, so wird meist auf die Voranstellung des Allquantors ∀ verzichtet und der Gültigkeitsbereich der Gleichung bzw. Ungleichung in Klammern angefügt. Beispiele: 1.) (a + b)2 = a2 + 2ab + b2 (a, b ∈ R) . Gelesen: ’Die Gleichung ... gilt für alle reellen Zahlen a und b’. 2.) (1 + x)n ≥ 1 + nx (x ≥ −1 , n ∈ N) . Gelesen: ’Die Ungleichung ... gilt für alle reellen Zahlen x ≥ −1 und für alle natürlichen Zahlen n’. Wir können nun formal Aussagen negieren: Satz 1.4 (Negation von Aussagen, die Quantoren enthalten) Für beliebige Aussagen A(x) und B(x) gelten die Identitäten ¬(∀ x : A(x) ) = ∃ x : ¬A(x) ¬(∃ x : B(x) ) = ∀ x : ¬B(x) Man beachte die Analogie zu den De Morganschen Regeln! FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 14 Beispiel 1.3 Nach der Entwicklung einer Software - Anwendung werden Testfälle durchgeführt, mit denen die Korrektheit der neuen Programme verifiziert werden soll. Nachdem die Testfälle durchgeführt wurden, machten die Tester folgende Aussage: ’In jedem Testfall gibt es eine Programmeingabe, mit der das Programm nicht funktioniert.’ Die Entwickler versuchen nun die Situation so zu korrigieren, daß nach der Veränderung der Programme die Negation der obigen Aussage eintritt. Diese lautet aber nun gemäß Satz 1.4: ’Es gibt einen Testfall, so daß bei jeder Programmeingabe das Programm funktioniert.’ Ob jetzt die Software fehlerfrei funktioniert, überlassen wir dem Glauben des Lesers. In manchen Fällen ist auch der Gebrauch der folgenden Existenzquantoren sinnvoll: ∃∞ bedeutet: ’Es gibt unendlich viele’ , ∃1 bedeutet: ’Es gibt genau ein’ Beispiel 1.4 Ein berühmter Satz aus der Zahlentheorie (bewiesen im 20.Jh.) lautet: Jede hinreichend große ungerade Zahl ist als Summe von drei Primzahlen darstellbar. Formal lautet diese Aussage: ∃ n0 ∈ N ∀ n ∈ N (n ≥ n0 ∧ n ≡ 1 mod 2) ∃ p1 , p2 , p3 ∈ P : n = p1 + p2 + p3 . Die Negation dieser Aussage lautet zunächst formal: ∀ n0 ∈ N ∃ n ∈ N (n ≥ n0 ∧ n ≡ 1 mod 2) ∀ p1 , p2 , p3 ∈ P : n 6= p1 + p2 + p3 . Mit der ∃∞ - Schreibweise können aber die beiden ersten Quantoren in dieser Negation zusammengefaßt werden zu: ∃∞ n ∈ N (n ≡ 1 mod 2) ∀ p1 , p2 , p3 ∈ P : n 6= p1 + p2 + p3 . Dies lautet jetzt umgangssprachlich: ’Es gibt unendlich viele ungerade natürliche Zahlen n, die nicht als Summe dreier Primzahlen darstellbar sind.’ 1.4 Mengen. Die Konzepte der Mengenlehre bilden nicht nur das Fundament der modernen Mathematik, sondern auch das der Informatik. Der Informatiker betreibt die Mengenlehre nicht als eine exotische Wissenschaft. Vielmehr hat er hiermit ein grundlegendes Hilfsmittel für viele Disziplinen an der Hand, wie Datenbank-Design, Programmiersprachen oder objektorientierte Modellierung. Was ist nun eine Menge? Der Mathematiker Georg Cantor (1845 - 1918) versuchte mit Mengen einen gemeinsamen Begriff für verschiedene Objekte der realen Welt oder unserer Vorstellung zu schaffen. Die Objekte selbst nennt man Elemente der Menge. In diesem Sinne ist eine Menge nichts anderes als eine Sammlung von Objekten, nämlich den Elementen der FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 15 Menge. Ist nun eine Menge S gegeben, so kann man entscheiden, ob ein gegebenes Element a in der Menge S enthalten ist oder nicht 1 . Man sagt dann, ’a ist in S enthalten’ oder ’a ist nicht in S enthalten’. Kommt a in der Menge S vor, schreibt man a ∈ S. Ist a nicht in der Menge S enthalten, notiert man das mit a 6∈ S . Ein wichtiges Beispiel für die Verwendung dieser Mengenschreibweisen ist die Deklaration von Zahlbereichen durch Datentypen in verschiedenen Programmiersprachen: Beispiel 1.5 In der Programmiersprache Java wird durch den Datentyp int die Menge I aller ganzen Zahlen im Bereich von −231 bis 231 − 1 dargestellt. Die Deklaration int zahl (1.12) legt dann zahl als ein (zunächst nicht näher bestimmtes, also noch nicht mit einem bestimmten Wert belegtes) Element der Menge I fest. In Visual Basic wird die gleiche Deklaration mit der Syntax dim zahl As Integer (1.13) ausgedrückt. Die Bedeutung der beiden durch (1.12) und (1.13) notierten Deklarationen ist aber in beiden Fällen gleich, nämlich zahl ∈ I . Durch dieses Beispiel wird auch folgendes klar: Die mathematische Notation ist ein von jeder Programmiersprache unabhängiges Hilfsmittel, die Semantik eines Programms aufzuschreiben. Hiermit erhält man insbesondere auch die Möglichkeit, gleichartige semantische Aspekte einer Programmiersprache zu vergleichen, indem man die Sprache der Mathematik als ’Meta - Sprache’ verwendet. Mengen können auf zwei Arten beschrieben werden. Die erste Methode besteht darin, die Elemente der Menge explizit aufzuführen. Besteht eine Menge S aus genau den Elementen x1 , x2 , . . . , xn , so notiert man die Menge mit S = { x1 , x2 , . . . , xn } . 1 S steht für das englische Wort set. Dieser Buchstabe wird häufig für den Namen einer Menge verwendet. Generell werden im folgenden Mengen meist mit Großbuchstaben und Elemente mit kleinen Buchstaben bezeichnet. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 16 Kann man nicht alle Elemente einer Menge aufschreiben, weil es zu viele oder unendlich viele Elemente sind, so deutet man die nicht notierten Elemente durch Punkte ’. . . ’ an, wenn daraus intuitiv ersichtlich ist, welches die fehlenden Elemente sind. Beispielsweise wird die Menge der natürlichen Zahlen durch { 0, 1, 2, 3, . . . } beschrieben und mit dem Buchstaben N abgekürzt. Auch würde niemand die 232 Elemente der Menge I aus Beispiel 1.5 einzeln hinschreiben; man notiert I durch I = { −231 , −231 + 1, . . . , 231 − 2, 231 − 1 } . Bei der anderen Methode der Spezifikation einer Menge S verwendet man eine oder mehrere definierende Bedingungen. Man benutzt dafür eine Aussage der Gestalt A(x) (vgl. Abschnitt 1.3), mit der die Elemente der Menge in folgendem Sinne beschrieben werden: ein Element x ist genau dann in S enthalten, wenn A(x) wahr ist. Hierzu ein Beispiel: Die Elemente der Menge S aller Quadratzahlen, die kleiner als 20 sind, kann man einerseits alle hinschreiben. Man erhält S = { 0, 1, 4, 9, 16 } . Andererseits können diese Quadratzahlen aber auch durch die Aussage A(x) := (’x ist eine Quadratzahl’ ∧ ’x ist kleiner als 20’) = (x ∈ N ∧ x < 20 ∧ ∃ y ∈ N : y 2 = x ) beschrieben werden. Hiermit drückt man jetzt aus, daß ein Element x genau dann zu S gehört, wenn A(x) wahr ist. Um auf diese Art und Weise eine Menge zu definieren, benutzt man die folgende Notation: S = {x | A(x) } = { x | x ∈ N ∧ x < 20 ∧ ∃ y ∈ N : y 2 = x } . Der Kürze halber verwendet man häufig anstelle von S = {x | A(x) } = x| x ∈ X ∧ A0 (x) die gleichwertige Schreibweise S = x ∈ X| A0 (x) , die die Aussage A(x) = (x ∈ X ∧ A0 (x)) hinsichtlich der Zugehörigkeit von x zu einer Obermenge X verkürzt. Damit haben wir im vorigen Beispiel die kürzere Schreibweise S = { x ∈ N | x < 20 ∧ ∃ y ∈ N : y 2 = x } . Nun stehen die wesentlichen Schreibweisen für ein Werkzeug bereit, mit dessen Hilfe man Mengen von Objekten notieren und schließlich ’weiterverarbeiten’ kann. Wir benutzen diese FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 17 Schreibweisen, um einige sehr wichtige Zahlmengen einzuführen: N N∗ P Z Z∗ Q R := { 0, 1, 2, 3, . . . } (Menge der natürlichen Zahlen mit 0) := { 1, 2, 3, . . . } (Menge der natürlichen Zahlen ohne 0) := p | p ∈ N ∧ p ≥ 2 ∧ (p ≡ 0 mod k =⇒ k ∈ {1, p}) (Menge der Primzahlen) := { 0, ±1, ±2, ±3, . . . } (Menge der ganzen Zahlen) := { ±1, ±2, ±3, . . . } (Menge der ganzen Zahlen ohne 0) := q | ∃ a ∈ Z ∃ b ∈ Z∗ : q = a/b (Menge der rationalen Zahlen) := Menge der rellen Zahlen Leider stellt sich heraus, daß wir uns einige Probleme eingekauft haben, die mit der Allgemeinheit der obigen Definitionen zusammenhängen. Damit ist folgendes gemeint: Die Elemente von Mengen können selbst wieder Mengen sein. Man führe nur etwa die Menge S := { T | T ist eine Menge mit unendlich vielen Elementen } ein. S ist eine Menge von Mengen. Es stellt sich nun die Frage, ob S (als Menge) selbst auch zu der Menge aller Mengen gehört, die in S enthalten sind. Das ist hier offensichtlich der Fall, denn S enthält ja selbst auch unendlich viele Elemente. Hierfür betrachte man nur die unendlich vielen Mengen Sn := { k ∈ N | k ist ein Vielfaches von n } (n ∈ N ∧ n > 0) . Jede dieser Mengen Sn besteht aus unendlich vielen Elementen und ist daher ein Element T von S. Weiterhin sind für zwei verschiedene Primzahlen p und q die Mengen Sp und Sq verschieden, weil p ∈ Sp , q ∈ Sq und p 6∈ Sq , q 6∈ Sp gilt, denn keine Primzahl ist ein Vielfaches einer anderen Primzahl. Also ist die Aussage S ∈ S offensichtlich wahr. Mengen, die sich selbst enthalten, sind ziemlich kurios. Es wäre doch erstrebenswert, solche kuriosen Mengen auszugrenzen und nur mit Mengen zu arbeiten, die in dem Sinne ’normal’ sind, daß sie sich nicht selbst enthalten. Diese Menge N aller normalen Mengen X wird demnach durch N := { X | X 6∈ X } (1.14) definiert. Die obige Menge S gehört demnach nicht zu N ; es gilt also S 6∈ N . Leider sind die fundamentalen Probleme damit immer noch nicht aus der Welt geschafft. Wir stellen nämlich jetzt einmal die Frage, ob N selber eine normale Menge ist. Wir unterscheiden die beiden möglichen Fälle: FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 18 Fall 1 : N ist eine normale Menge. Dann gilt aufgrund der Definition von N , daß N ∈ N , denn N gehört ja zu den normalen Mengen. Somit ist N = X für ein X, das in N vorkommt. Nun gilt aber für die Elemente X von N , daß X 6∈ X, und daher haben wir N 6∈ N . Es hat sich ein Widerspruch ergeben. Fall 1 kann also nicht eintreten! Fall 2 : N ist keine normale Menge. Jetzt haben wir N 6∈ N vorausgesetzt, was aber andererseits aufgrund der definierenden Eigenschaft von N wiederum N ∈ N bedeutet (wieder für ein gewisses X = N mit X ∈ N ). Auch hier tut sich ein Widerspruch auf! Auch Fall 2 kann nicht eintreten. Hilfe!! Was ist passiert? Die Tatsache, daß die Definition der Menge N erlaubt ist, führt zu einem Widerspruch, der nicht auflösbar ist. Das ist das berühmte Russel’sche Paradoxon (Bertrand Russell, 1872 - 1970, engl. Earl und Philosoph). Der Leser möge beruhigt sein: derartige Paradoxien haben in der Vergangenheit die Mathematik in eine tiefe Grundlagenkrise gestürzt, aus der sie sich erst durch die Entwicklung der mathematischen Logik befreit hat. Die Dinge sind geklärt! Für den Erstzugang zur Mengenlehre bedeutet diese Paradoxie, daß solche allgemeinen Definitionen von Mengen wie oben für S und N nicht zugelassen werden dürfen. Man verlangt, daß bei der Definition einer Menge mit Hilfe einer definierenden Bedingung immer eine Art Grundmenge von vorneherein die Auswahl der möglichen Elemente einschränkt. Eine solche Grundmenge wird mit U bezeichnet (wie ’Universum’), und es sind ab jetzt nur noch Definitionen in der Form { x | x ∈ U ∧ A(x) } (1.15) erlaubt. Damit ist das Russel’sche Paradoxon aus der Welt geschafft, denn die Definition einer Menge N mit N := {X | X ∈ U ∧ X 6∈ X } (1.16) (anstelle von (1.14)) führt jetzt bei der Frage, ob N in N enthalten ist, nicht mehr zu einem unauflösbaren Widerspruch. Geht man von N ∈ N aus, so erhält man zunächst einen Widerspruch wie in Fall 1 oben, denn man hat N ∈ U ∧ N 6∈ N . Der Widerspruch kommt allein durch N 6∈ N zustande, die gleichzeitig erfüllte Bedingung N ∈ U spielt keine Rolle. Also kann Fall 1 nicht eintreten; es muß also Fall 2 eintreten, was N 6∈ N bedeutet. Aus (1.16) ergibt sich so die Gültigkeit der Aussage ¬ (N ∈ U ∧ N 6∈ N ). Aufgrund der De Morganschen Regel (1.1) folgt daraus: N 6∈ U ∨ N ∈ N . Da die zweite Alternative der Voraussetzung von Fall 2 widerspricht, tritt zwingend die erste Alternative ein, und die besagt N 6∈ U . Setzt man also ein Universum U voraus und definiert dann anschließend die Menge N wie in (1.16), so gilt N 6∈ N , und man erhält als zusätzliche Information die Aussage N 6∈ U . Dies besagt also, daß die Menge N nicht in dem Universum U enthalten ist, obwohl die Elemente von N in U enthalten sind. Zukünftig werden wir bei Mengendefinitionen immer die Einschränkung aus (1.15) berücksichtigen. Wir haben jetzt das nötige Werkzeug, um nach der Einführung weiterer grundlegender Notationen die Eigenschaften von Mengen und ihre Beziehungen untereinander beschreiben zu FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 19 können. Beispielsweise ist es wichtig ausdrücken zu können, ob die Elemente einer Menge A auch alle in einer anderen Menge B vorkommen. So repräsentieren die drei Elemente der Menge S := { 7, 11, 25 } drei natürliche Zahlen. Diese drei Elemente kommen auch in der Menge N vor; man sagt, die Menge S ist eine Teilmenge der Menge N. Allerdings ist die Menge S keine Teilmenge der Menge P aller Primzahlen, weil das Element 25 von S keine Primzahl ist. Es spielt dann keine Rolle mehr, daß 7 und 11 Primzahlen sind. Diese und weitere Verknüpfungen zwischen Mengen werden folgendermaßen formalisiert: Verknüpfung A⊆B A=B A⊂B Bedeutung ∀ x : (x ∈ A =⇒ x ∈ B) A⊆B ∧ B⊆A A ⊆ B ∧ ¬(A = B) Für ¬(A = B) wird der Kürze halber auch A 6= B geschrieben. Nach diesen Definitionen bedeutet die Gleichheit zweier Mengen A und B, daß A und B die gleichen Elemente besitzen. Definition 1.1 Zwei Mengen A und B heißen gleich, wenn jedes Element von A auch Element von B ist und umgekehrt. Es ergibt sich aufgrund dieser Definition aber auch { 1, 2, 3, 2 } = { 1, 2, 3 } = { 3, 2, 1 } . Das bedeutet: Bei Mengen haben Mehrfachnennungen der Elemente keine Bedeutung: jedes Element kann nur höchstens einmal in einer Menge vorkommen. Es kommt dabei auch nicht auf die Reihenfolge an, in der die Elemente genannt werden. Auf die wichtige Unterscheidung zwischen endlichen, unendlichen und gleichmächtigen Mengen gehen wir später in Abschnitt 2.3 ein, weil hierzu der im Augenblick noch nicht vorhandene Begriff der Bijektion erforderlich ist. Wichtig für Anwendungen ist die Aussage des folgenden Satzes: Satz 1.5 (Transitivität der Teilmengenbeziehung) Es seien A, B und C Mengen. Dann gilt: (A ⊆ B ∧ B ⊆ C) =⇒ A ⊆ C (A ⊂ B ∧ B ⊂ C) =⇒ A ⊂ C Beweis: Es wird die erste Aussage des Satzes gezeigt. Da die Aussage die Gestalt einer Implikation hat, setzen wir die Hypothese als wahr voraus und zeigen, daß dann auch die Folgerung A ⊆ C wahr ist. Hierzu sei x ∈ A. Wir müssen jetzt unter Ausnutzung der Hypothese (A ⊆ B ∧ B ⊆ C) zeigen, daß x ∈ C gilt (siehe die Definition von ’⊆’). Wegen FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 20 des ersten Teils der Hypothese A ⊆ B wissen wir auch x ∈ B, und wegen des zweiten Teils der Hypothese B ⊆ C ergibt sich mit diesem Zwischenergebnis dann auch x ∈ C, was insgesamt zu zeigen war. Die zweite Aussage im Satz wird ähnlich bewiesen. Unter der leeren Menge versteht man eine Menge, die keine Elemente enthält. Für die leere Menge benutzt man das Symbol ∅. Die leere Menge ist Teilmenge jeder Menge, es gilt also ∅ ⊆ A. (1.17) Diese Aussage ist leicht zu verifizieren, denn es muß die Implikation x ∈ ∅ =⇒ x ∈ A gezeigt werden. Da die Hypothese dieser Implikation immer falsch ist, ist die Implikation also wahr. Eine weitere Eigenschaft der leeren Menge ist die, daß eine Menge, die nur die leere Menge enthält, selber nicht leer ist; in Zeichen {∅} = 6 ∅. In der Informatik kommen oft Mengen von Mengen vor. Die sog. Programmzustände bilden beispielsweise eine Menge, deren Elemente jeweils aus Mengen von Variablen bestehen. Auf solche Mengen von Mengen ist die folgende Definition zugeschnitten. Definition 1.2 (Potenzmenge) Es sei S eine Menge. Die Potenzmenge ist als die Menge aller Teilmengen von S erklärt und wird mit ℘(S) bezeichnet. Es ist also ℘(S) = {T | T ⊆ S} Beispiel 1.6 Es sei S := { 1, 2, 3 }. Dann ist die zugehörige Potenzmenge von S gleich ℘(S) = { ∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3} } . Der folgende Satz drückt zwei wichtige Eigenschaften von Potenzmengen aus. Satz 1.6 (Eigenschaften der Potenzmenge) 1.) Die Potenzmenge einer Menge ist niemals leer, denn sie enthält stets die leere Menge. 2.) Besteht die Menge S aus unendlich vielen Elementen, so auch die Potenzmenge ℘(S). Besteht S hingegegen aus genau n Elementen, so besteht ℘(S) aus 2n Elementen. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 21 1.5 Konstruktion neuer Mengen. Im vorigen Abschnitt 1.4 sind Mengen definiert und die Möglichkeiten ihrer Notation erläutert worden. Jetzt werden verschiedene Operationen auf den Mengen eingeführt. Wie schon bei den Aussagen in Abschnitt 1.1 werden jetzt die verschiedenen Methoden der Verknüpfung von Mengen diskutiert. Definition 1.3 Die Schnittmenge A ∩ B zweier Mengen A und B besteht aus genau den Elementen, die sowohl in A als auch in B liegen: A ∩ B = {x | x ∈ A ∧ x ∈ B} Sprechweise: A geschnitten mit B. Definition 1.4 Die Vereinigungsmenge A ∪ B zweier Mengen A und B besteht aus genau den Elementen, die entweder in A oder in B oder in A ∩ B liegen: A ∪ B = {x | x ∈ A ∨ x ∈ B} Sprechweise: A vereinigt mit B. Definition 1.5 Die Differenzmenge A \ B zweier Mengen A und B besteht aus genau den Elementen, die in A, aber nicht in B liegen: A \ B = {x | x ∈ A ∧ x 6∈ B} Der folgende Satz faßt die wichtigsten Eigenschaften von Vereinigung und Schnittmengen zusammen. Satz 1.7 (Allgemeine Gesetze für Vereinigung und Schnitt von Mengen) Es seien A, B und C beliebige Mengen. Dann gilt: A∪B =B∪A A∩B =B∩A A ∪ (B ∪ C) = (A ∪ B) ∪ C A ∩ (B ∩ C) = (A ∩ B) ∩ C A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C) A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C) A∪A=A A∩A=A A∪∅=A A∩∅=∅ (Kommutativgesetze) (Assoziativgesetze) (Distributivgesetze) (Idempotenzgesetze) Der Beweis dieses Satzes besteht im Nachprüfen der Definitionen 1.3 und 1.4 unter Anwendung von Satz 1.1. Da sowohl die Vereinigung als auch die Schnittmengenbildung assoziative Operationen auf Mengen sind (es also auf die Reihenfolge der beteiligten Mengen nicht ankommt), schreibt man bei der Vereinigung bzw. Schnittmengenbildung von drei Mengen A, B, C auch [ { A, B, C } := A ∪ B ∪ C für A ∪ (B ∪ C) und \ { A, B, C } := A ∩ B ∩ C für A ∩ (B ∩ C) . Dies legt eine Verallgemeinerung nahe, die sich auf den Schnitt bzw. die Vereinigung über eine Menge von Mengen bezieht: FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 22 Definition 1.6 Es sei C eine Sammlung von Mengen (also eine Menge, die Mengen enthält). Dann wird folgende Schreibweise vereinbart: Verknüpfung Sprechweise T Schnitt von C SC Vereinigung von C C Bedeutung T S C = {x | ∀A ∈ C : x ∈ A} C = {x | ∃A ∈ C : x ∈ A} Für viele Aspekte in der Mengenlehre ist der folgende Begriff von Bedeutung. Definition 1.7 (Disjunkte Mengen) (i) Zwei Mengen A und B heißen disjunkt, wenn sie keine gemeinsamen Elemente haben: A∩B = ∅ . (ii) Ist C eine Sammlung von Mengen, so heißt C eine Sammlung paarweise disjunkter Mengen, wenn je zwei verschiedene Mengen aus C disjunkt sind. (iii) Ist C eine Sammlung von Mengen, so heißt C eine Sammlung disjunkter Mengen, wenn gilt: \ C = ∅. Ein Mengensystem kann disjunkt sein, obwohl es nicht paarweise disjunkt ist. Paarweise Disjunktheit ist also eine stärkere Forderung an ein Mengensystem als nur Disjunktheit. Beispiel: Sei A = {1, 2}, B = {2, 3} und C = {1, 3}. Dann ist A ∩ B = {2} , A ∩ C = {1} , B ∩ C = {3} , A ∩ B ∩ C = ∅. Im täglichen Leben verwendet man Operationen wie Addition, Subtraktion und Multiplikation bei der Verknüpfung von Zahlen. Man sagt auch, daß man Summen, Produkte oder Differenzen bildet. Es soll jetzt gezeigt werden, daß man diese Begriffe auch für Mengen definieren kann und daß dies auch etwas mit den Operationen auf Zahlen zu tun hat. Insbesondere die Subtraktion von Mengen ist mit der Differenzmenge aus Definition 1.5 bereits eingeführt worden, die Vereinigung zweier Mengen entspricht der klassischen Addition von Zahlen. Der Zusammenhang zwischen Differenz- und Schnittmenge bzw. zwischen Differenzund Vereinigungsmenge ergibt sich aus dem folgenden Satz. Satz 1.8 (Zusammenhang zwischen Differenz und Schnitt- bzw. Vereinigungsmenge) Es seien A, B und C beliebige Mengen. Dann gilt: C \ (A ∪ B) = (C \ A) ∩ (C \ B) C \ (A ∩ B) = (C \ A) ∪ (C \ B) A ∩ (B \ C) = (A ∩ B) \ (A ∩ C) FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 23 Der Beweis der ersten beiden Aussagen besteht wieder aus einer einfachen Anwendung der Definitionen der jeweiligen Operationen unter Berücksichtigung der aussagenlogischen Regeln von De Morgan aus Satz 1.2. Man beachte, daß die Aussage A∪(B\C) = (A∪B)\(A∪C) im allgemeinen falsch ist. Hierfür betrachte man drei Mengen A, B, C mit B ⊆ A, A 6= ∅ und C = ∅. Dann ist einerseits A ∪ (B \ C) = A ∪ B = A , andererseits (A ∪ B) \ (A ∪ C) = A \ A = ∅ . Hingegen besteht für drei beliebige Mengen A, B, C die Mengeninklusion (A ∪ B) \ (A ∪ C) ⊆ A ∪ (B \ C) . In manchen Fällen werden alle Operationen mit Mengen innerhalb einer festen Obermenge X ausgeführt. Insbesondere sind alle auftretenden Mengen in X enthalten (Beispielsweise sind irgendwelche Mengen ganzer Zahlen immer in der Menge aller ganzen Zahlen enthalten). Setzt man im vorigen Satz C = X (führt man also die Differenzbildung in der Obermenge X aus), so schreibt man statt X \ A auch kurz A und nennt diese Menge das Komplement von A in X. Der vorige Satz nimmt dann die folgende Gestalt an: Korollar 1.1 (De Morgansche Regeln) Es seien A und B beliebige Mengen. Dann gilt: A∪B = A∩B A∩B = A∪B Außerdem gilt die Mengenbeziehung A \ B = A ∩ B. Für viele Anwendungen wird der folgende Satz benötigt. Ist A eine Menge mit höchstens endlich vielen Elementen, so bezeichnet |A| die Anzahl der Elemente in der Menge A. Satz 1.9 Sind A und B Mengen mit höchstens endlich vielen Elementen, so gilt: |A ∪ B| = |A| + |B| − |A ∩ B| , |A \ B| = |A| − |A ∩ B| . Korollar 1.2 Sind A und B disjunkte Mengen mit höchstens endlich vielen Elementen, so gilt: |A ∪ B| = |A| + |B| , |A \ B| = |A| . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 24 Jetzt wird der Begriff des Produktes von Mengen eingeführt. Definition 1.8 (Das Cartesische Produkt) Es seien A und B Mengen. Das Cartesische Produkt (meist nur kurz Produkt genannt) von A und B ist die Menge A × B, die aus allen geordneten Paaren (a, b) besteht, wobei a ∈ A und b ∈ B ist. In Zeichen: A × B = {(a, b) | a ∈ A ∧ b ∈ B} Insbesondere stimmen zwei Elemente (a, b) und (c, d) aus A × B genau dann überein, wenn sie komponentenweise übereinstimmen: (a, b) = (c, d) ⇐⇒ (a = c ∧ b = d) . (1.18) Man beachte, daß es im Gegensatz zu Mengen beim Cartesischen Produkt auf die Reihenfolge bei der Belegung der Komponenten ankommt, und (a, a) ist auch ein völlig anderes Objekt als a. Für ein praktisches Beispiel zu Produkten von Mengen gehen wir in eine Möbelfirma und untersuchen die Produktionspreise von Einzelteilen der Möbel. So möge eine Spezialschraube bei der Fertigung eines Tisches 1,50 Euro kosten. Wir fassen nun eine solche Preisangabe im mengentheoretischen Sinn als ein geordnetes Paar auf, in dem ein Wert (mit zwei Nachkommastellen) und eine Währungseinheit vorkommen. Bezeichnet Q in üblicher Weise die Menge aller rationalen Zahlen und N die Menge aller natürlichen Zahlen einschließlich der Null, so kann mit W := { x ∈ Q | 100x ∈ N } die Menge aller rationalen Zahlen beschrieben werden, die als Werte eines Stückpreises vorkommen. In der Menge E := { DEM, Euro, USD, FRF, . . . } seien alle auf der Welt vorkommenden Währungseinheiten zusammengefaßt. Damit kann die Menge P aller Preise als das cartesische Produkt der Mengen W und E aufgefaßt werden: P = W ×E . In der Firma werden nun Möbel gefertigt. Diese bestehen aus verschiedenen Teilen, wobei die Teile wieder aus kleineren Teilen zusammengesetzt sind, u.s.w. Jedes Teil kann durch eine Liste seiner Einzelteile beschrieben werden. So besteht ein Tisch (unter Vereinfachung der realen Verhältnisse) beispielsweise aus einer Tischplatte, 4 Tischbeinen und 16 Schrauben, mit denen die Beine an die Platte montiert werden. Damit besteht ein Tisch also aus 21 Teilen. Mengentheoretisch ausgedrückt läßt sich ein Tisch durch eine Menge mit 21 Elementen beschreiben. Aber es reicht nun für eine Beschreibung des Tisches nicht aus, daß das Möbelstück aus einer Tischplatte, einigen Tischbeinen und diversen Schrauben besteht. Es soll nun noch mengentheoretisch erfaßt werden, wieviele der jeweiligen Teile verarbeitet werden. Aus der Bemerkung im Anschluß an die Definition 1.1 wissen wir, daß es nicht FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 25 möglich ist, in einer Menge viermal das Element ’Tischbein’ zu nennen. Man behilft sich nun dadurch, daß man jedes Tischbein mit einer Nummer versieht und dann in einer Menge die Elemente ’Tischbein 0’, ’Tischbein 1’, ’Tischbein 2’ und ’Tischbein 3 aufführt (aus konventionellen Gründen beginnt man die Nummerierung mit 0). Jetzt unterscheiden sich nämlich die Elemente und können nebeneinander in einer Menge genannt werden. Gleichzeitig ist festgelegt, wie oft das Element ’Tischbein’ vorkommt: nämlich einmal mehr wie es die größte Nummer angibt (weil die Zählung bei Null beginnt). Bei der Formalisierung dieses Sachverhaltes hilft die folgende Definition, in der auf das Konzept des Cartesischen Produkts zurückgegriffen wird. Definition 1.9 (Multimengen) Eine Multimenge über einer Menge A ist eine Teilmenge M von A × N mit der folgenden Eigenschaft: ∀ a ∈ A ∃ n ∈ N : (a, m) ∈ M ⇐⇒ m < n . (1.19) Die Menge aller Multimengen über A wird mit M(A) bezeichnet. Die zum Element a ∈ A gehörige natürliche Zahl n wird die Multiplizität von a in M genannt. Die Bedingung in (1.19) dient der Gewährleistung, daß ein Element fortlaufend nummeriert ist: für jedes a ∈ A kommen genau die Elemente (a, 0), (a, 1), . . . , (a, n−1) in der Multimenge vor. Gibt es zu a ∈ A kein Element (a, 0) in M , so sagt man entweder der Kürze halber, daß a in M nicht vorkommt oder daß a in M die Multiplizität 0 hat. In diesem Fall wähle man in (1.19) n = 0. Das Möbelstück ’Tisch’ besitzt nun als Multimenge die folgende Darstellung: ’Tisch’ = { (Tischplatte, 0), (Tischbein, 0),. . . ,(Tischbein, 3), (Schraube, 0), . . . , (Schraube, 15) } . Für eine Fortführung dieses Beispiels benötigen wir noch einen weiteren Begriff. Definition 1.10 (Summe zweier Multimengen) Es sei A eine Menge und M und N zwei Multimengen über A. Die Summe M + N der Mengen M und N ist diejenige Multimenge über A, so daß für jedes a ∈ A die Multiplizität von a in M + N die Summe der Multiplizitäten von a in M und N ist. Jede Menge X kann als eine Multimenge X 0 aufgefaßt werden, indem jedes Element in X 0 mit der Multiplizität 1 vorkommt: X 0 = {(x, 0) | x ∈ X} . (1.20) Eine Multimenge, in der jedes Element mit der Multiplizität 1 vorkommt, ist eine einfache Multimenge. Jede einfache Multimenge kann demnach wieder als eine Menge interpretiert werden. Wann ist nun eine Summe zweier einfacher Mengen X und Y wieder einfach? Dies ist offensichtlich genau dann möglich, wenn die beiden Mengen disjunkt sind, denn kommt ein Element sowohl in X als auch in Y vor, so ist die Multiplizität von a in X + Y gleich 2, und damit ist die Summe X +Y nicht mehr einfach. In diesem Sinne kann man herkömmliche Mengen genau dann addieren, wenn sie disjunkt sind. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 26 Definition 1.11 (Summe zweier Mengen) Es seien X und Y zwei Mengen und X 0 und Y 0 die zugehörigen einfachen Multimengen. Die Summe X + Y der Mengen X und Y wird als die Summe X 0 + Y 0 der zugehörigen Multimengen definiert. X + Y kann genau dann wieder als eine Menge interpretiert werden, wenn X und Y disjunkt sind. Welche Möglichkeiten der Beschreibung eröffnen sich hiermit für die zusammengesetzten Möbelstücke? A bezeichne die Menge aller Teile, die für die Montage aller Möbel in der Firma zur Verfügung stehen. Darunter sind einige Teile Elementarteile, wie z.B. die Schrauben, die selbst nicht weiter unterteilt sind. Andere Teile sind schon zusammengesetzt, wie etwa ein bereits montierter Tisch. Zur weiteren Unterscheidung wird die Menge Z aller zusammengesetzten Teile und die Menge E aller Elementarteile eingeführt. E enthält also alle Teile, die irgendwo in Waren verarbeitet werden. In Z befinden sich nicht nur fertig montierte Teile wie etwa ein kompletter Tisch, sondern auch ’halbfertige Teile’ wie ein Tischbein, in das bereits vier Schrauben hineingedreht sind. Die Mengen Z und E sind disjunkt. Somit hat man also aufgrund von Definition 1.11: Z ∈ M(Z + E) ; (1.21) die Menge aller zusammengesetzten Teile kommt in der Multimenge über der Summe der Mengen von Einzelteilen und zusammengesetzten Teilen vor. Hierin drückt sich eine rekursive Teilmengenbeziehung aus, durch die veranschaulicht wird, daß gewisse Teile zusammengesetzte Teile enthalten, die wieder aus anderen Teilen zusammengesetzt sind, usw. Formal erkennt man die rekursive Teilmengenbeziehung in (1.21) daran, daß das Z sowohl auf der linken als auch auf der rechten Seite vorkommt. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 27 2 Relationen und Funktionen Sowohl in der Informatik als auch in der Umgangssprache versteht man unter Relationen gewisse Beziehungen zwischen Objekten. In der Informatik sind dies technische Artefakte der Programmierung. In der realen Welt treten Relationen bei diversen Sachverhalten auf. So kann man sagen, daß zwei Menschen durch eine Ehe in Relation zueinander stehen. Eine Person und ein Fahrzeug können in der Relation ’ist Fahrer von’ genannt werden. Personen können zu einem Buch in unterschiedlichen Relationen stehen: als Leser, als Autor oder als Verleger. Man kann z.B. zwischen Menschen und Büchern die Relation ’ist Autor von’ erklären. Sondert ein Bibliothekar aus einem Bücherbestand alle Bücher aus, die mehr als einen Autor haben, verbleiben in den Regalen nur Bücher, die in Relation zu genau einem Menschen (nämlich ihrem jeweiligen Autor) stehen. Jetzt wird die Autor-Relation zu einer Funktion, erklärt auf den Büchern: jedem Buch im Regal kann genau ein Autor zugeordnet werden. Die Eindeutigkeit der Zuordnung eines Buches zu seinem Autor ist im allgemeinen aber nicht umkehrbar: Es können mehrere Bücher vom selben Autor im Regal stehen. In der Software-Entwicklung spielt das getreue Abbilden von Fakten und Zusammenhängen der realen Welt in Programm-Objekten eine wichtige Rolle. Insofern kommen auch hier Relationen und Funktionen in sehr vielen Zusammenhängen vor. 2.1 Relationen. Definition 2.1 (Relationen) Es seien A und B zwei Mengen. Jede Teilmenge von A × B heißt eine Relation von A nach B. Ist A = B und R eine Relation von A nach A, so nennt man R auch eine Relation auf A. Ist R eine Relation von A nach B, so gilt also R ⊆ A × B. Ist (a, b) ∈ R, so schreibt man dafür auch aRb. Beispiel 2.1 Es bezeichnen A und B die Mengen A := { Hans, Oskar, Karl } und B := { Lisa, Doris, Andrea, Heidi } . Hans ist mit Doris und Karl mit Lisa verheiratet. Dann können wir eine Relation REhe ⊆ A × B definieren, durch die genau die Ehepaare herausgefiltert werden: REhe = { (Hans, Doris), (Karl, Lisa) } . Beispiel 2.2 Es bezeichne B die Menge aller deutschen Bundesländer und S die Menge aller Städte in Deutschland. Eine Relation R ⊆ S × B sei erklärt durch (s, b) ∈ R ⇐⇒ Die Stadt s liegt im Bundesland b. So ist (Hannover, Niedersachsen) ∈ R, und (Mainz, Hessen) 6∈ R. Durch die Relation R wird also beschrieben, welche Städte in welchen Bundesländern liegen. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 28 Definition 2.2 (Definitions- und Wertebereich einer Relation) Es sei R eine Relation von A nach B. Als Definitionsbereich von R wird die Menge Dom (R) = { a ∈ A | ∃ b ∈ B : (a, b) ∈ R} ⊆ A bezeichnet. Der Wertebereich von R ist die Menge Ran (R) = { b ∈ B | ∃ a ∈ A : (a, b) ∈ R} ⊆ B . Falls für eine Relation von A nach B sogar A = Dom (R) gilt, nennt man R auch eine (links)totale Relation. Hier steht dann jedes a ∈ A zu irgendeinem b ∈ B in Relation. Hier stehen die Abkürzungen für die englischen Begriffe domain und range. Im Beispiel 2.2 ist so A = S = Dom (R) die Menge aller deutschen Städte und B = Ran (R) die Menge aller Bundesländer. Wählt man für die Menge S hingegen nur die Städte in Deutschland, in der mehr als 1 Million Menschen leben, so erhält man hingegen: S = Dom (R) = { Hamburg, Berlin, München, Köln } und Ran (R) = { Hamburg, Berlin, Bayern, Nordrhein-Westfalen } . In Beispiel 2.1 wird keine totale Relation erklärt, denn Dom (R) = { Hans, Karl } umfaßt nicht die ganze Menge A. Hingegen ist die Relation in Beispiel 2.2 eine totale Relation, wenn man davon ausgeht, daß jede Stadt auch in einem Bundesland liegt (!!). Durch die beiden folgenden Beispiele werden zwei wichtige mathematische Relationen eingeführt. Beispiel 2.3 Die Relation ’kleiner oder gleich’ auf den natürlichen Zahlen N wird durch { (m, n) | ∃ k ∈ N : m + k = n } ⊆ N2 erklärt. Hierbei ist die Zahl k die nicht-negative Differenz zwischen n und m. Beispiel 2.4 Die Relation ’ist ein Teiler von’ auf den natürlichen Zahlen N wird durch { (m, n) | ∃ k ∈ N : m · k = n } ⊆ N2 erklärt. Diese Relation wird künftig auch mit δN bezeichnet. Definition 2.3 (Inverse Relation) Es sei R eine Relation von A nach B. Die inverse Relation R−1 ist definiert durch R−1 = {(b, a) | (a, b) ∈ R} . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 29 Ist R eine Relation von A nach B, so ist R−1 eine Relation von B nach A. Man spricht in diesem Zusammenhang auch von der Umkehrrelation. Definitions- und Wertebereiche bei einer Relation und ihrer Umkehrrelation sind untereinander ausgetauscht: Dom (R−1 ) = Ran (R) und Ran (R−1 ) = Dom (R) . Im täglichen Leben kommen Umkehrrelationen häufig vor: Zu der Relation ’ist Leser von’ zwischen einer Menge von Personen und einer Menge von Büchern gehört die Umkehrrelation ’wird gelesen von’ zwischen der Büchermenge und der Personenmenge. Bei der sprachlichen Formulierung einer Umkehrrelation geht man oft von einem aktiv ausgedrückten Sachverhalt zur passiven Ausdrucksweise über (bzw. umgekehrt). Auch in manchen mathematischen Zusammenhängen ist das so: Beispiel 2.5 Es bezeichne δN die Teilerrelation aus Beispiel 2.4. Die zugehörige Umkehrrelation ist δN−1 = { (n, m) | ∃ k ∈ N : n = k · m } ⊆ N2 . Umgangssprachlich wird hier die Relation ’ist Vielfaches von’ betrachtet. In der folgenden Definition wird der zentrale Begriff dieses Kapitels eingeführt. Definition 2.4 (Partielle und totale Funktionen, linkseindeutige Relationen) 1.) Eine Relation R von A nach B heißt eine partielle Funktion oder auch eine rechtseindeutige Relation, falls gilt: ∀ a ∈ A ∀ b1 ∈ B ∀ b2 ∈ B : (aRb1 ∧ aRb2 =⇒ b1 = b2 ) . Ist eine rechtseindeutige Relation R zusätzlich linkstotal, so spricht man auch von einer totalen Funktion (oder: Funktion, Abbildung). 2.) R heißt eine linkseindeutige Relation, falls gilt: ∀ a1 ∈ A ∀ a2 ∈ A ∀ b ∈ B : (a1 Rb ∧ a2 Rb =⇒ a1 = a2 ) . Im Zusammenhang mit partiellen und totalen Funktionen sowie linkseindeutigen Relationen nennt man die Menge A den Urbildbereich und die Menge B den Bildbereich. Dabei gilt Dom (R) ⊆ A und Ran (R) ⊆ B. Satz 2.1 (Interpretation der Funktionen und linkseindeutigen Relationen) 1.) Eine Relation ist eine partielle Funktion, falls jedes Element des Urbildbereiches zu höchstens einem Element des Bildbereiches in Relation steht. 2.) Eine Relation ist eine Funktion (oder Abbildung), falls jedes Element des Urbildbereiches zu genau einem Element des Bildbereiches in Relation steht. 3.) Eine Relation ist linkseindeutig, falls zu jedem Element des Bildbereiches höchstens ein Element des Urbildbereiches in Relation steht. In den folgenden drei Diagrammen versinnbildlicht der jeweils linke Kasten den Urbildbereich, der rechte Kasten den Bildbereich. Die jeweiligen Elemente in diesen Mengen sind durch Kreise angedeutet und von oben nach unten mit 1 bis 5 (Urbildbereich) bzw. 1 bis 6 (Bildbereich) durchnummeriert. Der Leser mag zur Verdeutlichung Pfeile zwischen den jeweiligen Elementen einzeichnen. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 30 Beispiel für eine partielle Funktion h h h h h h h h h h h { (1, 2), (2, 1), (4, 3), (5, 3) } Beispiel für eine totale Funktion h h h h h h h { (1, 2), (2, 1), (3, 6), (4, 3), (5, 3) } h h h h FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 31 Beispiel für eine linkseindeutige Relation h h h h h h h h h h h { (1, 2), (2, 1), (3, 3), (3, 4), (3, 5) } Warum sind die in der Definition 2.4 eingeführten Begriffe so wichtig? Der Begriff linkseindeutige Relation kommt im Bereich der Geschäftsprozeß - Modellierung vor. Er tritt immer dann auf, wenn Objekte betrachtet werden, die einem identifizierenden Schlüsselbegriff zugeordnet werden. Man betrachte z.B. die Namen von Personen in einer Kundendatenbank. Jeder (identifizierenden) Kundennummer kann zwar eindeutig ein Name zugeordnet werden, aber zwei Nummern können zum gleichen Namen führen (wenn es etwa zwei Kunden mit demselben Namen Peter Müller gibt). Interpretiert man das als eine Relation von der Menge der Namen in die Menge der Schlüssel , so hat man eine linkseindeutige Relation. Im Urbildbereich kann es Namen geben, die keiner Kundennummer zugeordnet sind (wenn nämlich die Person noch nicht als Kunde erfaßt ist), und im Bildbereich kommen evtl. Nummern vor, die bevorratet sind und noch zu keiner Person gehören. Insgesamt steht aber jeder Schlüssel eindeutig für einen Namen. Die am Anfang des Kapitels betrachtete ’Ehe - Relation’ ist eine partielle Funktion und eine linkseindeutige Relation, aber keine totale Funktion. Das liegt daran, daß hierzulande jede Person höchstens einen Ehepartner haben darf. Man kann also bei jeder verheirateten Person eindeutig die Frage beantworten, welcher Ehepartner ’zugeordnet’ ist. In der Programm-Semantik ist oft die Frage wesentlich, ob eine partielle Funktion auch total ist. Beispielsweise wird in dem folgenden kleinen Programm eine Funktion f definiert, die einer (geraden) natürlichen Zahl wieder eine natürliche Zahl zuordnet: f (x : Card) : Card ::= if (x = 0){return 0}else{return f (x mod 2)} . f nimmt also für x = 0 oder eine gerade natürliche Zahl x > 0 immer den Wert 0 an. Ein Aufruf von f für ungerade Zahlen x terminiert nicht. Daher ist f = { (2x, 0) | x ∈ N } . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 32 Da die ungeraden natürlichen Zahlen im Urbildbereich von f nicht abgebildet werden, ist f zwar eine partielle, aber keine totale Funktion. Es werden im folgenden noch weitere Beispiele für die in der Definition 2.4 eingeführten Begriffe diskutiert. Beispiel 2.6 1.) Die Teilerrelation δN aus Beispiel 2.4 ist weder eine Funktion noch eine linkseindeutige Relation, denn jede Zahl m ist Teiler vieler Zahlen m, 2m, 3m, . . . (daher ist δN keine partielle Funktion), und eine Zahl hat im allgemeinen mehr als einen Teiler (daher ist δN keine linkseindeutige Relation). So hat etwa 60 die Teiler 1,2,3,4,5,6,10,12,15,20,30,60. 2.) Es sei A = B = { 1, 2, 3 }, und (a) (b) (c) R1 = { (1, 2), (2, 3), (3, 1) } R2 = { (1, 1), (2, 1) } R3 = ∅ R1 ist eine totale Funktion und eine linkseindeutige Relation. R2 ist eine partielle Funktion. Sie ist nicht total, da 3 nicht abgebildet wird und keine linkseindeutige Relation, da 1 zwei Urbilder hat, nämlich 1 und 2. R3 nennt man auch eine leere Relation. Sie ist in diesem Beispiel eine partielle Funktion und eine linkseindeutige Relation. Wäre auch die Urbildmenge A leer, so wäre R3 sogar eine totale Funktion. 3.) Es sei A = B = R die Menge der reellen Zahlen, und (a) (b) (c) R1 = { (x, y) | y = x2 } ⊆ A×B 2 R2 = { (x, y) | x = √ y } ⊆ A×B R3 = { (x, y) | y = x + 1 } ⊆ A × B R1 ist eine totale Funktion von R nach R, allerdings keine linkseindeutige √ √ Relation, denn jede positive Zahl x hat die beiden (verschiedenen) Urbilder x und − x. R2 ist keine partielle Funktion (und damit insbesondere auch keine totale Funktion), √ positive √ denn jedes x steht mit zwei (verschiedenen) Elementen in Relation, nämlich mit x und − x. R2 ist jedoch eine linkseindeutige Relation, und es gilt R2−1 = R1 . Es bleibt R3 zu untersuchen: R3 ist eine partielle Funktion mit dem Definitionsbereich Dom (R3 ) = { x ∈ R | x ≥ −1 }. Da reelle Zahlen x < −1 nicht abgebildet werden, ist R3 keine totale Funktion. Sie ist zudem eine linkseindeutige Relation, denn kein Element des Bildbereichs hat zwei Urbilder. Hierbei beachte man, daß der Graph der positiv genommenen Wurzelfunktion streng monoton wächst, und daß die negative Wurzel ausgeschlossen ist! Da die (totalen) Funktionen so wichtig sind, werden sie in einem eigenen Abschnitt gesondert behandelt. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 33 2.2 Funktionen. Funktionen wurden bereits im vorigen Abschnitt 2.1 definiert. Künftig werden Funktionen generell mit den Buchstaben f, g, h, . . . bezeichnet. Schränkt man den Urbildbereich A einer partiellen Funktion auf ihren Definitionsbereich Dom (f ) ein, so wird jedem Element a ∈ Dom (f ) gemäß Definition 2.2 genau ein Element b ∈ B zugeordnet. Dafür schreibt man auch f (a) = b . Anstelle der bisher verwendeten Schreibweise f ⊆ A × B ist auch die Symbolik f : A B für eine partielle Funktion f und f : A→B für eine totale Funktion f gebräuchlich. In einigen Fällen ist es sinnvoll, eine Notation für die Menge aller Funktionen von A nach B zu verwenden. Dafür hat man die folgende Schreibweise. Mit A B wird die Menge aller partiellen Funktionen von A nach B bezeichnet, während A → B für die Menge aller totalen Funktionen von A nach B steht. Offensichtlich gilt (A → B) ⊆ (A B) . Einige spezielle Funktionen sind: • id : A → A • c : A→B • ∅ : A→B ∀ x ∈ A : id(x) = x mit mit ∀ x ∈ A : c(x) = c (Identitätsabbildung) (Konstante Funktion) (Leere Funktion) Totale Funktionen sind aufgrund ihrer Definition dadurch ausgezeichnet, daß jedem Urbild genau ein Bild zugeordnet wird. Es gibt nun noch weitere Eigenschaften, die einige Funktionen vor anderen auszeichnen. Definition 2.5 (Injektive, surjektive und bijektive Funktionen) 1.) Eine Funktion f : A B heißt injektiv (oder eineindeutig oder eine Injektion), falls gilt: ∀ a1 , a2 ∈ Dom (f ) : (f (a1 ) = f (a2 ) =⇒ a1 = a2 ) . 2.) Eine Funktion f : A falls gilt: B heißt surjektiv (oder Funktion auf B oder eine Surjektion), ∀ b ∈ B ∃ a ∈ Dom (f ) : f (a) = b . 3.) Eine Funktion f : A surjektiv ist. B heißt bijektiv (oder eine Bijektion), falls sie injektiv und Eine Injektion ist also eine partielle Funktion, die zusätzlich auch eine linkseindeutige Relation darstellt. Eine Surjektion wiederum ist eine partielle Funktion auf B, d.h. jedes Element aus B wird durch Abbilden unter der Funktion erreicht. Man spricht auch von einer rechtstotalen Abbildung. Zur Veranschaulichung dienen die folgenden Beispiele. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 34 Beispiel 2.7 √ 1.) Die partielle Funktion f (x) = x + 1 aus Beispiel 2.6 ist eine injektive partielle Funktion. Als (totale) Funktion von ihrem Definitionsbereich { x ∈ R | x ≥ −1 } in ihren Wertebereich { y ∈ R | y ≥ 0 } ist sie sowohl injektiv als auch surjektiv, also insgesamt eine bijektive Funktion. 2.) Es sei f : R → R definiert durch x für x≥0 f (x) = |x| := −x für x<0 f nennt man die Betragsfunktion. f ist weder injektiv noch surjektiv, denn alle positiven Zahlen y aus dem Bildbereich von f haben zwei Urbilder (nämlich x = y und x = −y), und nicht alle Elemente des Bildbereichs werden auch ’erreicht’: die negativen Zahlen haben keine Urbilder. In Definition 2.3 wurde das Konzept der Umkehrrelation eingeführt. Es soll jetzt untersucht werden, inwieweit sich das Prinzip der Umkehrung auf Funktionen übertragen läßt. Da jede Funktion f insbesondere auch eine Relation ist, existiert auch immer die Umkehrrelation f −1 . Der folgende Satz beantwortet die Frage, wann die Umkehrrelation sogar wieder eine Funktion ist. Satz 2.2 (Charakterisierung der Existenz einer Umkehrfunktion) Es sei f eine Funktion von A nach B. Die Umkehrrelation f −1 ist genau dann wieder eine partielle Funktion, wenn f injektiv ist. Beweis: Wir erhalten nacheinander: f −1 ist eine partielle Funktion ⇐⇒ ⇐⇒ ⇐⇒ ∀ a1 ∈ A , a2 ∈ A , b ∈ B : (b, a1 ) ∈ f −1 ∧ (b, a2 ) ∈ f −1 =⇒ a1 = a2 ∀ a1 ∈ A , a2 ∈ A , b ∈ B : (a1 , b) ∈ f ∧ (a2 , b) ∈ f =⇒ a1 = a2 ∀ a1 ∈ A , a2 ∈ A , b ∈ B : f (a1 ) = b ∧ f (a2 ) = b =⇒ a1 = a2 f ist eine injektive Funktion Hierbei wurde Definition 2.4 (1.), Definition 2.3 und Definition 2.5 (1.) angewendet. −1 Ist eine partielle Funktion f : A B injektiv, so nennt man die Funktion f auch die Umkehrfunktion von f . Man beachte, daß die Schreibweise f −1 nicht mit der Kurzschreibweise x−1 = x1 bei reellen Zahlen x verwechselt werden darf. Die nun folgenden Untersuchungen zeigen aber, daß dennoch eine gewisse Ähnlichkeit diese Notation für eine Umkehrfunktion rechtfertigt. Ist nämlich (in der Relationenschreibweise) (a, b) ∈ f bei einer injektiven Funktion f , so gilt auch (b, a) ∈ f −1 . Wird nun b als f (a) und a als f −1 (b) geschrieben, so kann man die Eigenschaften einer Umkehrfunktion folgendermaßen zusammenfassen: Satz 2.3 Ist f eine injektive Funktion, so gilt: ∀ a ∈ Dom (f ) : f −1 (f (a)) = a , ∀ b ∈ Ran (f ) : f (f −1 (b)) = b . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 35 Die erste Identität in diesem Satz ergibt sich beispielsweise unmittelbar aus f −1 (f (a)) = f −1 (b) = a. Das ’Hintereinanderausführen’ einer Funktion und ihrer Umkehrfunktion ergibt somit jeweils die Identitätsfunktion, eingeschränkt auf die jeweiligen Definitionsbereiche. In den folgenden Beispielen wird bei einigen Funktionen untersucht, ob eine Umkehrfunktion existiert und wenn ja, wie diese aussieht. Beispiel 2.8 1.) Die Funktion f : Z→N, f (z) := 2z − 1 −2z für für z>0 z≤0 ist bijektiv. Nach Satz 2.2 existiert zu f eine Umkehrfunktion f −1 : N → Z. Diese Umkehrfunktion ist durch −n/2 falls n gerade −1 f (n) = (n + 1)/2 falls n ungerade gegeben. √ 2.) Es sei f : R → R definiert durch f (x) := x + 1. In Beispiel 2.6 wurde bereits die Injektivität von f erwähnt. Die Umkehrfunktion f −1 : { y|y ≥ 0 } → { x|x ≥ −1 } berechnet man formal durch Auflösen nach x. Es ergibt sich dann f −1 (y) = y 2 − 1. Umkehrfunktionen werden nun aber meist wieder als Funktionen mit der unabhängigen Variable x und der abhängigen Variable y notiert. Dafür muß man nach Berechnung einer Umkehrfunktion noch die Bezeichnungen von x und y vertauschen. In diesem Sinne ergibt sich hier f −1 (x) = x2 −1 für x ≥ 0. 3.) Bei der Cäsarchiffre werden die Buchstaben eines Alphabets auf den jeweiligen um k Positionen im Alphabet folgenden Buchstaben abgebildet. Gelangt man bei der Verschiebung über das Ende des Alphabets hinaus, so beginnt man die Zählung einfach wieder mit dem ersten Buchstaben des Alphabets. Legt man im deutschen Alphabet die Zählung bei 0 für A, 1 für B usw. bis 25 für Z fest, so kann für k eine beliebige natürliche Zahl mit 1 ≤ k ≤ 25 gewählt werden. Steht n ∈ {0, 1, 2, . . . , 25} für einen Buchstaben des Alphabets, so wird dieser Buchstabe mit der Abbildung fk : { 0, 1, 2, . . . , 25 } → { 0, 1, 2, . . . , 25 } , fk (n) := n + k mod 26 chiffriert. Der Modulo 26 Operator wirkt dabei in der folgenden Weise auf eine ganze Zahl x: x . x mod 26 := min{a : a ∈ N ∧ 26|(x − a)} = x − 26floor 26 So wird mit k = 4 das Wort ’GEIZ’ zu ’KIMD’ chiffriert. Eine Abbildung, die einen Text chiffriert, muß umkehrbar sein; anderenfalls kann der Empfänger der Nachricht nicht mehr auf den Klartext schließen. Die Umkehrabbildung zur bijektiven Cäsarchiffre fk lautet: fk−1 : { 0, 1, 2, . . . , 25 } → { 0, 1, 2, . . . , 25 } , fk (m) := m − k mod 26 . 4.) Es sei f : {1, 2, 3} → {1, 2} eine beliebige (totale) Funktion. Eine solche Funktion kann nicht injektiv sein, denn jedes Element aus {1, 2, 3} wird auf irgendeine Zahl aus {1, 2} abgebildet. Daher hat ein Bild zwei Urbilder, und eine Injektivität ist damit unmöglich. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 36 Wie oben dargelegt ergibt das Hintereinanderausführen einer Funktion f und ihrer Umkehrfunktion f −1 die Identitätsfunktion. Dieses Hintereinanderausführen oder ’Komponieren’ von Funktionen ist generell eine wichtige Operation. Daher wird sie formalisiert: Definition 2.6 (Verkettung von Funktionen) Es seien f : A B und g : B C Funktionen. Dann heißt die Funktion h:A C : h(a) = g(f (a)) die Komposition oder Verkettung der Funktionen f und g. Anstelle der Schreibweise mit dem Funktionssymbol h ist auch die Notation (g ◦ f )(a) = g(f (a)) gebräuchlich. Die Sprechweise für die Komposition ist ’g verkettet mit f ’ oder ’g nach f ’. Offensichtlich gilt: Dom (g ◦ f ) = {a | a ∈ Dom (f ) ∧ f (a) ∈ Dom (g)} ⊆ Dom f . Im Spezialfall einer Verkettung einer Funktion f : A A mit sich selbst schreibt man: f 0 = id , f n = f ◦ f n−1 (n ≥ 1) . Wie sich die Abbildungseigenschaften Injektivität, Surjektivität, Bijektivität von Funktionen auf die verketteten Funktionen übertragen, zeigt der folgende Satz. Satz 2.4 (Eigenschaften verketteter Funktionen) Es seien f : A B und g : B C partielle Funktionen. Dann gilt: 1.) Sind f und g injektiv, so ist auch g ◦ f injektiv. 2.) Sind f und g sogar totale Funktionen und surjektiv, so ist auch g ◦ f eine totale Funktion und surjektiv. 3.) Sind f und g sogar totale Funktionen und bijektiv, so ist auch g ◦f eine totale Funktion und bijektiv. 4.) Ist g ◦ f eine bijektive Funktion, so ist g surjektiv und f injektiv. 5.) Sind idA : A → A und idB : B → B die Identitätsabbildungen, so gilt f ◦ idA = f = idB ◦ f . 6.) Ist f injektiv, so gilt f ◦ f −1 = idRan(f ) und f −1 ◦ f = idDom(f ) . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 37 Der Beweis der einzelnen Aussagen dieses Satzes besteht lediglich im Anwenden der Definitionen sowie einiger obenstehender Ergebnisse. Wir zeigen exemplarisch nur 1.) und 6.). Für 1.) setzt man nur die Injektivität der Funktionen f und g voraus und findet: g(f (x1 )) = g(f (x2 )) =⇒ f (x1 ) = f (x2 ) =⇒ x 1 = x2 (x1 , x2 ∈ A) . In 6.) garantiert die Injektivität von f die Existenz von f −1 . Es bleibt zu zeigen, daß die jeweiligen Definitionsbereiche der Identitätsabbildungen korrekt angegeben sind. Im Falle f ◦ f −1 besteht wegen f ◦f −1 (x) = f (f −1 (x)) der Definitionsbereich der verketteten Funktion aus dem Wertebereich von f , da die Abbildung f −1 zuerst ausgeführt wird. Das Zwischenergebnis z = f −1 (x) liegt im Definitionsbereich von f ; daher kann anschließend die Abbildung f (z) ausgeführt werden. Im Falle f −1 ◦ f (x) = f −1 (f (x)) ist es umgekehrt: die Funktion f wird zuerst ausgeführt. Daher besteht der Definitionsbereich der verketteten Funktion auch genau aus dem Definitionsbereich von f . Eine unmittelbare Folgerung aus Punkt 4 in Satz 2.4 ist das folgende Resultat. Korollar 2.1 Es seien f : A → B und g : B → A Funktionen mit f ◦ g = idB und g ◦ f = idA . Dann sind f und g beide bijektiv, g ist die Umkehrfunktion zu f und f die Umkehrfunktion zu g. Wir greifen noch einmal das dritte Beispiel aus Beispiel 2.8 auf und verallgemeinern es: Beispiel 2.9 Es sei A ein Alphabet. Man stelle sich etwa alle Zeichen auf der Tastatur eines Computers zu einer Menge zusammengefaßt vor: A = { a, b, c, . . . , z, A, B, . . . , Z, 0, 1, . . . , 9, +, −, ?, . . . , } . Die Menge aller Worte, die man über diesem Alphabet bilden kann, bezeichnet man mit A∗ . Es ist also A∗ := { x1 x2 . . . xn | xj ∈ A (j = 1, . . . , n) ∧ n ≥ 0 } . Nun sei K ⊆ A∗ die Menge aller Klartexte, die ein Sender von Nachrichten über einen Kanal schicken kann. Damit die Übertragung sicher ist, werden alle zu übermittelnden Texte t ∈ K mit einer Funktion encrypt : K → C verschlüsselt. Dabei bezeichnet C die Menge aller resultierenden Chiffretexte. Damit ein legitimierter Empfänger dieser Botschaften die Nachrichten wieder entschlüsseln kann, braucht er eine Funktion decrypt : C → K , für die gilt (decrypt ◦ encrypt)(t) = t . Wegen der in Satz 2.4 aufgeführten Eigenschaften von verketteten Funktionen ist dies möglich, falls decrypt = encrypt −1 gilt. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 38 2.3 Spezielle Funktionen in der Informatik. In der Informatik interessiert man sich für spezielle Funktionen. So werden wir in diesem Abschnitt unter anderem eine formale Definition der Menge aller Worte über einem Alphabet kennenlernen. Dies geschieht mit dem Begriff der Folge. Weiterhin sind in der Informatik Funktionen interessant, deren Bildbereich aus nur zwei Elementen besteht. Diesen Bildbereich kann man dann als Menge der zwei Wahrheitswerte ’wahr’ und ’falsch’ interpretieren. Ein Beispiel hierfür ist etwa die Funktion contains : A∗ × A∗ → { ’wahr’, ’falsch’ } , die folgendermaßen definiert ist: contains(t, s) liefert genau dann ’wahr’, wenn die Zeichenkette t in der Zeichenkette s vorkommt. Hierbei bezeichnet A∗ die Menge aller Worte über dem Alphabet A. Für das Alphabet A aus Beispiel 2.9 ist so etwa contains(IGEL, SIEGEL) = ’wahr’ , contains(IGEL, VOGEL) = ’falsch’ . Solche Funktionen, deren Bildbereich die Menge der beiden Wahrheitswerte ist, werden auch Prädikate genannt. Anstelle von ’falsch’ bzw. ’wahr’ schreibt man manchmal auch 0 bzw. 1; dann ist {0, 1} die Menge der Wahrheitswerte. Mit I werde nun eine sog. Indexmenge bezeichnet. Hierunter versteht man eine Menge, mit der man Elemente einer anderen Menge D in gewisser Weise nummerieren kann. Diese Nummerierung wird dann durch eine Abbildung s von der Indexmenge I in die Menge D vermittelt, deren Elemente man mittels I abzählen will: s : I→D. Im einfachsten Fall besteht I aus den ersten natürlichen Zahlen, etwa I = {0, 1, 2, . . . , n}, oder es ist I = N. Ist D die Menge der geraden natürlichen Zahlen, D := { 0, 2, 4, 6, 8, . . . } , so wählt man I = N und zählt die geraden Zahlen in D mit der Abbildung s(i) = 2 · i ab, wobei i dann alle Elemente aus den natürlichen Zahlen durchläuft. Statt s(i) ist auch die Schreibweise si gebräuchlich, wobei i dann der Index des Elementes si genannt wird. Ein und dasselbe Element aus D kann unter einer Abzählung s unterschiedliche Indices haben, denn s muß nicht zwingend injektiv sein. In einem solchen Fall wird ein Element aus D mehrfach gezählt. Wie bereits oben bei der Abzählung aller geraden natürlichen Zahlen mittels si = 2·i angedeutet wird der Wertebereich {si |i ∈ I} der Abbildung s im allgemeinen durch einen formalen Term angegeben. So werden alle geraden bzw. alle durch 7 teilbaren natürlichen Zahlen durch { 2i | i ∈ N } bzw. { 7i | i ∈ N } nummeriert und aufgezählt. In diesem Sinne ist 0 die erste der durch 7 teilbaren Zahlen, 7 die zweite, 14 die dritte usw.1 Ein wichtiger Spezialfall ist die endliche Indexmenge I = {0, 1, 2, . . . , n − 1} für eine natürliche Zahl n ≥ 0. 1 Es sei daran erinnert, daß N = { 0, 1, 2, 3, . . . } die Null enthält. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 39 Definition 2.7 (Endliche Folgen) Für ein n ≥ 0 versteht man unter einer endlichen Folge von Elementen einer Menge D eine Abbildung s : { 0, 1, 2, . . . , n − 1 } −→ D . In diesem Fall heißt n die Länge von s. Sie wird mit |s| bezeichnet. Die Elemente aus dem Wertebereich Ran (s) = {s0 , s1 , . . . , sn−1 } der endlichen Folge nennt man die Einträge von s. Man beachte, daß in dieser Definition n = 0 gewählt werden darf. Es kann also auch der Fall einer leeren Indexmenge I eintreten, was in der Praxis nicht selten geschieht. Dann nennt man s die leere Folge. Eine Kurzschreibweise für eine Folge s der Länge n ist s = (s0 , s1 , s2 , . . . , sn−1 ) . Beispiel 2.10 1.) Die monatlichen Umsätze eines Unternehmens innerhalb eines halben Jahres stellen eine Folge der Länge 6 von reellen Zahlen dar, etwa s = (1200.00 , 1311.50 , 1550.60 , 342.00 , 0.00 , 1200.00) . 2.) Das Wort ’Mathematik’ ist eine Folge der Länge 10 über dem Alphabet A: s = (M, a, t, h, e, m, a, t, i, k) . Selbstverständlich können Elemente auch mehrfach in einer Folge vorkommen: etwa die Zahl 1200.00 im ersten Beispiel und der Buchstabe a im zweiten. Definition 2.8 (Unendliche Folgen) Eine unendliche Folge von Elementen aus D ist eine Abbildung s : N → D. Die Elemente aus dem Wertebereich Ran (s) = {si |i ∈ N} der unendlichen Folge nennt man die Einträge von s. Eine unendliche Folge s notiert man auch mit s = (s0 , s1 , s2 , . . . ) . Eine unendliche Folge ist z.B. die Folge (2, 3, 5, 7, 11, 13, 17, . . . ) aller Primzahlen (wobei die Unendlichkeit dieser Folge schon in der Antike eingesehen wurde). Ein anderes Beispiel ist die unendliche Folge aller Nachkommastellen der rationalen Zahl 71 : (1, 4, 2, 8, 5, 7, 1, 4, 2, 8, 5, 7, 1, 4, 2, 8, 5, 7, . . . ) . In diesem Fall kommt jede der Zahlen 1,2,4,5,7,8 unendlich oft in der Folge vor. Die Menge {1, 2, 4, 5, 7, 8} aller bei den Nachkommastellen vorkommenden Ziffern ist also endlich; die mit ihnen gebildete Folge ist unendlich! Wir benötigen noch einige weitere Schreibweisen. Mit Dn wird die Menge aller Folgen der FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 40 Länge n über der Menge D bezeichnet. So ist in Beispiel 2.10: s ∈ R6 (Punkt 1.) und s ∈ A10 (Punkt 2.). Außerdem steht für spätere Anwendungen [ [ D∗ := { Dj | j ∈ N } = Dn (2.1) n≥0 für alle endlichen Folgen mit Elementen aus D, und [ [ D+ := { Dj | j ∈ N ∧ j ≥ 1 } = Dn (2.2) n≥1 bezeichnet alle endlichen und nichtleeren Folgen mit Elementen aus D. In der Mathematik kommt es oft vor, daß man zwei Mengen miteinander identifiziert, wenn es zwischen ihnen eine Bijektion gibt. Diese (quasi) Gleichsetzung beruht auf folgendem Satz: Satz 2.5 Wenn es eine Bijektion zwischen zwei Mengen gibt, so sind die Mengen bis auf Umbenennung ihrer Elemente gleich. Mit diesem Satz kann man beispielsweise die Isomorphie zwischen den Mengen D2 und D×D zeigen; eine Bijektion φ : D2 → D × D ist durch φ(s) = s(0), s(1) gegeben, wobei wir oben die Kurzschreibweise s0 für s(0) und entsprechend s1 für s(1) eingeführt haben. Ist X eine endliche Menge und bezeichnet |X| die Anzahl der Elemente in X, so hat man aufgrund von Satz 2.5 auch die wichtige Beziehung |X n | = | |X × ·{z · · × X} | = |X|n (2.3) =n für jede natürliche Zahl n. Für ein anderes Beispiel zu Satz 2.5 betrachten wir die drei Mengen N = 0, 1, 2, 3 . . . , n, n + 1, . . . , G = 0, 2, 4, 6, . . . , 2n, 2n + 2, . . . , U = 1, 3, 5, 7 . . . , 2n + 1, 2n + 3, . . . . Zwischen je zwei von ihnen gibt es eine Bijektion, nämlich φ1 : N → G , φ2 : N → U , φ3 : G → U , φ1 (n) = 2n , φ2 (n) = 2n + 1 , φ3 (g) = g + 1 . Das Zusammensetzen zweier endlicher Folgen zu einer neuen Folge ist eine wichtige Operation in der Informatik. Definition 2.9 (Die Konkatenation) Es seien s1 und s2 endliche Folgen der Länge n bzw. m. Unter der Konkatenation der Folgen s1 und s2 versteht man die Folge z der Länge n + m, die durch s1 (i) für 0 ≤ i ≤ n − 1 z(i) := s2 (i − n) für n ≤ i ≤ n + m − 1 definiert ist. Die Konkatenation von s1 und s2 wird mit concat(s1 , s2 ) oder nur mit s1 s2 bezeichnet. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 41 Die Konkatenation kommt bei der Bearbeitung von Zeichenketten in Computern vor. Auf der Menge A∗ der Wörter über einem Alphabet A etwa ergibt die Funktion concat : A∗ × A∗ → A∗ : concat((H, a, l, l, o), (E, r, d, e)) = (H, a, l, l, o, E, r, d, e) . Die grundsätzlichen Eigenschaften der Konkatenation sind im folgenden Satz festgehalten, dessen Beweis aus einfachen Anwendungen der Definition 2.9 besteht. Satz 2.6 (Eigenschaften der Konkatenation) Es seien u, v und w endliche Folgen. Insbesondere bezeichne ε die leere Folge. Dann gilt: 1.) 2.) 3.) 4.) u(vw) = (uv)w uv = uw =⇒ v = w vu = wu =⇒ v = w εu = u = uε (Assoziativität der Konkatenation) (Links-Reduktion) (Rechts-Reduktion) (Neutrales Element) Man beachte, daß die Konkatenation nicht kommutativ ist! Es ist intuitiv klar, was eine endliche Menge ist; oben wurde dieser Begriff auch bereits benutzt. Das Konzept der Folge ermöglicht nun aber eine präzise Definition einer endlichen Menge. Definition 2.10 (Endliche, unendliche und gleichmächtige Mengen) Eine Menge A heißt endlich, wenn es eine natürliche Zahl n sowie eine Bijektion f : {0, 1, 2, . . . , n − 1} → A gibt. Alle anderen Mengen nennt man unendlich. Zwei Mengen A und B heißen gleichmächtig, wenn es eine Bijektion f : A → B gibt. Gibt es also eine Bijektion von {0, 1, 2, . . . , n−1} nach A, so hat A offensichtlich n Elemente. Diesen Sachverhalt drückt man durch |A| = n aus. Zwischen zwei endlichen Mengen A und B existiert genau dann eine Bijektion, wenn |A| = |B| ist. In der Informatik spielt der Datentyp der Zeichenkette eine herausragende Rolle. Neben der Verarbeitung von Zeichenketten in Programmen sind Programmtexte selber auch Zeichenketten, die nach bestimmten Regeln (nämlich in der Syntax der Programmiersprache) aufgebaut sind. Schließlich bestehen letztlich alle Speicherinhalte in Computern aus Zeichenketten über dem Alphabet {0, 1}. Daher benötigt man mathematische Formalisierungen für die Notation von Symbolfolgen. Hier kann man das Konzept der Folgen nutzbringend anwenden. Es bezeichne im folgenden A irgendein Alphabet, also eine nichtleere Menge von Symbolen. A könnte beispielsweise aus allen Zeichen auf der Tastatur eines Computers bestehen, aber ebenso könnten in A auch nur alle griechischen Buchstaben {α, β, γ, . . . } vorkommen. Definition 2.11 (Wörter) Ein Wort der Länge n über einem Alphabet A ist eine Folge der Länge n über A. Unter Verwendung der für (2.1) eingeführten Schreibweise (mit A anstelle von D) besteht dann die Menge An aus allen Worten der Länge n. Vereinigt man alle Mengen An zur Menge A∗ , [ A∗ := An , n≥0 FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 42 so kommen in dieser Menge A∗ alle möglichen (endlichen) Worte über dem Alphabet A vor (siehe auch Beispiel 2.9). Ist w ein Wort der Länge n über A, so schreibt man statt w = (w0 , w1 , . . . , wn−1 ) auch kürzer w = w0 w1 . . . wn−1 . So wird die Folge w, die aus den Buchstaben ’M’, ’a’, ’t’, ’h’, ’e’, ’m’, ’a’, ’t’, ’i’, ’k’ aus A besteht, zum Wort ’Mathematik’ aus A∗ . Wendet man nun die Konkatenation auf die drei Worte ’Mathematik’, ’ ist’, ’ wichtig’ aus A∗ an, so ergibt sich die Zeichenkette ’Mathematik ist wichtig’ (ebenfalls aus A∗ ). Man beachte, daß das Leerzeichen ein legitimes Symbol ist. Alle bekannten Begriffe bei der Zusammensetzung von Worten können nun formalisiert werden. Definition 2.12 (Präfix, Suffix, Infix) 1.) Ein Wort p heißt Präfix eines Wortes w, wenn w = px für ein Wort x ∈ A∗ gilt. 2.) Ein Wort s heißt Suffix eines Wortes w, wenn w = xs für ein Wort x ∈ A∗ gilt. 3.) Ein Wort t heißt Infix eines Wortes w, wenn w = xty für zwei Worte x, y ∈ A∗ gilt. Ein Infix wird auch als Teilwort (engl. substring) bezeichnet. ’Haus’ ist Präfix des Wortes ’Haustür’ ’schloss’ ist Suffix des Wortes ’Türschloss’ ’tür’ ist Infix des Wortes ’Haustürschloss’ Eine andere wichtige Definition ist Definition 2.13 (Sprache) Es sei A ein Alphabet. Jede Teilmenge von A∗ heißt eine Sprache über A. So ist also {a, b, abba} ⊂ A∗ eine endliche Sprache über dem Alphabet A = {a, b}. Hingegen ist L := {a, aa, aaa, aaaa, . . . } eine unendliche Sprache über dem Alphabet A = {a}. 2.4 Äquivalenzrelationen. In diesem Abschnitt wird ein mathematisches Konzept vorgestellt, das nur auf dem Begriff der Relation basiert. Allerdings kommt es auch im Zusammenhang mit Funktionen zum Einsatz. Die Problematik soll zunächst das folgende Beispiel verdeutlichen: In Computern werden Zahlen vom Typ FLOAT oder DOUBLE verwaltet. Mathematisch gesehen handelt es sich darum, rationale Zahlen zu verwalten. Rechnerintern ergibt sich also das Problem des Umgangs mit solchen rationalen Zahlen. Also fragen wir nach den Bestandteilen dieser Objekte: Geht man von den oben genannten technischen Datentypen aus, so bestehen die rationalen Zahlen aus einem ganzzahligen Anteil und den Nachkommastellen (3,1415 = 3 + 0,1415). Man kann diese Zahlen aber auch anders darstellen, etwa durch eine Mantisse und einen Exponenten: 3, 1415 = exp(1 + ln(3, 1415) − 1) = exp(1 + 0, 144700) . Eine dritte Möglichkeit besteht darin, rationale Zahlen als Paare der Menge Z×Z anzusehen. Ein Paar (a, b) stellt dabei den Bruch ab dar. Also repräsentiert die erste Komponente in (a, b) FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 43 den Zähler, die zweite Komponente den Nenner der rationalen Zahl. Diese dritte Möglichkeit der Darstellung als Paar (a, b) soll jetzt genauer untersucht werden. Die Programmbibliothek zur Verwaltung der rationalen Zahlen muß wissen, wie man in dieser Darstellung zwei solche Zahlen addiert, subtrahiert, multipliziert, usw. Die Regeln hierfür sind ziemlich einfach: (a, b) + (c, d) = (a, b) − (c, d) = (a, b) · (c, d) = (a, b) : (c, d) = (ad + bc, bd) (ad − bc, bd) (ac, bd) (ad, bc) (Addition) (Subtraktion) (Multiplikation) (Division) Statt des geordneten Paares (a, b) wird im folgenden auch wieder die bekannte Schreibweise a verwendet. Nach den eben festgelegten Rechenvorschriften ergibt sich nun zum Beispiel b 1 1 6 −3 2 −6 + = und · = . 2 4 8 4 −3 −12 Diese Darstellung der Rechenergebnisse ist etwas unbefriedigend, denn man hätte die Resultate doch lieber in der gekürzten Form (also 34 bzw. 12 ) ausgegeben. Es ist also die Festlegung einer weiteren Operation erforderlich, die die Resultate in der gekürzten Form auswirft. Nun kann man einen Bruch (a, b) kürzen, indem man Zähler und Nenner durch den größten gemeinsamen Teiler (’ggT’) von a und b teilt. Dabei gehen wir von folgender Konvention aus: 1.) Es ist −ggT (|a|, |b|) , falls a < 0 ∧ b < 0 ggT (a, b) = ggT (|a|, |b|) , sonst Der ggT von a und b wird also genau dann als eine negative Zahl ausgegeben, wenn sowohl a als auch b negativ sind. 2.) Der Nenner einer ausgegebenen Zahl ist stets größer als Null. Sei Z∗ := Z\{0}. Es werden nun zwei Funktionen f : Z×Z∗ → Z×Z∗ und e : Z×Z∗ → Z×Z∗ definiert: a b , f (a, b) := , ggT (a, b) ggT (a, b) und (−a, −b) , falls a ≥ 0 ∧ b < 0 e(a, b) := (a, b) , sonst Indem man nun alle vier möglichen Vorzeichenverteilungen bei einem eingegebenen Bruch (±a, ±b) durchprobiert und die Konventionen von 1. und 2. berücksichtigt, sieht man ein, daß die Funktion k := e ◦ f das Gewünschte leistet: jeder Bruch wird gekürzt und mit positivem Nenner ausgegeben. Hierbei ist Ran (k) = Menge der gekürzten Brüche mit positivem Nenner . Der Bruch (−1, 2) gehört offensichtlich der Menge Ran (k) an. Wie sehen nun alle Tupel (a, b) ∈ Z2 aus, die mittels k auf das Tupel (−1, 2) abgebildet werden, für die also k(a, b) = (−1, 2) gilt? Man findet leicht: { (a, b) | k(a, b) = (−1, 2) } FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 44 = { (−1, 2), (−2, 4), (−3, 6), . . . , (1, −2), (2, −4), (3, −6), . . . } . (2.4) Hierbei wurde also formal die Menge in (2.4) mit dem Bruch −1 identifiziert, denn alle 2 dar. Die Elemente in Elemente dieser Menge stellen letztlich die gleiche rationale Zahl −1 2 der aufgeführten Menge sind also in gewisser Weise aneinander gekoppelt, bzw. sie stehen in einer Relation zueinander. Diese Relation wird SARA genannt (für: SAme RAtional). Zwei Brüche (a, b) und (c, d) stehen genau dann in Relation zueinander, wenn ihre Bilder unter der Abbildung k übereinstimmen: (a, b) SARA (c, d) ⇐⇒ k(a, b) = k(c, d) . Dieses Beispiel der Identifikation wertgleicher Brüche soll nun verallgemeinert werden. Hierzu benötigt man zunächst zwei neue Begriffe: Definition 2.14 (Kern einer Abbildung) Es sei f : A → B eine Funktion. Dann heißt die Relation, definiert durch ker (f ) = {(a, b) ∈ A × A | f (a) = f (b)} der Kern von f . Insbesondere ist ker (f ) ⊆ A × A. Der Kern der Abbildung f besteht also aus genau den Paaren von Elementen des Urbildraumes A, die von f auf dasselbe Element im Wertebereich abgebildet werden. Definition 2.15 (Äquivalenzrelationen) Eine Relation R auf einer Menge A heißt eine Äquivalenzrelation, falls die folgenden Eigenschaften erfüllt sind: (a, a) ∈ R (a, b) ∈ R =⇒ (b, a) ∈ R (a, b) ∈ R ∧ (b, c) ∈ R =⇒ (a, c) ∈ R (Reflexivität) (Symmetrie) (Transitivität) Offensichtlich ist für eine Funktion f die Relation ker (f ) eine Äquivalenzrelation. Weil f eine Funktion ist, wird jedes Element a ∈ A unter f abgebildet und es gilt f (a) = f (a). Daher ist ker (f ) reflexiv. Die Relation ist auch symmetrisch, denn aus f (a) = f (b) folgt ja auch sofort f (b) = f (a). Schließlich ist ker (f ) auch transitiv, denn aus f (a) = f (b) ∧ f (b) = f (c) ergibt sich f (a) = f (c). Im obigen Beispiel ist k = e ◦ f eine Funktion auf Z × Z∗ . Somit liegt mit SARA = ker (k) eine Äquivalenzrelation auf der Menge A = Z × Z∗ vor. Definition 2.16 (Äquivalenzklassen) Es sei R eine Äquivalenzrelation auf einer Menge A. Ferner sei x ∈ A ein beliebiges Element. Dann heißt die durch [x]R = {y | xRy} gegebene Menge [x]R die Äquivalenzklasse von x. Das Element x heißt ein Repräsentant der Klasse [x]R . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 45 Wenn keine Verwechslungen zu befürchten sind, läßt man den Index R auch weg und schreibt kurz [x] anstelle von [x]R . Äquivalenzklassen sind also gerade solche Mengen wie die in (2.4). Nun haben Äquivalenzklassen einige ausgezeichnete Eigenschaften. Um sie beschreiben zu können, benötigt man noch einen weiteren Begriff. Definition 2.17 (Partition einer Menge) Es sei A eine Menge. Eine Sammlung C von Teilmengen von A mit den folgenden Eigenschaften 1.) ∀ C ∈ C : C 6= ∅ 2.) S ∀B, C ∈ C : (B ∩ C = ∅ ∨ B = C) 3.) C = A heißt eine Partition von A. Auch die Partition findet man im obigen Beispiel bei den Brüchen wieder: jeder Bruch ist bereits gekürzt oder kann noch gekürzt werden; folglich liegt jeder Bruch in einer Menge C von der Gestalt (2.4). Außerdem können zwei Brüche in unterschiedlichen Äquivalenzklassen niemals durch Kürzen zur gleichen rationalen Zahl führen. Daher sind je zwei Mengen B und C der Gestalt (2.4) entweder gleich oder disjunkt. Also bilden die Äquivalenzklassen der Relation SARA eine Partition von Z × Z∗ . Dabei werden Brüche, deren Nenner Null ist, von vorneherein ausgeschlossen, da sie als rationale Zahl keinen endlichen Wert haben. Damit ergibt die Äquivalenzrelation SARA eine Partition der Menge A = Z × Z∗ . Alle Brüche mit dem Zähler 0 gehören zur Äquivalenzklasse, in der auch der Bruch 0/1 vorkommt. Im allgemeinen Fall impliziert jede Äquivalenzrelation auch eine Partition, denn es gilt der folgende Satz. Satz 2.7 (Eigenschaften der Äquivalenzklassen) Es sei R eine Äquivalenzrelation auf einer Menge A. Dann gelten die beiden folgenden Aussagen: 1.) ∀ x, y ∈ A : (xRy ⇐⇒ [x] = [y]) 2.) Die Menge der Äquivalenzklassen von R bildet eine Partition von A. Es ist nicht schwer einzusehen, daß auch die Umkehrung von 2.) gilt: Jede Partition einer Menge A besteht aus den Äquivalenzklassen einer Äquivalenzrelation R auf A. Beweis: Zum Beweis der ersten Aussage seien x und y zwei beliebige Elemente aus A. ’=⇒’: Es gelte xRy. Es muß gezeigt werden, daß dann die Äquivalenzklassen von x und y gleich sind. Dazu sei z ∈ [x]. Aus der Definition 2.16 der Äquivalenzklasse ergibt sich dann xRz. Aufgrund der Symmetrie von R hat man auch zRx. Zusammen mit der Voraussetzung xRy und der Transitivität von R folgt zRy. Die erneute Anwendung der Symmetrie von R ergibt yRz, was z ∈ [y] bedeutet. Da z ein beliebiges Element aus [x] war, ist bisher [x] ⊆ [y] gezeigt worden. Vertauscht man jetzt die Rollen von x und y, so erhält man mit derselben Schlußweise auch die Inklusion [y] ⊆ [x], und daher insgesamt [x] = [y]. ’⇐=’: Hier wird [x] = [y] vorausgesetzt. Da R reflexiv ist, folgt yRy, mithin y ∈ [y] = [x]. Aus y ∈ [x] schließt man auf xRy, was zu zeigen war. Zum Beweis der zweiten Aussage müssen die Eigenschaften einer Partition aus Definition 2.17 nachgewiesen werden. zu 1.) Ist [x] eine Äquivalenzklasse, so ist [x] 6= ∅, da x ∈ [x] wegen der Reflexivität xRx. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 46 zu 2.) Hier ist zu zeigen, daß zwei Äquivalenzklassen [x] und [y] entweder disjunkt oder gleich sind, d.h.: [x] ∩ [y] 6= ∅ =⇒ [x] = [y] . (2.5) Unter der Voraussetzung [x] ∩ [y] 6= ∅ existiert ein Element z ∈ [x] ∩ [y], so daß also xRz und yRz gewährleistet sind. Da mit yRz wegen der Symmetrie von R auch zRy ist, folgt mit der Transitivität aus xRz und zRy dann xRy. Aufgrund der bereits bewiesenen ersten Aussage des Satzes hat man dann [x] = [y], was in (2.5) zu zeigen war. zu 3.) Jedes x ∈ A liegt wegen der Reflexivität von R in seiner eigenen Äquivalenzklasse: x ∈ [x]. Die Vereinigung aller Elemente aus allen Äquivalenzklassen umfaßt somit A. Äquivalenzklassen unterteilen also die Grundmenge A in disjunkte Teile. Man spricht dabei auch vom Abstrahieren auf übergeordnete Begriffe. So stellen die Äquivalenzklassen aus (2.4) genau alle rationalen Zahlen dar. Dabei sind die Brüche aus einer Äquivalenzklasse, etwa −1 −2 −3 , 4 , 6 , . . ., durch die Zusammenfassung in dieser Klasse auf das wesentliche abstrahiert 2 worden, nämlich auf einen ausgezeichneten Repräsentanten, hier auf den gekürzten Vertreter −1 in dieser Klasse. Bei Brüchen nennt man diesen Prozeß auch normalisieren. 2 Definition 2.18 (Quotientenmenge) Es sei R eine Äquivalenzrelation auf einer Menge A. Die Quotientenmenge A/R wird definiert durch A/R = {[x] | x ∈ A} . Die Quotientenmenge stellt also die Menge aller Äquivalenzklassen dar. Bei der Anwendung der Theorie der Äquivalenzrelationen auf den Kern einer Funktion ergibt sich der folgende wichtige Satz: Satz 2.8 Es sei f : A → B eine Funktion. Dann existiert eine bijektive Funktion h : A/ker (f ) → Ran (f ) von der Menge der Äquivalenzklassen von ker (f ) in den Wertebereich der Funktion f . Beweis: Man überzeugt sich zuerst davon, daß die Abbildung h : A/ker(f ) → Ran (f ) , h([x]) := f (x) eine Funktion ist. Es wird jede Äquivalenzklasse [x] abgebildet, und jede Klasse aus A/ker (f ) wird auch genau auf ein Element aus Ran (f ) abgebildet: Ist [x] = [y], so gilt einerseits h([x]) = f (x), andererseits h([x]) = h([y]) = f (y) aufgrund der Definition von h. Es ist nun f (x) = f (y) zu zeigen, damit der Klasse [x] auch genau ein Bild unter h zugeordnet wird2 Wegen [x] = [y] ist aber nach der ersten Aussage in Satz 2.7 (x, y) ∈ ker (f ), und das bedeutet aufgrund der Kerndefinition aber gerade f (x) = f (y). Die Funktion h ist surjektiv, denn da die Äquivalenzklassen von ker (f ) eine Partition von A 2 Man spricht hier auch von der Wohldefiniertheit der Abbildung h: Ihr Wert unter der Abbildung einer Äquivalenzklasse darf nicht davon abhängen, mit welchem ausgezeichneten Repräsentanten x oder y die Abbildung vorgenommen wird! FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 47 bilden, wird jeder Wert f (x) aus Ran (f ) erreicht, indem man zu jedem x ∈ A die zugehörige Äquivalenzklasse [x] unter h abbildet. h ist auch eine injektive Funktion, denn aus h([x]) = h([y]) folgt aufgrund der Definition von h dann f (x) = f (y), woraus sich aber (x, y) ∈ ker (f ) bzw. [x] = [y] ergibt. Damit ist h insgesamt als eine bijektive Funktion nachgewiesen. In Satz 2.8 wird der theoretische Hintergrund des oben begonnenen Beispiels bei der Normalisierung von Brüchen ausgedrückt: Es gibt eine bijektive Abbildung von der Menge aller Äquivalenzklassen (eine ist in (2.4) aufgeschrieben) in die Menge aller gekürzten Brüche Ran (k). Damit können diese beiden Mengen miteinander identifiziert werden. In diesem gleichsetzen. Sinne kann man die in (2.4) aufgeschriebene Menge mit der rationalen Zahl −1 2 Die Menge Q der rationalen Zahlen kann also nach Satz 2.8 als Q = (Z × Z∗ )/ker (k) mit Z∗ := Z \ {0} aufgefaßt werden, wobei sich die Elemente in Q und in (Z × Z∗ )/ker (k) nur durch unterschiedliche Notationen unterscheiden. Bezeichnet man mit [.] wieder die Äquivalenzklassen der Abbildung ker, so kann ein Element aus Q z.B. in der Form [(a, b)] geschrieben werden; man kann aber auch die Notation k((c, d)) (=normalisierte Fassung des Bruches (c, d)) für irgendein Element (c, d) aus [(a, b)] wählen. Dann kann man, wie oben bereits erwähnt, statt (a, b) noch ab schreiben, was ebenfalls nur eine Frage der Notation ist. Damit erhält man die rationalen Zahlen als einen neuen Vorrat von Zahlen, mit denen gerechnet werden kann. Satz 2.8 liegt auch dem folgenden Satz zugrunde, der in vielen theoretischen Betrachtungen eine Rolle spielt: Satz 2.9 (Dekomposition von Funktionen) Zu jeder Funktion f : A → B existiert eine surjektive Funktion g : A → A/ker (f ), eine bijektive Funktion h : A/ker (f ) → Ran (f ) und eine injektive Funktion k : Ran (f ) → B, so daß f gemäß f = k◦h◦g zerlegt werden kann. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 48 f A B - 6 g k ? h A/ker (f ) Beweis: - Ran (f ) Die drei Funktionen g, h und k werden folgendermaßen definiert: g : A → A/ker (f ) , h : A/ker (f ) → Ran (f ) , k : Ran (f ) → B , g(a) := [a]ker (f ) , h([x]) := f (x) , k(y) := y . Die Funktion g ordnet jedem Element a aus A die Menge derjenigen Elemente b aus A zu, die unter f ebenfalls den Wert f (a) annehmen: g(a) := { b ∈ A : f (b) = f (a) } . Die Funktion h ist die bijektive Abbildung aus Satz 2.8 , und die Funktion k ist eine sog. Einbettung von Ran (f ) in B. Diese Einbettung wird der Funktion h noch nachgeschaltet, weil die Funktion h als Abbildung von A/ker (f ) nach B nicht bijektiv wäre. Wir prüfen jetzt die Zerlegung f = k ◦ h ◦ g für jedes Element a ∈ A nach: k ◦ h ◦ g(a) = k ◦ h [a]ker (f ) = k(f (a)) = f (a) . g ist offensichtlich surjektiv, denn jede Äquivalenzklasse [a]ker (f ) kommt als Bild eines Elementes aus A unter g vor. k ist injektiv, weil die Identitätsabbildung immer injektiv ist. Es werden zum Abschluß dieses Kapitels noch zwei typische Beispiele für Äquivalenzrelationen angeführt. Beispiel 2.11 Ein Spiel mit zwei Würfeln besteht darin, die Summe der ’Augenzahlen’ beider Würfel nach einem Wurf zu bilden. Gewonnen hat, wer die höhere Augenzahl wirft. Daher ist es für jeden Spieler weniger interessant, wie sich eine Summe zusammensetzt, also ob z.B. die Zahl 10 durch eine Kombination aus zwei Fünfen oder aus einer Kombination aus 6 und 4 entstanden ist. Die Menge W := {1, 2, 3, 4, 5, 6} enthält alle möglichen Ergebnisse, die man mit einem Würfel erzielen kann. Die Ereignismenge A für das Werfen mit zwei Würfeln besteht dann aus dem cartesischen Produkt A = W × W . Da aber nur die Summe der Augenzahlen x + y eines Ereignisses (x, y) ∈ A interessiert, wird eine Funktion f : A → N durch f (x, y) := x + y FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 49 definiert. Die Relation ker (f ) = { ((x1 , y1 ), (x2 , y2 )) ∈ A2 | f (x1 , y1 ) = f (x2 , y2 ) } ermöglicht dann genau die Reduktion eines Wurfes auf das Wesentliche, nämlich auf die Summe der Augenzahlen. In diesem Zusammenhang hat man die Augenzahl abstrahiert. Folgendermaßen findet man in diesem Beispiel die oben eingeführten Begriffe wieder: • Äquivalenzklasse: Die Äquivalenzklassen zu einem bestimmten Würfelergebnis s sind alle Ereignisse (x, y) ∈ A, für die x + y = s ist. Z.B. stellt { (4, 6), (5, 5), (6, 4) } (2.6) die Äquivalenzklasse zu s = 10 dar. • Partition: Je zwei verschiedene Äquivalenzklassen sind auch disjunkt, denn sie sind ja gerade so definiert, daß zwei Würfe mit unterschiedlichen Summen auch in unterschiedlichen Klassen liegen. Die Vereinigung über alle möglichen Äquivalenzklassen enthält auch alle möglichen Ereignisse in A, weil jedem Wurf mit zwei Würfeln auch eine Augensumme zugeordnet ist. • Bijektion von der Quotientenmenge in den Wertebereich von f : Zu jeder möglichen Augensumme gehört genau eine Äquivalenzklasse. Wegen Ran (f ) = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } gibt es 11 Äquivalenzklassen. Die Funktion h : A/ker (f ) → Ran (f ) , h([(x, y)]) = f (x, y) = x + y bildet alle Äquivalenzklassen (gemäß Satz 2.8) auf den Wertebereich Ran (f ) von f ab. Diese Bijektion stellt die Abstraktion auf die Augenzahl dar, denn beispielsweise wird die gesamte Menge in (2.6) auf die Zahl 10 abgebildet und die Unterscheidung etwa zwischen (4, 6) und (5, 5) wird dabei herausgefiltert. Beispiel 2.12 Es sei m > 1 eine natürliche Zahl. Auf den natürlichen Zahlen N wird die Relation ’Kongruenz modulo m’ eingeführt: a ≡ b (mod m) ⇐⇒ ∃k ∈ Z : b − a = k · m . (gelesen: ’a ist kongruent b modulo m’) a steht also genau dann in Relation zu b, wenn die Differenz von a und b durch m teilbar ist, oder anders ausgedrückt, wenn a und b bei der Division durch m den gleichen Rest ergeben. Man rechnet leicht nach, daß die Kongruenz modulo m eine Äquivalenzrelation ist. Die Äquivalenzklassen bestehen aus den folgenden Mengen: 0 1 2 m−1 = = = .. . { 0, m, 2m, 3m, . . . } , { 1, m + 1, 2m + 1, 3m + 1, . . . } , { 2, m + 2, 2m + 2, 3m + 2, . . . } , = { m − 1, 2m − 1, 3m − 1, 4m − 1, . . . } . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 50 Man nennt hier die Äquivalenzklassen auch Restklassen. Die Abbildung f : N → {0, 1, 2, . . . , m − 1} ordne jeder natürlichen Zahl a den (eindeutig bestimmten) Rest aus der Menge {0, 1, 2, . . . , m − 1} bei der Division durch m zu. Man kann schreiben: h a i . f (a) := min { r | r ∈ N ∧ m teilt a − r } = a − m m Hierfür ist auch die Notation f (a) = a mod m gebräuchlich; das Symbol mod m fungiert hier als Operator. Die Kongruenzrelation modulo m besteht gerade aus dem Kern der Abbildung f (siehe Definition 2.14), sie wird also durch f erzeugt. Man hat daher N/ker (f ) = { 0, 1, 2, . . . , m − 1 } . Auf der Menge dieser Restklassen werden wieder die Operationen Addition, Subtraktion und Multiplikation definiert. Dies geschieht mittels a b := f (a b) , wobei jeweils für eine der Operationen +, − oder ∗ steht. Nun gilt für die bijektive Abbildung h aus Satz 2.8 zwischen den Restklassen und dem Wertebereich von f : h(a) = f (a) = a (0 ≤ a ≤ m − 1) . h ordnet also der Restklasse a genau die Zahl a zu. Daher läßt man beim Rechnen mit Restklassen den Strich über den Symbolen auch einfach weg. So schreibt man bei m = 12 z.B. 6 + 8 = 2 oder 8 − 9 = 11 oder 5 · 6 = 6. Auch in der Informatik spielt die Kongruenzrelation eine wichtige Rolle. Dort nimmt m z.B. oft den maximalen Wert eines Typs ganzer Zahlen an. Unter Umständen kommt ein Datentyp vor, mit dem 232 natürliche Zahlen darstellbar sind, nämlich { 0, 1, 2, . . . , 232 − 1 } . Hier ist dann m = 232 . Führt eine Rechnung aus diesem Bereich hinaus, so wird das Ergebnis ’modulo m’ ausgegeben, also z.B. 4294967294 + 3 = 1 . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 51 3 Induktion Induktion ist ein Konzept zur Definition von Mengen und Funktionen. Im Zusammenhang mit Mengen spricht man von induktiv definierten Mengen. Funktionen können dann rekursiv auf solchen Mengen definiert werden. Im Gegensatz zu den in Abschnitt 1.4 vorgestellten Möglichkeiten der Mengendefinition durch Aufzählen aller Elemente oder durch die Angabe einer definierenden Eigenschaft geht man bei der induktiven Definition anders vor: man benennt explizit die ’einfachsten Elemente’ und gibt dann Regeln an, wie ’kompliziertere Elemente’ aus den bereits erhaltenen Elementen erzeugt werden können. Dieses induktive Vorgehen wird zunächst anhand eines grundlegenden mathematischen Prinzips (des sog. Wohlordnungsprinzips) vorgestellt, das häufig auch als Beweisprinzip verwendet wird. 3.1 Einfache Induktion. Beim Beweisprinzip der einfachen Induktion geht man folgendermaßen vor: um eine Aussage A(n) über natürliche Zahlen n zu beweisen, versucht man zunächst, die Aussage nur für einen einfachen Fall zu zeigen. Das ist meist leicht, denn man muß nicht A(n) für alle natürlichen Zahlen n beweisen, sondern eventuell nur den Wahrheitsgehalt der Aussage A(0) nachprüfen. Danach verwendet man diese einfachen Ergebnisse (= wahre Aussagen), um komplexere Resultate zu erhalten. Dies geschieht dadurch, daß man Aussagen der Form A(x) ist wahr =⇒ A(y) ist wahr (3.1) beweist. Gehört x zu einem der bereits behandelten einfachen Fälle, für die die Aussage A(x) schon als wahr nachgewiesen ist, so erhält man durch (3.1) ein weiteres Element (nämlich y), für das die Aussage zutrifft. In vielen Fällen kann man diesen Induktionsschritt so strukturieren, daß man hiermit die Aussage A(n) für alle natürlichen Zahlen n bewiesen hat. Warum das tatsächlich funktioniert, soll jetzt theoretisch untermauert werden. Man benötigt dazu die folgende Aussage, die zwar intuitiv klar ist, aber dennoch eigentlich bewiesen werden müßte. Da wir das hier nicht tun können, wird die Aussage als ein Axiom aufgeführt, d.h. als ein unbegründetes Prinzip. Axiom 3.1 (Wohlordnungsprinzip für natürliche Zahlen) Jede nichtleere Teilmenge der natürlichen Zahlen hat ein kleinstes Element, d.h. formal: ∅= 6 A ⊆ N =⇒ ∃ k ∈ A ∀ n ∈ A : k ≤ n . Aus diesem Axiom gewinnt man eine Beweistechnik für Aussagen über natürliche Zahlen. Dies soll an einem historischen Beispiel demonstriert werden. Es handelt sich um eine Formel, die sich der junge Carl Friedrich Gauß (1777 - 1855) ausgedacht hat, als sein Rechenlehrer in der Schule die Aufgabe stellte, die Zahlen von 1 bis 100 zu addieren. Der Lehrer erwartete, daß die Schüler hiermit einige Zeit beschäftigt sind, doch Gauß präsentierte die Lösung 5050 nach wenigen Augenblicken. Er hatte nämlich die Zahlen von 1 bis 100 in der Form 1 2 3 ... 100 99 98 . . . 49 50 52 51 FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 52 aufgeschrieben. Nun kann man die Addition aller Zahlen von 1 bis 100 rasch durchführen: man addiere zunächst spaltenweise, was stets 101 ergibt und multipliziere anschließend mit der Anzahl 50 der Spalten. Also lautet das Ergebnis 50 · 101 = 5050. Will man nun allgemein die ersten n natürlichen Zahlen (für ein gerades n) addieren, so muß man offensichtlich die Summe n + 1 jeder Spalte mit der Anzahl n/2 der Spalten multiplizieren. Es wird nun gezeigt, daß diese Formel tatsächlich allgemeingültig ist und auch für ungerade natürliche Zahlen ihre Gültigkeit behält. Beispiel 3.1 Es sei n ∈ N mit n ≥ 1. Dann gilt n(n + 1) . (3.2) 2 Beweis: Es werde mit S die Menge aller natürlichen Zahlen bezeichnet, für die die Gleichung (3.2) falsch ist. Man nimmt nun S 6= ∅ an und führt einen Widerspruch herbei. Nach dem Wohlordnungsprinzip (Axiom 3.1) besitzt S ein kleinstes Element, das mit k bezeichnet wird. Offensichtlich ist k ≥ 2, denn für k = 1 ist die Aussage (3.2) mit n = k wahr. Da k außerdem das kleinste Element von S ist, ist die Aussage (3.2) auch wahr für k − 1. Es gilt also (k − 1)k . (3.3) 1 + 2 + 3 + · · · + (k − 1) = 2 Berechnet man nun die Summe der ersten k Zahlen, so erhält man 1 + 2 + 3 + ··· + n = (3.3) 1 + 2 + 3 + · · · + k = (1 + 2 + 3 + · · · + (k − 1)) + k = (k − 1)k +k 2 k2 + k k(k + 1) k 2 − k + 2k = = . 2 2 2 Hieraus folgt, daß die Aussage (3.2) doch wahr ist für n = k. Dies widerspricht aber der Konstruktion von k. Der Widerspruch beweist S = ∅, und daher ist die Aussage (3.2) wahr für alle natürlichen Zahlen n. = Aus diesem Beispiel kann man ein allgemeines Beweisprinzip ableiten. Insbesondere hat der Schritt von k − 1 nach k dazu geführt die Annahme zu widerlegen. Dies ist aber nur eine der ’Zutaten’ zu diesem Prinzip. Vielmehr wurde auch eine wichtige Voraussetzung angewendet, damit der erwähnte Schritt von k − 1 nach k überhaupt angewendet werden konnte. Hierfür war nämlich erforderlich, daß die Aussage zumindest für ein (einfaches) Element wahr ist (im obigen Beispiel die Zahl 1). Wäre dies nicht der Fall gewesen, wäre die Existenz der Zahl k − 1 nicht gesichert, denn es wäre dann k = 1 möglich gewesen und k − 1 = 0 wäre dann eine für k − 1 nicht erlaubte Belegung. Es ist also notwendig zu zeigen, daß die Aussage einerseits für k = 1 wahr ist und daß sie andererseits für k wahr ist, wenn sie es auch für k − 1 ist. Satz 3.1 (Prinzip der einfachen Induktion) Es sei A(n) eine Aussage über natürliche Zahlen. Wenn gilt: 1.) A(0) ist wahr; 2.) ∀ k > 0 : A(k − 1) ist wahr =⇒ A(k) ist wahr , so ist A(n) wahr für alle n ∈ N. Speziell heißt die Aussage in 1. der Induktionsanfang und die Hypothese in 2. die Induktionsvoraussetzung. Die Implikation in 2. wird Induktionsschluß oder auch Induktionsschritt genannt. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 53 Dieser Satz kann mit denselben Argumenten wie im Beweis des Beispiels 3.1 begründet werden. Man geht bei einem Induktionsbeweis also folgendermaßen vor: • Man beweise den Induktionsanfang. • Man wähle ein beliebiges k > 0 und setze voraus, daß die Aussage A(k − 1) wahr ist (Induktionsvoraussetzung). • Man beweise für dieses k unter Ausnutzung der Induktionsvoraussetzung, daß die Aussage A(k) wahr ist. Als Anwendungsbeispiel für das Prinzip der einfachen Induktion soll die zweite Aussage in Satz 1.6 bewiesen werden. Es wird dort behauptet, daß für eine Menge S bestehend aus n Elementen die zugehörige Potenzmenge 2n Elemente enthält: |℘(S)| = 2|S| = 2n . (3.4) Beweis: Es wird eine einfache Induktion über die Zahl n = |S| verwendet. Wir bezeichnen mit Sk eine Menge mit k Elementen. Induktionsanfang: Für k = 0 ist die Behauptung wahr, denn dann ist S0 = ∅ und ℘(S0 ) = {∅}. Also hat man |℘(S0 )| = 1 = 20 = 2|S0 | . Induktionsvoraussetzung: Für ein k > 0 gelte: |℘(Sk−1 )| = 2k−1 . (3.5) Induktionsschluß: Die hier zu zeigende Implikation lautet formal: |℘(Sk−1 )| = 2k−1 =⇒ |℘(Sk )| = 2k . Für die natürliche Zahl k aus der Induktionsvoraussetzung sei nun Sk eine Menge mit k Elementen. Wegen k > 0 ist Sk nicht leer, und man kann ein Element a ∈ Sk auswählen. Es wird nun die Menge T := { A | A ⊆ Sk \ {a} } untersucht. Gemäß Definition (1.2) ist T die Potenzmenge der Menge Sk \ {a}, also einer Menge bestehend aus k − 1 Elementen. Daher ist auf diese Situation die Induktionsvoraussetzung (3.5) anwendbar. Das ergibt: |T | = |℘(Sk \ {a})| = 2k−1 . (3.6) Wir benötigen eine weitere Menge: U := { A | A ⊆ Sk ∧ a ∈ A } . Nach Konstruktion sind die Mengen T und U disjunkt, denn jede Menge in U enthält das Element a, während a aber in keiner Menge aus T vorkommt. Nun ist aber ℘(Sk ) = T ∪ U , FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 54 und wegen T ∩ U = ∅ folgt mit Korollar 1.2 |℘(Sk )| = |T | + |U | . (3.7) Die Menge U kann formal auch anders geschrieben werden, nämlich als U = { A ∪ {a} | A ∈ T } . Hieraus liest man unmittelbar ab, daß die Mengen T und U gleichmächtig sind, also daß |T | = |U | ist. Damit ergibt sich aus (3.6) und (3.7): |℘(Sk )| = |T | + |U | = |T | + |T | = 2|T | = 2 · 2k−1 = 2k , womit die Aussage (3.4) bewiesen ist. In vielen Fällen möchte man Aussagen über natürliche Zahlen n beweisen, die erst für n ≥ n0 gelten und für n = 0, 1, 2, . . . n0 − 1 unter Umständen falsch sind. Hierbei ist n0 eine feste natürliche Zahl. Beispielsweise gilt die Aussage 100n < n! erst für n ≥ n0 = 269 und ist für n = 0, 1, . . . , 268 falsch. Um solche Typen von Aussagen zu beweisen, kann man eine Erweiterung des Induktionsprinzips verwenden. Satz 3.2 (Erweitertes Induktionsprinzip) Es sei A(n) eine Aussage über natürliche Zahlen. Wenn es eine Zahl n0 ∈ N gibt, so daß gilt: 1.) A(n0 ) ist wahr; 2.) ∀ k > n0 : A(k − 1) ist wahr =⇒ A(k) ist wahr , so ist A(n) wahr für alle n ≥ n0 . Der Beweis dieser Aussage kann mit Hilfe von Satz 3.1 erfolgen und wird hier nicht vorgeführt. Für n0 = 0 reduziert sich Satz 3.2 wieder auf die einfache Induktion. Insofern stellt dieser Satz eine Verallgemeinerung von Satz 3.1 dar. In vielen Fällen reicht auch dieses Prinzip nicht aus, denn für die Durchführung des Induktionsschlusses muß man häufig nicht nur wissen, daß die Aussage A(k − 1) wahr ist, sondern auch, daß die Aussage A(k) für alle k im Bereich k = n0 , n0 + 1, . . . , k − 1 richtig ist. Auch in diesem Fall kann man ein Induktionsprinzip formulieren: Satz 3.3 (Starkes Induktionsprinzip) Es sei A(n) eine Aussage über natürliche Zahlen. Wenn es eine Zahl n0 ∈ N gibt, so daß gilt: 1.) A(n0 ) ist wahr; 2.) ∀ k > n0 : A(j − 1) ist wahr für alle j mit n0 < j ≤ k =⇒ A(k) ist wahr , so ist A(n) wahr für alle n ≥ n0 . Auch diesen Satz kann man ähnlich wie den Satz 3.1 mit Hilfe des Wohlordnungsprinzips beweisen. Es folgt eine Anwendung des starken Induktionsprinzips. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 55 Beispiel 3.2 (Der Quicksort - Algorithmus) Dem Quicksort - Algorithmus wird eine endliche Folge s natürlicher Zahlen eingegeben, und er liefert als Rückgabe diese Folge aufsteigend sortiert. Die Vorgehensweise des Algorithmus besteht im Aufsplitten der Folge und dem rekursiven Anwenden des Aufsplittungsprinzips auf die Teile dieses Splits. Im Detail sieht das folgendermaßen aus: Es sei s = (s1 , s2 , . . . , sn ) eine (endliche) Folge natürlicher Zahlen.1 • Ist s die leere Folge, so wird s als Rückgabe geliefert. Ist die Folge s nicht leer, so wird ein beliebiges Element sj aus der Folge ausgewählt. • Es wird eine Folge sL (sj )sR (3.8) konstruiert. Dabei ist sL eine Folge, die aus allen Elementen von s ohne sj besteht, welche kleiner oder gleich sj sind. sR hingegen setzt sich aus allen Elementen von s zusammen, die größer als sj sind. Die Schreibweise in (3.8) ist als Konkatenation von Folgen zu verstehen, wobei die mittlere Folge (sj ) nur aus einem Element besteht. • Der Algorithmus wird jetzt jeweils für die Folgen sL und sR wiederholt. Das Ergebnis seien die Folgen s∗L und s∗R , wobei der Algorithmus s∗L und s∗R als aufsteigend sortierte Folgen aus sL bzw. sR gewonnen hat. • Es wird die Folge s∗L (sj )s∗R zurückgeliefert. Die Konstruktion der Folge in (3.8) geschieht durch lineares Analysieren der Folge und durch Vergleichen jedes Elementes mit sj . Die technischen Einzelheiten sind hier belanglos. So wird z.B. die Folge s = (6, 10, 4, 3, 4, 14, 1, 4, 7) bei der Wahl von s3 = 4 in die Teile sL = (3, 4, 1, 4) und sR = (6, 10, 14, 7) gesplittet. Entscheidend sind nun die Fragen, ob dieser rekursiv definierte Algorithmus terminiert und ob er auch immer eine aufsteigend sortierte Folge liefert. Man kann dies mit dem Prinzip der starken Induktion beantworten. In Satz 3.3 wählt man n0 = 0. Induktionsanfang: Es sei n = 0. Dann ist s die leere Folge und gemäß der obigen Beschreibung des Algorithmus wird die leere Folge zurückgeliefert. Der Algorithmus terminiert also und das Ergebnis ist auch sortiert. Induktionsvoraussetzung: Es sei k > 0. Es wird nun vorausgesetzt, daß der Quicksort - Algorithmus für jede Folgenlänge j − 1 mit 0 < j ≤ k terminiert und eine aufsteigend sortierte Folge liefert. Induktionsschluß: Es sei s eine Folge der Länge k. Da das hieraus beliebig ausgewählte Element sj weder in sL noch in sR vorkommt, sind sL und sR jeweils Folgen mit Längen j − 1, wobei 0 ≤ j − 1 < k. Nach der Induktionsvoraussetzung terminiert der Algorithmus für jede dieser Folgen und liefert aufsteigend sortierte Folgen s∗L und s∗R . Dann ist auch die Folge s∗L (sj )s∗R (nach Konstruktion) aufsteigend sortiert und der Algorithmus ist beendet. 1 Im Gegensatz zur Definition 2.7 sind hier die Folgenelemente von 1 bis n und nicht von 0 bis n − 1 durchnummeriert. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 56 Es ist notwendig, auf einige formale Varianten bei der Anwendung der Induktionsprinzipien hinzuweisen, die man oft in der Literatur findet. Beim einfachen und erweiterten Induktionsprinzip wird häufig bei der Formulierung der Induktionsvoraussetzung und bei der Durchführung des Induktionsschritts dieselbe Variable verwendet, die in der zu beweisenden Aussage A(n) vorkommt. Etwa beim Prinzip der einfachen Induktion (Satz 3.1) sieht das dann folgendermaßen aus: Es sei A(n) eine Aussage über natürliche Zahlen. Wenn gilt: 1.) A(0) ist wahr; 2.) ∀ n > 0 : A(n − 1) ist wahr =⇒ A(n) ist wahr , so ist A(n) wahr für alle n ∈ N. Für jemanden, der im Umgang mit der Induktion sattelfest ist, ist diese etwas zweifelhafte Doppelverwendung der Variable n kein Problem. Der Anfänger sollte das jedoch vermeiden und wie in Satz 3.1 eine andere Variable im Induktionsschritt verwenden. Eine weitere formale Variante beim Induktionsprinzip betrifft ebenfalls den Induktionsschritt. Es ist offensichtlich bei der einfachen Induktion formal dasselbe, wenn man beim Induktionsschritt statt von A(k − 1) auf A(k) zu schließen die Implikation von A(k) auf A(k + 1) durchführt. Nur muß dies jetzt für alle k ≥ 0 gelingen (und nicht nur für alle k > 0), damit mit dem kleinsten Wert k = 0 in der Induktionsvoraussetzung A(k) der Anschluß an die Induktionsvoraussetzung A(0) gelingt. Ganz allgemein ist also beim erweiterten Induktionsprinzip die folgende Variante möglich: Es sei A(n) eine Aussage über natürliche Zahlen. Wenn es eine Zahl n0 ∈ N gibt, so daß gilt: 1.) A(n0 ) ist wahr; 2.) ∃ a ∈ Z : ∀ k ≥ n0 − a : A(k + a) ist wahr =⇒ A(k + a + 1) ist wahr , so ist A(n) wahr für alle n ≥ n0 . In Satz 3.2 ist a = −1 gewählt worden. 3.2 Induktiv definierte Mengen. Wie schon in der Einleitung zu diesem Kapitel erwähnt, wird jetzt noch eine dritte Möglichkeit der Mengendefinition vorgestellt. Diese erfolgt durch Angabe der ’einfachsten Elemente’ und durch das Aufstellen von Regeln, durch die sich ’kompliziertere Elemente’ aus den bereits enthaltenen Elementen erzeugen lassen. So erhält man eine induktiv definierte Menge. Auch hier soll das Prinzip an einem typischen Beispiel aus der Informatik erläutert werden. Beispiel 3.3 Es wird die Menge der korrekten ganzzahligen arithmetischen Ausdrücke definiert. Der Einfachheit halber geschieht dies ohne die konkrete Angabe einer Obermenge, in der sich alles abspielt. Die hiesige Definition ist dann etwas einfacher als in gängigen Programmiersprachen, aber insgesamt ähnlich. Es wird vorausgesetzt, daß eine Menge CONST von ganzzahligen Konstanten und eine Menge VAR von Variablenbezeichnern bereits definiert ist. So könnte die Menge CONST z.B. aus allen ganzen Zahlen im Intervall von −231 bis 231 − 1 bestehen, und die Menge VAR ⊆ A∗ könnte alle Worte über einem Alphabet A = {a, b, c, . . . , z, A, B, C, . . . , Z, 0, 1, 2, . . . 9} FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 57 umfassen, wobei das erste Zeichen stets ein Buchstabe ist. Die Menge EXP aller Ausdrücke wird dann folgendermaßen durch Basisregeln und induktive Regeln definiert: Basisregeln: 1. 2. Jedes Element aus CONST ist in EXP Jedes Element aus VAR ist in EXP 3. 4. 5. 6. 7. 8. 9. E ∈ EXP E ∈ EXP E ∈ EXP E1 ∈ EXP E1 ∈ EXP E1 ∈ EXP E1 ∈ EXP Induktive Regeln: =⇒ =⇒ =⇒ ∧ E2 ∧ E2 ∧ E2 ∧ E2 (E) ∈ EXP +E ∈ EXP −E ∈ EXP ∈ EXP =⇒ ∈ EXP =⇒ ∈ EXP =⇒ ∈ EXP =⇒ (Klammerungsregel) E1 + E2 ∈ EXP E1 − E2 ∈ EXP E1 ∗ E2 ∈ EXP E1 /E2 ∈ EXP Man darf nun nicht erwarten, daß diese Regeln die Menge der arithmetischen Ausdrücke ’in einem Schritt’ definieren. Man könnte dann nämlich einwenden, daß man für die Anwendung der induktiven Regeln aufgrund der Hypothesen eigentlich schon vorher wissen müßte, wie EXP aussieht. Man muß sich aber vielmehr die Anwendung der Regeln 3. bis 9. als einen ’Schritt für Schritt’ - Prozeß vorstellen: Zuerst werden die Regeln 1. und 2. angewendet. Damit ist diejenige Teilmenge von EXP festgelegt, die die einfachen Elemente enthält. Dann wendet man in einem ersten Schritt auf diese erste Teilmenge die Regeln 3. bis 9. an und erhält dadurch eine größere Teilmenge. Hierauf werden erneut die Regeln 3. bis 9. angewendet und so entsteht eine noch größere Teilmenge, usw. Auf diese Weise konstruiert man immer komplexere Ausdrücke. Man kann also festhalten: Eine Zeichenkette ist genau dann ein Element von EXP, wenn sie durch eine endliche Anzahl von Anwendungen der Regeln 1. bis 9. entstanden ist. Es soll zur Demonstration die Zeichenkette (a+b)/25 dahingehend untersucht werden, ob sie ein korrekter arithmetischer Ausdruck aus EXP ist. Ihre induktive Konstruktion geschieht durch die Regeln 1. bis 9. folgendermaßen: a) b) c) d) e) f) Behauptung a ∈ EXP b ∈ EXP a + b ∈ EXP (a + b) ∈ EXP 25 ∈ EXP (a + b)/25 ∈ EXP Begründung Regel 2. Regel 2. Regel 6. und a) und b) Regel 3. und c) Regel 1. Regel 9. und d) und e) Vor dem Hintergrund dieses Beispiels wird nun eine allgemeine Beschreibung von induktiv definierten Mengen gegeben. Diese Beschreibung wird nicht als Definition bezeichnet, weil sie mathematisch noch zu unpräzise ist. Eine korrekte mathematische Definition würde an dieser Stelle den Rahmen sprengen. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 58 Beschreibung induktiv definierter Mengen. Eine induktive Definition einer Menge besteht aus einer Menge von Regeln. Man unterscheidet zwischen Basisregeln und induktiven Regeln. Die Basisregeln bestimmen in einfacher Weise die Zugehörigkeit bestimmter Elemente zu der Menge. Die induktiven Regeln legen fest, daß weitere Elemente in der Menge enthalten sind, wenn gewisse andere Elemente schon in der Menge vorkommen. Da die induktiven Regeln als eine Implikation formuliert sind, nennt man die Elemente vor dem ’=⇒’ -Zeichen die Hypothesen der Regeln und dementsprechend die Elemente nach dem ’=⇒’ -Zeichen die Folgerungen der Regeln. In der so definierten Menge befinden sich genau die Elemente, die durch eine endliche Anzahl von Anwendungen dieser Regeln erzeugt werden können. Um zu zeigen, daß ein Element e in einer induktiv definierten Menge vorkommt, führt man einen sog. ’Zeile-für-Zeile’ - Beweis durch (wie im Beispiel 3.3 für den Nachweis, daß e = (a + b)/25 ein arithmetischer Ausdruck ist). Jede Zeile eines solchen Beweises legt entweder für ein Element fest, daß es aufgrund einer Basisregel in S liegt, oder sie besteht aus der Folgerung einer induktiven Regel, deren Hypothese als eine frühere Zeile in dem Beweis vorkommt. In der letzten Zeile des Beweises steht dann als Folgerung die Aussage e ∈ S. Der näheren Erläuterung dienen noch die folgenden Beispiele: Beispiel 3.4 (Induktive Definition der natürlichen Zahlen) Die Menge N der natürlichen Zahlen kann folgendermaßen definiert werden: 1. 2. 0∈N n∈N =⇒ n+1∈N Dabei ist 1. eine Basisregel und 2. eine induktive Regel. Somit erweist sich N als die einfachste induktiv definierte Menge. Allerdings kann N aber auch anders konstruiert werden: 0∈N 1∈N n∈N ∧ n+1∈N 1. 2. 3. =⇒ n+2∈N Damit wird klar, daß solche Mengen auf unterschiedliche Art und Weise definiert werden können. In Abschnitt 2.3 wurde die Menge A∗ der Worte über einem Alphabet A als eine Menge von endlichen Folgen über A definiert. Durch eine induktive Mengenkonstruktion bietet sich hierfür aber auch eine alternative Möglichkeit an. Beispiel 3.5 (Induktive Definition von Wörtern und Sprachen) Es sei A ein Alphabet. Dann wird die Menge aller Wörter über A folgendermaßen definiert: 1. 2. ε ∈ A∗ w ∈ A∗ ∧ x ∈ A =⇒ wx ∈ A∗ FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 59 Geht man nun einen Schritt weiter, so kann man eine sog. Sprache als Teilmenge von A∗ (=Menge der Wörter) ebenfalls induktiv definieren. Für ein besonders einfaches Alphabet A := {a, b} wird so eine Sprache S ⊆ A∗ folgendermaßen definiert: 1. 2. 3. 4. ε∈S w ∈ S =⇒ awb ∈ S w ∈ S =⇒ bwa ∈ S w ∈ S ∧ u ∈ S =⇒ wu ∈ S Bei dieser Konstruktion werden also nicht nur einzelne Buchstaben aus A zu Wörtern für A∗ zusammengefügt, sondern bereits ganze Worte aus A∗ zu neuen Wörtern kombiniert. Entweder wird ein bereits konstruiertes Wort w durch das gleichzeitige Voranstellen und Anfügen zweier verschiedener Buchstaben zu einem neuen Wort ergänzt (Regel 2. und 3.) oder es werden zwei bereits konstruierte Wörter zu einem neuem Wort zusammengefügt (Regel 4.). Kommen in der Sprache S die Wörter abba und bab vor? Für das Wort abba kann man einen Zeile-für-Zeile - Beweis angeben: a) b) c) d) Behauptung ε∈S ab ∈ S ba ∈ S abba ∈ S Begründung Regel 1. Regel 2. und a) Regel 3. und a) Regel 4. und b) und c) Man wird sich vergeblich bemühen, einen solchen Beweis auch für die Behauptung bab ∈ S zu finden. Tatsächlich kommt dieses Wort auch nicht in S vor, und das liegt daran, daß S genau die Wörter über dem Alphabet A = {a, b} enthält, bei denen die Anzahl der a’s gleich der Anzahl der b’s ist. Um diese Aussage auch präzise beweisen zu können, benötigen wir ein noch allgemeineres Beweisprinzip, das speziell auf Aussagen von Elementen in induktiv definierten Mengen anwendbar ist. Mit diesem Beweisprinzip befassen wir uns im nächsten Abschnitt. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 60 3.3 Strukturelle Induktion. Da das Prinzip der strukturellen Induktion einerseits alle bisher eingeführten Induktionsprinzipien verallgemeinert und andererseits in der Informatik eines der wichtigsten Prinzipien ist, wird es hier in einem eigenen Abschnitt vorgestellt. Es handelt sich bei der strukturellen Induktion um ein Beweisprinzip zum Prüfen von Aussagen über Elemente in induktiv definierten Mengen. Es wird zunächst das Beweisprinzip eingeführt und anschließend durch Anwendungen erläutert. Satz 3.4 (Prinzip der strukturellen Induktion) Es sei S eine induktiv definierte Menge und A(x) eine Aussage über Elemente x ∈ S. Die beiden folgenden Bedingungen seien erfüllt: 1.) Für alle Basisregeln R in der Definition von S gelte: Ist x aufgrund einer Regel R in der Menge S, so ist A(x) wahr. 2.) Für alle induktiven Regeln R in der Definition von S gelte: Wenn die Aussage A(x) für jedes x, das in der Hypothese einer Regel R vorkommt, wahr ist, so ist die Aussage A(y) wahr für das y, das aufgrund der Regel R als Folgerung in S liegt. Dann ist die Aussage A(x) für alle x ∈ S wahr. Man kann die Voraussetzung 2. in diesem Satz so deuten, daß sich die Implikation in einer induktiven Regel (x1 , x2 , . . . , xn ∈ S =⇒ y ∈ S) auf eine Implikation zwischen Aussagen überträgt: A(x1 ) wahr ∧ A(x2 ) wahr ∧ . . . ∧ A(xn ) wahr =⇒ A(y) wahr . Beweis: Es sei x ∈ S. Es muß nun gezeigt werden, daß A(x) wahr ist, wenn die Voraussetzungen 1. und 2. im Satz erfüllt sind. Hierzu greifen wir auf den Zeile-für-Zeile - Beweis zurück, der wegen x ∈ S die Zugehörigkeit von x zu S durch die induktive Definition von S belegt. Dieser Zeile-für-Zeile - Beweis wird als eine endliche Folge (x0 , x1 , . . . , xm ) interpretiert, wobei xm = x ist und jedes der anderen xi entweder aufgrund einer Basisregel oder aufgrund einer induktiven Regel in S liegt. Für das Wort abba aus Beispiel 3.5 etwa lautet diese Folge (x0 , x1 , x2 , x3 ) = (ε, ab, ba, abba). Liegt ein xi aufgund einer induktiven Regel in S, so gibt es wenigstens ein j < i, so daß xj in der Hypothese der induktiven Regel für xi vorkommt. Bei abba etwa findet man x0 in der Hypothese zu x1 und in der Hypothese zu x2 , während x1 und x2 in der Hypothese zu x3 vorkommen. Mit Hilfe des starken Induktionsprinzips aus Satz 3.3 wird nun gezeigt, daß die Aussage A(xk ) für alle k = 0, 1, 2, . . . , m wahr ist. Der Induktionsanfang ist für i = 0. Da x0 nur aufgrund einer Basisregel in S liegen kann, erzwingt die Voraussetzung 1. die Gültigkeit von A(x0 ). Als Induktionsvoraussetzung beim starken Induktionsprinzip wird nun für eine natürliche Zahl k ≤ m angenommen, daß die Aussagen A(xi ) für alle i = 0, 1, 2, . . . , k − 1 wahr sind (bzw. daß A(xi−1 ) wahr ist für i = 1, 2, . . . , k). Es müssen nun zwei Fälle unterschieden werden. Gilt xk ∈ S aufgrund einer Basisregel, so ist wieder aufgrund der Voraussetzung 1. der Wahrheitsgehalt von A(xk ) garantiert. Ist aber xk ∈ S aufgrund der Folgerung einer induktiven Regel R, so gibt es gewisse FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 61 xi mit i ∈ {0, 1, 2, . . . , k − 1}, die alle in der Hypothese der Regel R vorkommen. Auf diese Situation ist nun die Induktionsvoraussetzung des starken Induktionsprinzips anwendbar: für alle diese i sind die Aussagen A(xi ) wahr. Daher sind in der Voraussetzung 2. des Satzes die Bedingungen erfüllt, und da xk aufgrund der Regel R durch diese xi in S ist, ist die Aussage A(xk ) wahr. Damit ist der Induktionsschritt beim starken Induktionsprinzip vollzogen und es wurde gezeigt, daß die Aussagen A(xi ) für alle i = 0, 1, 2, . . . , m wahr sind. Insbesondere ist die Aussage A(xm ) = A(x) wahr. Da x ∈ S beliebig gewählt war, ist der Satzes bewiesen. Es ist nun leicht einzusehen, daß dieses Beweisprinzip stärker als die zuvor eingeführten Induktionsprinzipien ist. Im wesentlichen liegt das daran, daß die natürlichen Zahlen N eine spezielle induktiv definierte Menge sind (vgl. Beispiel 3.4). Man wähle also speziell S = N. Dann reduziert sich die Voraussetzung 1. in Satz 3.4 auf die Aussage A(0) ist wahr. In Beispiel 3.4 gibt es nur eine induktive Regel, und in deren Hypothese kommt nur das Element n vor. Die Folgerung dieser Regel ist n + 1 ∈ N. Aus der Voraussetzung 2. in Satz 3.4 wird also die Aussage A(n) ist wahr =⇒ A(n + 1) ist wahr . Die Folgerung aus den beiden Voraussetzungen in Satz 3.4 besteht dann darin, daß A(x) für alle x ∈ N wahr ist, und das ist genau die Aussage von Satz 3.1. Damit erweist sich das Prinzip der strukturellen Induktion stärker als das der einfachen Induktion. Auch das erweiterte Induktionsprinzip (Satz 3.2) und das starke Induktionsprinzip (Satz 3.3) können als Spezialfälle des Prinzips der strukturellen Induktion angesehen werden. Man definiere dafür induktiv die folgenden Mengen S1 bzw. S2 für S in Satz 3.4. Für das erweiterte Induktionsprinzip wähle die Regeln n0 ∈ S1 n ∈ S1 =⇒ n + 1 ∈ S1 , für das starke Induktionsprinzip hingegen 0 ∈ S2 0 ∈ S2 ∧ 1 ∈ S2 ∧ . . . ∧ n ∈ S2 =⇒ n + 1 ∈ S2 . Auf S = S1 bzw. S = S2 wende man nun Satz 3.4 an. Es wird nun eine typische Anwendung der strukturellen Induktion vorgestellt. In Beispiel 3.5 am Schluß des vorigen Abschnitts wurde eine Sprache S konstruiert, von der behauptet wurde, daß alle ihre Wörter stets die gleiche Anzahl an Buchstaben a und b enthalten. Für die Menge T := { w | w ∈ {a, b}∗ ∧ Die Anzahl der a’s in w ist gleich der Anzahl der b’s in w } FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 62 wird also S = T (3.9) behauptet. Zum Beweis dieser Mengengleichheit werden die beiden Inklusionen S ⊆ T und T ⊆ S gezeigt. Für die erste Inklusion S ⊆ T wird die strukturelle Induktion verwendet. Es sind jetzt in Satz 3.4 die beiden Voraussetzungen 1. und 2. nachzuweisen. Es gibt nur eine Basisregel, nämlich ε ∈ S, und ε enthält genauso viele a’s wie b’s, nämlich keine. Zur Überprüfung der Voraussetzung 2. muß für alle drei induktiven Regeln R folgendes nachgewiesen werden: Werden alle Elemente, die in der Hypothese einer Regel R vorkommen, als zu T gehörig angenommen, so liegt auch das aufgrund der Regel R in S konstruierte Element schon in T . Dies gilt offensichtlich für Regel 2, denn hier kommen zu w ∈ T je ein a und ein b hinzu. Die Anzahl der a’s und b’s wird dabei jeweils um 1 erhöht, so daß nach wie vor die Anzahl der a’s gleich der Anzahl der b’s ist. Das gleiche gilt auch für Regel 3. In Regel 4 werden zwei Worte w und u konkateniert. Hatten beide Worte jeweils die gleiche Anzahl von a’s und b’s, so gilt dies dann auch für das Wort wu. Somit ist Satz 3.4 anwendbar, woraus sich hier die gleiche Anzahl von a’s und b’s in jedem Wort von S ergibt. Das bedeutet aber S ⊆ T. Für den Nachweis der Inklusion T ⊆ S genügt die Anwendung des starken Induktionsprinzips. Die Details werden dem Leser als Übungsaufgabe empfohlen. 3.4 Rekursiv definierte Funktionen. Eine der gängigen Methoden zur Definition einer mathematischen Funktion besteht darin, explizit eine ’Formel’ oder eine ’Rechenvorschrift’ anzugeben. Man führt so beispielsweise die Funktionen √ f (x) = 1 + x2 oder g(x) = x3 + 4x2 − 8x + 1 ein. Allgemein schreibt man also f (x) = . . ., wobei anstelle der Punkte ein Term steht, in dem x enthalten ist. Gelegentlich werden Funktionen auf den natürlichen Zahlen N aber auch als sog. Zählfunktionen eingeführt. So gibt die Funktion X f (n) = |{ p | p ≤ n ∧ p ist Primzahl }| = 1 p∈P p≤n zu jeder natürlichen Zahl n die Anzahl der Primzahlen im Intervall [0; n] an. In der Zahlentheorie wird diese Funktion mit π(n) (anstelle von f (n)) bezeichnet. Funktionen f : A → B wurden in Definition 2.4 als spezielle Relationen eingeführt. Funktionen kann man daher auch als gewisse Teilmengen von A × B auffassen und entsprechend beschreiben. So stellt z.B. f = { (0, 0), (1, 1), (2, 4), (3, 9), (4, 16), . . . } die Funktion f (n) = n2 mit Dom (f ) = N dar. Aber unabhängig von der Art der Beschreibung einer Funktion kamen bisher bei der Definition (also auf der rechten Seite des Gleichheitszeichens) immer bereits bekannte Größen vor, deren Bedeutung von vorneherein klar ist. Manchmal erscheint aber f wieder als Teil der Definition rechts vom Gleichheitszeichen. Solche Definitionen scheinen vordergründig betrachtet unsinnig zu sein, denn um die Funktion f FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 63 zu verstehen, muß man die Definitionsvorschrift für f rechts vom Gleichheitszeichen verstehen. In dieser kommt aber wieder f vor, also muß man f eigentlich vorher schon verstanden haben. Das scheint nicht möglich zu sein. Allerdings sind solche Definitionen nicht immer unsinnig, sondern in manchen Fällen sogar viel kürzer als eine explizite Formel (falls es für die Funktion f eine solche explizite Darstellung durch einen geschlossenen Term überhaupt gibt). In der Tat kann man leicht unsinnige Definitionen konstruieren, wo f links und rechts vom Gleichheitszeichen vorkommt und wodurch entweder keine Funktion beschrieben wird oder sogar mehrere Funktionen gleichzeitig festgelegt werden. Letzteres ist natürlich auch unerwünscht. In diesem Abschnitt soll geklärt werden, unter welchen Bedingungen durch eine solche Art der Festlegung genau eine Funktion definiert wird. Zur Einführung in diese Problematik werden einige Beispiele rekursiv definierter Funktionen vorgeführt. 1.) Die Fakultätsfunktion f acult : N → N kann durch f acult (0) f acult (n) = 1 = n · f acult (n − 1) für n ≥ 1 definiert werden. Statt f acult (n) schreibt man in der Mathematik üblicherweise n!. Eine nicht rekursive Definition (also die explizite Angabe einer Rechenvorschrift) für die Fakultätsfunktion lautet f acult (n) = 1 · 2 · 3 · · · · · n . In vielen Anwendungen der Informatik erweist sich allerdings die rekursive Definition der Fakultätsfunktion als nützlicher. 2.) Eine andere Definition einer rekursiven Funktion f : N → N ist f (n) = f (n) . Diese Vorschrift ist unsinnig, denn jede Funktion erfüllt diese Gleichung. Ebenso unsinnig ist auch die Festlegung f (n) = f (n) + 1 , denn keine Funktion erfüllt diese Gleichung. Auf den ersten Blick scheint auch die Definition f (n) = 2 · f (n) unsinnig zu sein, doch ist hierdurch überraschenderweise genau eine Funktion festgelegt, nämlich die konstante Funktion f (n) = 0 (die sog. Nullfunktion). Untersucht man noch einmal die rekursive Definition der Fakultätsfunktion genauer, so wird ein Zusammenhang zwischen induktiv definierten Mengen und rekursiv definierten Funktionen klar. Denn konkrete Werte für f acult (also lediglich der Funktionswert für 0) sind genau auf solchen Elementen natürlicher Zahlen definiert, die in Beispiel 3.4 durch eine Basisregel als natürliche Zahl definiert werden. Werte, die durch eine rekursive Berechnung (also durch wiederholte Anwendung von f acult auf kleinere Werte) bestimmt werden müssen, sind genau diejenigen Zahlen, die im obigen Beispiel durch induktive Regeln in den natürlichen Zahlen N vorkommen. Zu diesem Sachverhalt gibt es noch ein weiteres bekanntes Beispiel. Beispiel 3.6 (Die Fibonacci - Zahlen) Die Fibonacci - Zahlen werden durch die folgende Funktion 0 1 f ib (n) = f ib (n − 1) + f ib (n − 2) f ib : N → N definiert: für für für n=0 n=1 n≥2 FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 64 Hierbei wird eine weitere induktive Definition von N verwendet. Die Definition der Fibonacci - Zahlen ist sinnvoll, denn man kann f ib (n) für jede natürliche Zahl n ausrechnen, indem man alle vorausgegangenen Werte f ib (0) = 0 , f ib (1) = 1 , f ib (2) = 1 , . . . , f ib (n − 1) bestimmt und anschließend die letzten beiden davon addiert. Für die Fibonacci - Zahlen ist auch die Schreibweise F0 = 0, F1 = 1 sowie Fn = Fn−1 + Fn−2 für n ≥ 2 gebräuchlich. Die ersten Fibonacci - Zahlen lauten: n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Fn 0 1 1 2 3 5 8 13 21 34 55 89 144 233 Es gibt auch eine explizite Formel zur Berechnung der Fibonacci - Zahlen: √ n ! √ n 1 1− 5 1+ 5 Fn = √ · − (n ≥ 0) . 2 2 5 Es wird nun eine allgemeine Beschreibung für die rekursive Definition einer Funktion gegeben, wenn der Definitionsbereich der Funktion selbst rekursiv bestimmt ist. Definition 3.1 Es sei S eine induktiv definierte Menge und T eine weitere beliebige Menge. Unter der rekursiven Definition einer Funktion f : S → T aufgrund der induktiven Definition von S versteht man die Festlegung der Funktion f nach dem folgenden Schema: 1.) Es existiert eine bereits bekannte Funktion h, so daß f (y) für jedes Element y, das aufgrund einer Basisregel in S vorkommt, durch f (y) = h(y) berechnet wird. 2.) Zu jeder induktiven Regel von S , in deren Hypothese m Elemente x0 , x1 , . . . , xm−1 vorkommen, existiert eine vollständig bekannte Funktion h : S × T m → T mit f (y) = h(y, f (x0 ), f (x1 ), . . . , f (xm−1 )) . (3.10) Das Bild von y unter f bei jedem Element y, das aufgrund dieser induktiven Regel in S vorkommt, wird dann mittels (3.10) bestimmt. Bei der Fakultätsfunktion f acult : N → N greift man auf die erste rekursive Definition von N in Beispiel 3.4 zu. Zur (einzigen) induktiven Regel, nämlich n − 1 ∈ N =⇒ n ∈ N, gehört dann die Funktion h : N × N → N mit h(m1 , m2 ) = m1 m2 . Gemäß (3.10) (mit m = 1 und x0 = y − 1) ist dann f acult (y) = h(y, f acult (y − 1)) = y · f acult (y − 1) . Bei der rekursiven Definition der Fibonacci - Zahlen f ib : N → N greift man auf die folgende rekursive Definition von N zu: 0∈N, 1∈N, ( n − 2 ∈ N ∧ n − 1 ∈ N =⇒ n ∈ N ) . Zu der (einzigen) induktiven Regel gehört dann die Funktion h : N × N × N → N mit h(m1 , m2 , m3 ) = m2 + m3 . Bemerkenswert ist hierbei, daß die Funktion h von ihrem ersten Argument m1 nicht explizit abhängt. In (3.10) wähle man nun m = 2, x0 = y − 1 und x1 = y − 2. Dann kommt: f ib (y) = h(y, f ib (y − 1), f ib (y − 2)) = f ib (y − 1) + f ib (y − 2) . FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 65 In den bisherigen Beispielen kamen nur rekursiv definierte Funktionen auf den natürlichen Zahlen vor. In der Informatik hat man es jedoch auch mit anderen induktiv definierten Mengen zu tun, über denen Funktionen definiert werden. Ein typisches Beispiel hierfür ist die induktiv definierte Menge EXP aller arithmetischen Ausdrücke aus Beispiel 3.3. Über EXP soll nun eine Funktion EV AL rekursiv definiert werden, die die Ausdrücke numerisch auswertet. Sie soll also z.B. EV AL (3+7) = 10 liefern oder auch EV AL (2·x) = 22 ausgeben, falls die Variable x mit dem Wert 11 belegt ist. Für das letzte Beispiel muß auf der Menge V AR der Variablen in EXP bereits eine Funktion M EM angenommen werden, die für jedes x ∈ V ar denjenigen Wert liefert, der unter der Adresse x gespeichert ist. Beispiel 3.7 (Rekursive Definition einer Auswertefunktion) Auf der Menge EXP der arithmetischen Ausdrücke wird eine Auswertefunktion EV AL folgendermaßen im Sinne von Definition 3.1 rekursiv definiert. Hierbei seien E, E1 , E2 ∈ EXP . Den beiden Basisregeln für EXP entsprechen die beiden Festlegungen 1. 2. EV AL (c) = c EV AL (x) = M EM (x) für alle c ∈ CON ST für alle x ∈ V AR Zu den sieben induktiven Regeln für EXP kommen die folgenden Festlegungen 3. 4. 5. 6. 7. 8. 9. EV AL ((E)) = EV AL (E) EV AL (+E) = EV AL (E) EV AL (−E) = −EV AL (E) EV AL (E1 + E2 ) = EV AL (E1 ) + EV AL (E2 ) EV AL (E1 − E2 ) = EV AL (E1 ) − EV AL (E2 ) EV AL (E1 ∗ E2 ) = EV AL (E1 ) ∗ EV AL (E2 ) EV AL (E1 /E2 ) = EV AL (E1 )/EV AL (E2 ) Auf die Problematik undefinierter Werte soll hier nicht eingegangen werden. Diese Probleme treten z.B. bei der Division mit Null auf, also wenn in Regel 9 der Fall EV AL (E2 ) = 0 eintritt. Viel bedeutsamer ist die Frage, wie nun mit Hilfe dieser Regeln konkrete Ausdrücke ausgewertet werden. Beispielsweise soll der Ausdruck 2 ∗ 3 + 4 ausgewertet werden. Dies kann folgendermaßen geschehen: EV AL (2 ∗ 3 + 4) = (Regel 6) EV AL (2 ∗ 3) + EV AL (4) = (Regel 8) (EV AL (2) ∗ EV AL (3)) + EV AL (4) = (Regel 1) (2 ∗ 3) + 4 = 10 . Aber auch eine andere Auswertung ist möglich: EV AL (2 ∗ 3 + 4) = (Regel 8) EV AL (2) ∗ EV AL (3 + 4) = (Regel 6) EV AL (2) ∗ (EV AL (3) + EV AL (4)) = (Regel 1) 2 ∗ (3 + 4) = 14 . In dieses Dilemma sind wir geraten, weil es keine Vorschriften über die Auswertereihenfolge gibt. Offensichtlich ist die Funktion EV AL durch die obigen Festlegungen nicht eindeutig definiert! Oder anders ausgedrückt: FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 66 Es gibt mehrere Funktionen, die die rekursive Definition aus Beispiel 3.7 erfüllen. Um diesen unerwünschten Effekt zu beseitigen, benötigt man ein Kriterium, durch das gewährleistet ist, daß rekursiv auf induktiven Mengen definierte Funktionen eindeutig sind. Im Beispiel der Auswertefunktion EV AL ist weniger die Definition von EV AL selbst Schuld an ihrer Mehrdeutigkeit, sondern vielmehr die Definition der Menge EXP (in Beispiel 3.3). Es gibt nämlich Elemente in EXP , die ihre Zugehörigkeit zu EXP durch mehrere Sequenzen von Regelanwendungen begründen können. Auch der Ausdruck 2 ∗ 3 + 4 gehört dazu. Für diesen Term gibt es zwei verschiedene Zeile-für-Zeile - Beweise: a) b) c) d) e) Behauptung 2 ∈ EXP 3 ∈ EXP 4 ∈ EXP 2 ∗ 3 ∈ EXP 2 ∗ 3 + 4 ∈ EXP Begründung Regel 1. Regel 1. Regel 1. Regel 8. und a) und b) Regel 6. und c) und d) a) b) c) d) e) Behauptung 2 ∈ EXP 3 ∈ EXP 4 ∈ EXP 3 + 4 ∈ EXP 2 ∗ 3 + 4 ∈ EXP Begründung Regel 1. Regel 1. Regel 1. Regel 6. und b) und c) Regel 8. und a) und d) und Definition 3.2 (Die Bedingung der eindeutigen Lesbarkeit) Eine induktiv definierte Menge S erfüllt die Bedingung der eindeutigen Lesbarkeit, wenn folgendes gilt: 1. d.h. 2. Für jedes Element x ∈ S gibt es genau eine Regel, die x ∈ S begründet. Wenn ein Element aufgrund einer induktiven Regel in S ist, so gibt es genau einen Zeile-für-Zeile - Beweis dafür. Diese Bedingung der eindeutigen Lesbarkeit betrifft allerdings nur die Definition einer Menge, aber nicht die Menge selbst. So kann es durchaus sein, daß für eine Menge S eine Definition existiert, die die Bedingung der eindeutigen Lesbarkeit aus Definition 3.2 erfüllt, aber es kann auch eine weitere Definition für S geben, die sie nicht erfüllt. Ein einfaches Beispiel für diese Nichteindeutigkeit der Definition einer Menge kann man schon für die natürlichen Zahlen N angeben: 1. 0 ∈ N 2. 1 ∈ N 3. n ∈ N =⇒ n + 1 ∈ N Diese Definition erfüllt nun die Bedingung der eindeutigen Lesbarkeit im Gegensatz zu den Definitionen von N im Beispiel 3.4 nicht mehr, denn die Zahl 1 gelangt nach N entweder allein durch die zweite Regel oder durch die Anwendung der ersten Regel gefolgt von der dritten Regel. Die Bedeutung der Bedingung der eindeutigen Lesbarkeit bei der rekursiven Definition von Funktionen wird durch den folgenden Satz ersichtlich, der ohne Beweis angeführt wird. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 67 Satz 3.5 Es sei S eine induktiv definierte Menge, für die eine induktive Definition existiert, die die Bedingung der eindeutigen Lesbarkeit erfüllt. Dann stellt jede rekursive Funktionsdefinition auf Basis dieser induktiven Definition eine eindeutige Funktion dar. Offensichtlich ist die Definition der Menge EXP der arithmetischen Ausdrücke in Beispiel 3.3 nicht eindeutig lesbar, denn anderenfalls wäre die Definition der Auswertefunktion EV AL in Beispiel 3.7 eindeutig gewesen. Die eindeutige Lesbarkeit wird nämlich durch den Term 2 ∗ 3 + 4 verletzt. Dieser Term kann nämlich sowohl durch Regel 6 als auch durch Regel 8 erzeugt werden (man beachte jeweils die letzte Zeile e) in den obigen Tabellen!), wodurch die eindeutige Lesbarkeit nicht mehr gegeben ist. Terme der Form 3 + 4 + 5 verstoßen gegen die Bedingungen in Definition 3.2, denn der Ausdruck kann einerseits durch Anwendung der Additions - Regel 6. in Beispiel 3.3 auf 2 + 3 und 4 in EXP erzeugt werden, andererseits aber auch durch die Anwendung derselben Regel auf 2 und 3 + 4. Jedoch ist jede rekursive Funktion, die auf Basis einer (eindeutig lesbaren) Definition von N erklärt ist, eindeutig. Das gilt so insbesondere für die Funktionen f acult und f ib. Letztere basiert auf der eindeutig lesbaren Definition 0∈N, 1∈N, ( n − 2 ∈ N ∧ n − 1 ∈ N =⇒ n ∈ N ) von N. Abschließend werden noch drei Beispiele für eindeutig definierte rekursive Funktionen angeführt, die auf der Basis von eindeutig lesbaren Definitionen aus den Beispielen 3.4 und 3.5 erklärt sind. Beispiel 3.8 (Eindeutig definierte rekursive Funktionen) 1.) Addition einer Zahl a ∈ N: Die Funktion adda : N → N ist definiert durch adda (0) = adda (n + 1) = a, S(adda (n)) . Hierbei bezeichnet S die sog. Nachfolgerfunktion S(m) = m + 1. 2.) Länge eines Wortes: Die Funktion |.| : A∗ → N ist definiert durch 0 falls v = ε |v| = |w| + 1 falls v = wx mit w ∈ A∗ ∧ x ∈ A 3.) Die Konkatenation concatu eines Wortes u ∈ A∗ mit einem beliebigen anderen Wort aus A∗ : Die Funktion concatu : A∗ → A∗ ist definiert durch u falls v = ε concatu (v) = (concatu (w))x falls v = wx mit w ∈ A∗ ∧ x ∈ A FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 68 4 Ordnungen In diesem letzten Kapitel soll nun eine weitere Klasse von Relationen untersucht werden. In Abschnitt 2.4 wurden Relationen betrachtet, bei denen Mengen partitioniert wurden. Jetzt geht es darum, die Elemente von Mengen mit Hilfe von Relationen zu ordnen. Es liegt auf der Hand, daß es hierfür zahlreiche Anwendungen gibt. So sind die natürlichen Zahlen mittels der Vergleichsoperation ’≤’ geordnet, Buchstaben sind nach dem Alphabet geordnet, Zeichenketten werden lexikographisch geordnet, usw. Andere wichtige Anwendungsmöglichkeiten von Ordnungsrelationen ergeben sich auch in der Programmierung. 4.1 Partielle und totale Ordnungen. Der wesentliche Begriff dieses Kapitels wird in der folgenden Definition festgelegt. Definition 4.1 (Partielle Ordnung) Eine partielle Ordnung auf einer Menge A ist eine Relation R ⊆ A × A, die reflexiv, antisymmetrisch und transitiv ist. Dabei heißt eine Relation R antisymmetrisch, falls gilt: (a, b) ∈ R ∧ (b, a) ∈ R =⇒ a = b . Das Paar (A, R) wird eine partiell geordnete Menge genannt. Beispiel 4.1 Es sei S eine Menge. A = ℘(S) bezeichne die Potenzmenge von S. Auf A wird die folgende Relation definiert: (X, Y ) ∈ R ⇐⇒ X⊆Y . Diese Teilmengenrelation ist eine partielle Ordnung, denn sie ist reflexiv (weil stets X ⊆ X gilt), antisymmetrisch (denn aus X ⊆ Y ∧ Y ⊆ X folgt X = Y ) und transitiv (denn aus X ⊆ Y ∧ Y ⊆ Z folgt X ⊆ Z - siehe auch Satz 1.5). Die in diesem Beispiel angeführte Teilmengenrelation ist eine der wichtigsten partiellen Ordnungen. Weitere wichtige partielle Ordnungen sind die Teilerrelation und die Relation ’≤’ auf den natürlichen Zahlen sowie die sog. Vererbungsrelation in der objektorientierten SoftwareEntwicklung. Im folgenden Beispiel wird die Menge aller partiellen Funktionen partiell geordnet. Beispiel 4.2 Es bezeichne S die Menge aller partiellen Funktionen von A nach B. Dann wird definiert: f v g ⇐⇒ Dom (f ) ⊆ Dom (g) ∧ ∀ x ∈ Dom (f ) : f (x) = g(x) . In Worten: Es ist f v g, wenn der Definitionsbereich von f vollständig von dem Definitionsbereich von g umfaßt wird und wenn auf dem Definitionsbereich von f die Funktionen f und g auch übereinstimmen. Da partielle Funktionen als Teilmengen von A × B angesehen werden können, kann man leicht nachweisen, daß die hier definierte Relation gleichbedeutend ist mit der Teilmengenrelation auf A × B (und damit auf den partiellen Funktionen). Folglich ist (A B, v) eine partiell geordnete Menge. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 69 Mit den sog. Hasse-Diagrammen werden partielle Ordnungen graphisch dargestellt. In einem Hasse-Diagramm kommen alle Elemente aus A vor. Wenn nun R eine partielle Ordnung auf A ist, so wird im Falle a 6= b und (a, b) ∈ R das a unter b gezeichnet und beide Elemente werden durch eine Linie verbunden. Ist (a, b) 6∈ R, so fehlt die Verbindungslinie. Beispielsweise betrachte man auf der Menge M = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} (4.1) die Teilerrelation δM (vgl. Beispiel 2.4): δM = {(a, b) ∈ M × M | a ist ein Teiler von b} . (4.2) Im zugehörigen Hasse-Diagramm steht die 1 zuunterst, die Primzahlen 2,3,5,7,11 stehen darüber, die Zahlen 4,6,9,10 (mit je genau zwei Primteilern) folgen in der darüberliegenden Zeile, und in der obersten Zeile stehen die Zahlen mit 3 Primteilern: 8 und 12. In einer partiell geordneten Menge sind im allgemeinen nicht alle Elemente miteinander vergleichbar; d.h. nicht für jedes Paar von Elementen a, b ist entweder (a, b) ∈ R oder (b, a) ∈ R garantiert. Beispielsweise ist bezüglich der Teilerrelation nicht jedes beliebige Paar (m, n) von natürlichen Zahlen vergleichbar, denn es kann vorkommen, daß m weder ein Teiler von n ist noch umgekehrt. Dies gilt z.B. für die Paare 2, 3 und 24, 25. Andere partiell geordnete Mengen sind jedoch durch die Eigenschaft ausgezeichnet, daß je zwei Elemente in Relation zueinander stehen, wie z.B. in (N, ≤). Hier kann man nämlich für zwei Zahlen immer entscheiden, daß die eine kleiner als die andere ist (oder umgekehrt). Das motiviert die folgende Definition. Definition 4.2 (Totale Ordnung, Kette) Eine partiell geordnete Menge (M, R) heißt eine totale Ordnung, wenn neben den Eigenschaften der partiellen Ordnung zusätzlich gilt: ∀ (a, b) ∈ M × M : (a, b) ∈ R ∨ (b, a) ∈ R . Solche Mengen (M, R) werden auch als Kette bezeichnet. Ein typisches Beispiel für eine totale Ordnung ist die lexikographische Ordnung auf Zeichenketten. Nur wegen der totalen Ordnung auf den Zeichenketten ist es möglich, Telefonbücher anzulegen und darin schnell einen gesuchten Namen zu finden. In der Programmiersprache Java gibt es den Datentyp Comparable 1 , den jeder Typ besitzen sollte, auf dessen Elementen eine totale Ordnung existiert. Wenn man beispielsweise ein Alphabet A voraussetzt, das selbst schon total geordnet ist (etwa durch eine ASCII-Codierung), so ist es leicht, diese Ordnung auf die Menge A∗ der Wörter zu übertragen. Zu diesem Zweck wird die Ordnung auf dem Alphabet A mit ≤ bezeichnet. Nun seien v1 = xw1 , v2 = yw2 für w1 , w2 ∈ A∗ , x, y ∈ A zwei Elemente aus A∗ . Nun wird die Relation ’’ auf A∗ definiert, indem für den Vergleich von v1 und v2 miteinander auf die eben angeführte Gestalt zurückgegriffen wird: 1 Comparable = vergleichbar FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 70 Es ist v1 v2 genau dann, wenn . . . • v1 = ε , oder • x≤y • x = y ∧ ∧ x 6= y , oder w1 w2 . Die erste Bedingung besagt, daß das leere Wort vor jedem anderen Wort eingeordnet wird. Diese lexikographische Ordnung ist ein weiteres Beispiel dafür, wie man von der rekursiven Definition der Wörter A∗ Gebrauch macht (vgl. Beispiel 3.5). 4.2 Spezielle Elemente partiell geordneter Mengen. Im vorigen Abschnitt wurde ein Ordnungsprinzip für Mengen eingeführt, das es erlaubt, gewisse Elemente als kleiner oder größer als andere Elemente (im Sinne der Ordnungsrelation) anzusehen. In den folgenden Definitionen werden gewisse Elemente aufgrund der Ordnungsrelation ausgezeichnet. Definition 4.3 (Obere Schranken) Es sei (M, R) eine partiell geordnete Menge und K eine Teilmenge von M , also K ⊆ M . Eine obere Schranke von K ist ein Element s ∈ M , so daß gilt: ∀x ∈ K : (x, s) ∈ R . Die obere Schranke s liegt nicht notwendigerweise in K, ist aber mit allen Elementen aus K vergleichbar. Die durch die Teilerrelation aus (4.2) partiell geordnete Menge M aus (4.1) enthält die Teilmengen K1 = {2, 3} und K2 = {2, 3, 5}. Aus dem Hasse-Diagramm für (M, δM ) entnimmt man, daß sowohl 6 als auch 12 obere Schranken von K1 sind. Die Menge K2 hat keine oberen Schranken, denn kein Element aus M ist simultan durch 2, 3 und 5 teilbar. An diesen Beispielen sieht man ein, daß es mehrere Schranken oder aber auch keine obere Schranke geben kann. Die beiden oberen Schranken 6 und 12 von K1 liegen beide selbst nicht in K1 . Eine weitere Teilmenge von M ist K3 = {4, 8}. Hier ist 8 die einzige obere Schranke, die auch selbst in K3 vorkommt. Solche oberen Schranken von K ⊆ M , die selbst in K liegen, heißen größte Elemente. Entsprechend werden auch kleinste Elemente einer Menge K definiert: Definition 4.4 (Kleinste und größte Elemente) Es sei (M, R) eine partiell geordnete Menge und K eine Teilmenge von M , also K ⊆ M . • Ein kleinstes Element (Minimum) ist ein Element s ∈ K, so daß (s, x) ∈ R für alle Elemente x ∈ K gilt. • Ein größtes Element (Maximum) ist ein Element s ∈ K, so daß (x, s) ∈ R für alle Elemente x ∈ K gilt. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 71 Als ausgezeichnetes Beispiel betrachten wir den Spezialfall K = M einer durch die Inklusion ’⊆’ geordneten Potenzmenge ℘(M ) einer Menge M : Die partiell geordnete Menge (℘(M ), ⊆) hat die leere Menge ∅ als kleinstes Element und die Menge M selbst als größtes Element. Das obige Beispiel der Teilerrelation hat uns schon gezeigt, daß Mengen nicht zwingend immer ein größtes (oder kleinstes) Element besitzen. Ein anderes Beispiel für diesen Umstand ist die folgende Teilmenge K der rationalen Zahlen Q: K = {x ∈ Q : 0 < x < 1} . Als Teilmenge der partiell geordneten Menge (Q, ≤) besitzt K weder ein kleinstes noch ein größtes Element, denn unterhalb jeder positiven rationalen Zahl existiert eine weitere positive rationale Zahl, und ebenso gibt es oberhalb jeder rationalen Zahl < 1 noch eine weitere rationale Zahl unterhalb 1. Unter allen Elementen einer Menge von oberen bzw. unteren Schranken sind (im Falle ihrer Existenz) wieder gewisse Elemente ausgezeichnet: Definition 4.5 (Kleinste obere und größte untere Schranke) Es sei (M, R) eine partiell geordnete Menge und K eine Teilmenge von M , also K ⊆ M . • K besitzt eine kleinste obere Schranke (Supremum), falls die Menge K s = {x ∈ M | x ist obere Schranke von K} ein kleinstes Element besitzt. Falls ein solches Element existiert, wird es mit lub (K) bezeichnet (’least upper bound’). • K besitzt eine größte untere Schranke (Infimum), falls die Menge Ks = {x ∈ M | x ist untere Schranke von K} ein größtes Element besitzt. Falls ein solches Element existiert, wird es mit glb (K) bezeichnet (’greatest lower bound’). Weder die kleinste obere noch die größte untere Schranke von K liegt zwingend in K selbst, kann aber in K vorkommen. Eine Menge K kann höchstens eine kleinste obere Schranke haben (und entsprechend auch nur höchstens eine größte untere Schranke), denn gäbe es zwei solche Elemente l1 und l2 als kleinste obere Schranken von K, so hätte die oben definierte Menge K s eben diese Elemente l1 und l2 als kleinste Elemente. Die Definition von kleinsten Elementen (Definition 4.4) besagt einerseits, daß l1 und l2 beide in K s enthalten sind. Andererseits gilt (l1 , x) ∈ R für jedes x ∈ K s , speziell für x = l2 bedeutet das (l1 , l2 ) ∈ R. Ebenso ist (l2 , x) ∈ R für jedes x ∈ K s , speziell für x = l1 also (l2 , l1 ) ∈ R. Die Antisymmetrie der Relation R erzwingt dann l1 = l2 , womit die Eindeutigkeit der kleinsten oberen Schranke von K (im Falle ihrer Existenz) nachgewiesen ist. Außerdem beachte man, daß alle Elemente y aus K s zu dem kleinsten Element x0 von K s in der Relation (x0 , y) ∈ R stehen; entsprechend hat man (y, x1 ) ∈ R für alle Elemente y ∈ Ks und für das größte Element x1 in Ks (siehe Definition 4.4). FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 72 Beispiel 4.3 Wir untersuchen die Menge (N, δN ), also die Teilerrelation auf den natürlichen Zahlen. Für zwei beliebig gewählte natürliche Zahlen m und n mit m 6= n sollen lub (K) und glb (K) für die Menge K = {m, n} bestimmt werden. Für glb (K) muß unter allen Zahlen x, die sowohl Teiler von m als auch von n sind, eine größte gesucht werden. Gesucht ist also ein größter gemeinsamer Teiler von m und n. Diese Zahl existiert stets und wird mit ggT (m, n) bezeichnet. So ist etwa ggT (12, 8) = 4. Wir haben also ggT (m, n) = glb (K). Entsprechend ist lub (K) das kleinste gemeinsame Vielfache von m und n, das auch mit kgV (m, n) notiert wird: lub (K) = kgV (m, n). Der ggT und das kgV können auch für (endlich viele) Zahlen m1 , m2 , . . . , mk erklärt werden. Es bezeichne M eine beliebige Menge. Mit der im folgenden beschriebenen Konstruktion wird M mit einer einfachen, aber für die Programmierung wichtigen partiellen Ordnung versehen. Ist nämlich ⊥ ∈ / M irgendein (nicht zu M gehörendes) Element, so wird zunächst die Menge M ⊥ = M ∪ {⊥} (4.3) eingeführt. Definition 4.6 (Flache partielle Ordnung) Unter der flachen partiellen Ordnung auf der Menge M ⊥ versteht man die folgende Relation: a b ⇐⇒ (a = ⊥ ∨ a = b) . Man prüft leicht nach, daß es sich hierbei tatsächlich um eine partielle Ordnung handelt. In den Anwendungen der Programmierung spielt das Element ⊥ die Rolle des Undefinierten oder einer Fehlersituation, wenn Operationen auf der Menge M ausgeführt werden. Ist etwa M die endliche Menge M = {1, 2, 3, 4}, so wird die zugehörige flache partielle Ordnung durch ein Hasse-Diagramm beschrieben, in dem das Element ⊥ zuunterst steht und mit allen anderen Elementen 1,2,3,4, die nebeneinander in einer Zeile vorkommen, durch eine Linie verbunden ist. 4.3 Funktionen auf partiell geordneten Mengen. In der Informatik (und in anderen Gebieten der Mathematik) ist es üblich, den Begriff Morphismus für eine Abbildung f : A → B zu benutzen, wenn f nicht nur von A nach B abbildet, sondern auch noch strukturinvariant ist. Was bedeutet das? Mittels partiellen Ordnungen wird Mengen eine gewisse Struktur verliehen (die man z.B. durch Hasse-Diagramme visualisieren kann). Nun ist es oft wünschenswert, daß eine Abbildung zwischen zwei partiell geordneten Mengen diese Ordnungsstrukturen bewahrt. Diese Eigenschaft wird in der folgenden Definition präzisiert. Definition 4.7 (Morphismus, monotone Abbildung, Isomorphismus) Ein Morphismus zwischen zwei partiell geordneten Mengen (M1 , R1 ) und (M2 , R2 ) ist eine Funktion f : M1 → M2 , für die zusätzlich (x, y) ∈ R1 =⇒ (f (x), f (y)) ∈ R2 gilt. Ein Morphismus wird auch als eine monotone Abbildung bezeichnet. Ist f zusätzlich bijektiv, so nennt man f auch einen Isomorphismus. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 73 Ein Beispiel für einen solchen Morphismus ist die Funktion f : (−π/2; +π/2) → R mit f (x) = tan(x); dabei ist der Bild- und Urbildbereich mit der Relation ’≤’ versehen. Die monotonieerhaltende Eigenschaft des Tangens mache man sich an seinem Graphen klar! Ein anderes Beispiel für einen Morphismus ist die Funktion c1 : A+ → A, die den ersten Buchstaben eines (nichtleeren) Wortes zurückgibt, wenn A mit einer Ordnung R und A+ mit der auf R basierenden lexikographischen Ordnung versehen ist (vgl. das Beispiel im Anschluß an Definition 4.2). Für die Programmierung ist die folgende Anwendung wichtig. Beispiel 4.4 (Strikte Funktionen) Es seien M ⊥ und N ⊥ zwei Mengen mit den jeweiligen flachen partiellen Ordnungen. Eine Funktion f : M ⊥ → N ⊥ heißt strikt, wenn f (⊥) = ⊥ (4.4) ist. Man prüft leicht nach, daß eine strikte Funktion monoton (also ein Morphismus) ist: Sind nämlich m, n ∈ M ⊥ mit m n (im Sinne der flachen partiellen Ordnung), so werden bzgl. m zwei Fälle unterschieden. Ist erstens m = ⊥ (in M ⊥ ), so erzwingt die Striktheit von f in (4.4) dann f (m) = ⊥ (in N ⊥ ). Gemäß Definition 4.6 der flachen partiellen Ordnung gilt deshalb f (m) f (n) (in N ⊥ ), unabhängig vom Wert f (n). Zweitens kann der Fall m = n aufgrund von m n eintreten. Hieraus folgt aber f (m) = f (n), und so ergibt die flache partielle Ordnung in N ⊥ dann wiederum f (m) f (n). In beiden Fällen ist also f (m) f (n) nachgewiesen. In dem folgenden Satz wird eine partielle Ordnung auf Funktionen konstruiert. Satz 4.1 (Partielle Ordnung auf totalen Funktionen) Es seien (M1 , R1 ) und (M2 , R2 ) zwei partiell geordnete Mengen. Dann kann die Menge F aller totalen Funktionen, die M1 nach M2 abbilden, mit einer partiellen Ordnung R ⊆ F × F versehen werden: (f1 , f2 ) ∈ R ⇐⇒ ∀ a ∈ M1 : (f1 (a), f2 (a)) ∈ R2 . Der einfache Beweis dieser Aussage sei dem Leser überlassen. Da bei der in diesem Satz eingeführten Ordnung die Funktionen f1 und f2 genau dann gemäß (f1 , f2 ) ∈ R geordnet sind, wenn die entsprechende Relation elementweise gemäß (f1 (a), f2 (a)) ∈ R2 bzgl. R2 gilt, wird die Relation R auch mit R2 bezeichnet. Da die Definition der partiellen Ordnung auf F × F den Allquantor ∀ a ∈ M1 verwendet, wurden totale Funktionen zugrundegelegt. In der Praxis macht es oft keinen Unterschied, ob man partielle Funktionen betrachtet, die auf einer gewissen Teilmenge U des Urbildbereiches M nicht erklärt sind, oder ob man es mit totalen Funktionen auf M ⊥ zu tun hat, die für x ∈ U den Wert f (x) = ⊥ annehmen. Beide Betrachtungsweisen sind prinzipiell gleichwertig. Das begründet der folgende Satz. Satz 4.2 Die Menge A B sei mit der aus Beispiel 4.2 bekannten partiellen Ordnung v versehen. Ferner sei die Menge der strikten Funktionen { g : A⊥ → B ⊥ | g ist eine strikte Funktion } FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 74 mit der in Satz 4.1 erklärten Ordnung R versehen. Die dabei in Satz 4.1 verwendeten Ordnungen R1 und R2 sind die jeweiligen flachen partiellen Ordnungen in A⊥ und B ⊥ . Dann gibt es einen Isomorphismus zwischen den Mengen A B und { g : A⊥ → B ⊥ | g ist eine strikte Funktion }. Die grundlegende Idee im Beweis dieses Satzes besteht in der Konstruktion einer bijektiven Abbildung φ, die jeder partiellen Funktion f : A B eine gewisse strikte Funkion g : ⊥ ⊥ A → B zuordnet und zudem die jeweiligen Ordnungen erhält. Wir geben nur eine solche Abbildung an und überlassen dem Leser den Nachweis ihrer geforderten Eigenschaften. Es ist ziemlich naheliegend, die folgende Funktion φ zu wählen: f (a) falls a ∈ Dom (f ) φ(f )(a) = (4.5) ⊥ falls a 6∈ Dom (f ) ∨ a = ⊥ Satz 4.2 zeigt, daß man im Software-Engineering bei Funktionen nicht mehr unterscheiden muß zwischen Eingaben, bei denen die Funktionen keine sinnvollen Resultate liefern (also für diese Eingaben nicht definiert sind) und solchen Eingaben, für die ⊥ ausgegeben wird. Dies ist auch folgerichtig, denn ein Programm, das etwa bei einer Division durch Null einfach seinen Geist aufgibt, ist wenig praktikabel. Vielmehr sind Programme erwünscht, die im Fehlerfall zumindest melden, daß ein Fehler aufgetreten ist - und diese Meldung sollte möglichst auch noch verständlich an der Schnittstelle zum Benutzer bekanntgegeben werden. Insofern ist es sinnvoll, partielle Funktionen im Software-Engineering gar nicht mehr zu betrachten und immer mit totalen (aber strikten) Funktionen zu arbeiten. Satz 4.2 begründet, warum man das auch immer tun darf. In der folgenden Definition wird eine spezielle Teilmenge von partiell geordneten Mengen beschrieben. Definition 4.8 (Vollständig partiell geordnete Mengen) Eine vollständig partiell geordnete Menge ist eine partiell geordnete Menge (M, R) mit den folgenden zusätzlichen Eigenschaften: • M besitzt ein kleinstes Element. • Jede Kette in M besitzt eine kleinste obere Schranke. Es wird nun vereinbart, daß das kleinste Element solcher vollständig partiell geordneter Mengen (in der Programmierung) immer mit ⊥ bezeichnet wird. Im folgenden wird außerdem die Kurzschreibweise ’vpg-Menge’ bzw. ’pg-Menge’ für eine ’vollständig partiell geordnete Menge’ bzw. eine ’partiell geordnete Menge’ verwendet. Die einfachsten vpg-Mengen sind die Mengen, auf denen die flache partielle Ordnung definiert ist (vgl. Definition 4.6). Das kleinste Element in (M, ) ist das Element ⊥. Außerdem besitzt jede Kette eine kleinste obere Schranke, denn aufgrund der Definition von haben alle Ketten die Gestalt K = {⊥, x} mit x ∈ M ⊥ . Für diese Ketten ist lub (K) = x. Es folgt ein weiteres wichtiges Beispiel. Beispiel 4.5 Die in Beispiel 4.2 eingeführte und untersuchte pg-Menge (A B, v) ist sogar eine vpg-Menge. Das kleinste Element ist offensichtlich die leere Funktion ∅ : A B. FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 75 Um die zweite Eigenschaft für Ketten aus A B in der Definition von vpg-Mengen nachzuweisen, wird eine beliebige Kette K ⊆ A B solcher partieller Funktionen untersucht. Eine kleinste obere Schranke g dieser Kette K muß eine Funktion sein, deren Definitionsbereich sämtliche Definitionsbereiche aller Funktionen f ∈ K umfaßt. Außerdem erzwingt die Ordnung v in der Kette, daß die Identitäten g(x) = f (x) für alle x in diesem Definitionsbereich und alle Funktionen f der Kette bestehen, die in x definiert sind. Für den Definitionsbereich D = Dom (g) der gesuchten Funktion g ist also der Ansatz [ D = {Dom (f ) | f ∈ K} (4.6) sinnvoll. Nun sei x ∈ D. Somit existiert nach (4.6)eine Funktion f ∈ K, für die f (x) definiert ist. Dann setzen wir g(x) := f (x). Zunächst muß man sich überlegen, daß die Funktion g auf diese Weise wohldefiniert ist 2 , d.h. g(x) ist durch die obige Festlegung eindeutig bestimmt. Hierzu seien f1 und f2 zwei Funktionen der Kette K, die beide in x definiert sind. Aufgrund der Ketteneigenschaften von K hat man dann entweder f1 v f2 oder f2 v f1 . In beiden Fällen stimmen dann aber die Funktionen f1 , f2 auf der kleineren Menge der beiden Mengen Dom (f1 ) und Dom (f2 ) überein. Zu dieser kleineren Menge gehört in jedem Fall x, und so ist g(x) = f1 (x) = f2 (x). Das beweist die Eindeutigkeit der Festlegung von g. Es bleibt dem Leser überlassen, für jede obere Schranke h von K die Relation g v h nachzuweisen und damit die Eigenschaft g = lub (K) zu begründen. In diesem Zusammenhang wird noch ein weiteres nützliches Resultat angeführt. Satz 4.3 (Die Produktordnung) Es seien (M1 , R1 ), . . . , (Mn , Rn ) pg-Mengen (bzw. vpg-Mengen). Auf der Menge M = M1 × M2 × · · · × Mn wird nun mittels (x1 , x2 , . . . , xn ), (y1 , y2 , . . . , yn ) ∈ R ⇐⇒ ∀ i ∈ {1, 2, . . . , n} : (xi , yi ) ∈ Ri eine Relation R ⊆ M × M definiert. Dann ist R gleichfalls eine partielle Ordnung und M wird durch diese Relation zu einer pg-Menge (bzw. zu einer vpg-Menge). Diese partielle Ordnung heißt auch Produktordnung. Es wird nun ein weiterer zentraler Begriff eingeführt. Hierzu sei X ⊂ A und f : A → B eine (totale) Funktion. Mit f (X) werden alle Elemente in B bezeichnet, die als Bild eines Elementes aus X unter f vorkommen: f (X) = { f (x) | x ∈ X } . (4.7) Definition 4.9 (Stetigkeit) Es sei (M1 , R1 ) eine vpg-Menge und (M2 , R2 ) eine pg-Menge. Eine Funktion f : M1 → M2 heißt stetig, wenn für jede Kette K ⊆ (M1 , R1 ) folgendes gilt: lub (f (K)) existiert in M2 , und f (lub (K)) = lub (f (K)) . (4.8) Hierbei existiert lub (K) wegen der vpg-Eigenschaft von M1 . 2 g(x) darf nicht von der Wahl der speziellen Funktion f abhängen! FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 76 Mit anderen Worten: Eine Funktion ist stetig, wenn sie kleinste obere Schranken wieder auf kleinste obere Schranken abbildet. Achtung: Der in der vorigen Definition eingeführte Stetigkeitsbegriff unterscheidet sich allerdings von dem in der Analysis gebräuchlichen Stetigkeitsbegriff. Man kann leicht zeigen, daß jede stetige Funktion f : M1 → M2 auch ein Morphismus ist: Hierzu sei gemäß Definition 4.7 (x, y) ∈ R1 . Dann ist offensichtlich K = {x, y} eine Kette in M1 mit lub (K) = y. Aus der vorausgesetzten Stetigkeit von f : M1 → M2 folgert man dann f (y) = f (lub (K)) = lub (f (K)) = lub ({f (x), f (y)}) . Dies bedeutet, daß f (y) bzgl. der Relation R2 das größere der beiden Elemente f (x) und f (y) ist, oder (f (x), f (y)) ∈ R2 . Das war zu zeigen. Allerdings ist nicht jeder Morphismus auch stetig, wie das folgende Beispiel zeigt. Hierzu werden die natürlichen Zahlen N um ein weiteres Element ∞ ergänzt. Anschließend wird auf N∞ = N ∪ {∞} eine partielle Ordnung R definiert: (x, y) ∈ R ⇐⇒ x ≤ y (mit x, y ∈ N) ∨ y = ∞ . Mit dieser partiellen Ordnung ist N∞ eine vpg-Menge, denn 0 ∈ N∞ ist kleinstes Element und jede Kette K hat eine kleinste obere Schranke. Denn entweder ist die Kette endlich, dann ist das größte Element gleich lub (K), oder K ist unendlich, dann hat man lub (K) = ∞. Man beachte, daß in einer endlichen Kette ∞ vorkommen kann (K = {1, 2, 3, ∞} mit lub (K) = ∞) , während es in einer unendlichen Kette fehlen kann (K = {2, 4, 6, 8, 10, . . . } mit lub (K) = ∞). Die Funktion f : N∞ → {0, 1} sei durch 0 falls n ∈ N f (n) = 1 falls n = ∞ definiert. Hierbei ist der Bildbereich {0, 1} mit der ’≤’ - Relation geordnet. f ist offensichtlich ein Morphismus, aber nicht stetig. Letzteres sieht man ein, wenn man N der Abbildung f unterwirft: lub (f (N)) = lub ({0}) = 0 6= 1 = f (∞) = f (lub (N)) . Nun wird ein zentrales Resultat vorgestellt, das in der Informatik im Bereich der Prüfung von Programmen auf Korrektheit wesentliche Bedeutung gewonnen hat. Man verwendet dieses Resultat, um weitreichende Aussagen über die Korrektheit solcher Programme zu treffen, in denen Funktionen rekursiv definiert werden. Satz 4.4 (Über kleinste Fixpunkte stetiger Funktionen)3 Es sei (M, R) eine vpg-Menge mit ⊥ ∈ M und (⊥, x) ∈ R für alle x ∈ M . Ferner sei f : M → M eine stetige Funktion. Dann besitzt die Menge fix (f ) = {x ∈ M | f (x) = x} 3 Fixpunktsatz von Stephen Kleene, amerikanischer Logiker, 1909 - 1994 FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 77 ein kleinstes Element, das durch die kleinste obere Schranke der Menge K = {⊥, f (⊥), f 2 (⊥), f 3 (⊥), . . . } gegeben ist. Hierbei bezeichnet f n die n-fach iterierte Funktion f : f n = f ◦ f ◦ · · · ◦ f . Im Satz wird | {z } n also behauptet, daß min fix (f ) = lub(K) . Beweis: Es wird hier neben der Schreibweise (x, y) ∈ R auch die gleichbedeutende Notation x y verwendet. Zunächst wird gezeigt, daß die Elemente in K eine Kette bilden und lub (K) überhaupt existiert. Weil f stetig ist, ist f nach den obigen Ausführungen auch ein Morphismus. Aus der Minimalität von ⊥ ergibt sich: ∀x ∈ M : ⊥ x, speziell für x = f (⊥) ∈ M ist dann ⊥ f (⊥). Jetzt wird mehrfach ausgenutzt, daß f ein Morphismus ist: Aus ⊥ f (⊥) erhält man sukzessive f (⊥) f 2 (⊥), f 2 (⊥) f 3 (⊥), f 3 (⊥) f 4 (⊥), usw. Insgesamt ist so ⊥ f (⊥) f 2 (⊥) f 3 (⊥) · · · gezeigt, was bedeutet, daß K eine Kette ist. Da M als vollständige pg-Menge vorausgesetzt ist (Definition 4.8), besitzt K eine kleinste obere Schranke x0 = lub (K) . (4.9) lub (f (K)) = lub (K) . (4.10) Wir zeigen nun: Hierzu werden zwei Fälle unterschieden. 1.Fall: f (⊥) 6= ⊥. Dann ist wegen f (K) = {f (⊥), f 2 (⊥), f 3 (⊥), . . . } = K \ {⊥}, und daraus ergibt sich sofort (4.10). 2.Fall: f (⊥) = ⊥. Dann hat man K = {⊥}, f (K) = {⊥}, mithin lub (f (K)) = ⊥ = lub (K). Das ist wieder (4.10). Unter Anwendung von (4.9), (4.10) und der Stetigkeit von f ergibt sich nun: f (x0 ) = f (lub (K)) = lub (f (K)) = lub (K) = x0 . Damit ist gezeigt, daß x0 ein Fixpunkt von f ist. Jetzt muß noch bewiesen werden, daß x0 auch der kleinste Fixpunkt von f ist. Dazu sei y ein weiterer beliebiger Fixpunkt von f . Zunächst wird für y mit dem Prinzip der einfachen Induktion die Aussage ∀ n ∈ N : (f n (⊥), y) ∈ R (4.11) FHDW Hannover - Mathematik, Teil I - Prof.Dr.C.Elsner 78 bewiesen. Induktionsanfang: n = 0. Wegen f 0 (⊥) = ⊥ ist die Aussage (f 0 (⊥), y) = (⊥, y) ∈ R richtig. Induktionsannahme: Es gelte (f n−1 (⊥), y) ∈ R für ein n > 0. Induktionsschluß: Unter Ausnutzung der Induktionsannahme, der Morphismus-Eigenschaft von f und der Tatsache, daß y ein Fixpunkt von f ist, ergibt sich nacheinander: (f n−1 (⊥), y) ∈ R ⇒ (f (f n−1 (⊥)), f (y)) ∈ R ⇒ (f n (⊥), f (y)) ∈ R ⇒ (f n (⊥), y) ∈ R . Damit ist (4.11) bewiesen. Also ist (x, y) ∈ R für alle Elemente x ∈ K. Das erweist y als eine obere Schranke von K. Nun ist aber x0 gemäß (4.9) die kleinste obere Schranke von K. Es ist dann (x0 , y) ∈ R (vgl. die Bemerkung im Anschluß an Definition 4.5: alle oberen Schranken von K sind mit der kleinsten oberen Schranke vergleichbar). Da y nach Voraussetzung auch ein beliebiger Fixpunkt von f ist, ist somit gezeigt, daß x0 der kleinste Fixpunkt von f ist.