\x->\x->x alpha 是否等同于 \x->\y->x?
Is \x->\x->x alpha equivalent to \x->\y->x?
所以我知道在 \x->\y->x
中第二个 x 绑定到第一个(请纠正我我错了)并且在 \x->\x->x
中最后一个 x 绑定到中间一。但这对 alpha 等价性有影响吗?
\x->\x->x
alpha 等同于 \x->\y->x
吗?
如果两个术语 t1
和 t2
是等价的,那么对于任何上下文,E[.]
、E[t1]
和 E[t2]
都归结为同一个术语。
因此,如果您有两个术语,并且找到使它们简化为两个不同术语的上下文,您就知道它们不是 alpha 等价的。
在这里,您有 t1 = \x.\x.x
和 t2 = \x.\y.x
,采用应用两个不同术语的上下文,例如v1
和 v2
,你有:
t1 v1 v2 = (\x.\x.x) v1 v2 --> (\x.x) v2 --> v2
和
t2 v1 v2 = (\x.\y.x) v1 v2 --> (\y.v1) v2 --> v1
因此您可以推断出它们不是等价的 alpha。
也就是说,如果您真的想使用 alpha 等价,您应该花时间了解什么是自由变量和有界变量,并问问自己在变量绑定方面 alpha 等价是什么意思.
所以我知道在 \x->\y->x
中第二个 x 绑定到第一个(请纠正我我错了)并且在 \x->\x->x
中最后一个 x 绑定到中间一。但这对 alpha 等价性有影响吗?
\x->\x->x
alpha 等同于 \x->\y->x
吗?
如果两个术语 t1
和 t2
是等价的,那么对于任何上下文,E[.]
、E[t1]
和 E[t2]
都归结为同一个术语。
因此,如果您有两个术语,并且找到使它们简化为两个不同术语的上下文,您就知道它们不是 alpha 等价的。
在这里,您有 t1 = \x.\x.x
和 t2 = \x.\y.x
,采用应用两个不同术语的上下文,例如v1
和 v2
,你有:
t1 v1 v2 = (\x.\x.x) v1 v2 --> (\x.x) v2 --> v2
和
t2 v1 v2 = (\x.\y.x) v1 v2 --> (\y.v1) v2 --> v1
因此您可以推断出它们不是等价的 alpha。
也就是说,如果您真的想使用 alpha 等价,您应该花时间了解什么是自由变量和有界变量,并问问自己在变量绑定方面 alpha 等价是什么意思.