Classificazione dei calcoli lambda tipizzati / non tipizzati


18

Qualcuno può spiegare brevemente (se possibile!) O riferirmi a un riferimento, riassumendo le differenze tra il calcolo lambda non tipizzato e i calcoli lambda tipizzati più comuni?

In particolare cerco dichiarazioni sulla loro potenza espressiva, equivalenze a sistemi logici / aritmetici o metodi di calcolo e analogie con i linguaggi di programmazione, se applicabile.

Mentre certamente intendo leggere, qualcosa come una tabella di riferimento che delinea i calcoli e le loro equivalenze / differenze / posizione nella gerarchia sarebbe un riferimento ENORME per aiutarmi a risolverli.

Non dire che il seguito è corretto, sto solo cercando di tracciare insieme alcune delle impressioni che devo vedere se almeno servono come punto di partenza (o qualcosa da correggere!)

Calcolo lambda non tipizzato - eq. alla logica del primo ordine - impossibile fare X

Calcolo lambda semplicemente digitato - eq to ... logic, related to Lisp?

Lambda calc "polimorfico" - ecc.

Calcolo delle costruzioni - logica intenzionalista?

Logica combinatoria - paragonabile a ??? calcolo lambda tipizzato, relativo al tipo di lingue APL / J

Se questo si lega meglio al cubo lambda e ai suoi tre assi.

Mentre ho familiarità con le basi del calcolo lambda e la programmazione con linguaggi funzionali, non ho mai spostato la testa o fatto connessioni significative con i sistemi di tipi coinvolti e i diversi sapori dei calcoli lambda (e forse pi?).

Quando provo a ricercare questo, non posso fare a meno di trovarmi distratto, aprendo molte schede del browser e ramificando in così tante direzioni che non riesco mai ad entrare in nessuna di esse con profondità!

Non sono sicuro se ciò che sto chiedendo sia ragionevole, ma spero almeno di aver dipinto abbastanza un'immagine per suggerire qualche lettura che possa spiegare cosa sto cercando?


1
una visualizzazione del cubo lambda, se forse riferirsi ad esso può aiutare con spiegazione rbjones.com/rbjpub/logic/cl/tlc001.htm
jon_darkstar

3
Una storia personale: quando ho appreso per la prima volta il calcolo lambda tipizzato e non tipizzato, sono sempre stato confuso dal motivo per cui dovrei preoccuparmi dei calcoli completi non turing digitati. Questo spesso mi ha fatto perdere interesse. D'altra parte, non sono mai stato infastidito da questo quando pensavo alla complessità e al calcolo efficiente. Alla fine qualcuno ha collegato i due fili per me in questa risposta e ora posso capire meglio perché è stato impiegato così tanto tempo a insegnarmi il calcolo lambda.
Artem Kaznatcheev

vedo che lo.logicè stato aggiunto un tag. probabilmente una domanda stupida, ma cosa significa esattamente?
jon_darkstar,

"Quando provo a ricercare questo, non posso fare a meno di trovarmi distratto, aprendo molte schede del browser e ramificando in così tante direzioni che non riesco mai ad entrare in nessuna di esse con profondità!" <- Sono sempre io! Grazie per avermi chiesto cosa stavo pensando ...
agam

Risposte:


26

Il tuo tavolo è un po 'confuso; eccone uno migliore.

  • Calcolo lambda non tipizzato - nessuna interpretazione logica, come osserva Andrej
  • Calcolo lambda semplicemente digitato - logica proposizionale intuizionista
  • Calcolo lambda polimorfico - pura logica del secondo ordine (cioè senza quantificatori del primo ordine)
  • Tipi dipendenti - generalizzazione della logica del primo ordine
  • Calcolo delle costruzioni - generalizzazione della logica di ordine superiore

La dipendenza dal tipo è più generale della quantificazione del primo ordine, poiché trasforma le prove in oggetti su cui è possibile quantificare. Esistono calcoli lambda corrispondenti al normale FOL intuizionista, ma non sono abbastanza usati da avere un nome speciale - le persone tendono ad andare direttamente ai tipi dipendenti.

Puoi anche mettere in relazione la forma sintattica di un calcolo con sistemi logici.

  • Calcoli combinatori (ad es. Combinatori SKI) - Sistemi in stile Hilbert
  • Forma A-normale - calcolo sequenziale
  • Calcolo lambda tipizzato ordinario - detrazione naturale

fantastico! Grazie. mi aiuta a capire la motivazione / distinzione per questi diversi calcoli e certamente mi aiuterà a mantenere una comprensione di base quando leggerò di più al riguardo
jon_darkstar

Includerei anche calcoli lambda digitati senza interpretazione logica, come PCF. Inoltre, ci sono molti fantastici lambda-calcoli che corrispondono ad altre logiche, come il calcolo lambda lineare.
Sam Tobin-Hochstadt

@ Sam: buon punto. "Nessuna interpretazione logica" è davvero troppo forte, dal momento che in realtà significa "autoriferimento illimitato consentito", che combinato con il riutilizzo variabile porta ad incoerenza. Ma alcune teorie basate su logiche lineari supportano schemi di comprensione ingenui senza alcuna incoerenza.
Neel Krishnaswami,

certamente, in alcuni modi è possibile aggiungere alcune cose al calcolo lambda senza essere incoerenti. Ma ci sono molti calcoli lambda interessanti, tipizzati, senza alcuna interpretazione logica esattamente nel senso del calcolo lambda non tipizzato.
Sam Tobin-Hochstadt,

20

λλλnatλ0T

λλ

λλ

λλλUlambda : U -> (U -> U)gamma : (U -> U) -> UλUλCUU[Cop,Set]UUU

Riferimenti:


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.