Puntatori per applicazioni CS di logica


17

Sono uno studente laureato in matematica con una solida preparazione in logica. Ho seguito un corso di laurea di un anno in logica insieme a corsi di laurea in teoria dei modelli finiti e un altro in materia di forzatura e teoria degli insiemi. La maggior parte dei testi CS sembra assumere solo uno sfondo molto modesto nella logica, che copre principalmente le basi della logica proposizionale e della logica del primo ordine.

Vorrei ottenere alcuni suggerimenti su dove andare per le applicazioni CS in cui viene utilizzato materiale più pesante dalla logica. Un mio interesse sarebbe la teoria dei tipi e i metodi formali in generale. Qualcuno potrebbe suggerire alcune buone letture oltre i libri introduttivi sul controllo dei modelli e sui linguaggi di programmazione?


Ho realizzato questo CW poiché l'elenco è molto lungo. Dai un'occhiata a 11 volumi di Handbook of Logic in Computer Science e Handbook of Logic in AI.
Kaveh,

Un buon punto di partenza è il seguente documento: - Samuel R. Buss, Alexander A. Kechris, Anand Pillay e Richard A. Shore, " Prospettive di logica matematica nel ventunesimo secolo ", 2001. In particolare la sezione di Sam Buss.
Kaveh,

Questa domanda potrebbe essere ampliata e le risposte strutturate in modo uniforme in modo che questa pagina alla fine diventi una utile risorsa di partenza sulla logica computazionale. Partecipa alla discussione su meta.
Vijay D,

Risposte:


15

Ho brevemente rivisto alcune aree qui, cercando di concentrarmi su idee che potrebbero attirare qualcuno con un background nella logica matematica avanzata.

Teoria del modello finito

La restrizione più semplice della teoria dei modelli classici dal punto di vista dell'informatica è studiare le strutture su un universo finito. Queste strutture si presentano sotto forma di database relazionali, grafici e altri oggetti combinatori che sorgono ovunque nell'informatica. La prima osservazione è che diversi teoremi fondamentali della teoria dei modelli del primo ordine falliscono quando si limitano a modelli finiti. Questi includono il teorema di compattezza, il teorema di completezza di Godel e costruzioni ultraproduttive. Trakhtenbrot ha dimostrato che a differenza della classica logica del primo ordine, la soddisfacibilità rispetto ai modelli finiti è indecidibile.

Gli strumenti fondamentali in quest'area sono la località Hanf, la località Gaifman e numerose varianti dei giochi Ehrenfeucht-Fraisse. Gli argomenti studiati includono logiche infinite, logiche con conteggio, logiche a virgola fissa, ecc. Sempre focalizzate su modelli finiti. C'è del lavoro incentrato sull'espressività in frammenti di logica del primo ordine a variabili finite e queste logiche hanno caratterizzazioni tramite giochi di ciottoli. Un'altra direzione di indagine è identificare le proprietà della logica classica che sopravvivono alla restrizione ai modelli finiti. Un recente risultato in quella direzione da parte di Rossman mostra che alcuni teoremi di conservazione dell'omomorfismo continuano a detenere modelli finiti.

  1. Teoria del modello finito , Ebbinghaus e Flum
  2. Elements of Finite Model Theory , Libkin
  3. Sulle strategie vincenti nei giochi di Ehrenfeucht-Fraisse , Arora e Fagin, 1997.
  4. Teoremi di conservazione dell'omomorfismo , Rossman

Il -calculus proposizionaleμ

Una linea di lavoro della fine degli anni '60 ha mostrato che numerose proprietà dei programmi potevano essere espresse in estensioni della logica proposizionale che supportavano il ragionamento sui punti fissi. Il calcolo modale- è una logica sviluppata in questo periodo che ha trovato una vasta gamma di applicazioni nei metodi formali automatizzati. Molti metodi formali sono collegati alla logica temporale, o logiche in stile Hoare e gran parte di questo può essere visualizzato in termini di calcoli μ . In effetti, ho sentito dire che il μ -calculus è il linguaggio assembly della logica temporale.μμμ

Nel suo articolo che introduce il -calculus, Kozen ha dato un'assiomatizzazione e ha solo dimostrato che era solido e completo per un frammento limitato della logica. La prova di completezza fu uno dei grandi problemi aperti nell'informatica logica fino a quando Walukiewicz non ne diede una prova (basata su automi infiniti). La teoria del modello del μ -calculus ha molti risultati ricchi. Simile al teorema di van Benthem per la logica modale, Janin e Walukiewicz hanno dimostrato che il μ -calculus è espressamente equivalente al frammento invariante della bisimulazione della logica monadica del secondo ordine. Il μμμμμ-calculus è stato anche caratterizzato in termini di giochi di parità e automi su alberi infiniti. Il problema di soddisfacibilità per questa logica è EXPTIME completo ed Emerson e Jutla hanno dimostrato che la logica ha la proprietà del modello piccolo. Bradfield ha mostrato che la gerarchia di alternanza del -calculus è rigorosa, mentre Berwanger ha mostrato che anche la gerarchia variabile è rigorosa. Importanti strumenti classici usati in quest'area sono il teorema di Rabin e il teorema di determinazione di Martin.μ

  1. Risultati sul proposizionale -calculusμ , Kozen, 1983
  2. Rudimenti di calcoloμ Arnold e Niwinski, 2001
  3. Completezza dell'assiomatizzazione di Kozen del proposizionale -Calculusμ , Walukiewicz 1995
  4. Logiche modali e calcoliμ , Bradfield e Stirling, 2001
  5. La gerarchia modale di alternanza mu-calculus è rigorosa , Bradfield, 1996
  6. La gerarchia variabile del mu-calculus è rigorosa , Berwanger, E. Grädel e G. Lenzi, 2005

Logica temporale lineare

La logica temporale lineare è stata adottata dalla logica filosofica all'informatica per ragionare sul comportamento dei programmi per computer. Era considerata una buona logica perché poteva esprimere proprietà come invarianza (assenza di errori) e terminazione. La teoria della dimostrazione della logica temporale è stata sviluppata da Manna e Pnueli (e altri, in seguito) nei loro articoli e libri. Il controllo del modello e il problema di soddisfacibilità per LTL possono entrambi essere risolti in termini di automi su parole infinite.

Pnueli ha anche dimostrato risultati fondamentali su LTL nel suo documento originale introducendo la logica per il ragionamento sui programmi. Vardi e Wolper hanno fornito una raccolta molto più semplice di formule LTL in automi Buchi. La connessione con la logica temporale ha portato a un intenso studio di algoritmi per derivare in modo efficiente automi da LTL e per la determinazione e la complementazione degli automi Buchi. Il teorema di Kamp mostra che LTL con da e fino a quandoωμμ

  1. La logica temporale dei programmi , Pnueli 1977
  2. Dalla chiesa e prima di PSL , Vardi, 2008
  3. Un approccio automa-teorico alla logica temporale lineare , Vardi e Wolper, 1986
  4. La logica temporale dei sistemi reattivi e concorrenti: specifica , manna e pnueli
  5. Una gerarchia di Until e altre applicazioni di un gioco di Ehrenfeucht-Fraïssé per la logica temporale , Etessami e Wilke, 2000

Logiche dell'albero computazionale

μ

Il problema di verifica del modello per CTL su strutture finite è in tempo polinomiale. Il problema di controllo del modello per CTL * è EXPTIME completo. L'assiomatizzazione di CTL * è stato un problema aperto impegnativo che è stato finalmente risolto da Reynolds 2001. L'analogo del teorema di van Benthem per la logica modale e il teorema di Kamp per LTL è dato per CTL * da un teorema di Hafer e Thomas che mostra che CTL * corrisponde a un frammento della logica monadica del secondo ordine sugli alberi binari. Una successiva caratterizzazione di Hirschfeld e Rabinovich è che CTL * è espressamente equivalente al frammento invariante di bisimulazione di MSO con quantificazione del percorso.

  1. "A volte" e "non mai" rivisitati: sulla ramificazione rispetto alla logica temporale temporale lineare , Emerson e Halpern, 1986
  2. Sul potere espressivo di CTL , Moller, Rabinovich, 1999
  3. Logica dell'albero di calcolo CTL * e quantificatori del percorso nella teoria monadica dell'albero binario , Hafer e Thomas, 1987
  4. Un'assiomatizzazione della logica dell'albero di calcolo completo , Reynolds, 2001

Lingue di parole infinite

ω

ωωω-parole. Inoltre, usando la topologia elementare, hanno dimostrato che ogni proprietà del tempo lineare può essere espressa come intersezione di una proprietà di sicurezza e di vivacità. Questo risultato ha conseguenze pratiche significative perché significa che anziché costruire controlli di proprietà complessi, è sufficiente costruire un controllo di sicurezza e di controllo del liveness. Un'ulteriore riduzione mostra che è sufficiente costruire un controllo di invarianza e un controllo di fine rapporto. La caratterizzazione della sicurezza-vivacità è stata estesa agli alberi da Manolios e Trefler e più recentemente a insiemi di tracce, nel quadro di iperproprietà, da Clarkson e Schneider.

  1. Parole infinite: automi, semigruppi, logica e giochi , Perrin e Pin, 2004
  2. ω
  3. ω
  4. Sulle congruenze sintattiche per ω — lingue , Maler e Staiger, 1993

Automi su parole infinite

Dove ci sono lingue, gli informatici avranno automi. Inserisci la teoria degli automi su parole infinite e alberi infiniti. È estremamente triste che sebbene gli automi su parole infinite siano comparsi entro due anni dagli automi su parole finite, questo argomento fondamentale è raramente trattato nei curricula informatici standard. Gli automi su parole e alberi infiniti forniscono un approccio molto solido per dimostrare la decidibilità della soddisfacibilità per una famiglia di logiche molto ricca.

Un risultato fondamentale è che i diversi criteri di accettazione per gli automi a parola infinita sono tutti equivalenti. I problemi di base di unione, intersezione e complemento perω

  1. Decidibilità delle teorie e degli automi del secondo ordine sugli alberi infiniti , Rabin, 1969
  2. Automi su oggetti infiniti , Thomas, 1988
  3. Automi: dalla logica agli algoritmi , Vardi, 2007

Giochi infiniti

I giochi logici e infiniti sono un'area attiva di ricerca. Le nozioni teoriche dei giochi si manifestano nell'informatica ovunque nella dualità tra non determinismo e parallelismo (alternanza), un programma e il suo ambiente, quantificazione universale ed esistenziale, modalità box e diamante, ecc. I giochi si sono rivelati essere un ottimo modo per studiare le proprietà dei vari tipi di logiche non classiche sopra elencate.

Come per i criteri di accettazione degli automi, abbiamo diverse condizioni di vincita per i giochi e molti possono essere considerati equivalenti. Poiché hai chiesto informazioni sui risultati classici, il teorema di Borel Determinacy e i giochi Gale-Stewart spesso giacciono discretamente sullo sfondo di diversi modelli di gioco che studiamo. Una domanda urgente dei nostri tempi è stata sulla complessità della risoluzione dei giochi di parità. Jurdzinski ha fornito un algoritmo di miglioramento della strategia e ha dimostrato che la decisione del vincitore era nell'intersezione delle classi di complessità UP e coUP. L'esatta complessità dell'algoritmo di Jurdzinski è stata aperta fino a quando Friedmann non gli ha dato un limite inferiore di tempo esponenziale nel 2009.

  1. Decidere il vincitore nei giochi di parità è in UP ∩ co-UP , Jurdzinski, 1998
  2. Giochi per μ-calculus , Niwinski e Walukiewicz, 1996
  3. Un esponenziale limite inferiore per l'algoritmo di miglioramento della strategia di gioco di parità come lo conosciamo , Friedmann, 2009

10

Edmund M. Clarke, Orna Grumberg, Doron A. Peled: Model Checking . MIT Press 1999, è un bel libro (per me) sul controllo del modello.

Glynn Winskel: La semantica formale dei linguaggi di programmazione: un'introduzione . MIT Press 1994, è uno dei libri di testo standard sui linguaggi di programmazione.

Mordechai Ben-Ari: logica matematica per l'informatica . Springer 2001, è forse quello che stai cercando.


7

La teoria dei database è un campo tentacolare che offre molte applicazioni di logica. La complessità descrittiva e la teoria dei modelli finiti sono campi strettamente associati. Per quanto ne so, tutte queste aree tendono ad usare stili algebrici di logica (seguendo le orme di Birkhoff e Tarski) piuttosto che prove teoriche. Tuttavia, alcuni lavori di Peter Buneman , Leonid Libkin , Wenfei Fan , Susan Davidson , Limsoon Wong , Atsushi Ohori e altri ricercatori che lavoravano all'UPenn negli anni '80 -'90, hanno cercato di unire la teoria del linguaggio di programmazione e i database. Ciò sembra richiedere di essere a proprio agio con entrambi gli stili di logica. Lo stesso vale per i lavori più recenti di James Cheneye Philip Wadler .

In termini di riferimenti specifici, il manuale standard è disponibile online per un comodo riferimento:

Sfortunatamente non conosco libri di testo o sondaggi generali aggiornati su questo campo in rapida evoluzione. Ho trovato utili due sondaggi precedenti. Primo,

mostra come collegare i punti tra Tarski e un sottocampo specifico, database di vincoli. Secondo,

teoria dei database di pitch (stile 1996) a teorici di modelli finiti, e nel processo mette in luce molte interessanti applicazioni della logica nei database. Per lavori più recenti (come la teoria di XML, provenienza, modelli di streaming o database di grafi) la lettura di documenti di ricerca citati è un approccio ragionevole.


6

Michael Huth e Mark Ryan: Logic in informatica , Cambridge University Press, 2004.

Consiglio vivamente questo libro come introduzione generale su come la logica gioca un ruolo nell'informatica.


4

Un uso chiave della logica in CS sono le logiche dei programmi, chiamate anche logiche Hoare.

2(π17)

Una situazione simile si ottiene nello studio delle logiche modali che (semplificando un po 'di nuovo) non sono così espressive come la logica del primo ordine, ma ciò che possono esprimere, lo esprimono con formule e prove più brevi.

Identificare frammenti adatti di ZFC non è difficile per semplici linguaggi di programmazione, ma diventa rapidamente più impegnativo poiché i linguaggi di programmazione acquisiscono più funzionalità. Gli ultimi due anni hanno visto progressi sostanziali in questo sforzo.

L'articolo An Asiomatic Basis for Computer Programming di T. Hoare è spesso visto come fondare lo studio delle logiche dei programmi sul serio, è facile da leggere e probabilmente un buon modo per iniziare ad avventurarsi sul campo. La stessa logica è studiata più in dettaglio nel libro di Winskel "La semantica formale dei linguaggi di programmazione" menzionato da @vb le.

La teoria dei tipi può essere vista in una luce simile. Il principale punto di forza della teoria dei tipi è l'identificazione di prove con programmi (puramente funzionali), che porta a una grande economia di concetti e a una potente automazione (sotto forma di dimostrazione dell'inferenza del tipo e di teoremi interattivi). Il prezzo per la teoria dei tipi è un modo elegante di organizzare le prove è che non sembra funzionare molto bene con linguaggi di programmazione che non sono puramente funzionali.

Un testo recente e profondamente moderno che introduce la logica del programma in modo teorico tipicamente sfumato è Software Foundations di Pierce et al. Ti porterà vicino al punto (a) all'avanguardia della ricerca nella verifica del programma e, come un libro di testo, probabilmente ti darà un'idea di come verranno insegnate l'informatica e la matematica in futuro.

Una volta che la logica di un programma è stata sviluppata per un linguaggio, il passo successivo è l'automazione o automazione parziale: la costruzione di prove per programmi non banali richiede molto lavoro e vorremmo che le macchine facessero il più possibile. Molta ricerca attuale di metodi formali ha a che fare con tale automazione.


3

Esiste una tradizione molto forte di logica nell'informatica. I problemi che studiamo e l'estetica della comunità della logica computazionale non sono identici a quelli della comunità della logica matematica. Hai perfettamente ragione sul fatto che sviluppi significativi nella teoria dei modelli, nella meta-teoria della logica del primo ordine e della teoria degli insiemi non siano comunemente usati nella logica computazionale. Si può ricercare con successo loghi computazionali senza vedere o usare ultrafiltri, analisi non standard, forzature, teorema di Parigi-Harrington e una miriade di altri affascinanti concetti che sono considerati importanti nella logica classica.

Così come si applicano le idee matematiche per studiare la logica e le idee logiche per studiare la matematica, noi applichiamo la logica per studiare l'informatica e l'applicazione delle prospettive computazionali per studiare la logica. Questa diversa attenzione ha conseguenze piuttosto drammatiche per i tipi di risultati che sono importanti per noi.

Ecco una citazione di John Baez sulla logica e l'informatica. Non ho esattamente la stessa opinione perché non ho molta familiarità con la logica matematica avanzata.

Quando ero studente ero abbastanza interessato alla logica e alle basi della matematica --- Ero sempre alla ricerca dei concetti più strabilianti che potessi ottenere, e il teorema di Goedel, il teorema di Loewenheim-Skolem, e così via proprio lì con la meccanica quantistica e la relatività generale per quanto mi riguardava. [...] Ricordo di aver sentito in quel momento che la logica era diventata meno rivoluzionaria di quanto non fosse nella prima parte del secolo. Mi sembrava che la logica fosse diventata una branca della matematica come qualsiasi altra, studiando proprietà oscure dei modelli degli assiomi Zermelo-Fraenkel, piuttosto che mettere in discussione le presunzioni di base implicite in quegli assiomi e osando perseguire approcci nuovi e diversi. [...]

Ad ogni modo, ora è abbastanza chiaro per me che non avevo letto le cose giuste. Penso che Rota abbia affermato che il lavoro davvero interessante nella logica ora si chiama "informatica", [...] - Settimana 40, Trova questa settimana, John Baez

La logica dell'informatica è un campo vasto e in rapido sviluppo. Trovo che ogni prospettiva della logica classica possa essere modificata per ricavare una prospettiva sulla logica computazionale. La voce di Wikipedia sulla logica matematica divide il campo in teoria degli insiemi, teoria dei modelli, teoria delle prove e teoria della ricorsione. È possibile prendere essenzialmente queste aree e aggiungere un sapore computazionale ad esse e ottenere un sottocampo della logica computazionale.

Teoria dei modelli Ci piace studiare la teoria dei modelli della logica non classica e dei modelli non classici della logica classica. Con ciò intendo che studiamo logiche modali, temporali e sub-strutturali e che studiamo logiche su alberi, parole e modelli finiti, al contrario di modelli classici come le algebre. I due problemi fondamentali sono la soddisfacibilità e il controllo del modello. Entrambi hanno un immenso significato pratico e teorico. Al contrario, questi problemi sono meno centrali nella logica classica.

Teoria della prova Studiamo la complessità e l'efficienza con cui possiamo generare prove nei sistemi di prova classici, oltre a sviluppare nuovi sistemi di prova non classici che sono sensibili alle considerazioni di complessità ed efficienza. La deduzione automatizzata studia la generazione di prove supportate dalla macchina, a grandi linee. Il processo può comportare l'interazione umana o essere completamente automatico. C'è molto lavoro sullo sviluppo di procedure decisionali per le teorie logiche. La complessità della prova si concentra sulla dimensione delle prove e sulla complessità computazionale della generazione delle prove. Esiste un'affascinante linea di lavoro che collega i programmi alle prove, che si combina con il lavoro che discende dalla logica lineare per sviluppare sistemi di prove e, di conseguenza, linguaggi di programmazione sensibili alle risorse.

Teoria della ricorsione La nostra teoria della ricorsione è la teoria della complessità. Invece di studiare ciò che è calcolabile, studiamo quanto efficientemente possiamo calcolare. Esistono molti analoghi della teoria della ricorsione nella teoria della complessità, ma i risultati e le separazioni della teoria della ricorsione non valgono sempre per i loro analoghi teorici della complessità. Invece di insiemi calcolabili e una gerarchia aritmetica, abbiamo il tempo polinomiale, la gerarchia del tempo polinomiale e lo spazio polinomiale che racchiude la gerarchia. Invece della quantificazione limitata nella gerarchia aritmetica, abbiamo soddisfacenti e quantificate formule booleane e quantificazione limitata delle formule booleane.

L'articolo del sondaggio

Sull'insolita efficacia della logica nell'informatica

è un buon punto di partenza per ottenere una visione di alto livello della logica computazionale. Elencherò diversi campi informatici logicamente orientati. Spero che altri possano modificare questa risposta e aggiungerla a tale elenco qui, e possibilmente aggiungere un link a una risposta in questa pagina.

  1. Teoria dei modelli finiti
  2. Complessità dimostrativa
  3. Deduzione algoritmica (procedure decisionali per le teorie logiche)
  4. Logica dei programmi
  5. Logica dinamica
  6. Logica temporale lineare e sue varianti
  7. Computational Tree Logic e sue varianti
  8. Logica epistemica
  9. Teoria del database
  10. Teoria dei tipi
  11. Automi su parole infinite
  12. Logica categorica
  13. Teoria della concorrenza e algebra di processo
  14. Teoria del dominio
  15. Logica lineare
  16. Complessità descrittiva
  17. Verifica del modello
  18. Calcoli a punti fissi e logiche di chiusura transitive

1

un'area di forte sovrapposizione tra la logica e l'informatica sta dimostrando il teorema automatizzato , ad esempio [4]. ad esempio ref [1] è l'uso del proveratore di teoremi di Boyer-Moore per controllare / verificare il teorema di Godels. un altro risultato importante / impressionante recente è il recente completamento della verifica software del teorema dei quattro colori (e altri come Odd Order e Feit-Thompson [3]) alla ricerca Microsoft di Gonthier. [2]

[1] Metamathematics, Machines and Gödel's Proof (Cambridge Tracts in Theoretical Computer Science di Shankar

[2] Una prova controllata dal computer del teorema dei quattro colori Georges Gonthier

[3] Algoritmi interessanti nella formalizzazione del teorema di Feit-Thompson? tcs.se

[4] Dove e come i computer hanno aiutato a dimostrare un teorema? tcs.se

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.