Ansichten eines Informatikers

Warum es eigentlich Zahlen gibt

Hadmut
17.8.2024 16:31

Wem Buchstaben recht sind, dem können natürliche Zahlen nur billig sein.

In den social media streiten sie sich gerade, ob dieser Lehrer recht hat oder ein Depp ist:

Abgesehen davon, natürliche Zahlen viel älter als die Mengenlehre sind, stimmt das so auch nicht, auch wenn man das immer wieder hört, dass natürliche Zahlen als Kardinalzahlen von Mengen definiert seien und etwa “3” der Platzhalter für die Äquivalenzklasse alle Mengen mit eben 3 Elementen steht. Hört sich zwar schön an und ist auch für mittelbegabte zuständig, funktioniert so aber nicht ohne weiteres, weil es nämlich eine zyklische Definition ist.

Und wenn man es mathematisch exakt sieht, könnte man damit auch nicht beweisen, dass alle Zahlen überhaupt existieren, weil man nicht beweisen kann, ob es zu jeder Kardinalität überhaupt eine Menge gibt. Es wäre ja denkbar, dass da mittendrin eine Lücke gibt, und man Mengen mit einer gewissen Zahl von Elementen aus irgendeinem noch unbekannten Grund nicht bilden kann.

Ich hatte doch gerade erst vor ein paar Tagen im Blogartikel zu Halbjuristen erzählt, dass bei uns damals die ersten schon am ersten Vorlesungstag nach Algebra und Analysis mittags mit Heulkrampf in der Mensa saßen.

Ich bekomme das jetzt nach fast 40 Jahren (Es war das Wintersemester 1986/87) und aus dem Gedächtnis auch nicht mehr ganz und fehlerfrei zusammen, aber zu den ersten Dingen, die wir da damals in Algebra getan haben, war zu ergründen, was 0, was 1 und was natürliche Zahlen eigentlich sind, und zu beweisen, dass sie existieren.

Natürliche Zahlen sind nämlich nicht definiert, sondern deren Existenz bewiesen als zwingende Folge elementarer Axiome.

Das ganze Ding beruht auf der Definition von Gruppen, Ringen, Körpern. (Google liefert mir als Skript zuerst dieses hier. Da kann man zwar reingucken, aber so richtig ist das nicht, weil das viel zu verkürzt und in der Abfolge unrichtig dargestellt wird. Wir hatten das damals viel ausführlicher und präziser.)

Eine Gruppe ist ein Paar (G, ◦) , bestehend aus einer nichtleeren Menge G und einer Verknüpfung ”◦” auf G mit bestimmten Eigenschaften (usw. siehe Skript).

Da wird mancher sagen, das beruht ja schon auf dem Begriff der „Menge“, aber: die hat zu diesem Zeitpunkt die Eigenschaft der Kardinalität noch nicht. Zahlen beruhen nämlich nicht auf der Kardinalität der Gruppe, sondern umgekehrt, die Kardinalität einer Gruppe kann erst definiert werden, wenn man weiß, was Zahlen sind.

Und dann geht das weiter mit

Ein Ring ist ein Tripel (R, +, ·) bestehend aus einer nichtleeren Menge R und zwei Verknüpfungen ”+” und ”·” sodass folgende Eigenschaften erfüllt sind […Skript …]

Und dann kann man da erstaunliche Dinge bauen und überlegen, und definiert (und das weiß ich jetzt nicht mehr ganz auswendig, das müsste ich nochmal nachschauen) für beide Verknüpfungen + und · ein neutrales Element:

Gibt es ein Element a, so dass für alle b aus der Menge gilt: a+b = b , dann nennen wir dieses Element 0.

Gibt es ein Element a, so dass für alle b aus der Menge gilt: a·b = b , dann nennen wir dieses Element 1.

Details müsste ich jetzt nachschauen.

Und dann kann man für alle nichttrivialen Mengen, die nicht nur aus einem Element bestehen, nachweisen, dass 0 ungleich 1, weil 0+1=1, und 0·1=0, und dann kann aber 1+1 nicht gleich 1 sein, sonst wäre 1=0 und so weiter, also muss 1+1 entweder 0 oder ein neues Element sein, das wir noch nicht kennen, und ihm den Namen 2 geben. Und dann die Frage stellen, was denn dann 2+1 ist und so weiter.

Wie gesagt, ich bekommt das nach fast 40 Jahren aus dem Gedächtnis und ohne lange nachzudenken jetzt auch nicht mehr so richtig und vollständig zusammen, aber so in der Art.

Dann nämlich stellt sich die Frage, wie oft man 1+1+1+ … = (((1+1)+1)+1)… rechnen kann und wieder bei 0 herauskommt.

Damit hat man dann erste einmal den „Ring mit 1“ gebildet, ein lustig Ding, das keineswegs unendlich groß sein muss und drollige Eigenschaften aufweist, die man – gerade als Informatiker oder Programmierer – sehr genau kennen sollte. Denn die Computerzahlen mit endlichen Darstellung, namentlich solche Dinge wie 8-, 16-, 32-, 64- signed und unsigned Integer sind solche Ringe mit 1. Aber nicht nullteilerfrei. Wenn ich beispielsweise 16-Bit-unsigned Integer verwende, dann gehen die von 0 bis 65535, und 65535+1=0 (weil 65536, aber nur die Restklasse dargestellt wird) und 256·256=0 (weil auch 65536).

Und da sind schon viele auf die Schnauze gefallen, weil sie die algebraischen Eigenschaften nicht berücksichtigt haben. Und dann wundert man sich, warum Programme abstürzen.

Ein klassisches Beispiel ist die Chiffre IDEA, die auf drei umkehrbaren Operationen auf 16-Bit-Zahlen beruht, nämlich

  • bitweise XOR,
  • Addition modulo 216
  • Multiplikation modulo 216+1, wobei der Wert Null als 216 gilt.

Warum bei der Multikation 216+1 und nicht 216? Weil 216 eben nicht nullteilerfrei ist, alle Zweierpotenzen sind Nullteiler. 256·256=0. Und das nicht nicht umkehrbar, weil es nichts gibt, womit man 0 multiplizieren könnte, um wieder zu 256 zurückzukommen. Betrachtet man aber die multiplikative Gruppe von 216+1, also die Zahlen 1 bis 65536, hat man 216 mit denen man prima vor und zurück multiplizieren kann.

Irgendwelche Schlaumeier wollte das unverändert mit 32 Bit machen. Und das kann nicht funktionieren, weil 216+1 eine Primzahl, 232+1 aber eben nicht (4294967297 = 641 · 6700417), weshalb man da so nicht rechnen kann.

Man kann in den Primzahl-Restklassen nämlich famos rechnen, weil sie nullteilerfrei sind, und man deshalb beweisen kann, dass man in der Restklasse der Primzahl p eben p-Mal addieren, also p 1+1+1… schreiben muss, um wieder bei 0 rauszukommen, es also p verschiedene Elemente (nämlich 0 bis p-1) geben muss. Und dann kann man zeigen, dass es unendliche viele Primzahlen gibt, eben keine größte. Und damit eben auch unendlich viele Zahlen und man nicht irgendwann (wie beim Rechnen im Computer mit 16-Bit-Zahlen) wieder bei einer bekannten Zahl rauskommt.

Und dann weiß man, dass es unendlich viele Zahlen gibt. Und dass man sie aufzählen kann. Also fängt man bei 0 an, und addiert immer 1 drauf, um zur nächsten zu kommen.

Und damit kann man dann algebraisch erst zählen, nämlich über das iterative aufzählen.

Die Sache mit der Kardinalität von Gruppen ist zwar schön anschaulich, aber eben nicht korrekt. Denn erstens ist es zyklisch definiert, und damit fehlerhaft (5 ist die Kardinalität von Gruppen mit 5 Elementen), und zweitens hat nie jemand bewiesen, dass man Mengen beliebig vergrößern kann.

Man weiß ja nicht, wieviele Elemente es im Universum gibt, ob man überhaupt alle Mengen bilden kann.

Und dann ist unklar, ob Mengen weiter wachsen können. Es könnte ja sein, dass die Welt eine wundersame Eigenschaft hat, dass es bei Mengen einer gewissen Größe vorkommt, dass sie kleiner werden, wenn noch etwas dazukommt. Klingt absurd, aber tretet doch mal den Beweis an, dass das nicht so ist. Dass wir uns nicht in einer Welt, vielleicht einer Simulation befinden, in der wir einen „Ring mit 1“ haben, also alles begrenzt ist?

Außerdem braucht man eben erst die Zahlen, dann hat man die Kardinalität. Man kann zwar auch bei der Kardinalität interessante Beweis führen, aber damit nicht die nötigen Überlegungen anstellen wie bei algebraischer Betrachtung von Zahlen. Wobei eine Zahl in der Algebra keine quantitative Bedeutung an sich hat. 5 bedeutet nicht “5 Stück”, sondern ist das, was auch immer man bekommt, wenn man das neutrale Element der Multiplikation (1) eben fünfmal auf das neutrale der Addition addiert hat: 5 = 0+1+1+1+1+1. Weil aber 0 und 1 keine quantitative Bedeutung haben, sondern qualitative Eigenschaften, bedeutet 5 nicht fünf, sonst ist das Ergebnis, was auch immer es sein mag, wenn man fünfmal die 1 verknüpft. Es geht darum, wie man die 5 herstellt und beweist, nicht was sie bedeutet. Man kann beweisen, dass wenn man das tut, man irgendetwas bekommt, über das man nicht mehr weiß, als dass es entweder ungleich 0,1,2,3,4 sein muss – oder gleich Null, wenn man sich in der Restklasse von 5 bewegt. Und so weiter mit der 6.

Wie gesagt, das war jetzt alles nur so ungefähr und nicht notwenigerweise fehlerfrei, weil nach fast 40 Jahren spontan aus dem Gedächtnis. Sucht Euch ein gutes Lineare-Algebra-Buch.

Deshalb halte ich das auch für so wahnsinnig wichtig, ein ordentliches mathematisches Fundament für Informatik zu haben, weil alles, was wir da auf Computern rechnen, in der Algebra herumtanzt. n-Bit-Integer-Zahlen sind nun mal Elemente eines Rings mit 1 und keine natürlichen Zahlen. Deshalb kann man da so auf die Schnauze fallen.

Weil mir gerade jemand das zuschickte:

Ich bin mir nicht sicher: Ist das Peter Thiel?

Zumindest bezüglich meines Studiums redet er da Unsinn, wenn wir haben ja die Vorlesungen der Mathematiker im Mathematikhörsaal bei den Matheprofs zusammen mit den Mathematikern gehört. Das Vordiplom Informatik umfasste ja im Prinzip das Vordiplom Mathematik, nur dass wir Numerik und Stochastik nur als Scheinklausur und nicht als Notenklausur schreiben mussten (also nur bestehen, ohne Note) und noch irgendwas anderes, was aber nicht schwer war. Wir haben damals sogar noch überlegt, ob wir nicht das bisschen mehr machen (also uns in Numerik und Stochastik eine Note statt „bestanden“ drauf schreiben lassen und noch irgendeine Vorlesung machen) und uns das Vordiplom in Mathe noch mit einpacken. Nur im Gegensatz zum späteren Bachelor ist das Vordiplom Mathe außerhalb der Uni wertlos.

Der Knackpunkt ist eben, dass wenn man sich Zahlen nur auf die Trivialart der Kardinalität von Mengen definiert/vorstellt, man überhaupt nichts über deren Struktur lernt oder versteht. Primzahlen gibt es da ja nicht, und beweisen kann man da auch nicht viel. Es mag einem zwar intuitiv einleuchten, dass wenn ich einen Korb mit 20 Äpfeln habe und noch einen reinlege, es dann 21 sind. Aber versucht mal, zu beweisen, dass das immer, für alle Zahlen so ist. Das geht nicht. Das ist nur so eine Trivialerklärung, die sich schön anhört.

Und das ist (oder war) einer der vielen Unterschiede zwischen einem Informatiker und einem „Programmierer“ oder „Coder“. Zumindest als Informatiker noch eine richtige Ausbildung hatten und nicht solchen Krampf wie „Mathematik für Informatiker“ oder „Mädchen-Mathe“.

Programmierer nehmen sich nämlich gerne einfach irgendeine Variable, 32-Bit Integer reicht ja erfahrungsgemäß immer. Und dann wundert man sich, wenn der Flieger abstürzt.

Heute glauben Informatiker, dass Zahlen entstehen, indem man zwei große Zahlen über Nacht zusammen lässt, und am nächsten Morgen hat man dann eine neue kleine Zahl auf dem Tisch.

Fragt mal die Programmierer und „Informatiker“ Eurer Wahl, wer davon genau weiß, was die vollständige Induktion ist.

Ich habe Leute erlebt, die man in die Professur für IT-Sicherheit und Kryptographie gehievt hat, obwohl (oder wahrscheinlich eher gerade weil) sie nicht ordentlich definieren konnten, was eine Primzahl ist. Der Verblödungsdruck ist enorm.

Und ich sag’s Euch: Hütet Euch vor 16- und 32-Bit Integer, allen n-Bit-Integer. Die haben garstig Eigenschaften. Algebraische Eigenschaften. Bedenket stets: Sie sind ein Ring mit 1.

Epilog

Um auf ein Dauerthema des Blogs zurückzukommen:

Man kann sich natürlich die Frage stellen, ob Zahlen es Zahlen und Algebra wirklich gibt, oder sie doch nur ein Produkt unserer Vorstellung sind, sie also auf einem anderen Planeten anders erdacht werden könnten.

Das Wunderbare an der Algebra ist aber, dass sie von äußerst geringen Postulaten und Annahmen ausgeht, und sich nicht wie die Geisteswissenschaften einfach immer mehr willkürlichen Scheiß ausdenkt und auftürmt, sondern sehr präzise darauf achtet, wirklich nur auf einem minimalen, und äußerst trivialen, leicht zu erkennenden und auch zu verstehenden Satz von Annahmen oder Voraussetzungen beruht, die unmittelbar einleuchten und empirisch prüfbar sind. Bisher hat die Mathematik der Realität zu 100% standgehalten.

Wie aber kamen wir an den Punkt dieser trivialen Mindestannahmen?

Und würden die Woken jetzt wieder damit kommen, dass das ein Diktat des kolonialistischen Weißen Mannes ist? Manche afrikanische Fakultät lehnt Mathematik ja ab, und Feministinnen berufen sich gerne darauf eine andere Epistemologie zu haben.

Die Mathematiker sind da aber gar nicht verschlossen. Würde man mit einer andere Mathematik daherkommen, wären die garantiert hochinteressiert, weil die einfach Spaß daran haben, anders zu denken. Das würde nicht abgelehnt. Es würde aber geprüft, weil die darauf trainiert sind, alles zu beweisen und zu widerlegen. Und alle Versuche sind wohl sehr schnell gescheitert, weil sie nicht auf vernünftigen Annahmen beruhten, sondern auf dem Willen, anders zu sein, und dabei wüste Fehler in Kauf nahmen.

Ich glaube, dass wir einen gewissen Mindestsatz an mathematischer Erkenntnis, nämlich den, aus dem wir die trivialen Grundannahmen als Postulate entnehmen können, evolutionär entwickelt haben. Wir hätten nicht überlebt, wenn sie die Natur und Realität nicht gedanklich hinreichend genau erfassen würden.

Wer aber meint, in der Algebra einen Fehler oder eine alternative Mathematik gefunden zu haben, wird da mit offenen Armen empfangen – sollte sich aber eben auf Überprüfung gefasst machen. Das machen die nämlich seit Jahrhunderten und Jahrtausenden: Alles immer wieder nachprüfen.