Lambda微积分自由变量问题

时间:2013-03-24 21:54:21

标签: lambda-calculus

我在网上找到了Mike Gordon的功能编程简介 Notes,我正在努力解决这个问题。在第9页上有这个问题:

Find an example to show that if V1 = V2 , then even if V2 is not free in E1,
it is not necessarily the case that:

(λ V1 V2 . E ) E1 E2 = E [E1/V1][E2/V2]

我猜我可以说因为V1和V2是相同的,所以我们可以重做它:

(λ V2 V1 . E ) E1 E2

因此说

(λ V1 . E[E1/V2] ) E2

给出了在E1中V2不可用的规定。但后来我们不能说

E[E1/V2][E2/V1]

因为E2必然会有V1免费。或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

这不是一个反例。除此之外,我不明白你在最后一步的推理 - 为什么V1必须在E2中自由发生?除此之外,您最后一步中的E[E1/V2][E2/V1]不是声明。 saing是什么意思“我们不能说E[E1/V2][E2/V1]?”

您应该尝试为此假设构建一个显式反例,即选择V1=V2=x(由于α转换,它确实无关紧要),然后找到 explicit < / em>表达式EE1E2使得它们满足假设的假设(V2E1中不可用),但表达式{ {1}}不等于`E[E1/V2][E2/V2]的缩减。

既然你说你想自己做这件事,我不会给你解决方案,但可以随意提出更多指示。