Nach dem, was ich verstehe (was sehr wenig ist, bitte korrigieren Sie mich, wo ich mich irre!), Beschäftigt sich die Theorie der Programmiersprachen oft mit "intuitionistischen" Beweisen. Nach meiner eigenen Interpretation müssen wir die Konsequenzen der Berechnung für Logik und Beweisbarkeit ernst nehmen . Ein Beweis kann nur existieren, wenn ein Algorithmus existiert, der die Konsequenzen aus den Hypothesen konstruiert. Wir können das Prinzip der ausgeschlossenen Mitte beispielsweise als Axiom ablehnen, weil es ein Objekt aufweist, das nichtkonstruktiv entweder oder ¬ X ist.
Die obige Philosophie könnte dazu führen, dass wir intuitionistisch gültige Beweise denen vorziehen, die es nicht sind. Ich habe jedoch keine Bedenken hinsichtlich der tatsächlichen Verwendung von intuitionistischer Logik in Artikeln in anderen Bereichen des theoretischen CS gesehen. Wir scheinen glücklich zu sein, unsere Ergebnisse mit klassischer Logik zu beweisen. Beispielsweise könnte man sich vorstellen, das Prinzip der ausgeschlossenen Mitte zu verwenden, um zu beweisen, dass ein Algorithmus korrekt ist. Mit anderen Worten, wir kümmern uns um ein rechnerisch begrenztes Universum und nehmen es in unseren Ergebnissen ernst, aber nicht unbedingt in unseren Beweisen für diese Ergebnisse.
1. Haben Forscher im theoretischen CS jemals Bedenken, intuitionistisch gültige Beweise zu verfassen? Ich könnte mir leicht ein Teilgebiet der theoretischen Informatik vorstellen, das zu verstehen sucht, wann TCS-Ergebnisse, insbesondere algorithmische, in intuitionistischer Logik enthalten sind (oder interessanterweise, wenn dies nicht der Fall ist). Aber ich bin noch keinem begegnet.
2. Gibt es ein philosophisches Argument dafür? Es scheint, als könnte man behaupten, dass die Ergebnisse der Informatik, wenn möglich, intuitionistisch bewiesen werden sollten, und wir sollten wissen, welche Ergebnisse z . B. PEM erfordern . Hat jemand versucht, ein solches Argument zu machen? Oder besteht vielleicht Einigkeit darüber, dass diese Frage einfach nicht sehr wichtig ist?
3. Als Nebenfrage bin ich neugierig, Beispiele für Fälle zu kennen, in denen es tatsächlich darauf ankommt: Gibt es wichtige TCS-Ergebnisse, die in der klassischen Logik, aber nicht in der intuitionistischen Logik bekannt sind? Oder verdächtigt, nicht an der intuitionistischen Logik festzuhalten.
Entschuldigung für die Weichheit der Frage! Nach Anhörung der Sachverständigen kann eine Neuformulierung oder Neuinterpretation erforderlich sein.
Antworten:
Wie ich in den Kommentaren sagte, ist die intuitionistische Logik nicht der Hauptpunkt. Der wichtigere Punkt ist ein konstruktiver Beweis. Ich denke, Martin-Löfs Typentheorie ist für die Programmiersprachtheorie viel relevanter als die intuitionistische Logik, und es gibt Experten, die argumentiert haben, dass Martin-Löfs Arbeit der Hauptgrund für die Wiederbelebung des allgemeinen Interesses an konstruktiver Mathematik ist.
Die Berechenbarkeitsinterpretation von Konstruktivität ist eine mögliche Perspektive, aber nicht die einzige. Wir sollten hier vorsichtig sein, wenn wir konstruktive Beweise mit klassischen Beweisen vergleichen wollen. Obwohl beide möglicherweise dieselben Symbole verwenden, unterscheiden sich die Bedeutungen dieser Symbole.
Es ist immer gut daran zu denken, dass klassische Beweise in intuitionistische Beweise übersetzt werden können. Mit anderen Worten, die klassische Logik ist gewissermaßen ein Teilsystem der intuitionistischen Logik. Somit können Sie klassische Beweise in gewissem Sinne realisieren (etwa mit Hilfe von berechenbaren Funktionen). Auf der anderen Seite können wir uns konstruktive Mathematik als ein mathematisches System im klassischen Kontext vorstellen.
Am Ende sind Formalismen, ob klassisch oder konstruktiv, Werkzeuge für uns, um Aussagen auszudrücken. Ein klassisches Theorem zu nehmen und es konstruktiv zu beweisen, ohne diese Perspektive, macht meiner Meinung nach nicht viel Sinn. Wenn ich klassisch sage, meine ich etwas anderes als das, was ich konstruktiv A ∨ B sage . Sie können argumentieren, was "sollte" die wahre Bedeutung von " ∨ " sein soll, aber ich denke, das ist nicht interessant, wenn wir nicht diskutieren, was wir überhaupt ausdrücken wollen. Meinen wir (mindestens) einen von ihnen und wissen wir, welchen? Oder meinen wir einfach, einer von ihnen hält?A ∨ B A ∨ B ∨
Nun, mit dieser Perspektive, wenn wir eine Aussage wie beweisen wollen und wir wollen , dass diese von einer Abbildung beziehen x bis zu einem gewissen y . Sie können dasselbe explizit mit einer komplizierteren Formel wie "Der Algorithmus A hat die Eigenschaft, dass für alle x∀ x ∃ y φ ( x , y) x y erfüllt dann der bessere Weg zu Express kann der konstruktive Weg sein. Wenn wir uns dagegen nur um die Existenz von y kümmern und nicht darum, wie wir sie finden, dann ist der klassische Weg wahrscheinlich sinnvoller. Wenn Sie die Aussage konstruktiv beweisen, bauen Sie implizit auch einen Algorithmus auf, um y aus x zu findenφ ( x , y) y y x EIN x , ", wobei A ein explizit angegebener Algorithmus ist. Wenn nicht klar ist, warum man die konstruktive Ausdrucksweise bevorzugen mag, denken Sie an Programmiersprachen als Analogie: Sie können ein Programm für den MST-Algorithmus von Kruskal in x86-Assemblersprache schreiben, in dem Sie sich um viele Nebenaspekte oder um Sie kümmern müssen kann ein Programm in Python schreiben.φ ( x , A ( x ) ) EIN
Warum wenden wir in der Praxis keine intuitionistische Logik an? Es gibt verschiedene Gründe. Zum Beispiel sind die meisten von uns nicht mit dieser Einstellung geschult. Auch das Finden eines klassischen Beweises für eine Aussage könnte viel einfacher sein als das Finden eines konstruktiven Beweises dafür. Oder wir interessieren uns für Details auf niedriger Ebene, die in einer konstruktiven Umgebung verborgen und nicht zugänglich sind (siehe auch lineare Logik ). Oder wir sind einfach nicht daran interessiert, das zusätzliche Zeug zu bekommen, das mit einem konstruktiven Beweis geliefert wird. Und obwohl es Tools zum Extrahieren von Programmen aus Beweisen gibt, benötigen diese Tools im Allgemeinen sehr detaillierte Beweise und waren für den allgemeinen Theoretiker nicht benutzerfreundlich genug. Kurz gesagt, zu viel Schmerz für zu wenig Nutzen.
Hier ist ein möglicher Grund, warum wir in Theorie A nicht viele konstruktive Beweise sehen: Unsere Sätze in Theorie A sind oftΠ02 PEIN PEIN PEIN
Ich erinnere mich, dass Douglas S. Bridges in der Einleitung zu seinem Buch zur Berechnungstheorie argumentierte, wir sollten unsere Ergebnisse konstruktiv beweisen. Er gibt ein Beispiel, das IIRC im Wesentlichen wie folgt ist:
Am Ende sollten wir bedenken, dass diese Symbole, obwohl wir dieselben Symbole für die klassische und die intuitionistische Logik verwenden, unterschiedliche Bedeutungen haben und die zu verwendende davon abhängt, was wir ausdrücken möchten.
Für Ihre letzte Frage denke ich, dass der Satz von Robertson-Seymour ein Beispiel für einen Satz ist, von dem wir wissen, dass er klassisch wahr ist, für den wir jedoch keinen konstruktiven Beweis haben. Siehe auch
quelle
Es lohnt sich darüber nachzudenken, WARUM intuistionistische Logik die natürliche Logik für die Berechnung ist, da sich die Menschen allzu oft in den technischen Details verlieren und das Wesentliche des Problems nicht erfassen.
Ganz einfach, klassische Logik ist eine Logik perfekter Information: Alle Aussagen innerhalb des Systems werden als eindeutig wahr oder falsch bekannt oder erkennbar angenommen.
Intuistische Logik hingegen bietet Raum für Aussagen mit unbekannten und nicht erkennbaren Wahrheitswerten. Dies ist für die Berechnung von wesentlicher Bedeutung, da aufgrund der Unentscheidbarkeit der Beendigung im allgemeinen Fall nicht immer sicher ist, wie der Wahrheitswert einiger Aussagen sein wird oder ob bestimmten Aussagen jemals ein Wahrheitswert zugewiesen werden kann oder nicht .
Meiner Meinung nach sind diese "semantischen" Gründe eine viel wichtigere Motivation für die Verwendung von intuistionistischer Logik zur Berechnung als alle anderen technischen Gründe, die man aufstellen könnte.
quelle
Reale kryptografische Hash-Funktionen wie MD5 und SHA sind schlüssellos. Daher ist es ziemlich schwierig, Techniken aus der theoretischen Kryptographie anzuwenden, um über ihre Sicherheit nachzudenken. Der einfache Grund dafür: Für jede schlüssellose Hash-Funktion gibt es ein sehr kleines Programm / einen sehr kleinen Gegner, der eine Kollision unter dieser Hash-Funktion ausgibt. nämlich ein programm das eine solche kollision hat - die muss existieren! - fest codiert.
Phil Rogaways Arbeit Formalizing Human Ignorance: Kollisionsresistentes Hashing ohne Schlüssel beschäftigt sich mit diesem Problem. Darin zeigt er, dass einige sehr gängige Theoreme für verschlüsselte Hash-Funktionen (wie das Merkle-Damgård-Konstruktions- und Hash-Then-Sign-Paradigma) mit "intuitionsfreundlichen" Theoremaussagen für nicht verschlüsselte Hash-Funktionen angepasst und erneut bewiesen werden können.
quelle
Hier ist ein schönes Kapitel über Intuitionistische Logik aus einem umfassenden Online-Buch Logic for Computer Science , 300 Seiten. [1] Abschnitt 9.5, Seite 210, Zusammenfassung auf Seite 220:
Eine weitere naheliegende Perspektive kommt von TCSist Andrej Bauer, der über "Mathematik und Rechnen; Mathematik für Computer" [2] schreibt und im Grunde sagt, dass "intuitionistische Mathematik gut für die Physik ist". Die Präsentation bezieht sich hauptsächlich auf die Physik, aber für diejenigen, die CS als eng mit der Physik verbunden betrachten, wird die Ideologie im Allgemeinen das TCS beeinflussen.
[1] Logik für Informatik, Reeves und Clark
[2] Intuitionistische Mathematik für die Physik Bauer
quelle