Unendliche Mengen. Teil 1: Eine Übung mit JavaScript

line_split_fractals

Wir schreiben. Ein Spiel mit Zeichen, Manipulationen von Strings nach Regeln. Und dann, was damit anfangen? In der Anwendung, d.h. dem Einsatz der eingeübten Regeln in der vielfältigen Welt, gewinnen die Spielzüge ihren Wert.

Das Spiel mit Zeichen aber ist selbst ein Weltgeschehen. Und während es sich als Ordner der Welt betätigt, kommen Zweifel auf – über die Welt der Ordnung. Was tut es mit den unendlichen Mengen an Vorkommnissen? Immer kleinteiliger zerlegen. Auf verschiedenste Weisen zusammenfassen. Auf Eigenschaften schließen. Und wenn es selbst in den Fokus des Ordnens kommt, bricht es erst einmal zusammen.

Einleitung

Nehmen wir an, wir würfen mit einer Münze “Kopf und Adler” und teilen nun eine Strecke AB nach folgender Regel: “Kopf” sagt:nimm die linke Hälfte und teile sie, wie der nächste Wurf vorschreibt. “Adler” sagt: nimm die rechte Hälfte etc. Durch fortgesetztes Würfeln erzeuge ich dann Schnittpunkte, die sich in einem immer kleineren Intervall bewegen. Beschreibt es nun die Lage eines Punktes, wenn ich sage, es solle der sein, dem sich bei fortgesetztem Würfeln die Schnitte unendlich nähern?
(Wittgensteinsource, TS213-767r[6])

Es gibt eine Grenze der Formalisierung und Strukturierung, die man nicht überschreiten soll. “Soll” ist zu gebieterisch gegenüber den formalisierenden Praktiken. Vielleicht so: Die Überschreitung dieser Grenze wird keinen zusätzlichen Gewinn eingebracht haben – sie überschießt die Fälle der Anwendung, springt über sie hinweg und hängt dann in der Luft. Eine Spekulation auf Eventualitäten, die noch nicht aufgetreten sind oder gar nie auftreten. Aber auch mutig, vielleicht weg-weisend zu einem neuen Wissensgebiet.

Ludwig Wittgenstein zieht eine Grenze zwischen der Einführung von unendlichen Mengen und der Assoziation mit Kardinalzahlen:

Wenn der Mengenkalkül sich in seiner Ausdrucksweise soviel als möglich an die Ausdrucksweise des Kalküls der Kardinalzahlen anlehnt, so ist das wohl in mancher Hinsicht belehrend, weil es auf gewisse formale Ähnlichkeiten hinweist, aber auch irreführend, wenn er gleichsam noch etwas ein Messer nennt, das weder Griff noch Klinge mehr hat. (Lichtenberg.)
(Wittgensteinsource.org, TS-213,740r[4])

Unendliche Mengen “enthalten” den Moment des “…”, also die beliebige Fortsetzung einer regelgeleiteten Tätigkeit. Zum Beispiel ist die Reihe der natürlichen Zahlen beliebig fortsetzbar, da jede Zahl einen Nachfolger hat. Nimmt man die größte bekannte natürliche Zahl, kann man jedes Mal eine noch größere bilden, indem man die Regel des “Eins-weiter”, also der Nachfolgerfunktion anwendet. Man kann nicht alle Zahlen, die Element der natürlichen Zahlen sind, aufschreiben. Man kann sie nicht abzählen, aber sie sind abzählbar, vom Prinzip her. Man fragt: “Wie viele sind es dann? Unendlich viele.”

Wittgenstein beharrt auf der Grenze, dass man über die Größe von unendlichen Mengen nichts aussagen soll. Seine Maxime: “Nicht intervenieren” kommt ihm dabei in die Quere, oder muss zumindest präzisiert werden.

Es ist mittlerweile gängige und akzeptierte Praxis unter Mathematikern, endlichen sowie unendlichen Mengen die Eigenschaft der Mächtigkeit zuzuschreiben. Georg Cantors Mengentheorie hat sich, vor allem nach Vermeidung von Widersprüchen durch die gründliche Axiomatisierung durch Zermelo, Fraenkel, und Gödel, weitgehend durchgesetzt. Die zeitgenössischen Kritiker Cantors, die ihm eine harte Zeit in der Community beschert haben, wären heute wohl nicht mehr absolut verweigernd.

Dennoch, an der Mengentheorie, ihren Entwicklungen und ihrer Kritik gibt es viel zu lernen:

  • Für unendliche Mengen kann keine vollständige Extension (Aufzählung aller ihrer Elemente) aufgeschrieben werden: {1,2,3,4,…}
  • Programmiersprachen lösen das Problem pragmatisch mit der Festlegung eines Maximalwerts sowie eines Schwellenwerts, ab dem der Zahlenwert “unendlich” zugewiesen wird. “Wieviel ist x? unendlich.”
  • Ausblick: Man kann philosophisch auf die Entwicklungen der Mengentheorie mit Sprachklärung reagieren (Wittgenstein) und/oder sie in ihren historischen Wegen und Abwegen beleuchten, und zur Klärung und Erweiterung philosophischer Fragen verwenden. (Alain Badiou)

Vermischung von Intension und Extension

Tom Fery hat dem Verhältnis von Wittgenstein zur Mengenlehre einen Teil seiner Masterarbeit gewidmet.1 Er stellt eine Reihe von Interpretationen zusammen, die sich beim mittleren und späten Wittgenstein die Frage stellen, wie Nicht-Intervention und prinzipielle Überlegungen zu (formalen) Sprachen vereinbar sind. Ich verwende eine, um die Kritik an der Mengenlehre wiederzugeben.

Folgt man einer Interpretation von Victor Rodych so ist es nach den Kriterien von Wittgenstein nicht möglich, den Fall der endlichen Menge mit den Konstruktionsregeln der unendlichen Menge zu vereinbaren, d.h. auf einen Begriff zu bringen. {1,2,3,4} und {5,6,7,8} haben dieselbe Kardinalität, nämlich 4. Das lässt sich abzählen, und also demonstrieren. {1,2,3,…} und {2,4,6,…} sind nur im Prinzip, nicht von uns, abzählbar. Man wird nicht fertig.

“Following (Rodych’s) Wittgenstein intensions are mathematical rules and extensions are signs and their concatenations. The only thing mathematicians do and can do is use these intensions and extensions, but not describe them. The problem with set theory is that it conflates the intensions and the extensions. “By using intensional descriptions of ‘infinite sets,’ TST [transfinite set theory], pretends to give us infinite extensions, and in this way it ‘buys a pig in a poke.'” (cf. Rodych (2000): Wittgenstein’s Critique of Set Theory,p. 284). “TST says, in effect, that we can in principle really represent an infinite set by an enumeration, but because of human or physical limitations, we will instead describe it intensionally.” (cf. ibid.,pp. 284-5) But this is a mistake. In mathematics we cannot describe something which is in principle possible but actually impossible. […] There are only actual calculi in mathematics and these are “concerned only with the signs with which it actually operates”. (PG, 469) And furthermore, the fact “that we can’t describe mathematics, we can only do it […] abolishes every ‘set theory'”. (PR, 159) This sharp distinction between intensions and extensions amounts to the view that the formula e.g. m = 2n is not a description of a relation between two infinite classes but a rule of an infinite process which can be used to generate natural numbers without us being limited by the rule.”
Tom Fery (2014): Wittgenstein’s Relation to Formalism, S.57

Die Mächtigkeit einer (endlichen) Menge ist durch eine Extension fixiert. Die Mächtigkeit “einer” unendlichen Menge ist von originellen Beweisverfahren abgeleitet, die mit der Definition der Gleichmächtigkeit und der Eins-zu-Eins-Korrespondenz (oder Bijektion) arbeitet. Das geht nicht unmittelbar zusammen. Das Argument hat eine gewisse Plausibilität und die Entscheidung, sich mit all dem potenziellen Unsinn gar nicht erst zu verwirren, ist verständlich, wenn man bestimmte Prinzipien hat. Diese Entscheidung ist jedoch auch eine Selbstbeschränkung der spekulativen Kräfte: gar nicht erst anfangen, “das” zu untersuchen, was nur partiell dingfest gemacht werden kann. Sich gar nicht erst auf dünnes Eis begeben.

Mit Vielheiten arbeiten

Bei der Lektüre von Tom Ferys Masterarbeit ist mir Alain Badiou in den Sinn gekommen. Er hat sich in “Das Sein und das Ereignis” zentral mit dem Problem von Vielheit und Unendlichkeit beschäftigt, in einer Serie von Meditationen. Führen diese Überlegungen weiter, überschreiten sie die Grenze zum Sinnvollen? Oder verschieben sie “nur” die Grenze? Die Antwort passt nicht in einen Blog-Eintrag. Im Folgenden erst einmal ein paar Experimente.

0. Übung mit zeitgenössischen Kalkülen

Eine der spannendsten Anwendungen von Mathematik und Logik sind Programmiersprachen. Ein Großteil unseres Alltags sind wir mit den Resultaten jener Sprachen konfrontiert.

Über eine unendliche Menge kann man mit Hilfe der Programmiersprache Javascript etwas lernen, nicht nur ex negativo.

Eine Bemerkung von vorhin war:

Unendliche Mengen “enthalten” den Moment des “…”, also die beliebige Fortsetzung einer regelgeleiteten Tätigkeit.

In der Programmiersprache Javascript hat man mit der Anforderung, dass ein Objekt eine Funktion enthält, kein Problem. Die Zahlenreihe als Javascript-Objekt lässt sich in etwa so programmieren:

zahlenreihe_in_javascript

 

Ein paar Bemerkungen zum obigen Code:

  • Der obige Programmcode führt nichts aus. Er ist eine Deklaration des Objekts zahlenreihe und dem, was man mit diesem Objekt tun (Funktionen) oder an diesem Objekt ansehen kann (Werte eines Datentyps).
  • Im Objekt zahlenreihe wird festgehalten, was die größte bereits gezählte Zahl ist, und zwar in der variable: momentan_größtes.
  • Ebenfalls wird die gesamte bereits gezählte Reihe an Zahlen festgehalten, in dem Array, das in der Variable bis_jetzt_gezählt gespeichert ist.
  • Das Objekt zahlenreihe erlaubt, eins weiter zu zählen. Es ist eine Spezialität von Javascript, dass man mit einfachen Mitteln einer Variable eine Funktion zuweisen kann. Die Variable, die diese Funktion speichert, lautet: eins_weiter. Sie wird hier nur deklariert, nicht ausgeführt.
  • Eine weitere Funktion ist in der Variable ich_will_zu_Aleph gespeichert.

1. Übung mit der größten repräsentierbaren Zahl in Javascript

Bevor wir weitergehen, eine Warnung über die Möglichkeiten von Programmiersprachen für die Zwecke der Illustration von Mathematik: In fast jeder Programmiersprache sind Zahlen durch Datentypen repräsentiert (integer, float, usw.), welche durch eine maximal größte Zahl beschränkt sind. Der obige Javascript-Code arbeitet mit dem Datentyp “Number“. Das folgende Beispiel lotet die Grenzen der Repräsentierbarkeit von Zahlen in Javascript aus:

infinityTrick

 

  • Die größte durch diesen Datentyp repräsentierbare Zahl lautet: 1.7976931348623157 * 10308
  • Multipliziert man diese Zahl zum Beispiel mit sich selbst, enthält man den speziellen Wert Infinity. Eine profane, unaufgeregte Umgangsweise.

Es handelt sich hier um einen Sprung von der größten repräsentierbaren Zahl (in dieser Sprache) zum Zahlenwert unendlich, zustande gekommen durch eine Entscheidung, die in der Spezifikation der Programmiersprache dokumentiert ist, und die mathematisch nicht gedeckt ist. In der Spezifikation wird das Verfahren zur Bestimmung des “Zahlenwerts von x” so beschrieben:

ecma6_the_number_value_for_x

Alles was größer oder gleich 21024 ist, ist unendlich. Ein pragmatischer Trick, mit dem sich in den meisten Fällen gut rechnen lässt. Für prinzipielle Überlegungen zu den Eigenschaften von Zahlenreihen reicht das jedoch nicht.

2. Auf dem Weg zu Aleph in der Endlos-Schleife

Zurück zum deklarierten Objekt zahlenreihe. Mit Hilfe dieses Objekts ließe sich die Reihe der natürlichen Zahlen aufschreiben, d.h. prinzipiell, wenn es nicht die oben genannten Beschränkungen gäbe. Die Funktion ich_will_zu_Aleph zählt in einer Endlos-Schleife immer eins weiter. Programmierer wissen, dass Endlos-Schleifen dazu führen, dass die Funktion niemals endet. Javascript führt den Programmcode seriell aus, ein Statement nach dem anderen. Dadurch endet das Programm nie und der Web-Browser friert ein. Eine schlechte, unerwünschte Unendlichkeit, sozusagen, obwohl sie dem vorgeschriebenen Prozess des Hochzählens am Nächsten kommt.

Nagut, man kommt nicht zu einem End-Ergebnis. Kann man dann zumindest die Zwischenergebnisse sehen? Um den Prozess des Hochzählens für eine Weile zu verfolgen, kann man anstatt einer Endlos-Schleife einen Timer einbauen, der alle 3 Sekunden die Zahlenreihe um die nächsthöhere Zahl erweitert.

Der Programmcode kann mit JSFiddle im Web-Browser ausgeführt und modifiziert werden.