In che modo esattamente il calcolo lambda cattura la nozione intuitiva di calcolabilità?


12

Ho cercato di avvolgere la mia testa attorno al cosa, perché e come di -calculus ma non sono in grado di fare i conti con "perché funziona"?λ

"Intuitivamente" ottengo il modello di calcolabilità di Turing Machines (TM). Ma questa -strazione mi lascia confuso.λ

Supponiamo che le TM non esistano, quindi come si può essere "intuitivamente" convinti della capacità di -calculus di catturare questa nozione di calcolabilità. In che modo avere un sacco di funzioni per tutto e la loro composobilità implica la calcolabilità? Cosa mi sto perdendo qui? Ho letto il documento di Alonzo Church su questo, ma sono ancora confuso e sto cercando una comprensione più "indebolita" della stessa.λ


Hai lo stesso problema con i sistemi di riscrittura e le grammatiche? Nel calcolo lambda le operazioni di base sono piuttosto semplici: astrazione di funzioni, applicazione di funzioni per sostituzione e calcolo è la normalizzazione beta. In altre parole, non vedo quale sia il tuo problema con un modello di calcolo ragionevole.
Kaveh,

2
Non ho visto nessuno dubitare che le funzioni definibili del calcolo lambda siano calcolabili. Storicamente la domanda era se queste sono le uniche funzioni intuitivamente calcolabili, che è un problema completamente diverso da quello che sembra chiedere.
Kaveh,

1
Una cosa che ho trovato utile è stato il libro di Raymond M Smullyan, "To Mock a Mockingbird" che sostituisce le funzioni con gli uccelli in una foresta magica (ed è una buona lettura)
dspyz,

1
Il libro di Smullyans parla della logica combinatoria
Trismegisto

Risposte:


21

λ

λλ


4
Se firewalking è divertente come dici tu, allora mi deve provare.
Radu GRIGore,

Andrej, conosci qualche riferimento per questi? Godel non ha accettato il modello di Chruch come catturare tutte le funzioni commutabili, ma non ricordo di aver visto da nessuna parte che ha criticato il modello molto più di questo. Le sue critiche al modello di calcolo lambada di Church erano alla pari con le sue critiche alle sue funzioni ricorsive generali Godel-Herbrand, per quanto ne so.
Kaveh,

3
Penso che tu voglia K. Godel: "Alcune osservazioni sui risultati indecidibili", In Solomon Feferman, John Dawson e Stephen Kleene (a cura di), Kurt Gödel: Collected Works Vol. Ii. La stampa dell'università di Oxford. 305-306 (1972). Vedi books.google.si/…
Andrej Bauer,

6

Tu ci programmi! Dai un'occhiata alle codifiche della chiesa . Puoi vedere quanto può essere eseguita praticamente tutta l'aritmetica che dovrebbe probabilmente convincerti che è estremamente potente. Mi piace guardare le operazioni sugli elenchi comunque. È possibile definire la maggior parte di qualsiasi struttura di dati in termini di una funzione che esegue l'operazione più importante su di essa.

Ad esempio una codifica di un elenco è la funzione di piegatura che si ripiega su di essa. Nota che questa non è la codifica di Church ma una che ho ottenuto dai tipi e dai linguaggi di programmazione di Percie. Le codifiche di coppia di Church non ci danno ricorsione, dobbiamo aggiungerlo di nuovo in noi stessi con un qualche tipo di combinatore di ricorsione.

quindi un elenco accetta due argomenti, una funzione per eseguire la piegatura e un valore iniziale da inserire nella piega a un certo punto.

cons x xs = lam f. lam a. f x (xs f a)
nil       = lam f. lam a. a

ora possiamo definire una somma data una funzione add (vedi le codifiche della chiesa dall'alto)

sum xs = xs add 0

possiamo fare di più e definire una funzione della mappa

consApply f x xs = cons (f x) xs
map f xs = xs (consApply f) nil

se non sei ancora convinto che ci sia un calcolo in corso qui e vuoi assicurarti di poter eseguire qualsiasi calcolo, controlla il combinatore a punto fisso . A volte mi fa male pensare un po 'alla testa, quindi non sono sicuro che lo definirei intuitivo, ma se lo valuti manualmente con alcuni argomenti puoi vedere cosa sta succedendo.

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.