Wann kümmert sich Theoretische CS um intuitionistische Beweise?


23

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.X¬X

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.


3
Ein Aspekt dieser Frage wurde "zu Tode" untersucht. Der Name für die Verbindung zwischen intuitionistischen Beweisen und Programmen lautet Curry-Howard-Korrespondenz . Kurz gesagt, Programme = intuitionistische Beweise, Typen = Sätze, doppelte Negation = Sprünge.
Martin Berger

Ein wichtiges TCS-Ergebnis, von dem bekannt ist, dass es nicht in der intuitionistischen Logik steckt, sondern in der klassischen Logik: Jedes Programm wird entweder beendet oder für einen unbegrenzten Zeitraum ausgeführt. :)
Cody

1
@MartinBerger - ja, aber um meine Frage anders zu formulieren: Interessiert es uns wirklich, ob die Beweise, die wir schreiben, intuitionistisch sind oder ob wir nur daran interessiert sind, solche Beweise abstrakt zu studieren ?
USUL

1
@cody, aka Markovs Prinzip . + usul, ich denke, Sie denken nicht an intuitionistische Logik, sondern an konstruktive Mathematik . In der intuitionistischen Logik allein kann man nicht viel machen, und es scheint mir, dass Ihre Betonung des Intuitionismus darauf zurückzuführen ist, dass Sie ihn nicht von der konstruktiven Mathematik unterscheiden.
Kaveh

@usul Ja, das ist uns wichtig, denn nach der Curry-Howard-Korrespondenz sind intuitionistische Beweise Programme in "netten" Programmiersprachen (z. B. keine funky Kontrollkonstrukte), während echte klassische Beweise Programme in komplizierteren Sprachen sind.
Martin Berger

Antworten:


6

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?EINBEINB

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 xx y φ(x,y)xy 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)yyxEINx , ", 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,EIN(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 Π20PEINPEINPEIN

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:

Angenommen, Sie arbeiten für ein großes Softwareunternehmen und Ihr Manager bittet Sie um ein Programm zur Lösung eines Problems. Wäre es akzeptabel, mit zwei Programmen zurückzukehren und Ihrem Manager eine dieser beiden Lösungen korrekt mitzuteilen, aber ich weiß nicht, welche?

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


Was ist "Theorie A" und warum sollte ich mich speziell um Beweise darin kümmern?
Stella Biderman


7

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 .

¬¬PP läuft letztendlich darauf hinaus, einen Wert "aus dem Nichts" herauszuholen, anstatt ihn direkt zu berechnen.

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.


3

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.


0

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:

Intuitionistische Logik entstand aus der konstruktivistischen Bewegung in der Mathematik, die nichtkonstruktive Existenzbeweise oder Beweise auf der Grundlage des Gesetzes der ausgeschlossenen Mitte ablehnte. In jüngster Zeit ergab sich eine Verbindung zwischen intuitiver Mathematik und Programmierung aus der Beobachtung, dass Sätze und Typen (im Sinne der Programmierung) gleichwertig sind. Die Algorithmenentwicklung in diesem formalen System, das auf natürlichen Deduktionen basiert, besteht darin, eine Spezifikation in logischer Notation zu schreiben und dann als Typ zu betrachten, um zu beweisen, dass sie nicht leer ist. Da die zugrunde liegende Logik konstruktiv ist, ist der Beweis, ob er ausgeführt werden kann,

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.

Computerinterpretation. Dies ist die Interpretation der in der Informatik gebräuchlichen intuitionistischen Logik. Wir betrachten alle Mengen als durch geeignete Datenstrukturen dargestellt - eine vernünftige Sichtweise für einen Informatiker. Dann gilt eine Aussage als wahr, wenn es ein Programm (rechnerische Beweise) gibt, das ihre Wahrheit bezeugt.

[1] Logik für Informatik, Reeves und Clark

[2] Intuitionistische Mathematik für die Physik Bauer

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.