Frage

gj woeginger listet 116 Ungültige Beweise von P vs. NP-Problem .Scott Aaronson veröffentlicht " acht Anzeichen eines beanspruchten P ≠ NP-Beweiss ist falsch ", um den Hype zu reduzierenJedes Mal, wenn jemand versucht, P vs. NP zu senken.Einige Forscher sind sogar Abwechsle, die Proof-Lesen-Papiere ablehnen, die das "P gegenüberNP "Frage .

Ich habe 3 bezogene Fragen:

    .
  1. Warum verwenden die Menschen keine Proof-Assistenten, die überprüfen könnten, ob ein Nachweis von p vs. np korrekt ist?
  2. Wie hart oder wie viel Mühe wäre es, P vs. NP in einem Proof-Assistenten an erster Stelle zu sagen?
  3. Gibt es derzeit jede Software, die zumindest grundsätzlich in der Lage wäre, einen P vs. NP-Beweis zu überprüfen?
War es hilfreich?

Lösung

Ich werde mit DW nicht einverstanden sein. Ich denke, dass es möglich ist (wenn auch schwierig) für ein P-vs. NP-Ergebnis, das in einem Proof-Assistenten angegeben werden soll, und außerdem würde ich nicht angenommene Beweise trauen, es sei denn, sie wurden auf diese Weise formalisiert, es sei denn, sie kamen aus Sehr seriöse Quellen.

Insbesondere basiert kein der Ressourcen DW-Staaten auf der Typentheorie, was eine sehr vielversprechende Richtung für Proof-Assistenten ist. COQ wurde an den Nachweis des 4-farbigen Theorems unter anderem formalisieren, also ist es eindeutig in der Lage, ein schweres mathematisches Anheben zu erhalten.

Um Ihre spezifischen Fragen zu beantworten:

    .
  1. Der Hauptgrund ist, dass die Begriffe in der mathematischen Gemeinschaft nicht weithin akzeptiert werden. Wenn Sie sie lernen, braucht Anstrengung, und Mathematiker sind oft skeptisch der zugrunde liegenden Techniken (Typtheorie, konstruktive Mathematik usw.) Es gibt jedoch einige Felder, in denen führende Forscher sehr angenehm sind, mit großen Entwicklungen in einem Proof-Assistenten, z. B. der Kategorientheorie, der Programmiersprache-Theorie, der formalen Logik usw., sehr angenehm zu gestalten. .

    Der andere Grund ist, dass die meisten der angeblichenen "Beweise" bisher von Kurbeln gewesen sind, die ihr Ergebnis nicht formalisieren wollen, weil er unweigerlich die Fehler offenbaren wird.

  2. Es ist überhaupt nicht schwer, P vs. NP in einem Proof-Assistenten anzugeben. Man könnte Turing-Maschinen verwenden, aber es wäre wahrscheinlich einfacher, eine einfache Turning-komplette Programmiersprache mit induktiven Familien zu modellieren, um Small-Step-Semantik zu modellieren und die Laufzeit als die Anzahl der Schritte ein Programm zu definieren. Sie könnten $ P $ definieren, da die von Programmen akzeptierten Sprachen in einer Polynomanzahl der Schritte angenommen werden, und $ NP $ als Sprachen, die in PolyTIME mit einem Zertifikat mit Polynomlängen verifiziert werden können.

    edit: Es wird herausgestellt Es gibt vorhandene Techniken < / a> Zeigen, dass Algorithmen in einem Theorem-Besprechung in der Polynomialzeit laufen. Dies könnte also verwendet werden, um entweder ein PolyTime-Algorithmus für ein NP-Hard-Problem zu zeigen oder einen Widerspruch von der Existenz eines solchen Algorithmus abzuleiten.

  3. Es gibt Tonnen von Software, die einen solchen Nachweis überprüft, , vorausgesetzt, der Nachweis wurde mit dieser Software geschrieben. Die beiden Kandidaten, die ich den größten Teil der Aktie in Sachen coq und mager . Insbesondere COQ wurde verwendet, um mehrere große Ergebnisse in der Mathematik zu überprüfen.

Andere Tipps

Verwendung von Proof-Assistenten für diesen Zweck ist im Prinzip sicherlich möglich, aber ich vermute, dass es mehr anstügte, als die meisten Leute, die solche Beweise schreiben, daran interessiert sind, einzunehmen. Es erfordern einen erheblichen Anstrengungsaufwand vom Autor von a Angebürter P-VS-NP-Beweis, um ihren Beweis zu formalisieren.

Übersetzen eines Nachweises, der für den Menschen in ein Format geschrieben wurde, das ein Nachweisassistent bestätigen kann, war langwierig und zeitaufwändig. Ich habe Schätzungen von einem Tag bis zu einer Woche der Anstrengung pro Seite des human schriftlichen Beweises gesehen. Dann muss man auch alle vorherigen Ergebnisse formalisieren, an denen der Beweis aufgebaut ist. Wenn wir die jüngsten Versuche beim Nachweis von P-NP ansehen, verwenden sie in der Regel viele fortgeschrittene Maschinen und anspruchsvolle, anspruchsvolle, vorbestehende Ergebnisse von früheren Papieren, die auch formalisiert werden müssten.

Aus diesem Grund erwarte ich, dass es völlig unpraktisch sein würde, sowohl den vorgeschlagenen neuen Beweis als auch die Beweise aller früheren Ergebnisse zu formalisieren, von denen er sich angeblich angeblich angeblich angeblich angeblich erstellt hat. Als user21820 weist auf , was praktischer wäre, um nur die Erklärung aller vorherigen Ergebnisse zu formalisieren, auf denen sich er stützt, aber nicht ihr Beweis. Anstatt den Theorem $ T $ zu beweisen, sollten wir einen Nachweis formalisieren, dass $ (X \ Land Y \ Land \ CDOTs) \ Impliziert t $ , wobei $ x, y, \ dots $ die vorherigen Ergebnisse sind, auf die der Nachweis angewiesen ist. Dies fällt kurz, um das Ergebnis des NP-Vollständigkeit vollständig zu überprüfen, aber wenn Menschen an den vorherigen Ergebnissen Glauben haben, würde es den Menschen erlauben, das Vertrauen in das neue Ergebnis zu gewinnen. Dies wäre viel realistischer, als den gesamten Nachweis des gesamten Nachweises von $ T $ zu formalisieren: Während es sich um einigen Anstrengungen unternimmt, um alle vorherigen Ergebnisse zu formalisieren $ x, y, \ dots $ , es ist viel weniger als der Bemühen, die Beweise dieser vorherigen Ergebnisse zu formalisieren.

Trotzdem wäre es herausfordernd und erfordern einen nicht trivialen Aufwand der Anstrengung, um einen Beweis selbst mit diesem Trick zu formalisieren.

Sie können vorhandene Bibliotheken der Sehenswürdigkeiten in Mathematik und Informatik ansehen, die formalisiert und formal überprüft wurden: siehe http://us.metamath.org/ und http://formalmath.org/ und https://www.isa-afp.org/topics.html und http://mizar.org/library/ . Sie könnten feststellen, dass es viel von dem, was formalisiert ist, das grundlegende Bachelor-Material betrifft. Wir sind weit entfernt von der Formalisierung aller Theorems, die auf einem Bachelor-Niveau unterrichtet werden, geschweige denn die auf einem Graduiertenstufe lehrten, geschweige denn neue Forschungsergebnisse.

für mehr Hintergrund, siehe https://math.steckexchange.com/q/792010/14578 und https://math.steckexchange.com/q/113316/14578 und Https://math.steckexchange.com/q/1767070/14578 und Https://math.steckexchange.com/q/2747661/14578 und http://www.ams.org/notices/200811/tx081101370p.pdf .

I can give a direct answer to (2): $P\ne NP$ has been stated in Lean (along with the other main results of Cook's paper, where the conjecture was first described), as part of the Formal Abstracts project.

I believe your question is not that much of a proper theory question, so with your permission I'll give it a not-so-technical answer.

Why are people not using proof assistants that could verify whether a proof of P vs. NP is correct?

Because CS theorists rarely (perhaps extremely rarely) write proofs in machine-verifiable form.

How hard or how much effort would it be to state P vs. NP in a proof assistant in the first place?

Very hard at least in the "uninteresting" sense that @DW explained; but it could be anywhere from easy to impossible in the "interesting" sense of expressing the concepts in a proof, if it were to exist.

But you know, this will never happen because:

  1. Until a proof is found it can't be done anyway
  2. You have to know the proof like the back of your hand to convert it into machine-verifiable form.
  3. ... and when enough people know the proof, they will either have found a flaw or be satisfied that it's valid and not care about machine-checking it.

Is there currently any software that would be at least in principle capable of verifying a P vs. NP proof?

I'm not well-versed enough in proof verification software to comment about what's actually implemented, but it's probably nearly-impossible to answer your question, because - who knows what form such a proof will take? And thus - how would you know, now, if it's expressible in such a way that your proof verifier can process?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top