Un bug del correttore di bozze ha mai invalidato una prova importante?


29

La maggior parte (tutti?) Degli assistenti di prova hanno risolto alcuni bug relativi alla solidità. Tuttavia, da quelli che ho visto questi bug di solito sono difficili da trovare involontariamente, e i risultati dimostrati prima che il bug venga risolto generalmente reggono dopo la correzione.

Tre domande, in ordine di forza:

  1. Una correzione di bug così solida ha mai causato il fallimento di una prova importante, senza modificarla?
  2. Se (1) è vero, sono mai state necessarie importanti modifiche per correggere la prova?
  3. Se (2) è vero, qualcuno ha dimostrato un teorema maggiore sbagliato a causa di un bug di solidità?

Lascio la definizione di "maggiore" agli altri.


11
Questo probabilmente dimostra la mia ignoranza, ma un teorema maggiore è mai stato stabilito per la prima volta con un assistente di prova? Ovviamente conosco il teorema dei 4 colori e la congettura di Keplero, ma non credo che le prime prove lì abbiano usato gli assistenti di prova. Io sono curioso.
Sasho Nikolov,

1
Credo che nessun essere umano avesse dimostrato che un compilatore fosse corretto, e che fosse corretto, fino a CompCert. Ma hai ragione, ciò renderebbe (3) in particolare una domanda meno interessante.
Geoffrey Irving,

4
@SashoNikolov: non è molto rilevante, dal momento che la maggior parte delle prove fatte in pratica dagli assistenti non riguarda la matematica. Di solito si tratta di sistemi software o di proprietà di sistemi formali, ecc. (È solo una questione di tempo in cui la stragrande maggioranza delle prove fatte su questo pianeta non riguarda la matematica pura. I robot stanno arrivando.) Sarebbe piuttosto fastidioso. se, ad esempio, qualcuno ha dimostrato di usare un assistente di prova che un sistema critico è sicuro, e in seguito si è scoperto che ha usato accidentalmente un'incoerenza.
Andrej Bauer,

1
Grazie @AndrejBauer. Quindi "prova maggiore" e "teorema maggiore" qui non significano maggiore per i matematici della ricerca ma prove della correttezza di importanti sistemi critici?
Sasho Nikolov,

1
Penso che ogni prova considerata importante da un numero sufficiente di persone (matematici, esperti di sicurezza, ingegneri del software) conterebbe. Temo che non lo scopriremo perché se qualcuno si imbattesse in questo problema, è probabile che lo abbiano risolto tranquillamente.
Andrej Bauer,

Risposte:


11

Per quanto ne sappia, nessuna prova verificata da una macchina di un complesso sviluppo matematico è mai stata ritirata.

Come Andrej sottolinea però, succede di tanto in tanto che i bug solidità di rottura non affiorano in questi sistemi (anche se di solito non in silenzio , come suggerisce Andrej), e la correzione di quel bug coinvolge alcuni cambiamenti alle prove esistenti, o, più probabilmente, di la libreria standard del sistema di prova in questione.

Alcuni esempi di tali prove di rottura delle librerie in Coq:

https://coq.inria.fr/bugs/show_bug.cgi?id=4294

https://sympa.inria.fr/sympa/arc/coq-club/2013-12/msg00119.html

È difficile dire se le prove stabilite dipendessero dall'incoerenza, dal momento che dopo la correzione richiedevano piccole modifiche per essere accettate dal correttore di prove. Ma questo accade ad ogni aggiornamento non banale!

La mia opinione personale è che è improbabile che si verifichino tali errori, dal momento che la prova della carta deve essere ben rifinita prima ancora di poter tentare la formalizzazione della macchina.

Le incoerenze nei quadri di prova di solito richiedono l'uso pesante di strane combinazioni di caratteristiche esoteriche, e quindi molto raramente spuntano "per caso".


3
Mi riferivo alle persone che risolvono i problemi nei loro script di prove in silenzio , o anche inconsapevolmente, come ha sottolineato Geoffrey, come una reazione a bug negli assistenti di prova. Naturalmente, le incoerenze negli assistenti di prova vengono sempre accolte con un livello sorprendente di eccitazione. I matematici dovrebbero avere un'incoerenza in matematica, il che renderebbe un paio di mesi interessanti.
Andrej Bauer,

2
Cosa succede con le persone che mi lanciano link Wikipedia? @RickyDemer, ti prego gentilmente di spiegare il tuo punto. Ho sentito parlare del paradosso di Russell, lo sai. Questo è accaduto più di 100 anni fa e ha portato a un'eccellente matematica. Propongo che siamo maturi per un altro.
Andrej Bauer,

Accetterò questa risposta per ora, ma ovviamente la accetterò se qualcuno risponde nell'altra direzione! (Informativa completa: questa era la risposta che speravo.)
Geoffrey Irving,

1
@GeoffreyIrving La risposta è alquanto insoddisfacente, dal momento che è difficile per me provare una mancanza di ritrattazioni! La risposta si basa quindi in qualche modo sulla mia mancanza di conoscenza, anche se ci sono state così poche formalizzazioni di macchine su larga scala che sono almeno un po 'fiducioso nella mia risposta. Ho anche sentito che alcune importanti formalizzazioni nel metodo B hanno dimostrato di avere assunzioni incoerenti (è necessario aggiungere molti assiomi per affermazioni non banali, e le raccolte di assiomi prese insieme sono state successivamente mostrate come ...
cody

1
... incoerente). Sfortunatamente, non riesco a trovare un riferimento per questo, quindi non l'ho incluso nella mia risposta. Anche la formalizzazione riguardava un vasto programma e non la pura matematica.
cody
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.