Ceci est pour les devoirs avant que quelqu'un demande, je suis à la recherche de conseils.Réduire le terme de calcul lambda à la forme normale
Voici le premier terme de la question:
(λx.λy.x y)(λx.x y)
=(λx.λz.x z)(λx.x y) α-renaming
=(λz.(λx.x y) z)
=(λx.x y)
Je voudrais vous assurer que je pense à cela correctement. Le terme à droite est la valeur placée dans le paramètre x, correct? Ensuite, chaque instance de x est remplacée par le terme sur la droite. J'ai renommé y donc il n'y avait pas de confusion avec le y et le y borné. Maintenant, la chose que je ne comprends pas est la deuxième ligne commençant par =. Est-ce que le z le plus à droite est passé comme paramètre pour la variable z? Ou est-il passé en x? De toute façon, je pense que la réponse est la même, mais j'aimerais savoir quelle est la bonne méthode.
Voici le second terme de question
((λx.λy.x y)(λx.x)) y
=((λx.λz.x z)(λx.x)) y
=(λz.(λx.x)z) y
=(λx.x)y
=(λx.x)
En raison des parenthèses, désigne le terme (λx.x) se substituer au paramètre x? Ou est-ce que y est substitué à x?
J'espère que cela a du sens. Merci d'avance pour votre aide.