Grundlagen der Mathematik (Mathematik vom Standpunkt des Informatikers) überarbeitete Version vom 17.07.2014 Prof. Dr. Hans-Jürgen Steens Fachhochschule Kaiserslautern Standort Zweibrücken [email protected] 17. Juli 2014 2 Zur Philosophie der Vorlesung Grundlagen der Mathematk Im Zuge der Umstellung auf die neuen gestuften Studiengänge am Standort Zweibrücken erhöhte sich der Umfang der mathematischen Grundausbildung. Dies bot die Möglichkeit, die Rolle der Mathematik in der Informatik neu zu überdenken und neue Schwerpunkte zu setzen. Mathematik in der Informatik vice versa Sie man vom grundsätzlich emanzipatorischen Aspekt der Mathematik ab1 , so spielt die Mathematik in der Informatik mindestens eine Doppelrolle: Sie ist einerseits Objekt für die Informatiker, die wichtige mathematische Algorithmen seien sie aus der Statistik, der linearen Optimierung, der Strömumgsmechanik oder anderen Gebieten in geeigneten Programmiersprachen implementieren. Sie wird andererseits, und zwar insbesondere in der theoretischen Informtik, als Vehikel der Modellbildung in und für die Informatik benutzt. Darüberhinaus durchziehen klassische mathematische Beweistechniken etwa bei der Verikation von Algorithmen oder deren Komplexitätsanalyse wie selbstverständlich die gesamte Informatik. Man könnte in diesem Sinne die Rollen der Mathematik mit denen einen Compilers in der Informatik vergleichen. Dieser kann dort einerseits die Rolle eines Objekts annehmen, wenn es um Fragen der ezienten Implementierung und Optimierung von Sprachübersetzern geht. Andererseits wird er als selbstverständliches Werkzeug für das Programmieren benutzt, über dessen Innenleben man bei der Codierung keinen Gedanken zu verlieren braucht. Diese Doppelrolle des Compilers ist natürlich kein Zufall. Sie ist, wenn man so will, in der Doppelgesichtlichkeit einer Turingmaschine begründet. Diese kann einerseits als reiner Algorithmus andererseits aber auch als Maschine aufgefasst werden, auf der Algorithmen zum Ablauf gebracht werden können (eben als Vehikel für sie). Insgesamt haben die bis zum Beginn des letzten Jahrhunderts zurückreichenden Versuche, die Mathematik in ihrer Gesamtheit durchzualgorithmisieren, zu einer sehr groÿen Überlappung der Gegenstandsbereiche der Mathematik und der Informatik geführt (auch wenn sie infolge der Gödelschen Unvollständigkeitssätze nicht zu einem endgültigen Erfolg geführt haben). Gehören also die metamathematischen Untersuchungen zur Berechenbarkeit zur Domäne der (theoretischen) Informatik? Oder sind umgekehrt die Probleme der für die Informatik relevanten formalen Sprachen nicht auch der Mathematik zuzurechnen? Deren Fragestellungen haben ihren Ursprung ja direkt in einigen der berühmten von Hilbert zu Beginn des 20. Jahrhunderts formulierten Problemen. Es stellt sich also nicht die Frage (und sie hat sich auch ernsthaft nie gestellt), ob eine mathematische Grundlagenausbildung zum Grundkanon der Informatik gehören sollte oder nicht. Man kann sich allerdings die Frage stellen, inwieweit die oensichtliche Verwobenheit von Mathematik und Informatik nicht stärker in der 1 Dieser Aspekt könnte treend mit der Kantschen Auorderung Habe Mut dich deines eigenen Verstandes zu bedienen ausgedrückt werden. 3 Methodologie der Mathematikausbildung zum Tragen kommen sollte.2 Dies führt zu einem Lehrbuch, dass zwar von der Warte der Informatik her geschrieben ist, aber eben nicht einfach nur ein Mathematiklehrbuch für Informatiker sein will. Auch und gerade ein Student der reinen Mathematik sollte hier Anregungen nden, die ihn wichtige Zusammenhänge so hoe ich leichter verstehen lassen. Methodologie der Informatik als Modell für die Mathematik Sprechen wir von methodologischen Gemeinsamkeiten, die die Informatik und Mathematik in ihren jeweiligen Vorgehensweisen verbinden, dann fallen uns zunächst die Abstrahierungen ein. So nden sich in der Mathematik von Beginn an dieselben Konzepte, wie sie in der Softwaretechnik auf natürliche Weise in Form der funktionalen oder auch der objektorientierten Kapselung Anwendung nden. Sie manifestieren sich einerseits in der Zerlegung mathematischer Beweise in Hilfssätze, Sätze und Folgerungen, andererseits in der Zerlegung von Algorithmen in Funktionen (Prozeduren") und Unterfunktionen (wobei diese Analogie nicht nur oberächlich besteht.) Bereits die Zahlen selbst sind auch wenn dies zu Beginn des Studiums durch die jahrzehntelange Beschäftigung mit ihnen in Vergessenheit geraten ist ein rein abstraktes Konstrukt und letztlich nur durch ihr äuÿeres Verhalten charakterisierbar. Softwaretechnisch können sie deshalb auf natürliche Weise als sog. abstrakte Datentypen modelliert werden. Spätestens hier wird dann klar, dass die Mathematik mehr ist, als ein add-on für die Informatik. Vor diesem Hintergrund wurde nun das Experiment gewagt, die in der Informatik letztlich ganz selbstverständlich genutzten Konzepte der systematischen Abstraktion in der einführenden MathematikVorlesung von Beginn an strategisch einzusetzen. Wie angedeutet kann man hier schon beim Zahlbegri selbst ansetzen. Nun werden Zahlen in der Informatik zwar generell durch die Zustände bistabiler Bausteine repräsentiert, wobei schon die Darstellung negativer Zahlen ganz unterschiedliche Implementierungen etwa in Form des 1er oder 2er Komplements erlaubt. Zahlen und insbesondere die hiermit zusammenhängenden arithmetischen Operationen werden also i.A. durch spezialisierte Hardware realisiert. Theoretisch könnte man sie aber auch mittels Software auf einer weniger spezialiserten Hardware implementieren. Letztlich stehen wir hier vor der Frage nach der Wahl eines speziellen Modells der Zahlen. In der Mathematik wird ein Zahlmodell bevorzugt auf das Modell einer Mengenlehre zurückgeführt. Hier bietet sich in der Informatik die Chance, Modelle der Zahlen von vornherein als abstrakte Datentypen zu konzipieren, die ihr äuÿeres, ihr systemisches Verhalten durch geeignete Sätze zugesicherter Eigenschaften erhalten. Die Mengenlehre als Vehikel für eine solche Modellierung kann dabei selbst als abstrakter Datentyp ausgedrückt werden. Die systemischen Eigenschaften dieses Datentyps werden dann in Form der Axiome von Zermelo und Fraenkel formuliert. Der Versuch einer (konzeptuellen) Implementierung des geschilderten Ansatz mit 2 Ich denke da insbesondere an die Behandlung der Mengenlehre, die ich übertreibe ein wenig wie Puderzucker auf einen Kuchen gestreut, dort auch wieder weggeblasen werden könnte, ohne dass es am Geschmack etwas änderte. Charakteristisch hierfür ist die auch in neuesten Lehrbüchern immer noch benutzte Cantorsche Mengendenition, als Grundlage der Mengenlehre. 4 Hilfe einer Programmiersprache kommt mit erstaunlich wenigen Sprachfeatures aus: Es genügten z.B. ein einziger vordenierter Datentyp Set sowie zwei in der Sprache vordenierten zweistelligen booleschen Operationen (in der Rolle von Prädikaten) namens isElement(x,y) und isEqual(x,y). Die Implementierung dieses Datentyps zusammen mit den beiden Operationen auf einer geeigneten Hardware könnte dem Benutzer/Programmierer verborgen bleiben. Sie müsste einzig und allein dafür Sorge tragen, dass die Operationen die geforderten von auÿen sichtbaren systemischen Eigenschaften aufwiesen. Für den Datentyp Set wären dies eben die im Axiomensystem von Zermelo und Fraenkel formulierten Eigenschaften. Damit stoÿen wir technisch natürlich auf ein nur allzubekanntes Problem. Die Eigenschaften von Zermelo und Fraenkel können nur dann gewährleistet werden, wenn die Implementierung von Set eine Datenbank mit (bei Inanspruchnahme eines sog. Herbrandschen Modells) mindestens abzählbar unendlich viele Objekte dieses Typs bereithält. Hypothetische NonplusultraProzessoren . . . Somit wäre vor einer Verbindung zwischen Informatik und Mathematik auf dieser Ebene zunächst einmal zu klären, inwieweit eine Hardware zur Implementierung von Set überhaupt vernünftig denkbar sein kann. Operationell manifestierte sich der Sachverhalt, dass wir es notwendig mit einem (abzählbar) unendlichen Modell zu tun haben, in der Existenz unendlich oft zu durchlaufenen Schleifen. Die programmiertechnische Umsetzung der Eigenschaften von Zermelo/Fraenkel führte in der Codierung nämlich auf Konstrukte der Art for Set x ..., wobei eine Schleifenvariable x alle Objekte des Typs Set und das sind abzählbar unendlich viele in für den Benutzer endlicher (Eigen)Zeit zu durchlaufen hätte. 3 Interessanterweise sind Prozessoren, die hierzu in der Lage wären, unter den Randbedingungen einer extremen Physik durchaus denkbar. Ein solcher Prozesor müsste (zeitlich) hyperbolisch beschleunigt werden, etwa derart dass ein Befehlszyklus jeweils nur die Hälfte der Zeit des zeitlich vorhergehenden Zyklus benötigte. Ein solcher Prozessor wäre demnach in der Lage, in einem endlichen Zeitintervall (abzählbar) unendlich viele Befehlszyklen zu durchlaufen. In erster Näherung kann man hier an die physikalischen Phänomene im Umfeld des Ereignishorizontes eines schwarzen Loches denken. Hierzu stellen wir uns vor, dass wir auÿerhalb des schwarze Lochs (auÿerhalb des Ereignishorizontes) in einer festen Entfernung hiervon einen klassischen Prozessor plazierten. Seine Befehlszyklen sind gemessen in seiner Eigenzeit, gemessen also mit einer am Prozessor selbst angebrachten Uhr jeweils von konstanter Dauer. Bezogen auf einen Beobachter, der sich in Richtung auf den Ereignishorizont bewegte, würde derselbe Prozessor jedoch genau das vorhin beschriebene quasi hyperbolische Beschleunigungsverhalten aufweisen. Der sich bewegende Beobachter würde in einem endlichen Intervall seiner Eigenzeit theoretisch in der Lage sein unendlich viele Zyklen des Prozessors zu erleben. Damit wäre der Beobachter theoretisch in der Lage, eektiv zwischen unendlich oft durchlaufenen Schleifen und nur endlich oft durchlaufenen Schleifen zu untescheiden: Die Beendigung einer nur endlich oft durchlaufenen Schleife könnte dem Beobachter mittels eines Signals zum Ereignishorizont hin mitgeteilt werden. Bei einer unendlich oft durchlaufenen Schleife bliebe ein solches Signal aus. Der in endlicher Eigenzeit den Ereignishorizont erreichende Beobachter würde in eben 3 Für die Programmierung haben wir hier das in der Programmiersprache Java 5 gebräuchliche Konstrukt einer foreachSchleife über Collections in einer vereinfachten Form hergenommen. 5 dieser endlichen Eigenzeit Gewissheit über das Vorliegen oder Nichtvorliegen einer unendlichen Programmschleife gewinnen können. In der geschilderten quickanddirty-Implementierung wäre ein solcher uendlicher Zyklus allerdings nur einmal für den Benutzer/Beobachter zu durchlaufen.4 Dennoch haben wir hier zumindest einen Denkansatz, der ausgehend von der realen Physik unseres Universums einen hyperbolisch beschleunigten Prozessor vorstellbar macht. Zusätzlich müsste unsere Implementierung nun dafür sorgen, dass bei jedem Schleifendurchlauf ein jeweils neues Objekt aus Set dem Prozessor zur Verfügung gestellt wird. Eine Speicherung dieser Objekte erforderte einen unendlich groÿen Speicherplatz, der bei einem angenommenen unendlichen Universum allerdings nicht notwendig allen verfügbaren Platz einnehmen müsste.5 Eine statische Speicherung dieser Objekte vorab käme nicht in Frage. Man könnte die für einen Zugri benötigten Objekte jedoch jeweils onthey erzeugen. Auf Grund der Endlichkeit der Lichtgeschwindigkeit dauerte der Zugri zwar immer länger, dennoch könnten theoretisch in der endlichen Eigenzeit des bewegten Benutzers alle Objekte in der unendlichen Schleife angesprochen werden.6 . . . und eine zugehörige Programmierumgebung Soweit zur Theorie. Eine Programmiersprache, die auf einer solchen Hardware aufsetzte, brauchte wir haben es oben schon erwähnt zur Interpretation der ZermeloFraenkelschen Regeln nur sehr wenige Konstrukte. Eine kleine Teilmenge der Programmiersprache Java genügte ja völlig. Programmiertechnisch könnte man auf eine vollständig implementierte Mengenlehre in Form eines vordenierten abstrakten Datentyps aufzusetzen, nämlich der (Software)Klasse Set. Alle relevanten mathematischen Objekte beginnend mit den natürlichen Zahlen lieÿen sich hierauf aufbauend nun im Rahmen selbstdenierter Datentypen zu realsieren und dies ist in der Softwaretechnik etwas ganz Alltägliches. Bezüglich der Didaktik erönen sich hier neue Horizonte: 1. Die natürlichen Zahlen werden explizit als das sichtbar, was sie schon immer gewesen sind, was aber in der langen Beschäftigung mit ihnen in Vergessenheit geraten ist: als das Ergebnis eines Abstraktionsprozesses. 2. Die Programmierung ist bei der Mathematik von Anfang an dabei und zwar voll integriert. Sie erweist sich als Vehikel für die Mathematik. 3. Die Mengenlehre ist nicht mehr nur eine aufgesetzte Sprechweise, die man nebenher benutzt. Sie ist vielmehr direkt implementiert in unserem (hypothetischen) Prozessors als Interpreter des abstrakten Datentyps Set. Die Beschreibung der Regeln geschieht in einer sehr einfachen prädikatenlogische Sprache. Ihre Einführung im Curriculum erfolgt damit schon früh und kann auf natürliche Weise motiviert werden. In unserer Programmiersprache erhält sie eine direkte Semantik. 4 Dieser müsste nebenbei bemerkt von einem extremen faustischen Erkenntniswillen getrieben sein. Abgesehen davon, dass es keine triviale Aufgabe sein dürfte, den Prozessor bezogen auf seine Eigenzeit (und die des restlichen Universums) unendlich lange am Laufen zu halten. 5 Die Hälfte oder 6 Jetzt fehlte nur ein Drittel oder ein Viertel etc. des Universums würden es auch tun. . . . noch der Geldgeber. 6 Didaktische Spinos Spätestens zu diesem Zeitpunkt werden i.d.R. reexhaft Bedenken gegen die formale Behandlung einer axiomatischen Mengenlehre laut. Sie gilt dann im Rahmen eines einführenden Textes in die Mathematik als zu schwierig und in Anfängervorlesungen auch zeitlich nicht zu bewältigen. Hierzu ist zu sagen, dass es uns gar nicht um eine ächendeckende Behandlung der Mengentheorie geht7 , sondern um einen Grabenstich, der uns nicht mehr (aber auch nicht weniger) als den benötigten abstrakten Datentypen liefert. Zu ersterem ist festzustellen, dass die Komplexität der prädikatenlogischen Beschreibung der axiomatischen Mengenlehre nicht über die hinaus geht, wie sie etwa auch für die formale Beschreibung eines Grenzwertes in der Analysis benötigt wird. Vier Quantoren werden für die Beschreibung der Konvergenz entsprechend dem Cauchyschen Konvergenzkriterium benötigt. Maximal drei Quantoren erfordert die formale Beschreibung der ZermeloAxiome für die Mengenlehre. Wenn es also üblich ist, dem mathematischen Anfänger bereits im ersten Semester regelmäÿig die Cauchyschen Konvergenzkriterien in Form der Epsilontik zuzumuten, dann sollte man auch die Axiomatik der Mengenlehre für von vorn herein zumutbar halten. Dies umsomehr, als dass zur Interpretation dieser prädikatenlogischen Ausdrücke die Semantik eines sehr kleines JavaSubsets genügt. Die Notwendigkeit, eine eigene prädikatenlogische Modelltheorie zu entwickeln, entfällt. Prädikatenlogik kann also eingeführt werden und direkt durch geeignete JavaFunktionen interpretiert werden. Dem Studienanfänger der Informatik kann damit die Bedeutung der Prädikatenlogik sehr viel direkter vermittelt werden, noch dazu mit Mitteln, die später zu seinem unmittelbaren Handwerkszeug gehören werden. Der Verweis auf mögliche Implementierungen der (mengentheoretischen) Prädikate in Tabellenform hier haben wir es i.W. nur mit einem einzigen Prädikat zu tun lässt bereits einen Ausblick auf das Konzept relationaler Datenbanken zu. Und zeigt an dieser Stelle noch einmal, dass das mengentheoretische Prädikat ∈ keiner intensionalen Semantik bedarf, sondern einzig vom äuÿeren Verhalten her seine Bedeutung erhält. Für den Informatiker ergibt sich in dem frühen Kontakt mit der axiomatischen Mengenlehre ein weiterer Vorteil: Sie bietet ihm einen ersten und intensiven Kontakt mit dem Konzept einer formalen Sprache, also mit etwas, was für den Informatiker z.B. in seiner Beschäftigung mit Programmiersprachen unverzichtbar ist. Haben sich diese gedachten Vorteile des didaktischen Konzeptes nun in der Praxis tatsächlich bewährt? In der Tat waren die Erfahrungen ermutigend. Insbesondere, wenn man berücksichtigt, dass die Fachhochschule nicht nur dem Abiturienten eine akademische Heimat geben will, sondern auch diejenigen erreichen will, die ohne die mathematischen Vorkenntnisse einer gymnasialen Oberstufe ihr Studium der Informatk beginnen. Die von den Anfängern mitgebrachten Vorkenntnisse sind demnach gerade auf mathematischem Gebiet höchst ungleich verteilt. Eine Anfängervorlesung ähnelt deshalb einer Fahrt zwischen Scylla und Charybdis. Man wird fast zwangsläug eine Gruppe unter und eine andere Gruppe überfordern. Vor diesem Hintergrund hat es sich bewährt, den Sto im geschilderten neuen Gewand zu präsentieren. Auf diese Weise ist er für alle Gruppen von Anfängern gleichermaÿen neu und anregend gewesen. 7 Den Experten wird auallen, dass gar nicht alle Axiome der Zermelo-Fraenkelschen Mengen- lehre eingesetzt werden, auÿer Acht gelassen wird u.a. das Auswahlaxiom. 7 So hat die Aussicht, sich wichtige Grundlagen der Mathematik souverän von den grundlegenden Axiomen der Mengenlehre her selbst erarbeiten zu können, mehr als einen unserer Studenten angetrieben, es wissen zu wollen. Selbstverständlich hat man auch eine Verantwortung gegenüber denjenigen Studenten, die, aus unterschiedlichen Gründen, einen solchen Steilkurs nicht vollständig mitgehen können. Hier erleichtern die in der Informatik üblichen Abstraktionen (im Sinne der Trennung zwischen dem Was und dem Wie) die Schaung geeigneter Aufsetzpunkte. Dies bedeutete in unserem Fall, dass man nach den Grundlagen der Mengentheorie, dessen vordergründiges Ziel letztlich die Implementierung eines speziellen Modells der natürlichen Zahlen (das Wie) gewesen ist, im Folgekapitel die natürlichen Zahlen nur noch als abstrakten Datentyp zu betrachten braucht. Er ist (bis auf sog. Isomorphie) eindeutig durch sein Verhalten (dem Was) bestimmt. So konnte dieses Folgekapitel ohne Probleme als EinsprungKapitel, als ein neuer Aufsetzpunkt benutzt werden, wenn man in der Mengenlehre selbst abgestürzt sein sollte. Auswirkungen auf das Selbstverständnis der Mathematik Die (mit unschuldiger Miene) postulierten Eigenschaften unseres hypothetischen Prozessors berühren letztendlich auch einige Grundlagenfragen der Mathematik. Oensichtlich benutzt unser Prozessor innite Methoden. Das geht natürlich wesentlich über das hinaus, was typischerweise akzeptiert wird. Hier mag es sich einmal lohnen, auf die Gründe einzugehen, die zu den klassischen Einschränkungen geführt haben. Reektieren diese doch in weiten Teilen die technischen Möglichkeiten, die einem (idealisiert) zur Verfügung standen. So haben wir Grund anzunehmen, dass die in der geometrischen Algebra typische Beschränkung der konstruktiven Mittel auf Zirkel und Lineal vor dem Hintergrund der Fähigkeiten zu sehen ist, diese Hilfsmittel mit einfachsten Mittel exakt zu konstruieren (oder zumindest die Illusion zu haben, dies tun zu können). Beim Zirkel ist dies oensichtlich. Für die Konstruktion eines Lineals kann man auf das wechselseitige Schleifen dreier Schleifsteine zurückgreifen.8 In ähnlicher Weise kann in der Theorie der formalen Sprachen die Beschränkung auf abzählbare Symbole durch das technische Unvermögen begründet werden, überabzählbar viele Symbole eektiv unterscheiden zu können. Dennoch lieÿe sich eine perfekte platonische Welt mit passenden Naturgesetzen vorstellen(Platon hat ja genau das getan), in der eben dies möglich ist. So lieÿen sich beliebige reelle Zahlen durch Streckenabschnitte repräsentieren, die sich beliebig wenig voneinander unterscheiden dürften und dennoch eektiv unterschieden werden könnten. Mit Hilfe der stereographischen Projektion lieÿen sich diese Zahldarstellungen sogar so kompaktizieren, dass man alle reellen Zahlen auf einen Blick erfassen könnte. Geht man in dieser platonischen Physik noch einen Schritt weiter und stellt sich also einen Prozessor vor, dessen Befehlszyklus hyperbolisch beschleunigt abläuft, dann haben wir es mit einer Technik zu tun, in der z.B. beliebige Fragen zu der Dezimalbruchentwicklung von π eektiv beantwortet werden könnten. Die insbesondere vom Konstruktivismus praktizierte Beschränkung auf nite Methoden erscheint unter diesem Aspekt philosophisch nicht zwingend. Vor allem dann, wenn man die 8 Wir vernachlässigen hierbei einmal die Eekte der Relativitätstheorie in Form einer Krüm- mung des Raumes selbst, die natürlich nicht weggeschlien werden kann, und sehen auch ab von den Eekten des Atomismus und seiner Unschärfen im Rahmen der quantenmechanischen Phänomene. 8 Mathematik als unabhängig von den herrschenden Naturgesetzen ansieht.9 Letztendlich bieten damit so hoe ich die Konzepte der Informatik (gekoppelt mit den hypothetischen technischen Erweiterung) eine neue und erfrischende Sicht auf die Mathematik.10 9 Stellvertretend möchte ich hierfür auf die Ausführungen von Roger Penrose Do natural num- bers need the physical world? in seinem Buch The Road to Reality verweisen. 10 Die hier geschilderte Sicht ist nicht die einzig mögliche Sicht auf die Mathematik. Immer noch sehr lesenswert in diesem Zusammenhang ist die Kontroverse zwischen René Thom und Jean Dieudonné über die moderne Mathematik aus den 70er Jahren des letzten Jahrhunderts. Einen Gedanken Dieudonnés aufgreifend, dass es viel einfacher sei, abstrakte Mathematik zu lehren als eine gute Intuition, möchte ich festhalten, dass es mir hier genau nicht darum geht, abstrakte Mathematik zu lehren, sondern ein Gefühl für den Prozess der Abstrahierung wachzurufen, wie er in Informatik und Mathematik gleichermaÿen wesentlich ist. Kapitel 1 Präliminarien: Zahlen 1.1 Welche Objekte dürfen es denn sein? Jede Wissenschaft hat ihren sog. Objektbereich, mit dem sie sich beschäftigt: Die Chemie z.B. betrachtet Atome und Moleküle, die Biologie die Panzen und Tiere und die Literaturwissenschaft die geschriebenen Bücher, Aufsätze und sonstigen Dokumente. Aufgabe dieser Wissenschaften ist es, die Eigenschaften der jeweiligen für sie relevanten Objekte zu beschreiben und ihre Beziehungen untereinander zu erforschen. So werden in der Chemie u.a. die Atomgewichte bestimmt, es wird erforscht aus welchen Atomen welche Moleküle gebildet werden können und welche anderen Moleküle (als Katalysatoren) dabei gegebenenfalls zugegen sein müssen (wodurch sich mannigfache Beziehungen zwischen den Objekten der Chemie, den Molekülen, ergeben). In der Literaturwissenschaft untersucht man z.B. Typologie, Aufbau, stilistische Mittel, Wortwahl der Dokumente und evtl. deren Verwandtschaft untereinander und gegenseitige Beeinussung. Die Objekte der Mathematik sind zunächst einmal die Zahlen (siehe aber auch den Beginn des nächsten Kapitels). Diese unterscheiden sich von den Objekten anderer Wissenschaften in zwei wesentlichen Gesichtspunkten: sie sind von vornherein abstrakt und es sind ihrer unendlich viele (und es gibt gute Gründe anzunehmen, nicht nur einfach unendlich viele sowie man sich in einem unendlichen Weltall unendlich viel Atome vorstellen könnte sondern im wahrsten Wortsinne potenziert unendlich viele). Hinzu kommt, dass die meisten Eigenschaften der Zahlen sich als verkappte Beziehungen zwischen den Zahlen herausstellen. Die Eigenschaft einer Zahl Primzahl zu sein outet sich demnach in Wirklichkeit als das Bestehen (oder besser Nichtbestehen) von Teilbarkeitsbeziehungen zu anderen Zahlen. Dies ist bereits ein erstes Indiz dafür, dass es bei den Zahlen tatsächlich nicht so sehr um ihre einzelnen Eigenschaften geht, ihr Wesen, sondern dass die Zahlen durch ihr Verhalten charakterisiert werden und durch ihre Beziehungen zueinander. Es sind also die sog. systemischen Eigenschaften, die die Zahlen letztlich charakterisieren. Die Frage was sind Zahlen sollte also verstanden werden im Sinne von wie verhalten sich Zahlen. Damit ist gleichzeitig klar, dass Zahlen eigentlich von vornherein nur als abstrakte Objekte aufzufassen sind. Interessanterweise ist uns dies seit frühester Kindheit mit dem Erfassen und Erlernen des Zahlbegries so in Fleisch und Blut übergegangen, dass wir hierüber keinen Gedanken mehr verschwenden und in der Zwischenzeit die Zahlen als etwas ganz Konkretes empnden. Dies mag damit zusammenhängen, 9 10 KAPITEL 1. PRÄLIMINARIEN: ZAHLEN dass jeder Mensch seine ganz persönlichen geistigen Repräsentationen, Vorstellungen, der Zahlen benutzt.(s. Zitat aus Feynman Biographie S.98 u. 167). Abstraktion steht also eigentlich schon am Beginn des Rechnens mit Zahlen und beginnt nicht erst, wenn man sich mit allgemeinen Formeln, mit algebraischen Gruppen, mit Vektorräumen etc. beschäftigt. Die Beschäftigung mit Zahlen gehört untrennbar zur menschlichen Geschichte. Zahlzeichen gehören zu den ältesten Spuren menschlicher Schrift. Letztlich ist es das mathematische Denken (und nicht besondere Gefühle), das den Menschen vom Tier unterscheidet. Es gibt nur Mathematiker und Idioten, so ist es einmal beschrieben worden (wobei diese Aussage so zu verstehen ist, dass jeder, der kein Idiot ist, die prinzipiellen Fähigkeiten eines Mathematikers besetzt, nicht etwa umgekehrt). Kommen Sie deshalb nie mit der Ausrede, Sie seien mathematisch unbegabt. 1.2 Darf es auch etwas mehr sein? Wir sollten uns kurz klarmachen, dass das, was als Zahl durchgeht, selbst immer liberaler gesehen wurde. Bei den Griechen z.B. ng die Zahl erst bei 2 an und nicht bei der 1. So heiÿt es bei Euklid: Zahl ist die aus Einheiten zusammengesetzte Menge. Und da die Einheit nicht aus Einheiten zusammengesetzt ist, fassen Euklid und Aristoteles sie nicht als Zahl auf, sondern als Grundlage des Zählens, der Ursprung der Zahl. Brüche wurden bei den alten Griechen ebenfalls nicht als Zahlen angesehen. Sie sprachen stattdessen von Proportionen. Die Null erhielt zunächst bei den indischen Mathematikern Bürgerrechte im Reich der Zahlen. Die negativen Zahlen setzten sich in der Renaissance durch. (Die alten Babylonier gaben negativen Zahlen die Bedeutung von Schulden). Brüche werden systematisch erst in der Neuzeit als rationale Zahlen eingeführt. Ein besonderes Problem stellen die Irrationalzahlen dar. Lassen sich die rationalen Zahlen als Brüche ganzer Zahlen noch (zumindest theoretisch) auf eine endliche Weise vollständig darstellen (s.u.), so ist diese Möglichkeit bei den Irrationalzahlen nicht mehr gegeben. Ihre Dezimalbruchentwicklungen sind nichtperiodisch. Deswegen schrieb man noch zu Beginn der Neuzeit: So wie eine unendliche Zahl keine Zahl ist, so ist eine irrationale Zahl keine wahre Zahl, weil sie sozusagen unter einem Nebel der Unendlichkeit verborgen ist. Bereits die Pythagoreer hatten ihre liebe Not mit den Irrationalzahlen: nach ihren Vorstellungen sollten alle Strecken kommensurabel sein, d.h. es sollte für zwei beliebige Strecken stets eine (kleinere) Strecke geben, die in beiden Strecken ganzzahlig enthalten ist. Dies hätte zur Folge, dass ihre Proportionen stets in einem rationalen Verhältnis stünden. Die Entdeckung irrationaler Proportionen löste eine regelrechte Weltanschauungskrise aus. Mit der Einbeziehung der Irrationalzahlen sind die rationalen Zahlen erweitert worden zu den sog. reellen Zahlen. Aber auch zu diesem Zahlenbereich sind weitere neue Zahlen hinzugekommen, nämlich die imaginären Zahlen. Auch sie tauchen das erste Mal in der Renaissance auf in dem Bemühen, kubische Gleichungen zu lösen (Cardano). Man rechnete mit Ihnen, gab aber zu, dass man sich von imaginären Gröÿen noch keine Vorstellungen machen könne (Descartes). Eine geometrische Deutung dieser Zahlen als Punkte der Zahlenebene wurde dann von Gauss entwickelt, womit auch die komplexen Zahlen als vollwertige Zahlen angesehen wurden. Aber auch der Bereich der komplexen Zahlen ist noch zweimal zu hyperkomplexen Systemen erweitert worden: den Quaternionen (Hamilton) und den Caley 1.3. ZAHLDARSTELLUNGEN 11 Zahlen. Damit sind die Möglichkeiten, den Zahlenbereich zu erweitern an ihr denitives Ende gekommen (wie sich mit mathematischer HighTech beweisen lässt). Mit den letzten Erweiterungen hat man einen gewissen Preis zahlen müssen, indem man sukzessiv auf gewisse Eigenschaften verzichten musste: bei den komplexen Zahlen verliert man die Möglichkeit, Zahlen der Gröÿe nach zu ordnen, bei den Quaternionen muss man auf das allgemeine Kommutativgesetz bei der Multiplikation verzichten und bei den CaleyZahlen sogar auf das Assoziativgesetz. Unter algebraischen Gesichtspunkten kann man die komplexen Zahlen als den vollkommensten Zahlenbereich ansehen. Sie sind mit einigen physikalischen Theorien so eng verzahnt, dass diese Theorien ohne sie gar nicht formuliert werden könnten (z.B. Quantenmechanik). So gesehen kommen die komplexen Zahlen durchaus in der Natur vor. 1.3 Zahldarstellungen Es hat im Laufe des Geschichte ganz unterschiedliche Darstellungen der Zahlen gegeben. Die Strichnotation (die wir z.B. auch noch beim Auszählen von Stimmen benutzen) ist eine der ersten und einfachsten für die natürlichen Zahlen. Man stellt selbstverständlich schnell fest, dass man zusätzliche Symbole zur Abkürzung groÿer Zahlen benötigt. Das Zahlensystem der Griechen war von dieser Art. bekannter ist das heute noch in Einzelfällen benutzte System der römischen Zahlen. Für eine efziente Arithmetik ist ein solches System denkbar ungeeignet. (Versuchen Sie nur einmal zwei römische Zahlen miteinander zu multiplizieren). Der Durchbruch zu einem fortschrittlichen Positionssystem erfolgte bereits vor ca. 2000 Jahren in Indien. Da ein solches System ein Zeichen für die Null erfordert, ist es kein Zufall, dass die Null bei den Indern schon früh als Zahl akzeptiert wurde (s.o.). Seit Adam Riese ist es in unserem Kulturkreis das System der Wahl. Unter Einbeziehung des Minuszeichens und der Bruchnotation (ggfs. als periodischer Dezimalbruch) kann man damit jede rationale Zahl darstellen (i.A. auf mehrere Weisen). Bemerkungen zur maschinellen Verarbeitung von Zahlen Das dezimale Stellenwertsystem ist in jüngerer Zeit in Zusammenhang mit der elektronischen Datenverarbeitung ergänzt worden zu einem dualen bzw. hexadezimalen Stellenwertsystem. Die Darstellung negativer Zahlen erfolgt dabei nicht durch ein separates Minuszeichen, sondern durch eine sog. Komplementdarstellung (häug Zweierkomplement). Man erhält hierdurch einen einfacheren maschinellen Prozessor. Interessanterweise benutzt man in der EDV unterschiedliche Repräsentationen für ganze und rationale Zahlen. Letztere werden in sog. Flieÿkommadarstellungen repräsentiert. Einerseits führt dies zu einer gröÿeren Performanz, andererseits hat man aber hierfür einen Preis in Form von Rundungsfehlern zu bezahlen. (Genaueres erfahren Sie in den Spezialvorlesungen des Grundstudiums.) 1.4 Analoge Darstellungen In der Proportionenlehre der Griechen nden wir einen Ansatz, Zahlen mit der Länge einer Strecke regelrecht zu identizieren. (Gedanklich sind die Griechen allerdings nicht bis zu diesem Punkt gegangen). Hierzu nimmt man eine beliebige Gerade, legt 12 KAPITEL 1. PRÄLIMINARIEN: ZAHLEN willkürlich einen Nullpunkt fest und trägt eine frei gewählte Strecke vom Nullpunkt auf der Geraden ab, deren Länge die Eins repräsentiert. Der Vorteil dieses Ansatzes besteht darin, dass man damit auf einen Schlag sämtliche reellen Zahlen erhält. Man hat natürlich das praktische Problem, die Zahlen genau abzulesen. Die arithmetischen Operationen in dieser Darstellung ergeben sich bzgl. der Addition und Subtraktion durch einfache Streckenaddition bzw. Subtraktion. Die Multiplikation und Division lassen sich einfach mit Hilfe der sog. Strahlensätze geometrisch realisieren. Streckenverhältnisse sind demnach genau dann kommensurabel, haben also ein gemeinsames kleineres Maÿ, das jeweils ganzzahlig in ihnen enthalten ist (s.o.), wenn die durch die Strecken repräsentierten Zahlen ein rationales Verhältnis bilden, wenn also die Division der beiden Zahlen ein rationale Zahl ergibt. und y die beiden betrachteten Strecken und sei ε ein gemeinsames x = n · ε und y = m · ε mit ganzen Zahlen n und m. Dann ist x : y = (n · ε) : (m · ε) = n : m wie sich durch Kürzen von ε sofort ergibt. Seien x te also Maÿ. Es geloensichtlich das Verhältnis x : y = n : m also rational, x und y den Wert ε = x/n = y/m wählen x : n = y : m). Damit ist nämlich n · ε = n · x/n = x Ist umgekehrt für beliebig vorgegebenes x und y dann können wir als ein gemeinsames Maÿ von x : y = n : m gilt m · ε = m · y/m = y . (wegen und nämlich Wenn man nun Grund zur Annahme hat, dass zwei Strecken x und y ein gemeinsames Maÿ ε haben (also x = n · ε und y = m · ε), dann kann dieses gemeinsame Maÿ konstruktiv auf folgende Weise gefunden werden: i) Wir ziehen die kleinere Strecke (dies sei y ) von der gröÿeren (also von x) so lange ab, bis ein Rest kleiner als y bleibt. Wenn man Glück hat, geht es schon beim ersten Mal ohne Rest auf und dann ist y selbst das gemeinsame Maÿ. ii) In den meisten Fällen bleibt aber ein Rest ungleich Null wir bezeichnen ihn mit r0 der aber ebenfalls ein Vielfaches von ε sein muss. Das heiÿt, auch y und r0 haben ε als gemeinsames Maÿ. r0 tatsächlich ein Vielfaches von ε ist, erkennt man sofort wenn man ihn als die Difx − p · y schreibt. p sei also die Häugkeit, mit der man y von x ganzzahlig enthalten ist. x − p · y ist aber nach Voraussetzung gleich n · ε − p · m · ε. Wir können jetzt ε einfach ausklammern und erhalten (n − p · m) · ε, was oensichtlich ein ganzzahliges Vielfaches von ε ist. Dass ferenz iii) Man wiederholt das Verfahren jetzt mit y und r0 als neuen Strecken und erhält wieder einen Rest, den wir mit r1 bezeichnen. Dieser ist (wenn er nicht schon Null sein sollte) aus denselben Gründen wie in ii) wieder ein Vielfaches von ε. Mit den auf analoge Weise immer wieder neu gewonnenen Resten r2 , r3 , · · · erhalten wir immer kleinere Vielfache von ε, so dass das Verfahren irgendwann mit einem Rest = 0 enden muss. Der zweitletzte Rest muss dann das gesuchte gemeinsame Maÿ von x und y sein. (Genaugenommen nden wir auf diese Weise das gröÿte gemeinsame Maÿ von x und y . Dies kann ein Vielfaches von ε sein, dann nämlich wenn n und m nicht teilerfremd sind.) Das geschilderte Verfahren wurde genau so von den griechischen Handwerkern angewendet, um ein gemeinsames Maÿ für zwei gegebene Strecken zu nden (Verfahren der Wechselwegnahme). Euklid hat es in seinen Elementen beschrieben und ist deshalb unter dem Namen Euklidscher Algorithmus bekannt. 1.5. IRRATIONALZAHLEN 13 Exkurs: Pech für die Pythagoreer Kommen wir noch einmal zu den Pythagoreern. Sie gründeten ihre Philosophie auf die ganzen Zahlen (Alles ist Zahl) und waren der Überzeugung, dass ausnahmslos alle Strecken kommensurabel seien. Ausgerechnet beim Pentagramm, dem regelmäÿigen Fünfeck, das als Ordenssymbol der Pythagoreer galt, fand einer der Pythagoreer (vermutlich Hippasus) zwei nicht kommensurable Strecken. Eigentlich brach damit das ganze philosophische Gebäude der Pythagoreer zusammen. Wie reagierte man darauf? Bemerkenswert modern: Man versuchte diese Erkenntnis einfach nach auÿen hin zu verschweigen und tat so, als sei nichts geschehen. Als es doch einer ausplauderte, wurde dieser so die Legende auf oenem Meer ins Wasser geworfen. Dass es im Pentagramm nicht kommensurable Strecken gibt, zeigt man wie folgt: man betrachtet eine Seite und eine Diagonale und führt den Euklidschen Algorithmus für die- se beiden Strecken durch. Dabei stellt man fest, dass in diesem Fall der Algorithmus nicht terminieren kann, was er aber müsste, wenn diese Strecken kommensurabel wären (s.o). Die Schlussfolgerung kann nur lauten, dass eine Diagonale und eine Seite des Pentagramms kein gemeinsames Maÿ haben. Modern gesprochen kann mn sagen, dass ihr Verhältnis eine irrationale Zahl ist (nämlich 1.5 1/2(1 + √ 5)). Irrationalzahlen Mit der Existenz einer irrationalen Zahl erhalten wir sofort unendlich viele irrationale Zahlen: mit ι ist notwendig auch ι + p/q (für jedes p/q mit ganzzahligen p und q ) irrational. Irritierend ist, dass es überabzählbar viele irrationale Zahlen gibt und das die Beschreibung einer irrationalen Zahl anders als die einer rationalen einen sehr komplexen mathematischen Apparat erfordert (wenn man nicht wie oben Zuucht bei der Anschauung der Streckenlängen sucht). In einem wichtigen Sinne kann man mit irrationalen Zahlen auch nicht rechnen: jede Darstellung im Dezimalsystem kann praktisch nur endlich viele Dezimalstellen berücksichtigen. Sind Irrationalzahlen deshalb völlig irrelevant? Nein, denn in vielen Rechnungen kann man sie zunächst symbolisch mitführen mit anderen Irrationalzahlen symbolisch verrechnen, so dass im Endeekt doch ein rationales Ergebnis die Folge ist, oder zumindest ein Ausdruck entstanden ist, der näherungsweise gut zu berechnen ist, den man aber ohne Umweg über die Irrationalzahlen so nie hätte gewinnen können. Auch wenn dem digitalen Computer die Irrationalzahlen also völlig unzugänglich sind, so sind sie in der Aufbereitung eines Problems für die maschinelle Verarbeitung durch den menschlichen Analytiker doch unverzichtbar. √ 2 ist irrational Das bekannteste √ Beispiel einer Irrationalzahl in der Schulmathematik ist ohne Zweifel die Zahl 2. Ein entsprechender Beweis (als Widerspruchsbeweis) lässt sich leicht führen und wir werden ihn deshalb hier kurz präsentieren: Zur Erinnerung: ein Widerspruchsbeweis verläuft so, dass man das Gegenteil des zu beweisenden Sachverhaltes annimmt und hieraus einen inneren Widerspruch folgert, was dann nur bedeuten kann, dass das angenommene Gegenteil (der zu beweisenden Aussage) notwendig falsch sein muss. Nehmen wir also in unserem Falle an, dass √ 2 rational ist, dass es also eine Dar- 14 KAPITEL 1. PRÄLIMINARIEN: ZAHLEN stellung der Form √ 2= p q für geeignete ganze Zahlen p und q gibt. Wir können dann ohne Probleme darüber hinaus annehmen, dass p und q schon teilerfremd sind. (Wären sie es nämlich nicht, dann könnte man den Bruch p/q solange kürzen, bis Zähler und Nenner teilerfremd sind, und mit dem neuen gekürzten Zähler und Nenner weiterrechnen). Wenn wir demnach annehmen können, dass p und q teilerfremd sind, dann dürfen jedenfalls nicht beide ein Vielfaches von 2 sein, denn ansonsten wären sie nicht teilerfremd. Beginnen wir nun unsere Überlegungen mit der Gleichung √ p 2= q die wir links und rechts jeweils quadrieren, so dass das Gleichheitszeichen erhalten bleibt: p2 2= 2 q Damit erhalten wir p2 = 2 · q 2 . p2 ist also durch 2 teilbar. Wenn wir nun noch berücksichtigen, dass das Quadrat einer ungeraden Zahl notwendig ungerade ist, bleibt für p nur die Möglichkeit, eine gerade Zahl zu sein, ansonsten könnte ja p2 nicht gerade sein. Sei also p = 2 · n. Dann ist p2 = 4 · n2 . Damit ist 4 · n2 = p 2 = 2 · q 2 , und wenn wir links und rechts durch 2 dividieren, ergibt sich: 2 · n2 = q 2 . Jetzt können wir aber mit genau derselben Argumentation für p folgern, dass auch q eine gerade Zahl sein muss, da ansonsten das Quadrat von q keine gerade Zahl nämlich 2 · n2 ergeben könnte. So sind wir nun bei der Schlussfolgerung gelandet, dass sowohl p als auch q gerade Zahlen sein müssten, ganz im Gegensatz zu unserem √ Ausgangspunkt. Dies kann nur bedeuten, dass unsere ursprüngliche Annahme, 2 sei rational, falsch gewesen sein muss. 1.6 Exkurs: Die Zahlenerweiterungen von N bis R Man könnte den Aufbau des Zahlenssystems ausgehend von den natürlichen Zahlen vergleichen mit einer zunehmenden Nutzbarmachung des Zahlenstrahls. So hat man es bei der Betrachtung der natürlichen Zahlen N nur mit einer nach rechts hin oenen Folge von Punkten zu tun. Diese werden bei Einführung der negativen Zahlen Z nach links hin gespiegelt. Die Erweiterung von Z zu den rationalen Zahlen bedeutet die Einführung gleichmäÿiger Raster der Länge 1/q für jede natürliche Zahl q auf dem Zahlenstrahl. Diese Raster können beliebig klein sein, so dass man den Zahlenstrahl damit beliebig fein ausfüllen kann. Dennoch zeigt sich, dass damit viele Zahlen (in einem präzisen Sinne kann man sogar sagen die allermeisten) noch nicht erfasst sind. Es handelt sich hierbei um die sog. irrationalen Zahlen, die sich demnach ebenfalls auf dem Zahlenstrahl wiedernden. 1.7. KOMPLEXE ZAHLEN 15 Man kann die so betrachteten Zahlerweiterungen synchron zur Lösbarkeit gewisser Gleichungen sehen: 1 · x + n = m ist lösbar mit einem x ∈ N für alle m, n ∈ N, m = n, 1 · x + n = m ist lösbar mit einem x ∈ Z für beliebige m, n ∈ N p · x + n = m ist lösbar mit einem x ∈ Q für beliebige m, n ∈ N und p ∈ Z x + p · x + n = m ist lösbar mit einem x ∈ R für beliebige m, n ∈ N und p ∈ Z ( p )2 mit = (n − m). 2 2 Nun stecken in der letzten Gleichung noch zwei oene Enden. Eine ist explizit in ( )2 der Form der dort stehenden einschränkenden Bedingung, dass p2 = (n − m). Ein zweites Ende ist etwas verkappt, da wir hier nur eine quadratische Gleichung (ein Spezialfall einer sog. algebraischen Gleichung) betrachten. Als Lösungen solcher algebraischen Gleichungen erhalten wir zwar wie gesehen in der Tat irrationale Zahlen als Lösung aber (bei weitem) nicht alle irrationalen Zahlen. Die irrationalen Zahlen lassen sich√also selbst noch einmal unterteilen in sog. algebraische irrationale Zahlen wie z.B. 2 und in transzendente Zahlen, deren bekannteste Vertreter die Zahlen e und π sind, jeweils gewonnen aus e=1+ 1 1 1 + + + ··· 1·2 1·2·3 1·2·3·4 und 1 1 1 1 + − + − ··· . 3 5 7 9 Die letzte Formel bietet nebenbei bemerkt eine näherungsweise Lösung für die Quadratur des Kreises aber eben nur eine näherungsweise. π/4 = 1 − Nun werden wir das oene Ende der algebraischen Zahlen hin zu den transzendenten Zahlen hier nicht behandeln können, das erste oene Ende, die bedingungslose Lösbarkeit algebraischer Gleichungen, werden wir in einer abschlieÿenden Komplettierung unseres Zahlenbereiches noch behandeln. 1.7 Komplexe Zahlen Historisch gesehen war es nun nicht die Lösbarkeit oder Unlösbarkeit gewisser quadratischer Gleichungen, die man problematisierte: waren quadratische Gleichungen unlösbar, dann konnte man das gleichsam direkt sehen und wurde deshalb nicht als Problem empfunden. Zum eigentlichen Problem wurden die kubischen Gleichungen, also Gleichungen der Form x3 + ax2 + bx + c = 0. Solche Gleichungen haben unter Garantie stets mindestens eine Lösung, wie man sich an Hand des Graphen der Funktion x3 + ax2 + bx + c = y sofort klar machen kann. Die in der Renaissance gefundenen Lösungsalgorithmen (verbunden mit den Namen Tartaglia, Cardano, Bombelli u.a.) hatten als Zwischen ergebnisse Terme, die Quadratwurzeln aus negativen Zahlen enthielten. Die Endergebnisse waren also 16 KAPITEL 1. PRÄLIMINARIEN: ZAHLEN korrekt (und waren auch aus dem Bereich der reellen Zahlen), doch der Weg dahin führte durch einen Zahlenbereich, der irgendwie imaginär empfunden wurde. So erhalten wir nach den Verfahren jener Mathematiker für die (einzige positive) Lösung der Gleichung x3 = 15x + 4 die Lösungsformel x= √ √ √ √ 3 3 2 + −121 + 2 − −121, die, wenn (in unseren heutigen Bezeichnungsweisen) x = (2 + i) + (2 − i) = 4 ergibt. Die Ausdrücke 2 + i oder 2 − i bilden erste Beispiele der sog. komplexen Zahlen. Man konnte also mit den komplexen zahlen schon rechnen, bevor sie als Zahlen überhaupt anerkannt wurden. Und tatsächlich ist das Rechnen mit diesen Zahlen denkbar einfach. Im Grunde genügt es, eine einzige Zahl nämlich i den schon vorhandenen reellen Zahlen explizit hinzuzufügen, wobei i die Eigenschaften haben soll, dass ihr Quadrat gleich -1 ist. Ansonsten rechnet mit mit dieser Zahl unter Benutzung aller von den reellen Zahlen her bekannten Rechenregeln. Man kann also die Zahl i mit anderen Zahlen addieren, multiplizieren, kann Summanden bzw. Faktoren vertauschen, kann unterschiedliche Summanden unterschiedlich klammern, kann gemeinsame Faktoren ausklammern u.v.a.m. Streng genommen braucht man also für das praktische Rechnen mit komplexen Zahlen auÿer der Regel, dass i2 = −1 ist, nichts Neues dazuzulernen. Es ist klar, dass man durch die Rechenoperationen neben der bewuÿt eingeführten neuen Zahl i nun automatisch viele neue Zahlen erhält, etwa i + i, 3 + i oder 2 + 3 · i + 4 · i · i. Die Gesamtheit aller Zahlen, die man hierdurch erhält, nennt man wie schon gesagt komplexe Zahlen. Unter Benutzung der bekannten Rechenregeln erhalten wir sofort als erstes Ergebnis, dass sich jede komplexe Zahl z in die Form z =a+b·i überführen lässt, wobei a und b geeignete reelle Gröÿen sind. Um dies zu zeigen, genügt es strenggenommen, wenn wir zeigen, dass die Summe bzw. das Produkt je zweier komplexer Zahlen, die jeweils schon diese Form haben, wieder in diese Form überführt werden können. Wir führen diese Berechnungen (Umformungen) für beide Fälle einmal ausführlich aus: Es sei also z1 = a1 + b1 i und z2 = a2 + b2 i. dann gilt einerseits für die Addition: z1 + z2 = commut. = distr. = assoc. = a1 + b1 i + a2 + b2 i a1 + a2 + b1 i + b2 i a1 + a2 + (b1 + b2 )i (a1 + a2 ) + (b1 + b2 )i. 1.7. KOMPLEXE ZAHLEN 17 und andererseits für die Multiplikation: z1 · z2 (a1 + b1 i) · (a2 + b2 i) = distr. a1 · a2 + b1 i · a2 + a1 · b2 i + b1 i · b2 i = commut. = (i·i = −1) a1 a2 + b1 a2 i + a1 b2 i + b1 b2 ii = a1 a2 + b1 a2 i + a1 b2 i − b1 b2 commut. a1 a2 − b1 b2 + b1 a2 i + a1 b2 i = distr. = a1 a2 − b1 b2 + (b1 a2 + a1 b2 )i. Letztlich ist es die Regel i2 = −1, die dazu führt, dass man keine höheren Potenzen von i bei der Darstellung der komplexen benötigt. Führt man die komplexen Zahlen in der beschriebenen Weise ein, dann ist man jetzt oensichtlich in der Lage alle Berechnungen mit komplexen Zahlen praktisch durchzuführen. Eine Anschauung von den komplexen Zahlen hat man hierdurch natürlich nicht gewonnen. In der Informatik macht man ein solches Vorgehen zu einer Philosophie, in dem man sog. abstrakten Datentypen einführt und betrachtet, bei denen es nur auf das äussere Verhalten ankommt und nicht so sehr auf einen inneren Mechanismus, der das beobachtete Verhalten letztlich realisiert. In diesem Sinne könnte man die in der obigen Weise eingeführten komplexen Zahlen als einen abstrakten Datentyp ansehen. Für ein mechanisches Rechnen mit den komplexen Zahlen ist dies auch völlig hinreichend. Schlieÿlich sind abstrakte Datentypen ja für den Computer geschaen worden. Für ein echtes inhaltliches Verständnis der komplexen Zahlen ist dies jedoch zu wenig. Hier können geeignete Modelle der komplexen Zahlen über das maschinelle Bearbeiten hinaus sehr hilfreich sein, die komplexen Zahlen zu verstehen und wichtige Aussagen über die komplexen Zahlen direkt zu sehen. Gleichzeitig wird den komplexen Zahlen damit etwas von dem Mystizismus genommen, der im Begri imaginäre Einheit für die Zahl i noch durchscheint. Die Gausssche Zahlenebene Besonders geeignet ist die seit Gauss gebräuchliche Darstellung der komplexen Zahlen in der sog. Zahlenebene. In diesem Modell sind die komplexen Zahlen nichts anderes als Vektoren in der Ebene (der man ein kartesisches Koordinatensystem mitgegeben hat). Die Zahl i ist dann der Vektor (0, 1) und eine allgemeine komplexe Zahl a + ib wird zum Vektor (a, b) in der Ebene. Die reellen Zahlen a sind in diesem Bild identisch mit den Vektoren (a, 0) d.h. identisch mit den Punkten auf der xAchse. Interessant ist nun natürlich, wie die Addition und Multiplikation in diesem Bild oder Modell aussehen. Am einfachsten ist die Addition zu beschreiben: sie entspricht einfach der Vektoraddition. Etwas komplizierter liegt der Sachverhalt bei der Multiplikation: zwei Vektoren in der Ebene werden multipliziert, indem man denjenigen Vektor bildet, dessen Länge gebildet wird aus dem Produkt der Längen beiden Ausgangsvektoren, und der in demjenigen Winkel zur xAchse ausgerichtet wird, der aus der Summe der Winkel der Ausgangsvektoren gebildet wird. Addition und Multiplikation der komplexen Zahlen erhalten somit eine leicht nachzuvollziehende geometrische Bedeutung. Im Rahmen dieses Modells lässt sich jetzt 18 KAPITEL 1. PRÄLIMINARIEN: ZAHLEN umgekehrt leicht nachweisen, dass der Vektor (0, 1) (als Repräsentant der Zahl i) zum Quadrat genommen den Vektor (−1, 0) (als Repräsentant der reellen Zahl -1) ergibt. Der Ergebnisvektor aus (0, 1) · (0, 1) hat nämlich die Länge 1, da (0, 1) die Länge 1 hat, deren Quadrat natürlich wieder 1 ergibt. Der Winkel von (0, 1) zur xAchse beträgt 90◦ , der in diesem Fall bei der Multiplikation mit sich selbst zu verdoppeln ist. Als Ergebnis der Multiplikation von (0, 1) mit sich selbst erhalten wir also einen Vektor der Länge 1 der zu xAchse einen Winkel von 180◦ einnimmt. Das ist oensichtlich der Vektor (−1, 0). Damit ist in diesem Modell automatisch i2 = −1. Kapitel 2 Mengenlehre: die Sprache der Mathematik Zu Beginn des ersten Kapitels sprachen wir über die unterschiedlichen Objektbereiche in den verschiedenen Wissenschaften. Solche unterschiedlichen Objektbereiche haben mehr oder weniger subtile Auswirkungen auf die Sprachen, die in den jeweiligen Wissenschaften gesprochen werden. Nun sind die Sprachen, die man in den Wissenschaften spricht in den seltensten Fällen selbst Gegenstand der Untersuchungen in diesen Wissenschaften. Die benutzte Sprache dient vielmehr als Werkzeug für die Zwecke der Wissenschaft. So spielt sie eine ähnliche Rolle wie das Geologenhämmerchen für den Geologen. Mit Hilfe des Geologenhämmerchens können die eigentlich interessierenden Objekte (i.d. Fall Mineralien) untersucht werden, das Geologenhämmerchen an sich ist für den Geologen kein interessantes Objekt. Auch hier zeigt sich eine gewisse Sonderstellung der Mathematik. Denn die in der Mathematik benutzte Sprache kann in der Mathematik sowohl Gegenstand der Untersuchung sein als auch Mittel zur Beschreibung anderer mathematischer Sachverhalte (in denen es typischerweise um Zahlen geht). Das hat sie interessanterweise mit der Informatik gemein, auch dort gibt es Objekte, wie z.B. Compiler, die dieselbe Doppelrolle einnehmen: direktes Objekt der Untersuchung einerseits und Hilfsmittel andererseits. Um nun den Einstieg in die Besonderheiten der Sprache der Mathematik etwas einfacher zu gestalten, beginnen wir mit einer kurzen Aurischung dessen, was wir im Deutschunterricht gelernt haben (sollten). Unser Vorgehen weicht in diesem Kapitel etwas vom üblichen Weg ab. Die Gründe hierfür liegen darin, dass 1. die Mengenlehre als das sichtbar werden soll, das sie tatsächlich ist: nicht das Sahnehäubchen, das nachträglich über die Mathematik drübergestülpt wird, sondern die Hefe, die die Mathematik von innen her aufgehen lässt, 2. das gewählte Vorgehen die wichtige Methodik der Trennung zwischen dem Was und dem Wie in der Informatik an einem Paradebeispiel verdeutlicht, 3. in einem einfachen überschaubaren Bereich einige zentrale Konzepte der theoretischen Informatik, formale Grammatiken, zwanglos eingeführt werden können, 19 20 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK 4. die Interpretation prädikatenlogischer Konzepte mit für Informatiker naheliegenden Mitteln des Funktionsaufrufes gestaltet wird. Wir gehen bei all diesen Vorteilen nur ein geringes Risiko für den Studenten ein, da die im vorliegenden Kapitel gewählte Implementierung des Zahlbegris mit den Mitteln der Mengenlehre als abstrakter Datentyp ein inhaltlich problemloses Neuaufsetzen im Folgekapitel ermöglicht. 2.1 Grammatikalische Vorbereitungen 2.1.1 Ein Exkurs in den Deutschunterricht: Satzgegenstand und Satzaussage Wenn wir soeben erwähnt haben, dass die Objektbereiche Auswirkungen auf die in den Wissenschaften gesprochenen Sprachen haben, so sind es zunächst einmal die besonderen Substantive als Namen für die Objekte oder Klassen von Objekten, die für eine Wissenschaft spezisch sind (man spricht dann auch vom Fachjargon). In der Chemie sind dies die Namen der chemischen Elemente, Begrie wie Atom, Isotop, Wertigkeit, Katalysator u.v.a.m. Es sind dies die Gegenstände, über die in einem Satz chemische Sachverhalte betreend referiert wird, und die deshalb wie Sie es in der Schule gelernt haben in die Rolle von Satzgegenständen (gramm. Subjekte) schlüpfen können. Satzgegenstände allein bilden natürlich noch keine Aussage. Hierzu benötigen wir Prädikate, die zusammen mit den Satzgegenständen erst eine echte Aussage bilden, und die (zumindest in den ersten Schuljahren) deshalb Satzaussagen heiÿen. Ein Blick in die Wortkunde zeigt uns, dass Satzgegenstände i.A. aus ven gebildet werden und Satzaussagen aus Verben. Satzaussagen beschreiben häug das Bestehen oder Nichtbestehen von ten der Satzgegenstände. Substanti- Eigenschaf- Betrachtete man in der Chemie z.B. als Satzgegenstand die chem.Verbindung Kochsalz, dann kann man mit Hilfe des Prädikats wasserlöslich sein (bestehend also aus einem Hilfsverb und einem Prädikatsnomen) die (wahre) Aussage Kochsalz ist wasserlöslich. bilden. In diesem Fall beschreibt das Prädikat eine Eigenschaft des betrachteten Objektes. Satzaussagen können aber auch das Bestehen oder Nichtbestehen von Beziehungen zwischen Objekten beschreiben. In diesem Fall benutzt man Prädikate, die nicht nur ein Subjekt sondern auch (ein oder mehrere) direkte und indirekte Objekte erfordern (z.B. sog. transitive Verben). So kann man in der Chemie mit Hilfe des transitiven Verbs oxidieren die (ebenfalls) wahre Aussage Sauersto oxidiert Silizium zu Siliziumoxid. 2.1. GRAMMATIKALISCHE VORBEREITUNGEN 21 bilden. Das Prädikat (in seiner transitiven Variante) beschreibt hier eine Be- ziehung zwischen den betrachteten Objekten. Nun werden Prädikate in einzelnen Wissenschaften nicht notwendig durch Wörter der Umgangssprache gebildet, sie können etwas verkappt auch durch besondere Symbole repräsentiert werden. So wird in der Chemie die Aussage Sauersto oxidiert Silizium durch eine Reaktionsgleichung dargestellt: Si + O2 → SiO2 Das umgangssprachliche Prädikat oxidiert ist dabei (in etwas verallgemeinerter Form) repräsentiert durch den Pfeil “ → ”. Das letzte Beispiel ist insofern für die Mathematik relevant, als dass die in der Mathematik gebräuchlichen Prädikate fast ausnahmslos durch spezielle Sonderzeichen dargestellt sind. Kommen wir damit zur formalen Beschreibung von Sprachen. 2.1.2 Exkurs in die theoretische Informatik: formale Grammatiken Der syntaktische Aufbau sowohl von natürlichen Sprachen als auch von künstlichen Sprachen wird durch Grammatiken beschrieben. Dabei sind die Grammatiken von natürlichen Sprachen sehr viel komplexer wie die Grammatiken von Kunstsprachen, etwa Programmiersprachen. Grammatiken lassen sich auf natürliche Weise (hierarchisch) unterteilen in unterschiedliche Typen (Typ0 bis Typ3). In der praktischen Informatik benutzt man (aus Ezienzgründen) Grammatiken vom Typ2 und Typ3. dabei handelt es sich im Wesentlichen um sogenannte kontextfreie Grammatiken, deren Regeln eine gewisse Komplexität nicht überschreiten. Kontextfreie Grammatiken enthalten Regeln für die Bildung sprachlicher Ausdrücke. Hierzu werden formale Grammatikvariablen benutzt, die in der Rolle als Platzhalter regelgesteuert durch andere Variablen oder durch sog. terminale Sprachsymbole ersetzt werden können. Dies soll an einem einfachen Beispiel, dem syntaktischen Aufbau arithmetischer Ausdrücke, illustriert werden. In Umgangssprache kann man den Aufbau so formulieren, dass ein (arithmetischer) Ausdruck entweder eine einzelne Zahlvariable oder ein einzelnes Zahlliteral sein kann oder ein (schon gebildeter) arithmetischer Ausdruck der mit einem arithmetischen Operationssymbol und einem zweiten (schon gebildeten) arithmetischen Ausdruck (evtl. geklammert) verbunden werden kann. Eine formale kontextfreie Grammatik zur Beschreibung dieser Ausdrücke wird also wie folgt aussehen: Wir benötigen grammatikalische Platzhalter für den Begri arithmetischer Ausdruck sowie einige Hilfsvariablen. Folgende Regeln liefern uns dann die gewünschten Ausdrücke: <arithm. Ausdruck> <arithm. Ausdruck> ::= <atomarer Ausdruck> ::= <zusammenges. Ausdruck> <atomarer Ausdruck> <atomarer Ausdruck> ::= <Zahlvariable> ::= <Zahlliteral> <zusammenges. Ausdruck> ::= (<arithm. Ausdruck> + <arithm. Ausdruck>) <zusammenges. Ausdruck> ::= <arithm. Ausdruck> · <arithm. Ausdruck> 22 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Weitere Regeln für die Platzhalter <Zahlvariable> und <Zahlliteral> schlieÿen die Grammatik ab. Nun beschreibt die für die arithmetischen Ausdrücke gebildete Grammatik noch keine Aussagen sondern nur algebraische Ausdrücke (gewissermaÿen den Aufbau von Objekten ). Der hier in einer sehr einfachen Situation benutzte Grammatikformalismus lässt sich aber ohne Probleme mit derselben Strategie auch zur Beschreibung von Aussage formen anwenden, die Sätzen der Umgangssprache nachempfunden sind. Dies geschieht einfach dadurch, dass wir geeignete neue grammatikalische Platzhalter ins Spiel bringen, ohne den strukturellen Aufbau der Regeln verändern zu müssen. Schauen wir uns dies an einem einfachen Beispiel an: <Satz> <Subjekt> <Artikel> <Artikel> <Artikel> <Artikel> <Attribut> <Attribut> <Adjektiv> <Adjektiv> <Adjektiv> <Substantiv> <Substantiv> <Prädikat> <Objekt> ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= ::= <Subjekt><Prädikat><Objekt> <Artikel><Attribut><Substantiv> der die das ε <Adjektiv> <Adjektiv><Attribut> kleine bissige groÿe Hund Katze jagt <Artikel><Attribut><Substantiv> mit diesem Regelwerk sind wir in der Lage ausgehend von dem Platzhalter <Satz> folgende Sätze zu bilden: der kleine bissige Hund jagt die groÿe Katze oder auch der groÿe groÿe Hund jagt die bissige Katze Es ndet aber keine Berücksichtigung speziell deklinierter Formen etc. statt. Die Form ist gefunden, doch was soll sie bedeuten? Die Bedeutung solcher Aussagen besteht in der Behauptung eines Sachverhaltes, dessen Wahrheit (oder Falschheit) durch Beobachtung etc. festgestellt wird. Die Bedeutung der weiter oben eingeführten arithmetischen Ausdrücke besteht demgegenüber zunächst nicht in der Behauptung eines Sachverhaltes, der wahr oder falsch sein kann, sondern letztlich in der Festlegung eines (Zahl)Objektes. Die Bedeutung besteht also in einem Zahlenwert, dessen konkrete Berechnung maschinell durch einen geeigneten Funktionsaufruf erfolgen kann. 2.1. GRAMMATIKALISCHE VORBEREITUNGEN 23 In den heute benutzten Programmiersprachen sind die entsprechenden Funktionsaufrufe recht passgenau zu den (syntaktischen) arithmetischen Ausdrücken gebildet: Sie sind schon von der äuÿeren Form her kaum mehr vom ursprünglichen Ausdruck zu unterscheiden. 2.1.3 Exkurs in die Programmiersprachen So wird der formale arithmetische Ausdruck (1 + 2) · 3 in Java oder C++ umgesetzt in den Aufruf der Funktion + und dem nachfolgenden Aufruf der Funktion *, denen als aktuelle Parameter die den Zeichen 1, 2 und 3 entsprechenden Zahlen eins, zwei und drei mitgegeben werden: (1 + 2) ∗ 3 Man kann also mit Fug und Recht sagen, dass die Interpretation der arithmetischen Ausdrücke vollständig an den Rechner delegiert werden kann. Die den arithmetischen Ausdrücken entsprechenden Objekte, die Zahlen, können nun ähnlich wie Objekte der gegenständlichen Welt (also Hunde oder Katzen) in der Rolle als Subjekt und Objekt wieder in Aussageformen eingebracht werden. Mit anderen Prädikaten natürlich, da das Verb jagen in Bezug auf Zahlen wahrlich nicht passen würde. Als sinnvolle Prädikate in Zusammenhang mit arithmetischen Ausdrücken bieten sich neben dem Gleichheitsprädikat = z.B. die Prädikate der Ordnungsrelationen 5, <, · · · an oder auch das Prädikat | im Sinne von ist Teiler von. Die für natürliche Sprachen übliche Unterscheidung zwischen Subjekt und Objekt lässt man fallen, so dass man für die Aussageformen mit arithmetischen Ausdrücken folgende einfache Grammatik wählen kann: <arithm. <arithm. <arithm. <arithm. <arithm. ··· Aussage> Prädikat> Prädikat> Prädikat> Prädikat> ::= ::= ::= ::= ::= <arithm. Ausdruck><arithm. Prädikat><arithm. Ausruck> = 5 < | (weitere Prädikate) <arithm. Ausdruck> ::= (s. obige Regeln) Die Bedeutung der hiermit gewonnenen Aussageformen soll auch hier in der Behauptung gewisser Sachverhalte bestehen, die zutreen oder auch nicht. So würden wir eine arithmetische Aussage der Art (1 + 2) · 3 = 9 als zutreend, also wahr, interpretieren. Eine arithmetische Aussage der Art (1 + 2) · 3 < 8 würden wir als falsch ansehen. Dass wir die eine Aussage als wahr, die andere Aussage als falsch erkennen würden, ergäbe sich aber nicht auf Grund einer Beobachtung (eines Experimentes), sondern auf Grund der Konventionen, die wir im Umgang mit arithmetischen Ausrücken festgelegt haben (im Regelwerk der Addition, Multiplikation und der Zahldarstellung). Diese Konventionen können einem Rechner per Programm (oder sogar per 24 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Hardware) mitgegeben werden, so dass auch das Verizieren oder Falsizieren einer arithmetischen Aussage an ihn delegiert werden kann. (Achtung: Beschränkung durch Gödelsche Theoreme). Damit der Rechner diese Aufgabe erfüllen kann, benötigt er eine Implementierung der betreenden Prädikate (also von 5, <, · · · ) in Form von Funktionen, die als Ergebnis einen der beiden Wahrheitswerte true oder false liefern (also den Ergebnistyp boolean) haben. Diese Funktionen interpretieren die (arithmetischen) Prädikate gewissermaÿen. Auch hier bieten die Programmiersprachen passgenaue Operatoren: So wird die arithmetische Aussage (1 + 2) · 3 = 6 interpretiert durch den Aufruf (1 + 2) ∗ 3 == 6 mit dem Operator == als Funktion (mit Ergebnistyp boolean), der das Gleichheitsprädikat interpretiert. Die arithmetische Aussage 3|6 wird durch den (zusammengesetzten) Funktionsaufruf 6%3 == 0 interpretiert. Es wird also zunächst der Rest der Division von 6 durch 3 mit Hilfe der Funktion % berechnet (also ein Ausdruck interpretiert, durch die man ein Zahlobjekt erhält). Die hieraus erhaltene Zahl wird abschlieÿend mit 0 verglichen und der entsprechende Wahrheitswert (in diesem speziellen Fall true) geliefert. Die Logik der Bedingungen In der Programmierung werden arithmetische Aussagen typischerweise für die Steuerung von weiteren Rechenschritten benutzt. Es wird also z.B. geprüft, ob ein arithmetischer Ausdruck gröÿer ist als 0, und in Abhängigkeit hiervon werden gewisse Operationen durchgeführt (und andere Operationen nicht). Dies geschieht z.B. im Rahmen von ifAbfragen oder whileSchleifen: if(a > 0) abs = a; else abs = -a; Die Programmvariable a steht hier für eine <Zahlvariable> in der formalen Grammatik der arithmetischen Ausdrücke. Ihr soll im vorangegangenen Programmablauf ein konkreter Zahlwert zugewiesen worden sein, der jetzt beim Aufruf des Operators > mit 0 verglichen wird. Liefert der Operator true, stellt er also fest, dass der momentane Wert von a gröÿer ist als 0, wird die Zuweisung abs = a ausgeführt, ansonsten die Zuweisung abs = -a. In vielen Programmen stellt man aber sofort fest, dass die Bedingungen zur Steuerung der Algorithmen häug eine komplexere Form annehmen, und einzelne atomare Bedingungen mit Hilfe logischer Operationen noch weiter verknüpft werden. Wir benutzen also komplexere arithmetische Aussagen als in unserer obigen einfachen Grammatik vorgesehen. Wir müssen deshalb unsere formale Grammatik entsprechend erweitern: <arithm. Aussage> ::= <atomare arithm. Aussage> | <zusammeng. arithm. Aussage> 2.1. GRAMMATIKALISCHE VORBEREITUNGEN 25 <atomare arithm. Aussage> ::= <arithm. Ausdruck><arithm. Prädikat><arithm. Ausruck> <arithm. Prädikat> <arithm. Prädikat> <arithm. Prädikat> <arithm. Prädikat> ··· <arithm. Ausdruck> ··· <zusammeng. arithm. <zusammeng. arithm. <zusammeng. arithm. <zusammeng. arithm. ::= ::= ::= ::= = 5 < ··· ::= s.o. Aussage> ::= Aussage> ::= Aussage> ::= Aussage> ::= ¬ <arithm. Aussage> <arithm. Aussage >∨ <arithm. Aussage> <arithm. Aussage >∧ <arithm. Aussage> (<arithm. Aussage>) Die Bedeutungen der drei neuen Symbole sind die der üblichen logischen Verknüpfungen. Auch sie haben in den Programmiersprachen eine direkte Interpretation als logische Operationen gemäÿ der bekannten Wahrheitstabellen. Dabei werden ¬, ∨, ∧ durch die Operatoren !, |, & interpretiert. Die Umsetzung der arithmetischen Aussage (a > 0) ∧ (b > 0) in einen (ihn interpretierenden) Funktionsaufruf (mit einem Endergebnis true oder false) geschieht dann durch (a > 0) & (b > 0). Wir haben es hierbei mit insgesamt 3 einzelnen Funktionsaufrufen zu tun: Zwei der Funktionsaufrufe vergleichen a bzw. b mit 0 und liefert jeweils einen Wahrheitswert. Der dritte Funktionsaufruf verknüpft die beiden als Zwischenergebnisse gelieferten Wahrheitswerte zu einem Wahrheitswert entsprechend dem logischen und zum Endergebnis. Bedingungen mit verkapptem Indenitpronomen Es gibt Fälle, in denen die Durchführung weiterer Operationen davon abhängig gemacht wird, ob irgendeine in Frage kommende Zahl eine spezielle Bedingung erfüllt. Bei der Überprüfung z.B., ob es sich bei einer Zahl p um eine Primzahl handelt, muss gezeigt werden, dass keine Zahl Teiler dieser Zahl p ist (genauer: dass keine Zahl die gleichzeitig gröÿer 1 und kleiner p ist, Teiler von p ist). In natürlicher Sprache formuliert würde die arithmetische Aussage p ist Primzahl lauten: Für alle Zahlen i (ungleich 1 und p selbst) ist i kein Teiler von p. In dieser Aussage ist die Rede von für alle. Unsere bisherige Grammatik für arithmetische Aussagen besitzt hierfür (und auch für das Reden über irgendein) noch kein Konstrukt. Deshalb erweitern wir unsere Grammatik ein letztes Mal, um auch noch diese Lücke zu füllen: 26 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK <arithm. Aussage> ::= <atomare arithm. Aussage> | <zusammenges. arithm. Aussage> | <quantif. arithm. Aussage > <atomare arithm. Aussage> ::= <arithm. Ausdruck><arithm. Prädikat><arithm. Ausruck> <arithm. Prädikat> <arithm. Prädikat> <arithm. Prädikat> <arithm. Prädikat> ··· <arithm. Ausdruck> ··· <zusammenges. arithm. <zusammenges. arithm. <zusammenges. arithm. <zusammenges. arithm. ::= ::= ::= ::= = 5 < ··· ::= s.o. Aussage> Aussage> Aussage> Aussage> <quantif. arithm. Aussage> <quantif. arithm. Aussage> ::= ::= ::= ::= ¬ <arithm. Aussage> <arithm. Aussage >∨ <arithm. Aussage> <arithm. Aussage >∧ <arithm. Aussage> (<arithm. Aussage>) ::= ∀ <Zahlvariable> <arithm. Aussage> ::= ∃ <Zahlvariable> <arithm. Aussage> Die oben angeführte Aussage p ist eine Primzahl. lässt sich nun mit den erweiterten Mitteln unserer Grammatik wie folgt ausdrücken: ∀x (x ̸= 1 ∧ x ̸= p) ⇒ ¬(x|p). Das logische Operatorsymbol ⇒ wird gelesen als hieraus folgt und kann ersetzt werden durch die Kombination ¬ · ∨·, d.h. A ⇒ B entspricht ¬A ∨ B . Für die spätere Umsetzung in ein (interpretierendes) Programm ist es hilfreich, die Aussage noch etwas schärfer fassen, indem man formuliert: ∀x (x > 1 ∧ x < p) ⇒ ¬(x|p). Die Interpretation der sog. Quantoren ∀ (für alle) und ∃ (es gibt ein) geschieht im Rahmen der Programmiersprachen nun nicht direkt sondern implizit durch geeignete SchleifenKonstrukte: boolean is_Prime(int p){ for(int x = 2; x < p; x++) { if((p%x) == 0 ) return false; } return true; } Das ∀x wird also umgesetzt in eine Schleife mit Schleifenvariable x. Das (x > 1 ∧ x < p) wird so umgesetzt, dass die Werte der Schleifenvariable den Bereich 2 bis p-1 durchlaufen. Die arithmetische Aussage ¬(x|p) wird dann in jedem Schleifendurchlauf überprüft, und es wird Sorge dafür getragen, dass nur dann true ausgegeben wird, wenn für alle x (entsprechend dem ∀x) die Bedingung (p%x) == 0 nicht eintritt (entsprechend dem ¬(x|p)). Insbesondere kann also erst dann true ausgegeben werden, wenn alle in Frage 2.1. GRAMMATIKALISCHE VORBEREITUNGEN 27 kommenden Werte für x auf ihre Teilereigenschaft hin getestet worden sind. Auch eine mit ∃ quantizierte Aussage wird mit einer vergleichbaren Schleifenkonstruktion interpretiert. Die arithmetische Aussage p hat einen Teiler zwischen 2 und p-1, kann mit den Mitteln unserer Grammatik beschrieben werden als ∃x (2 5 x) ∧ (x 5 p − 1) ∧ (x|p). Die Umsetzung geschieht ebenfalls mit Hilfe einer Schleife: boolean has_Divisor(int p){ for(int x = 2; x < p; x++) { if((p%x) == 0 ) return true; } return false; } Hier wird also erst dann false ausgegeben, wenn alle potenziellen Zahlen geprüft und sich als Nicht-Teiler herausgestellt haben. Es fällt auf, dass der einzige Unterschied in den Funktionsrümpfen von is_Prime(int p) und has_Divisor in der systematischen Vertauschung der Ausgaben von true und false besteht. Dies ist kein Zufall, denn die Bedeutung der zweiten Aussage p hat einen Teiler zwischen 2 und p − 1 ist gerade die Negation der ersten Aussage p ist Primzahl. 2.1.4 Was geschieht unter der Decke die Funktionen als white box In der Interpretation der Wie werden die betrachteten Prädikate implementiert? Wir verlassen uns darauf, dass in der Programmiersprache die Umsetzung des Prädikats > korrekt vonstatten geht. Welche Vorstellungen könnte man von einer internen Umsetzung dieses Prädikats als Funktion auf dem Rechner haben? Funktionale Umsetzungen können generell ganz unterschiedlich gestaltet werden. (Beispiel Uhr, Beispiel Strom aus der Steckdose). Manche Umsetzungen sind gedanklich leichter zu erfassen und von gröÿerem didaktischen Wert, obwohl die darauf beruhende technische Realisierung unezient sein mag (Beispiel Sanduhr zur Zeitmessung). Beispiel Funktionen zur Interpretation der logischen Operationen to be done Wir haben es mit binären Prädikaten zu tun. Die einfachste Umsetzung besteht demnach darin, das Prädikat durch eine zweispaltige Tabelle zu interpretieren. Die der Relation < entsprechende Tabelle könnte demnach folgendes Aussehen haben: 28 · · 0 0 · · 1 1 1 · · KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK · · 1 2 · · 2 3 4 · · Soll die Tabelle vollständig sein, müsste sie natürlich unendlich viele Einträge enthalten. Von diesem praktischen Problem abgesehen, kann man sich die Interpretation einer Aussage x < y damit so vorstellen, dass in der Tabelle systematisch nach einer Zeile mit den Einträgen der Werte für x und y gesucht wird. Wird ein solcher Eintrag gefunden, wird die Aussage als wahr angesehen ansonsten als falsch. Halten wir also fest: Jedes zweistellige Prädikat kann prinzipiell durch eine zweispaltige Tabelle realisiert werden. Zurück zur Teilbarkeitsrelation In unserer ersten Interpretation der Teilbarkeitsbeziehung hatten wir diese durch eine geeignete Kombination der ganzzahligen Restebildung und des Vergleichs mit der Zahl 0 gebildet. Wir könnten uns jetzt natürlich auch eine groÿe (im Prinzip wieder unendlich groÿe) zweispaltige Tabelle vorstellen, die die Teilbarkeitsbeziehung wiedergibt: · · 2 2 · · 3 3 3 · · · · 2 4 · · 3 6 9 · · Eine (im Vergleich zur obigen) alternative Implementierung der Funktion is_Prime könnte jetzt lauten: boolean is_Prime(int p){ for(int x = 2; x < p; x++) { if((x,p) in Teilbarkeits-Tabelle) return false; } return true; } 2.1. GRAMMATIKALISCHE VORBEREITUNGEN 29 Die Bedingung (x,p) in Teilbarkeits-Tabelle ersetzt hier also die Bedingung (p%x) == 0 . Analog erhalten wir boolean exists_Divisor_of(int p){ for(int x = 2; x < p; x++) { if((x,p) in Teilbarkeits-Tabelle) return true; } return false; } So wie die atomare arithmetisch Aussage x|y interpretiert werden kann durch (x,y) ist in TeilbarkeitsTabelle, so kann im Prinzip jede atomare arithmetische Aussage x < P rädikat > y interpretiert werden durch (x,y) ist in <Prädikat>Tabelle. In der Quintessenz kann also jedes zweistellige Prädikat mit dem Vehikel einer zweispaltigen Tabelle interpretiert werden. 2.1.5 Exkurs: Skolemisierung Wenn wir davon ausgehen können, dass eine quantizierte arithmetische Aussage ∃xA wahr ist, beispielsweise ∃x x|15, dann muss es damit eine konkrete Zahl geben, die Teiler ist von 15. Wie kann man eine solche passende Zahl nden? Nun, einfach, indem man im Funktionsrumpf an derjenigen Stelle, an der true zurückgegeben wird, stattdessen den gerade gültigen Wert der Schleifenvariable zurückgibt. Diesen Vorgang nennt man Skolemisierung: int get_Divisor_of_15(){ p = 15; for(int x = 2; x < p; x++) { if((x,p) in Teilbarkeits-Tabelle) return x; } return -1; } Verallgemeinert für ein beliebiges zweistelliges Prädikat erhalten wir aus ∃x (x < P rädikat > y) die zugehörige Skolemfunktion: int get_value_for(int y){ for(int x = 0; x <= MAXIMUM ; x++) { if((x,y) in <Prädikat>Tabelle) return x; } return -1; } 30 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Verallgemeinert für eine beliebige Aussage A erhalten wir aus ∃x A mit der Interpretation func_A(· · · ) für A die zugehörige Skolemfunktion: int get_value_for(int y){ for(int x = 0; x <= MAXIMUM ; x++) { if(func_A(· · · )) return x; } return -1; } 2.2 Mengen und sie betreende Aussagen 2.2.1 Was verstehen wir unter Mengen? Wenn wir zu Beginn festgestellt hatten, dass die Objekte der Mathematik die Zahlen sind, so ist das zunächst nur die halbe Wahrheit. Strenggenommen sind die Objekte der Mathematik Mengen (und zwar ausschlieÿlich Mengen). Wie verträgt sich dies damit, dass die Mathematik hauptsächlich Zahlen untersuchen soll? Nun, die Zahlen lassen sich letztlich durch Mengen realisieren (ein Informatiker würde sagen: mit dem Vehikel der Mengen implementieren). Und den Weg dahin werden wir im Folgenden beschreiten. Nun ist in der Sprache der Mengenlehre nicht nur der Objektbereich (zumindest theoretisch) extrem einfach es gibt nur einen einzigen ObjektTyp, eben Mengen auch die Prädikate lassen sich an höchstens zwei Fingern abzählen. Es sind (je nach gewähltem Ansatz) nur ein oder zwei Prädikate vonnöten. Sie beschreiben ausnahmslos Beziehungen zwischen Objekten. Eines ist das durch das Zeichen “in′′ notierte Prädikat ist Element von. Das zweite ist das Gleichheitsprädikat (das theoretisch sogar selbst noch einmal auf ∈ zurückgeführt werden kann.) Reizt man die Sprache der Mathematik also völlig aus, dann kann man mit einem einzigen Typ von Objekten, gewissermaÿen einem einzigen Gattungsnamen und einem einzigen Prädikat auskommen. Theoretisch könnten also alle Aussagen der Mathematik aus Teilaussagen der Form x∈y zusammengesetzt werden (die mit Konjunktionen und Quantoren verbunden wären). Auch hier können wir eine Analogie zur Informatik ziehen. Theoretisch könnte man nämlich alles, was man als Algorithmen untersucht und beschreibt, auf eine einfache TuringMachine zurückführen, deren Befehlssprache geradezu trivial ist. An dieser Stelle ist allerdings ein Wort der Warnung angebracht. Die geschilderte konzeptuelle Einfachheit verführt gerne dazu, denn damit erfassten Objektbereich auch als praktisch einfach aufzufassen. Sehr schnell stellt sich allerdings heraus, dass der interessierende Objektbereich dann alles andere als einfach ist und dass es eine faktische Komplexität gibt, die es nachträglich auf 2.3. SYNTAX MENGENTHEORETISCHER AUSSAGEN 31 einer höheren Ebene zu strukturieren gilt. Und hier ist die eigentliche Arbeit zu leisten. Spätestens jetzt wird man sich fragen, wie man sich die Mengen der Mathematik vorstellen kann und wie man die Wahrheit der mit Hilfe des “ ∈ ”Prädikats behaupteten Aussagen feststellt. Die sich hieran anschlieÿenden Überlegungen kulminieren in der berühmten Frage: Was ist eine Menge? Auch diese Frage wird heute nicht mehr wie auch schon bei den Zahlen ontologisch, also durch eine Wesensbeschreibung beantwortet, wie es der Begründer der Mengenlehre Georg Cantor noch versucht hatte. (Nach seiner Denition war eine Menge eine beliebige Zusammenfassung von bestimmten wohlunterschiedenen Objekten unserer Anschauung oder unseres Denkens zu einem Ganzen.) Man beschreibt Mengen analog zu den komplexen Zahlen einfach über ihr Verhalten in Zusammenhang mit dem Prädikat “ ∈ ”: Mengen sind die Objekte eines abstrakten Datentyps Set, zu dem es eine Funktion boolean isElementOf(Set x, Set y) gibt (als Implementierung von x ∈ y ), wobei die Funktion isElementOf nur einige wenige Regeln zu erfüllen hat. So wie ein Programmierer mit einem abstrakten Datentyp Turingmaschine jeden beliebigen Algorithmus programmieren könnte, ohne zu wissen, wie dieser Datentyp unter der Decke realisiert ist, so kann ein Mathematiker mit dem abstrakten Datentyp Set alle Aussagen formulieren, die eine mathematische Relevanz haben (insbesondere auch diejenigen, die die Zahlentheorie bereen), ohne eine Vorstellung davon haben zu müssen, was Mengen eigentlich sind. Hat man bei den komplexen Zahlen noch ein anschauliches Modell, mit dessen Hilfe man den abstrakten Datentypen implementieren kann, so verzichtet man bei den Mengen auf die Beschreibung eines konkreten Modells. Man kann allerdings zeigen, dass ein Modell innerhalb der (unendlichen) Menge aller natürlichen Zahlen beschrieben werden könnte. Im Gegensatz zu der Gaussschen Zahlenebene bei den komplexen Zahlen, bietet jenes Modell der Mengenlehre keinen Ansatz zu einem besseren Verständnis, sondern ist selbst nur ein formales Konstrukt. Halten wir fest: für den Mathematiker ist die Frage nach dem Wesen einer Menge völlig uninteressant geworden, da für ihn nur das systemische Verhalten von Mengen interessant ist, und dieses (im Sinne von abstrakten Datentypen) ausschlieÿlich über spezielle Regeln für das Prädikat “ ∈ ” festzulegen ist. Wir beginnen mit der Syntax mengentheoretischer Aussagen, die sich an den bisher betrachteten Grammatiken orientiert: 2.3 Syntax mengentheoretischer Aussagen Nach den Vorbereitungen des letzten Abschnittes können wir leicht eine Grammatik für den Aufbau mengentheoretischer Aussagen gewinnen: <atomarer mAusdruck> ::= <mVariable> | <mLiteral> 32 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK <mVariable> <mLiteral> ::= x | y | z | x1 | · · · ::= ∅ <mAussage> ::= <atomare mAussage>| <zusammenges. mAussage> <quantiz. mAussage> <atomare mAussage> <atomare mAussage> <atomare mAussage> ::= ⊤ | ⊥ ::= <atomarerAusdruck> ∈ <atomarer mAusdruck> ::= <atomarer mAusdruck> = <atomarer mAusdruck> <zusammenges. mAussage> ::= <mAussage> ∨ <mAussage> <zusammenges. mAussage> ::= <mAussage> ∧ <mAussage> <zusammenges. mAussage> ::= ¬ <mAussage> <quantiz. mAussage> <quantiz. mAussage> ::= ∀ <mVariable> <mAussage> ::= ∀ <mVariable> <mAussage> Der Aufbau der mAussagen geschieht mit anderen Worten induktiv wie folgt: ia) Für beliebige atomare mAusdrücke x und y ist x ∈ y eine mAussage. (Das Prädikat “ ∈ ” wird gelesen als ist Element von.) ib) Für beliebige atomare mAusdrücke x und y ist x = y eine mAussage. (Das Gleichheitszeichen “ =′′ steht für das Prädikat ist gleich.) ic) Es werden zwei (ebenfalls atomare) Aussagen ⊤ und ⊥ eingeführt. (⊤ steht für eine Aussage, die stets wahr ist, und ⊥ für eine Aussage, die stets falsch ist.) iia) Liegen zwei beliebige mAussagen A1 und A2 vor, dann ist auch A1 ∧ A2 eine mAussage. (Der Junktor “ ∧ ” steht für die Konjunktion und.) iib) Liegen zwei beliebige mAussagen A1 und A2 vor, dann ist auch A1 ∨ A2 eine mAusage. (Der Junktor “ ∨ ” steht für die Konjunktion oder.) iic) Liegt eine beliebige mAussage A vor, dann ist auch ¬A eine mAussage. (Der Junktor “¬” steht für das Adverb nicht). iiia) Liegt eine beliebige mAussage A vor, und ist x eine beliebige mVariable, dann ist auch ∀x A eine mAussage. (Der Quantor “∀” steht für den präpositionalen Ausdruck für alle.) iiib) Liegt eine beliebige mAussage A vor, und ist x eine beliebige mVariable, dann ist auch ∃x A eine Aussageform. (Der Quantor “∃” steht für den sprachl. Ausdruck es gibt mindestens ein.) Falls es aus Gründen der besseren Lesbarkeit angebracht scheint, werden wir in 2.4. SEMANTIK MENGENTHEORETISCHER AUSSAGEN 33 die mAussagen mit Klammern versehen, die dann die übliche pragmatische Bedeutung haben sollen (ähnlich den Klammern in arithmetischen Ausdrücken). Sehen wir uns zunächst einige Beispiele von mAussagen an, die wir sukzessiv mit den Regeln ia) bis iiib) bilden können. 1. Die einfachsten Beispiele (wenn wir von der Regel ic) absehen) sind oensichtlich die nach den ersten Regeln ia) und ib) gebildeten Aussageformen, wie z.B: x ∈ y , x ∈ z , y ∈ z , z ∈ x, x ∈ x, x = y , x = x, z = y , u.ä. 2. Komplexere Aussageformen kann man darauf aufbauend jetzt leicht mit den weiteren Regeln bilden: nach iia): x ∈ y ∧ y ∈ z , x = y ∧ z = y , x ∈ y ∧ x = x, x ∈ y ∧ ⊤ u.ä. Pragmatisch geklammert sollen diese Aussageformen auch in der folgenden Form geschrieben werden können: (x ∈ y) ∧ (y ∈ z), (x = y) ∧ (z = y), (x ∈ y) ∧ (x = x), (x ∈ y) ∧ ⊤ u.ä. analog nach Regel iib): x = y∨z = y , nach Regel iic): u.ä. ¬x = y , nach iiia) und iiib): ∀z x = x, u.ä. ¬x ∈ y , ∃x x ∈ z , (x = y)∨(y ∈ z), ¬¬x = x, ∀z∃x x ∈ z , (x = y)∨⊥ u.ä. ¬(z = y) ∨ ¬(z ∈ x), ∀x∃y x = y , ∀y∀x x ∈ y , 3. Letztlich lassen sich auf diese Weise sukzessiv kleine Monster erzeugen: (∀x∃y∀z (∀x(x = x) ∧ (y = z))) ∧ (∀z(x ∈ z) ∨ ∃z(x = z) ∨ ∀x∀y∀z(y ∈ z)) 2.4 Semantik mengentheoretischer Aussagen Mengentheoretische Aussagen wollen wir nun analog zu den arithmetischen Ausdrücken (s.o.) durch Funktionsaufrufe interpretieren, die true oder false liefern. Hierzu erweitern/modizieren wir die Programmiersprache Java zu einer hypothetischen Sprache JavaZ. 2.4.1 Exkurs: JavaZ Die im folgenden beschriebene Programmiersprache JavaZ wird (jedenfalls bis auf weiteres) nicht implementiert werden können. Dies würde die Ausnutzung besonderer physikalischer Phänomene etwa schwarze Löcher erfordern. Im Endeekt erforderte eine Implementierung einen (abzählbar) unendlich groÿen Speicher, auf dessen Elemente alle in einer nach oben global beschränkten endlichen Zeit zugegrien werden kann, und einen Prozessor, der in der Lage ist, seine Taktfrequenz hyperbolisch zu beschleunigen, so dass in einem endlich Zeitraum (abzählbar) unendlich viele Operationen durchgeführt werden könnten. So etwas ist zugegebenermaÿen noch nicht auf dem Markt. Aber theoretisch vorstellen könnte man sich so etwas vielleicht doch. (Zumindest haben Hollywood Regisseure damit keine Probleme). Damit hätten wir ein Vehikel in der Hand, mit dem wir unsere Aussageformen sehr bequem interpretieren könnten. 34 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK In unserer Programmiersprache JavaZ gebe es (im Gegensatz zur existierenden Programmiersprache Java) nur zwei vordenierte Datentypen: boolean und Set. boolean stimmt mit dem gleichlautenden primitiven Datentyp aus Java überein, Set ist ein geeigneter Referenzdatentyp, dessen Objekte unsere mAusdrücke interpretieren sollen. Der Datentyp Set ist für den Benutzer ein abstrakter Datentyp. Internas sind eingekapselt und für den Benutzer typischerweise nicht einsehbar. Der Zugri auf Objekte dieses Datentyps geschieht wie üblich nur über vordenierte Zugrisoperationen. Variable von Typ Set werden in der üblichen Weise wie folgt deklariert: Set x; Wie in Java haben wir auch in JavaZ die Möglichkeit, Funktionen selbst zu denieren. Diese Funktionen können beliebig viele formale Parameter beinhalten. Ihr Ergebnistyp ist (zunächst) auf boolean oder Set beschränkt. Funktionen können wie üblich ineinander eingesetzt werden. Ein Funktionskopf in JavaZ kann also z.B. folgende Form haben: boolean function( Set x ) Zur Programmierung des Funktionsrumpfes stehen das konventionelle returnStatement zur Verfügung sowie die Verzweigung. Letztere hat die Form: if( <B> ) { return <E>; } Dabei ist <B> ein Platzhalter für einen Wahrheitswert, der i.A. durch einen Funktionsaufruf mit Ergebnistyp boolean geliefert wird. <E> ist ein Platzhalter für einen Ausdruck, der je nach Ergebnistyp der betrachteten Funktion auf ein Objekt vom Typ Set verweist oder einen Wahrheitswert liefert. Bis hierher sind die betrachteten Bausteine auf einem konventionellen Rechner implementierbar. Bei dem nächsten Baustein, einem speziellen Schleifenkonstrukt, ist das nicht mehr der Fall: forall (Set x) { <P> } Der Platzhalter <P> steht für einen beliebigen Programmierbaustein. Die Bedeutung des letzten Bausteines besteht darin, dass die Variable x nacheinender alle Objekte des Datentyps Set referenziert, und in Abhängigkeit hiervon der Baustein <P> ausgeführt wird. (Dies klingt auch noch harmlos, doch wir müssen davon ausgehen, dass Set unendlich viele unterschiedliche Objekte enthält. An dieser Stelle benötigen wir also den hyperbolischen Turbo für unseren Prozessor). Es gibt drei vordenerte Funktionen, die uns für den abstrakten Datentyp Set zur Verfügung gestellt werden: • boolean isElement(Set x, Set y); • boolean isEqual(Set x, Set y); • Set getEmptySet() 2.4. SEMANTIK MENGENTHEORETISCHER AUSSAGEN 35 Die Bedeutung von isEqual ist die der logischen Identität und wird wie in Java kurz notiert in der Form x == y. Die Bedeutung von isElement hingegen ist intentional überhaupt nicht festgelegt. Ihre Bedeutung ergibt sich ausschlieÿlich aus der systemischen (besser axiomatischen) Festlegung der Eigenschaften, also des nach auÿen hin sichtbaren Verhaltens von isElement (s.u.). Die Funktion getEmptyset() liefert (die Referenz auf) ein konstantes Objekt, dessen Internas dem Benutzer verborgen bleiben. Hinzu kommen die vordenierten booleschen Funktionen/Operationen |, &, ! 2.4.2 Interpretation der Aussageformen Nach diesen Vorbereitungen wollen wir die (induktiv) gebildeten mAussagen in der Sprache JavaZ interpretieren. Dabei gehen wir synchron zum induktiven Aufbau der mAussagen vor. Analog den arihmetischen Aussagen werden sowohl die mAusdrücke als auch die Prädikate mit den Mitteln von JavaZ interpretiert. Interpretation der mAusdrücke: • Eine mVariable x wird durch eine gleichlautende JavaZVariable von Typ Set repräsentiert: Set x; • Dem mLiteral ∅ entspricht dasjenige konstante Objekt (vom Typ Set), auf das eine Referenz mittels der vordenierten Funktion getEmptySet() geliefert wird. Interpretation der atomaren mAussagen: • Die mAussage x ∈ y wird interpretiert durch die Funktion isElement( x, y) . • Die mAussage x = y wird interpretiert durch die Funktion x == y . • Die mAussage ⊤ wird interpretiert durch den konstanten Wahrheitswert true . • Die mAussage ⊥ wird interpretiert durch den konstanten Wahrheitswert false Interpretation der zusammengesetzten mAussagen Gibt es für die mAussagen A, A1 , A2 bereits eine Interpretation in JavaZ durch die Funktionen func_A(· · · ), func_A1(· · · ), func_A2(· · · ) dann erhalten wir für die zusammengesetzten mAussagen folgende Interpretationen: . 36 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK • A1 ∨ A2 wird interpretiert durch die Funktion boolean func_A1_or_A2(· · · ) { return func_A1(· · · ) | func_A2(· · · ) } Beispiel: Die mAussage (x ∈ y)∨(y = z) wird interpretiert ausgehend von den Interpretationen der einzelnen mAussagen in Form von isElement(x, y) und y == z durch die Funktion func(x,y,z) mit boolean func1(Set x, Set y, Set z) { return isElement(x,y) | (y == z); } Wir bemerken hierbei, dass gemeinsame mVariablen in der Parameterliste von func1 nur einmal aufgeführt werden. • A1 ∧ A2 wird interpretiert durch die Funktion boolean func_A1_and_A2(· · · ) { return func_A1(· · · ) & func_A2(· · · ) } Beispiel: Die mAussage ((x ∈ y) ∨ (y = z)) ∧ z ∈ u wird interpretiert ausgehend von der Interpretation der ersten Teilaussage in Form von func1(x, y, z) durch die Funktion func2(x,y,z,u) mit boolean func2(Set x, Set y, Set z, Set u) { return func1(x,y,z) & isElement(z,u); } Wir bemerken, dass wir aus Optimierunsgründen um einen Funktionsaufruf zu sparen den Funktionsaufruf func1(x,y,z) gewissermaÿen inline ersetzen durch isElement(x,y) | (y == z), so dass wir func2(x,y,z,u) auch schreiben können als boolean func2(Set x, Set y, Set z, Set u) { return (isElement(x,y) | (y == z)) & isElement(z,u); } Auch hier ist die mVariabel z in der Parameterliste von func2 natürlich nur einmal vertreten. • ¬A wird interpretiert durch die Funktion boolean func_neg_A(· · · ) { return ! func_A(· · · ); } Interpretation der quantizierten mAussagen Gibt es für die mAussagen A bereits eine Interpretation in JavaZ durch die Funktion func_A(· · · ) dann erhalten wir für die quantizierten mAussagen folgende Interpretationen: • ∀xA wird interpretiert durch die Funktion 2.4. SEMANTIK MENGENTHEORETISCHER AUSSAGEN 37 boolean func_forall_A(· · · ){ forall(Set x) { if( !func_A(· · · )) return false; } return true; } Beispiel: Die mAussage ∀x x ∈ y wir interpretiert durch func3(x,y) mit boolean func3(Set y){ forall(Set x) { if( !(isElement(x,y)) return false; } return true; } Wir bemerken, dass in der Parameterliste von func3 die Variable x nicht aufgeführt wird, da sie in der forSchleife eigens deklariert wird. Die Variable x in ∀x x ∈ y heiÿt (durch den Quantor ∀) gebunden. • ∃xA wird interpretiert durch die Funktion boolean func_exists_A(· · · ){ forall(Set x) { if(func_A(· · · )) return true; } return false; } Die mAussage ∃y∀x x ∈ y wir interpretiert durch func4(x,y) unter Benutzung der Funktion func3(y) als Interpretation für ∀x x ∈ y : Beispiel: boolean func4(){ forall(Set y) { if( func3(y)) return true; } return false; } Beide Variablen x und y sind in der mAussage ∃y∀x x ∈ y gebunden, so dass die Funktion func4 keinen Parameter erhält. Auch hier können wir den Funktionsaufruf func3(y) ersetzen durch eine geeignete inlineExpansion vermöge einer zweiten forSchleife: boolean func4(){ L: forall(Set y) { forall(Set x) { if(! isElement(x,y)) continue L; } return true; } return false; } 38 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Das Konstrukt if( func3(y)) return true; kann also ersetzt werden durch forall(Set x) { if(! isElement(x,y)) continue L; } return true; 2.4.3 Boolesche Algebra Seien A1 und A2 zwei mAussagen. Wir nennen diese Aussagen äquivalent A1 ∼ = A2 wenn die Aufrufe die interpretierenden Funktionen func_A1(· · · ) und func_A2(· · · ) stets denselben Wahrheitswert liefern. Zwei Aussagen A1 und A2 sind genau dann äquivalent, wenn A1 ⇔ A2 gilt. Für äquivalente mAussagen erhält man alle Eigenschaften einer booleschen Algebra.: to be done Darüberhinaus gelten für beliebige mAussagen A die verallgemeinerten deMorganschen Regeln: ¬∀x A ∼ = ∃x ¬A sowie ¬∃x A ∼ = ∀x ¬A Die mAussage A werde interpretiert durch die Funktion func_A(· · · ), dann wird die Ausage ∀x A interpretiert durch die Funktion func(· · · ) mit Beweis. boolean func(· · · ){ for all (Set x){ if (!func_A(· · · )) return false; } return true; } Die Aussage ¬∀x A kann dann interpretiert werden, indem systematisch die Ausgabe true und false vertauscht werden: boolean neg_func(· · · ){ for all (Set x){ if (!func_A(· · · )) return true; } return false; } Wir betrachten nun die mAussage ∃x¬A. Die Aussage ¬A wird interpretiert durch neg_A(· · · ) mit 2.5. MENGENOPERATIONEN UND NOTATIONEN 39 boolean neg_A(· · · ){ return !func_A(· · · ); } Damit wird ∃x¬A interpretiert durch func_neg(· · · ) mit boolean func_neg(· · · ){ forall(Set x){ if(neg_A(· · · )) return true; } return false; } Da !func_A(· · · ) stets denselben Wert liefert wie neg_A(· · · ) liefern neg_func und func_neg stets denselben Wert. Die zweite Äquivalenz zeigt sich analog. 2.5 2 Mengenoperationen und notationen Die systemischen Eigenschaften unserer MengenObjekte stehen und fallen natürlich mit dem Aufbau der das ∈Prädikat interpretierenden Tabelle: Eine spezielle Tabelle wird gewisse spezielle mAussagen wahr und andere spezielle mAussagen falsch machen. Umgekehrt wird die Forderung, dass spezielle mAussagen wahr sein sollen, die Tabelle ganz speziellen Einschränkungen unterwerfen. Tendentiell wird der Aufbau einer ∈Tabelle umso stärkeren Einschränkungen unterworfen sein, je mehr Wahrheiten von der Tabelle gefordert werden. (Es ist eine interessante Frage, inwieweit es möglich sein könnte, mit einer gewissen Anzahl von mAussagen, deren Wahrheit von der Tabelle gewährleistet werden soll, eine solche Tabelle eindeutig bis auf triviales Umsortieren der Zeilen festgelegt werden könnte.) Beispiel: Haben wir es mit Mengen a, b, c, d, · · · zu tun, die auf folgende Weise in der ∈ Tabelle vorkommen · · a a · · b b · · · · b c · · c d · · dann bedeutet dies, dass die mAussagen a ∈ b, a ∈ c, b ∈ c, b ∈ d wahr sind, denn 40 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK die interpretierende Funktion isElement liefert für die Aufrufe isElement(a,b), isElement(a,c), isElement(b,c), isElement(b,d) in diesem Fall jeweils true. Aber auch komplexere Aussagen (zusammengesetzte mAussagen und qualizierte mAussagen) erweisen sich vor dem Hintergrund dieser Tabelle als wahr, wie z.B. ∃x x ∈ b oder ∃x∃y (a ∈ x) ∧ (a ∈ y) ∧ ¬(x = y). Wir werden im Folgenden den Weg gehen, gewisse Wahrheiten von der Tabelle zu fordern. Letztlich kommt es uns dabei gar nicht darauf an, dass wir es mit einer Tabelle zu tun haben, sondern dass unsere die mAussagen interpretierenden JavaZ Funktionen bei Aufruf derselben konsistent für diejenigen mAussagen, die in unserem System oder unserer Welt als wahr gelten sollen, den Wahrheitswert true liefern. Die Vorstellung, dass diese Funktionen so implemetiert sind, dass sie auf eine Tabelle zugreifen, dient nur didaktischen Zwecken. Unter der Decke könnte die Funktion isElement(), auf die sich alles bezieht, auch ganz anders implementiert sein. Hierin besteht ja gerade die Idee eines abstrakten Datentyps. Wir stellen also (nur) die Forderung, dass das Prädikat ∈ so durch die Funktion isElement() implementiert wird, dass die unten beschriebenen mAussagen hierdurch wahr werden. Die Situation ist ähnlich der Beschreibung der reellen Zahlen durch eine Reihe von Axiomen, mit denen grundlegende Eigenschaften der reellen Zahlen in Form von Aussagen formuliert werden, die jede Implementierung der reellen Zahlen zu erfüllen haben. Diese Axiome umfassen arithmetische Aussagen man spricht in diesem Fall von Gruppenaxiomen und Ordnungsaxiomen sowie weitere Axiome. 2.5.1 Eigenschaften des abstrakten Datentyps Set Wir beginnen mit der ersten Eigenschaft: Die Eigenschaft ∃x ⊤ (Ex) Die mAussage ∃x ⊤ soll wahr sein. Hierbei handelt es sich um eine Aussage, die sich ausnahmsweise nicht auf eines der beiden Prädikate (∈ oder =) bezieht. Die Wahrheit dieser Aussage wird im Rahmen der Implementierung des Datentyps Set also nicht durch Nachschauen in der PrädikatTabelle gezeigt. Sie beruht also auf einem anderen Faktum. Schauen wir uns hierzu die Interpretation dieser mAussage an. Sie ergibt sich aus den vorangegangenen Betrachtungen zur Interpretation quantizierter mAussagen zu: boolean func\_exists(){ forall (Set x){ if(true) return true; } return false; } Wenn von einer Implementierung des Datentyps Set also gefordert wird, dass diese Funktion true liefert, dann folgt daraus, dass die forSchleife mindestens einmal durchlaufen werden kann. Denn wird sie kein einziges Mal durchlaufen, dann würde sofort false ausgegeben. Wird Sie (mindestens) einmal durchlaufen, dann wird sie bei dem ersten Durchlaufen mit dem Ausgeben von true auch schon verlassen. 2.5. MENGENOPERATIONEN UND NOTATIONEN 41 Die mAussage ∃x⊤ wird also genau dann als true interpretiert, wenn in die for Schleife eingetreten werden kann. Dies ist genau dann der Fall, wenn es mindestens ein Objekt vom Typ Set gibt, auf das die Variable x beim ersten Durchlauf verweisen kann. Damit können wir festhalten, dass die mAussage ∃x⊤ genau dann als true interpretiert wird, wenn die Implementierung von Set mindestens ein Objekt umfasst. Das erste Axiom der Mengenlehre bedeutet also, dass es mindestens eine Menge gibt. Damit haben wir aber auch die Garantie, dass die folgende Funktion, die wir aus der Skolemisierung gewinnen, ein Ergebnis ungleich null liefert: Set get_exists(){ forall (Set x){ if(true) return x; } return null; } Diese Funktion tritt wie die Funktion func_exists (s.o.) in die Schleife ein und liefert dasjenige Objekt als Wert zurück, auf das beim ersten Schleifendurchlauf durch x verwiesen wird. Welches Objekt zurückgeliefert wird, hängt von der (zufälligen) Reihenfolge ab, in der die Objekte des Typs Set in Schleifen durchlaufen werden, welches Objekt bei einem Durchlauf also zufällig als erstes genommen wird. Das durch die skolemisierte Funktion geliefert Objekt ist also nicht eindeutig bestimmt. Die Eigenschaft ∀x ∀y ∀z (z ∈ x ⇔ z ∈ y) ⇒ (x = y) (Ext) Die mAussage ∀x ∀y ∀z (z ∈ x ⇔ z ∈ y) ⇒ (x = y) soll wahr sein. Diese Eigenschaft legt fest, dass die Gleichheit von zwei beliebigen Objekten x und y des Typs Set an der gleichzeitigen Gültigkeit oder Nichtgültigkeit der Aussagen z ∈ x und z ∈ y festgemacht wird (wie immer diese auch implementiert sein sollten). Das zweite Axiom bedeutet also, dass zwei Objekte genau dann identisch sind, wenn sie dieselben (anderen) Objekte (im Sinne von ∈) beinhalten. Machen wir uns klar, dass wir damit auf die Gleichheitsoperation == theoretisch ganz verzichten könnten, denn der Aufruf der Operation x == y liefert stets denselben Wahrheitswert wir der Aufruf der folgenden Funktion isEqual() für ∀z z ∈ x ⇔ z ∈ y : boolean isEqual(Set x, Set y){ forall (Set z){ if((isElement(z,x)&!isElement(z,y))|isElement(z,y)&!isElement(z,x)) return false; } return true; } Vom operationellen Standpunkt her bedeutet dies, dass wir die Gleichheit zweier (Mengen)Objekte a und b so zeigen können, dass wir zunächst ein beliebiges Objekt x aus a hernehmen und zeigen, dass es aus zu b gehört und dann umgekehrt, dass ein beliebig aus b entnommenes x auch zu a gehört. 42 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Die Eigenschaft ∀x∃y∀z(z ∈ y) ⇔ (z ∈ x ∧ A(z)) (Aus) Die mAussage ∀x ∃y ∀z (z ∈ y) ⇔ (z ∈ x ∧ A(z)) soll wahr sein. Diese Aussage hat den Zweck zu garantieren, dass Objekte möglichst eindeutig umschrieben/charakterisiert werden können. Diese Umschreibung soll durch möglichst beliebige (andere) Aussagen durchgeführt werden können. Der einfachste Ansatz könnte darin bestehen, dass man die Aussage (Aus) ersetzte durch die Aussage ∃y∀z(z ∈ y) ⇔ A(z)) wobei A(z) für eine beliebige mAussage steht, in der die Variable z vorkommt. Strenggenommen haben wir es hier also mit einem Aussagenschema zu tun. Setzt man für A(z) die spezielle mAussage ¬(z ∈ z) ein, dann erhielte man ∃y∀z(z ∈ y) ⇔ ¬(z ∈ z)). Skolemisierte man diese Aussage mit einem speziellen Objekt c, so erhielte man ∀z(z ∈ c) ⇔ ¬(z ∈ z). Mit c eingesetzt für z erhielte man letztendlich (c ∈ c) ⇔ ¬(c ∈ c). Es ist klar, dass es hierfür keine Implementierung geben kann. Dies also ist der Grund, dass man sich in der Umschreibung, in dem Festlegen eines Objektes jeweils auf ein schon vorhandenes (anderes) Objekt bezieht. Eine auf der Basis von (Aus) skolemisierte Funktion schneidet gewissermaÿen aus einem schon vorhandenen Objekt x ein (eindeutiges) y aus. y bestehend A(z) vor dem Das dritte Axiom garantiert also die Existenz eines speziellen Objektes aus (anderen) Objekten z charakterisiert durch eine beliebige Aussage Hintergrund eines Objektes x. Wählt man ein festes Objekt m für x, dann erhält man aus dem Aussagenschema (Aus) die mAussage ∃y ∀z (z ∈ y) ⇔ (z ∈ m ∧ A(z)) oder mit der Abkürzung Hm (z) für (z ∈ m ∧ A(z)): ∃y ∀z (z ∈ y) ⇔ Hm (z). Auf Grund der Eigenschaft (Ext) gibt es genau ein y , dass die letzte Aussage erfüllt (die zugehörige Skolemfunktion liefert also unabhängig von der Reihenfolge der in den forallSchleifen ausgewählten Objekte stets dasselbe Objekt). Das durch Skolemisierung gewonnene eindeutig bestimmte Objekt kann deshalb durch ein Literal gekennzeichnet werden. Wir notieren dieses Objekt mit: {u|Hm (u)}. Die Sprechweise hierfür ist: Menge, die aus genau denjenigen Objekten z besteht, für die Hm (z) wahr ist. Mit {u|Hm (u)} für y erhalten wir ∀z z ∈ {u|Hm (u)} ⇔ Hm (z). Wir erweitern die Möglichkeit, eine Menge in der gerade beschriebenen Literalform zu beschreiben, indem wir festlegen: ( ) ( ) ∀y∀x x ∈ y ⇔ H(x) ⇔ y = {x|H(x)} . Wenn es also schon eine Menge y gibt, deren Elemente x sich durch H(x) charakterisieren lassen, dann notieren wir diese Menge ebenfalls als Literal mit jenem H(x): {x|H(x)}. 2.5. MENGENOPERATIONEN UND NOTATIONEN 43 Mit x ∈ y als H(x) ist x ∈ y ⇔ H(x) stets wahr, deshalb ist stets: y = {x|x ∈ y}. Sind m, m′ Mengen mit m = {x|H(x)} und m′ = {x|H ′ (x)}, dann gilt m = m′ g.d.w. ∀x H(x) ⇔ H ′ (x). Vom operationellen Standpunkt her bedeutet dies, dass wir zwei durch Literale {z|H(z)} und {z|H ′ (z)} festgelegte Mengen dadurch auf Gleichheit hin untersuchen können, indem wir die beiden Aussagen H(z) und H ′ (z) auf Äquivalenz hin untersuchen, dass wir also zeigen ∀z H(z) ⇔ H ′ (z). Damit erhalten wir letztendlich für die Gleichheit von Mengen: {z|H(z)} = {z|H ′ (z)} g.d.w. ∀z H(z) ⇔ H ′ (z). Die Eigenschaft ∀x ∀y ∃z ∀u (u ∈ z) ⇔ (u = x ∨ u = y) (Paar) Umgangssprachlich lässt sich diese Eigenschaft so ausdrücken, dass es zu je zwei Mengen (hier x und y ) eine Menge (hier z ) gibt, die genau x und y als Elemente besitzt. Für diese Menge z benutzen wir als weiteres Literal {x, y}. Es gilt somit u ∈ {x, y} ⇔ u = x ∨ u = y . Sind x und y gleich, dann schreiben wir {x} anstelle von {x, y}. Beachten wir bitte, dass wir damit zwei verschiedene Literale für dasselbe Objekt erhalten, denn es ist nach den obigen Bemerkungen automatisch: {x, y} = {u|(u = x) ∨ (u = y)} mit der mAussage (u = x) ∨ (u = y) in der Rolle von H(u). Die Eigenschaft ∀x ∃y ∀z (z ∈ y ⇔ (∃v z ∈ v ∧ v ∈ x)) (U) Die ausgehend von einer Menge x nach (U) exitierende Menge y notieren wir auch in der Form ∪ v. v∈x Damit gilt z ∈ ∪ v∈x v ⇔ ∃v v ∈ x ∧ z ∈ v . wir haben es hier mit einer Eigenschaft zu tun, die uns die Möglichkeit der mengentheoretischen Vereinigungsoperation gewährleistet und den Rahmen dafür liefert. In Literalschreibweise gilt: ∪ v∈x v = {z|∃v v ∈ x ∧ z ∈ v}. Es wird also gewährleistet, dass alle in einer Menge x bendlichen Mengen mengentheoretisch vereinigt werden können. 44 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Die Eigenschaft ∀x ∃y ∀z (z ∈ y ⇔ z ⊂ x) (Pot) Die mAussage z ⊂ x stet abkürzend für die mAussage ∀u u ∈ z ⇒ u ∈ x. Für Literale gilt demnach automatisch: {z|H(z)} ⊂ {z|H ′ (z)} g.d.w. ∀z H(z) ⇒ H ′ (z). Das für ein Objekt c in der Rolle von x (durch Skolemisierung von y ) gewonnene Objekt bezeichnen wir auch mit 2c (Potenzmenge von c). Beachten wir, dass wir auch damit zwei unterschiedliche Literale für dasselbe Objekt erhalten, denn es gilt automatisch 2c = {z|z ⊂ c}. Die Eigenschaft ∃x (∅ ∈ x ∧ ∀y (y ∈ x ⇒ x ∪ {x} ∈ x)) (Inf ) Eine Menge x mit der Eigenschaft (Inf ) wird induktiv genannt. Diese Eigenschaft der Induktivität wird uns den Schlüssel liefern für ein Modell der natürlichen Zahlen innerhalb von Set. Der Operator ∪ (bei x ∪ {x}) wird weiter unten mit Hilfe der Eigenschaft (U) deniert. Zwischenbetrachtung: Wo stehen wir jetzt und wo wollen wir hin? Wir haben jetzt gewissermaÿen einen universellen Computer zur Verfügung zusammen mit einer Programmiersprache mit einem einzigen Datentyp Set (neben boolean) und einer einzigen vordenierten Funktion isElement() auf diesem Datentyp (neben ==). Die Programmiersprache gibt uns gewisse Konstrukte an die Hand (Schleifen, Verzweigungen u.a.), um selbst eigene Funktionen des Ergebnistyps boolean zu denieren und sie wie Programmierbausteine zu benutzen und in weiteren Funktionen einzusetzen. Der Konstrukteur des Computers garantiert uns nun, dass (zumindest) diejenigen programmierbaren Funktionen, die den oben beschriebenen Eigenschaften des Datentyps Set entsprechen, bei ihrem Aufruf true liefern. der Konstrukteur diese Garantie bewerkstelligt, braucht uns zunächst nicht zu interessieren. Wir könnten uns aber vorstellen, dass die Implementierung (unter Benutzunmg von Science ction Technologie) auf einer (unendlichen) Objektliste zusammen mit einer zweispaltigen Tabelle beruht, auf die booleschen Funktionen und insebsondere die isElement Funktion zugreifen und die sie in endlicher Zeit durchsuchen können. Wie Unser weiteres Ziel ist es nun, die Möglichkeiten unseres Rechners so zu nutzen, d.h. ihn so zu programmieren, dass wir ihn für unsere Zwecke nutzen können. Erstes Ziel soll es sein, ihn zu einem Rechner zu machen, d.h. uns ausgehend von dem Datentyp Set diejenigen Objekte zu identizieren, die als Modell der natürlichen Zahlen fungieren könnten und auf ihnen Operationen zu denieren, die als die üblichen Additions und Multiplikationsoperationen angesehen werden können. Damit hätten wir auf unserem Computer zumindest schon einmal die elementaren Taschenrechnerfunktionen implemetiert. 2.5. MENGENOPERATIONEN UND NOTATIONEN 45 Um zu zeigen, dass dieser Weg gangbar ist, führen wir im folgenden zunächst vorbereitend gewisse Mengenoperationen ein. Exkurs: Methodische Betrachtungen Gemäÿ unserem methodischen Rahmen haben wir es in unseren Ausssagen immer mit den oben eingeführten mAussagen zu tun. In vielen Fällen handelt es sich dabei um quantizierte mAussagen der Form ∀xA(x) oder ∃xA(x). Die Wahrheit dieser Aussagen könnte man in unserem Szenario durch Aufruf der interpretierenden Funktionen überprüfen. Natürlich ist das nur eine theoretische Möglichkeit, so dass wir in der Regel es selbst sein werden, die die Funktionsabläufe in Gedanken durchführen und so zu einem Ergebnis zu kommen. (Wir gehen gewissermaÿen zurück zum Kopfrechnen.) Wir gehen also so vor, dass zum Nachweis einer quantizierten Aussage vom Typ ∀xA(x) für ein beliebig herausgegrienes Objekt x gezeigt wird, dass die Aussage A(x) zutrit. Bei einer Aussage vom Typ ∃xA(x) suchen wir demgegenüber ein spezielles geeignetes Objekt x für das die Aussage A(x) zutrit. Betrachten wir als Beispiel die Aussage ∀xx ∈ a ⇔ x ∈ b. Dann haben wir für ein beliebig herausgegrienes Objekt x zu zeigen, dass die Aussage x ∈ a ⇔ x ∈ b zutrit, dass also x ∈ a wahr ist genau dann, wenn x ∈ b wahr ist. Wir gehen in einbem solchen Fall also so vor, dass wir aus der Annahme, dass x ∈ a gelte, folgern dass dann auch x ∈ b gelten muss und umgekehrt. 2.5.2 Elementare Mengenoperationen Die leere Menge ∅ Das spezielle Literal ∅ steht für ein spezielles Objekt. Wir erhalten es, indem wir von (Aus) ausgehen und für H(z) folgende Aussage bilden: z ∈ m ∧ ⊥. Wir erhalten damit die spezielle Menge ∅ = {z|z ∈ m ∧ ⊥}. Es sieht auf den ersten Blick so aus, dass ∅ noch von (der Interpretation von) m abhhinge. Man kann aber leicht zeigen, dass dies nicht der Fall ist. ∅ heiÿt leere für das gilt Menge. Das Literal steht für dasjenige eindeutig bestimmte Objekt, ∀x ¬(x ∈ ∅). Denn da z ∈ ∅ ⇔ z ∈ m ∧ ⊥ ⇔ ⊥, ist z ∈ ∅ stets falsch und es folgt ∀x ¬(x ∈ ∅) bzw. ¬∃x x ∈ ∅. 46 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Der Durchschnitt von Mengen Die Eigenschaft (Aus) liefert uns die Möglichkeit eine Operation auf Mengen zu denieren: Hierzu betrachten wir die Aussage H(z) ≡ (z ∈ a) ∧ (z ∈ a′ ). Die hierzu gehörende eindeutig bestimmt Menge {z|(z ∈ a) ∧ (z ∈ b)} notieren wir mit a∩b: a ∩ b = {z|z ∈ a ∧ z ∈ b}. Es gilt also ∀z z ∈ a ∩ b ⇔ (z ∈ a) ∧ (z ∈ b). Aufgabe: Schreiben Sie eine Funktion in JavaZ, die ausgehend von zwei Mengen a und b, die Menge a ∩ b als Ergebnis liefert. Hinweis: Gehen Sie aus von der Aussage ∃y ∀z (z ∈ y) ⇔ (z ∈ om ∧ A(z)) mit A(z) gwählt als z ∈ b und setzen Sie a in die Rolle von om, so dass wir folgende Aussage betrachten: ∃y ∀z (z ∈ y) ⇔ (z ∈ a ∧ z ∈ b). Skolemisieren Sie diese Aussage. Die Vereinigung von Mengen Die Eigenschaft (U) liefert uns eine weitere Operation auf Mengen, indem wir ausgehend von zwei Mengen a und ∪ b zunächst nach (Paar) die Menge {a, b} bilden und dann nach (U) die Menge v∈{a,b} v . Diese Menge notieren wir durch: a ∪ b. Es gilt nun für beliebiges z : ∪ z ∈a∪b ⇔ z ∈ v∈{a,b} (U) ⇔ ∃v z ∈ v ∧ v ∈ {a, b} ⇔ ⇔ ∃v z ∈ v ∧ (v = a ∨ v = b) ∃v (z ∈ v ∧ v = a) ∨ (z ∈ v ∧ v = b) ⇔ ⇔ ∃v (z ∈ a) ∨ (z ∈ b) (z ∈ a) ∨ (z ∈ b) Fassen wir also zusammen: ∀z z ∈ a ∪ b ⇔ (z ∈ a) ∨ (z ∈ b). a ∪ b kann deshalb als Literal wie folgt geschrieben werden: a ∪ b = {z|z ∈ a ∨ z ∈ b}. Aufgabe: Schreiben Sie eine Funktion in JavaZ, die ausgehend von zwei Mengen 2.5. MENGENOPERATIONEN UND NOTATIONEN 47 a und b, die Menge a ∪ b als Ergebnis liefert. Hinweis: Ausgehend von (Paar) betrachten wir zunächst die Aussage ∃z ∀u (u ∈ z) ⇔ (u = a ∨ u = b). Skolemisierung dieser Aussage liefert zunächst eine Funktion, die ausgehend von a und b zunächst die Menge {a, b} zum Ergebnis hat. Nennen wir das Ergebnis c und setzen c für x in (U) ein. Wir erhalten: ∃y ∀u (u ∈ y ⇔ (∃v u ∈ v ∧ v ∈ c)). Skolemisierung Sie diese Aussage. Die Dierenz von Mengen Nehmen wir für Ha (z) die Aussage z ∈ a∧¬(z ∈ b), dann notieren wir die zugehörige Menge mit a \ b, so dass gilt: ∀z z ∈ a \ b ⇔ z ∈ a ∧ ¬(z ∈ b). a \ b kann damit geschrieben werden als a \ b = {z|z ∈ a ∧ ¬(z ∈ b)}. 2.5.3 Geordnete Paare und mengentheoretische Funktionen Kartesisches Produkt Ausgehend von zwei vorgegebenen Mengen u, v kann man durch sukzessive Paarbildung die Menge {{u}, {u, v}} bilden.Wir schreiben hierfür: {{u}, {u, v}} = (u, v) (u, v) fungiert also als Literal und zwar als Abkürzung für das Literal {{u}, {u, v}}. Man kann zeigen (Übung), dass stets (u, v) = (a, b) g.d.w. u = a und v = b. Das kartesische Produkt von zwei Mengen a und b wird nun deniert mittels der Aussage H(z) = ∃u ∃v (u ∈ a ∧ v ∈ b ∧ z = (u, v)). Wir suchen also m.a.W. all diejenigen Objekte z , die sich als geordnetes Paar z = (u, v) herausstellen, wobei u ∈ a und v ∈ b sein muss. Für das kartesische Produkt zweier Mengen a und b benutzen wir das Literal a × b. Damit ist a × b = {z|∃u ∃v (u ∈ a ∧ v ∈ b ∧ z = (u, v))}. Für die rechte Seite benutzen wir als Abkürzung: {(u, v)|u ∈ a ∧ v ∈ b}. a × b = {(u, v)|u ∈ a ∧ v ∈ b}. Mengentheoretische Funktionen f :a→b Das Konzept einer Funktion zwischen zwei Mengen a und b lässt sich nun leicht auf das Konzept einer geigneten Teilmenge eines kartesischen Produktes zurückführen. Hierzu deniert man eine Funktion mengentheoretisch über ihren Graphen, also durch eine geeignete Teilmenge des kartesischen Produktes a × b. Damit eine 48 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK solche Teilmenge f als Graph einer Funktion aufgefasst werden kann, müssen zwei Bedingungen erfüllt sein: i) ∀u∈a ∃v∈b (u, v) ∈ f ii) ∀u∀v∀v ′ (u, v) ∈ f ∧ (u, v ′ ) ∈ f ⇒ v = v ′ . Bemerkung: ∀x∈a A(x) ist eine abkürzende Schreibweise und soll ∀x (x ∈ a ⇒ A(x)) bedeuten. Analog steht ∃x∈b A(x) für ∃x (x ∈ b ∧ A(x)). Ist (u, v) ∈ f , dann schreiben wir für v auch f (v) und nennen ihn Funktionswert von v der Funktion f . Anstelle von v = f (u) oder (u, v) ∈ f schreiben wir auch f u 7→ v Nach i) gibt es also für jedes u ∈ a (mindestens) einen Funktionswert f (u). Nach ii) gibt es nur einen Funktionswert. Wir beachten, dass eine Funktion als Mengenobjekt ein Objekt ist wie jedes andere aus unserer Mengenlehre. Was also macht eine Funktion zu einer Funktion? Folgt man unseren Überlegungen, dann erkennt unser Computer ein FunktionsObjekt f daran, dass folgende Aussage für dieses f zutrit: ( ) ( ) ( ) ∃a∃b f ⊂ a×b ∧ ∀x∈a ∃y∈b (x, y) ∈ f ∧ ∀x∀y∀y ′ (x, y) ∈ f ∧(x, y ′ ) ∈ f ⇒ y = y ′ . Und wie erhält man den Funktionswert f (x) einer Funktion f für das Objekt x? Nun einfach durch folgende JavaZ Funktion: Set evaluate_Function(Set f, Set x){ forall(Set y){ if( isElement((x,y),f)) return proj1(x,y); } return null; } Hierbei bezeichnet proj1 eine JavaZ Funktion, die (auf naheliegende Weise) die erste Komponente von (x,y), nämlich x, liefert. Auch bei (a,b) handelt es sich um eine verkappte JavaZ Funktion, die aus zwei Set Objekten a,b das entsprechende Set Objekt (a,b) liefert. 2.5.4 Mengenalgebren und Verbände In Vorbereitung auf den operationellen Umgang mit Mengen werden wir grundlegende Eigenschaften der vorhin eingeführten Mengenoperationen herleiten: Satz 2.1. Folgende Aussagen gelten: i) ∀a ∀b ∀c a ∪ (b ∪ c) = (a ∪ b) ∪ c ∀a ∀b ∀c a ∩ (b ∩ c) = (a ∩ b) ∩ c (Assoziativgesetze) ii) ∀a ∀b a ∪ b = b ∪ a ∀a ∀b a ∩ b = b ∩ a (Kommutativgesetze) iii) ∀a ∀b (a ∩ b) ∪ a = a 2.5. MENGENOPERATIONEN UND NOTATIONEN 49 ∀a ∀b (a ∪ b) ∩ a = a (Absorptionsgesetze) ∀a ∀b ∀c (a ∪ b) ∩ c = (a ∩ c) ∪ (b ∩ c) ∀a ∀b ∀c (a ∩ b) ∪ c = (a ∪ c) ∩ (b ∪ c). iv) (Distributivgesetze) Beweis. zu i): Seien a, b, c beliebige Mengen. Es gilt jeweils: a ∪ (b ∪ c) = {x|x ∈ a ∨ (x ∈ b ∨ x ∈ c)} sowie (a ∪ b) ∪ c = {x|(x ∈ a ∨ x ∈ b) ∨ x ∈ c}. Damit a ∪ (b ∪ c) = (a ∪ b) ∪ c, ist also zu zeigen, dass für beliebiges x gilt x ∈ a ∨ (x ∈ b ∨ x ∈ c) ⇔ (x ∈ a ∨ x ∈ b) ∨ x ∈ c. Dies folgt aber sofort aus der Aussagenlogik auf Grund der Assoziativität der Operation ∨ und der erste Teil von i) ist bewiesen. Der zweite Teil von i) und der Teil ii) zeigen sich analog. zu iii): Es ist: (a ∩ b) ∪ a = {x|(x ∈ a ∧ ∨x ∈ b) ∨ x ∈ a} und a = {x|x ∈ a}. Nun gilt (x ∈ a∧x ∈ b)∨x ∈ a ∨ und ∧), also folgt ⇔ x ∈ a (Eigenschaft der logischen Operationen (a ∩ b) ∪ a = {x|(x ∈ a ∧ ∨x ∈ b) ∨ x ∈ a} = {x|x ∈ a} = a. Der zweite Teil von iii) zeigt sich analog. zu iv): Übung 2 Satz 2.2. Es gilt: sowie ∀a ∀b a ∩ b = a ⇔ a ⊂ b ∀a ∀b a ∪ b = b ⇔ a ⊂ b. Beweis. Seien a, b beliebige Mengen mit a ∩ b = a. Dann gilt (für alle x) x ∈ a ⇔ x ∈ a ∧ x ∈ b. Da x ∈ a ∧ x ∈ b ⇒ x ∈ b, folgt damit x ∈ a ⇒ x ∈ b und damit a ⊂ b. Seien nun umgekehrt a, b beliebige Mengen mit a ⊂ b. Dann gilt für alle x, dass x ∈ a ⇒ x ∈ b. Es gilt zusätzlich stets x ∈ a ⇒ x ∈ a, so dass auf Grund der Regeln der Ausagenlogik daraus (für alle x) folgt x ∈ a ⇒ x ∈ a ∧ x ∈ b. Da gleichzeitig stets x ∈ a ∧ x ∈ b ⇒ x ∈ a, gilt (für alle x) x ∈ a ⇔ x ∈ a ∧ x ∈ b und damit a ∩ b = a. Damit ist der erste Teil bewiesen. Seien nun a, b beliebige Mengen mit a ∪ b = b. Dann gilt (für alle x) x ∈ a ∨ x ∈ b ⇔ x ∈ b. Da stets x ∈ a ⇒ x ∈ a ∨ x ∈ b, folgt aus den Regeln der Aussagenlogik (für alle x) x ∈ a ⇒ x ∈ b mithin a ⊂ b. 50 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Seien umgekehrt a, b beliebig mit a ⊂ b. Dann erhalten wir wie oben zunächst (für alle x) x ∈ a ⇒ x ∈ b. Da stets x ∈ b ⇒ x ∈ b folgt mt den Regeln der Aussagenlogik auch x ∈ a∨x ∈ b ⇒ x ∈ b. Da gleichzeitig stets auch x ∈ b ⇔ x ∈ a∨x ∈ a folgt (für alle x) x ∈ a ∨ x ∈ a ⇔ x ∈ b und mithin a ∪ b = b. Damit ist auch der zweite Teil bewiesen. 2 Folgerung 2.3. Es gilt: ∀a ∀b ∀c a ⊂ c ∧ b ⊂ c ⇒ a ∪ b ⊂ c. Beweis. Seien a, b, c beliebige Mengen mit a ⊂ c und b ⊂ c dann folgt aus Satz 2.2, dass a ∪ c = c und b ∪ c = c. Damit ist (a ∪ b) ∪ c = a ∪ (b ∪ c) = a ∪ c = c. Also ist (a ∪ b) ∪ c = c und mit Satz 2.2 erhalten wir a ∪ b ⊂ c. 2 Folgerung 2.4. Es gilt: ∀a a ∩ a = a = a ∪ a. Beweis. Sei a eine beliebige Menge. Nach dem ersten Absorptionsgesetz (mit a ( ) in der Doppelrolle für a und b) folgt (a∩a)∪a = a und somit (a∩a)∪a ∩a = a∩a. ( ) Nun ist nach dem zweiten Absorptionsprozess gleichzeitig (a ∩ a) ∪ a ∩ a = a. Damit folgt a ∩ a = a. Die zweite Teilbehauptung zeigt sich analog ausgehend von dem zweiten Absorptionsgesetz in Form von (a ∪ a) ∩ a = a. 2 Folgerung 2.5. Es gilt: ∀a ∀b a ∩ b ⊂ a ⊂ a ∪ b. Beweis. Für beliebige Mengen a, b gilt (nach den Absorptionsgesetzen) (a ∩ b) ∪ a = a. Unter Benutzung von Satz 2.2 folgt damit (in der Rolle von a für b und b für a ∩ b), dass a ∩ b ⊂ a. Nach dem Absorptionsgesetz (in der zweiten Form) gilt für beliebige Mengen a, b (a ∪ b) ∩ a = a. Damit erhalten wir für a ∪ b in der Rolle von b aus Satz 2.2 sofort a ⊂ a ∪ b. Damit ist die Folgerung vollstängig bewiesen. 2 Wir betrachten nun die Eigenschaften der der mengentheoretischen Dierenz. Satz 2.6. Es gilt: ∀a ∀b (a \ b) \ a = ∅ ii) ∀a ∀b a \ (a \ b) = a ∩ b iii) ∀a ∀b a \ (b \ a) = a iv) ∀a ∀b a ∪ (b \ a) = a ∪ b i) Beweis. Übung 2 2.5. MENGENOPERATIONEN UND NOTATIONEN Folgerung 2.7. Für alle Mengen a, b ∀a ∀b (a \ b) \ b = a \ b ii) ∀a a \ ∅ = a iii) ∀a ∀b a \ b ⊂ a iv) ∀a ∀b a ⊂ b ⇒ a \ b = ∅ v) ∀a ∀b a ∩ (a \ b) = a \ b vi) ∀a ∀b a ∩ (b \ a) = ∅ vii) ∀a ∀b a \ (a ∩ b) = a \ b. 51 gilt: i) Beweis. zu i): Nach Satz 2.6 iii) gilt b = b \ (a \ b) und damit (a \ b) \ b = (a \ b) \ (b \ (a \ b)). Unter nochmaliger Benutzung dieses Satzes (mit a \ b in der Rolle von a) erhalten wir (a \ b) \ (b \ (a \ b)) = a \ b, insgesamt also (a \ b) \ b = a \ b. Damit ist Teil i) bewiesen. zu ii): Nach dem Satz 2.6 i) folgt (mit ∅ für b) dass ∅ = (a \ ∅) \ a und somit a \ ∅ = a \ ((a \ ∅) \ a). Mit Satz 2.6 iii) (und mit a \ ∅ in der Rolle von b) erhalten wir a \ ((a \ ∅) \ a) = a. Damit ist stets a \ ∅ = a und ii) ist bewiesen. zu iii): Nach Satz 2.2 genügt es zu zeigen, dass (a \ b) ∩ a = a \ b. Nun gilt nach Satz 2.6 ii) und i) (mit a\b für a und a für b), dass (a\b)∩a = ((a\b)\((a\b)\a)) = (a\b)\∅. Unter Benutzung des gerade bewiesenen Teils ii) dieser Folgerung erhalten wir schlieÿlich (a \ b) ∩ a = (a \ b) \ ∅ = a \ b. damit ist iii) bewiesen. zu iv): Seien a, b beliebig mit a ⊂ b. Dann ist nach Satz 2.2 a = a ∪ b. Hieraus folgt (unter zusätzlicher Benutzung von 2.2 ii) und i)): a \ b = (a ∩ b) \ b = (b ∩ a) \ b = (b \ (b \ a)) \ b = ∅. Damit ist auch iv) bewiesen. zu v): ist gleichbedeutend zum gerade bewiesenen Teil iii) dieser Folgerung. zu vi): Nach Satz 2.6 ii) ist a ∩ (b \ a) = a \ (a \ (b \ a)). Mit Satz 2.6 iii) erhalten wir a \ (b \ a) = a, so dass wir hiermit erhaltena ∩ (b \ a) = a \ a = ∅. (Letzteres aus Satz 2.6 i)). Damit ist vi) bewiesen. Wegen a∩b = a\(a\b) (Satz 2.6 ii)) erhalten wir a\(a∩b) = a\(a\(a\b)) = a ∩ (a \ b) (Letzteres wiederum mit Satz 2.6 ii)). Nach dem gerade bewiesenen Teil v) dieser Folgerung ist a ∩ (b \ a) = a \ b und damit folgt insgesamt a \ (a ∩ b) = a \ b und vii) ist bewiesen. 2 zu vii): Mengentheoretische Komplemente Wir betrachten im Folgenden die Potenzmenge 2c einer festen Menge c. Aus den vorausgegangenen Theoremen und Folgerungen folgt, dass alle mengentheoretischen Operationen (∪, ∩, \) mit Mengen aus 2c wieder Mengen aus 2c liefert. Es gilt: Satz 2.8. Es gilt: sowie ∀a a ∩ ∅ = ∅ und ∀a a ∪ ∅ = a ∀a a ∈ 2c ⇒ a ∩ c = a und ∀a a ∈ 2c ⇒ a ∪ c = c. 52 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Beweis. Folgt sofort aus ∅ ⊂ a ⊂ c. Satz 2.9. Es gilt: Beweis. 2 ∀a a ∈ 2c ⇒ a ∩ (c \ a) = ∅. Es ist a ∩ (c \ a) = a \ (a \ (c \ a)) = a \ a = ∅. Denition 2.10. Auf der Potenzmenge die Operation a deniert durch ∪, ∩, ¯ eine Beweis. einer Menge c sei für alle a ∈ 2c a = c \ a. Folgerung 2.11. Die Potenzmenge nen 2c 2 2c einer Menge c bildet mit den Operatio- boolesche Algebra. aus den vorangegangenen Sätzen. 2 Die Inklusionsbeziehung als Ordungsbeziehung Die Teilmengenbeziehung hat alle formalen Eigenschaften einer Ordnung. Wir können also eine Sprachregelung der Art einführen, dass wir sagen, eine Menge a sei kleiner oder gleich einer Menge b, wenn asubsetb. Obwohl es Mengen a, b gibt, die bzgl. dieser Ordnung unvergleichbar sind für die also weder a ⊂ b noch bsubseta gilt gibt es Situationen, in denen man sinnvoll von einer kleinsten Menge sprechen kann. Das ist dann der Fall, wenn ausgehend von einer Menge c eine Menge m existiert mit ∀x x ∈ c ⇒ m ⊂ x, wenn also mit anderen Worten m kleiner/gleich ist wie alle Mengen aus c. Solche kleinsten Mengen spielen häug eine besondere Rolle. 2.6 Natürliche Zahlen revisited Wir haben alle technischen Voraussetzungen getroen, eine besondere Menge zu identizieren, der wir auf natürliche Weise die Rolle der natürlichen Zahlen zuweisen können. Wir machen dabei Gebrauch von der Tatsache, dass sich die natürlichen Zahlen eindeutig(!) durch den Zählprozess charakterisieren lassen. (Wir werden diesen Sachverhalt später noch genauer begründen.) Der Zählprozess kann nun so beschrieben werden, dass man ausgehend von einer Zahl 0 sukzessive immer weiter zu einer nächsten übergeht, und dass dieser Übergang eindeutig sein muss, dass es also nur eine nächste Zahl gibt. Mit dem Zählprozess verbinden wir auch die Vorstellung, dass wir beim Zählen nicht zweimal auf dieselbe Zahl treen, dass also der Zählprozess sich nicht irgendwann im Kreise dreht und auch die Null nicht irgendwann noch einmal auftritt. Wir nehmen auch ganz selbstverständlich an, dass wir jede (jede ) natürliche Zahl beim Zählen irgendwann einmal erreichten wenn wir nur genügend Zeit investierten. Versuchten wir diese Vorstellungen zu formalisieren, dann könnten wir mit unseren formalen Ausdrucksmittel sagen, dass die natürlichen Zahlen einen Objektbereich darstellen (einen unendlichen, und was das bedeutet, werden wir noch präzisieren können), eine Menge mithin, die normalerweise mit N notiert wird, mit einem besonderen Element, das mit 0 bezeichnet wird. Auf dieser Menge ist eine Funktion 2.6. NATÜRLICHE ZAHLEN REVISITED 53 deniert, die die Rolle der vorhin beschriebenen Zähl funktion einnimmt und die als Nachfolgerfunktion s bezeichnet wird: s:N→N Gilt für zwei Objekte x, y s(x) = y , dann wird x wird Nachfolger von x genannt. Vorgänger von y genannt, und y Damit s die oben beschriebene Rolle einnehmen kann, muss s dann folgende Eigenschaften besitzen: 1. Die 0 hat keinen Vorgänger, d.h. formal gilt ¬∃y∈N 0 = s(y). 2. Jedes Element hat höchstens einen Vorgänger, d.h. formal gilt ∀x∈N ∀x′ ∈N s(x) = s(x′ ) ⇒ x = x′ . 3. Man erfasst ausgehend von der 0 mit der Nachfolgerfunktion jede Zahl aus N. Formal kann man dies so präzisieren (machen Sie sich dies in Ruhe klar): ( ) ∀a⊂N ∀x∈N 0 ∈ a ∧ (x ∈ a ⇒ s(x) ∈ a) ⇒ a = N. (Zur Erinnerung: die Schreibweise ∃x∈u A(x) steht abkürzend für ∃x (x ∈ u) ∧ A(x), und ∀x∈u A(x) steht abkürzend für ∀x (x ∈ u) ⇒ A(x).) Was tun? Wollen wir also unter unseren Objekten von Typ Set ein Objekt nden, das als Modell der natürlichen Zahlen fungieren soll, müssen wir für dieses Objekt gleichzeitig eine geeignete Nachfolgerfunktion nden, also eine Funktion mit den oben beschriebenen Eigenschaften. Debei hilft uns die Beobachtung, dass die Eigenschaft einer induktiven Menge (siehe Axiom (Inf )) äuÿerliche Ähnlichkeiten mit der Eigenschaft 3. der Nachfolgerfunktion hat. Unser Ansatz wird also der sein, eine geeignete induktive Menge zu nehmen zusammen mit einer geeigneten Nachfolgefunktion, die die Induktivität wiederspiegelt. 2.6.1 Ein erster Versuch Gehen wir also hin und nehmen eine induktive Menge i auf der wir als Nachfolgerfunktion eine Funktion σ ⊂ i × i, d.h. σ:i→i mit σ(z) = z ∪ {z}. Die Induktivität von i garantiert uns zunächst, dass die so denierte Funktion tatsächlich nicht aus i hinausführt (dass i formal also tatsächlich als Teilmenge von i × i aufgefasst werden kann). 54 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK In i wäre auch das eine Folge der Induktivität die leere Menge als Element enthalten und könnte die Rolle der 0 einnehmen. Dies hätte sofort zur Konsequenz, dass diese 0 keinen Vorgänger z haben könnte (denn ein solcher Vorgänger z wäre konstruktionsbedingt es wäre ja σ(z) = z ∪ {z} ̸= ∅ in ∅ enthalten, was im Widerspruch zu den Eigenschaften von ∅ stünde. Man käme vielleicht auch noch mit der 2. Eigenschaft der Nachfolgeoperation durch, dass es nämlich stets nur einen einzigen Vorgänger gibt. Bei der 3. Eigenschaft aber wären Probleme nicht auszuschlieÿen, die einfach darauf beruhten, dass das i evtl. unnötig groÿ ausgefallen sein könnte. Und dies hätten wir zunächst auch nicht unter Kontrolle, da der Vorgang der Gewinnung einer induktiven Menge i auf dem Prozess der Skolemisierung beruhen würde, der uns seinerseits (ja nach Reihenfolge des Scannens nach induktiven Mengen) einfach die erstbeste induktive Menge liefern würde. Die also könnte einfach zu groÿ sein, um der 3. Eigenschaft unserer Nachfolgerfunktion σ zu genügen. Können wir unser Vorgehen retten? Ja, wir können. Denn das Problem lag daran, dass unsere induktive Menge zu groÿ sein könnte. Verkleinern wie sie also. Wie? Indem wir gleichsam systematisch alle Teil mengen von i daraufhin abklopfen, ob diese bereits schon für sich alleine induktiv sind. Auf diese Weise kommen wir oensichtlich zu kleineren induktiven Mengen. Schneiden wir schlieÿlich alle diese so gefundenen induktiven Teilmengen, dann haben wir sicher die kleinste gefunden, wenn ja wenn dieser Durchschnitt selbst wieder induktiv sein sollte. Diese kleinste induktive Menge wird ω genannt. Dies wäre der erste Schritt im Aunden einer Menge, die die natürlichen Zahlen würdig repräsentieren könnte. σ würde dasselbe Bildungsgesetz behalten und wir dürfen die Honung haben, dass auf dieser eingeschränkten induktiven Menge σ dann alle geforderten Eigenschaften aufweist. Im Erfolgsfalle wäre das dann die Situation: • Unsere natürlichen Zahlen N werden dargestellt durch die kleinste induktive Menge ω . • ∅ repräsentierte die 0. • σ(∅) stünde für die 1. • Generell stünde σ(z) für “z + 1”. Der Rest des Kapitels beschäftigt sich jetzt im wesentlichen mit der Aufgabe, die notwendigen Eigenschaft von ω und σ nachzuweisen. Ein letztes Wort zum Sonntag Natürlich können Sie mir glauben, dass das alles seine Richtigkeit hat und den Rest des Kapitels überspringen. Und wer glaubt nicht gerne einem deutschen Professor. Funktional werden Sie dadurch in den Folgekapiteln keine Einschränkungen verspüren. (Die Situation ist genauso wie beim Programmieren in höheren Programmiersprachen, das Sie professionell beherrschen können, ohne dass Sie sich Gedanken 2.6. NATÜRLICHE ZAHLEN REVISITED 55 über die Compilation des Codes in den eigentlichen Maschinencode machen müssen.) Dennoch: es ist ein schönes Gefühl, sich vom Professor zu emanzipieren, indem man etwas selbst durchdenkt, selbst versteht und vielleicht sogar selbst verbessert. Sie können es. 2.6.2 Denition von ω Wir zeigen: Satz 2.12. Es gibt eine kleinste induktive Menge. D.h. es gibt eine induktive Menge, die Teilmenge ist einer jeder anderen inuktiven Menge. Beweis. Nach (Inf ) gibt es ein (durch Skolemisierung gewonnenes) Objekt i, für die die Aussage ∅ ∈ i ∧ (∀z z ∈ i ⇒ z ∪ {z} ∈ i) wahr ist (d.h. als true interpretiert wird). Mit Hilfe von (Aus) können wir die Menge {x | x ∈ 2i ∧ (∅ ∈ x ∧ (∀z z ∈ x ⇒ z ∪ {z} ∈ x))} = c bilden. Wir bilden also mit anderen Worten diejenige Menge, die aus all denjenigen Teilmengen von i besteht, die selbst alle induktiv sind. Wir bilden abschlieÿend den Durchschnitt aller in c enthaltenen Mengen, d.h. wir bilden die Menge ∩ ω = x = {z|∀x∈c z ∈ x}. x∈c Es werden also ausgehend von i alle diejenigen z zu der Menge ω zusammengefasst, die in allen induktiven Teilmengen von i gleichzeitig enthalten sind. (Die Notation ∀x∈c z ∈ x dient als Abkürzung für ∀x x ∈ c ⇒ z ∈ x.) Aufgabe: Wodurch ist garantiert, dass Man sieht leicht, dass ∩ x∈c x existiert? ∀x x ∈ c ⇒ ω ⊂ x. Dies liegt daran, dass generell ∀x′ x′ ∈ c ⇒ (∩ ) x ⊂ x′ . x∈c Aufgabe: Gibt es dabei noch eine kleine fast unmerkliche Voraussetzung zu berücksichtigen? Wenn wir jetzt noch zeigen können, dass ω selbst induktiv ist, dann ist automatisch auch ω ∈ c und wir haben mit ω eine kleinste induktive Menge aus c gefunden. Bemerkung: Theoretisch könnte man mit einem anderen i zu einem anderen ω gelangen. Warum ist das nicht so? Warum ist das ω die unabhängig von i absolut kleinste induktive Menge? (Übung) Für die Induktivität von ω ist im einzelnen nun zu zeigen: i) ∅ ∈ ω ii) ∀z z ∈ ω ⇒ z ∪ {z} ∈ ω 56 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK zu i): Sei x ∈ c beliebig, dann ist x induktiv und nach Denition einer induktiven Menge ist ∅ ∈ x. ∅ ist also in allen x von c enthalten und damit nach Denition von ω auch in ω . Damit ist i) nachgewiesen. zu ii): Sei z ∈ ω beliebig gewählt. Dann ist nach Denition von ω dieses z gleichzeitig Element aller x ∈ c. Da jede der x ∈ c als induktiv vorausgesetzt ist, ist damit auch z ∪ {z} wieder in jedem x, das zu c gehört, und damit denitionsgemäÿ auch in ω . Für beliebig ausgewähltes z ∈ ω ist also auch z ∪ {z} ∈ ω . Dies zeigt ii). Damit ist ω als induktiv nachgewiesen. 2 Intuitiv sieht man, dass ω aus den Elementen ∅, {∅}, {∅, {∅}}, · · · besteht. 2.6.3 Denition und Eigenschaften der Nachfolgerfunktion σ Auf der im letzten Unterabschnitt denierten Menge ω wollen wir nun eine kanonische Funktion σ ⊂ ω × ω , d.h. σ:ω→ω denieren. Wir wählen als (die σ charakterisierende) Teilmenge aus ω × ω die Menge aller Paare (z, z ∪ {z}. Damit wird σ gleich σ = {(u, v)|(u, v) ∈ ω × ω ∧ v = u ∪ {u}}. Satz 2.13. Die Teilmenge σ ⊂ω×ω ist eine Funktion. Beweis. Damit eine Menge f als Funktion gelten kann, muss für dieses f folgende Aussage gelten (s.o.): ( ) ( ) ( ) ∃a∃b f ⊂ a×b ∧ ∀x∈a ∃y∈b (x, y) ∈ f ∧ ∀x∀y∀y ′ (x, y) ∈ f ∧(x, y ′ ) ∈ f ⇒ y = y ′ . Mit ω sowohl für a und b und mit σ für f ist also zu zeigen: i) ∀x∈a ∃y∈b (x, y) ∈ f und ii) ∀x∀y∀y ′ (x, y) ∈ f ∧ (x, y ′ ) ∈ f ⇒ y = y ′ . zu i): Sei x beliebig aus ω , dann können wir für y einfach die Menge x ∪ {x} wählen, so dass i) oensichtlich erfüllt ist. zu ii): Seien x, y, y ′ beliebig aus ω und seien (x, y) und (x, y ′ ) jeweils aus σ , dann ist nach Denition von σ y = x ∪ {x} und y ′ = x ∪ {x} und damit y = y ′ , so das auch ii) erfüllt ist. 2 Es gilt: Satz 2.14. Für alle M.a.W. z∈ω ist σ(z) ̸= ∅. ∀z z ∈ ω ⇒ σ(z) ̸= ∅. Beweis. Dies folgt sofort daraus, dass z ∈ σ(z) für alle z ∈ ω , und dass deshalb σ(z) immer mindestens ein Element nämlich z enthält. Also kann σ(z) nicht gleich 2.6. NATÜRLICHE ZAHLEN REVISITED der leeren Menge sein. 57 2 Sei f : a → b eine Funktion, dann hat f (x) eine unterschiedliche Bdeutung, je nachdem ob x ein Element oder eine Teilmenge von a ist. Bemerkung: Im ersten (üblichen) Fall ist mit f (x) der Funktionswert von f für den Wert x gemeint. f (x) ist dann ein Element aus b. Im zweiten Fall ist mit f (x) die Menge aller Funktionswerte f (y) mit y ∈ x gemeint. In diesem Fall ist also f (x) = {z|z ∈ b ∧ (∃x x ∈ a ∧ f (x) = z} eine Teilmenge von b. Wir zeigen jetzt: Satz 2.15. Wenn M.a.W. a⊂ω und ∅∈a und σ(a) ⊂ a, dann ist a = ω. ∀a a ⊂ ω ∧ ∅ ∈ a ∧ σ(a) ⊂ a ⇒ a = ω. Eine Teilmenge von ω , die ω. bzgl. σ abgeschlossen ist und die leere Menge ∅ enthält, ist selbst schon gleich Beweis. Wegen der Bedingung ∅ ∈ a und σ(a) ⊂ a ist a induktiv. Wegen der Minimalität von ω ist deshalb ω ⊂ a. Zusammen mit der Voraussetzung a ⊂ ω ist damit a = ω . 2 Weiter gilt: Hilfssatz 2.16. i) Für alle M.a.W. z∈ω gilt: x∈z für alle M.a.W. x⊂z für alle x. ∀z z ∈ ω ⇒ (∀x x ∈ z ⇒ x ⊂ z). ii) Es gilt auch eine Umkehrung, d.h. für alle x=z impliziert x ∈ ω. z∈ω gilt: x⊂z impliziert x∈z oder ∀z z ∈ ω ⇒ (∀x x ∈ ω ∧ x ⊂ z ⇒ x ∈ z ∨ x = z). Der kleine Unterschied in der Formulierung von i) und ii) bzgl. der Bedingung x ∈ ω in ii) rührt daher, dass für z ∈ ω mit beliebigem x ∈ z sich das Element x automatisch auch als Element von ω herausstellt. Für eine beliebige Teilmenge x ⊂ z trit dies nicht notwendig zu. D.h. eine beliebige Teilmenge x ∈ z muss nicht aus ω sein braucht insofern auch nicht Element von z zu sein. Die direkte Umkehrung von i) wäre demnach falsch. Beweis. zu i): Wir haben für alle z ∈ ω zu zeigen, dass ∀x x ∈ z ⇒ x ⊂ z . Wir gehen so vor, dass wir im ersten Schritt diejenigen Elemente z ∈ ω zu einer Menge a ⊂ ω zusammen, für die ∀x x ∈ z ⇒ x ⊂ z zutrit. Theoretisch kann a jetzt alles sein, von der leeren Menge bis zur Menge ω selbst. Stellt sich heraus, dass a = ω , dann ist i) beweisen. Wir werden den Nachweis so führen, dass wir zeigen, dass a induktiv ist und deshalb mit ω identisch sein muss. Zeigen wir also zunächst, dass ∅ ∈ a: ∅ in der Rolle von z führt zur Aussage ∀x x ∈ ∅ ⇒ x ⊂ ∅. Diese Aussage ist stets wahr. Damit ist ∅ ∈ a. Sei nun z ∈ a. D.h. es gelte für alle x ∈ z , dass auch x ⊂ z . Wir wollen zeigen, dass damit auch σ(z) ∈ a. Nun ist σ(z) ∈ a genau dann, wenn für alle x ∈ σ(z) 58 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK auch x ⊂ σ(z) ist. Sei also x ∈ σ(z) = z ∪ {z}, dann gibt es zwei Fälle zu unterscheiden: 1. Fall: x ∈ z 2. Fall: x ∈ {z} also x = z . Wir betrachten zunächst den 1. Fall: Da nach Voraussetzung z selbst bereits aus a sein sollte, ist mit x ∈ z auch x ⊂ z und damit x ⊂ z ∪ {z} = σ(z). Kommen wir zum 2. Fall: Mit x = z folgt x ⊂ {z} ⊂ z ∪ {z} = σ(z). In beiden Fällen erhalten wir also für x ∈ σ(z) auch x ⊂ σ(z). Damit gehört mit z automatisch auch σ(z) zu a und a ist als induktiv nachgewiesen. Damit ist a = ω und i) ist bewiesen. zu ii): Wir gehen wieder vor, wie bei i), d.h. wir fassen im ersten Schritt alle diejenigen z zu einer Menge a zusammen, für die jeweils die Aussage ∀x x ∈ ω ∧ x ⊂ z ⇒ x ∈ z ∨ x = z gilt. Auch hier werden wir wieder zeigen, dass die so gewonnene Menge a eine induktive Menge ist und deshalb mit ω identisch sein muss. Wir zeigen also als erstes wieder, dass ∅ ∈ a. Setzen wir ∅ in die Rolle von z , dann erhalten wir die Aussage ∀x x ∈ ω ∧ x ⊂ ∅ ⇒ x ∈ ∅ ∨ x = ∅. Diese Aussage stellt sich aber sofort als wahr heraus, denn nur diejenigen x ∈ ω sind Teilmenge von ∅, die selbst gleich ∅ sind, womit die Teilaussage x ∈ ∅ ∨ x = ∅ ebenfalls hierfür wahr sind, so dass die Gesamtaussage für z = ∅ wahr ist und ∅ als zu a gehörig nachgewiesen ist. Sei nun wieder z beliebig in a. Es gelte also für alle Teilmengen x ⊂ z die gleichzeitig Elemente von ω sind, dass x ∈ z oder x = z ist. Wir wollen zeigen, dass dann auch σ(z) ∈ a ist. Nun ist σ(z) ∈ a wieder genau dann, wenn für alle Teilmengen x ⊂ σ(z), die gleichzeitig Elemente von ω sind, auch gilt x ∈ σ(z) oder x = σ(z). Sei also x ⊂ σ(z) (und x ∈ ω ). Dann können wir wieder zwei Fälle unterscheiden: 1. Fall: z ∈ x 2. Fall: ¬(z ∈ x). Betrachten wir den 1. Fall: Aus z ∈ x folgt sofort {z} ⊂ x und nach dem schon bewiesenen Teil i) (mit x in der Rolle von z und umgekehrt) folgt aus z ∈ x auch z ⊂ x, insgesamt erhalten wir damit σ(z) = z ∪ {z} ⊂ x, also σ(z) ⊂ x. Zusammen mit der Voraussetzung x ⊂ σ(z) erhalten wir x = σ(z). Kommen wir zum 2. Fall: Aus ¬(z ∈ x) folgt sofort ¬({z} ⊂ x). Die Menge x umfasst also nicht die Menge {z}. Aus x ⊂ σ(z) = z ∪ {z} folgt demnach notwendig x ⊂ z , da z schon als zu a gehörig vorausgesetzt wurde, folgt x ∈ z ∨ x = z also x ∈ z ∨ x ∈ {z} also x ∈ z ∪ {z} = σ(z) In beiden Fällen erhalten wir also aus x ⊂ σ(z) (und x ∈ ω ) dass x ∈ σ(z)∨x = σ(z). Damit gehört mit z automatisch auch σ(z) zu a und a ist als induktiv nachgewiesen. Damit ist a = ω und ii) ist bewiesen. 2 2.6. NATÜRLICHE ZAHLEN REVISITED Folgerung 2.17. Für alle Wegen x ⊂ σ(z) z∈ω 59 gilt: Wenn x ∈ σ(z), dann ist x ̸= σ(z). x & σ(z). σ(z) enthält gleichsam mehr σ(z) selbst enthalten sind. ist also insgesamt Ele- mente als jede der Mengen, die als Elemente in M.a.W. ∀z z ∈ ω ⇒ (∀x x ∈ σ(z) ⇒ x ̸= σ(z)). Beweis. Sei wiederum a ⊂ ω die Menge der Elemente z für die obige Bedingung zutrit, für die also gilt: ∀x x ∈ σ(z) ⇒ x ̸= σ(z). Auch ist wiederum oensichtlich ∅ ∈ a. Sei nun z ∈ a, also ∀x x ∈ σ(z) ⇒ x ̸= σ(z). Zu zeigen ist jetzt, dass unter diesen Voraussetzungen auch σ(z) ∈ a also ∀x x ∈ σ(σ(z)) ⇒ x ̸= σ(σ(z)). Betrachten nun σ(σ(z)) = σ(z) ∪ {σ(z)}. Nach Voraussetzung an das z ist σ(z) ̸= x für alle x ∈ σ(z), d.h. σ(z)not ∈ σ(z) also {σ(z)} ̸⊂ σ(z). Deshalb ist also σ(σ(z)) = σ(z) ∪ {σ(z)} % σ(z). (Würde nämlich Gleichheit gelten, dann umfasste σ(z) doch {σ(z)}.) Sei nun x ∈ σ(σ(z)) = σ(z) ∪ {σ(z)}. Dann ist entweder wieder x ∈ σ(z) oder x ∈ {σ(z)} also x = σ(z). Sei im ersten Fall also x ∈ σ(z). Dann folgt nach dem Hilfssatz 2.16, dass x ⊂ σ(z) $ σ(z) ∪ {σ(z)} = σ(σ(z)), dass also insbesondere x ̸= σσ(z)) ist. Sei im zweiten Fall x = σ(z). Auch hierfür gilt jetzt nach i.W. derselben Ungleichungskette x = σ(z) $ σ(z) ∪ {σ(z)} = σ(σ(z)) also auch hier x ̸= σ(σ(z)). Damit ist wiederum a = ω , so dass die Behauptung für alle z ∈ ω nachgewiesen ist. 2 Folgerung 2.18. Für alle M.a.W. z∈ω ist z ̸= σ(z). ∀z z ∈ ω ⇒ z ̸= σ(z). Beweis. Die Behauptung ergibt sich unmittelbar aus Folgerung 2.17, da z ∈ σ(z) und deshalb die Voraussetzungen jener Folgerung erfüllt sind. 2 Satz 2.19. Für jedes mit z∈ω mit z ̸= ∅ ist z ∈ σ(ω), d.h. es gibt dann ein x∈ω σ(x) = z . M.a.W. ∀z z ∈ ω ∧ z ̸= ∅ ⇒ ∃x x ∈ ω ∧ z = σ(x). Beweis. Beweis durch Widerspruch. Annahme, es gebe ein z0 ∈ ω mit z0 ̸= ∅ und z0 ̸∈ σ(ω). Wir könnten dann die Teilmenge ω ′ = ω \ {z0 } bilden. Oensichtlich enthält auch ω ′ die leere Menge ∅ und mit jedem z auch σ(z) ∈ ω ′ , da die Herausnahme von z0 hierauf ja keinen Einuss hat. Damit wäre ω ′ eine kleinere induktive Menge als ω , was nach Konstruktion von ω nicht sein kann. 2 60 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK σ:ω→ω u = v. Satz 2.20. Die Funktion für u, v ∈ ω , M.a.W. dann ist auch ist injektiv, d.h. immer wenn σ(u) = σ(v) ∀u ∀v (u ∈ ω ∧ v ∈ ω ∧ σ(u) = σ(v) ⇒ u = v). Beweis. Beweis durch Widerspruch. Annahme es existieren zwei Elemente u, v ∈ ω mit σ(u) = σ(v) aber u ̸= v . Wir können dann annehmen, dass es ein x0 ∈ u gibt, mit x0 ̸∈ v oder umgekehrt. Sei also x0 ∈ u und x0 ̸∈ v . Vor. Dann ist also x0 ∈ u ⊂ u ∪ {u} = σ(u) = σ(v) = v ∪ {v}. Also ist x0 ∈ v ∪ {v}, obwohl x0 ̸∈ v (s.o). Damit ist notwendig x0 ∈ {v} also x0 = v . Dann ist aber auch v = x0 ∈ u also v ∈ u. Damit ist nach dem Satz 2.16 v ⊂ u andererseits aber auch automatisch {v} ⊂ u insgesamt haben wir wir also v ∪ {v} ⊂ u. Dies bedeutet aber nichts anderes, als dass σ(v) ⊂ u und da σ(v) = σ(u) erhielten wir hieraus σ(u) ⊂ u und damit wegen u ⊂ σ(u) letztlich u = σ(u) im Widerspruch zur Folgerung 2.18. 2 2.6.4 Unser Modell der natürlichen Zahlen Zusammenfassend lassen sich für σ folgende Eigenschaften feststellen: i) σ ist injektiv (siehe Satz 2.20) ii) ∅ ̸∈ σ(ω) (siehe Satz 2.14) iii) Wenn a ⊂ ω und ∅ ∈ a und σ(a) ⊂ a, dann ist a = ω . (siehe Satz 2.15) Unser ω zusammen mit der auf ihm denierten Nachfolgerfunktion σ dient als kanonisches Modell für die natürlichen Zahlen. Die Rolle der 0 wird durch die leere Menge ∅ wahrgenommen und die Nachfolgerfunktion bedeutet die Addition mit 1. Die natürlichen Zahlen erhalten wir also einfach als Elemente einer besonderen Menge, deren Existenz nach den postulierten Eigenschaften gesichert ist. 2.7 Java-Z-Funktionen Logische Hilfsfunktionen: boolean impl(boolean a, boolean b){ return !a | b; } boolean equiv(boolean a, boolean b){ return impl(a,b) & impl(b,a); } 2.7.1 Die leere Menge Die folgende Funktion ist eine testfunktion, die genau dann true liefert, wenn die eingegebene Menge y die leere Menge ist: boolean testEmptySet(Set y){ forall(Set z){ if(isElement(z,y)) return false; } return true; 2.7. JAVA-Z-FUNKTIONEN 61 } Die nächste Funktion realisiert die Existenzaussage für die leere Menge: boolean existsEmptySet(){ forall(Set y){ if(testEmptySet(y)) return true; } return false; } Diese Funktion liefert true, da die Existenz der leeren Menge axiomatisch verbürgt ist. Die Skolemisierung der Funktion existsEmptySet() liefert letztlich die leere Menge selbst: Set getEmptySet(){ forall(Set y){ if(testEmptySet(y)) return y; } return null; } 2.7.2 Vereinigungsmengen Gesucht wird diejenige Funktion die ausgehend von einer Menge x die Vereinigung ∪ v liefert und darauf aufbauend die Funktion, die uns bei Vorgabe zweier Menv∈x ∪ gen a, b die Vereinigungsmenge a ∪ b liefert (nämlich mit x = {a, b} als v∈{a,b} v ). Im ersten Schritt bilden wir die Unterfunktion zur Umsetzung von ∃v(u ∈ v∧v ∈ x): boolean existsBetween(Set u, Set x){ forall(Set v){ if(isElement(u,v) & isElement(v,x)) return true; } return false; } ( ) Funktion zur Umsetzung von ∀u (u ∈ y) ⇔ ∃v(u ∈ v ∧ v ∈ x) : boolean subFuncU(Set x, Set y){ forall(Set u){ if(!equiv(isElement(u,y), existsBetween(u,x))) return false; } return true; } Die Funktion boolean subFuncU(Set x, Set y) liefert genau dann true, wenn der Eingabeparameter y gerade die Vereinigungsmenge aller im Eingabeparameter x selbst enthaltenen Mengen ist. ( ) Umsetzung von ∃y∀u (u ∈ y) ⇔ ∃v(u ∈ v ∧ v ∈ x) : boolean existsU(Set x){ forall(Set y){ if(subFuncU(x,y)) return true; 62 } KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK } return false; Skolemisierung der Funktion existsU: Set getU(Set x){ forall(Set y){ if(subFuncU(x,y)) return y; } return null; } Die Funktion Set getU(Set x) liefert also bei Eingabe von x als Ergebnis die ∪ Menge v∈x v . Die Vereinigungsmenge a ∪ b zweier vorgegebener Mengen a und b erhalten wir mit Hilfe der Funktion Set getU(Set x) durch Verknüpfung mit der Funktion Set getPaar (Set a, Set b): Set union(Set a, Set b){ return getU(getPaar(a,b)); } 2.7.3 Durchschnittsmengen Gesucht wird diejenige Funktion die ausgehend von einer Menge x den Durchschnitt ∩ Menv∈x v liefert und darauf aufbauend die Funktion, die uns bei Vorgabe zweier ∩ gen a, b die Durchschnittsmenge a ∩ b liefert (nämlich mit x = {a, b} als v∈{a,b} v ). Im ersten Schritt bilden wir die Unterfunktion zur Umsetzung von ∀v(v ∈ x ⇒ u ∈ v): boolean forallBetween(Set u, Set x){ forall(Set v){ if(! impl(isElement(v,x) & isElement(u,v)) return false; } return true; } ( Funktion zur Umsetzung von ∀u (u ∈ y) ⇔ ∀v(v ∈ x ⇒ u ∈ v): boolean subFuncIntersect(Set x, Set y){ forall(Set u){ if(!equiv(isElement(u,y), forallBetween(u,x))) return false; } return true; } Die Funktion boolean subFuncU(Set x, Set y) liefert genau dann true, wenn der Eingabeparameter y gerade die Durchschnittsmenge aller im Eingabeparameter x selbst enthaltenen Mengen ist. ( ) Umsetzung von ∃y∀u (u ∈ y) ⇔ ∃v(u ∈ v ∧ v ∈ x) : boolean existsIntersect(Set x){ forall(Set y){ if(subFuncIntersect(x,y)) return true; } return false; } 2.7. JAVA-Z-FUNKTIONEN 63 Skolemisierung der Funktion existsIntersect: Set getIntersect(Set x){ forall(Set y){ if(subFuncIntersect(x,y)) return y; } return null; } Die Funktion ∩ Set getIntersect(Set x) liefert also bei Eingabe von x als Ergebnis die Menge v∈x v . Die Vereinigungsmenge a∩b zweier vorgegebener Mengen a und b erhalten wir mit Hilfe der Funktion Set getIntersect(Set x) durch Verknüpfung mit der Funktion Set getPaar (Set a, Set b): Set intersection(Set a, Set b){ return getIntersect(getPaar(a,b)); } 2.7.4 Teilmenge und Potenzmenge Die folgende Funktion testet zwei Mengen a und b daraufhin, ob a Teilmenge von b ist: boolean isSubset(Set a, Set b){ forall(Set x){ if(!impl(isElement(x,a),isElement(x,b)) return false; } return true; } Die nächste Funktion testet die Menge y daraufhin, ob sie die Potenzmenge von der Menge c ist (y = 2c = {z|z ⊂ c}): boolean testForPowerset(Set y, Set c){ forall(Set z){ if(!equiv(isElement(z,y),isSubset(z,c)) return false; } return true; } Die nächste Funktion realisiert die Existenzaussage der Potenzmenge einer Mnege c: boolean existsPowerset(Set c){ forall(Set y){ if(testForPowerset(y,c)) return true; } return false; } Sie liefert true, da die Existenz der Potenzmenge axiomatisch verbürgt ist. Die nächste Funktion liefert via Skolemisierung für eine eingegebene Menge c, deren Potenzmenge: Set getPowerset(Set c){ forall(Set y){ if(testForPowerset(y,c)) return y; 64 } KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK } return null; 2.7.5 Zweiermengen Gesucht wird diejenige Funktion, die bei Eingabe von zwei Mengen a, b als Ergebnis die Menge {a, b}, also die Menge, bestehend aus a und b liefert. Im ersten Schritt bilden wir die Unterfunktion zur Umsetzung von ∀u(u ∈ z) ⇔ (u = a) ∨ (u = b): boolean subFuncPaar(Set z, Set a, Set b){ forall(Set u){ if(!equiv(isElement(u,z), u==a | u==b)) return false; } return true; } Funktion zur Umsetzung von ∃z∀u(u ∈ z) ⇔ (u = a) ∨ (u = b): boolean existsPaar(Set a, Set b){ forall(Set z){ if(subFuncPaar(z, a, b)) return true; } return false; } Skolemisierung der Funktion existsPaar: Set getPaar(Set a, Set b){ forall(Set z){ if(subFuncPaar(z, a, b)) return z; } return null; } Die Funktion Set getPaar(Set a, Set b) liefert also bei Eingabe von a und b als Ergebnis die Menge {a, b}. 2.7.6 Induktive Mengen Der Test auf Induktivität für eine Menge i verläuft anhand der Aussage ∅ ∈ i∧∀z(z ∈ i ⇒ z ∪ {z} ∈ i). Für die zweite Teilaussage ∀z(z ∈ i ⇒ z ∪ {z} ∈ i) schreiben wir eine Hilfsfunktion: boolean subFuncInductive(Set i){ forall(Set z){ if(!impl(isElement(z,i), isElement(union(getPaar(z,z),z),i))) return false; } return true; } Der Test auf Induktivität einer Menge i ergibt sich dann zu: boolean isInductiveset(Set i){ return isElement(getEmptySet(), i) & subFuncInductive(i); } 2.7. JAVA-Z-FUNKTIONEN 65 Die nächste Funktion realisiert die Existenzaussage einer induktiven Menge: boolean existsInductiveSet(){ forall(Set i){ is(isInductiveSet(i)) return true; } return false; } Skolemisierung liefert eine Funktion, die eine induktive Menge zum Ergebnis hat: Set getArbitraryInductiveSet(){ forall(Set i){ is(isInductiveSet(i)) return i; } return null; } 2.7.7 ω als Modell für die natürlichen Zahlen Wir benötigen zunächst eine Funktion, die eine Menge x daraufhin testet, ob sie eine induktive Teilmenge einer Menge i ist: boolean testForInductiveSubset(Set x, Set i){ return isSubset(x,i) & isInductiveSet(x); } Die nächste Funktion testet die Menge c daraufhin, ob sie alle induktiven Teilmengen von i enthält: boolean containsAllInductiveSubsets(Set c, Set i){ forall(Set x){ if(!equiv(isElement(x,c), testForInductiveSubset(x, i))) return false; } return true; } Die folgende Funktion realisiert die Existenzaussage einer Menge, die alle induktiven Teilmengen einer induktiven Menge i enthält: boolean existAllInductiveSubsets(Set i){ forall(Set c){ if(containsAllInductiveSubsets(c, i)) return true; } return false; } Sie liefert aus axiomatischen Gründen true. Skolemisierung liefert ausgehend von einer induktiven Menge i, die Menge aller induktiven Teilmengen: Set getAllInductiveSubsets(Set i){ forall(Set c){ if(containsAllInductiveSubsets(c, i)) return c; } return null; } 66 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Folgende Funktion liefert nun ω (ω = ∪ x∈c x): Set getOmega(){ return getIntersect(getallInductiveSubsets(getArbitraryInductiveSet())); } 2.7.8 Skolemisierung von (Aus) Ist H(z) eine Aussage ( ) (genauer: Aussageform) für die die quantizierte Aussage ∃y∀z z ∈ y ⇔ H(z) wahr ist, erhält man hieraus die Menge dargestellt duch das Literal {z|H(z)}. Gesucht wird diejenige Funktion, die ausgehend von einer vorgegebenen Aussage H(z) und der zugehörigen Interpretation boolean h(Set z) die Menge {z|H(z)} als Ergebnis liefert. ( Im ersten Schritt bilden wir die Unterfunktion zur Umsetzung von ∀z z ∈ y ⇔ ) H(z) : boolean subFuncAusH(Set y){ forall(Set z) if(!equiv(isElement(z,y), h(z))) return false; return true; } ( ) Funktion zur Umsetzung von ∃y∀z z ∈ y ⇔ H(z) : boolean existsAusH(){ forall(Set y){ if(subFuncAus(y)) return true; } return false; } Skolemisierung der Funktion existsAusH: Set getAusH(){ forall(Set y){ if(subFuncAus(y)) return y; } return null; } ( ) Was passierte, wenn die Aussage H(z) von der Art ist, dass ∃y∀z z ∈ y ⇔ H(z) nicht wahr ist, wie im Fall der Russellschen Antinomie mit H(z) ( ) ≡ ¬(z ∈ z). In diesem Fall würde für jedes y die Aussage ∀z z ∈ y ⇔ H(z) falsch sein, d.h. dass subFuncAusH(Set y) für beliebig eingegebenes y als Ergebnis false lieferte. Damit lieferte getAusH() für H(z) ≡ ¬(z ∈ z) als Ergebnis null (also keine Menge) gewissermaÿen als exception. 2.7.9 Bildung kartesischer Produkte Die entsprechenden Funktionen können mit den vorhandenen Funktionsbausteinen leicht realisiert werden: Set getOrderedPaar(Set u, Set v) { return getPaar(getPaar(u,u), getPaar(u,v)); } 2.7. JAVA-Z-FUNKTIONEN 67 Die Funktion getOrderedPaar(Set u, Set v) liefert also bei Eingabe zweier Objekte u und v als Ergebnis das geordnete Paar (u, v) in der Form {{u}, {u, v}}. Die Funktion, die das komplette kartesische Produkt zweier Mengen a und b liefert, erhält man nun mit Hilfe der Funktion getAusH für H(z) ≡ ∃u ∃v (u ∈ a ∧ v ∈ b ∧ z = (u, v)). Um also im ersten Schritt die zugehörige Funktion subFuncAusH(Set y) zu bilden benötigen wir die Funktion h(Set z) (genauer die Funktion hPaar(Set a, Set b, Set z) da hier zusätzliche Eingabeparameter für die Mengen a und b benötigt werden). Dies geschieht auf Grund der zweifach vorhandenen Existenzquantoren in zwei Schritten. Im ersten Schritt die Unterfunktion für ∃v (u ∈ a ∧ v ∈ b ∧ z = (u, v)): boolean subFunc1H(Set a, Set b, Set z, Set u){ forall(Set v){ if(isElement(u,a) & isElement(v,b) & z == getOrderedPaar(u,v)) return true; } return false; } Und im zweiten Schritt die Funktion für ∃u ∃v (u ∈ a ∧ v ∈ b ∧ z = (u, v)): boolean hPaar(Set a, Set b, Set z){ forall(Set u){ if(subFunc1H(a,b,z,u)) return true; } return false; } Hieraus erhalten wir als Spezialfall von subFuncAusH: boolean subFuncAusHPaar(Set a, Set b, Set y){ forall(Set z) if(!equiv(isElement(z,y), hPaar(a, b, z))) return false; return true; } und als Spezialfall von existsAusH: boolean existsAusHPaar(Set a, Set b){ forall(Set y){ if(subFuncAusPaar(a, b, y)) return true; } return false; } Skolemisierung der Funktion existsAusHPaar liefert uns schlieÿlich die gewünschte Menge a × b als kartesisches Produkt von a und b: Set getKartProd(Set a, Set b){ forall(Set y){ if(subFuncAusPaar(a, b, y)) return y; } return null; } Hilfsfunktonen zum nden der ersten bzw. zweiten Komponente eines geordneten Paars z gewinnen wir wie folgt: 68 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Set getFirstComp(Set z){ forall(Set u){ forall(Set v){ if(z == getOrderedPaar(u,v)) return u; } } return null; } Set getSecondComp(Set z){ forall(Set u){ forall(Set v){ if(z == getOrderedPaar(u,v)) return v; } } return null; } 2.7.10 Mengentheoretische Funktionen Eine mengentheoretische Funktion wird aufgefasst als geeignete Teilmenge eines kartesischen Produktes a × b. Damit eine Menge f als Funktion aufgefasst werden kann, muss sie gewisse Bedingungen erfüllen. Die erste Bedingung lautet: ∀u u ∈ a ⇒ ∃v v ∈ b ∧ (u, v) ∈ f Wir bilden zunächst die zu ∃v v ∈ b ∧ (u, v) ∈ f gehörige Funktion: boolean existsValueFor(Set u, Set b, Set f){ forall(Set v){ if( isElemen(v,b) & isElement(getOrderedPaar(u,v), f)) return true } return false; } und erhalten damit die Funktion für ∀u u ∈ a ⇒ ∃v v ∈ b ∧ (u, v) ∈ f : boolean forAllExistsValue(Set a, Set b, Set f){ forall(Set u){ if(!impl(isElement(u,a), existsValueFor(u, b, f) )) return false; } return true; } Die zweite Bedingung lautet: ∀u∀v∀v ′ (u, v) ∈ f ∧ (u, v ′ ) ∈ f ⇒ v = v ′ . Die jeweiligen (Unter-)Programme für ∀v ′ (u, v) ∈ f ∧ (u, v ′ ) ∈ f ⇒ v = v ′ und ∀v∀v ′ (u, v) ∈ f ∧ (u, v ′ ) ∈ f ⇒ v = v ′ erhalten wir in Form von boolean subFunc1(Set u, Set v, Set f){ forall(Set v'){ if(!impl(isElement(getOrderedPaar(u, v), f) & isElement(getOrderedPaar(u, v'), f), v == v' )) 2.7. JAVA-Z-FUNKTIONEN } 69 return false; } return true; sowie boolean subFunc2(Set u, Set f){ forall(Set v){ if(!subFunc2(u, v, f)) return false; } return true; } Als Funktion für die zweite Bedingung erhalten wir damit abschlieÿend: boolean eindeutigeWerte(Set f){ forall(Set u){ if(!subFunc2(u, f)) return false; } return true; } Die Bedingung, dass die Menge f eine mengentheoretische Funktion ist, ergibt sich mit Hilfe einer Unterfunktion für ( ) ( ) ∃b f ⊂ a × b ∧ ∀x∈a ∃y∈b (x, y) ∈ f ∧ ∀x∀y∀y ′ (x, y) ∈ f ∧ (x, y ′ ) ∈ f ⇒ y = y ′ . subFuncIsFunktion(Set a, Set f){ forall(Set b){ if(isSubset(f, getKartProd(a, b)) & forAllExistsValue(a, b, f) & eindeutigeWerte(f)) return true; } return false; } zu boolean isFunktion(f){ forall(Set a){ if(subFuncIsFunktion(a, f)) return true; } return false; } Die Auswertung einer Funktion f , also die Bestimmung des Funktionswertes f (x) für ein Argument x, ergibt sich zu Set evaluateFunktion(Set f, Set x){ forall(Set y){ if(isElement(getOrderedPaar(x, y), f)) return y; } return null; } Due Funktion evaluateFunktion(Set f, Set x) liefert automatisch dann null, wenn f keine mengentheoretische Funktion ist oder wenn x nicht zum Denitionsbereich von f gehört. 70 2.7.11 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Die Nachfolgerfunktion auf σ ω boolean testForSucc(Set z){ if(isElement(z, getKartProd(\getOmega(), \getOmega()){ return getSecondComp(z) == union(getPaar(getFirstComp(z), getFirstComp(z)), getFirstComp(z)); } return false; boolean testSuccessorFunction(Set sigma){ forall(Set z){ if(!equiv(isElement(z, sigma), testForSucc(z))) return false; } return true; } boolean existsSigma(){ forall(Set sigma){ if(testSuccessorFunction(sigma)) return true; } return false; } Set getSigma(){ forall(Set sigma){ if(testSuccessorFunction(sigma)) return sigma; } return null; } 2.7.12 die Vorgängerfunktion pi auf ω Die Vorgeängerfunktion i ist deniert als Umkehrfunktion von der Nachfolgerfunktion σ : pi = {z|z ∈ ω × ω ∧ (z = (x, y) ⇒ (y, x) ∈ σ)}. Damit ist H(z) = z ∈ ω × ω ∧ z = (x, y) ⇒ (y, x) ∈ σ , die wie folgt umgesetzt wird: boolean hPi(Set z){ if(! isElement(z, getKartProd(getOmega(),getOmega()))) return false; if(isElement(getOrderedPaar(getSecondComp(z), getFirstComp(z)), getSigma())) return true; return false; } boolean subFuncAusHPi(y){ forall(Set z){ if(!equiv(isElement(z,y), hPi(z))) return false; } return true; } boolean existsAusHPi(){ forall(Set y){ if(subFuncHPi(y)) return true; } return false; } 2.7. JAVA-Z-FUNKTIONEN Set getPi(){ forall(Set y){ if(subFuncHPi(y)) return y; } return null; } 71 72 KAPITEL 2. MENGENLEHRE: DIE SPRACHE DER MATHEMATIK Kapitel 3 Natürliche Zahlen, ihre Operationen und Relationen Wir haben im letzten Kapitel ein besonderes Modell der natürlichen Zahlen erhalten. Es zeigt sich, dass jedes andere Modell der natürlichen Zahlen, sofern es dieselben äuÿerlichen Eigenschaften aufweist, zu diesem ersten Modell ω kanonisch isomorph ist. Man kann also mit Fug und Recht von den natürlichen Zahlen sprechen, sofern das betrachtete Mengenobjekt die erwähnten Eigenshaften aufweist. Folgende Sprachregelung ist damit gerechtfertigt: Wir nennen (ausgehend von der Menge ω und ihren Eigenschaften) eine Menge N die Menge der natürlichen Zahlen, wenn es auf N eine Funktion s:N→N und ein Element 0 gibt mit folgenden Eigenschaften: i) s ist injektiv. ii) 0 ̸∈ s(N) iii) Wenn A ⊂ N und 0 ∈ A und s(A) ⊂ A, dann ist A = N. Wie üblich legen wir fest 1 = s(0), 2 = s(1) = s(s(0)), · · · . Wir führen nun die Sprachregelung ein, mAussagen, die die natürlichen Zahlen betreen, als arithmetische Aussagen zu bezeichnen. Formal denieren wir also: Denition 3.1. Ist zelnen mAussagen B(x) eine mAussage, dann nennen wir die aus den einB(x) und x ∈ N gewonnene mAussage B(x) ∧ x ∈ N (oder eine zu ihr äquivalente mAussage) eine arithmetische Aussage. Die Aussage ∀x x ∈ N ⇒ ¬(s(x) = 0) ist also eine arithmetische Aussage. 3.1 Das Induktionsprinzip Die Eigenschaft iii) der natürlichen Zahlen beinhaltet das sogenannte Induktionsprinzip. es erönet die Möglichkeit sog. Induktionsbeweise : Betrachten wir hierzu eine aritmetische Aussage, in der eine Variable n frei vorkommt. Hierfür schreiben wir A(n). Nehmen wir an, wir könnten zeigen, dass 73 74KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN A(0) gilt und dass sich für alle n die Aussage A(n) ⇒ A(s(n)) also die Aussage ¬(A(n) ∧ ¬A(s(n))) zeigen lässt. (Man beachte, dass hier zunächst nicht gezeigt wird, dass A(n) gilt, sondern dass aus dem Gelten von A(n) notwendig das Gelten von A(s(n)) folgt.) Wir denieren ausgehend von der betrachteten arithmetischen Aussage A(n) nun eine Menge A = {n|n ∈ {N } ∧ A(n)} Da nach Voraussetzung A(0) wahr sein soll, ist 0 ∈ A. Auÿerdem ist mit jedem n ∈ A auch s(n) ∈ N, da mit A(n) und A(n) ⇒ A(s(n)) auch A(s(n)) wahr sein muss. Also ist nach Eigenschaft iii) der natürlichen Zahlen A = N. Dies bedeutet aber nach Denition der Menge N nichts anderes, als dass die Aussage A(n) für alle n ∈ N gelten muss. Halten wir damit fest: Satz 3.2. Wenn eine arithmetische Aussage beliebiges n die Aussage ( A(n) ⇒ A(s(N )) A(n) n = 0 gilt und wenn für A(n) für alle n. M.a.W. für gilt, dann gilt ) A(0) ∧ ∀n∈N A(n) ⇒ A(s(n)) ⇒ ∀n∈N A(n). Als erstes Beispiel für einen Beweis durch vollständige Induktion zeigen wir: Hilfssatz 3.3. Keine natürliche Zahl ist gleich ihrem eigenen Nachfolger. M.a.W. ∀n∈N ¬(n = s(n)). Beweis. Sei A(n) die arithmetische Aussage n ̸= s(n). Dann gilt nach Eigenschaft ii) der natürlichen Zahlen oensichtlich A(0). Aus (A(m)) also aus m ̸= s(m) folgt nun s(m) ̸= s(s(m)). Würde nämlich s(m) = s(s(m)) gelten, dann folgte daraus auf Grund der Eigenschaft i) der natürlichen Zahlen, dass m = s(m), was im Widerspruch zu m ̸= s(m) stünde. Zusammen mit A(0) gilt demnach auch ∀n∈N A(n) ⇒ A(s(n)). Damit gilt die Aussage A(n) für alle natürliche Zahlen und der Hilfssatz ist bewiesen. 2 3.2 Elementare Operationen Denition der Addition und Multiplikation und ihre Eigenschaften 3.2.1 Addition Wir haben auf der Menge der natürlichen Zahlen als Operation bisher nur die Nachfolgeoperation s als Zähloperation. Aufbauend auf s führen wir nun die Additionsoperation ein. Als Hilfsoperation denieren wir zuvor die zu s inverse Vorgängeroperation p. Zur Vorbereitung zeigen wir: Hilfssatz 3.4. Jede natürliche Zahl n ̸= 0 besitzt einen Vorgänger, d.h. ∀n∈N n ̸= 0 ⇒ ∃m∈N s(m) = n. Beweis. Wir führen einen Widerspruchsbeweis: Annahme es gebe ein n ∈ N (n ̸= 0), das keinen Vorgänger hat, für das es also kein m ∈ N gibt mit s(m) = n. Setzen wir A = N \ {0} (also A ̸= N), dann gilt 0 ∈ A und s(A) ⊂ N, aber nicht 3.2. ELEMENTARE OPERATIONEN 75 A = N. Dies steht im Widerspruch zur Eigenschaft iii) der natürlichen Zahlen. Damit ist der Hilfssatz bewiesen. 2 Folgerung 3.5. Die Menge eine Funktion Beweis. p = {(n, m)|n = s(m)} ⊂ (N \ {0}) × N deniert p : N \ {0} → N. Übung. 2 Satz 3.6. Es gilt für alle natürlichen Zahlen natürlichen Zahlen ungleich 0, dass s(p(n)) = n, n, dass p(s(n)) = n und für alle d.h. es gilt: ∀n∈N p(s(n)) = n und ∀n∈N n ̸= 0 ⇒ s(p(n)) = n. Beweis. Übung. 2 Wir denieren nun die Addition + als Funktion +:N×N→N (n, m) 7→ n + m (InxNotation) induktiv vermöge der folgenden Regeln: { n, m = 0; n+m= s(n) + p(m), m ̸= 0. (Man kann wiederum induktiv beweisen, dass hierdurch eine eindeutige Operation deniert wird.) Man sieht sofort, dass s(n) = n+1 ist, dass also die Nachfolgerfunktion als Addition mit 1 aufgefasst werden kann. Die klassischen Eigenschaften nder Addition (Kommutativität und Assoziativität) zeigt man induktiv. Zuvor beweisen wir noch einen Hilfssatz: Hilfssatz 3.7. Es gilt ∀n∈N ∀m∈N s(m) + n = s(m + n). Beweis. Wir führen einen Induktionsbeweis mit A(n) ≡ ∀m∈N s(m) + n = s(m + n) . Für A(0) erhalten wir ∀m∈N s(m)+0 = s(m+0), was äquivalent ist zu ∀m∈N s(m) = s(m), was oensichtlich wahr ist. Betrachten wir nun A(n0 ) für eine beliebige natürliche Zahl n0 , d.h. ∀m∈N s(m) + n0 = s(m + n0 ) und die Addition s(m) + s(n0 ). Dann gilt s(m) + s(n0 ) Def.von+ = 3.6 = A(n0 ) = 3.6 = Def.von+ = s(s(m)) + p(s(n0 )) s(s(m)) + n0 s(s(m) + n0 ) s(s(m) + p(s(n0 )) s(m + s(n0 )). 76KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN Wir erhalten also s(m) + s(n0 ) = s(m + s(n0 )) (für alle m ∈ mathbbN . Wir erhalten also ∀m∈N s(m) + s(n0 ) = s(m + s(n0 )) ≡ A(s(n0 )). In der Herleitung von A(s(n0 )) haben wir (s.o.) die Aussage A(n0 ) benutzt, so dass wir gezeigt haben, dass A(n0 ) ⇒ A(s(n0 )) gilt. Zusammen mit dem Gelten von A(0) haben wir damit induktiv bewiesen, dass ∀n∈N A(n) und unser Hilfssatz ist bewiesen. 2 Folgerung 3.8. Es gilt für die Addition das Assoziativgesetz, d.h. ∀n∈N ∀m∈N ∀p∈N (p + m) + n = p + (m + n). Beweis. Wir führen eine Induktionsbeweis für A(n) = ∀m∈N ∀p∈N (p + m) + n = p + (m + n). A(0) stellt sich wiederum sofort als wahr heraus. Gehen wir aus von der Aussage A(n0 ) und betrachten (p + m) + s(n0 ): (p + m) + s(n0 ) Def.von+ = 3.7 = s((p + m) + n0 ) A(n0 ) = s(p + (m + n0 )) 3.7 = s(p) + (m + n0 ) 3.6 = s(p) + p(s(m + n0 )) Def.von+ = 3.7 = p + s(m + n0 ) p + (s(m) + n0 ) 3.6 = p + (s(m) + p(s(n0 )) Def.von+ = s(p + m) + p(s(n0 )) p + (m + s(n0 )). Wir erhalten also für beliebige natürliche Zahlen p, m die Gleichung (p+m)+s(n0 ) = p + (m + s(n0 )) und damit die Aussage A(s(n0 )) wobei wir bei der Herleitung von A(s(n0 )) die Aussage A(n0 ) benutzt haben. Diese Herleitung gilt für beliebige n0 , so dass gilt ∀n∈N A(n) ⇒ A(s(n)). Zusammen mit A(0) erhalten wir letztlich ∀n∈N A(n) und das Assoziativgesetz ist bewiesen. 2 Zum Beweis des Kommutativgesetzes benötigen wir noch einen Hilfssatz Hilfssatz 3.9. Es gilt ∀m∈N m + 0 = 0 + m. Beweis. Induktion mit A(m) ≡ m + 0 = 0 + m. Das Gelten von A(0) ist wieder klar. 3.2. ELEMENTARE OPERATIONEN 77 Wir betrachten A(m0 ) und gehen aus von s(m0 ) + 0: s(m0 ) + 0 3.7 = A(m0 ) = 3.7 = 3.6 = Def.von+ = s(m0 + 0) s(0 + m0 ) s(0) + m0 s(0) + p(s(m0 )) 0 + s(m0 ). Auch hier erhalten wir wieder mit Hilfe von A(m0 ) die Aussage A(s(m0 )) und letztlich das Gelten von A(m) für alle m. 2 Satz 3.10. Es gilt für die Addition das Kommutativgesetz, d.h. es gilt ∀n∈N ∀m∈N m + n = n + m. Beweis. Induktionsbeweis mit A(n) ≡ ∀m∈N m + n = n + m. Die Aussage A(0) ergibt sich unmittelbar aus dem letzten Hilfssatz. Wir betrachten A(n0 ) und gehen aus von m + s(n0 ): m + s(n0 ) Def.von+ = 3.6 = 3.7 = A(n0 ) = 3.7 = s(m) + p(s(n0 )) s(m) + n0 s(m + n0 ) s(n0 + m) s(n0 ) + m. Wir erhalten also mit A(n0 ) wiederum A(s(n0 )) und mit A(0) und ∀n∈N A(n) ist ∀n∈N A(n) und damit das Kommutativgesetz bewiesen. 2 Wir verallgemeinern nun die Eigenschaft, dass unterschiedliche natürliche Zahlen unterschiedliche Nachfolger haben, indem wir zeigen: Satz 3.11. Es gilt: ∀k∈N ∀m∈N ∀n∈N n + k = m + k ⇒ n = m . Beweis. Beweis durch Induktion über k mit A(k) ≡ ∀m∈N ∀n∈N n + k = m + k ⇒ n = m. Die Aussage A(0) ist wieder trivial und Aussage A(1) folgt unmittelbar aus der Injektivität der Nachfolgerfunktion. Wir betrachten nun die Aussage A(k0 ) und und gehen aus von der Gleichung n + s(k0 ) = m + s(k0 ). Hieraus erhalten wir: n + s(k0 ) = m + s(k0 ) s.o. ⇒ Injektivitt von s ⇒ A(k0 ) ⇒ s(n + k0 ) = s(m + k0 ) n + k0 = m + k0 n = m. 78KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN Dies bedeutet also insgesamt, dass n + s(k0 ) = m + s(k0 ) ⇒ n = m. Dies entspricht der Aussage A(s(k0 )) und gezeigt haben wir sie mit Hilfe von A(k0 ). Damit haben wir gezeigt, dass (für beliebiges k ) A(k) ⇒ A(s(k)), so dass induktiv A(k) für alle k gilt und der Satz bewiesen ist. 2 3.2.2 Multiplikation Analog zur Addition führen wir eine zweite Operation, die Multiplikation, ein, die wiederum induktiv deniert wird mit Hilfe der schon denierten Addition. Sie wird in gewohnter Weise notiert mit “ · ” in InxNotation: · : N → N (n, m) 7→ n · m. Wenn keine Missverständnisse zu befürchten sind, kann der Punkt auch weggelassen werden. Wir legen fest: { 0, m = 0; n·m= n · p(m) + n, m ̸= 0. Auch hier kann wieder induktiv gezeigt werden, dass damit die Multiplikation eindeutig festgelegt wird. Hilfssatz 3.12. Es gilt ∀n∈N n · 1 = 1 · n = n. Beweis. : Es gilt mit Hilfe der gerade eingeführten Regeln der Multiplikation (und den schon bekannten Regeln der Addition): n · 1 = n · p(1) + n = n · 0 + n = 0 + n = n. Dass 1 · n = n zeigt man induktiv. (Übung) 2 Hilfssatz 3.13. Es gilt: ∀n∈N n · 0 = 0 · n = 0. Beweis. Dass n · 0 = 0 folgt unmittelbar aus der Denition und dass 0 · n = 0 zeigt man induktiv (Übung) 2 Addition und Multiplikation erfüllen zusammen ein Distributivgesetz: Satz 3.14. Es gilt: ∀k∈N ∀m∈N ∀n∈N (m + n) · k = m · k + n · k. Beweis. Per Induktion über k für A(k) ≡ ∀m∈N ∀n∈N (m + n) · k = m · k + n · k. 3.2. ELEMENTARE OPERATIONEN 79 Die Aussage A(0) ist wiederum trivial. Betrachten die Aussage A(k0 ) und gehen aus von dem Ausdruck (m + n) · s(k0 ): Def. der Multipl. (m + n) · s(k0 ) = (m + n) · p(s(k0 )) + (m + n) 3.6 (m + n) · k0 + (m + n) = A(k0 ) = (m · k0 + n · k0 ) + (n + m) mehrmal.Ass.und Komm.der Add. (m · k0 + m) + (n · k0 + n) = Def.der Multipl. = m · s(k0 ) + n · s(k0 ). Wir haben also wieder aus A(k0 ) die Aussage A(s(k0 )) hergeleitet und zuusammen mit A(0) damit dem Satz induktiv bewiesen. 2 Satz 3.15. Für die Multiplikation gilt das Kommutativgesetz, d.h. ∀n∈N ∀m∈N m · n = n · m. Beweis. Induktiv über n mit A(n) ≡ ∀m∈N m · n = n · m. A(0) folgt sofort aus 3.13. Betrachten nun A(n0 ) und gehen aus von m · s(n0 ): m · s(n0 ) Def.der Mult. = m · n0 + m A(n0 ) = n0 · m + m Komm.der Add. m + n0 · m = 3.12 = 1 · m + n0 · m Distrib. = (1 + n0 ) · m Komm.der Add. (n0 + 1) · m s(n0 ) · m. = = Dies bedeutet m · s(n0 ) = s(n0 ) · m also A(s(n0 ) unter Benutzung von A(n0 ). damit ist die Kommutativität induktiv bewiesen. 2 Folgerung 3.16. Es gilt auch ein zweites Distributivgesetz: ∀k∈N ∀m∈N ∀n∈N k · (m + n) = k · m + k · m. Beweis. tativgesetz. Unmittelbar aus dem ersten Distributivgesetz 3.14 und dem Kommu2 Satz 3.17. Für die Multiplikation gilt das Assoziativgesetz, d.h. es gilt ∀n∈N ∀m∈N ∀p∈N (p · m) · n = p · (m · n). 80KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN Beweis. Induktion über n mit A(n) ≡ ∀m∈N ∀p∈N (p · m) · n = p · (m · n). A(0) ergibt sich sofort aus 3.13. Betrachten nun A(n0 ) und gehen aus von (p · m) · s(n0 ): (3.1) (p · m) · s(n0 ) Def.der Mult. = (3.2) A(n0 ) (3.3) Distributiv. (3.4) Def.der Mult. = = = (p · m) · n0 + (p · m) p · (m · n0 ) + p · m p · (m · n0 + m) p · (m · s(n0 )) Damit ist (p · m) · s(n0 ) = p · (m · s(n0 )) (also A(s(n0 ))) unter der Voraussetzung von A(n0 ) gezeigt und zusammen mit A(0) folgt der Satz induktiv. 2 3.3 3.3.1 Ordnungsrelationen Die kleiner/gleichBeziehung Auf N wird eine binäre Relation “ 5 ” (kleinergleich) eingeführt: Denition 3.18. Es ist n5m Folgerung 3.19. Die Relation i) ii) iii) g.d.w. es ein 5 k∈N gibt, mit n + k = m. hat folgende Eigenschaften: n 5 n für alle n ∈ N. n 5 m und m 5 n impliziert n = m. n 5 m und m 5 p impliziert n 5 p. Beweis. Der Fall i) ist trivial. Zum Fall ii): Sei n 5 m und m 5 n. Aus n 5 m folgt n+k =m für ein geeignetes k ∈ N. Und aus m 5 n folgt m+l =n für ein geeignetes l ∈ N. Setzen wir nun n + k für m aus der ersten Gleichung in die zweite Gleichung ein, dann erhalten wir n + k + l = n + (k + l) = n. Damit ist notwendig k + l = 0 und deshalb müssen auch die natürlichen Zahlen k und l gleich 0 sein. Also ist m = n. Zum Fall iii): aus den Voraussetzungen folgt sofort (für geeignete k, l): n + k = m und m + l = p. Also folgt p = (n + k) + l = n + (k + l). Damit ist denitionsgemäÿ n 5 p. 2 3.3. ORDNUNGSRELATIONEN 81 Eine Beziehung, die die Eigenschaften i) bis iii) von 3.19 erfüllt, nennen wir auch Ordnungsrelation. In Zusammenhang mit einer Ordnungsrelation gibt es eine Reihe technischer Begrie, die wir an dieser Stelle bereits einführen wollen. Wir formulieren diese Begrie an Hand der uns vorliegenden Relation “ 5 ”, bemerken aber, dass die jeweiligen Begrie auch für jede beliebige andere Ordnungsrelation die entsprechende Bedeutung haben. Denition 3.20. Sei i) Eine Zahl o ∈ N M⊂N jeweils eine nichtleere Teilmenge von heiÿe obere Schranke von Analog heiÿt eine Zahl u ∈ N A N. a 5 o für alle a ∈ A. u 5 a für alle a ∈ A. A existieren, dann heiÿt A auch g.d.w. eine untere Schranke g.d.w. Wenn solche oberen bzw. unteren Schranken für nach oben bzw. unten beschränkt. Ist A gleichzeitig sowohl nach unten als auch nach oben beschränkt, so heiÿt sie beschränkt. g ∈ A heiÿe gröÿtes Element oder Maximum von A g.d.w. a 5 g a ∈ A. Analog heiÿt eine Zahl k ∈ N kleinstes Element oder Minimum von A g.d.w. k 5 a für alle a ∈ A. (Merke: im Gegensatz zu i) wird hier von g bzw. k verlangt, dass es selbst Element ist von A). ii) Eine Zahl für alle Eine Teilmenge der natürlichen Zahlen ist oensichtlich stets nach unten (und zwar durch die 0) beschränkt. Die Eigenschaft der Beschränkheit nach unten wird für Zahlen also erst dann zu einer interessanten Eigenschaft, wenn auch die negativen Zahlen (s.u.) miteinbezogen werden. Denition 3.21. Wir schreiben Folgerung 3.22. Es ist n<m n<m g.d.w. g.d.w. es ein n5m k ̸= 0 und n ̸= m. gibt mit n + k = m. Beweis. Da n < m die Relation n 5 m impliziert, gibt es auf alle Fälle ein k ∈ N mit n + k = m. Dieses k muss aber ungleich 0 sein, da ansonsten n = m die Folge wäre. Das aber ist nach Denition von n < m ausgeschlossen. 2 Hilfssatz 3.23. Es gibt keine gröÿte natürliche Zahl, d.h. es gibt keine natürliche Zahl a mit n5a für alle natürlichen Zahlen n. Beweis. Widerspruchsbeweis. Annahme a sei eine gröÿte natürliche Zahl. Da s(a) aber ebenfalls eine natürliche Zahl ist für die automatisch gilt a 5 s(a) (wegen a+1 = s(a)) und für die auch gilt s(a) 5 a (wegen der getroenen Annahme, dass a eine gröÿte ganze Zahl ist) erhielten wir aus Eigenschaft ii) unserer Ordnungsbeziehung, dass a = s(a). Das aber widerspricht der Injektivität der Nachfolgerfunktion. Damit ist die Behauptung bewiesen. 2 Satz 3.24. Die Ordnungsrelation n, m gilt entweder n5m oder m 5 n. 5 ist total, d.h. für je zwei natürliche Zahlen Beweis. Widerspruchsbeweis. Wir nehmen also an, dass es zwei natürliche Zahlen a und b gebe, für die weder a 5 b noch b 5 a gelte. Hierfür zeigen wir, dass dann a und b gröÿte Zahlen sein müssten, was nach dem letzten Hilfssatz aber nicht gehen könnte. Dass a und b gröÿte Zahlen sein müssten, dass also n 5 a bzw. n 5 b für alle 82KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN n ∈ N, zeigen wir induktiv: n = 0: trivial, da 0 5 a und 0 5 b (wegen 0 + a = a und 0 + b = b). Sei nun n0 5 a und n0 5 b. Dies bedeutet n0 + l = a und n0 + k = b für geeignete k und l. Die natürlichen Zahlen k und l müssen aber ungleich 0 sein. Wäre nämlich etwa l = 0, dann ergäbe sich n0 = a und hieraus durch ersetzen von n0 durch a, dass a+k = b also a 5 b, was aber nach Voraussetzung ausgeschlossen war. Also ist l ̸= 0 (dasselbe lässt sich für k feststellen) und hat deshalb einen Vorgänger in N nämlich l − 1. Damit ist a = n0 + l = n0 + (l − 1) + 1 = n0 + 1 + (l − 1) = (n0 + 1) + (l − 1). Dies bedeutet aber, dass auch für den Nachfolger n0 + 1 von n0 gilt: n0 + 1 5 a. Und dasselbe lässt sich analog für b zeigen. Damit wären a und b gröÿte natürliche Zahlen, dass aber ist ein Widerspruch zum Hilfssatz 3.23. 2 Satz 3.25. Jede nach unten bzw. nach oben beschränkte (nichtleere) Teilmenge A⊂N enthält ein kleinstes bzw. ein gröÿtes Element. Da für den Bereich der natürlichen Zahlen jede Teilmenge automatisch nach unten beschränkt ist, hat also jede nichtleere Teilmenge der natürlichen Zahlen ein kleinstes Element. Beweis. Sei A nach unten beschränkt mit einer unteren Schranke u. Für beliebige a ∈ A ist also u 5 a. Sei U die (nichtleere) Menge aller unteren Schranken von A. Da 0 ∈ U muss es ein l ∈ U geben mit s(l) ̸∈ U andernfalls wäre U nach der Eigenschaft iii) der natürlichen Zahlen gleich der gesamten Menge der natürlichen Zahlen, was zur Folge hätte, dass u 5 a für alle natürlichen Zahlen u, was aber nach 3.23 ausgeschlossen ist. Da s(l) somit keine untere Schranke mehr für A ist, muss es ein a0 ∈ A geben, mit a0 < s(l) also a0 5 l. Andererseits muss auch gelten l 5 a0 , da l untere Schranke für alle Elemente von A ist. Damit ist auf Grund der Ordnungseigenschaften notwendig l = a0 . Da l 5 a für alle a ∈ A folgt sofort a0 5 a für alle a ∈ A. Also ist a0 kleinstes Element von A. Sei nun A nach oben beschränkt. Dann ist die Menge aller oberen Schranken O nach unten beschränkt, hat also nach dem bereits bewiesenen ein kleinstes Element o ∈ O. Damit ist o − 1 keine obere Schranke mehr für A und es muss ein a0 ∈ A geben mit o − 1 < a0 . Damit ist o 5 a0 . Umgekehrt gilt aber auf Grund der Schrankeneigenschaft von o auch a0 5 o, so dass wir auch hier wieder o = a0 erhalten mit a 5 a0 für alle a ∈ A. Somit haben wir in a0 ein gröÿtes Element in A. 2 Folgerung 3.26. Es gibt keine unendliche Folge natürlicher Zahlen a0 , a1 , a2 , · · · mit a0 > a1 > a2 > · · · . Beweis. Durch Widerspruch. Angenommen es gäbe eine solche Folge, dann hätte die Menge A = {x|∃i∈N x = ai } kein kleinstes Element. Widerspruch zu 3.25. 2 Satz 3.27. Jede nach oben bzw. nach unten beschränkte Menge Zahlen besitzt eine kleinste obere bzw. gröÿte untere Schranke. A natürlicher 3.3. ORDNUNGSRELATIONEN 83 Beweis. Nach 3.25 hat A ein gröÿtes bzw. kleinstes Element, was jeweils automatisch die Rolle einer kleinsten oberen Schranke bzw. eine gröÿten unteren Schranke einnimmt. 2 Der Begri einer kleinsten oberen Schranke bzw. gröÿten unteren Schranke fällt damit im Bereich der natürlichen Zahlen mit dem Begri des Maximums bzw. Minimums zusammen. Dies ist bei anderen Ordnungsrelationen und auch in erweiterten Zahlbereichen nicht mehr notwendig der Fall. Dort erhält der Begri der kleinsten oberen bzw. der gröÿten unteren Schranke eine eigenständige Bedeutung. Die Relation 5 ist verträglich mit der Addition und Multiplikation auf den natürlichen Zahlen: Satz 3.28. Es gilt: ∀k ∀n ∀m n 5 m ⇒ n + k 5 m + k . ii) ∀k ∀n ∀m n 5 m ⇒ n · k 5 m · k . i) Beweis. Teil i): Sei für beliebiges n, m ∈ nat n 5 m, dann gibt es denitionsgemäÿ ein l ∈ N so dass n + l = m. Es gilt nun: ⇒ n+l =m (n + l) + k = m + k Ass. u. Komm. ⇒ (für beliebiges k ) (n + k) + l = (m + k) Def. von 5 ⇒ n + k 5 m + k. Damit ist i) bewiesen. zu ii): Es gilt unter denselben Voraussetzungen: n+l =m ⇒ (n + l) · k = m · k Distr. u. Ass. ⇒ Def. von 5 ⇒ damit ist auch ii) gezeigt. (für beliebiges k ) n · k + (l · k) = m · k) n · k 5 m · k. 2 Auf analoge Weise zeigt man: Satz 3.29. Es gilt: ∀k ∀n ∀m n < m ⇒ n + k < m + k . ii) ∀k ∀n ∀m n < m ⇒ n · k < m · k . i) Beweis. Für den Leser. 2 Folgerung 3.30. Es gilt: ∀k∈N+ ∀m ∀n n · k = m · k ⇒ m = n. Beweis. Wir führen einen Widerspruchsbeweis. Es gelte also n ̸= m und gleichzeitig (für ein k > 0) n · k = m · k . Sei o.B.d.A. n < m. Dann folgt aus dem letzten Satz sofort n · k < m · k , was im Widerspruch zur Voraussetzung steht. 2 84KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN 3.3.2 Die Teilbarkeitsbeziehung Die kleiner/gleichBeziehung ist nicht die einzige Ordnungsrelation auf N. Ersetzt man bei der Denition der Relation 5 die Addition durch die Multiplikation, dann erhalten wir eine etwas andere Ordnungsrelation, die auch Teilbarkeitsbeziehung genannt wird. Dabei betrachten wir der Einfachheit halber nur natürliche Zahlen ungleich Null. Die Menge der natürlichen Zahlen ungleich Null notieren wir mit N+ : Denition 3.31. Gibt es für zwei natürliche Zahlen n · k = m, teilt m). dann nennen wir n einen Teiler von m n, m ∈ N+ ein k∈N n|m und notieren dies mit mit ( n Aus 3.13 folgt sofort, dass das in der Denition von | benutzte k ebenfalls aus N+ sein muss. Folgerung 3.32. Die Relation impliziert n5m | ist verträglich mit der Relation 5, d.h. n|m m.a.W. ∀n∈N+ ∀m∈N+ n|m ⇒ n 5 m. Beweis. n·k Sei n|m, also n · k = m für ein geeignetes k ̸= 0. Es gilt nun: n · s(p(k)) = Def.von Multipl. = 3.12 n · p(k) + n n · p(k) + n · 1 = Distributiv. = n · p(k) + n. Damit ist m = n · k = n + n · p(k) also n 5 m. Folgerung 3.33. Die Teilbarkeitsrelation i) ii) iii) 2 | hat folgende Eigenschaften: ∀n∈N+ n|n. ∀n∈N+ ∀m∈N+ n|m ∧ m|n ⇒ n = m. ∀n∈N+ ∀m∈N+ ∀p∈N+ n|m ∧ m|p ⇒ n|p. Sie ist also ebenfalls eine Ordnungsrelation. Beweis. Die Eigenschaft i) ist trivial: wähle für den Faktor k gleich 1. Die Eigenschaft ii) ergibt sich auf Grund der Verträglichkeit von | mit 5 direkt aus der entsprechenden Eigenschaft von 5. Auch die dritte Eigenschaft zeigt man analog zur Eigenschaft iii) von 5. 2 Man macht sich sofort klar, dass es sich hierbei nur um eine sog. partielle Ordnung handelt, dass es hier also im Ggs. zu der Relation 5 natürliche Zahlen n, m gibt, für die weder n|m noch m|n gilt. Die Teilbarkeitsbeziehung ist verträglich mit der Multiplikation (allerdings nicht mehr verträglich mit der Addition): Satz 3.34. Für alle k ∈ N+ gilt: n|m impliziert k · n|k · m, ∀kinN+ ∀n∈N+ ∀m∈N+ n|m ⇒ k · n|k · m. d.h. 3.3. ORDNUNGSRELATIONEN 85 Beweis. Es gelte n|m. Dann gibt es ein l mit n · l = m und deshalb auch k·(n·l) = k·m. Da auf Grund der Assoziativität der Multiplikation k·(n·l) = (k·n)·l folgt (k · n) · l = k · m also k · n|k · m. 2 Man ndet sofort heraus, dass es natürliche Zahlen gibt, die sich nicht durch andere Zahlen teilen lassen, auÿer durch 1 und durch sich selbst. Es sind dies die Primzahlen: Denition 3.35. Eine natürliche Zahl aus n|p folgt n=1 oder p>1 heiÿt Primzahl, genau dann wenn n = p. Wenn es um die Zerlegung einer vorgegebenen Zahl in einzelne Faktoren geht, sind die Primzahlen in der Rolle von Atomen. Indem man natürliche Zahlen so lange in immer kleinere Faktoren zerlegt, bis es nicht mehr geht, erhält man eine Zerlegungen der Zahlen in Primzahlfaktoren: n ∈ N, n > 1 lässt sich als Produkt n = p1 ·p2 · · · pk einzelp1 , p2 , · · · pk schreiben. Dabei können ein oder mehrere Primzahlen Satz 3.36. Jede Zahl ner Primzahlen auch mehrfach vorkommen. Beweis. Durch vollständige Induktion über n ab n = 2: Für n = 2 gibt es (nur) die Zerlegung 2 = 2. Es gebe nun für alle n 5 n0 eine Zerlegung in Primzahlfaktoren. Betrachten nun s(n0 ). Es gibt zwei Möglichkeiten: 1. Fall: s(n0 ) ist selbst eine Primzahl. In diesem Fall ist s(n0 ) = s(n0 ) die gewünschte Primzahlzerlegung. 2. Fall: s(n0 ) ist keine Primzahl. In diesem Fall gibt es eine Zerlegung von s(n0 ) in ein Produkt zweier Zahlen r, s mit 1 < r, s < s(n0 ). Damit treen für r und s die Induktionsvoraussetzung zu, so dass r = p1 · · · pk und s = p′1 . . . p′l Primzahlzerlegungen von r bzw. s sind. Damit ist p1 · · · pk · p′1 · · · p′l = r · s = s(n0 ) eine Primzahlzerlegung von s(n0 ). 2 Interessant ist nun die Frage, inwieweit eine solche Zerlegung (bis auf die Reihenfolge der Faktoren natürlich) eindeutig ist. Schaut man sich die Zerlegungen einiger kleiner Zahlen einmal an, stellt man schnell fest, dass diese jedenfalls nur auf eine einzige Weise zerlegt werden können. Hierzu probiert man mit brute force einfach einmal alle Möglichkeiten einer Zerlegung, die ja nach oben hin durch die Zahl selbst begrenzt ist, aus. Dies gibt Anlass zur Vermutung, dass sich jede natürliche Zahl nur auf eine einzige Art und Weise zerlegen lässt: Satz 3.37. Jede natürliche Zahl gröÿer als 1 ist (bis auf die Reihenfolge) ein- n>1 pi und qj Primzahlen seien und der Gröÿe nach geordnet seien, dann ist erstens k = l und zweitens pi = qi für alle i = 1 bis m (oder l). deutig in Primzahlfaktoren zerlegbar. M.a.W. Wenn für eine natürliche Zahl sowohl k = p1 · p2 · · · pm als auch k = q1 · q2 · · · ql wobei die Zahlen Beweis. Wir führen einen Beweis durch Widerspruch, d.h. wir nehmen an, dass es ein natürliche Zahl gibt, für die es zwei wesentlich unterschiedliche Primzahlzerlegungen gibt. Die Menge der Zahlen für die dies zutrit ist dann nach unten beshränkt hat also ein kleinstes Element (das nebenbei bemerkt gröÿer als 2 sein muss). Diese kleinste Zahl, die unterschiedliche Primzahlzerlegungen besitzt, nennen wir k . Für k existiere nun unterschiedliche Zerlegungen (mit der Gröÿe nach geordneten Primzahlfaktoren): k = p1 · p2 · · · pm 86KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN und k = q1 · q2 · · · ql . Oensichtlich sind alle qi von allen pj verschieden, da man ansonsten sofort eine kleinere Zahl als k nden würde, die unterschiedliche Primzahlzerlegungen besitzen würde. Also ist insbesondere p1 ̸= q1 . Sei ohne Beschränkung der Allgemeinheit p1 < q1 (ansonsten würden wir die Zerlegungen vertauschen). Ersetzen wir in der zweiten Zerlegung von k den ersten Faktor q1 durch p1 , dann erhalten wir mit der Dierenz k − p1 · q2 · · · ql =: k ′ eine Zahl k ′ , die kleiner ist als k . Dieses k ′ kann nun auf zweierlei Weise faktorisiert werden (wobei diese Faktoren nicht notwendig ausnahmslos Primzahlfaktoren sind): k′ = 1.Zerleg. von k = k − p 1 · q2 · · · ql p1 · p2 · · · pm − p1 · q2 · · · ql Distr. = p1 · (p2 · · · pm − q2 · · · ql ), 2.Zerleg. von k q1 · q2 · · · ql − p 1 · q2 · · · ql sowie k′ = Distr. = (q1 − p1 ) · q2 · · · ql . Nun ist die Primzahlzerlegung von k ′ eindeutig, da k die kleinste Zahl gewesen ist, für die es zwei unterschiedliche Zerlegungen gibt. Dies bedeutet aber insbesondere, dass die Primzahl p1 die in der ersten Faktorisierung von k ′ vorkommt auch in der zweiten Faktorisierung von k ′ vorkommen muss. Da sie verschieden ist von allen q2 , · · · , ql muss si demnach in der Faktorisierung von (q1 − p1 ) vorkommen, muss deshalb also auch ein Teiler von (q1 − p1 ) sein. Als folgt q1 − p1 = p1 · t für ein geeignetes t > 0. Damit folgt aber q1 = p1 · t + p1 = p1 · (t + 1). Dies aber widerspricht der Primzahleigenschaft von q1 . 2 Folgerung 3.38. Sei folgt p|n oder p eine Primzahl und seien n, m ∈ N mit p|n · m. Dann q|m. Beweis. Würde weder p|n noch p|m gelten, dann hätten wir letztlich eine Zerlegung in Primzahlfaktoren von n · m, die die Primzahl p nicht enthielte. Da es andererseits aber eine Zerlegung unter Benutzung der Primzahl p geben muss (dies besagt ja p|n · m), wäre dies ein Widerspruch zum vorangehenden Satz. 2 3.3.3 Suprema und Inma Anders als bei der gröÿer/gleichRelation haben wir bei der Teilbarkeitsrelation in einer vorgegebenen Menge von Zahlen nicht notwendig ein gröÿtes oder kleinstes Element (Maximum oder Minimum). Dies kann man sich bereits bei einer 2elementigen Menge klarmachen: sei z.B. M{2, 3}, dann gibt es in dieser Menge bzgl. “|” weder ein Minimum noch ein Maximum, da zwar 2|2 und 3|3 aber weder 2|3 noch 3|2 gilt und somit nach Denition eines kleinsten bzw. gröÿten Elementes weder 2 noch 3 diese Rolle hier einnehmen kann. 3.3. ORDNUNGSRELATIONEN 87 Dennoch hat diese Teilmenge eine obere und untere Schranke bzgl. “|” und zwar in Gestalt der Zahlen 1 und 6. Und wir können darüber hinaus zeigen, dass jede endliche Teilmenge M (ohne die 0) obere und untere Schranken bzgl. der Teilbarkeitsrelation besitzt. Hierzu können wir als (eine) obere Schranke einfach das Produkt aller Zahlen der vorgegebenen Teilmenge wählen und als untere Schranke die 1. Wenn wir nun z.B. von einer kleinsten oberen Schranke sprechen, müssen wir darauf achten, auf welche der vorhandenen Ordnungsrelationen wir uns dabei beziehen. Es würde zu Komplikationen führen, wenn wir den Begri der oberen Schranke mittels | denieren und die Menge aller oberen Schranken danach mittels 5 ordnen würden. Damit der Begri der kleinsten oberen Schranke (analog gröÿte untere Schranke) aus einem Guss deniert wird, dürfen wir nur mit einer einzigen Ordnungsrelation arbeiten, in diesem Falle also mit |. Kleinste obere und gröÿte untere Schranken werden (wenn Sie denn existieren) mit einem besonderen Begri belegt: Denition 3.39. Die bzgl. einer (beliebigen) Ordnungrelation gröÿte untere Schranke einer Menge Menge M M heiÿt Inmum von heiÿt Supremum von M. M, die kleinste obere Schranke einer Eine bzgl. | kleinste obere Schranke zweier Zahlen a, b, jetzt mit sup(a, b) bezeichnet, hat also die Eigenschaft, dass i) a| sup(a, b) und b| sup(a, b) ii) a|o und b|o impliziert sup(a, b)|c Nach i) ist sup(a, b) also (bzgl. | ) obere Schranke und nach ii) ist jede andere (bzgl. |) obere Schranke gröÿer (bzgl. |) als sup(a, b). Ähnliches gilt für das Inmum inf(a, b) zweier Zahlen a, b. In dieser Formulierung ist es ganz und gar nicht selbstverständlich, dass es zu je zwei Zahlen a, b ein Supremum bzgl. | tatsächlich immer gibt (und dasselbe gilt für das Inmum). Man könnte die Menge der oberen Schranken zwar mittels leqq ordnen, hätte jedoch zunächst keine Gewähr, dass für die bzgl. 5 kleinste obere Schranke auch die Eigenschaft ii) aufweisen würde. Die Existenz eines Supremums und eines Inmums im Sinne von i) und ii) lässt sich auf zwei Weisen zeigen: Man kann, wie in der Schulmathematik, von der Primzahlzerlegung zweier Zshlen a und b ausgehen. Aufgrund der Eindeutigkeit der Primzahlzerlegung einer Zahl folgt, dass die Primzahlfaktoren einer unteren Schranke eine Teilmenge (und zwar inklusive der Vielfachheiten) der Primzahlfaktoren der beiden Zahlen a und b sein muss. Wählt man diese Teilmenge (inklusiver der Vielfachheiten) maximal hat man oensichtlich eine gröÿte untere Schranke bzgl. “|”. Analog erhält man durch eine geeignet minimal gewählte Obermenge (inklusive der Vielfachheiten) der jeweiligen Primzahlfaktoren der Zahlen a und b eine kleinste obere Schranke bzgl. “|”. Man sieht sofort, dass die bzgl. “|” kleinste obere Schranke in einer Art Doppelrolle auch bzgl. 5 kleinstes Element aller oberen Schranken fungiert. Eine analoge Bemerkung gilt für die gröÿte untere Schranke. 88KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN Das Inmum und Supremum für die Teilbarkeitsrelation hat nochmals einen besonderen Namen: Denition 3.40. Das Inmum einer Menge gemeinsamen Teiler (ggT) der Zahlen in M. M bzgl. “|” nennen wir gröÿten Das entsprechende Supremum nennen wir kleinstes gemeinsames Vielfaches (kgV). Das oben angedeutete Verfahren zur Gewinnung des ggT und des kgV ist, wie schon gesagt, das normalerweise in der Schulmathematik betrachtete Verfahren. Für groÿe Zahlen ist diese Methode allerdings nicht sehr ezient, da die Zerlegung in Primzahlfaktoren einen groÿen Auwand erfordert. Ezienter ist der Euklidsche Algorithmus. (Ausführung des euklidischen Algorithmus.) Satz 3.41. Der euklidsche Algorithmus liefert nach endlich vielen Schritten, den ggT zweier Zahlen. Beweis. 3.3.4 to be done 2 Synopsis der Ordnungsrelationen: Verbände Denition 3.42. Eine (partielle) Ordnung auf einer Menge zeichnen sie abstrakt mit ⊑ V wir be- heiÿt eine Verbandsordnung (und die Menge V heiÿt dementsprechend eine verbandsgeordnete Menge), wenn es für je zwei Objekte a, b ∈ V ein Supremum und ein Inmum bzgl. Das Supremum bzw. Inmum zweier Objekte a, b ⊑ gibt. bezeichnen wir mit sup(a, b) bzw. inf(a, b). Satz 3.43. Wenn auf einer Menge V zwei Operationen ⊔ und ⊓ deniert sind, so dass die Assoziativ, Kommutativ und Absorptionsgesetze gelten, wenn wir es also mit einem Verband zu tun haben, dann erhalten wir mit einer Relation ⊑, die deniert wird vermöge a⊑b g.d.w a⊓b=a (⇔ a ⊔ b = b) eine Verbandsordnung. Beweis. Zu zeigen sind zunächst die Ordnungseigenschaften. Wir zeigen als erstes, dass für beliebige a a ⊑ a. Dies folgt aber sofort wegen a ⊓ a = a. Ist a ⊑ b und b ⊑ a, dann gilt denitionsgemäÿ a ⊓ b = a und b ⊓ a = b und damit a = b. Ist a ⊑ b und b ⊑ c, dann gilt denitionsgemäÿ a ⊓ b = a und b ⊓ c = b. Damit ist a = a ⊓ b = a ⊓ (b ⊓ c) = (a ⊓ b) ⊓ c = a ⊓ c. Und damit ist a ⊑ c. Wir zeigen nun, dass a ⊔ b das Supremum von a und b ist. Zu zeigen ist als erstes, dass sowohl a ⊑ a ⊔ b und b ⊑ a ⊔ b gelten muss. Dies folgt sofort aus den Absorptionsgesetzen. Als zweites muss gezeigt werden, dass mit a ⊑ c und b ⊑ c auch folgt a ⊔ b ⊑ c. Nun bedeutet ersteres denitionsgemäÿ a ⊔ c = c und b ⊔ c = c. 3.4. ÄQUIVALENZRELATIONEN UND DIE EINFÜHRUNG NEGATIVER ZAHLEN89 Damit ist a ⊔ b ⊔ c = a ⊔ c ⊔ b ⊔ c = c ⊔ c = c, also a ⊔ b ⊑ c. 2 Analog für das Inmum. Es gilt auch die Umkehrung: Satz 3.44. Haben wir auf einer Menge halten wir vermöge V eine Verbandsordnung ⊑, dann er- a ⊔ b = sup(a, b) und a ⊓ b = inf(a, b) zwei Operationen auf Beweis. V, die Für den Leser V zu einem Verband machen. 2 Beispiele Für eine Menge c bildet 2c zusammen mit der mengentheoretischen Inklusion eine verbandsgeordnete Menge, deren zugehörige Verbandsoperationen die mengentheoretische Vereinigung und der mengentheoretische Durchschnitt sind. Für die Menge der natürlichen Zahlen bildet die Relation 5 eine Verbandsordnung, deren zugehörige Verbandsoperationen die Maximums und die Minimumsbildung sind. Für die Menge der natürlichen Zahlen haben wir eine zweite (von der ersten verschiedene) Verbandsordnung |, deren zugehörige Verbandsoperationen die Bildung des ggT und des kgV sind. Für die Menge der Wahrheitswerte repräsentiert durch 0 und 1 haben wir eine Verbandsordnung entsprechend der Ordnung 5, deren Verbandsoperationen wieder als Maximums oder Minimumsbildung aufgefasst werden können. 3.4 Äquivalenzrelationen und die Einführung negativer Zahlen 3.4.1 Die Subtraktion als Umkehrung der Addition Wir haben in den vorangegangenen Abschnitten die Addition als Operation kennengelernt, die ohne Einschränkungen für alle natürlichen Zahlen deniert ist. Die Operation der Subtraktion wird auf natürliche Weise als Umkehrung der Addition eingeführt: a − b = c genau dann, wenn a = b + c. Nun bedeutet die letzte Gleichung a = b + c denitionsgemäÿ aber, dass notwendig b 5 a, dass also die Operation der Subtraktion a − b zweier (natürlicher) Zahlen a und b (als Umkehrung der Addition) nur im Falle von b 5 a einen Sinn hat und nur hierfür deniert ist. M.a.W. wenn man den Bereich, für den eine Subtraktion durchgeführt werden soll, sinnvoll erweitern will, dann führt dies notwendigerweise zu einer Erweiterung des Zahlenbereiches selbst. Dies geschieht durch die Einführung sog. negativer Zahlen. 90KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN Stichworte: negative Zahlen durch die formale Dierenz 0 − n, die man mengentheoretisch mit dem Paar (0, n) notieren könnte. Eine solche Erweiterung wäre praktisch durchführbar, hätte aber (zumindest) einige ästhetische Nachteile: Die Durchführung einer Subtraktion a−b müsste laufend über Fallunterscheidungen der Art a 5 b oder b 5 a gesteuert werden: { c, mit a = b + c falls b 5 a a−b= (0, c), mit b = a + c falls a 5 b. Darüberhinaus müssten bei ächendeckender Einführung der Subtraktion auch von negativen Zahlen und unter Einbeziehung der negativen Zahlen bei der normalen Addition etc. auch Ausdrücke wie a−(0, c) oder (0, c)+a etc. berücksichtigt und deniert werden. Das wird in der Schulmathematik alles erfolgreich (manchmal auch nicht so erfolgreich) durchgeführt. Spätestens wenn die Herleitung der allgemeinen Rechenregeln für den erweiterten Zahlenbereich ansteht, wird die unterschiedliche Repräsentation der natürlichen und der negativen Zahlen als Medienbruch empfunden, durch die sich die gewünschten Rechenregeln nur recht widerspenstig beweisen lassen (und deswegen in der Schulmathematik auch nicht ernsthaft geleistet wird). Die bloÿe Angleichung der äuÿerlichen Darstellung natürlicher Zahlen an die der negativen Zahlen etwa in der Form der Dierenz n − 0 entsprechend dem Paar (n, 0) löst das Problem nicht wirklich. Die Addition von (a, 0) + (0, a), was der Addition von a + (−a) entsprechen würde, wäre ja nicht über die Paarbildung per se deniert, also in der Form (a, 0) + (0, a) = (a, a) das Paar (a, a) würde nämlich erst einmal gar keine Zahl repräsentieren , sondern bliebe nach wie vor auf der Ebene der schon beschriebenen Fallunterscheidungen. Dennoch steckt in dem Ansatz, (a, 0) + (0, a) gleich (a, a) zu setzen, eine Attraktivität, der man sich schlecht entziehen kann, insbesondere wenn man sich überlegt, dass wenn man überhaupt (formale) Dierenzen einführt , man die (formalen) Dierenzen nicht auf die Dierenzen von oder mit 0 zu beschränken braucht. Das Paar (a, a) könnte in diesem Sinne auf natürliche Weise als (formale) Dierenz a − a gelesen werden, was pefekt passen würde. Generell würde man also versucht sein nur noch mit formalen Dierenzen zu rechnen, also mit Ausdrücken der Form (a, b) in der Lesart von a − b, egal ob a 5 b oder b 5 a. Zu berücksichtigen ist dabei jedoch, dass ein und dieselbe Zahl jetzt auf viele (genau genommen unendlich viele) Weisen dargestellt werden kann. So wäre die 0 = (0, 0) = (1, 1) = (2, 2) = · · · und es stellt sich die Frage, was denn jetzt (und dies betrit zumindest die neuen negativen Zahlen) die eigentlichen Zahlobjekte sind. Die (0, 1) wäre ja damit nur eine Repräsentation unter vielen für die Zahl −1, die jetzt auch durch (1, 2) oder (2, 3) etc. dargestellt werden könnte. In der Tat besteht die Lösung darin, alle Darstellung, die intuitiv dieselbe Zahl darstellen, auch gleichberechtigt nebeneinander stehen zu lassen und die Menge der Darstellungen einer Zahl als die Zahl selbst anzusehen. Die Zahl −1 wäre also identisch mit der Menge aller formalen Dierenzen (a, a + 1) also identisch mit der Menge {(0, 1), (1, 2), (2, 3), · · · }. Es bliebe letztendlich dann noch zu klären, inwieweit sich die unterschiedlichen Repräsentanten bei den in Frage kommenden Operationen der Addition und Subtraktion gewissermaÿen transparent verhalten. Damit ist gemeint, dass es keine 3.4. ÄQUIVALENZRELATIONEN UND DIE EINFÜHRUNG NEGATIVER ZAHLEN91 Rolle spielen darf, welche der Repräsentanten bei der Durchführung einer Operation denn gerade zufällig genommen wird. So darf bei der Addition von 2 mit −1, wenn wir sie denn in der Form (2, 0) + (a, a + 1) durchführen, es für eine unterschiedliche Wahl von a kein unterschiedliches Endergebnis geben. Repräsentierten wir die −1 etwa durch (0, 1), dann erhielten wir bei der formalen Paaraddition von (2, 0) und (0, 1) als Ergebnis (2, 1), bei der Darstellung von −1 durch (1, 2) als Ergebnis (3, 2). Beide Ergenisse sowohl (2, 1) als auch (3, 2) würden zwanglos als Darstellung derselben (i.d.Falle positiven) Zahl 1 und zwar einmal in der Form 2 − 1 und ein anderesmal in der Form 3 − 2 angesehn werden können. Die Transparenz der (willkürlich) ausgewählten Repräsentanten wäre also zumindest in diesem Beispiel gewährleistet. 3.4.2 Äquivalenzrelationen Dass unterschiedliche Repräsentanten dasselbe Objekt repräsentieren sollen, ist Anlass, sie als äquivalent anzusehen. Hiermit ist letztlich eine Beziehung gemeint, die als Relation spezielle Eigenschaften haben sollte. Welche Eigenschaften das sein sollten, schauen wir uns am besten am Bespiel unserer formalen Dierenzen an. Hier sollen ja zwei Paare (a, b) bzw. (a′ , b′ ) bestehnd aus natürlichen Zahlen intuitiv dann als äquivalent gelten, wenn a − b gleich a′ − b′ ist, oder da die Dierenzbildung ja nicht für alle natürlichen Zahlen direkt durchführbar ist wenn (unter subtiler Vorwegnahme der Rechenregeln für Gleichungen) a + b′ = b + a′ . Notieren wir unsere Äquivalenzrelation mit dem Zeichen ∼ = (was später auch für andere Relationen benutzt werden wird), dann können wir also festhalten: Denition 3.45. Für alle natürlichen Zahlen (a, b) ∼ = (a , b ) ′ ′ g.d.w. a, a′ , b, b′ ′ sei ′ a + b = a + b. Hieraus ergibt sich durch einfaches Nachrechnen: ∼ hat folgende Eigenschaften: Folgerung 3.46. Die Relation = i) ii) iii) (a, b) ∼ = (a, b) für alle a, b ∈ N. (a, b) ∼ = (a′ , b′ ) impliziert (a′ , b′ ) ∼ = (a, b). (a, b) ∼ = (a′ , b′ ) und (a′ , b′ ) ∼ = (a′′ , b′′ ) impliziert (a, b) ∼ = (a′′ , b′′ ). Beweis. Übung 2 Bei den Eigenschaften i) bis iii) spricht man auch von Reexivität, Symmetrie und Transitivität. Dies sind gleichzeitig die Eigenschaften, die man generell von (auch anderen) Äquivalenzrelationen fordert. Wir denieren deshalb vorab schon an dieser Stelle: Denition 3.47. Sei Wir nennen R M eine beliebige Menge und eine Äquivalenzrelation, wenn R R ⊂ M×M eine Relation. reexiv, symmetrisch und transitiv ist. Kommen wir damit zurück zu unserer speziellen Äquivalenzrelation der formalen Dierenzen. Hier war ja die Intension, alle äquivalenten Dierenzen zu jeweils einer Menge zusammenzufassen, die dann als neue Zahlenobjekte fungieren sollen. Dieses Vorgehen ist in der Mathematik so typisch, dass man der so gebildeten Menge einen besonderen Namen mitgibt: R ⊂ M × M eine Äquivalenzrelation, dann bezeichnet m ∈ M äquivalenten Objekte mit [m] und nennt diese Menge die Äquivalenzklasse von m. Die Menge aller Äquivalenzklassen wird auch mit M × M/R bezeichnet. Denition 3.48. Sei man die zu einem Objekt 92KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN Die Eigenschaften einer Äquivalenzrelation implizieren sofort: Folgerung 3.49. Für zwei Äquivalenzklassen dann, wenn (m, m′ ) ∈ R, wenn also m und m′ [m] und [m′ ] ist [m] = [m′ ] genau äquivalent sind. Dies bedeutet auch, dass zwei Äquivalenzklassen entweder gleich oder völlig disjunkt sind. Die Tatsache, dass unsere neuen Zahlobjekte nun durch Äquivalenzklasse modelliert werden, bedeutet natürlich, dass wir dmit automatisch auch für die natürlichen Zahlen zu einem neuen Modell übergegangen sind. Bestand unsrer Standardmodell der natürlichen Zahlen N aus der Menge ω (s.o) konnten unsere (natürlichen) Zahlen also als Elemente von ω angesehen werden, so haben wir es jetzt formal gesehen bei unseren Zahlen mit Elementen aus 2ω×ω zu tun. Denn ω × ω liefert uns den Rahmen für die formalen Dierenzen, die wir ja als Paare dargestellt haben, und eine Äquivalenzklasse formaler Dierenzen (in der Rolle als Zahl) ist eine Teilmenge von ω × ω mithin ein Element von 2ω×ω . Wäre man von einem anderen Modell, generisch mit N bezeichnet, ausgegangen, hätte man es mit Elementen aus 2N×N zu tun, genaugenommen mit Äquivalenzklassen aus der Menge (N×N)/ ∼ = ⊂ 2N×N . Wie wir gesehen haben ist das auf Grund des Einzigkeitsatzes so lange kein Problem, so lange die systemischen Eigenschaften des neuen Modells dieselben sind, wie die des alten. Das allerdings muss in der Tat nachgeprüft werden. Hier kann man sich das Laben aber insofern etwas leichter machen, als dass man das alte Modell auf kanonische Weise in das neue Modell einbetten kann und hierbei die Verträglichkeit mit den vorhandenen Operationen sichert (s.u.). So sind auf den jetzt eingeführten Äquivalenzklassen die Addition und die Subtraktion gewissermaÿen nahtlos von unserem alten Modell zu übertragen. Hierbei wird es sich zeigen, dass es genügt die Addition zu übertragen, da sich die Subtraktion automatisch aus der Addition mit den neu erhaltenen negativen Zahlen ergibt. Wir legen also fest: Denition 3.50. Seien N)/ ∼ =. [(a1 , b1 )] und [(a2 , b2 )] zwei Äquivalenzklassen aus (N× Dann wird eine Addition + auf der Menge der Äquivalenzklassen deniert durch: [(a1 , b1 )] + [(a2 , b2 )] = [(a1 + a2 , b1 + b2 )]. Die Addition auf den Äquivalenzklassen wird also auf natürliche Weise zurückgeführt auf die Addition der natürlichen Zahlen. Wie schon angedeutet ist jetzt zu zeigen, dass die einzelnen Repräsentanten (a1 , b1 ) bzw. (a2 , b2 ) innerhalb der Klassen [(a1 , b1 )] bzw. [(a2 , b2 )] sich bezüglich dieser Zurückführung transparent verhalten, dass sich also alle Repräsentanten innerhalb ein und derselben Klasse hier gleich verhalten. Man spricht in diesem Falle von Wohldeniertheit. Folgendes ist formal zu zeigen: Satz 3.51. Seien (a1 , b1 ) und (a′1 , b′1 ) äquivalent und seien (a2 , b2 ) und (a′2 , b′2 ) äquivalent (und mithin Repräsentanten jeweils derselben Äquivalenzklasse), dann ′ ′ ′ ′ sind auch (a1 + a2 , b1 + b2 ) und (a1 + a2 , b1 + b2 ) äquivalent. [(a1 , b1 )] = [(a′1 , b′1 )] und [(a2 , b2 )] = [(a′2 , b′2 )] impliziert also [(a1 + a2 , b1 + b2 )] = [(a′1 + a′2 , b′1 + b′2 )]. Die Addition ist also wohldeniert und nicht wirklich abhängig vom einzelnen Repräsentanten, da alle Repräsentanten dasselbe Additionsverhalten zeigen. Wir führen nun folgende Sprachregelung ein: 3.4. ÄQUIVALENZRELATIONEN UND DIE EINFÜHRUNG NEGATIVER ZAHLEN93 Denition 3.52. Wir nennen die Äquivalenzklassen der Form Zahlen und notieren die entsprechende Menge mit [(a, b)] Z. Im Falle a5b [(a, b)] ganze bezeichnen wir als eine negative Zahl. Oensichtlich entsprechen die nichtnegativen ganzen Zahlen, also die Äquivalenzklassen [(a, b)] mit b 5 a eineindeutig den natürlichen Zahlen. Wir zeigen hierzu: Satz 3.53. Es gibt eine kanonische injektive Funktion ι : N → (N × N)/ ∼ = mit a 7→ ι(a) = [(a, 0)]. Diese injektive Funktion ist mit der Addition verträglich, d.h. es ist ι(a) + ι(b), ι(a + b) = und erfasst alle nichtnegativen ganzen Zahlen. Beweis. Übung 2 Damit ist klar, dass die nichtnegativen ganzen Zahlen dieselben systemischen Eigenschaften haben wie die natürlichen Zahlen und auf Grund des Einzigkeitssatzes als vollwertige natürliche Zahlen angesehen werden können. Von diesen natürlichen Zahlen ausgehend haben wir jetzt aber in Gestalt der oben eingeführten ganzen Zahlen eine Zahlerweiterung aus einem Guss, für die sich die gewünschten Eigenschaften der Addition etc. auf ungekünstelte Weise zeigen lassen. Insbesondere haben wir jetzt die uneingeschränkte Umkehrung der Addition in Form des folgenden Satzes: x, y, z ∈ Z mit x + y = z . Dann z + (−y) schreiben wir auch z − y und Satz 3.54. Seien x = z + (−y). Für gibt es ein −y so dass nennen diese Operation eine Subtraktion. Beweis. Wir führen den Beweis einfach mit Hilfe von Repräsentanten: sei also x = (a1 , b1 ), y = (a2 , b2 ) und z = (a3 , b3 ). Dann bedeutet x + y = z , dass [(a1 , b1 )] + [(a2 , b2 )] = [(a1 + a2 , b1 + b2 )] = [(a3 , b3 )]. Wähle nun als −y die Klasse [(b2 , a2 )]. Hieraus erhalten wir für z + (−y) den Ausdruck [(a3 , b3 )] + [(b2 , a2 )] = [(a1 + a2 , b1 + b2 )] + [(b2 , a2 )] = [(a1 + a2 + b2 , b1 + b2 + a2 )]. Nun ist das Paar (a1 + a2 + b2 , b1 + b2 + a2 ) wie man sofort nachrechnet (und sich an Hand der formalen Dierenz (a1 + a2 + b2 ) − (b1 + b2 + a2 ) auch leicht plausibel macht) äquivalent zu (a1 , b1 ), so dass die Äquivalenzklasse [(a1 +a2 +b2 , b1 +b2 +a2 )] gleich der Äquivalenzklasse [a1 , b1 ] d.h. gleich x ist. Damit ist die Behauptung bewiesen. Gleichzeitig haben wir gesehen, dass der Prozess des Übergangs von y zu −y einfach im Vertauschen der beiden Komponenten des repräsentierenden Paares besteht. 2 Folgerung 3.55. Für alle x∈Z Ebenso leicht rechnet man nach: ist −(−x) = x. 94KAPITEL 3. NATÜRLICHE ZAHLEN, IHRE OPERATIONEN UND RELATIONEN Satz 3.56. Notieren wir die Klasse x + 0 = 0 + x = x für alle x ∈ Z. ii) x + (−x) = 0 für alle x ∈ Z. [(0, 0)] wieder mit 0. Dann gilt: i) Ohne Beweis (Übung) stellen wir fest, dass in Z die bekannten Rechengesetze der Arithmetik gelten, also das Kommutativ, das Assoziativ und das Distributivgesetz. Begri der Gruppe Kapitel 4 Algebraische Strukturen, Gruppen, Ringe, Körper Ausgehend von den ganzen Zahlen kommen wir zu den grundlegenden algebraischen Begrien, Gruppe, Ring, Körper. Wir beginnen mit dem Begri der Gruppe, der sich unmittelbar aus der Verallgemeinerung der Eigenschaften der ganzen Zahlen ergibt. 4.1 Gruppen Die ganzen Zahlen beinhaltete (neben der Multiplikation, die beim Konzept eines Ringes eine Rolle spielen wird) eine Addition mit den Eigenschaften der Assoziativität, der Kommutativität, der Existenz eines neutralen Elementes, der 0, und der jeweiligen Existenz inverser Zahlen (gewonnen durch Vorzeichenwechsel). Hiervon abstrahierend gelangen wir zum Begri einer Gruppe. Unsere Objekte sind dabei nicht mehr notwendig Zahlen sondern Elemente einer (prinzipiell) beliebigen Menge, auf der eine binäre Operation deniert ist, die im allgemeinen Fall mit “◦′′ notiert wird. Eine Verknüpfung g1 ◦ g2 für zwei Gruppenelemente g1 , g2 kann man also in Analogie zu der Addition a + b zweier (ganzer) Zahlen sehen. Die Eigenschaftenm des Operators “◦′′ sollen nun denen der Addition entsprechen. Hierbei werden wir gegebenfalls eine Ausnahme zulassen: Die Kommutativität der Verknüfung, die bei der Addition von Zahlen ja so ganz selbstverständlich zu sein scheint, wird im allgemeinen Fall einer Gruppenoperation “◦′′ nicht mehr gefordert werden. Wir werden also zwischen Gruppen und kommutativen Gruppen, also Gruppen, bei denen das Kommutativgesetz erfüllt ist, unterscheiden. Warum machen wir diese Unterscheidung? Weil es in der Natur Gruppen gibt, die nicht kommutativ sind, und für die Naturbeschreibung eine wichtige Rolle spielen. 4.1.1 Grundlegende Eigenschaften Kommen wir damit zu der formalen Denition einer Gruppe: (G, ◦) besteht aus einer Menge G, “◦′′ deniert ist mit folgenden Eigenschaften: ∀ g1 , g2 , g3 ∈ G (g1 ◦ g2 ) ◦ g3 = g1 ◦ (g2 ◦ g3 ) Denition 4.1. Eine Gruppe binäre Operation i) 95 auf der eine 96KAPITEL 4. ALGEBRAISCHE STRUKTUREN, GRUPPEN, RINGE, KÖRPER ii) iii) ∃ e ∈ G ∀g ∈ G e ◦ g = g ◦ e = g ∀ g ∃ g′ g ◦ g′ = g′ ◦ g = e Gilt zusätzlich das Kommutativgesetz also ∀ g1 , g2 ∈ G g1 ◦ g2 = g2 ◦ g1 dann sprechen wir von einer kommutativen Gruppe. Bemerkungen: Das durch Skolemisierung zu gewinnende g ′ ∈ G der Eigenschaft iii) ist, wie sich zeigen wird, eindeutig bestimmt. Es wird deshalb in Abhängigkeit von dem Element g , auf das es sich bezieht, im allgemeinen Fall mit g −1 bezeichnet, bei kommutativen Gruppen schreibt man für das Inverse von g auch −g in Anlehnung an die Bezeichnungen der kommutativen Gruppe der ganzen Zahlen. Eine analoge Bemerkung gilt für das aus einer konstanten Skolemfunktion erhaltene neutrale Element e: Es ist, wie wir noch sehen werden, ebenfalls eindeutig bestimmt. Es mag auallen, dass die Eigenschaften ii) und iii) einer Gruppr gewisse Anleihen bei der Kommutativität nehmen. Tatsächlich ist dies nur der Bequemlichkeit geschuldet, denn man kann zeigen, dass es reichen würde zu fordern ii′ )∃ e ∈ G ∀g ∈ G e ◦ g = g (Linksneutralität) iii′ )∀ g ∃ g ′ ◦ g = e (Linksinverses) Denn aus der Linksneutralität folgt notwendig auch die Rechtsneutralität (sie bedeutet also keine zusätzliche Forderung oder Einschränkung) und auch umgekehrt. Und eine Linksinverses element ist automatisch auch rechtsinvers (und umgekehrt). Wir werden dies im folgenden zeigen: Satz 4.2. Es gelten die Eigenschaften i), ii') und iii'). Ein linksneutrales Element ist auch rechtsneutral. Ein linksinverses Element ist auch rechtsinvers. Beweis. Sei also e ∈ G ein linksneutrales Element, für das ii') und iii') gilt. Sei g ∈ G beliebig. Dann gibt es zu g ein Linksinverses g ′ mit g ′ ◦ g = e (nach iii')). Gleichzeitig gibt es ein zu g ′ Linksinverses g ′′ mit g ′′ ◦ g ′ = e. Zusammen mit e ◦ g = g resp. e ◦ g ′′ = g ′′ erhalten wir Schritt für Schritt: g = e◦g = (g ′′ ◦ g ′ ) ◦ g = g ′′ ◦ (g ′ ◦ g) = g ′′ ◦ e (damit erhalten wir als Zwischenergebnis g = g ′′ ◦ e) = g ′′ ◦ (e ◦ e) (e ist auch für sich selbst linksinvers) = (g ′′ ◦ e) ◦ e = g ◦ e (mit Hilfe des Zwischenergebnisses). Damit ist e auch als rechtsneutral nachgewiesen. Kommen wir zum Linksinversen. Es sei also g ′ ◦ g = e sowie g ′′ ◦ g ′ = e′ . Es gilt dann s.o. Zwischenergebnis) g = g ′′ ◦ e = g ′′ , da e bereits als rechtsneutral nachgewiesen wurde. Damit folgt aber aus g ′′ ◦ g ′ = e mit (g = g ′′ ) sofort g ◦ g ′ = e womit g ′ auch als Rechtsinverses nachgewiesen ist. 2 Die Eindeutigkeit der neutralen Element und Inversen zeigt man jetzt wie folgt: Seien e, e′ jeweils neutral, dann ergibt sich aus der wechselseitigen Neutralität: e = e ◦ e′ = e′ . 4.1. GRUPPEN 97 Damit ist die Eindeutigkeit des neutralen Elementes nachgewiesen. Seien nun g ′ und gˆ′ Inverse zu g , dann gilt: e = g ◦ g ′ = g ◦ gˆ′ Verknüpfung von links mit g ′ ergibt: g ′ = g ′ ◦ e = g ′ ◦ (g ◦ g ′′ ) = (g ′ ◦ g) ◦ g ′′ = e ◦ g ′′ = g ′′ . Wir erhalten also auch die Eindeutigkeit der jeweiligen Inversen. In den ganzen Zahlen haben wir ein Beispiel einer kommutativen Gruppe kennengelernt. Eine wichtige nichtkommutative Gruppe erhaltenm wir in Form der Gruppe der Permutationen einer n-elementigen Menge. Formal können wir eine Permutation π = πn auassen als eine bijektive Abbildung π : {1, 2, · · · n} → {1, 2, · · · n} 4.1.2 Untergruppen Gewisse Teilmengen (nicht alle) einer Gruppe erben von der Gruppe gewissermaÿen die Gruppeneigenschafte. Solche Teilmengen heiÿen auch Untergruppen. Formal denieren wir: Denition 4.3. Eine Teilmenge wenn H dass also für beliebige und H H a, ∈ H heiÿt Untergruppe von G, H beschränken lässt a ◦ b in G wieder in H liegt einer Gruppe nichtleer ist und die Verknüpfung auf G G sich auf auch die Verknüpfung diesbezüglich wieder eine Gruppe ist. Besonders einfache Beispiele von Untergruppen einer Gruppe G ist die Gruppe G selbst und die die aus dem neutralen Element e bestehende Teilmenge {e} ⊂ G. Weitere Beispiele nden wir in den (für fest gewähltes n) durch n teilbaren Zahlen. Sie werden mit nZ notiert. Es gilt der Satz: Satz 4.4. Der mengentheoretische Durchschnitt zweier oder beliebig vieler Untergruppen von Beweis. G ist wieder eine Untergruppr von einfaches Nachrechnen G. 2 Wir können diesen Satz zur Grundlage folgender Denition machen: Denition 4.5. Sei G eine Gruppe und sei ge. Dann verstehen wir unter der von A A ⊂ G eine beliebige Teilmen- erzeugten Untergruppe Durchschnitt aller Untergruppen, die jeweils A < A >⊂ G den umfassen. Von besonderem Interesse sind von einzelnen Elementen g ∈ G erzeugte Untergruppen < g >. Diese Gruppen heiÿen auch zyklische (Unter-)Gruppen. Man rechnet leicht nach, dass eine zyklische Untergruppe < g > aus allen Elementen der Form g n für n ∈ Z besteht. Dabei bezeichne g n für n > 0 die n-fache −1 Verknüpfung g ◦ · · · ◦ g und g −n sei (g n ) für negatives −n. Schlieÿlich sei g 0 = e. Satz 4.6. Jede zyklische Gruppe ist notwendig kommutativ. 2 Beweis. Folgt sofort aus den hier leicht zu verizierenden Potenzrechenregeln. 98KAPITEL 4. ALGEBRAISCHE STRUKTUREN, GRUPPEN, RINGE, KÖRPER 4.1.3 Endliche Gruppen (Symmetriegruppen) Beispiele in der Vorlesung. 4.1.4 Gruppenhomomorphismen Wir betrachten im folgenden Funktionen zwischen zwei Gruppen und zwar solche Funktionen, die verträglich sind bzgl. der Gruppenoperationen. Solche Funktionen heiÿen (Gruppen)Homomorphismen: Denition 4.7. Eine Funktion f : G → G′ zwischen zwei Gruppen G und G′ heiÿt Homomorphismus g.d.w. f (g1 ◦ g2 ) = f (g1 ) ◦ f (g2 ). G1 und G2 werden der Einfachheit halber mit notiert, obwohl es sich dabei um unterschiedliche Opera- Die Verknüpfungsoperationen auf demselben Zeichnen “◦” tionen handeln kann. Ein bijektiver Homomorphismus heiÿt auch Isomorphismus. Beispiele: a) Die Funktion Z → Z mit a 7→ 2 · a ist ein Gruppenhommorphismus. b) Die Funktion Z → G2 mit a 7→ a mod 2 ist eine Gruppenhomomorphismus. Es gilt folgender Satz: e, e ′ Satz 4.8. Sei f : G → G′ ein Homomorphismus zwischen zwei Gruppen. Seien G bzw. G′ . Dann gilt: die jeweiligen neutralen Elemente in f (e) = e′ . und für alle Beweis. g ∈ G′ ist to be done f (g −1 ) = f (g)−1 . 2 Oensichtlich ist die Komposition zweier Homomorphismen wieder ein Homomorphismus. f : G → G′ bezeichnet mit Kern f verstehen wir all diejenigen Elemente g ∈ G für die f (g) = e′ . Denition 4.9. Unter dem Kern eines Homomorphismus M.a.W. Kernf = {g|f (g) = e′ }. Der Kern eines Homomorphismus ist insofern interessant, als dass er einerseits selbst eine Gruppe ist und andererseits einen Hinweis darauf gibt, ob der betrachtete Homomorphismus injektiv ist oder nicht: 4.1. GRUPPEN 99 Satz 4.10. Ein Homomorphismus ist genau dann injektiv, wenn sein Kern nur aus dem neutralen Element besteht. to be done Beweis. 2 Folgerung 4.11. Der Kern und das Bild eines Gruppenhomomorphismus bilden Untergruppen der jeweiligen Gruppen. Beispiele: a) Das neutrale Element einer Gruppe für sich allein genommen bildet jeweils eine Untergrupe. b) Alle durch n teilbaren ganzen Zahlen (n fest gewählt) bilden eine Untergruppe der ganzen Zahlen. Folgender Begri wird sich als nützlich herausstellen: Denition 4.12. i) Als Ordnung einer Gruppe verstehen wir die Anzahl der Elemente von dass die Ordnung von G G. Ist G G bezeichnet mit ord G nicht endlich, dann sagt man, unendlich ist. g ∈ G heiÿe von endlicher Ordnung, wenn es eine natürliche Zahl g m = e. Die kleinste natürliche Zahl mit dieser Eigenschaft heiÿt von g . ii) Ein Element m>0 gibt mit dann Ordnung Es gilt: Satz 4.13. Ist eine Gruppe auch jedes Gruppenelement Beweis. G von endlicher Ordnung, g ∈ G von endlicher Ordnung. dann ist oensichtlich Wählen ein beliebiges Gruppenelement g ∈ G und betrachte die Folge: g = g1 , g ◦ g = g2 , g3 , g4 , · · · Da es nach Vor. nur endlich viele verschiedene Elemente in G gibt, muss es in der Folge der g 1 , g 2 , · · · Elemente irgendwann einmal doppelt geben. Seien also g i = g j mit i < j . Dann ist e = g i ◦ (g i )−1 = g j ◦ (g i )−1 = g j−i ◦ g i ◦ (g i )−1 = g j−i ◦ e = g j−i . also g j−i = e. Damit gibt es also eine natürliche Zahl m > 1, nämlich j − i, so dass g m = e. 2 Beispiele: a) Die ganzen Zahlen sind bis auf die 0 alle von unendlicher Ordnung. b) Die Elemente der zyklischen Gruppe der ordnung 4 haben jeweils die Ordnung 1,2 und 4. Bei vorgegebenem G und Untergruppe H kann man nun folgende Relation “ ∼ ” einführen, die sich als Äquivalenzrelation herausstellt: a, b ∈ G äquivalent und notieren dies mit a ∼H b, keine Missverständnisse zu befürchten sind, schreiben, wir Denition 4.14. Wir nennen wenn auch a−1 ◦ b ∈ H . Wenn einfach a ∼ b. 100KAPITEL 4. ALGEBRAISCHE STRUKTUREN, GRUPPEN, RINGE, KÖRPER Satz 4.15. Die Relation “ ∼H ” ist eine Äquivalenzrelation. i) Zur Reexivität: Für alle a ∈ G ist a−1 ◦ a = e. Da jede Untergruppe H auch das neutrale Element e enthält, ist also a−1 ◦ a ∈ H und damit denitionsgemäÿ a ∼ a für alle a ∈ G. ii) Zur Symmetrie: Seien a, b ∈ G mit a ∼ b, d.h. a−1 ◦ b ∈ H . Da H als Untergruppe mit a−1 ◦ b auch das Inverse (a−1 ◦ b)−1 = b−1 ◦ (a−1 )−1 = b−1 ◦ a. Damit ist denitionsgemäÿ auch b ∼ a. iii) Zur Transitivität: Seien a, b, c ∈ G mit a ∼ b und b ∼ c. Damit ist also denitionsgemäÿ a−1 ◦ b ∈ H sowie b−1 ◦ c ∈ H . Da H eine Untergruppe ist, ist also auch (a−1 ◦ b) ◦ (b−1 ◦ c) = a−1 ◦ (b ◦ b−1 ) ◦ c = a−1 ◦ e ◦ c = a−1 ◦ c in H . Damit ist denitionsgemäÿ a ∼ c. 2 Beweis. Die Äquivalenzklassen lassen sich auf eine einfache Art und Weise darstellen: Satz 4.16. Die Äquivalenzklasse durch: von a bzgl. der Relation “∼” ergibt sich [a] = aH := {a ◦ h|h ∈ H}. Beweis. x ∈ [a] [a] Es ist a∼x a−1 ◦ x ∈ H a−1 ◦ x = h x=a◦h x ∈ aH . g.d.w. g.d.w. g.d.w. g.d.w. g.d.w. 2 Nun ist die Linksverknüpfung mit einem festen a aufgefasst als Abbildung G → G mit x 7→ a ◦ x eine bijektive Abbildung (jedoch kein Homomorphismus). Insbesondere ist die auf H eingeschränkte Abbildung eine Bijektion von H auf aH . Somit hat aH für jedes a genau so viel Elemente wie H . Da dies für alle Äquivalenzklassen [a] = aH gilt, haben damit alle Äquivalenzklassen also dieselbe Anzahl von Elementen. Für die Anzahl der Äquivalenzklassen selbst führen wir folgenden Begri ein: Denition 4.17. Die Anzahl der Äquivalenzklassen für die Relation der Untergruppe auch ind H nennt man auch den Index von H in G. ∼ bzgl. Hierfür schreiben wir H. Da alle Äquivalenzklassen gleich viele Elemente besitzen und paarweise disjunkt sind ergibt sich: Satz 4.18 (Satz von Lagrange). gilt: Ist H eine Untergruppe der Gruppe G, dann ord G = ord H · ind H. Sei nun H die von einem Element a ∈ G erzeugte zyklische Gruppe. Die Ordnung von a ist dann gleich der Ordnung von H und es folgt ord G = ord a · ind H . Also gilt: Folgerung 4.19. Für Folgerung 4.20 a ∈ G (G endlich) gilt: ord (Kleiner Satz von Fermat). aord G = e. a ist ein Teiler von ord Für jedes a∈G gilt: G. 4.1. GRUPPEN Beweis. eind H = e. 4.1.5 101 Wegen ord G = ord a·ind H ist aord 2 G = aord a·ind H = (aord a )ind H = Faktorgruppen Es stellt sich die Frage inwieweit auf der Menge der Äquivalenzklassen aH einer Äquivalenzraleation ∼H für eine Gruppe G mit Untergruppe H eine natürliche Gruppenstruktur besteht. Eine solche Gruppenstruktur sollte von der ursprünglichen Gruppenstruktur von G induziertÿein d.h. in folgender Form darstellbar sein: [a] ◦ [b] = [a ◦ b] für beliebige a, b ∈ G, wobei die Operation “ ◦ ” auf der linken Seite die induzierte Operation bezeichnet und die Operation “ ◦ ” auf der rechten Seite die induzierende also die ursprüngliche Operation auf G bezeichnet. Für nichtkommutative Gruppen G macht man sich allerdings schnell klar, dass die notwendige Forderung nach Wohldeniertheit"der induzierten Operation besondere Eigenschaften von H erforderlich macht, die nicht automatisch erfüllt sind. Schauen wir uns hierzu an, was die Forderung nach Wohldeniertheit für Konsequenzen nach sicht zieht: Wie wir oben gesehen haben, lassen sich [a] bzw. [b] auch repräsentieren durch a ◦ h bzw. b ◦ h′ mit beliebigem h, h′ ∈ H . Wohldeniertheit bedeutet nun, dass (a ◦ h) ◦ (b ◦ h′ ) dieselbe Äquivalenzklasse repräsentiert wie a ◦ b. Dies heiÿt, dass (a ◦ h) ◦ (b ◦ h′ ) ∈ [a ◦ b] und damit (a ◦ h) ◦ (b ◦ h′ ) = (a ◦ b) ◦ h′′ für ein geeignetes h′′ ∈ H . Multiplikation mit a−1 von links und mit h′−1 von rechts ergibt die Gleichung h ◦ b = b ◦ h′′ ◦ h′−1 . dies bedeutet aber, dass für beliebiges h ∈ H und jedes b ∈ G sich h ◦ b darstellen lassen muss in der Form b ◦ h̃ mit einem geeigneten h̃ ∈ H . Für nichtkommutative Gruppen ist das aber nicht immer der Fall. Untergruppen H einer (nichtkommutativen) Gruppe G erhalten also einen besonderen Namen, wenn diese Eigenschaft erfüllt ist: Denition 4.21. Eine Untergruppe gruppe oder Normalteiler, wenn für jedes H einer Gruppe G a ∈ G gilt: heiÿt normale Unter- aH = Ha. Dabei ist Ha (in Analogie zu aH ) deniert durch Ha = {h ◦ a|h ∈ H}. Oensichtlich ist jede Untergruppe einer kommutativen Gruppe stets ein Normalteiler. Folgerung 4.22. Sei G eine beliebige Gruppe und H ein Normalteiler von G. ∼H eine wohldenierte in- Dann existiert auf der Menge der Äquivalenzklassen bzgl. duzierte Gruppenoperation. Die hierdurch erzeugte Gruppe heiÿt Quotientengruppe von G nach Beweis. H (manchmal auch Faktorgruppe genannt) und wird mit Übung unter Benutzung der Vorüberlegungen. 2 G/H notiert. 102KAPITEL 4. ALGEBRAISCHE STRUKTUREN, GRUPPEN, RINGE, KÖRPER Satz 4.23. Sei G eine beliebige Gruppe und H ein Normalteiler von G. Dann wird vermöge a 7→ [a] a ∈ G und [a] ∈ G/H ein (kanonischer) G/H deniert mit Kern π = H . für Beweis. 4.2 Übung. GruppenHomomorphismus π:G→ 2 Ringe Auf der Menge Z haben wir mit der Multiplikation und der Addition zwei unterschiedliche Operationen mit gewissen Veträglichkeitseigenschaften. Dies führt zum (verallgemeinerten) Begri eines Ringes: Denition 4.24. Auf einer Menge die mit den Zeichen “+” bzw. nieren eine Ringstruktur auf i) R “·” R, R seien zwei binäre Operationen gegeben, notiert werden. Diese beiden Operationen de- wenn gilt: “ + ” die Eigenschaften einer abelschen Gruppe. “ · ” ist assoziativ aber nicht notwendig koomutativ. alle a, b, c ∈ R: hat zusammen mit ii) Die Operation iii) Es gilt für a · (b + c) = (a · b) + (a · c) sowie (a + b) · c = (a · c) + (b · c). Zur Vermeidung von Klammern wird vereinbart, dass die Multiplikationÿtärker bilden soll wie die Addition". Das neutrale Element bzgl. der Additionÿoll mit 0 bezeichnet werden. Das zu einem Element a (bzgl. der Addition) inverse Element mit −a. Der einfachste Ring besteht nur aus einem einzigen Element, das alle relevanten Rollen selbst wahrnimmt. Dieser Rinmg ist dann trivialerweise auch kommutativ. Auch die ganzen Zahlen Z bilden zusammen mit der gewöhnlichen Addition und Multiplikation einen kommutativen Ring. Beispiel eines nichtkommutativen Ringes ist der Ring der linearen Funktionen, mit der normalen Addition und mit der Hintereinanderausführung als Multiplikation. Weitere Beispiele nichtkommutativer Ringe bilden die quadratischen Matrizen und die sog. Quaternionen. Die Distributivgesetze bei Ringen erlauben die Herleitung einiger wichtiger Gesetze: Satz 4.25. Für alle Elemente i) ii) a · 0 = 0 · a = 0. a · (−b) = (−a) · b = −(a · b). Beweis. Übung 2 a, b eines Ringes R gilt: 4.2. RINGE 103 Es gibt Ringe, in denen es ein bzgl. der Multiplikation neutrales Element n gibt, für das also gilt: a·n=n·a=a für alle a ∈ R. Ein solches Element heiÿt EinsElement und wird auch mit 1 bezeichnet. Ein solcher Ring wird dementsprechend auch als Ring mit 1 bezeichnet. Beispiele. In Analogie zur Eindeutigkeit des neutralen Elementes bei Gruppen kann man zeigen, dass das EinsElement wenn ein solches existiert eindeutig bestimmt ist. Es gibt nun Elemente a in R mit der Eiigenschaft, dass a · b = 0 für ein b ̸= 0. Hierfür denieren wir: Denition 4.26. i) Sei heiÿt a a∈R ein Element mit a·b = 0 für ein b ̸= 0. Dann ein Linksnullteiler. ii) Gilt analog b·a = 0 für ein b ̸= 0, dann heiÿt a Rechtsnullteiler. Links oder Rechtsnullteiler werden auch einfach als Nullteiler bezeichnet. iii) Ein Nullteiler a, der selbst ungleich 0 ist, heiÿt eigentlicher Nullteiler. iv) Ein Ring der keine eigentlichen Nullteiler enthält, heiÿt nullteilerfrei. Beispiele. Endliche Ringe mit Nullteiler. Für Element die nicht (Recht/Links)Nullteiler sind gibt es eine Kürzungsgesetz: Satz 4.27. Sei i) Gilt a, b, c ∈ R. a kein a·b = a·c und ist b·a=c·a und ist Linksnullteiler, dann folgt hieraus die Gleichung b = c. ii) Gilt a kein Rechtsnullteiler, dann folgt hieraus analog b = c. Beweis. Zu i):Aus a · b = a · c folgt a · b + (−(a · c)) = 0. Wegen −(a · c) = a · (−c) (s.o.) folgt unter Benutzung des Distibutivgesetzes a · (b − c) = 0. Da a nach Voraussetzung kein Linksnullteiler ist, folgt notwendig b − c = 0 also b = c. ii) zeigt man analog. 2 Folgerung 4.28. Sei R nullteilerfrei, dann ist für jedes a ̸= 0 die Funktion x 7→ a · x von R→R injektiv. Eine analoge Behauptung gilt für die Funktion x 7→ x · a. Begri eines Schiefkörpers, eines kommutativen Ringes und eines Körpers. Begri einer Einheit Satz 4.29. Die Einheiten eines Ringes mit 1 bilden bzgl. der Multiplikation eine Gruppe. Beweis. Übung. beweisend Beispiel. Einheiten in Z4 . Begri eines Integritätsringes. (kommutativ, Nullteilerfrei, 1 ̸= 0) 104KAPITEL 4. ALGEBRAISCHE STRUKTUREN, GRUPPEN, RINGE, KÖRPER 4.3 Kommutative Ringe Ab jetzt betrachten wir nur noch kommutative Ringe mit EinsElement. Ringhomomorphismus und Kern eines Ringhomomorphismus Ideale und Restklassenringe. Wie erhalten wir die Einheiten eines Restklassenringes Z/nZ? Eür eine Einheit [a] muss gelten, dass es ein [b] gibt, mit [1] = [a][b] = [ab]. ab und 1 gehören also zurselben Äquivalenzklasse, d.h. es gilt ab − 1 = nr oder ab − nr = 1. Bei vorgegebenem a und n liegt hier eine ganzzahlige Gleichung vor, für die eine ganzzahlige Lösung mit den Unbekannten b und r gesucht wird. Betrachten wir also die Lösbarkeit von Gleichungen der Form ax + by = c mit vorgegebenen ganzen Zahlen a, b, c und den Unbekannten x, y . Wir haben es hier mit einer speziellen sog. diophantischen Gleichung zu tun. Eine solche Gleichung ist genau dann ganzzahlig lösbar, wenn die Zahl c ein Vielfaches des ggT von a und b ist. (Dies zeigt man leicht mit Hilfe des Euklidschen Algorithmus. Er leifert gleichzeitig ein konstruktives Verfahren zur Bestimmung der Lösung.) Hieraus folgt: Satz 4.30. Ein Element modulo n, wenn Beweis. a und n [a] ist genau dann eine Einheit im Restklassenring teilerfremd sind. Sind a und b teilerfremd, dann ist die Gleichung ax + ny = 1 lösbar und [a][x] = [1]. Sind a und b nicht teilerfremd mit einem gemeinsamen Teiler t > 1, dann lässt sich dieser gemeinsame Teiler als gemeinsame Faktor ausklammern ax+ny = tr, so dass es keine Möglichkeit zur Lösung der diophantischen Gleichung mit c = 1 gibt. 2 Es gibt also genau soviele Einheiten in Z/nZ, wie es zu n teilerfremde Zahlen in der Menge {1, 2, · · · n − 1} gibt. Folgerung 4.31. Ist Anzahl der Einheiten zu Beweis. n das produkt (p − 1)(q − 1). zweier Primzahlen Abzählen der teilerfremden Zahlen. 15m5n−1 dann ergibt sich die 2 Denition 4.32. Die Anzahl der zu einer Zahl Bereich pq , n teilerfremden Zahlen bezeichnet man als die Eulersche m im φ-Funktion. Ohne Beweis erwähnen wir: Satz 4.33. Für αm 1 α2 n = pα 1 p2 · · · pm ergibt sich für die Eulersche 1 −1 m −1 φ(n) = pα (p1 − 1)p2α2 −1 (p2 − 1) · · · pα (pm − 1) = m 1 n ∏ i=1 φ-Funktion i −1 pα (pi − 1) i zu 4.4. RSAVERSCHLÜSSELUNG Satz 4.34. Für jede Einheit 105 [a] des Restklassenringes Z/nZ gilt [a]φ(n) = [1] Beweis. nung φ(n). 4.4 Die Menge der Einheiten bildet eine (multiplikative) Gruppe der Ord2 RSAVerschlüsselung Wir beginnen mit zwei (im allgemeinen sehr groÿen) Primzahlen p und q . Ausgehend vom Produkt n = pq̇ dieser Primzahlen, führen wir zwei modulo Rechnungen durch: mod n und mod φ(n). Wir suchen zunächst zwei Zahlen e, d mit ed = 1 mod φ(n) d.h. ed − kφ(n) = 1 für ein geeignetes k . Wie wir gesehen haben, ist eine solche Gleichung stets lösbar, wenn wir mit einem e beginnen, das teilerfremd zu φ(n) = (p − 1)(q − 1) ist. Das Zahlenpaar (e, n) wird im folgenden als sog. öentlicher Schlüssel zum Verschlüsseln einer Nachricht benutzt. Zum Entschlüsseln benutzt man das Paar (d, n). Dabei wird jetzt modulo n gerechnet. Hierbei ist zu beachten, dass für die Äquivalenzklassen [a] mod n stets gilt (s.o): [a]φ n = [1] Verschlüsselung (Klartext sei als Zahl m gegeben): m ; [m]e = [me ] = [c] für einen geeigneten Repräsentanten c (der so gewählt wird, dass 0 5 c 5 n). Entschlüsselung: c ; [c]d = [cd ] Es ist dann [cd ] = [m], d.h. aus der verschlüsselten Nachricht [c] lässt sich der Klartext [m] rekonsruieren. Es ist nämlich: [cd ] = [(me )d ] = [m1+k·φ(n) ] = [m · mk·φ(n) ] = [m · (mφ(n) )k ] = [m] · [mφ(n) ]k = [m] · [1]k = [m]. 106KAPITEL 4. ALGEBRAISCHE STRUKTUREN, GRUPPEN, RINGE, KÖRPER Bemerkung: Wir haben hier stillschweigend unterstellt, dass die zu verschlüsselnde Nachricht m ebenfalls teilerfremd ist zu n. Das ist strenggenommen nicht immer der Fall. Man könnte nun argumetieren, dass dies (nämlich gemeinsame Teiler) nur ganz selten auftreten könnte. Man könnte sich aich aus der Aäre ziehen, indem man das m nicht nur kleiner als n sondern auch kleiner als p oder q wählte. Tatsächlich aber kann man zeigen, dass die Verschlüsselung mit anschlieÿender Entschlüsselung auch für diejenigen m < n funktioniert, die nicht teilerfremd sind. (Aber: e resp. d und φ(n) müssen in jedem Fall teilerfremd sein.)