在 beta-reduction 中,x 何时会等同于 y?

When will the x be equivalent to the y in substitution in beta-reduction?

我正在从 Type Theory and Formal Proof 一书中学习类型理论。这是替换的定义。

参见(1b),我找不到x 等价于y 的例子。 x和y都是变量,所以我认为如果把y声明为变量,x就不能等同于y。

案例 1a 也可以改写为

y[x:=N] ≡ N, if x ≡ y

x, y, z, ... 只是元变量,在 lambda 演算的语言中代表具体变量 u, v, w, ...。原则上,当将定义模板应用于某些具体的 lambda 项时,我们可以为占位符 x 和 y 插入相同的实际变量,这就是 x ≡ y 时的情况。

1a 涵盖了发生替换的变量与被替换的变量相同的情况,而 1b 涵盖了发生替换的变量不是被替换的变量的情况。
在情况 1a 中,整个变量被替换;在情况 1b 中,没有任何反应。

示例:

(a) (λu.u)(λw.w) >> u[u:=(λw.w)] ≡ (λw.w)   (covered by case 1a)
(b) (λu.v)(λw.w) >> v[u:=(λw.w)] ≡ v        (covered by case 1b)

两个替换的形式都是 y[x:=N],在两个例子中,都是 N ≡ (λw.w).
在 (a) 中,y ≡ ux ≡ u,因此 x ≡ y:这是情况 1a。
在 (b) 中,y ≡ vx ≡ u,因此 x \≡ y:这是情况 1b。