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:
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.:
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]):
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.
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.
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:
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:
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 ]