Lambda 是\x->\x->;xα相当于\x->\y->;x?
所以我知道在Lambda 是\x->\x->;xα相当于\x->\y->;x?,lambda,lambda-calculus,Lambda,Lambda Calculus,所以我知道在\x->\y->x中,第二个x绑定到第一个(请纠正我的错误),在\x->\x->x中,最后一个x绑定到中间的一个。但是当涉及到阿尔法等价时,这会有区别吗 \x->\x->xalpha是否等同于\x->\y->x?如果两个术语t1和t2是alpha等价的,那么对于任何上下文E[.],E[t1]和E[t2]减少为相同的术语 因此,如果您有两个术语,并且您找到了一个上下文,使它们简化为两个不同的术语,那么您知道它们不是alpha等价的 在这里,您有t1=\x.\x.x和t2=\x.\y.x
\x->\y->x
中,第二个x绑定到第一个(请纠正我的错误),在\x->\x->x
中,最后一个x绑定到中间的一个。但是当涉及到阿尔法等价时,这会有区别吗
\x->\x->x
alpha是否等同于\x->\y->x
?如果两个术语t1
和t2
是alpha等价的,那么对于任何上下文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
及
因此,你可以推断它们不是阿尔法等价物
也就是说,如果你真的想使用阿尔法等价,你应该花时间去理解什么是自由变量和有界变量,并问问自己,就变量绑定而言,阿尔法等价意味着什么。如果两个术语
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
及
因此,你可以推断它们不是阿尔法等价物
这就是说,如果你真的想使用alpha等价,你应该花时间去理解什么是自由变量和有界变量,并问问自己,就变量绑定而言,alpha等价意味着什么。我会努力做到不必在意。不要重复我的名字,我会努力奋斗,从不去在意。不要重复使用名字