Konstruktivistische Logik ist ein System, das das Gesetz der ausgeschlossenen Mitte sowie die Doppelte Negation als Axiome entfernt. Es ist auf Wikipedia hier und hier beschrieben . Insbesondere erlaubt das System keinen Widerspruchsbeweis.
Ich frage mich, ist jemand mit den Auswirkungen auf die Ergebnisse in Bezug auf Turingmaschinen und formale Sprachen vertraut? Ich stelle fest, dass fast jeder Beweis, dass eine Sprache unentscheidbar ist, auf dem Beweis des Widerspruchs beruht. Auf diese Weise funktionieren sowohl das Argument der Diagonalisierung als auch das Konzept der Reduktion. Kann es jemals einen "konstruktiven" Beweis für die Existenz einer unentscheidbaren Sprache geben, und wenn ja, wie würde sie aussehen?
EDIT: Um klar zu sein, mein Verständnis von Beweis durch Widerspruch in der konstruktivistischen Logik war falsch, und die Antworten haben dies klargestellt.
Antworten:
Ja. Sie brauchen die ausgeschlossene Mitte nicht, um einen Widerspruch abzuleiten. Insbesondere funktioniert die Diagonalisierung immer noch.
Hier ist ein typisches Diagonalisierungsargument von Conor McBride. Bei dieser besonderen Diagonalisierung geht es um Unvollständigkeit, nicht um Unentscheidbarkeit, aber die Idee ist dieselbe. Wichtig zu bemerken ist, dass der von ihm abgeleitete Widerspruch nicht die Form "P und nicht P" hat, sondern die Form "x = x + 1".
Natürlich fragen Sie sich jetzt vielleicht, ob konstruktive Logik "x = x + 1" als Widerspruch zulässt. Es tut. Die Haupteigenschaft eines Widerspruchs ist, dass alles aus einem Widerspruch folgt, und mit "x = x + 1" kann ich tatsächlich konstruktiv "x = y" für zwei beliebige natürliche Zahlen beweisen.
Eine Sache, die an einem konstruktiven Beweis anders sein könnte, ist die Art und Weise, in der "unentscheidbar" definiert wird. In der klassischen Logik muss jede Sprache entscheidbar oder unentscheidbar sein. so bedeutet "unentscheidbar" einfach "nicht entscheidbar". In der konstruktiven Logik ist "nicht" jedoch keine primitive logische Operation, daher können wir Unentscheidbarkeit nicht auf diese Weise ausdrücken. Stattdessen sagen wir, dass eine Sprache unentscheidbar ist, wenn die Annahme, dass sie entscheidbar ist, zu einem Widerspruch führt.
Obwohl "nicht" in der Konstruktionslogik kein Primitiv ist, definieren wir "nicht P" in der Regel als syntaktischen Zucker für "P kann verwendet werden, um einen Widerspruch zu konstruieren" Beweisen Sie konstruktiv eine Aussage der Form "nicht P" wie "Sprache L ist unentscheidbar".
quelle
Wenn wir konstruktiv über die Beweisbarkeit klassischer Aussagen sprechen, kommt es oft darauf an, wie wir sie formulieren. Klassisch äquivalente Formulierungen müssen konstruktiv nicht äquivalent sein. Auch ist es wichtig, was Sie genau mit einem konstruktiven Beweis meinen, es gibt verschiedene Schulen des Konstruktivismus.
Zum Beispiel wäre eine Aussage, dass es eine nicht berechenbare Gesamtfunktion gibt, in solchen Varianten der konstruktiven Mathematik, die die Church-Turing-These als Axiom voraussetzen (dh jede Funktion ist berechenbar), nicht wahr.
Wenn Sie jedoch vorsichtig sind, können Sie es so formulieren, dass es nachweisbar ist: Für jede berechenbare Aufzählung von insgesamt berechenbaren Funktionen gibt es eine insgesamt berechenbare Funktion, die nicht in der Aufzählung enthalten ist.
Diesen Beitrag von Andrej Bauer fanden Sie vielleicht interessant.
ps: Wir können die Diagonalisierung auch aus kategorietheoretischer Sicht betrachten. Sehen
quelle
Ich denke, dass der Kardinalitätsbeweis immer noch gültig ist, was die Existenz von Sprachen demonstriert, die nicht berechenbar sind (also definitiv unentscheidbar).
Der sofortige Beweis ist ziemlich einfach. Es wird lediglich festgestellt, dass Turing Machines in einem endlichen Alphabet codiert sind (kann auch binär sein), es gibt also zählbar viele und die Menge aller Sprachen über ein festes Alphabet (kann auch wieder binär sein) ) ist die Menge aller Teilmengen der Menge von Zeichenketten über diesem Alphabet - dh die Potenzmenge einer abzählbaren Menge, und muss unzählbar sein. Daher gibt es weniger Turing-Maschinen als Sprachen, sodass etwas nicht berechenbar ist.
Dies scheint mir konstruktiv genug zu sein (obwohl es unmöglich wäre, es physisch zu verfolgen, gibt es Ihnen die Möglichkeit, auf eine Reihe von Sprachen zu zeigen und zu wissen, dass eine nicht berechenbar ist).
Wir könnten uns dann fragen, ob es möglich ist, zu zeigen, dass abzählbare und unzählbare Mengen unterschiedliche Kardinalitäten haben, und insbesondere eine Diagonalisierung zu vermeiden. Ich denke das ist noch möglich. Cantors ursprüngliches Argument scheint ebenfalls angemessen konstruktiv zu sein.
Natürlich muss dies wirklich von jemandem überprüft werden, der viel mehr über konstruktivistische Logik weiß.
quelle
Ich denke, ich stimme anderen zu, dass das Argument der Diagonalisierung konstruktiv ist, obwohl es nach meinem Kenntnisstand in einigen Kreisen Meinungsverschiedenheiten darüber gibt.
Ich meine, nehmen wir an, wir betrachten die Menge aller entscheidbaren Sprachen. Mit Diagonalisierung kann ich eine unentscheidbare Sprache konstruieren. Es ist erwähnenswert, dass ich "Konstruktivismus" und "Finitismus" überhaupt nicht als dasselbe betrachte, obwohl ich historisch denke, dass dies verwandte Bögen waren.
Erstens denke ich, dass alle - auch Konstruktivisten - der Meinung sind, dass die Menge der entscheidbaren Sprachen abzählbar ist. Da der Satz von Turing-Maschinen abzählbar ist (wir können alle gültigen TMs mit endlichen Zeichenfolgen codieren), folgt diese Vereinbarung ziemlich leicht.
Technisch haben wir also eine Sprache konstruiert, die "nicht entscheidbar" ist. ob ein Konstruktivist argumentieren würde, dass "nicht entscheidbar" nicht mit "nicht entscheidbar" verwechselt werden sollte, ist eine interessante Frage, die ich jedoch nur schlecht beantworten kann.
Ich denke, dies zeigt Folgendes: Wir können konstruktiv beweisen, dass es Sprachen gibt, die nicht von Turing-Maschinen entschieden werden. Wie Sie dies in einem bestimmten Rahmen interpretieren, ist eine schwierigere Frage.
quelle