Lambda演算完整表达式替换

时间:2014-11-13 08:41:52

标签: lambda-calculus

关于自由出现的替换:我们可以替换整个表达式(函数,应用程序),还是只替换变量:

示例:

  • 当前表达式\ x。\ y。(y,z)
  • 要替换的表达式:\ y。(y z)和p所以我们将有\ x.p。

有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,有可能。一种方法是考虑事件的替代。出现是集合{1,2,3}上的字符串,对于每个lambda-term M,出现M/u的子表达式u定义为:

  • M/[] = M
  • M/0u = N/u,如果M=\x. N
  • M/1u = P/u,如果M=PQ
  • M/2u = Q/u,如果M=PQ

(我使用符号[]来表示空字符串。)

现在将替换M[u := N]定义为在u中使用N替换出现M所获得的字词。我在一些P.-L中看到过这种替代。 Curien工作。