Ho tre domande secondarie correlate, che sono evidenziate dai seguenti punti elenco (no, non potrebbero essere divisi, se ti stai chiedendo). Andrej Bauer ha scritto, qui , che alcune funzioni sono realizzabili attraverso una macchina di Turing, ma non tramite lambda-calcolo. Un passo fondamentale del suo ragionamento è:
Tuttavia, se usiamo il calcolo lambda, allora [il programma] c dovrebbe calcolare un numero che rappresenta una macchina di Turing da un termine lambda che rappresenta una funzione f. Questo non può essere fatto (posso spiegare perché, se lo fai come domanda separata).
- Vorrei vedere una spiegazione / prova informale.
Non vedo come applicare il teorema di Rice qui; si applicherebbe al problema "questa macchina da presa T e questo termine lambda L equivalgono?", perché applicare questo predicato a termini equivalenti dà lo stesso risultato. Tuttavia, la funzione richiesta potrebbe calcolare TM diverse, ma equivalenti, per termini lambda diversi ma equivalenti.
- Inoltre, se il problema riguarda l'introspezione di un termine lambda, penso che passare anche una codifica di Gödel di un termine lambda sarebbe accettabile, no?
Da un lato, dato che il suo esempio riguarda il calcolo, nel calcolo lambda, il numero di passaggi necessari a una Turing Machine per completare un determinato compito, non sono molto sorpreso.
- Ma poiché qui il lambda-calcolo non è in grado di risolvere un problema relativo alla macchina di Turing, mi chiedo se si possa definire un problema simile per il calcolo di lambda e dimostrarlo irrisolvibile per le macchine di Turing, oppure esiste effettivamente una differenza di potere a favore di Turing Machines (che mi sorprenderebbe).