这是本博客公开发表的第 100 篇文章🎉🎉

开篇先用真值表镇楼:

P Q 合取 PQP\wedge Q 蕴含 PQP\to Q
0 0 0 1
0 1 0 1
1 0 0 0
1 1 1 1

例子引入

个体域分别限制为(a)和(b)条件时,将下列两个命题符号化 [1]

  1. 凡人都呼吸。
  2. 有的人用左手写字。

其中,

(a) 个体域 D1 为人类集合;

(b) 个体域 D2 为全总个体域。

请思考后作答。

例题答案

(a) 令 F(x):x 呼吸,G(x):x 用左手写字。

  1. xF(x)\forall x F(x)
  2. xG(x)\exists xG(x)

(b) 引入特性谓词M(x):x 是人。

  1. x(M(x)F(x))\forall x(M(x)\to F(x))
  2. x(M(x)G(x))\exists x (M(x)\wedge G(x))

为什么不同的量词在个体域变为总个体域时,命题需要作出这样的变化?又为什么不是反过来的,比如存在量词变化为蕴含的形式,全称量词变化为合取的形式?

课本描述

不同课本在提到这个知识点时的表述如下。

左孝凌等人主编的《离散数学》这样写到 [2]

使用总个体域后,对每一个客体变元的变化范围,用特性谓词加以限制。一般有:

  • 对于全称量词,特性谓词常作为蕴含的前件
  • 对于存在量词,特性谓词常作为合取项

屈婉玲等人主编的《离散数学》第 2 版中,针对这道例题有相应的说明 [3]

  • 如果 (b)1.答案为 x(M(x)F(x))\forall x(M(x)\wedge F(x)),这是不对的。若将它翻译成自然语言,则应该是“宇宙间的所有个体都是人并且都呼吸”,这显然与原义不符。
  • 如果 (b)2.答案为 x(M(x)G(x))\exists x(M(x)\to G(x)),这也是不对的。将它翻译成自然语言应该为“在宇宙间存在个体,如果这个体是人,则他用左手写字”,这显然也不符合原意。

不管你读到那本书,如果对两个 Ling🔔 的解释还有迷惑可继续往下阅读思考。

思考讨论

首先,没有人规定必须是这样转换的。转换的最终根据还是在于是否符合原句句意。

其实在我们说话的语境中,就有一些逻辑上的暗示(或者说隐含的意思):

  1. 当我们说「所有的人都呼吸」时,就有以下暗示:对于宇宙一切物体,如果个体是人,他呼吸。那我们的意思就是:
    a. 不管宇宙有没有「人👨」,我们都认为命题正确。宇宙没有「人👨」,全称量词不关心,但只要有「人👨」,就必须呼吸。比如一个外星人👽说:「所有的人👨都呼吸」,假设宇宙根本没有「人👨」这个生物,但我们依然认为外星人👽说的没有错。
  2. 当我们说「有的人用左手写字」时,就有以下暗示:在宇宙间存在这样的个体,它是人,用左手写字。那我们的意思就是:
    a. 必须存在一个人,且这个人用左手写字。命题才为真。
    b. 宇宙中有人,但是这些人都不用右手写字。命题为假。
    c. 宇宙中连「人」都不存在。命题为假。因为命题中「有的人」这三个字包含了「必须要有人」的意思。
    d. 外星生物用右爪写字。这和我们的表述无关且不符。命题为假。

对于以上两个命题,我们将正确转换以及错误转换的真值列在一起供理解:

凡人都呼吸 M(x) F(x) 表达式真值 我们认为应该的真值 解释
正确的转换:
x(M(x)F(x))\forall x(M(x)\to F(x))
0 x 1 1 如果不是人。我们也认为「凡人都呼吸」命题正确,属于善意推导,符合我们的理解。
1 0 0 0 只有这种情况,「凡人都呼吸」为假命题。
1 1 1 1 理所当然。
错误的转换:
x(M(x)F(x))\forall x(M(x)\wedge F(x))
1 1 1 1
0 x 0 1 宇宙中没有人,但表达式为假。这违背 a.的讨论。
1 0 0 0

x(M(x)F(x))    xM(x)F(x)\forall x(M(x)\wedge F(x)) \iff \forall xM(x)\wedge \forall F(x)。这意味着:宇宙所有的生物都是人,并且都呼吸。

「善意的推定」详见:「蕴含」与「等价」自然语言表达的理解 脚注。

有的人用左手写字 M(x) G(x) 表达式真值 我们认为应该的真值 解释
正确的转换:
x(M(x)G(x))\exists x (M(x)\wedge G(x))
1 1 1 1 理所当然。
0 x 0 0 我们必须存在这样的人。
x 0 0 0 G(x) 为假就表示了:没有人用左手写字。
错误的转换:x(M(x)G(x))\exists x(M(x)\to G(x)) 1 1 1 1
1 0 0 0 G(x) 为假就表示了:没有人用左手写字。
0 x 1 0 宇宙连人都没有,但是表达式的真值真。或者说,我们找到了一个外星生物,表达式告诉我们这就是真。这显然违背了 c.中的讨论。

有没有办法让 x(M(x)G(x))\exists x(M(x)\to G(x)) 正确?有,只要让 x 论域为人即可。这样 M(x)M(x) 就永真了。起作用的变成了 G(x)G(x),也就让命题变成了 xG(x)\exists xG(x),相当于例题中(a)2.的答案。

课后例题

下面我们可以尝试再做一道例题体会体会。

例子:在⼀阶逻辑中将下列命题符号化

(1)火车都比轮船快。
(2)有的火车比有的汽⻋快
(3)不存在比所有火车都快的汽车。
(4)说凡是汽车就比火车慢是不对的

解:

  1. F(x):x 是火车;G(y):y 是轮船;H(x,y):x 比 y 快。xy(F(x)G(y)H(x,y))\forall x\forall y(F(x)\wedge G(y)\to H(x,y))
  2. F(x):x 是火车;G(y):y 是汽车;H(x,y):x 比 y 快。xy(F(x)G(y)H(x,y))\exists x\exists y(F(x)\wedge G(y)\wedge H(x,y))
  3. F(x):x 是汽车;G(y):y 是火车;H(x,y):x 比 y 快。¬x(F(x)y(G(y)H(x,y)))\neg \exists x(F(x)\wedge \forall y(G(y)\to H(x,y)))
  4. F(x):x 是汽车;G(y):y 是火车;H(x,y):x 比 y 快。¬xy(F(x)G(y)H(x,y))\neg \forall x\forall y(F(x)\wedge G(y)\to H(x,y))

本文参考


  1. 屈婉玲《离散数学》第二版例 4.2 ↩︎

  2. 相应课本第 59 页。 ↩︎

  3. 相应课本第 62-63 页。 ↩︎