Cos'è l'analogo Curry-Howard per le logiche lineari?


8

Come definito da Wikipedia,

(La corrispondenza Curry-Howard) è una generalizzazione di un'analogia sintattica tra sistemi di logica formale e calcoli computazionali che fu scoperta per la prima volta dal matematico americano Haskell Curry e dal logico William Alvin Howard.

Ad esso è associato il cubo λ, che è una rappresentazione grafica dei possibili assi di raffinamento dai tipi semplici al calcolo delle costruzioni, che ha un'interpretazione logica:

https://upload.wikimedia.org/wikipedia/commons/1/19/Lambda_cube.png

Per quanto ne so, la corrispondenza Curry-Howard è una connessione tra la teoria dei tipi e la logica classica. La mia domanda è: esiste una corrispondenza analogica tra sistemi di tipo e logiche lineari ?


Puoi definire cosa intendi per "logiche leggere"?
jmite,

Mi dispiace @jmite, intendo Linear Logic .
MaiaVictor,

Risposte:


8

È possibile imporre requisiti simili all'interno del proprio sistema di tipi, il che equivale a richiedere che gli oggetti non vengano mai distrutti né duplicati. Per un esempio di applicazione pratica, vedi Tipi di lineari possono cambiare il mondo! di Philip Wadler, che specifica le regole di battitura per questo. Mostra anche come un sistema di tipi può combinare tipi lineari e non lineari.

Per un'applicazione pratica di questo, dai un'occhiata a std::unique_ptrC ++. Qui, la linearità garantisce che la deallocazione avvenga sempre esattamente una volta.

In un linguaggio funzionale, la linearità offre anche la possibilità di aggiornamenti distruttivi (che appaiono puri al programmatore). Tuttavia, in pratica sembra che le monadi siano un approccio più comune per risolvere questo problema.

Aggiornamento : ho notato che nella tabella del trinitarismo computazionale NLab l'assenza di contrazione in una logica (cioè non essere in grado di duplicare un'ipotesi) corrisponde al teorema della non clonazione dalla meccanica quantistica. (Purtroppo) non capisco le implicazioni di questo, ma ho pensato che potresti trovarlo interessante.


1
Esistono esperimenti, ad esempio, in Idris che incorporano tipi di unicità (che sarebbero meglio chiamati lineari o affini: possono avere più di un abitante!).
gallais,

1
Per ulteriori informazioni sull'ultimo paragrafo, consultare dx.doi.org/10.1088/1742-6596/67/1/012045 Il documento ha un bel riassunto nella sua sezione di conclusione.
Fizz,

8

La logica lineare corrisponde a un sistema di tipi per un calcolo di processo (una variante del calcolo π interno ), dove:

  • le prove corrispondono ai processi ;
  • le proposizioni corrispondono ai tipi di sessione (protocolli di comunicazione).

Questa è un'area di ricerca piuttosto attiva. Mentre le persone si aspettavano una corrispondenza tra la logica lineare e alcuni modelli di concorrenza sin dall'inizio della logica lineare da parte di Girard [1987] , trovare qualcosa di soddisfacente sia dal punto di vista logico che da quello della concorrenza è stato in qualche modo sfuggente.

Ecco un riassunto degli sviluppi chiave finora.

  • Abramsky [1994] e Bellin e Scott [1994] hanno proposto la prima corrispondenza "Proofs as Processes", in cui le proposizioni lineari sono tipi per canali lineari in un calcolo di processo. Ad esempio, la propostaAB viene interpretato come il tipo di canale "invia A e B"; viene utilizzato per digitare un processo che utilizza un canale per generare un messaggio comprendente qualcosa di tipo A e B(una coppia, se lo desideri), rispettivamente, e quindi il canale non deve più essere utilizzato. L'idea chiave è che la regola di taglio della logica lineare può essere utilizzata per digitare l'esecuzione parallela di due processi che comunicano su un canale privato. Il controllo di dualità eseguito dalla regola di taglio in logica lineare corrisponde alla verifica che i due processi utilizzino il canale privato condiviso in modo compatibile.
  • L'idea della dualità ha ispirato anche diverse discipline di tipizzazione per i calcoli di processo, in particolare i tipi lineari e i tipi di sessione, ma il collegamento diretto con la logica lineare è andato perso. I tipi di sessione in particolare, di Honda [1993] , descrivono i protocolli di comunicazione e la loro applicabilità è diventata evidente molto presto: l'idea ha generato un'area di ricerca.
  • Sette anni dopo, quando Honda ha sviluppato i tipi di sessione, Caires e Pfenning [2010] hanno scoperto che le proposizioni nella logica lineare intuitiva possono essere interpretate come tipi di sessione. Ad esempio, la propostaAB viene interpretato come il protocollo "invia A e quindi procedere come B". Questa scoperta ha ringiovanito la linea di ricerca" Prove come processi ": ci sono molti articoli su questo argomento pubblicati nell'ultimo decennio. Grazie alle basi logiche, possiamo importare idee dalla logica per estendere la disciplina di tipizzazione dei tipi di sessione .
  • Wadler [2014] ha riformulato la corrispondenza con i tipi di sessione per la logica lineare classica e ha formalizzato la prima connessione tra una presentazione standard dei tipi di sessione per un linguaggio funzionale e una logica lineare.
  • C'è un "problema" condiviso da tutte le opere sopra citate: mentre il lato logico lineare è quello atteso, il lato del calcolo del processo non lo è, sia sintatticamente che semanticamente. Ad esempio, una notevole discrepanza è che la composizione parallela (P|Q) non è un termine costruttore autonomo, poiché manca una regola corrispondente per il ragionamento su di esso direttamente nella logica lineare. Questo problema è stato risolto in [Kokke et al., 2019] (disclaimer: sono uno degli autori), riformulando in modo conservativo le regole per, tagliare e mescolare. Ciò dà origine a nuove trasformazioni di prove, che risultano corrispondere alla semantica osservativa attesa del calcolo π.

Se stai cercando un paio di documenti per iniziare, inizierei da [Wadler, 2014] e poi [Kokke et al., 2019] (per vedere l'ultimo sistema).

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.