Applicazioni quotidiane di teoria dei tipi


10

Voglio capire la teoria dei tipi ma devo prima sapere come posso applicarla. Potrebbero esserci applicazioni più ovvie della teoria dei tipi oltre ai sistemi di tipo nella programmazione? Potrebbero esserci altre applicazioni, diciamo nella profilazione della personalità e simili?


2
Perché qualcosa deve avere applicazioni al di fuori di ciò per cui è stato inventato?
Raffaello

3
Fondamenti della matematica? Le persone hanno anche usato la teoria dei tipi per formalizzare cose come la teoria dei domini sintetici, la topologia, ecc. C'è anche il lavoro di Chris Martens sull'uso degli strumenti di teoria dei tipi per modellare la narrazione narrativa. Collegamento di tesi
Daniel Gratzer,

1
Potresti chiarire i conteggi come un'applicazione?
Jake,

4
Non sono convinto della tua premessa. Supponiamo che qualcuno abbia detto: "Voglio capire l'ingegneria automobilistica, ma devo prima sapere per cosa posso usare un'auto. Potrebbero esserci applicazioni più ovvie di automobili oltre al trasporto?" Ricevono risposte dicendo che alcune persone dormono nelle loro macchine e Ansel Adams ha usato la sua come piattaforma per scattare fotografie . Bene, ma non aiuta nessuno a capire l'ingegneria ed è probabile che conduca il nostro ipotetico studente a progettare auto con sedili super-reclinabili e sospensioni molto rigide.
David Richerby,

3
Il fatto è che gran parte dell'informatica teorica (comprese le cose su cui lavoro) è praticamente inutile, sebbene matematicamente bella. Sfortunatamente devi scegliere i lati.
Yuval Filmus,

Risposte:


10

Potresti essere interessato al lavoro su Ceptre , risultato della ricerca di dottorato di ricerca di Chris Martens , che utilizza la teoria dei tipi per la narrazione interattiva. Di seguito è riportato il riassunto della tesi :

Lo storytelling interattivo intreccia profonde idee computazionali con la ricca storia dell'umanità di storie e giochi, fornendo un contesto importante per strumenti e linguaggi da costruire. Allo stesso tempo, i linguaggi di specifica formale offrono una tavolozza di tecniche di rappresentazione e inferenza tipicamente riservate all'analisi di linguaggi di programmazione e sistemi deduttivi complessi. Questa tesi collega i problemi nel dominio dello storytelling interattivo alle soluzioni nelle specifiche formali.

In particolare, esaminiamo la narrazione da un punto di vista strutturale e osserviamo che percorsi narrativi alternativi svolgono un ruolo complementare alle tempistiche di interazione simultanea. La logica lineare fornisce gli strumenti di rappresentazione necessari per indagare su questa struttura e, estendendo la corrispondenza alle prove e alla costruzione delle prove, troviamo una serie di possibilità computazionali. Presentiamo tre sforzi per realizzare queste possibilità: (1) l'uso della programmazione logica lineare per generare narrazioni; (2) un nuovo linguaggio di programmazione per la creazione di narrazioni interattive, giochi e simulazioni; e (3) tecniche per affermare e provare le proprietà del programma a livello di progetto.

Scopriamo che la programmazione logica lineare, arricchita con una minima estensione alla sua semantica logica, consente una vasta gamma di idiomi di programmazione e codifiche di domini. Come prova, diamo cinque casi di studio, tra cui simulazione sociale, giochi di avventura basati sul combattimento e giochi da tavolo. Per supportare il ragionamento sulla correttezza del progetto, presentiamo tecniche per affermare e provare gli invarianti del programma, nonché una prova di decidibilità per controllare automaticamente quegli invarianti per un grande frammento della lingua.

Questi risultati mostrano che la logica lineare è un proficuo linguaggio di rappresentazione che funge da base per modellare ed eseguire mondi interattivi e che invitano a future ricerche sull'uso di metodologie di dimostrazione teorica per sistemi creativi.


1
Sembra un uso della logica lineare, piuttosto che la teoria dei tipi in .
David Richerby,

6
La logica lineare è un argomento fondamentale della teoria dei tipi. Questo lavoro fa molto parte della teoria dei tipi come disciplina (alcune persone descrivono il loro lavoro come "teoria delle prove" quando è ugualmente rilevante per la teoria dei tipi, sebbene i nomi non siano equivalenti in quanto alcuni altri lavori nella "teoria delle prove" sarebbero considerati più specifico per la teoria delle prove piuttosto che centrale per la teoria dei tipi).
Gasche,

9

Vi sono stati usi interessanti della teoria dei tipi in linguistica. Vedi ad esempio le opere linguistiche di Chung-chieh Shan o Christian Rétoré .

Di seguito è riportata la descrizione del libro di Rétoré sulle grammatiche categoriali:

Questo libro è un'introduzione contemporanea e completa alle grammatiche categoriali della tradizione logica iniziata dal lavoro di Lambek. Guida studenti e ricercatori attraverso i risultati fondamentali sul campo, fornendo prove moderne di molti teoremi classici, nonché i recenti progressi originali. Numerosi esempi ed esercizi illustrano le motivazioni e le applicazioni di questi risultati da un punto di vista linguistico, computazionale e logico. Il calcolo di Lambek e le sue varianti e le grammatiche corrispondenti sono al centro di queste note di lezione. Un capitolo è dedicato a una caratteristica chiave di queste grammatiche categoriali: la loro molto elegante interfaccia sintattica-semantica. Inoltre, adattiamo le reti a prova di logica lineare a questi calcoli poiché forniscono algoritmi di analisi efficienti come esemplificato nel parser Graal.

La seguente citazione è nell'introduzione del capitolo del libro sugli effetti collaterali linguistici di Shan :

Questo documento mette in relazione casi di apparente non comparabilità nei linguaggi naturali con quelli dei linguaggi di programmazione. Ha la forma di una clessidra: inizio nel § 1 con un approccio all'interfaccia sintassi-semantica che ci aiuta a costruire teorie semantiche compositive. Tale approccio consiste nel tracciare un'analogia tra gli effetti collaterali computazionali nei linguaggi di programmazione e ciò che io definisco per analogia gli effetti collaterali linguistici nei linguaggi naturali.

Questa connessione può giovare sia agli informatici che ai linguisti, ma mi concentro qui su quest'ultima direzione del trasferimento tecnologico. Continuazioni sono state utili per il trattamento degli effetti collaterali computazionali. Nel § 2, presento un nuovo metalinguaggio per le continuazioni in semantica.

Il metalinguaggio che presento è utile per analizzare sia le lingue di programmazione che le lingue naturali. Per intuizione, rilevo il primo utilizzo nel §3, quindi sottolineo le virtù di questo trattamento nel § 4.

Passando al linguaggio naturale in §5, descrivo in dettaglio come questa prospettiva abbia aiutato Chris Barker e io studiamo rilegatura e crossover, oltre a domande e superiorità. Ho anche usato continuazioni per studiare la portata di quantificatori e wh indefiniti, in particolare in cinese mandarino, ma qui c'è solo spazio per delineare questi ulteriori sviluppi, nel §6.


9

A causa della corrispondenza Curry-Howard , i tipi possono essere interpretati come proposizioni e le proposizioni come tipi.

Di conseguenza, la teoria dei tipi è applicabile letteralmente a qualsiasi campo che utilizza la logica formale per le sue prove. Può trattarsi di verifica del circuito, analisi reale, logica simbolica, geometria, ecc.

Ad esempio, alcuni strumenti di controllo automatico delle prove funzionano utilizzando questo principio: controllano la validità della prova controllando un determinato termine in un sistema di tipo. Il correttore di prove LF si basa su questo approccio, così come HOL Light . Come applicazione di esempio, il codice per il rilevamento delle prove ha usato LF per verificare le prove della sicurezza della memoria del codice non attendibile. Il vantaggio dell'utilizzo di questo tipo di correttore di bozze è che l'implementazione può essere molto semplice e quindi possiamo ottenere la certezza che l'implementazione è corretta. Vedi, ad esempio, il seguente documento:

Dama di prova di base con piccoli testimoni . Dinghao Wu, Andrew W. Appel, Aaron Stump. PPDP 2003.



Non credo che questo risponda alla domanda. E le applicazioni attuali?
Yuval Filmus,

@YuvalFilmus Definisci "attuale"?
David Richerby,

1
Sai se qualcuno ha usato la teoria dei tipi per dimostrare qualcosa di nuovo sulla verifica dei circuiti, l'analisi reale, la logica simbolica o la geometria? Oppure stiamo solo parlando di casi in cui qualcuno usa 20 pagine di teoria dei tipi per provare qualcosa che prende tre righe in un libro di testo elementare?
David Richerby,

@David Qual è la risposta che in linea di principio puoi usare la teoria dei tipi per provare cose. Inoltre, in linea di principio, possiamo usare gli automi cellulari per provare cose, dato che la Regola 110 è Turing completa. Penso che la prima affermazione sia insignificante come la seconda.
Yuval Filmus,

7

Un articolo interessante che spiega le applicazioni di tipi dipendenti, è The Power of Pi , che mostra come Agda può essere usato per risolvere problemi interessanti.

Un altro buon esempio è l'uso di tipi dipendenti per il controllo delle risorse. Un buon esempio è l'API di gestione dei file di Effects of Idris . Ad esempio, la funzione per leggere una riga da un file ha il seguente tipo

readLine  : { [FILE_IO (OpenFile Read)] } Eff String

che specifica che questa funzione è applicabile solo se è stato aperto un file. L'elenco tra parentesi graffe indica quali effetti sono disponibili. In questo caso, abbiamo che questa funzione richiede l'effetto di avere un file aperto per la lettura.

Ulteriori informazioni sulla libreria di effetti sono disponibili qui .

Un'altra applicazione è l'uso di tipi dipendenti per la concorrenza, come riportato nel seguente articolo dal creatore di Idris.


1
Altri esempi aggiunti.
Rodrigo Ribeiro,

3

come menzionato nella risposta di jmite, la logica di ordine superiore / teoria dei tipi nella verifica di circuiti / hardware / elettronica esiste da decenni ed è ora così ordinaria che non è nemmeno stata notata / considerata come una "applicazione" dopo uno sforzo apparentemente importante di trasferimento in gli anni '90 sebbene sia ancora un'area attiva di ricerca. c'è anche molta applicazione di Coq e della sua logica di tipo, in particolare alla verifica di circuiti / hardware / elettronica, dalla logica di gate di basso livello a strutture / sottosistemi / ordini di livello molto più alto. ecco alcuni riferimenti chiave


1
Ad essere onesti, tuttavia, la maggior parte dell'effettiva verifica hardware su scala industriale è stata effettuata utilizzando il controllo del modello, una tecnologia di verifica che non è in genere correlata alla teoria dei tipi (sebbene i ponti siano stati disegnati di recente). La teoria dei tipi è stata utilizzata per creare linguaggi descrittivi dell'hardware (non inverosimili dai linguaggi di programmazione) e la maggior parte dei linguaggi forniti sono in questa categoria e alcuni degli assistenti di correzione progettati per la verifica dell'hardware (in particolare l'HOL originale, ma non il PVS più usato) sono trasposizioni di Curry-Howard della teoria dei tipi.
Gasche

se hai una conoscenza più approfondita della verifica dell'hardware, sarebbe interessante conoscere maggiori dettagli nella chat di informatica, ma pensare / sospettare linee / generalizzazioni ristrette / distinte non è facile trarre in questo settore, ad esempio tra il controllo del modello e la teoria dei tipi. può essere necessaria un'analisi storica molto sottile per scoprire / raggruppare in modo completo connessioni tra due diversi campi con scopi diversi e talvolta è persino al di fuori delle capacità degli esperti in entrambi i campi individualmente ... i riferimenti complessivi mostrano forti connessioni che potrebbero essere ulteriormente analizzate. ..
vzn
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.