自由和绑定变量

自由和绑定变量

条款
在签名 Σ 上的 Σ 项的集合 TΣ 由文法定义
t ::= x | f (t1, … ,tn)
x 是变量,f 是一些元数 n 和 t1 的函数符号,. . . ,tn 是 Σ 项。
尤其
1 每个变量 x 和一个常数符号 c 都是一个项。
2 将 f (t1, … ,tn) 应用于术语 t1, . . . ,tn 是一个术语。
3 没有其他条款。
没有变量的项是基础项
术语不会评估为真或假,而是其他值,例如 数字变量是指向值的简单指针,而术语是指向值的复杂指针

公式
例子:
∀P. (P(0) ∧ ∀k. P(k) → P(k + 1)) → ∀n. P(n))
不是谓词逻辑的公式——它对谓词进行量化
运算符优先级有助于最小化括号的数量

examples:
1 ∃x. Loves(x, Bob) (somebody loves Bob)
2 ∃x. Loves(Alice, x) (Alice loves someone)
3 ¬∃x. Loves(x, Bob) (nobody loves Bob)
4 ∀x. Loves(x, Alice) (everybody loves Alice)
5 ¬∀x. Loves(x, Bob) (not everybody loves Bob)
6 ∀x∃y. Loves(x, y) (everybody loves somebody)
7 ∃x∀y. Loves(x, y) (somebody loves everybody)

量词为变量提供范围,像局部变量一样在代码块内具有范围

自由和绑定变量
函数 V : T → P(V) 定义为
V(x) = {x}
V© = ∅
V(f (t1, . . . ,tn)) = V(t1) ∪ · · · ∪ V(tn)
计算给定术语中出现的一组变量
如果 x ∈ V(t),x 出现在术语 t
它对公式的扩展是显而易见的
(等于其语法树的叶子中的变量集)
但请注意:V(∃x.φ) = V(∀x.φ) = V(φ)

一个变量可能在一个公式中出现多次
示例:x 出现三次,y 和 z 出现一次
∀x ((P(x) → Q(x)) ∧ R(x, f (y, z)))

如果 x 出现在子公式 ∀x.ψ 或 ∃x.ψ 中,则 x 在 φ 中的出现是必然的。
如果 x 不受约束,则在 φ 中出现的 x 是自由的
一个所有变量都被绑定的公式是封闭的/一个句子

the function FV : Φ → P(V) defined by
FV(⊥) = ∅
FV(>) = ∅
FV(t1 = t2) = V(t1) ∪ V(t2)
FV(P(t1, . . .tn)) = V(t1) ∪ · · · ∪ V(tn)
FV(¬ϕ) = FV(ϕ)
FV(ϕ ψ) = FV(ϕ) ∪ FV(ψ) if ∈ {∧, ∨, →}
FV(Qx. ϕ) = FV(ϕ) − {x} if Q ∈ {∀, ∃}

替代
替换按项替换公式中的变量
它们是 Φ → Φ 类型的函数,完全由“较小”决定
V → T 型函数
我们写 φ[t/x]
表示将 t 替换为 φ 中所有自由出现的 x 的结果

变量捕获
替换可能导致变量捕获
例子:
(∀x.P(x, y))[f(x)/y] = ∀x. P(x, f(x))
P 的第二个参数在替换之前不在 ∀x 的范围内,但它是之后变量捕获发生在术语中的变量被替换为某些变量时变量在替换后变为绑定

对于公式 φ 中的变量 x,项 t 是自由的
如果 t 中的变量在将 t 替换为 φ 中的 x 后未在 φ 中绑定
正式的定义可以在讲义中找到
例子:
对于 ∃z 中的 x,1 y 是自由的。 P(x,z)
2 f (x, y) 对于 ∃y 中的 x 不是自由的。 P(x, y)
对于 P(x, z) → ∀x 中的 x,3 v 是自由的。 Q(x, y)
如果 t 对 x in 是自由的,我们只用 t 代替 x in

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值