J'ai trois sous-questions liées, qui sont soulignées par des points dans la liste ci-dessous (non, elles ne pourraient pas être divisées, si vous vous le demandez). Andrej Bauer a écrit ici que certaines fonctions sont réalisables avec une machine de Turing, mais pas avec le lambda-calcul. Une étape clé de son raisonnement est la suivante:
Cependant, si nous utilisons le calcul lambda, alors [le programme] c est supposé calculer un nombre représentant une machine de Turing à partir d'un terme lambda représentant une fonction f. Cela ne peut pas être fait (je peux expliquer pourquoi, si vous le posez séparément).
- Je voudrais voir une explication / une preuve informelle.
Je ne vois pas comment appliquer le théorème de Rice ici; cela s'appliquerait au problème "est-ce que cette machine de turing T et ce lambda terme équivalent L?", car appliquer ce prédicat à des termes équivalents donne le même résultat. Cependant, la fonction requise peut calculer des MT différentes, mais équivalentes, pour des termes lambda différents, mais équivalents.
- De plus, si le problème concerne l'introspection d'un terme lambda, je pense que le codage de Gödel d'un terme lambda serait également acceptable, n'est-ce pas?
D'une part, étant donné que son exemple implique de calculer, dans le calcul lambda, le nombre d'étapes nécessaires à une machine de Turing pour effectuer une tâche donnée, je ne suis pas très surpris.
- Mais comme ici le lambda-calcul ne peut pas résoudre un problème lié à la machine de Turing, je me demande si on peut définir un problème similaire pour le lambda-calcul et le prouver insoluble pour les machines de Turing, ou s'il existe une différence de puissance en faveur de Turing Machines (ce qui me surprendrait).