离散数学知识点总结(8):一阶逻辑(谓词逻辑)中的换名规则和常用定理

换名规则

为什么需要进行换名?举个例子

  • 在下面的公式中:

∀ x F ( x ) ∨ ∃ x G ( x ) \forall x F(x)\vee\exist x G(x) xF(x)xG(x)                                             ( 1 ) ∗ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(1)*                                            (1)

  • F ( x ) F(x) F(x) 中的 x x x G ( x ) G(x) G(x) 中的 x x x 其实不是同一个意义,因为两个 x x x 的辖域不同。
  • 只有下面这种形式的 x x x 是不需要换名的:

∀ x ( G ( x ) → F ( x ) ) \forall x(G(x)\rightarrow F(x)) x(G(x)F(x))                                             ( 2 ) ∗ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(2)*                                            (2)

  • 即,一个 x x x 的辖域内同时包含了两者,才不用换名。

  • 因此在我们举的例子中, ∀ x F ( x ) ∨ ∃ x G ( x ) \forall x F(x)\vee\exist x G(x) xF(x)xG(x) 应该换名为 ∀ x F ( x ) ∨ ∃ y G ( y ) \forall x F(x)\vee\exist y G(y) xF(x)yG(y)

  • 此外还有一种情况需要进行换名,那就是,当一个字母(例如 x x x) 同时既作为 约束变元,又作为 自由变元 出现的时候,需要将 约束变元 中的 x x x 及其指导变元进行换名举个例子:

∀ x ( G ( x , y ) → ∃ y F ( y , z ) ) \forall x(G(x,y)\rightarrow \exist y F(y,z)) x(G(x,y)yF(y,z))

  • 首先,这个 ∀ x \forall x x 的约束持续到公式的末尾
  • 其次, G ( x , y ) G(x,y) G(x,y) 中的 y y y 没有任何约束,是 自由变元(没有 ∀ y \forall y y 或者 ∃ y \exist y y 约束它)
  • 但是 F ( y , z ) F(y,z) F(y,z) 中的 y y y 被它前面的 ∃ y \exist y y 约束,是 约束变元
  • 到此, y y y 既做了 自由变元,也作为了 约束变元 因此,这个 y y y 作为约束变元的地方应该换名,即如下式:

∀ x ( G ( x , y ) → ∃ w F ( w , z ) ) \forall x(G(x,y)\rightarrow \exist w F(w,z)) x(G(x,y)wF(w,z))

常用定理

让我们再来看一个式子:

∀ x A ( x ) ∨ ∀ x B ( x ) \forall x A(x) \vee \forall x B(x) xA(x)xB(x)                                             ( 3 ) ∗ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(3)*                                            (3)

  • 按照第一部分的换名规则,我想应该写成 ∀ x A ( x ) ∨ ∀ y B ( y ) \forall x A(x) \vee \forall y B(y) xA(x)yB(y) 但如果我告诉你这个式子其实也可以写成:

∀ x ( A ( x ) ∨ B ( x ) ) \forall x(A(x)\vee B(x)) x(A(x)B(x))                                             ( 4 ) ∗ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(4)*                                            (4)

  • 你可能会说,合并同类项呗,这个我熟~~ 简单极了。但事实并非如此。。。。。
  • 之所以这个式子可以不需要换名,而且还能把它换成一个 前束范式 的形式,可并不是 合并 那么简单。 ∃ x A ( x ) ∧ ∃ B ( x ) \exist xA(x)\wedge \exist B(x) xA(x)B(x) 就不能写成 ∃ x ( A ( x ) ∧ B ( x ) ) \exist x(A(x)\wedge B(x)) x(A(x)B(x))。为了解决这个问题,我们就要学习常用的定理来帮助我们了解这个过程。

量词否定等值式

¬ ∀ x A ( x ) ≡ ∃ x ¬ A ( x ) \neg\forall x A(x) \equiv \exist x \neg A(x) ¬xA(x)x¬A(x)                                             ( 1 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(1)                                            (1)

¬ ∃ x A ( x ) ≡ ∀ x ¬ A ( x ) \neg\exist x A(x) \equiv \forall x \neg A(x) ¬xA(x)x¬A(x)                                             ( 2 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(2)                                            (2)

直观理解:

  • 不是所有人都喜欢数学 = 存在(至少一个)人不喜欢数学;
  • 不存在一个人喜欢数学 = 所有人都不喜欢数学

量词辖域的收缩与扩张等值式

∀ x ( A ( x ) ∨ B ) ≡ ∀ A ( x ) ∨ B \forall x (A(x)\vee B) \equiv \forall A(x) \vee B x(A(x)B)A(x)B                                             ( 3 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(3)                                            (3)

∀ x ( A ( x ) ∧ B ) ≡ ∀ A ( x ) ∧ B \forall x (A(x)\wedge B) \equiv \forall A(x) \wedge B x(A(x)B)A(x)B                                             ( 4 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(4)                                            (4)

∀ x ( A ( x ) → B ) ≡ ∃ A ( x ) → B \forall x (A(x)\rightarrow B) \equiv \exist A(x) \rightarrow B x(A(x)B)A(x)B                                             ( 5 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(5)                                            (5)

  • 注意,这里右边的式子变成了 存在量词 我们可以推导一下:
    在这里插入图片描述
    • 第二步可以直接把括号去了,是因为辖域收缩和扩张的前两条理论

∀ x ( B → A ( x ) ) ≡ B → ∀ x A ( x ) \forall x (B \rightarrow A(x)) \equiv B \rightarrow \forall xA(x) x(BA(x))BxA(x)                                             ( 6 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(6)                                            (6)

在这里插入图片描述
∃ x ( A ( x ) ∨ B ) ≡ ∃ A ( x ) ∨ B \exist x (A(x)\vee B) \equiv \exist A(x) \vee B x(A(x)B)A(x)B                                             ( 7 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(7)                                            (7)

∃ x ( A ( x ) ∧ B ) ≡ ∃ A ( x ) ∧ B \exist x (A(x)\wedge B) \equiv \exist A(x) \wedge B x(A(x)B)A(x)B                                             ( 8 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(8)                                            (8)

∃ x ( A ( x ) → B ) ≡ ∀ A ( x ) → B \exist x (A(x)\rightarrow B) \equiv \forall A(x) \rightarrow B x(A(x)B)A(x)B                                             ( 9 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(9)                                            (9)

∃ x ( B → A ( x ) ) ≡ B → ∃ x A ( x ) \exist x (B \rightarrow A(x)) \equiv B \rightarrow \exist xA(x) x(BA(x))BxA(x)                                             ( 10 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(10)                                            (10)

量词分配等值式

∀ x ( A ( x ) ∧ B ( x ) ) ≡ ∀ x A ( x ) ∧ ∀ x B ( x ) \forall x (A(x) \wedge B(x)) \equiv \forall x A(x) \wedge \forall x B(x) x(A(x)B(x))xA(x)xB(x)                                             ( 11 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(11)                                            (11)

∃ x ( A ( x ) ∨ B ( x ) ) ≡ ∃ x A ( x ) ∨ ∃ x B ( x ) \exist x (A(x) \vee B(x)) \equiv \exist x A(x) \vee \exist x B(x) x(A(x)B(x))xA(x)xB(x)                                             ( 12 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(12)                                            (12)

注意:下面这两组公式,就不是逻辑等值的了,而是只能单向推导了

∀ x A ( x ) ∨ ∀ x B ( x ) ⊨ ∀ x ( A ( x ) ∨ B ( x ) ) \forall x A(x) \vee \forall x B(x) \models \forall x (A(x) \vee B(x)) xA(x)xB(x)x(A(x)B(x))                                             ( 13 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(13)                                            (13)

∃ x ( A ( x ) ∧ B ( x ) ) ⊨ ∃ x A ( x ) ∧ ∃ x B ( x ) \exist x (A(x) \wedge B(x)) \models \exist x A(x) \wedge \exist x B(x) x(A(x)B(x))xA(x)xB(x)                                             ( 14 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(14)                                            (14)

注意两个推导的方向是不同的 (13)和 (14)不作为定理出现

无名等值式

∀ x ∀ y A ( x , y ) ≡ ∀ y ∀ x A ( x , y ) \forall x \forall yA(x,y)\equiv \forall y \forall xA(x,y) xyA(x,y)yxA(x,y)                                             ( 15 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(15)                                            (15)

∃ x ∃ y A ( x , y ) ≡ ∃ y ∃ x A ( x , y ) \exist x \exist yA(x,y)\equiv \exist y \exist xA(x,y) xyA(x,y)yxA(x,y)                                             ( 16 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(16)                                            (16)

回到式子 ( 3 ) ∗ (3)* (3)

  • 现在让我们解答最初那个问题,你现在还以为是 合并 这么简单么?当然不是,之所以在那个公式中可以
    在这里插入图片描述
    就是因为公式 ( 13 ) (13) (13) 他保证了这个步骤可以直接变成 ( 4 ) ∗ (4)* (4) 而不用非得进行 换名,当然,如果你想换名,答案也是对的。

总结一下

  • 两种情况需要进行换名:

    • 当辖域不同的重名变量存在时,需要使用不同的名字
    • 约束变元自由变元 命名发生冲突时,最好将 约束变元 及其 指导变元 进行改名
  • 当进行量词合并或者拆分的时候,一定不要想当然,要根据合并或者拆分的规则和定理进行。

  • 73
    点赞
  • 211
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值