Question

De pg. 35 de Calculus et combinateurs de Lambda Une introduction:

Corollaire 3.3.1 Dans $ lambda $ et $ cl $: pour chaque $ z $ et $ n ge 0 $, l'équation

$$ xy_1 ldots y_n = z $$

Peut être résolu pour $ x $. C'est-à-dire qu'il y a un terme $ x $ tel que

$$ xy_1 ldots y_n = _ { bêta, w} [x / x] z. $$

Preuve: Choisissez $ x equiv mathsf {y} ( lambda x y_1 ldots y_n.z) $.

Remarque: Dans le livre, nous supposons que $ mathsf {y} equiv ( lambda ux. Xuux) ( lambda ux. Xuux) $. De plus, pour faciliter la notation, soit $ v equiv ( lambda x y_1 ldots y_n.z) $.

Le problème est que lorsque je vérifie cela avec mes propres exemples, je n'obtiens pas ce résultat.

Par exemple, supposons que ni $ x $ ni aucun de $ y_1, ldots, y_n $ ne se trouve dans les variables gratuites de $ z $ (pour faciliter la tâche). Alors ce théorème affirme que si $ x equiv mathsf {y} ( lambda x y_1 ldots y_n. Z) $, alors

$$ xy_1 ldots y_n = _ { bêta, w} z $$

Quand je vérifie si cela est vrai, je reçois

$$ ( mathsf {y} ( lambda x y_1 ldots y_n. z)) y_1 ldots y_n = ( mathsf {y} v) y_1 ldots y_n = (v mathsf {y} v) y_1 ldots y_n = (v mathsf {y} v) y_1 ldots y_n = _ { bêta, w} zy_n $$

Est-ce que je fais quelque chose de mal?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top