Skip to content

自由变量与约束变量

Free and bound variables

按量词作用域区分公式中由赋值决定的变量出现和被量化绑定的变量出现。

条目类型
定义

形式陈述

一阶公式的语法树中,变量的一次出现若位于相应量词 xx 的作用域内,则该出现被该量词约束;否则自由。自由变量集合递归满足

FV(xφ)=FV(φ){x},

其余联结词取相应并集。公式可同时含同一变量名的自由出现与受约束出现。只改变受约束变量名称且避免捕获的 α-重命名不改变语义;句子恰是自由变量集合为空的公式。

直觉

自由变量像公式对外开放的参数,受约束变量只是量词内部的局部名字;作用域决定每次出现由谁控制。

自由变量像公式的外部参数,其值由环境赋予;约束变量则是量词或绑定器内部的局部名字。真假是否依赖某个变量,取决于它是否自由出现,而不是字面上是否出现。重命名约束变量不应改变含义,但重命名自由变量会改变公式所表达的参数关系。

例子与边界

P(x)xQ(x,y) 中,第一处 x 自由,量词内部 x 受约束,y 自由。xQ(x,y) 可安全改名为 zQ(z,y),但若 z 在内部已有自由出现就可能捕获。不能仅看变量字母是否出现在某个量词旁边,必须沿语法树判断作用域。

xR(x,y) 中,x 约束、y 自由;外层再加 y 后成为句子。公式 R(x)xS(x) 中第一个 x 自由,第二个被绑定,同名不代表同一作用域。把自由变量 y 替换为 x 可能被 x 捕获,因此需先改名。

推论与应用

自由变量决定公式真值依赖哪些赋值,并控制泛化规则、替换、lambda 绑定和数据库查询参数。捕获规避是形式推理与编译器实现的基本正确性要求;程序语言中更一般的绑定器—作用域—出现关系见变量绑定

变量赋值只需为自由变量提供值,句子的真假与赋值无关。替换引理精确处理无捕获代入,量词规则、λ 演算和程序作用域也共享这一绑定结构。

参考资料
  • Herbert B. Enderton, A Mathematical Introduction to Logic, 2nd ed., Academic Press, 2001,§2.1, scope, free variables, and substitution。
  • Heinz-Dieter Ebbinghaus, Jörg Flum, and Wolfgang Thomas, Mathematical Logic, 2nd ed., Springer, 1994,Ch. I, free and bound occurrences。
关系图谱6 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组