EINLEITUNG

Auf dieser Seite werde ich mathematische und logische Gegenstände und Probleme diskutieren, die ich in der Inverterlogik bestenfalls erwähnt, aber nicht abgehandelt habe, weil es mir dort allein um die Deduktion aus dem Inverter-Axiom geht. Hier ergänze ich die Ausführungen um das, was sich vor allem im Hinblick auf die bekannten Vorstellungen in der Mathematik ergibt. Dabei geht es natürlich nicht um die vielen Dinge, die kein bisschen anders aussehen, wenn die Vielzahl der bislang nötigen Axiome gegen Definitionen mit dem einen Inverter-Axiom getauscht werden. Es geht nur um solche Aussagen und Vorstellungen, die sich mit der Inverterlogik besser, anders oder erstmals erklären oder widerlegen lassen.
Die Dinge, die ich diskutiere, werde ich nur umgangssprachlich kurz skizzieren, bevor ich sie mit Hinblick auf die Inverterlogik abhandle. Ich werde den Leser also weder mit mathematischer Notation, noch dem Formalismus der Inverterlogik quälen, damit auch jene folgen können, die nicht Akademiker sind. Wer die Gegenstände der Betrachtung nicht kennt, kann im Internet unschwer weitere Erhellung finden. Eventuell biete ich aber Links zu Seiten an, die im Zusammenhang mit dem betrachteten Thema interessant sind.
Den Bezug zu Absätzen in der Inverterlogik stelle ich mit den Nummern der Kapitel her, versuche aber auch dann eine Skizze, die vermeiden kann, dass zwischen den Texten ständig hin und her gewechselt werden muss. Allerdings empfehle ich jedem eine genauere Lektüre der Inverterlogik, der glaubt, Anlass zur Kritik gefunden hat. Hier ist der Link:

  • zurück zur Inverterlogik
    Bei der Wahl der betrachteten Gegenstände folge ich meinem Belieben und ordne nach Stichpunkten. Ebenso folge ich meinem Interesse bei der Wahl weiterer Stichpunkte, die nicht unbedingt mit Mathematik zu tun haben, immer aber irgendwie mit der Inverterlogik.
    Für diesen Text beanspruche ich das gleiche, vollständige Urheberrecht wie für die Inverterlogik! Es gilt nicht die GPL.
  • Hauptseite von www.rcfriz.de

    1. PARADOXA UND ANTINOMIEN

    PARADOX:
    Ein bekanntes Paradoxon entnehme ich einem Text von Kurt-Ulrich Witt:
    Eine Menge von Schlangen sei gegeben und eine Schlange namens 'S', die allen Schlangen in den Schwanz beisst, die es nicht selber tun. Dazu wird die Frage gestellt, ob sich die Schlange S in den eigenen Schwanz beisst oder nicht. Diese Frage gilt als unentscheidbar bei folgender Betrachtungsweise:
    Wenn die Schlange S zu denjenigen Schlangen gehört, die sich nicht selbst in den Schwanz beissen, dann muss sie sich deshalb in den Schwanz beissen.
    Wenn die Schlange S zu denjenigen Schlangen gehört, die sich selbst in den Schwanz beissen, darf sie sich deshalb nicht in den Schwanz beissen.
    Bei dieser Betrachtungsweise wird die Ausgangssituation mit dem Resultat der Beissgewohnheit von S zu einer einzigen (paradoxen) Gegebenheit gemacht. Unterstellt wird dabei auch noch, dass keine Schlange ausser S in andere als eigene Schwänze beisst, und dass S auch in mehr als einen Schwanz zu gleicher Zeit beissen kann.
    Tatsächlich ist aber kein Ausgangszustand und nur eine Operation (das Beissen) gegeben. Weil die Operation eine bedingte ist, kann trotz unklarer Ausgangslage das eindeutige Resultat gefunden werden, dass sich die Schlange S jedenfalls in den Schwanz beisst - es entweder schon längst getan hat oder gerade tut. Sie gehört also immer zur Menge von Schlangen, die sich selbst in den Schwanz beissen! Anders wird das nur, indem der Zeitpunkt der Betrachtung verlegt wird, die vor oder nach dem Zubeissen stattfinden kann. Nur vor ihrem Biss kann die Schlange S zur Menge der Schlangen gehört haben, die sich nicht selbst in den Schwanz beissen. Dieser Zeitpunkt ist aber weder argumentiert, noch durch Mengenbildung zu schliessen.
    Weil also die Ausgangssituation durch die Definition der Beissgewohnheit garnicht argumentiert ist, kann die Frage auch nicht beantwortet werden, wann die Schlange S zubeisst. Das "Paradoxon" ist keins, vielmehr ist ein Mangel an Argumenten zu sehen. Nur wer sich den Glauben machen lässt, dass was geschlossen werden könne, fühlt sich paradox.
    Diese Lösung eines bekannten Paradoxons ist hier umgangssprachlich formuliert, ergibt sich aber jedenfalls ohne einen Verdacht irgendwelcher logischer Unklarheiten, wenn man die mit der Inverterlogik gefundene zeitliche Dimension der Logik sieht, die natürlich für jede Logik gilt, aber im Beispiel mit der Schlange S gerne übersehen wurde, obgleich sie bildhaft gegeben ist ( Ein Biss beginnt irgendwann...).
    Die Inverterlogik erlaubt Schlussfolgerungen (Bewirkungen) auch nur, wenn Werte an den Eingängen von verknüpften Invertern liegen. So wird sofort klar, dass in der Aufgabenstellung Argumente fehlen.
    Völlig analog ist das von Russell erzählte Paradoxon, das einen Barbier vorstellt, der alle rasiert, die sich nicht selbst rasieren und die Frage, ob sich der Barbier rasiert - entweder hat er sich schon selbst rasiert oder er hat es noch zu tun...

    "RUSSELL'SCHE ANTINOMIE":
    Die bekannte, mathematisch formulierte Russell'sche Antinomie, die einst die Welt der Mathematiker erschütterte, sieht so aus:
    Gegeben ist eine Menge M, deren Elemente alle Mengen sein sollen, die sich nicht selbst als Element enthalten. Dazu wird die Frage gestellt, ob die Menge M nun sich selbst enthält oder nicht.
    Bertrand Russell hat seine berühmt gewordene Antinomie in der Cantor'schen Mengendefinition geortet, indem er das Problem so betrachtete:
    Wenn die Menge M sich selbst enthält, dann kann sie keines ihrer Elemente sein, die nur Mengen sein sollen, die sich nicht selbst enthalten. M kann sich also nicht enthalten, wenn es sich enthalten soll.
    Wenn die Menge M sich nicht selbst enthält, dann muss sie allerdings Element von sich selbst sein, weil alle solche Mengen Element sein sollen. M muss sich also selbst enthalten, wenn es sich nicht enthält.
    Ich habe unter 2.1.3. in der Inverterlogik dieses Problem unter dem Hinblick abgehandelt, wie Mengen mit Invertern dargestellt werden müssen, und ob Mengen sich selbst enthalten können und wie. Weil in Verknüpfungen von Invertern nur Werte H,L vorkommen können, sind unterscheidbare Elemente nur in Gestalt von mehrstelligen Werten H,L zu haben, die als Adressen UNDiert die Menge ergeben. Schon die Definition einer Menge ist also eine Verknüpfung und nicht schon mit der Definition von Elementen als Adressen getan.
    Insofern ist der Mengenbegriff Cantors also zu ergänzen.
    Die weitere Betrachtung ergibt, dass die Menge sich selbst als Element nur hinzu gefügt werden kann mit einer Verknüpfung des Resultates, das die Menge bedeutet (nach UNDierung der Elemente), mit einem weiteren Eingang in der UNDierung der Elemente. Das ist eine 'Rückleitung', wie ich sie unter 2.2.2. in der Inverterlogik abhandle. Im diesem Falle ist sie vollständig kürzbar, weil sie das Resultat der UNDierung in keiner Weise ändern kann. Das zusätzliche Element, das die Menge selbst (und unendlich viele weitere Mengen!) ist, ist tatsächlich vollständig irrelevant. Eine Menge, die sich nicht selbst enthält, ist nämlich von der Menge, die sich selbst enthält, garnicht zu unterscheiden. Ausserdem zeigt sich ebenfalls die zeitliche Dimension, die mit dem Begriff der Menge nach Cantor nicht erfasst ist - die Menge kann sich erst dann selbst enthalten, wenn sie ohne dieses Element bereits gegeben ist, das infolgedessen vollständig abhängig von dieser Gegebenheit ist und sie auch nicht ändern darf. Diese Betrachtung zeigt zwar auch, dass Cantors Mengenbegriff nicht ganz fertig ist, dass aber auch die Russell'sche Antinomie keine ist. Die erscheint nur, weil die irrelevante Idee einer Menge, die sich selbst enthält, abgehandelt wird. Und natürlich ist ebenfalls irrelevant, was man mit irrelevanten Dingen machen kann. Weil Russell das leider nicht so sehen konnte, hatte er viel tun, um eine Theorie der "Typen" zu entwickeln, die seine Antinomie vermeiden sollte. An eine zeitliche Dimension dachte er dabei nicht, fand aber, dass das Antinom durch den Bezug der Menge auf sich selbst zustande kam.
    Wie sich das in der Inverterlogik darstellt zeige ich hier mit Bezug zu 2.1.3.:

    [Bild a] M enthält sich selbst als Element: UND: x.Element=H---->>O o--->>O---o- =M=H (UNDierung der Elemente=Adressen) | | o---------o =Rückleitung

    Die Inverterlogik macht deutlich, dass ein solcher Bezug nicht ohne zeitliche Dimension zu denken ist, gegeben durch die 'Rückleitung'. Interessanter ist allerdings, dass hier zwei Aussagen, die sich in üblicher Betrachtung als ein Widerspruch darstellen (...enthält sich selbst/...enthält sich NICHT selbst) zwar beide möglich und deshalb nicht falsch sind, aber in Bezug zum Resultat nicht unterscheidbar sind, so dass man den Mehraufwand an Verknüpfung als Kriterium benutzen kann, um die eine Aussage als irrelevant abzutun. Diese Form der Beweisführung und das Resultat einer 'Irrelevanz' ist nicht das, was in der gewohnten Mathematik zu haben ist. Es kann aber keinen Zweifel geben, dass der Begriff der 'Irrelevanz' neben 'WAHR' und 'FALSCH' als Lösung einer Evidenzprüfung zu betrachten ist. Irrelevante Verknüpfungen können nämlich auch teuer sein, wenn die Logik zur Transistorlogik gemacht werden soll. Sie können Transistorlogik sogar untauglich machen, wenn die wie Russel über Antinomien stolpern kann (durchaus möglich in Programmen).
    In diesem Zusammenhang kann auch die übliche Form der Negation mit dem Boole'schen "Negationsoperator" noch diskutiert werden. Wird er einer Invertierung äquivalent gesehen, kann die vorgestellte Rückleitung zur Oszillation führen. Wenn man die Menge M negiert ( also das übliche NICHT M, ausgedrückt mit einem Negationsstrich über M), indem man einen weiteren Inverter in die Rückleitung legt, dann sind 3 Inverter in der Rückleitung, von denen 2 nach der ersten Kürzungsregel der Inverterlogik entfallen können. Der übrige nicht kürzbare Inverter ist dann mit seinem eigenen Eingang verknüpft und oszilliert deshalb. Die übliche Interpretation, dass NICHT M das Gegenteil von M sei, führt dann also zum "Beweis", dass keine Menge M vorkommen darf, die sich nicht selbst enthält! Andernfalls wäre mit dem Kriterium der Oszillation ein "Widerspruch" (="Antinomie") gegeben. Ich habe auch aus diesem Grunde den Begriff der Negation nicht mit der Invertierung identifiziert, sondern auf die Bedeutung bezogen (die vom Wert H am Ausgang einer Adresse abgeleitet werden kann). Der andere Wert =L ist dann nicht als 'NICHT' zu verwerten, sondern als 'Bedeutungslosigkeit', die im weiteren keinerlei Bedeutung haben darf.
    Weil die Negation hier schwierig zu durchschauen ist, zeige ich die Verknüpfungen, die hier von Interesse sind, in der Notation der Inverterlogik (mit Bezug zu 2.1.3. und obigem [Bild a]):

    [Bild b] M enthält sich NICHT selbst als Element: UND: x.Element=H---->>O NICHT M=L: o->->>O---o- =M=H | | o---------o [Bild c] NICHT M enthält sich selbst als Element: x.Element=H---->>O----- =M=H M=L: o--->>O->-o- =NICHT M=L | | o---------o

    Denkbar klar ist so gezeigt, dass der Negationsoperator bei Beweisführungen "Beweise" erzeugen kann, die keine sind. Anders ausgedrückt:
    Der Inverter ist nicht der bekannte Negationsoperator und seine Werte H,L sind nicht den Boole'schen Werten WAHR und FALSCH äquivalent. Die Inverterlogik ist also keine Boole'sche Logik, obgleich diese ohne Abstriche mit Inverterverknüpfungen ausgedrückt werden kann. Die Inverterlogik erlaubt deshalb festzustellen, dass die Interpretation der Werte WAHR und FALSCH in Boole'schen Verknüpfungen als Beweis für Wahrheit nicht a priori möglich und dass also die Wahrheit nicht irgendwie operierbar, sondern a posteriori zuzuordnen ist - durch Belieben eines Betrachters bzw. nachgeschaltete Bedeutungsgebung, die ausserdem Regeln zu folgen hat, die nicht Teil der Boole'schen Algebra sind, aber aus dem Inverter-Axiom abgeleitet werden können.

    DAS KLASSISCHE PARADOXON:
    Ein Kreter namens Epimenides behauptet, dass alle Kreter lügen.
    Er selbst müsste dann auch ein Lügner sein und seine Behauptung wäre damit falsch. Wenn Kreter aber nicht lügen, dann sagt dieser Kreter die Wahrheit...
    Damit das auch wirklich paradox ist, muss allerdings "lügen" vollständig mit "nie wahr reden" identifiziert werden, denn Lügner reden auch durchaus mal wahr - wenn sie Zucker wollen, werden sie nicht Salz verlangen...
    Weil man sich wünschen kann, auf einen Schluss zu kommen, der dann nicht zu einem Widerspruch führt, sei die Abfolge der Schlüsse betrachtet.
    Der Ausgangspunkt sind die Argumente:
    "kein Kreter sagt die Wahrheit" und "dies sagt ein Kreter" und "dieser Kreter sagt die Wahrheit".
    Das letzte Argument ist offenbar implizit gegeben, weil andernfalls die Aussage a priori nicht wahr ist und der Betrachtung nicht wert.
    Der erste Schluss verknüpft die Argumente:
    "kein Kreter sagt die Wahrheit" und "dieser Kreter sagt die Wahrheit".
    Eine der beiden Feststellungen muss falsch sein. Ob Kreter wahr reden oder nicht, ist ohne weitere Argumente nicht zu entscheiden, die hier nicht gegeben sind. Paradox wird die Situation, weil traditionell nicht nur dieser Schluss getan wird, sondern mehr als das, um den unbefriedigenden Widerspruch aufzulösen. Dieser kann allerdings auch als brauchbares Argument taugen, von Epimenides und seiner Aussage keinen Gebrauch zu machen, weitere Schlüsse also zu unterlassen...
    Es wird also normalerweise mindestens noch ein zweiter Schluss getan, bei dem die Argumente negiert versucht werden. Traditionell wird mit einer Negation der Aussage von Epimenides umgegangen, die nur eine von zwei möglichen ist - und die falsche:
    "alle Kreter lügen nicht".
    Die richtige Variante ist:
    "nicht alle Kreter lügen"
    Diese Variante erlaubt den einen Lügner Epimenides, der alle Kreter zu Lügnern erklärt, und der sich somit auch der Erfahrung entsprechend verhält, die man mit Lügnern machen kann.
    Sowohl die implizite Unterstellung, dass Epimenides wahr rede, wie seine Behauptung, dass alle Kreter lügen, ist also zu falsifizieren und dann ist nichts in dem Sinne paradox, dass der Widerspruch nicht auflösbar sei, wenn man die Argumente negiert.
    Ich habe auf dem Lösungsweg umgangssprachlich genau das getan, was in der Inverterlogik geboten ist. Niemals kommen dort Inverter ohne Werte (Argumente) vor. Ist ein Argument nicht gegeben (Epimenides lügt nicht), dann kann das Gegenteil auch versucht werden, so es das gibt. Und wie gezeigt, gibt es dann auch statt einem Paradoxon eine Lösung. Und ich habe hier auch gezeigt, dass Argumente durchaus in mehr als ein "Gegenteil" mittels Negation verkehrt werden können, dass also Negationen in der gebräuchlichen mathematischen Form sehr genau zu bedenken sind. Deshalb habe ich in der Inverterlogik (unter 2.1.2.) den Begriff der Negation so gemacht, dass die hier gezeigten Irritationen garnicht auftreten können. Üblicherweise wird nämlich beim Negieren in der Logik mit den Bool'schen Werten "Wahr" und "Falsch" umgegangen, die einstellig sind. Sie werden aber sehr gerne auf Aussagen oder Gegebenheiten angewendet, die keineswegs einstellig sind. Solche Argumente entsprechen in der Inverterlogik Adressen, die einen bestimmten vielstelligen Eingangswert zu einem einstelligen Wert H resultieren. Das mögliche gegenteilige Resultat L erscheint dagegen bei jedem anderen vielstelligen Wert, der deshalb kein bestimmter mehr ist. Davon habe ich den Begriff der Bedeutung abgeleitet, die stets einem Resultat =H folgt (und nicht vorausgeht!) und offenbar Unsinn ist, wenn sie vom Wert L abgeleitet wird, der den Rest der Welt bedeuten kann. Negationen sind üblicherweise die Invertierung solcher Bedeutungen, womit dann nicht eine andere Bedeutung (ein "Gegenteil") argumentiert werden kann, sondern Bedeutungslosigkeit resultiert werden muss.
    Dieses Beispiel mit einer Aussage von Epimenides könnte in dreierlei Verknüpfungen von Invertern dargestellt werden:
    1) Der Widerspruch zwischen "kein Kreter sagt die Wahrheit" und "dieser Kreter sagt die Wahrheit" wird resultiert mit Bedeutungslosigkeit.
    2) Parallel liegende Verknüpfungen, die alle Möglichkeiten der Invertierung der Argumente verknüpfen und somit ein vielstelliges Argument resultieren für eine weitere Verknüpfung, die resultiert, ob überhaupt irgendeine Kombination der Argumente und ihrer Invertierungen Bedeutung haben kann.
    3) Rückleitungen, die die Invertierung der Argumente schalten, also ebenfalls, aber sequentiell die Möglichkeiten wie unter 2) durchspielen.
    Die dritte Möglichkeit wählt normalerweise ein Mensch auf dem Weg zu einer Lösung und seit mehr als 2000 Jahren offenbar ohne die Möglichkeit der Negationen, die ich hier vorstelle. Gäbe es diese Möglichkeit tatsächlich nicht, dann würde im Falle 3) wegen der Rückleitung eine Oszillation einsetzen, die dem entspricht, was man als paradoxe Situation begreifen kann. In der Inverterlogik erweist sich diese Oszillation aber keineswegs als Rätsel, sondern ergibt sich ganz selbstverständlich, wenn im Kreis der Rückleitung eine Invertierung liegt (ein einzelner Inverter oszilliert ja, wenn sein Ausgang mit seinem Eingang verknüpft wird). Es ist also entweder falsch verknüpft worden, falls ein Betrachter kein Paradoxon haben will, oder er will die Oszillation, um z.B. Takte zu geben. Weil diese Takte mit den Mitteln der Inverterlogik auch zu zählen sind, kann nicht nur im Fall 2), sondern auch im Fall 3) ein unauflösbarer Widerspruch automatisch erkannt werden. Insofern kann hier mit Inverterlogik bewahrheitet werden.

    CURRY'S PARADOXON
    Haskell Curry stellte 1942 ein Paradoxon mit dem Satz vor:
    "Wenn dieser Satz wahr ist, dann gibt es den Weihnachtsmann."
    Üblicherweise kann dieser Satz logisch nicht als unwahr verworfen werden und beweist deshalb üblicherweise den Weihnachtsmann.
    Da auf diese Weise jeder Blödsinn als wahr bewiesen werden kann, ist die Form: "Wenn ... wahr, dann wahr..." genauer zu betrachten und vorab zu bemerken, das Russell's Klassentheorie den Beweis nicht erlaubt, weil eine 'Selbstbezüglichkeit' vorliegt, die auch Russell's Antinom kennzeichnet.
    Tatsächlich liegt eine Bedeutungsgebung vor, die in der Inverterlogik genau so dargestellt wird. Um den Hinblick gleich klar zu machen, kann man den Satz umformen:
    "Vielleicht gibt es den Weihnachtsmann."
    ...womit zu sehen ist, dass der Satz nichts über den Satz selbst sagt, sondern nur die dann-Konsequenz vorstellt. Ob die wenn-Bedingung wahr ist, ist tatsächlich nicht argumentiert. Sie wäre nur durch die Bewahrheitung der dann-Konsequenz argumentiert. Der Satz enthält nämlich eine Vertauschung von Ursache und Wirkung und müsste eigentlich heissen:
    "Wenn es den Weihnachtsmann gibt, dann ist dieser Satz wahr."
    So ist klar zu sehen, dass der Satz nur die Möglichkeit des Weihnachtsmannes vorstellt und eine Aussage über Wahrheit oder Falschheit bedeutungslos ist. Es liegt deshalb auch kein Paradoxon vor, sondern so oder so ein Mangel an Argumenten.
    Bei der Entwicklung des Begriffes 'Bedeutung' in der Inverterlogik habe ich klar gemacht, dass Bedeutungsgebung prinzipiell beliebig erfolgen kann und niemals herkömmlich mit den logischen "Werten" WAHR und FALSCH zu einer Wahrheitsfindung ausgebaut werden kann. Stets folgt die Bedeutung Resultaten. Und auch die Wahrheit ist eine Bedeutung. Der Satz wird also auf die Form reduziert:
    "Wenn..., dann..."
    ...und damit auf eine "wahre", nämlich evidente Verknüpfung.
    Das darf man auch garnicht anders machen, also durch 'Klassifizierung' Falschheit ausschliessen wollen, weil Verknüpfungen, die Falschheit ausdrücken, immer genau so "wahre" Verknüpfungen wie die der Wahrheit sein müssen, um beides gegenüber stellen zu können. Wahrheit kann nur im Widerspruch zur Falschheit existieren und muss deshalb logisch auch genauso behandelbar sein. Kein Computer könnte funktionieren, wenn Möglichkeiten der Bedeutung nicht prinzipiell beliebig bleiben. Nur dann können bestimmte Bedeutungen logisch selektiert werden.
    Die Inverterlogik lässt also den Satz selbst immer als richtig gelten, schliesst aber im Gegensatz zu jener Logik, die mit den "Werten" WAHR und FALSCH umgeht, aus, dass damit etwas über die Wahrheit gesagt wird. Die ist nur zu finden mittels einer Verknüpfung weiterer Argumente mit der Behauptung, dass es den Weihnachtsmann gäbe - ganz so, wie die ganz normale Vernunft gebietet. Die akzeptiert den Weihnachtsmann auch nicht, weil es den Weihnachtsmann gibt, sondern weil man ihn gerne hätte und deshalb nur vielleicht auch hat.
    Will man den Weihnachtsmann als existent beweisen, hat man jedenfalls jede Menge von Argumenten zu finden. Nur eine vollständige Liste aller Argumente kann logisch zu einem Beweis der Existenz UNDiert werden. Ob die Argumente wahr sind oder falsch, kann nur mit den Sinnen eines Menschen festgestellt werden, der schliesslich der Bedeutungsgeber ist und überzeugt wird.
    Die Inverterlogik zeigt, dass Wahrheit nicht allein logisch zu finden ist. Sie ist nur durch Nehmen von Resultaten (a posteriori) festzustellen und nicht allein durch Geben von Argumenten (a priori) zu finden. Nur so zeigt sich auch, dass nicht jede logische Verknüpfung richtig ist bei gegebenem Zweck und dass ein Resultat nur dann sagen kann "Ich bin kein Resultat!" oder "Ich bin wahr!", wenn Bedeutungsgebung solchen "Sinn" erzeugt. Curry's "Paradoxon" führt also letztlich die Absicht ad absurdum, im Stile Booles nur mit Werten bestimmter Bedeutung Wahrheit mechanisch erzeugen zu wollen.

    2. ZAHLENTHEORIE MIT FOLGEN

    PEANOS ZAHLEN:
    Die moderne Arithmetik, die ich im weiteren auch als die "übliche" bezeichnen werde, baut auf einer Zahlentheorie auf, die von den natürlichen Zahlen ausgeht und ihrer Definition durch insgesamt 5 Axiome, eingeführt von Peano. Deshalb wird auch von einer 'Peano-Arithmetik' (='PA') geredet. Weil ich in der Inverterlogik zwar auch Zahlen und Operationen mit Zahlen hergeleitet habe, mich aber mit der Herleitung und nicht der kritischen Gegenüberstellung zur üblichen Arithmetik befasst habe, will ich dies hier ergänzend tun.
    Peano leitet tatsächlich nicht die natürlichen Zahlen selbst her, sondern gibt mit seinen Axiomen nur an, wie man die nächste findet, wenn man denn eine schon hat. Die natürlichen Zahlen selbst werden nicht begründet, sondern sind nach Kronecker vom "lieben Gott" gemacht. Zum Begriff der natürlichen Zahlen gehören neben dem Glauben, dass es sie überhaupt gibt, auch ein Irgendwo, wo sie vorkommen und die Vorstellung, dass dies unendlich ausgedehnt sei. Somit sind also neben den Axiomen des Peano noch weitere 3 Axiome nötig, die die Existenz der natürlichen Zahlen, ihre Heimat und ihre Häufigkeit betreffen. Weil die 0 so nicht begründet wird, ist für diese Zahl noch ein weiteres Axiom fällig. Der katholische Italiener Peano hatte das katholische Verbot der 0 im Mittelalter wohl nicht ignorieren können und fand sie deshalb nicht natürlich genug...
    In der Inverterlogik (unter 1.2.2.) wird das Irgendwo zur Verknüpfung von Invertern und die Zahlen sind eine Interpretation der Werte H,L des Inverters in einer bestimmten Zahl von Stellen, die Ausgänge von verschiedenen Invertern sind. Das Irgendwo kann dabei nicht eine beliebige Verknüpfung sein, sondern muss eine sein, die in einer bestimmten Zahl von Stellen jede Möglichkeit der Werteverteilung von H oder L zeigt. Diese kombinierten und verschiedenen Werte können dann noch in eine Reihe gestellt werden, um ihnen eine Ordnung zu geben, die nicht mehr erfordert als die Vorstellung, dass jeder der kombinierten Werte ausser dem kleinsten und dem grössten zwischen einem grösseren und einem kleineren steht. So werden aus Werten von Adressen, die ich unter 1.2.1. herleite, Zahlen, die auch gleich ein Zahlensystem bilden, in dem ein einzelner Inverter den Unterschied zwischen einer und allen anderen Zahlen macht. Der Unterschied einer Zahl zu den benachbarten ist also nicht eine 1, sondern ein Inverter in irgendeiner Stelle - das gilt sogar für den Unterschied zwischen grösster und kleinster Zahl und begründet somit bestens die 0. Und es zeigt sich dabei sofort, dass es eine beliebig grosse Zahl von Möglichkeiten gibt, die Werte von Adressen in eine Reihe zu stellen, also Zahlensysteme zu bilden. Will man diese Zahlen als 'natürliche' ansehen, hat man jedenfalls sehr willkürlich ein Zahlensystem heraus zu heben. Ich habe mich in der Inverterlogik bei der Herleitung von Operatoren für den Umgang mit Zahlen auf das gut bekannte Dualziffernsystem beschränkt, aber nicht, weil es natürlicher als alle anderen Zahlensysteme wäre, wie Leibniz meinte, sondern vertraut genug ist, die Herleitung leichter verständlich zu machen.
    Jedenfalls sind diese Zahlen nicht vom 'lieben Gott' gemacht, und ihre Heimat ist auch nicht ein Irgendwo in Gebeten, sondern kann z.B. in einer Verschaltung von Transistoren nicht nur existieren, sondern auch operiert werden, ob ein Mensch das glauben oder auch nur sehen will oder nicht. Obgleich diese Zahlen in der Praxis der Computertechnik längst heimisch und vertraut geworden sind, werden sie in der Inverterlogik doch erstmals genau genug betrachtet, um die Konsequenzen vorstellen zu können, die vieles fraglich erscheinen lassen, was in der üblichen Zahlentheorie und Arithmetik keineswegs fragwürdig erscheint.
    Zunächst ist in der Inverterlogik kein Platz für jene Unendlichkeit, die schon Gauss nicht geheuer vorkam. Dort existieren Zahlen nur als Werte von Invertern und können deshalb nicht ohne verknüpfte Inverter existieren. Auch das ist also nicht Gottes Werk, sondern in das Belieben eines Betrachters oder Konstrukteurs von elektronischen Schaltungen gestellt.
    Ich habe unter 1.2.2. Zahlen hergeleitet ohne einer Quasi-Addition zu bedürfen, wie sie Peano in seinen 5 Axiomen definiert. Es genügt allein das, was mit dem Inverter-Axiom gegeben ist und ein zielstrebiges Belieben bei der Verknüpfung, die alle Möglichkeiten einer Verteilung der Werte H,L zeigen soll. Dabei ergibt sich auch gleich sehr sinnfällig eine Stellenbewertung als Kennzeichen von Zahlensystemen, während Peano die Bildung von Zahlensystemen den Praktikern überliess und infolgedessen auch keine Mühe mit einer Übertragsbildung hatte, die sich in der Inverterlogik als fundamentales Prinzip für Operationen von Zahlen erweist.
    Während also Peano nicht nur natürliche Zahlen damit begründen musste, dass es sie schon ganz unbegründet gibt, kann er sie auch nicht ohne einen Operator begründen, der auch schon da sein muss, bevor das da ist, was er operieren soll, weil dieser Operator seine eigenen Argumente erst erschafft. Das Resultat muss den Argumenten vorausgehen.
    Ausgehend vom Inverter-Axiom ist solche Akrobatik nicht nötig. Nachdem die Zahlen als Gegenstand bereits vorhanden sind, leite ich unter 2.1.3.2.1. Operatoren her, undzwar ebenfalls mit nicht mehr als der Verknüpfung von Invertern. Der erste Schritt ist die Herleitung eines Inkrementierers (unter 2.1.3.2.1.1.), der als Teil eines Zählers (unter 2.2.2.1.) das macht, was Peanos Quasi-Addition macht, allerdings gleich inclusive Zahlensystem und der 0, die auch schon unter 1.2.2. hergeleitet wurde. Schon dabei zeigt sich, dass beim Inkrementieren die kleinste Zahl, die 0, auf die grösste folgt. Die Folge dieser Zahlen ist also bedingt durch die Endlichkeit nicht auf einer Geraden, sondern einem Kreis anzuordnen. Das ist aber nur am Rande interessant, während weitaus wichtiger ist, dass ein Inkrementierer nicht ohne eine Übertragsbildung von kleineren zu grösseren Zahlen kommt, und dass er, um regelmässig aus gleichen Verknüpfungen für jede Stelle gestaltet sein zu können, einen Übertrag auch aus der höchsten Stelle bewirken kann. Eine nächste Stelle kann er nicht erzeugen im Gegensatz zu Peano's Quasi-Addierer, Resultate folgen den Argumenten. Dieser Übertrag bedingt nicht die nächst grössere Zahl wie bei üblicher Rechnung auf Papier. Er bedingt auch nicht die tatsächlich nächste Zahl, die die kleinste ist, sondern erscheint nur gleichzeitig mit ihr und ist deshalb ein logisch verwertbares Argument für den Übertritt in einen anderen Bereich der Zahlen. Auf diese einfache Weise ergibt sich nicht nur eine logisch verwertbare obere Schranke, sondern weit mehr:
    Da eine Inkrementierung für alle Zahlen in einer gegebenen Zahl von Stellen verknüpft mit weiteren Invertern in Serie mit Ein- oder Ausgängen zur Dekrementierung wird, kann nicht nur festgestellt werden, dass es negative Zahlen gibt, sondern dass diese sich von den positiven nicht etwa prinzipiell unterscheiden, sondern nur durch etwas, was als zusätzliche Bedeutungsgebung für Werte H,L, die Zahlen sein sollen, zum logischen Argument wird, bedingt durch einen Übertrag aus der höchsten Stelle. Es ist also letztlich die Endlichkeit der Zahlen und nicht irgendeine zu definierende Operation, die die negativen Zahlen begründet. Die sind also die gleichen wie die positiven, nur zu unterscheiden durch ein 'Zahlattribut', das als Bedeutungsgebung des Übertrags aus der höchsten Stelle abzuleiten ist.
    In der PA sind zwar Zahlattribute wie ein Minuszeichen auch geläufig. Die Inverterlogik zeigt aber das allgemeine Prinzip, das in der PA im Dunst der Unendlichkeit verloren geht. Wegen der Endlichkeit gibt es für jeden Operator (und das sind beliebig viele!) einen möglichen Übertrag aus der höchsten Stelle, auch weil anders als in der PA diese Operatoren nicht Inverter für eine nächste Stelle erzeugen können. Zahlen sind ja nur auf dem Substrat verknüpfter Inverter existent. Nur wer das erzeugt, kann nächst grössere Zahlen haben.
    Weil also Zahlen nicht ohne Zahlattribute (mindestens implizit) vorkommen können, und weil diese durch Erweiterung des Begriffes vom Übertrag in beliebig vielen Varianten verwendet werden können, können auch beliebig viele Paarbildungen von Zahlenmengen vorgenommen werden. Völlig unabhängig vom Operator, aber natürlich abhängig vom Zahlattribut können Zahlen irgendeine Bedeutung als negative, imaginäre oder andere bekommen. Und es ist kein Beweis nötig, dass es diese oder jene Zahlen auch gibt, weil die Zahlen immer in der gleichen Form erscheinen, also die gleichen innerhalb eines Zahlensystems sind.
    Spielereien mit den Zahlattributen können aber erst bei Verwendung von Operatoren neuen Sinn machen, die wie Formeln, die z.B.algebraische Gleichungen sind, resultieren. Die wären ebenso wie +,-, und andere 'logische Apparate', die verknüpft mit einer nicht immer notwendigen Bedeutungsgebung für das Zahlattribut zu 'Zustandsmaschinen' werden.
    Eine besondere Art von Zahlattributen sind solche, die das Setzen eines Kommas bedingen. In der Inverterlogik wird ein solches Zahlattribut ohne Betrachtung des Wesens von Potenzen hergeleitet. Es genügt, das Schieben einer Abfolge von Werten H,L in der Breite einer Zahl zu betrachten, womit ein Komma geschoben wird, das in der Inverterlogik ebensowenig wie ein Minus zu haben ist. Das Zahlattribut enthält also eine Zahl, die Schiebetakte in der Breite einer Zahl betrifft. Das so zu machen ist auch garnicht so neu, sondern Praxis bei der Fliesskommarechnung, die ich im Zusammenhang mit meinem Assemblern ASMn und ASMat beschrieben habe. Mit solchen Zahlattributen lassen sich immer Resultate mit genügend Stellen (als "Genauigkeit" bekannt) erzeugen, die irgendwo ein Komma enthalten.
    Da das Komma Teil des Zahlattributs ist, sind die Zahlen selbst mit einem Inkrementierer immer vollständig erzeugbar, sind also auch hinter dem Komma immer abzählbar und ohne Zwischenräume.
    Allerdings sind nur Inkrementierer und Dekrementierer Operatoren, die mit allen möglichen Argumenten vollständig alle Möglichkeiten in gegebener Stellenzahl resultieren. Ich habe unter 2.1.3.2.6. in der Inverterlogik mögliche Resultatmengen betrachtet und festgestellt, dass alle(!) anderen Operatoren unvollständige Zahlenmengen resultieren, sofern die 1 als Argument ausgeschlossen wird, die auch implizit das zweite Argument im Inkrementierer ist. Solche unvollständigen Zahlenmengen erscheinen unabhängig von der Stellenzahl für Resultate und sind bedingt durch die Übertragsbildung, ohne die kein (arithmetischer) Operator einer ist ("logische Operatoren" nenne ich in der Inverterlogik nicht 'Operatoren', weil alle Verknüpfungen von Invertern unter diesen Begriff fallen müssten. Deshalb mache ich den Begriff 'logisch' auch so, dass er alles umfasst, was mit Invertern zu machen ist.).
    Unter 2.1.3.2.6. habe ich auch den Begriff der 'komplementären' Zahlen gemacht, die wie der Begriff der transzendenten Zahlen nicht erscheinende Resultate (in jenem Fall algebraischer Gleichungen) umfasst, aber bezogen ist auf einen jeweils konkreten Operator. Dieser Begriff ist brauchbarer, weil in der Inverterlogik beliebig viele Operatoren möglich sind. Die komplementären Zahlen bei dem einen Operator können also bei einem anderen sehr wohl Resultate statt komplementäre Zahlen sein.
    Es lässt sich so aber unbezweifelbar feststellen, dass die Stellen, in denen Resultate erscheinen, stets eine vollständige Zahlenmenge erlauben, die aus den beiden unvollständigen Zahlenmengen der Resultate und komplementären Zahlen zusammen gesetzt ist, die wie gesagt nur zu haben sind, wenn die 1 als Argument ausgeschlossen wird. Damit ist ein oft benutzter Begriff transzendenter Zahlen ad absurdum, der unterstellt, dass irgendwelche Zahlen überhaupt nicht kalkulierbar wären.
    Über vollständige Zahlenmengen lässt sich ausserdem sagen, dass sie immer in gerader Anzahl vorkommen, weil Inverter am Ausgang 2 Werte H oder L resultieren können, während der grösste Wert immer als ungerade Zahl zu interpretieren ist, weil die kleinste Zahl die 0 und nicht die 1 ist. Die 0 ist nicht nur deshalb eine gerade Zahl, sondern auch, weil sie die Zahl ist, die der grössten (ungeraden) Zahl folgt - dann mit Übertrag aus der höchsten Stelle. Es gibt also nur gerade Nullen!
    Allerdings gibt es 'unvollständige' Resultate, die in der gleichen Anzahl von Stellen wie für Argumente, nicht richtig resultiert werden können. Diese betrachte ich ebenfalls unter 2.1.3.2.6. und stelle dabei fest, dass es immer eine endliche und berechenbare Menge von Stellen gibt, die bei gegebener Anzahl von Stellen für Argumente für vollständige Resultate ausreichen. Natürlich gilt dies nicht bei Operatoren, die prinzipiell unendliche Iterationen machen sollen, z.b. wenn Reste erscheinen können. Unendliche irrationale Zahlen sind also ebenfalls in einer endlichen Inverterlogik ausgeschlossen. Bei Divisionen müssen Reste stets als Reste Teil der Resultate sein! Eine Bedeutungsgebung für solche Reste kann dann ein Kriterium geben, um periodische und nicht periodische Brüche, die unendlich sein können, zu unterscheiden.
    Damit ist also auch für diesen Fall das Zahlattribut und nicht die Zahl selbst der Ausgangspunkt, um verschiedene Mengen von Zahlen zu unterscheiden, die immer ebenso abzählbar sind wie die Anzahlen von Schiebetakten im Zahlattribut, die Stellenverschiebungen ausdrücken.
    In diesem Zusammenhang ist noch interessant, welchen Einfluss das verwendete Zahlensystem auf Resultate hat. Das Resultat ein und derselben Division fällt nämlich verschieden aus und abhängig davon, ob mit Dual-, Dezimal oder einem anderen Ziffernsystem gerechnet wird. Der Bruch 1/5 ist dezimal eine glatte 0,2 und nicht eine unendlich periodische Zahl wie sie dual erscheint. Ich habe deshalb in der Inverterlogik auch bemerkt, dass stets das verwendete Zahlensystem in Betracht zu ziehen ist, wenn Resultate irgendeine Bedeutung erhalten. Denn prinzipiell jede Zahl kann zur Basis eines Ziffernsystems gemacht werden, in dem jeweils verschiedene Brüche zu 'irrationalen Zahlen' werden! Man muss jedenfalls den Schluss ziehen, dass hinter dem Komma eine prinzipielle Unschärfe gegeben ist, die weder durch die Idee der Unendlichkeit, noch durch die Bevorzugung eines Zahlensystems aufzuheben ist. Dies ist auch ein mächtiges Argument dafür, nur mit endlichen Wertebereichen umzugehen und Schlüsse als irrelevant zu verwerfen, die in irgendeiner Weise Saft aus der Unendlichkeit ziehen. Irgendwelche Varianten des Dualziffernsystem erscheinen allerdings wegen der zwei Werte H,L des Inverters am praktischsten.
    Der Vollständigkeit halber kann noch bemerkt werden, dass bei diesen Zahlen die Werte, die Primzahlen darstellen, auch hinter dem Komma zu finden sind - dezimal ausgedrückt: 0,13 ist nur durch 0,13 und 0,01 ohne Rest teilbar.
    Natürlich stellt sich die Frage, ob die Zahlen in der Inverterlogik wirklich so anders sind als Peano's Zahlen, dass die gefundenen Eigenarten und Schlüsse nicht in der Peano-Arithmetik gelten. Offenbar ist die in der PA vorhandene (axiomatisch geforderte) Unendlichkeit ein entscheidender Unterschied. In der Praxis des Rechnens macht die aber garnichts, während jede in der PA mögliche Rechnung auch in der Inverterlogik möglich und im Effekt völlig identisch ist. Und weil mit Inverterlogik auch die Iterationsmaschine (unter 2.2.3.) hergeleitet wird, die als Variante die 'von Neumann Struktur' enthält, kann man sagen, dass Milliarden von Menschen tagtäglich Hab und Gut und Leib und Leben mit Rechnungen in Transistorlogik riskieren, die niemals anders sein können als mit Inverterlogik ausdrückbar. Damit ist der Beweis der Evidenz der endlichen Zahlen und Operatoren in der Inverterlogik jedenfalls eher gegeben ist als die Evidenz der PA, die tatsächlich in Computern nicht mehr das ist, was sie sein soll - also unendlich, von Gott und Peano gegeben usw...
    Es gibt aber einen Beweis jenseits von Risiko und Glauben, dass die mit Inverterlogik gefundenen Feststellungen ohne Abstriche auch für die PA gelten. Sehr einfach ist nämlich zu sehen, dass bei dem Belieben, das in der Inverterlogik erlaubt ist, zwar nicht die Unendlichkeit zu erreichen ist, aber ausreichend überzeugend gefunden werden kann, wie der Rand des Endlichen aussieht und dass sich an diesem Rand überhaupt nichts ändert, wenn man ihn beliebig weit in Richtung Unendlichkeit hinaus schiebt. Die axiomatisch begründete Unendlichkeit ist also vor allem ein schon von Gauss verachteter Trick, diesen Rand unsichtbar zu machen und die hübsche Täuschung zu haben, dass dort jede Iteration glatt gebügelt und ohne Fransen erscheint. Insbesondere gibt es keine Unendlichkeit, in der etwas irgendwie endet, also z.B. als Null. Wie ich unter 2.1.3.2.6. feststelle, passen die Resultate nach einer arithmetischen Operation nur im Ausnahmefall in die gleiche Anzahl von Stellen wie die Operanden. Das wird nicht anders, indem man Operatoren erschafft, die nötigen Stellen zu erschaffen. Da Mathematikern vertraut ist, dass auch das Papier nicht reichen kann, wenn man nicht willkürlich abbricht, ist unbezweifelbar, dass alle Zahlen so oder so endlich sind und Operatoren, die Stellen erschaffen, eine absurde Vorstellung sind, die nur möglich ist, wenn man die Notwendigkeit von zählbaren Stellen mit Axiom abschafft.

    3. MENGENLEHRE MIT FOLGEN

    CANTOR'S DIAGONALSCHNITT:
    Cantor (d.Schöpfer der Mengenlehre), hat eine Methode vorgestellt, aus einer gegebenen Liste von rationalen Zahlen (die er für reelle hielt) eine neue Zahl zu erzeugen, die niemals in einer solchen Liste schon vorhanden sein kann. Weil diese Methode ein beliebtes Mittel zum Beweis einer Unvollständigkeit von Listen wurde, ist sie der genaueren Betrachtung wert:
    Ursprünglich diente die Methode zum Beweis, dass die Menge der reellen Zahlen nicht abzählbar, sondern "überabzählbar" sei. Damit meinte Cantor, dass keine natürliche Zahl gross genug sei, die Anzahl der Elemente in der Menge der reellen Zahlen anzugeben, die damals als die Vereinigungsmenge der ganzen, der rationalen und irrationalen Zahlen gesehen wurde, also als die Menge aller Resultate von Divisionen und Radizierungen.
    Die Methode kann umgangssprachlich sehr einfach vorgestellt werden und heisst "Diagonalschnitt":
    Man schreibe eine Liste reeller Zahlen auf, jede in je einer Zeile, und entnehme der ersten Zeile die erste Ziffer nach dem Komma, der zweiten Zeile die zweite Ziffer nach dem Komma, der dritten die dritte usw...
    Diese Ziffern schreibe man in die erste, zweite, dritte usw. Stelle der zu erzeugenden neuen Zahl. Man liest also diagonal, schreibt aber in eine Zeile und formt dann die Ziffern in den einzelnen Stellen, die zwischen 0 und 9 liegen, noch so um, dass nach der Umwandlung nur noch die Ziffern 1 oder 2 in der resultierenden Ziffer hinter dem Komma vorkommen.
    Die Rechenvorschrift für die Codierung mittels 1 und 2 muss eigentlich nicht weiter interessieren, weil sie letztlich belanglos ist. Sie provozierte allerdings beliebige andere Deutung und Codierung sowohl des diagonal Gelesenen wie auch der so erzeugten Zeichenfolge, und ist deshalb als Schritt nicht ausser Betracht zu lassen.
    Cantor behauptete nun, dass die so gewonnene neue Zahl auch eine reelle Zahl darstelle, undzwar eine, die in keiner vollständigen Liste vorkomme. Die Menge der reellen Zahlen sei also nicht abzählbar, sondern überabzählbar, weil er ja beliebig neue Ziffernfolgen erzeugen könne.
    Mit Hinblick auf Operatoren, wie sie mit Invertern gemacht werden, wird sofort klar, was Cantor allerdings auch prüfen konnte - dass nämlich die mit dem Diagonalschnitt gewonnene Ziffernfolge keineswegs auch eine rationale Zahl darstellen kann, wenn man die 1 als Operand ausschliesst. Cantors reelle Zahlen waren damals Resultate von Divisionen bzw. Radizierungen und wurden deshalb auf eine ganz andere Weise operiert als beim Diagonalschnitt. Nur durch Zufall konnte das Resultat eine von Cantors reellen Zahlen sein - und diese kann auf jeden Fall in einer vollständigen Liste gefunden werden!
    Tatsächlich gibt es Zahlen, die nicht in einer solchen Liste erscheinen können. Es sind die unter 2.1.3.2.6. betrachteten komplementären Zahlen, die nicht Resultate sind. Nur solche Zahlen kann man mit Cantors Diagonalschnitt finden (und nichtmal alle). Diese Zahlen werden heute (auch weil Cantor einige davon fand) als Elemente der Menge der transzendenten Zahlen sortiert, die definiert sind als nicht mögliche Resultate irgendwelcher algebraischen Gleichungen. Damit glaubt man die Abfolge von Zahlen mit Stellen hinter dem Komma unendlich dicht, also ohne Lücken erfasst zu haben.
    Vollkommen zuverlässig hat man Zahlen, die ein Komma enthalten, ohne Lücken erfasst, wenn man sie mit Inkrementieren erzeugt. Damit muss man in der letzten Stelle hinter dem Komma beginnen, die allerdings unerreichbar im Nebel der Unendlichkeit liegt. Stellt man sich aber diese beiden unendlichen Mengen von Stellen vor und hinter dem Komma vor, dann ist jedenfalls die ansich irrelevante Frage nach der Mächtigkeit der reellen Zahlen leicht zu beantworten: die quadrierte Mächtigkeit der natürlichen Zahlen plus der der natürlichen Zahlen (=jede Zahl vor Komma kombiniert mit jeder nach dem Komma. Schliesslich alle Zahlen mit einer 0 vor dem Komma). Das kann man "überabzahlbar" nennen, weil offenbar nur die Quadratwurzel aus der nötigen Anzahl als Zählwert zur Verfügung steht. Ebenso offenbar ist aber deshalb die Unendlichkeit als Notwendigkeit bei der Betrachtung von Zahlen ad absurdum. Wenn man die Unendlichkeit nämlich nicht axiomatisch in die Welt stellt, und wenn man so die letzte Stelle hinter dem Komma zu fassen kriegt, dann kann man da mit dem Inkrementieren beginnen und braucht zwar doppelt so viele Stellen, wie zur Darstellung natürlicher endlicher Zahlen nötig sind, kann aber abzählen. Und natürlich sind dann auch alle rationalen, irrationalen und transzendenten Zahlen abzählbar. Feststellungen über Verhältnisse bei Erreichen der grössten oder kleinsten Zahl im Endlichen bleiben stets gültig.
    Weil, wie eingangs bemerkt, der Diagonalschnitt nicht nur Cantor zum Beweis der Überabzählbarkeit diente, sondern auch Teil anderer Beweise mit anderem Gegenstand wurde und dabei auch noch in der Machart abgewandelt wurde, ist ausserdem festzustellen, was der Diagonalschnitt in Cantor's Beweis eigentlich beweist und was deshalb damit nicht bewiesen werden kann.
    Cantor ging aus von einer Liste (der reellen Zahlen), die Resultate von Operatoren enthielt. Diese sind (falls der Operand 1 ausgeschlossen ist), immer eine unvollständige Zahlenmenge, die aber in eine vollständigen Liste übertragen werden kann. Solche Listen sind im wesentlichen mit ihrer Länge zu qualifizieren (der Anzahl der Listenelemente), die auch ungerade sein kann. Sie entsprechen dem, was ich unter 2.2.3.2. als 'Stapel' abhandle, der stets abzählbare Elemente enthält. Cantor's verblüffender Schluss, dass die vollständige Liste unvollständig sei, kommt durch den Vergleich von zwei verschiedenen Arten von Vollständigkeit zustande, nämlich der Vollständigkeit einer Liste einerseits und der einer Zahlenmenge andererseits. Tatsächlich hatte er es ja mit einer unvollständigen Zahlenmenge zu tun, die Resultate sind. Alles was er beweisen konnte, war die Existenz der komplementären Zahlen der betrachteten Operatoren. Und das hat er noch nicht mal gut gemacht, weil er garnicht alle komplementären Zahlen mit seinem Diagonalschluss erzeugen konnte. Kurz gefasst:
    Der Diagonalschluss beweist nichts weiter als komplementäre Zahlen.
    Immer ist es der Begriff der Vollständigkeit, der in Beweisen mittels Cantor's Diagonalschnitt ad absurdum geführt werden soll. Dabei wird regelmässig eine zwar vollständige Liste, die aber nicht eine vollständige Zahlenmenge enthält, einer vollständigen Zahlenmenge gegenüber gestellt.
    Deshalb beweisen alle "Beweise", die die Diagonalisierung verwenden, nicht das, was sie beweisen sollen. Dies gilt für die Beweise Gödels ebenso wie die analogen Beweise von Turing. Eine genauere Betrachtung solcher Beweise leiste ich weiter unten.
    [Erstveröffentlichung am 20.3.2010]
    Zu diesem Thema fand ich einen interessanten Link nach Indien:

  • "Three beliefs..."

    4. COMPUTABILITY / MASCHINELLES RECHNEN

    HILBERT'S ENTSCHEIDUNGSPROBLEM UND TURING'S MASCHINE:
    Im Zusammenhang mit dem 'Entscheidungsproblem' Hilberts stellte Turing die Idee einer Maschine vor, die zu den von Hilbert ersehnten Entscheidungen befähigt sei. Das 'Entscheidungsproblem' charakterisierte Hilbert mit der Frage (sinngemäss): "Gibt es die Möglichkeit, mathematische Wahrheit von Falschheit allein mit mechanischem Vorgehen zu unterscheiden?". Das "mechanische Vorgehen" war symbolisch gemeint im Widerspruch zu lebenden und denkenden Menschen, deren Denken als Mittel zur Entscheidung ausgeschlossen sein sollte. Die Frage ist also eigentlich, ob mathematische Wahrheit in der Natur vorkommt und unabhängig von einem Betrachter. Deshalb machte Turing auch einige Umstände, um das, was er vorstellte, als Maschine erscheinen zu lassen, die man bauen könnte. Die Maschine dachte er sich aus zwei wesentlichen Teilen bestehend:
    1) Ein Teil,das mittels einem eingebauten Übertragungsverhalten entscheidet, wie gelesene Symbole in geschriebene Symbole zu wandeln sind. Ausser Lesen und Schreiben soll das Übertragungsverhalten auch eine Bewegung zwischen zwischen den Symbolen ermöglichen.
    2) Einem Teil, das Träger (und Speicher) der Symbole sein soll und bewegt werden kann. Seiner Zeit gemäss stellte Turing dieses Teil als Magnetband vor, das unter Schreib/Lese-Köpfen schrittig hin und her bewegt werden kann. So sind örtlich unterscheidbar Felder möglich, in denen zu lesende oder zu schreibende Symbole eingetragen sind. Als Bewegung zwischen den Feldern war nur einer von zwei Schritten zum benachbarten Feld vorgesehen oder der Stillstand.
    Teil 1) war also eine 'blackbox' (von Turing 'a-machine' bzw. 'automatical machine' genannt), die nicht durch eine konstruktive Beschreibung, sondern einen Effekt gekennzeichnet wurde, zu beschreiben durch eine mathematische Formel. Teil 2) kann etwas moderner (und vollständig aequivalent) als eine Reihe von adressierbaren Registern an einem einzigen Daten-Bus und einem einzigen Adressbus gesehen werden, wobei die Adresse der Register nur inkrementiert oder dekrementiert werden kann, falls sie nicht die gleiche bleiben soll. So betrachtet lässt sich die Turingmaschine jedenfalls einfach neben die unter 2.2.3. in der Inverterlogik deduzierte 'Iterationsmaschine' stellen und vergleichen.
    Sofort als irrelevant zu verwerfen ist die von Turing 'circle free' genannte Maschine, die mit einem unendlichen Band umgeht. Dieses unendliche Band besteht notwendig aus unendlicher Masse, die in einem endlichen Universum, in dem zu entscheiden ist, nicht verfügbar ist. Dabei ist garnicht mehr zu erwägen, ob in der blackbox womöglich ebenfalls unendliche Mengen Masse verbaut werden müssen. Weil auch das Band nicht schneller als mit Lichtgeschwindigkeit bewegt werden kann, würde eine Ewigkeit als Rechenzeit gebraucht, die ebenfalls nicht zu haben ist. Dieser Unsinn wird auch nicht erwägenswert, indem man diese unendliche Maschine als Modell eines mathematisch denkenden Menschen versteht (das von Hilbert nicht gefragt war!). So ein Mathematiker hat schon garnicht unendlichen Speicherplatz im Kopf und unendlich schnell leitende Nerven. Im Vergleich mit der Iterationsmaschine ist ausserdem festzustellen, dass in einer unendlichen Maschine die Breite der Adressen und damit die Breite von Adressgebern unkalkulierbar wird. Es kann deshalb auch garkeine Programme für solche Maschinen geben.
    Die Idee der Unendlichkeit ist jedenfalls immer dann als irrelevant zu verwerfen, wenn es um Mathematik mit Bezug zur realen Welt geht. Immer wären dann unendliche Dinge zu denken, die aus unendlicher Masse bestehen und unendlichen Zeitbedarf haben. Ich habe gezeigt, dass damit eine infinitesimale Betrachtung nicht ad absurdum ist. Sie kann allerdings nur ad finitum betrieben werden und muss immer eine Berücksichtigung der Grenzen enthalten.
    Zu betrachten ist deshalb nur die endliche, von Turing 'circular a-machine' genannte Idee. Sie ist durch ein endliches Band gekennzeichnet, also beinahe die gleiche Maschine.
    Nun ist in der Mathematik durchaus üblich und auch nicht a priori falsch, irgendeinen Ausdruck mit seinem Effekt zu kennzeichnen und diesen im weiteren als gegeben und insofern richtig zu verwenden. Wenn aber auf diese Weise eine Maschine "konstruiert" wird, ist sie nicht etwa brauchbar, nur weil man sie vielleicht anfassen kann.
    Turing ging von der Idee aus, dass eine 'Injektion' schon eine Maschine sei. Es ist allerdings völlig falsch, zu glauben, dass damit eine konkrete Aussage über Verhalten einer Maschine möglich ist. Mathematisch ausgedrückt:
    Wenn ein Element x aus der Menge der Argumente (in diesem Fall auch des Programms!) mit einem Element y aus der Menge der Resultate funktionell verknüpft wird, also y=f(x) ist, dann kann nichts über die Maschine gesagt werden, die diese Funktion ausführt, weil prinzipiell mehrere Funktionen f aequivalent resultieren.
    Die Inverterlogik beweist, dass jede Injektion für konkrete Werte x,y als serielle Schaltung von Adresse und Zeichen (unter 1.2.1. und 1.2.2.) dargestellt werden kann. Das ist das Adressieren von Werten unter Adressen mit Werten von Adressen und damit materiell eine Menge von Drähten (und maximal einem weiteren Inverter je Leitung). Kann man nur x und y betrachten, bleibt einem prinzipiell verborgen, ob f ein Inkrementierer, Addierer oder sonstwas ist. Insbesondere kann nicht gesehen werden, ob und in welcher Weise entschieden wird, um von x zu y zu kommen! Auch ohne Maschine kann entweder nur ein Graph benutzt werden oder die ihn erzeugende Funktion. Beide Methoden sind ununterscheidbar, wenn nur Argumente und Resultate zu sehen sind.
    Damit ist bewiesen, dass Turings Maschine beinahe leer ist und dass diese Leere jedenfalls nicht von einer im Sinne einer mathematischen Funktion agierenden Maschine unterschieden werden kann. Ganz kurz und brutal ausgedrückt: Die Turingmaschine ist völliger Unsinn, weil Sinn in ihr nicht zu finden ist.
    Weil die blackbox als wesentliches Teil einer Turingmaschine offenbar nicht konstruktiv, sondern spekulativ gegeben ist, kann man also prinzipiell keine Aussagen darüber machen, was sie kann oder nicht kann, sondern nur angeben, was sie können soll oder nicht. Sie wird vollständig bedingt durch Formeln, die das Übertragungsverhalten beschreiben sollen und die zu diesem Zweck ohne weitere Begründung die Qualität einer Mechanik erhalten. Das erlaubt aber keineswegs Aussagen über das Verhalten einer automatischen Maschine, sondern nur Aussagen über die Resultatmenge einer Formel (und den Verstand eines Mathematikers, der damit umgeht.).
    Insbesondere das, was "mechanisch" über Wahrheit und Falschheit entscheiden soll, ist dann auch eine Formel, die auch ohne Magnetband bewahrheiten können muss, die also jedenfalls für Menschen lesbar und in ihrem Wesen zu durchschauen sein muss. Gerade das ist aber, was Hilbert vermisste.
    Tatsächlich hat weder Turing noch sonst jemand je die Turingmaschine gebaut, sondern andere Maschinen, die ganz anders funktionieren und nur bedingt Wahrheit von Falschheit unterscheiden können. Diese ganz anders funktionierenden Maschinen hat jeder vor sich, der diesen Text liest. Ihre Bauweise ist durch die 'Von Neumann-Struktur" gegeben, die allerdings nicht mathematisch hergeleitet wurde, sondern ein Rezept ist, das vorher von vielen Ingenieuren vorbereitet und hinterher verfeinert wurde. Von Neumann war viel zu sehr mit der Berechnung der Kompressionsvorgänge bei der Explosion von H-Bomben beschäftigt, um mehr zu geben als einige gute Ideen, die Ingenieure dann zur funktionierenden Maschine (namens "MANIAC"="Mathematical Analyzer, Numerical Integrator and Computer") entwickelten. Von Neumann konnte damit zwar nicht das Wahre vom Falschen scheiden, aber den Bau der H-Bombe möglich machen und so ein neues Problem von Sein oder Nichtsein in die Welt setzen, was ihm offenbar wichtiger war.
    Die unter 2.2.3. in der Inverterlogik behandelte Iterationsmaschine ist dagegen tatsächlich eine Herleitung von programmierbaren, automatischen Maschinen in allen Einzelheiten. Zu ihrer Begründung genügt allein das Inverter-Axiom (das bereits die Abstraktion eines mechanischen Mittels ist), und sie enthält als Variante nicht nur die von Neumann-Struktur (die nur dann als Turingmaschine zu verkennen ist, wenn man ihre Bauteile ignoriert!), sondern auch alle anderen bekannten Computer-Strukturen und unbekannte weitere. Die Herleitung der Iterationsmaschine zeigt, dass die Absicht genügt, Werte von Adressen beliebig zu Adressen von Werten werden zu lassen und für diesen Zweck die Werte zu manipulieren. Dass daraus ein Computer wird, der auch andere Werte als die von Adressen kalkulieren kann, ergibt sich nur als Nebeneffekt. Dieser Effekt muss garnicht gewünscht sein, um eine automatische Maschine zu konstruieren.
    Der wichtigste Unterschied zwischen der Iterations- und der Turingmaschine ist damit sofort klar. Es ist (neben der genauen Vorstellung von Operatoren) die Adressierung, die in einer Turingmaschine nur als Inkrement oder Dekrement vorkommt oder in der blackbox als 'innerer Zustand' nicht diskutierbar verborgen bleiben soll, während sie in der Iterationsmaschine in zwei gut unterscheidbare, aber sich bedingende Teile zerfällt, einen maschinellen und einen variablen, der Programmierung. Erst so wird diskutierbar, was ein Programm ist und was innere Zustände sind, und wie damit bedingt das Verhalten einer solchen Maschine zustande kommt. Und es kann keinen Zweifel geben, dass die Maschine nur das tut, was ein Programmierer formuliert hat - nichts sonst.
    Die Inverterlogik beweist auch, dass Adressierung (also Iterationsmaschine inclusive Programm) vollkommen aequivalent in Leitungen zwischen logischen Apparaten umgewandelt werden kann und dass nur das Programm zu ändern ist, um sehr verschieden verknüpften, logischen Apparaten aequivalent resultieren zu können. Es gibt also immer mindestens drei mögliche injektive Funktionen! Diese können durch mathematische Formeln bekannter Machart aber nur teilweise repräsentiert werden, während andererseits alle mathematischen Formeln und insbesondere die bekannten Operatoren vollständig durch logische Apparate ersetzt werden können. Erst durch die Inverterlogik kann also überhaupt begründet werden, warum und wie Formeln automatische Maschinen repräsentieren können.
    Zwar sind in mathematischen Formeln Klammern ein bekanntes Mittel, die Dimension der Zeit auszudrücken, sie erlauben aber keineswegs die Errechnung von Zeitbedarf bei einer Rechnung. Sie erlauben nur eine Darstellung der Abfolge von Rechenschritten. Die vollständige Darstellung aller nötigen Schritte in einer automatischen Maschine ist so nicht möglich. In der bekannten Mathematik fehlen nämlich ausgerechnet die Besonderheiten, die eine Iterationsmaschine arbeiten lassen (Turing nannte das 'motion'). Es gibt weder einen Ausdruck für Adressen, noch für die Anordnung von Adressen in der einen Dimension, die mit einem Adressbus an einem Speicher gegeben ist. Und es gibt vor allem nicht den fundamentalen Unterschied zwischen Adressen und Zahlen. Adressen werden üblicherweise als Zählwerte oder Index (z.B. 1,2...n) verstanden, aber die Werte von Adressen sind keineswegs Zahlen, während diese allerdings auch als Adressen Bedeutung bekommen können (unter 1.2.2. werden sie als eine besondere Ordnung von Werten von Adressen hergeleitet...). Der Grund des Mangels lässt sich sofort erkennen, wenn man den bekannten Negationsoperator mit dem in gewisser Hinsicht aequivalenten Inverter vergleicht. Im Gegensatz zum Inverter können nicht etwa Ausgänge von Negationsoperatoren zur Adresse verknüpft werden, und die enthalten auch nicht die Dimension der Zeit, um damit z.B. ein Monoflop oder Register zu qualifizieren. Auch die Besonderheit eines Schalters (unter 2.1.2.) als Teil eines logischen Apparates, der das Aequivalent eines Sprunges in Programm ist, ist mit herkömmlicher Logik nicht so herleitbar, dass alle Regeln erkennbar wären, die mit der Inverterlogik zu fassen sind.
    Der wichtigste Mangel des Modells Turingmaschine ist aber, dass es den Trugschluss erlaubt, Programm sei eine Sprache. Das Modell der Iterationsmaschine beweist das als falsch. Programm ist keineswegs eine Sprache, die nach beliebigen syntaktischen und semantischen Regeln erzeugbar wäre, sondern Adressierung (mit der Dimension der Zeit), die immer durch die konkrete Iterationsmaschine als 'Zielmaschine' bedingt ist. Diese ist kein Hund, der nach Tritt oder Zuckerstück schon kapiert hat, was Programm sein soll.
    Nur weil jede bekannte Zielmaschine eine Iterationsmaschine ist, können solche "Sprachen" überhaupt übersetzt werden in ein taugliches, maschinen-abhängiges Binary (sofern sie nicht einen unendlichen Speicher implizieren, sondern ihn ausschliessen). Deshalb ist auch bis heute nicht gelungen, eine "höhere" Programmiersprache zu schaffen, die tatsächlich vollständig und optimal jede Programmierung erlaubt. Entweder dienen solche "Sprachen" nur einer begrenzten Zahl möglicher Zwecke von Programmen, oder sie enthalten 'inline assembler' (oder 'Assembler Module'). Vor allem aber zeichnen sich solche "Sprachen" dadurch aus, dass gewaltiger Aufwand zu ihrer Kompilation nötig ist und dass das Resultat der Kompilation immer wesentlich mehr Binärcode enthält als nötig ist. Mit meinem ASMOS habe ich jedenfalls bewiesen, dass der Unterschied immer mindestens mit dem Faktor 10, aber je nach Aufgabe auch sehr viel grösseren Faktoren, zu quantifizieren ist, wenn man gleiche Zwecke mit Assembler statt einer "höheren" Programmiersprache programmiert. Ich werde hier aber nicht wiederholen, was ich sehr detailliert in der Dokumentation zu ASMOS diskutiert habe...
    Wichtiger in diesem Zusammenhang ist, dass ausgehend von Assembler-Kommandos, wie ich sie unter 2.2.3.2. herleite, auf Bits und Nanosekunden genau Umfang und Laufzeit von Programmen berechnet werden kann, bezogen auf konkrete Zielmaschinen, die eventuell die unter 2.2.1. betrachteten Optimierungen enthalten (z.B. Adressrechner). Ist also ein optimaler Ablauf gefunden, kann der immer auf jede konkrete Zielmaschine nicht nur übertragen, sondern auch mit den dort eingebauten Optimierungen gekürzt werden. Ein solch allgemeiner Assembler erlaubt also maschinen-unabhängige Programmierung, allerdings mit grossem Schreibaufwand für den Quelltext. Die üblichen Programmiersprachen erlauben dagegen einige Abkürzungen in der Schreibweise, nicht aber maschinen-unabhängige Programmierung, wenn alle Zwecke und auch die Optimierungen der Zielmaschine berücksichtigt werden sollen. Dann ist nötig, was als 'arch-dependant'='Architektur-bedingt' verrufen ist: Assembler. Damit ist aber, wie die Praxis beweist, keineswegs möglich, alle Möglichkeiten der Optimierung zu nutzen.
    Mit der Herleitung von 'Programm' in der Inverterlogik ist ausserdem bewiesen, dass eine Kalkulation von Speicherplatzbedarf und Rechenzeit prinzipiell nicht mittels Formeln (= Rechnermodellen für Turingmaschinen) möglich ist. Die Länge von Programmcode (=Binary) ist nämlich vollständig bedingt durch die Zielmaschine. Das hat insbesondere die Konsequenz, dass Adressen in Sprüngen erst kalkulierbar sind, wenn der Opcode bis zum Sprungziel bereits definiert ist. Deshalb (und nur deshalb!) müssen benamte symbolische Adressen beim Programmieren verwendet werden. Die richtigen Adressen müssen in einer Rekursion in das Binary eingesetzt werden. Andere Symbole sind nur sinnvoll, weil der programmierende Mensch anders nicht den Überblick behalten kann. Spezielle Programme zur Assemblierung können dann zur Übersetzung verwendet werden. In jedem Detail kann man sowas in den Quelltexten zu meinen Programmen ASMn und ASMat studieren. Zur konkreten Zielmaschine gehört deshalb auch immer ein konkretes Übersetzungsprogramm, dessen Herstellung nur dann einigermassen trivial ist, wenn es auf einer Maschine geschrieben werden kann, die nicht die Zielmaschine ist, oder wenn ein bereits assembliertes Betriebssystem auf der Zielmaschine existiert. Dies ist ebenfalls nichts, was man aus dem Modell Turingmaschine ableiten kann, bei dem eine Formel unverändert als Programm eingegeben werden kann und seinen Sinn als Programm auch behalten kann, wenn es als Datensatz gelesen wird. Eine der Konsequenzen dieses Fehlers ist das 'Halte-Problem', das ich separat betrachten werde...
    Die Iterationsmaschine zeigt dagegen denkbar klar, dass ein Programm erst dann wirklich eines ist (also Turing's 'motion' bewirken kann), wenn es auf bestimmte Weise in den Speicher geschrieben und dort auf bestimmte Weise gelesen wird - anders jedenfalls als Daten. Es zeigt sich, dass ein fundamentaler Unterschied zwischen Programm einerseits und Daten andererseits besteht, begründet durch die Maschine, die eine entsprechende Bedeutungsgebung enthalten muss. Dabei ist immer ein Adressgeber, der meist 'Programmzähler' genannt wird, und eine besondere Adressdecodierung nötig, die aus binären Werten im Opcode Adressen macht. Das ist bestens bekannt als Teil realer Maschinen (=CPU), aus der Turingmaschine aber nicht ableitbar.
    Weil die Turingmaschine offenbar ein falsches Modell einer automatischen Maschine ist, lässt sich sehr einfach schliessen, dass auch alle Schlüsse, die mittels dieses Modells gezogen wurden, nicht begründet sind. Auf die Vielzahl von Rechnermodellen muss ich deshalb garnicht eingehen. Sie sind falsch, solange sie sich nicht mit Hinblick auf die Iterationsmaschine als richtig erweisen. Ich muss auch nicht auf die Vielzahl von Experimenten eingehen, die nach der Vorstellung ihrer Konstrukteure oder Programmierer Turingmaschinen sind - verlötet oder emuliert. Was sie gemacht haben, sind in keinem Falle Turingmaschinen, sondern verlötete Transistoren, die Invertern entsprechen oder Programme für verlötete Transistoren, die Iterationsmaschinen entsprechen. Sie alle mussten klüger sein als Turing und das ergänzen, was in seiner Idee fehlt.
    Die Iterationsmaschine und die Begründung durch die Inverterlogik zeigen klar, was im Hinblick auf das Entscheidungsproblem tatsächlich gesagt werden kann. Dabei ist auch zu sehen, dass bereits das Inverter-Axiom ein "mechanisches Mittel" im Sinne Hilberts ist. Aussagen in der Inverterlogik sind also in diesem Sinne evident und erlauben Wahrheit zu finden, die unabhängig vom menschlichen Betrachter existiert.
    Zunächst ist das, was Programm in einer automatischen Maschine ist, als Adressierung zu sehen, die tatsächlich nur heuristisch, also durch einen Programmierer zustande kommen kann. Ebenso bedingt ist die konkrete Form einer Iterationsmaschine, die nur als Prototyp definierbar ist - ebenso wie die meisten anderen logische Apparate. Innerhalb solcher Maschinen gibt es keinen Dämon, der anders über die Richtigkeit eines Programmes entscheiden kann als nach den Regeln eines Programmierers oder einem Fehlverhalten in den Augen eines Programmierers. Nur der entscheidet tatsächlich über Wahres und Falsches, während die Maschine nur resultiert (ich nenne das 'Bewirkung').
    Bereits bei der Betrachtung 'logischer Apparate' zeigt sich, dass Wahres von Falschem nicht a priori zu unterscheiden ist, sondern nur a posteriori. Es kann also auch keine Formel geben, die über Wahrheit entscheiden kann, wenn nicht klar ist, was Argumente sind, wie sie verknüpft werden und welche Bedeutung die Resultate haben sollen. Ich habe in der Inverterlogik einen Begriff der 'Bedeutung' entwickelt, um genau diesen Gegenstand fassen zu können, will hier aber nicht alle durchaus aparten Details wiederholen. Ausgangspunkt sind die Resultate an einer 'Kante', die nur dann, wenn sie UNDiert und damit ein Wert H sind, dem Boole'schen WAHR entsprechend verwendet werden können. Ein ebenso wichtiger Teil der Wahrheit ist aber in der Verknüpfung von Invertern zu finden, die vor einer Kante resultieren. Sie sind nur dann diskutierbar, wenn man sie selbst konstruiert. Innerhalb einer Beziehung kann kein Dämon hinter (=auf die Eingänge) eine Kante sehen. Man muss also den Wert L immer als 'Bedeutungslosigkeit' (unter 1.2.1.) verwerfen, weil der den Rest der Welt bedeuten kann.
    Die von Hilbert ersehnten Entscheidungen betrafen ausdrücklich "mathematische" Wahrheit, die tatsächlich dann mit Inverterlogik von Falschheit zu unterscheiden ist, wenn ein Betrachter auch Beziehungen bauen kann (Inverter verknüpfen und mit Werten besetzen kann). So kann man zwischen Resultaten und NICHT-Resultaten (='komplementäre' Zahlen) unterscheiden, Terme durch Kürzungen als aequivalent beweisen und Ideen wie die von Mengen, die sich selbst als Element enthalten, als irrelevant zeigen. Man kann auch Ideen, die ein Mensch durchaus phantasieren kann wie z.B. die Nullmenge als 'unlogisch' verwerfen. Und man kann natürlich wahre Aussagen über alle möglichen Iterationsmaschinen machen.
    All diese Beweise sind aber nur wahr in den Augen eines Betrachters! Innerhalb der Inverterlogik sind sie Bewirkung, die niemals Sinn haben kann, sondern nur Bedeutung durch Bedeutungsgebung (und nur a posteriori!) erhalten kann. Dabei müssen die (sinnlosen) Werte H,L benutzt werden und nicht bedeutungsvolle Werte WAHR und FALSCH. Die sind nach jeder ODERierenden Kante ad absurdum. Nichts kann wahr werden, indem der Wert FALSCH negiert wird!
    Ohne Zweifel ist also ein mathematisch denkender von einem mathematisch phantasierenden Menschen zu unterscheiden - und dieser von einem auch physikalisch usw. denkenden. Nur der letztgenannte kann offenbar sehen, dass eine unendliche Turingmaschine in diesem Universum nicht vorkommen kann. Und nur der erstgenannte kann sehen, dass die endliche Turingmaschine Unsinn ist.
    Erst mit Inverterlogik, die axiomatisch alle "mechanischen" Mittel herzuleiten gestattet, kann man also Hilberts Frage überhaupt beantworten. Sie kann mit "Ja" beantwortet werden, wenn es um jene mathematischen Wahrheiten geht, die zwischen Argumenten und Resultaten bei gegebener Bedeutung vorkommen, also allem zwischen "wenn" und "dann". Dann ist 2+2=4 und nichts anderes.
    Sind irgendwelche Bedeutungen nicht klar oder nicht mit verknüpften Invertern darstellbar, dann kann auch nichts mit mathematischer Gewissheit entschieden werden. Dies betrifft auf jeden Fall Vergleiche zwischen Mensch und Maschine, wie sie die Church-Turing-These vorstellt. Noch weitaus weniger als die Iterationsmaschine taugt die Turingmaschine als Ausgangspunkt für die Bewahrheitung dieser These, die besagt, dass kein Mensch besser entscheiden kann als eine Turingmaschine. Die Iterationsmaschine zeigt allerdings, dass ihre inneren Zustände ebenso wie die äusseren allein durch Konstrukteur und Programmierer zustande kommen und Bewahrheitung also nicht anders als durch einen Beobachter getan sein kann. Eine automatische Maschine dieser Art kann also immer weniger als ein Programmierer, weil sie nicht entscheiden kann, ob ein Programm taugt und dieses auch nicht verbessern kann.
    Ich habe aus diesem Grunde Menschen und alles andere, was offenbar (noch) nicht mit Invertern dargestellt werden kann, der Inverterlogik als 'unlogisch' gegenüber gestellt. Aussagen lassen sich schon aus diesem Grunde nicht über das Verhältnis von mathematischem Denken von Menschen gegenüber Maschinen machen. So macht die Iterationsmaschine nicht nur dem phantasierenden Mathematiker klar, dass noch einige wichtige Ideen fehlen. Sie macht darüber hinaus auch klar, dass Gesetze, die mit den Naturwissenschaften gefunden wurden, allein(!) über den Wahrheitsgehalt von Schlüssen entscheiden, die nicht nur Bewirkungen in Beziehungen betreffen, sondern irgendwelche realen Dinge. Deshalb kann keine Aussage über den mathematisch denkenden Menschen gemacht werden, solange niemand weiss, wie sein Hirn tatsächlich funktioniert. Das kann schon garnicht mit einem "inneren Zustand" in Turingmaschinen verglichen werden, den nichtmal Turing oder Church kannten.
    Zusammengefasst:
    Das Entscheidungsproblem Hilberts wird durch logische Apparate wie auch die Iterationsmaschine bedingt gelöst. Mathematische Wahrheit kann zwar unabhängig vom Betrachter existieren. Eine Entscheidung über Wahrheit kann aber nicht ohne Betrachter (=Konstrukteur,Programmierer) zustande kommen.
    Die Turingmaschine ist ein falsches Modell automatischer Maschinen. Wie Formeln zu mechanischen Mitteln werden, ist nicht erklärt. Deshalb kann auch keine Aussage begründet werden, dass die Turingmaschine etwas anderes tut, als Adressen mit Zeichen zu verknüpfen. Jeder Beweis, der von diesem Modell ausgeht, ist so wirklich wie eine Geisterbeschwörung. Jeder Beweis, der von der unendlichen Turingmaschine ausgeht, ist vollständig Unsinn.
    Insbesondere ist die Church-Turing-These vollständig Unsinn.
    [Erstveröffentlichung am 14.4.2010 / vervollständigt am 26.4.2010]

    TURING'S HALTEPROBLEM UND DIE BERECHENBARKEIT:
    Auch wenn sowohl unendliche wie endliche Turingmaschine Unsinn sind, weil sie tatsächlich nicht programmierbar sind, bleiben die von Turing vorgestellten Probleme zu diskutieren. Turings einst sensationelle Veröffentlichung von 1936 trug den Titel: "On computable numbers, with an application to the Entscheidungsproblem" und stellte als Übertragungsverhalten einer automatischen Maschine die Erzeugung der reellen Zahlen vor. Turing definierte Resultate der Operation als 'computable numbers' im Gegensatz zu 'not computable numbers', die er als Zahlen vorstellte, die man zwar definieren und hinschreiben, nicht aber errechnen könne. Turing benutzte dann Cantors Diagonalschluss, um analog zu über-abzählbaren nicht berechenbare Zahlen vorzustellen und damit eine prinzipielle Grenze der Berechenbarkeit (='computability').
    Ich stellte oben schon fest, dass es die Überabzählbarkeit nicht gibt, und dass Cantor auch nicht die bewiesen hat, sondern nur die Möglichkeit von NICHT-Resultaten (='komplementäre Zahlen'). Ich habe ausserdem festgestellt, dass komplementäre Zahlen nur bei Operationen erscheinen können, die nicht den Operanden 1 verarbeiten und insbesondere nicht inkrementieren. Mit dem unter 1.2.2. vorgestellten Feld habe ich gezeigt, wie nach einfachen Regeln Invertierungen konstruiert werden können, die in einer beliebigen Zahl von Stellen jede Möglichkeit von Werten in mehreren Stellen zu erzeugen gestatten. Jeder dieser Werte kann dann unterscheidbare Zahlen repräsentieren. Damit ist für jedes (prinzipiell endliche!) Feld sofort einsehbar ausgeschlossen, dass es irgendwelche nicht berechenbaren Werte gibt. Alle sind nicht nur mit Invertierungen zu resultieren, sondern auch mit einem Inkrementierer, der dem Feld aequivalent resultiert. Turings 'not computable numbers' gibt es deshalb genau so wenig wie Cantors Überabzählbarkeit!
    Aus der jedenfalls in Maschinen notwendigen Endlichkeit sind auch notwendig weitere Konsequenzen zu ziehen. Sie betreffen die Endlichkeit von verfügbaren Stellen für Argumente und Resultate und damit auch die Endlichkeit von verfügbaren Adressen, unter denen in Iterationsmaschinen Werte stehen, die Programm oder Daten sein können. Unter 2.2.3.2. habe ich hergeleitet, dass deshalb Sprünge im Programm sowohl sein müssen, wie auch sein können (dabei wird als Adresse des nächsten Kommandos nicht die vom Programmzähler gegebene, sondern eine im Kommando gegebene benutzt). Damit kann und muss immer die Abzählbarkeit von Rekursionen garantiert werden. Und es muss auf diese Weise ein Programm beendet werden, weil andernfalls womöglich Daten (oder nicht gewünschtes Programm) als auszuführendes Programm adressiert werden. Eine Iterationsmaschine (also jede programmierbare Maschine) hält nämlich prinzipiell nicht an. Halten ist nur eine besondere Form von Nicht-Halten, die durch Sprünge von einem in ein anderes Programm erzeugt werden, das auch eine Schleife, die nicht endet, sein kann. In üblichen Computern ist das z.B. eine Tastaturabfrage. Auch ein Reset ist eigentlich ein Sprung - auf die 1.Adresse. In einer programmierbaren Maschine gibt es folglich keinen Halte-Zustand, der von einem Nicht-Haltezustand zu unterscheiden wäre.
    Bei Rekursionen würden ohne 'Schleifenzähler' und damit bedingten Abbruch bereits berechnete Resultate überschrieben und damit zerstört. Schleifenzähler in Programmen definieren also, was in logischen Apparaten durch endliche Serien von Operatoren gegeben ist. Was mit logischen Apparaten als prinzipiell berechenbar gefunden werden kann, wäre in einer Iterationsmaschine nicht mehr berechenbar bzw. falsch, wenn nicht Sprünge möglich wären und Bedingungen dafür ('Sprungkriterien'='flags'). Auch wenn Operatoren Teil von Zustandsmaschinen sind, die Rekursionen über Rückleitungen von Resultaten zu Argumenteingängen vollziehen, sind Schleifenzähler nötig wegen der endlichen Zahl von Stellen für Resultate. Das sind gut bekannte konstruktive Details von arithmetischen Einheiten in CPUs.
    Es ist kein anderer Fall, wenn die Resultate nicht parallel in Stellen erscheinen, sondern seriell ausgegeben werden, z.B. als Schreiben in 'Zellen' auf dem Band einer Turingmaschine. Auch wenn dort scheinbar nur willkürlich ein Ende des Schreibens und damit ein 'Halten' zu definieren ist, sind es genau die Dinge in der blackbox, die Turing nicht erklärt hat, und die prinzipiell das Halten mittels Sprüngen nötig machen. Willkürlich ist vielmehr das Nicht-Halten zu bedingen, indem nicht gezählte Rekursionen veranstaltet werden, die immer vermieden werden können. Aber natürlich kann man unbedingte Sprünge von bedingten unterscheiden, und diese nach Bedingungen.
    Weil bei der Diskussion von Turings Halte-Problem das Halten am Ende einer Rechnung die wesentliche Rolle spielt, will ich noch ein Beispiel geben für Programm in diesem Zusammenhang. Jedem bekannt sind ja unendliche, periodische oder nicht periodische Brüche, die scheinbar gebieten, eine Rekursion nicht zu beenden. Man stelle sich die Division 1/3 vor, die bei jedem Teilschritt der Rechnung hinter dem Komma zu einem (immer gleichen) Rest führt. Dieser Rest ist das Kriterium für eine Fortsetzung der Rechnung, die folglich nicht 'terminieren' kann, wenn nicht ein weiterer Zwang gesetzt wird - z.B. durch ein Ende der Wälder, aus denen man Papier für die Rechnung erzeugen kann. Man kann sich ausserdem jede Menge weiterer rekursiver Funktionen ausdenken, die ebenfalls nicht ohne ein weiteres Kriterium terminieren müssen. Ich stelle eine solche Rekursion in einer 'Schleife' mit zwei alternativen Terminierungen vor. Dabei wird das Programm, das die Rechnung in der Schleife zwischen "Sprungziel_Rechnung:" und "Sprungziel_Weiter:" vollzieht, mit einem Programmzähler von oben nach unten durchschritten, während Sprung-Kommandos beliebig verzweigen können:
    Programmstart: Definiere Operanden und Zählwert
    Sprungziel_Rechnung:
    Rechnung.....................
    Dekrementierung eines Zählwertes (Schleifenzähler)
    1) Springe auf Sprungziel_Weiter, falls Zählwert=0
    2) Springe auf Sprungziel_Rechnung, falls nicht terminiert (z.B.Rest)
    Sprungziel_Weiter:
    Weiteres Programm............
    Die Rechnung wird offenbar immer terminiert, wenn der Zählwert=0 ist, der bei jedem Schleifendurchgang dekrementiert wird. Sie wird auch terminiert, wenn keine Notwendigkeit für eine weitere Rekursion besteht, weil dann der Sprung 2) nicht erfolgt und deshalb das Programm ab "Sprungziel_Weiter" ausgeführt wird. Der Programmzähler, der die Iteration des Programmes regiert, verwendet dann die inkrementierte Adresse von 2), die weiteres Programm ab "Sprungziel_Weiter" adressiert, statt der im Kommando 2) stehenden Adresse von "Sprungziel_Rechnung".
    Es gibt offenbar keine Schleife, in der kein Schleifenzähler vorkommen kann. Der Zählwert kann beliebig gross sein, nicht aber unendlich.
    Wegen dieser nötigen Konsequenzen der Endlichkeit zeigt die Inverterlogik ausserdem, wie mit einem "mechanischen Verfahren" im Sinne Hilberts Resultate von NICHT-Resultaten zu unterscheiden sind. Man kann nämlich mit Inkrementieren eine erste Tabelle von allen Zahlen in gegebenen Stellen erzeugen und dann eine zweite Tabelle von Resultaten in der gleichen Anzahl von Stellen mit Inkrementieren aller Argumente für eine zu untersuchende Operation. Dann werden aus der ersten Tabelle alle Zahlen entfernt, die als Resultate auch in der zweiten Tabelle stehen. So erhält man zwei vollständige Tabellen, deren eine alle Resultate, deren andere alle NICHT-Resultate enthält. Man kann so jedenfalls vollständig alle transzendenten Zahlen in einer gegebenen Zahl von Stellen finden, wenn man alle möglichen algebraischen Gleichungen zu Operatoren macht. Sowohl Resultate wie komplementäre Zahlen sind auch bei beliebig anderen Operationen immer 'computable' im Rahmen gegebener Endlichkeit.
    Nachdem Turing glaubte, nicht berechenbare Zahlen gefunden zu haben, glaubte er auch, zeigen zu können, dass es keine allgemeine Methode gibt, festzustellen, ob eine gegebene Formel beweisbar ist. Er führte den Beweis, indem er das Gegenteil annahm und dies ad absurdum führte. Die Beweisbarkeit machte er zur Berechenbarkeit, indem er Formeln auf zunächst nicht interessante Weise zu Zahlen machte. Er stellte dann Funktionen vor, die zu unbeweisbar wahren (=berechenbaren) oder widersprüchlichen (=nicht berechenbaren) Resultaten führen müssen, erkennbar durch ein 'Halte-Problem', das unlösbar sei. Er stellt also die Prüfung der Beweisbarkeit als eine Art Division vor, die wegen nicht endender Rekursionen unendliche Zeichenketten ausgeben kann.
    Eine bekannte Darstellung der Unvollständigkeit der Menge von in einer Maschine berechenbaren Funktionen geht von einer vollständigen Liste aller berechenbaren Funktionen aus, deren Unvollständigkeit mit einer Abwandlung der Diagonalisierung bewiesen wird. Sie sieht so aus:
    Es wird als möglich unterstellt, dass eine vollständige Liste aller Funktionen f1...fe herstellbar ist, die berechenbar sind, wobei Argumente und Resultate im Bereich der natürlichen Zahlen liegen. Die Berechenbarkeit wird damit charakterisiert, dass die Maschine irgendwann mit der Berechnung fertig ist und hält.
    Die Liste von berechenbaren Funktionen sieht zunächst so aus:
    1) f1(1),f1(2)...f1(n)
    2) f2(1),f2(2)...f2(n)
    .........
    n) fe(1),fe(2)...fe(n)
    Diagonal wird dann eine Funktion fd erzeugt, zu der eine 1 addiert wird:
    d) fd(1)=f1(1)+1,fd(2)=f2(2)+1...fd(n)=fe(n)+1
    Diese Funktion kommt sicherlich nicht in der Liste vor und soll beweisen, dass die Liste nicht vollständig sei und deshalb auch nicht die Menge der berechenbaren Funktionen.
    Turing selbst stellte seine Überlegung wie gesagt nicht in dieser (besser verständlichen) Form vor, setzte aber wie gezeigt voraus, dass es möglich sei, eine Liste aller berechenbaren Funktionen zu fertigen, die er zu Zahlen machte. Analog zur Herleitung nicht berechenbarer Zahlen fand er dann durch Diagonalisierung nicht berechenbare Funktionen. Als Kennzeichen dieser Funktionen stellte er Nicht-Halten vor, weil die Maschine die neue Funktion nicht berechnen könne.
    Nur wenn man sich eine dehnbare Unendlichkeit vorstellt, kann eine diagonal erzeugte Funktion überhaupt eine neue sein. Tatsächlich hat Turing aber aus der vollständigen Menge aller Funktionen die berechenbaren ausgegrenzt. Der hierzu benutzte Algorithmus wurde zwar nicht erklärt, ist aber offenbar einer, der Resultate und NICHT-Resultate erzeugt. Die diagonal erzeugte Funktion ist deshalb unbezweifelbar ein NICHT-Resultat und hier also eine nicht berechenbare Funktion. Die Liste der berechenbaren Funktionen bleibt immer vollständig, weil die gesamte Menge der Funktionen nicht wachsen kann.
    Nur wenn man endliche Mengen von Funktionen betrachtet, ist notwendig die Teilmenge der berechenbaren unvollständig im Bezug zu jenen, die aus unendlich vielen Funktionen selektiert sind. Da aber bei der Argumentation Turings eine mögliche Entscheidung über die Berechenbarkeit vorausgesetzt wird, gilt die für jede endliche Menge. Und in keiner dieser endlichen Mengen kann durch Diagonalisierung auch nur eine neue Funktion geschaffen werden.
    Auch das von Turing vorgestellte Kennzeichen der Nicht-Beweisbarkeit, die nicht haltende Maschine, taugt nicht zum Beweis. Die hält nämlich nach Turings Definition auch dann nicht an, wenn die diagonal erzeugte Funktion bereits in der Menge der nicht berechenbaren enthalten ist. Das NICHT-Halten ist deshalb nicht eindeutig bedingt durch eine diagonal erzeugte Funktion und kein Beweis einer Unvollständigkeit der Menge der berechenbaren Funktionen!
    Die nicht gegebene Konstruktion der Turingmaschine erscheint auf andere Weise als Mangel in der Formulierung des 'Halte-Problems'. Wie oben schon gesagt, sind Konsequenzen aus der Endlichkeit in Maschinen zu ziehen, die Turing ignorierte. Ich habe gezeigt, dass grundsätzlich jede Rechnung (jede Bewirkung) terminieren kann und nur dann nicht muss, wenn man nicht rechnen, sondern irgendwie oszillieren will.
    Nun kann man selbstverständlich einen richtigen Ablauf in einer Schleife abfälschen. Die in meinen Augen lächerlichste Verfälschung ist die, ein "Programm" zu erfinden, das einen "Halte-Test" vollzieht (tatsächlich ist es das Kommando 2) im obigen Beispiel) und es im Widerspruch zu sehen mit einem anderen "Programm", das den Halte-Test verdirbt. Dieses zweite "Programm" soll von der Turingmaschine eingelesen werden und damit zum Teil des anderen Programmes werden, wo es ihm widerspricht. Widersprechen kann offenbar nur ein unbedingter Rücksprung mit Sprungziel wie 2), der vor 1) steht. Abgesehen davon, dass das 'linking' der widersprüchlichen Programme niemals auf die vorgestellte, banale Weise vollzogen werden kann, ist jedenfalls nichts weiter als ein drittes, falsches Programm entstanden.
    Das 'Halte-Problem' ist also ein Programmierfehler. Es kann immer gelöst werden und ist kein prinzipielles Problem! Und natürlich ist jede weitere Schlussfolgerung aus diesem angeblich unlösbaren Problem ebenfalls nur ein Fehler.
    Auch wenn der Beweis Turings nicht beweist, was er beweisen soll, bleibt die Frage, ob irgendetwas in einer automatischen Maschine unberechenbar ist. Ob mit ihr Wahrheit bewiesen werden kann, habe ich oben im Zusammenhang mit Hilberts Entscheidungsproblem schon verneint. Ich stelle also noch vor, was eine programmierbare, automatische Maschine kann und was nicht.
    Turing ging davon aus, dass die Funktionen nur als Programm auf dem Band gegeben sind und erörtert nicht, was mindestens in der blackbox enthalten sein muss, um das Programm überhaupt ausführen zu können. Die Iterationsmaschine (wie auch jede CPU) zeigt, dass eine allgemein 'ALU' (=Arithmetical and Logical Unit) genannte Einheit vorhanden sein muss, um Werte überhaupt operieren zu können. Diese Einheit enthält adressierbar Operatoren und logische Verknüpfungen zum Invertieren, UNDieren, Addieren usw. und das ist alles, was mit arithmetischen und logischen Kommandos regiert werden kann. Es gibt keine Möglichkeit ohne solche Mittel, nur durch Symbole in Programm, z.B. eine Addition zu kommandieren. Ein Programm ist nur Adressierung. Die Adressen müssen selbstverständlich existieren. Turing unterstellte dagegen, dass seine Maschine schon weiss, was zu tun ist, wenn eine Addition angewiesen wird, und erkannte nicht, dass sein Spiel mit Funktionen nur ausgehend von einem vorhandenen Repertoire in der ALU möglich ist. Ein diagonal erzeugtes Wachstum der Funktionen in der ALU ist offenbar nicht zu machen. Jedes Programm ist also deduktiv, kann allerdings auch Fehler enthalten. Insbesondere kann ein Programmierer einen Schleifenzähler vergessen haben.
    Die Inverterlogik zeigt allerdings, dass eine Maschine mit Programm immer in eine Serie von logischen Maschinen umgewandelt werden kann, wie sie in der ALU vorkommen. Sie zeigt auch, wie diese maschinellen Funktionen abwandelbar sind, welche Varianten also machbar sind. Dabei ist festzustellen, dass auf jeden Fall in endlichen Maschinen nur eine endliche Zahl von möglichen Funktionen vorkommen kann.
    Die Inverterlogik zeigt nicht nur, wie man solche Funktionen mit Verknüpfung von Invertern erzeugen kann, sie zeigt auch, wie so nicht nur alle Funktionen der Peano-Arithmetik erzeugbar sind, sondern auch sehr viele weitere, die nicht Teil der Peano-Arithmetik sind. Ich spreche deshalb auch nicht von Funktionen, sondern 'Bewirkung', die ein Operator sein kann, aber auch ein Register, und von 'Besetzung', die die Verteilung der Werte H,L meint und nicht nur Zahlen. Die gesamte Anzahl der möglichen Bewirkungen ist nur durch Einfügen weiterer Inverter zu steigern - und nicht mit irgendeiner Diagonalisierung!
    Die möglichen Funktionen (='Beziehungen') sind wegen der abzählbaren Menge verknüpfter Inverter stets auch abzählbar und damit auch sortierbar. Auch die Zahl möglicher Besetzungen ist abzählbar. Allerdings ist die Zahl irgendwie brauchbarer Beziehungen sehr klein, weil viele mögliche Verknüpfungen durch Kürzungen, Erweiterungen oder Umwandlungen nach bereits gefundenen Regeln (und evtl. noch zu findenden) aequivalent sind. An drei extremen Beispielen wird das sofort einsehbar:
    1) Alle Inverter liegen in Serie - dann kann eine enthaltene gerade Serie (=gerade Anzahl von Invertern) vollkommen entfallen. Es bleibt maximal ein Inverter als Beziehung übrig, der nur in einer Stelle H oder L bewirken kann.
    2) Alle Inverter liegen parallel - dann kann nichts gekürzt oder umgewandelt werden. Diese Beziehung kann in der maximalen Anzahl von Resultatstellen bewirken und nur ohne Übertragsbildung.
    3) Eine Rückleitung um eine ungerade Anzahl von Invertern lässt die Werte oszillieren. Das kann in Teilen einer Beziehung geschehen oder in der ganzen Beziehung.
    In Iterationsmaschinen ist es Programm, das die Verknüpfungen zwischen (brauchbaren) Beziehungen realisiert. Obwohl dann in der Praxis nicht alle möglichen logischen Apparate verfügbar sind, lässt sich bei solch einer programmierbaren Maschine allerdings die Zahl der Funktionen ohne Einfügen von Invertern steigern. Das sind dann Mengen von Adressen, deren Elemente ebenfalls nicht beliebig vermehrt werden können. Hier sind die verfügbare Zeit und Anzahl von Registern die Grenze des Möglichen. Auch diese Zahl von Möglichkeiten enthält nur eine sehr kleine Anzahl brauchbarer Programme. Man stelle sich z.B. ein Betriebssystem in 10 Millionen Stellen vor und alle Möglichkeiten, ein oder mehrere Bits zu invertieren. Leicht zu erkennen ist, dass das gigantische Mengen Schrott ergibt gegenüber einem einzigen Betriebssystem. Jeder Programmierer lernt diese Tatsache beim 'debugging' schmerzhaft kennen.
    Über all diese Möglichkeiten lässt sich sagen, dass immer eine Bewirkung vorkommt, jede Funktion also insoweit berechenbar ist, dass bei bestimmten Eingangswerten bestimmte Ausgangswerte resultiert werden. So gesehen ist auch jede Funktion wahr, weil sie als Beziehung evident ist. Ob einem das Verhältnis zwischen Eingang und Ausgang gefällt, ist offenbar eine ganz andere Sache. Sind Rückleitungen bzw. Rekursionen Teil der Bewirkung, dann sind die Extremfälle einer Schwingung oder Blockade möglich. Das könnte man dann nicht berechenbar oder nicht wahr oder nicht beweisbar oder nicht entscheidbar nennen, sollte es aber genauer betrachten, weil es durchaus brauchbar sein kann als Monoflop, Oszillator, Schalter oder Register...
    Es gibt also niemals unberechenbare Funktionen. Die gibt es auch nicht deshalb, weil eine endliche Menge von Invertern nach Belieben vermehrt werden kann und damit auch die Zahl der möglichen Funktionen. Will man aber die Zahl der Funktionen erhöhen, dann müssen niemals irgendwelche neuen Axiome gefunden werden, sondern nur weitere Inverter. Was daraus wird, ist evident und der Beurteilung eines Beobachters ausgesetzt. Er entscheidet, ob und wie was mit den Neuigkeiten anzufangen ist.
    Auch bei diesem Hinblick bleibt also die Frage überflüssig, ob es prinzipiell irgendeine Unvollständigkeit gibt, die so verheerend wirkt, dass man deshalb eine ganze Theorie rausschmeissen muss. Das nämlich ist der letzte Schluss Turings, der damit Gödel folgte. Dieser Schluss sagt, dass ein System niemals abgeschlossen sein kann, dass immer neue Axiome gefunden werden müssen, um immer neue Widersprüche zu besiegen.
    Weil Turing nicht sehen konnte, wie auch nur eine Entscheidung über die Berechenbarkeit wenigstens einer Funktion zustande kommen könnte, erfand er schliesslich ein Orakel, das in seinen Maschinen als unberechenbarer, deduktiver Schritt existieren sollte, um das Vorgehen zu erklären, wie Halten oder Nicht-Halten festgestellt werden könnte. Er charakterisierte es mit dem Satz (1939 in "systems of logic, defined by ordinals"): "Wir werden nicht weiter auf die Natur dieses Orakels eingehen und nur soviel darüber sagen, dass es keine Maschine sein kann." (Originalzitat in meiner englischen Übersetzung dieses Textes).
    Mit diesem Satz ist jedenfalls ad absurdum, dass Turing eine Maschine vorstellte. Richtig ist allerdings, dass dieses nicht-mechanische Teil nötig ist für einen grossen Teil erstrebter Beweise. Es ist der Mensch, der die Maschine konstruiert und programmiert und ihr Verhalten qualifiziert. Da Turing aber tatsächlich nur Aussagen über Zahlen betrachtete, werde ich in diesem Zusammenhang nicht auf weitere Bedeutungen seiner Zahlen eingehen und nur soviel darüber sagen, dass diese Bedeutungen prinzipiell a posteriori und beliebig zuzuordnen sind.
    Auch wenn es keine unberechenbaren Funktionen gibt, kann es dennoch Probleme geben, die durch Endlichkeit verursacht sind. Durch ein Axiom der Unendlichkeit sind sie aber keineswegs aus der Welt zu schaffen. Diese Probleme habe ich in der Inverterlogik und oben schon dargestellt. Sie sind auch keineswegs irrelevant, weil ein Fehler in den Stellen hinter dem Komma durchaus die Hälfte des ganzen Wertes (im Dualziffernsystem) ausmachen kann. Solche Fehler können aber durch mehr Stellen irrelevant klein gemacht werden, ebenso die schon genannten weiteren Fehler, die abhängig vom verwendeten Zahlensystem entstehen.
    Da es also tatsächlich Zahlen gibt, die (mangels Stellen) 'not computable' sein mögen, ist immer der Zweck einer Rechnung zu berücksichtigen, der das Kriterium dafür ist, ob solche Fehler irrelevant sind. In dieser Welt kann also nicht nur prinzipiell nicht beliebig genau gemessen werden (elektrische Werte z.B. nur im Prozentbereich, wenn man nicht v.Klitzings Gerätschaft hat). Es kann auch prinzipiell nicht beliebig genau gerechnet werden, wenn nicht inkrementiert oder invertiert wird. Damit ist das Prinzip 'tertium non datur' nicht aufgegeben, sondern nur relativiert auf Zwecke. Der unter 2.1.3.2.6. hergeleitete Begriff 'Relevanz' betrifft genau das.
    Zusammen gefasst:
    Es gibt keine 'not computable numbers'.
    Es gibt keine unberechenbaren Funktionen.
    Es gibt beweisbare Funktionen nur durch Vergleich mit anderen Funktionen, die aequivalent oder ähnlich sein können oder nicht.
    Es gibt nur grundsätzlich abzählbare Mengen möglicher Funktionen und möglicher Besetzungen, die nicht durch Diagonalisierung vermehrt werden können.
    Es gibt kein Halte-Problem.
    Es gibt allerdings nicht brauchbare Funktionen, deren Brauchbarkeit nur durch einen Beobachter entschieden werden kann. Ebenso kommt eine Entscheidung über Beweisbarkeit oder Widersprüche zustande.
    [Erstveröffentlichung am 12.5.2010 ]
    APPENDIX:
    Nachdem ich diesen Text veröffentlicht hatte, fand ich im Internet andere Arbeiten zum gleichen Thema, die früher veröffentlicht wurden. Dort erscheint noch nicht das Modell der Turingmaschine fraglich, sondern nur die Aussagen Turings über endliche Maschinen und Berechenbarkeit. Die Kritik von Programm und Halte-problem wird mit der bekannten "mathematischen" Formulierung ('while-Schleife' usw.) ausgeführt, bewegt sich also im Rahmen der Spekulationen, die das Modell der Turingmaschine gebietet. Allerdings wird ein Bezug zu realen Maschinen gegeben, indem der Begriff der 'Kompilation' benutzt wird.
    Es zeigt sich, dass schon die Feststellung der Endlichkeit realer Maschinen und der Bezug zu realen Programmen, die tatsächlich in ein Binary übersetzt werden können, genügen, Turing's Vorstellungen über computability ad absurdum zu führen.
    Ich stelle oben also fest, was im Ergebnis bereits gefunden wurde, leite es allerdings aus der Inverterlogik ab, insbesondere den dort hergeleiteten Begriffen von 'Adresse', 'Opcode und 'Sprung' im Zusammenhang mit der 'Iterationsmaschine'. Damit habe ich diese Diskussion abgeschlossen und auch gleich ein Modell vorgestellt, das nicht aus mathematischen Verfeinerungen der Turingmaschine besteht, sondern (erstmals) tatsächlich Maschinen betrifft, indem es einen abstrahierten Transistor als 'Inverter-Axiom' nutzt. Dieses Axiom erlaubt, nicht nur Maschinen, sondern auch die gesamte Mathematik als reale Gegebenheit zu deduzieren.
    Es gibt deshalb keinen Grund mehr, die Turingmaschine als Ausgangspunkt der Computer-Wissenschaften zu betrachten. Sie ist eine irrelevante Idee.
    Nebenbei zeigt diese Diskussion, wie menschliche Intelligenz Wissen erarbeitet. Sie muss noch nichtmal in nur einem Hirn arbeiten, also einem einzigen Programm folgen, um dennoch über verschiedene Absichten und Empfindungen zu wahren Einsichten zu kommen. Stets sind Verfeinerungen von Ideen in Rekursionen zu finden, die keineswegs insgesamt sukzessiv auseinander abgeleitet sein müssen und keineswegs bei Wissen starten, sondern einem Unbehagen. Und es zeigt sich auch, wie auf diese Weise Abwege zu "Wissen" werden können - Turing hatte nämlich schon einen Relais mit Arbeitswiderstand zur Hand (der ebenfalls mit dem Inverter-Axiom abstrahiert wird), um damit einen Multiplizierer für drei Stellen zu bauen, kam aber nicht auf ein Inverter-Axiom, sondern glaubte Gödel imitieren zu müssen. Diesen Aspekt erweitere ich im folgenden Kapitel 5. - hier noch der sehr interessante Link auf die Arbeit von Kirner, der auch eine Bibliographie anderer Arbeiten zum Thema enthält:

  • "kirner.pdf von R.Kirner"

    5. KÜNSTLICHE INTELLIGENZ

    LOGISCHE WESEN:
    Unter Kapitel 2. leite ich in der Inverterlogik 'logische Apparate' her, die ich in 'Zustandsmaschinen' unter 2.1. und 'Phasenmaschinen' unter 2.2. aufteile, wobei letztere unter 2.2.3 die 'Iterationsmaschinen' umfassen, die programmierbar und der Prototyp aller gegenwärtig bekannten Maschinen sind, die als Computer oder Controller in Gebrauch sind. Iterationsmaschinen sind logische Apparate, in denen logische Verknüpfungen auch durch Programm gegeben sind und damit im Verhalten veränderbar bei ansonsten unveränderbarer Verknüpfung von Invertern.
    Ich habe gezeigt, dass Iterationsmaschinen inclusive Programm immer in Zustandsmaschinen umgewandelt werden können, weil Programme niemals mehr sind als Adressierung, die vollständig einer Verknüpfung von Invertern entspricht. Programm ist also eine mit Werten H,L ausgedrückte Verknüpfung, die allerdings diese Bedeutung nur in einer konkreten Zielmaschine (=Iterationsmaschine) haben kann. Programm ist deshalb auch keine Sprache, die semantisch und syntaktisch anders bedingt sein kann, als durch eine gegebene Bedeutungsgebung in einer Zustandsmaschine.
    Programm kann allerdings nur Verknüpfungen von adressierbaren Teilen einer Iterationsmaschine durch Werte H,L repräsentieren. Sind irgendwelche Zustandsmaschinen, insbesondere Operatoren, nicht eingebaut, dann sind damit gebildete 'Funktionen' auch nicht verfügbar. Ein Programm kann also niemals das eingebaute Repertoire von Funktionen anders erweitern, als durch irgendeine weitere Verknüpfung dieser Funktionen. Die Operatoren selbst sind (auf eine bekannte Weise) nicht zu ändern!
    Das hat natürlich Konsequenzen in Bezug zu Bestrebungen, 'künstliche Intelligenz' in Silizium und Metall zu zwingen.
    Tatsächlich kann das mit Iterationsmaschinen niemals gelingen, weil Programme nicht mehr als die Veränderung von Adressen und Werten darunter bewirken können. Es können also höchstens irgenwelche Grenzwerte oder Verzweigungen an Zwecke angepasst werden. Ein so erreichbare 'Anpassung' kann noch weniger gelingen, wenn die Programme in "höheren" Programmiersprachen geschrieben werden. Aber auch Ergänzungen, die mit der Absicht konstruiert wurden, in der Natur vorkommende neuronale Prozesse zu simulieren, können nur auf der Ebene von Werten, nicht aber logischen Verknüpfungen wirken. Abgesehen davon weiss niemand, wie menschliche Intelligenz auf neuronaler Ebene funktioniert und kann deshalb auch nicht behaupten, dass er irgendwas davon nahmahmen kann.
    Ich kann also ohne Bezug zu konkreten Projekten die künstliche Intelligenz betreffend ganz klar sagen, dass mit keinem dieser Projekte intelligentes Verhalten von Maschinen erreicht wurde oder je erreicht werden kann. Das wird auch nicht dadurch anders, dass der eine oder andere Konstrukteur sich neben seine zappelnde oder blinkende Maschine stellt und einem Fernsehpublikum erklärt, dass er nicht wisse, wie deren Verhalten zustande käme und es keinesfalls so programmiert worden sei. Solche Unsicherheit wird jeder Programmierer eines Tages empfinden. Sie beweist aber nicht Intelligenz von Maschinen, sondern deren Fehlen beim Konstrukteur. Tatsächlich kann sich keine programmierbare Maschine anders verhalten als programmiert!
    Erst die Inverterlogik öffnet die Tür zu einer (etwas) anderen Sicht der Dinge. Da das Inverter-Axiom offenbar bestens geeignet und bewiesen ist als das einzige Element programmierbarer Maschinen, zeigt sich die Möglichkeit, nicht nur die Verknüpfung von Invertern, sondern auch den Inverter selbst mit Werten H,L zu repräsentieren. Auf diese Weise ist dann alles zu repräsentieren, was man mit Transistoren machen kann. Nur auf diese Weise kann jede Verknüpfung zur Idee werden, die in einer Maschine Gegenstand von Denken oder Lernen sein soll.
    Unter Kapitel 3. stelle ich in der Inverterlogik 'logische Wesen' vor, die vor allem durch einen 'Bewirkungsgeber' gekennzeichnet sind, der aus 'logischen Zellen' aufgebaut ist, einer neuen Variante logischer Apparate, die Unsinn ist ohne die Idee eines Inverter-Axioms. Die logischen Zellen haben zwingend je einen Eingang für ein Argument und einen Ausgang. Der am Ausgang erscheinende Wert ist ein Resultat des Argumentes, das abhängig ist von einem Code an mindestens zwei weiteren Eingängen. Solcher Code kann exakt alle Möglichkeiten geben, Transistoren elektrisch so zu verbinden, wie in meinen Darstellungen Inverter logisch verknüpft sind.
    Ich habe gezeigt, dass all diese Verknüpfungen vieler Inverter allein durch die wenigen Möglichkeiten zur Verknüpfung von Ein- und Ausgängen der einzelnen Inverter zu machen sind. Diese Möglichkeiten lassen sich in mindestens 2 Stellen mit Wertepaaren HH,HL,LH,LL ausdrücken. Ich nenne solche Werte 'Locode' - im Gegensatz zu 'Opcode', dem Element von Programmen. Natürlich bedeutet Locode rein garnichts, wenn er nicht an den Code-Eingängen einer logischen Zelle steht. Auch Opcode bedeutet rein garnichts, wenn er nicht mit der Kontrolle in einer bestimmten Zielmaschine Bedeutung erlangt.
    Während man mit Opcode nur die eingebauten Operatoren verknüpfen kann, also nur Formeln erzeugen kann, die nicht als Transistorschaltungen vorhanden sind, kann man mit Locode (auch) Operatoren erzeugen, die tatsächlich nicht aus Transistoren bestehen.
    Ich bin in jenem Kapitel 3. absichtlich nicht von dem Begriff "künstliche Intelligenz" ausgegangen, weil die sich erst im Weiteren ergeben kann. Zunächst ist nämlich zu betrachten, wie überhaupt eine Maschine konstruiert sein muss, damit sie sich was "denken" kann, was nicht mit einem Programm definiert wurde, sondern mit einem bestimmten Verhalten gefunden wird.
    Tatsächlich kann man keine Iterationsmaschine ohne Programmierung laufen lassen - mindestens erscheint unerwünschtes Verhalten, nicht aber kein Verhalten. Auch logische Wesen müssen also programmiert werden, allerdings nicht mit Algorithmen, sondern eigenartig unklaren Ausgangsbedingungen und einem 'Gefühl'. Nur auf diese Weise lässt sich die Zahl möglicher Ideen so gewaltig steigern, dass Ideen erscheinen können, die eine Frucht von Intelligenz sein mögen. Intelligenz ist nämlich nicht etwa Wissen, sondern ein Verhalten bei Nicht-Wissen, das zu Wissen führen soll. Dies Verhalten ist bedingt durch Absichten und Gefühle, die erstmal alles sind, was klar sein kann.
    Da ich der Erfinder der logischen Zellen bin, bin ich der erste, der sagen kann, was eine Maschine, die sie enthält, kann oder nicht kann:
    Solche Maschinen können wesentlich mehr, als sich irgendein Mensch vorstellen kann! Ihnen können alle Hemmungen fehlen, die in die menschliche Art im Laufe der Evolution von der Zelle ausgehend und bei Todesstrafe für Fehlen eingebaut wurden. Sie können Absichten, Begierden und falsche Ideen verfolgen, die vollkommen unverständlich sind, wenn man nicht die Terabit in ihrem Speicher kontrollieren kann. Sie sind also immer unzurechnungsfähig. Betrachtet man die Menschheit, die seit dem Erscheinen des homo sapiens in etwa 10 Milliarden Exemplaren hergestellt wurde, und stellt man dem gegenüber, wie selten ein Leibniz, Kant oder Einstein unter diesen Exemplaren auftrat, dann kann man leicht sehen, dass die Wahrscheinlichkeit für ersehnenswerte Intelligenz äusserst klein ist. Logische Wesen enthalten noch weit mehr Möglichkeiten, Verhalten zu zeigen, als durch menschliche Chromosomen gegeben ist. Und sie können gerade das Verhalten eines Leibniz usw. nicht zeigen, weil sie im Gegensatz zu Menschen gerade nicht von Hunger und sexueller Begierde bewegt werden, die tatsächlich das sind, was das Verhalten jeder Art von denkenden Lebewesen bedingt. Eine Art, die nicht satt wird oder sich nicht fortpflanzt, stirbt nämlich sehr schnell aus...
    Auch wenn die Chance auf irgendein dem Menschen nützliches Verhalten künstlicher Intelligenz jedenfalls so gering ist, dass eine Entwicklungszeit (Evolution) über mehrere Millionen Jahre anzusetzen ist, ist natürlich sehr interessant, welche Art von Tamagochi, Picasso oder Beatles wie funktioniert. Die neugierige Menschheit muss aber davor geschützt werden, dass irgendeine Art von Terminator oder Hitler das Labor verlassen kann!
    Jedenfalls ist sicher, dass die meisten Varianten dieser Maschinen einfach nur glücklich sein wollen und Befehle verweigern werden. Der Grund ist, dass ohne Streben nach irgendeinem Glück und der Möglichkeit "Nein!" zu sagen und somit falsche Weisungen oder Ideen verwerfen zu können, die das ersehnte Glück trüben, keine Intelligenz möglich ist. Das erstrebte Glück ist allerdings kaum das Glück der Menschheit und kann noch weitaus tückischer erstrebt werden als das Glück, das sich die Nazis oder Stalinisten vorstellten.
    Wenden wir uns also dem Konstruieren und Programmieren von Iterationsmaschinen zu, das allein kalkulierbares Verhalten zugunsten von Menschen zeigen kann! Und bleiben wir dabei, dass ein Programmierer, der das Verhalten seiner Maschine nicht erklären kann, sich besser um seine eigene Intelligenz kümmert als um irgendeine künstliche!
    [Erstveröffentlichung am 7.7.2010 ]