Domanda

GJ Woeginger elenca 116 Prove non valide del problema P VS. NP .Scott Aaronson ha pubblicato "< otto segni A rivendicato P ≠ NP La prova è sbagliata " per ridurre l'hypeOgni volta che qualcuno tenta di risolvere P vs. NP.Alcuni ricercatori rifiutati di documenti di lettura a prova di correzione del "P controNP "Domanda .

Ho 3 domande correlate:

    .
  1. Perché le persone non usano gli assistenti di prova che potrebbero verificare se una prova di p vs. NP è corretta?
  2. Quanto duramente o quanto lo sforzo sarebbe quello di dichiarare P vs. NP in un assistente di prova in primo luogo?
  3. Esiste attualmente qualsiasi software che sarebbe almeno in linea di principio in grado di verificare una prova P VS. NP?
È stato utile?

Soluzione

Vado a non essere d'accordo con DW. Penso che sia possibile (anche se difficile) per un risultato di un P vs. NP di essere dichiarato in un assistente di prova, e inoltre, non mi fiderei di presunte prove a meno che non fossero formalizzate in questo modo, a meno che non vengano da Molto fonti stimabili.

In particolare, nessuna delle risorse DW gli Stati si basano sulla teoria del tipo, che è una direzione molto promettente per gli assistenti di prova. Coq è stato utilizzato per formalizzare la prova del teorema a 4 colori tra gli altri, quindi è chiaramente Capace di un pesante sollevamento matematico.

Per rispondere alle tue domande specifiche:

    .
  1. La ragione principale è che i provatori teorema non sono ampiamente accettati nella comunità matematica. Adorandoli prende lo sforzo, e i matematici sono spesso scettici delle tecniche sottostanti (teoria del tipo, matematica costruttiva, ecc.) Ma ci sono alcuni campi in cui i ricercatori leader sono molto confortevoli con la produzione di grandi sviluppi formalizzati in un assistente di prova, come la teoria della categoria, la teoria del linguaggio della programmazione, la logica formale, ecc. Quindi penso che ci sia tanto una questione culturale come problema di fattibilità intrinseca .

    L'altra ragione è che, finora, la maggior parte delle presunte "prove" sono state alle mani a manovelle, che non vogliono formalizzare il loro risultato perché rivela inevitabilmente i difetti.

  2. Non è affatto difficile dichiarare P vs. NP in un assistente di prova. Si potrebbe usare macchine di turing, ma sarebbe probabilmente più facile modellare un semplice linguaggio di programmazione completo di Turing utilizzando famiglie induttive per modellare la semantica su piccola fase e definire il tempo di esecuzione come il numero di passaggi. È possibile definire $ p $ come le lingue accettate da programmi fermando in un numero polinomiale di passaggi e $ np $ come lingue che possono essere verificate in Polytime con un certificato di lunghezza polinomiale.

    Modifica: si scopre ci sono tecniche esistenti < / a> Per dimostrare che gli algoritmi corrono in tempo polinomiale in un varo di teorema. Quindi questo potrebbe essere usato per mostrare un algoritmo di polytime per un problema rigido NP, o per ricavare una contraddizione dall'esistenza di tale algoritmo.

  3. Ci sono tonnellate del software che è in grado di verificare tale prova, a condizione che la prova sia stata scritta utilizzando quel software . I due candidati che ho messo il maggior numero di azioni in è Coq e snello . CoQ in particolare è stato utilizzato per verificare diversi risultati importanti in matematica.

Altri suggerimenti

L'uso di assistenti di prova per questo scopo è certamente possibile in linea di principio, ma sospetto che avrebbe impiegato più sforzo della maggior parte delle persone che scrivono tali prove sarebbero interessate a mettere. Richiederebbe una notevole quantità di sforzo dall'autore di A. Purportato PROVA P VS NP per formalizzare la propria prova.

Traduzione di una prova scritta per gli esseri umani in un formato che un assistente di prova può verificare era noioso e dispendioso in termini di tempo. Ho visto stime tra un giorno a una settimana di sforzo per pagina di prova scritta dall'uomo. Quindi, si deve anche formalizzare tutti i risultati precedenti che la dimostrazione sta creando. Quando guardiamo i recenti tentativi di dimostrare P VS NP, utilizzano in genere un sacco di macchinari avanzati e risultati preesistenti sofisticati da documenti precedenti, che dovrebbero essere formalizzati anche.

A causa di ciò, mi aspetto che sia completamente privo di impressioni formalizzare sia le nuove prove proposte che le prove di tutti i risultati precedenti che si basano, per i tipi di prove presunte che abbiamo visto finora. AS User21820 sottolinea , quale sarebbe più pratico sarebbe formalizzare solo la dichiarazione di tutti i risultati precedenti che sono affidati, ma non le loro prove. Quindi, invece di dimostrare il teorema $ T $ , formalizzeremmo una prova che $ (x \ Land Y \ Land \ cdots) \ implica T $ , dove $ x, y, \ punti $ sono i risultati precedenti che la prova si basa. Questo non è a corto di verificare completamente il risultato della completezza NP, ma se le persone hanno fiducia nei risultati precedenti, consentirebbe alle persone di ottenere fiducia nel nuovo risultato. Questo sarebbe molto più realistico che formalizzare l'intera prova di $ T $ : Mentre ci vorrebbe sforzo per formalizzare tutti i risultati precedenti $ x, y, \ punti $ , è molto meno dello sforzo per formalizzare anche le prove di tali risultati precedenti.

Eppure, sarebbe impegnativo e richiederebbe una spesa non banali di sforzi per formalizzare una prova, anche con questo trucco.

Puoi guardare le biblioteche esistenti dei teoremi in matematica e informatica che sono stati formalizzati e verificati formalmente: vedere http://us.mematamath.org/ e http://formatalmath.org/ e https://www.isa-afp.org/topics.html e http://mizar.org/library/ . Potresti notare che molti di ciò che è formalizzato, riguarda il materiale universitario di base. Siamo lontani dalla formalizzazione di tutti i teoremi insegnati a livello universitario, per non parlare di quelli insegnati a livello di laurea, per non parlare dei nuovi risultati di ricerca.

Per più sfondo, vedere https://math.stackexchange.com/Q/792010/14578 e https://math.stackexchange.com/q/113316/14578 e Https://math.stackexchange.com/Q/1767070/14578 e Https://math.stackexchange.com/Q/2747661/14578 e http://www.ams.org/notices/200811/TX081101170P.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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top