Parsing 如何仅对λ;y、 (λ;x.λ;y.yx)yz?

Parsing 如何仅对λ;y、 (λ;x.λ;y.yx)yz?,parsing,rename,beta,lambda-calculus,reduction,Parsing,Rename,Beta,Lambda Calculus,Reduction,我不明白如何得出正确的答案,即λy.(λw.wy)z 只有在必要的情况下才允许重命名,从答案来看,很明显使用了重命名。让我们先添加一些括号,使结构更加明显,因为这可能是您感到困惑的原因: λy.(λx.λy.yx)yz = λy.(((λx.λy.(yx))y)z) 在最外层,没有什么可以做的。但是我们可以在λy内部进行beta缩减,但是首先我们需要进行alpha重命名以避免捕获y: (λx.λy.(yx))y --> (λx.λw.(wx))y (alpha renamin

我不明白如何得出正确的答案,即λy.(λw.wy)z


只有在必要的情况下才允许重命名,从答案来看,很明显使用了重命名。

让我们先添加一些括号,使结构更加明显,因为这可能是您感到困惑的原因:

λy.(λx.λy.yx)yz = λy.(((λx.λy.(yx))y)z)
在最外层,没有什么可以做的。但是我们可以在
λy
内部进行beta缩减,但是首先我们需要进行alpha重命名以避免捕获
y

    (λx.λy.(yx))y
--> (λx.λw.(wx))y   (alpha renaming y to w)
--> λw.wy           (beta)
现在把它放在整个上下文中:

    λy.(λx.λy.yx)yz
--> λy.(λx.λw.(wx))yz   (alpha renaming y to w)
--> λy.(λw.wy)z         (beta)

非常感谢。因此,关键是在开始beta缩减之前,按照Left&λx(尽可能)规则分配括号。