"自由变量"之间的差异和"变量的自由出现"在lambda演算的背景下

时间:2016-03-07 18:27:30

标签: substitution lambda-calculus free-variable bound-variable

在lambda演算的上下文中,自由变量和变量的自由出现之间是否有任何区别?如果是,那么请用一两个例子来解释。 实际上我正在浏览lambda表达式的转换规则,其中我遇到了以下行:

  

在说明转换规则时,符号 var vertices = [ // Front face -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ... ] 用于表示E[E'/V]替换E' VE每次出现的结果

1 个答案:

答案 0 :(得分:1)

我们来看T:

t\q\p\ (t x (x\ q x) (p q x)

(其中x \ t表示lambda x.t - 这是Lambda-Prolog表示法)

一个自由变量:x和四个绑定变量,其中一个也被命名为x。但是两个“x”是 相同的变量(在某种意义上,该术语可以被alpha重命名为t\q\p\ (t x (y\ q y) (p q x) 但不是,例如,t\q\p\ (t x (y\ q y) (p q y)

在上面的术语T中,变量x有两个自由出现,另一个变量有一个绑定出现,也称为x。

现在,如果您的问题是“可以在同一个词中,相同变量的自由发生和绑定出现,是绑定还是免费? “,我不这么认为。