在 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 ≡ u
和 x ≡ u
,因此 x ≡ y
:这是情况 1a。
在 (b) 中,y ≡ v
和 x ≡ u
,因此 x \≡ y
:这是情况 1b。
我正在从 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 ≡ u
和 x ≡ u
,因此 x ≡ y
:这是情况 1a。
在 (b) 中,y ≡ v
和 x ≡ u
,因此 x \≡ y
:这是情况 1b。