Uso dell'assistente alla prova nella ricerca della teoria della complessità?


14

Considerando gli argomenti trattati in una conferenza come STOC, alcuni algoritmi o ricercatori di complessità utilizzano attivamente COQ o Isabelle? Se è così, come lo usano nella loro ricerca? Suppongo che la maggior parte delle persone non userebbe tali strumenti perché le prove sarebbero di livello troppo basso. Qualcuno sta usando questi assistenti di prova in un modo critico per la loro ricerca, al contrario di un buon supplemento?

Sono interessato perché potrei iniziare a imparare uno di quegli strumenti e sarebbe divertente conoscerli nel contesto di prove di riduzioni, correttezza o tempo di esecuzione.


1
Vuoi escludere "Teoria B" e in particolare la teoria dei linguaggi di programmazione? La mia comprensione è che gli assistenti di prova vengono usati molto più frequentemente in PL ...
Joshua Grochow,

1
Ho cercato il termine, immagino di essere concentrato sulle applicazioni all'interno di "Teoria A"
nish2575,

1
Per quanto ne so, la maggior parte della Teoria A appartiene alla stessa categoria della maggior parte del resto della matematica: alcune delle basi sono state aggiunte finora a questi sistemi, quindi i teoremi più interessanti farebbero uno sforzo significativo per sviluppare prima infrastruttura per implementare le definizioni necessarie. Ci sono alcune parti interessanti della teoria degli automi che sono state formalizzate, quindi potrebbe essere un posto dove guardare.
András Salamon,

1
I risultati nella teoria della complessità tendono ad essere dimostrabili in sistemi molto più deboli, normalmente non hai nemmeno bisogno di PA. Coq e Isabeller non sono molto adatti alla teoria della complessità, direi. Ci sono schizzi di prova quasi formali come quelli nel libro di Cook e Nguyen, ma l'interesse principale è dimostrarli nel sistema di prove relativo alle classi di complessità. Perché uno vorrebbe dimostrarli dicendo Switching Lemma in Coq quando può essere provato in sistemi molto più deboli?
Kaveh,

2
@Kaveh La debolezza / la forza di vari sistemi di prova non è un problema qui: vorremmo formalmente verificare le prove nella teoria della complessità per lo stesso motivo per cui vorremmo verificare i programmi: avere livelli più alti di affidabilità. Inoltre, è anche una sfida interessante estendere la teoria dei prover in modo che possano gestire le prove della teoria della complessità in modo più conveniente.
Martin Berger,

Risposte:


15

Una regola empirica generale è che più astratta / esotica è la matematica che vuoi meccanizzare, più diventa facile. Al contrario, più la matematica è concreta / familiare, più difficile sarà. Quindi (ad esempio) animali rari come la topologia predicativa senza punti sono molto più facili da meccanizzare rispetto alla normale topologia metrica.

Questo potrebbe inizialmente sembrare un po 'sorprendente, ma sostanzialmente perché oggetti concreti come numeri reali partecipano a una varietà selvaggia di strutture algebriche e le prove che li coinvolgono possono fare uso di qualsiasi proprietà da qualunque punto di vista. Quindi, per essere in grado di ragionare ordinariamente a cui i matematici sono abituati, devi meccanizzare tutte queste cose. Al contrario, le costruzioni altamente astratte hanno un insieme (deliberatamente) piccolo e limitato di proprietà, quindi è necessario meccanizzare molto meno prima di poter ottenere i buoni bit.

Le prove in teoria della complessità e algoritmi / strutture di dati tendono (di regola) a utilizzare proprietà sofisticate di gadget semplici come numeri, alberi o elenchi. Ad esempio, gli argomenti combinatori, probabilistici e teorici dei numeri compaiono abitualmente tutti allo stesso tempo nei teoremi della teoria della complessità. Ottenere il supporto della libreria di assistente di prova al punto in cui è bello fare questo è un bel po 'di lavoro!

Un contesto in cui le persone sono disposte a lavorare è rappresentato dagli algoritmi crittografici. Esistono vincoli algoritmici molto sottili per complesse ragioni matematiche e poiché il codice crittografico viene eseguito in un ambiente contraddittorio, anche il minimo errore può essere disastroso. Quindi, ad esempio, il progetto Certicrypt ha creato molte infrastrutture di verifica allo scopo di costruire prove verificate a macchina della correttezza degli algoritmi crittografici.


6

Un esempio molto evidente è ovviamente la formalizzazione di Gonthiers Coq del teorema dei 4 colori in Coq che utilizza molta combinatoria.

Il mio collega Uli Schöpp ha utilizzato la libreria ssreflect sviluppata da Gonthier per questo scopo al fine di verificare (ed estendere leggermente) anche in Coq un risultato di Cook e Rackoff sugli automi grafici. https://scholar.google.at/scholar?oi=bibs&cluster=4944920843669159892&btnI=1&hl=de (Schöpp, U. (2008). Un limite inferiore formalizzato sulla raggiungibilità grafica non indirizzata. In Logica per la programmazione, intelligenza artificiale e ragionamento ( pagine 621-635). Springer Berlin / Heidelberg.)

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.