Ch4-谓词逻辑的基本概念

Q: 能否用命题逻辑刻画以下推理:

  • 凡有理数都是实数 p;

  • 2/7 是有理数 q;

  • 所以 2/7 是实数 r。

不能说是 (p∧q)→r. 需要再引用符号,来表示一个个体是否具有某个性质。

谓词和个体词

Definition(谓词):谓词是给定个体到 {T,F} 上的映射。常常使用大写字母 P,Q,⋯ 表示。

Example:

例如 “3 是有理数”,其中“是有理数”是谓词,表示了 3 的关系;

“5 大于 3”,其中“大于”是谓词,表示了 5,3 之间的关系。

Definition(个体词):是一个命题里面表示思维对象的词。若指定了,称为个体常量;若没有指定,则称为个体变项。

Definition(谓词变项) 有 n 个个体的谓词 P(x1,⋯,xn) 称为 n 项谓词。如果 P 有明确含义,则称为谓词常项,而 P 表示任一谓词时,称为谓词变项。

Definition(个体域/论域) 将个体变项的变化范围称为 个体域 或者 论域。e.g. 自然数集,实数集。命题正确与否,也取决于论域。

谓词 P(x) 是不是命题?不是,因为没有给出 P,x 的具体定义,如 P(x) 表示 x 是有理数,x 代表 3,则 P(x) 取值为 T. 谓词逻辑是命题逻辑的推广。可以认为一个命题是一个零元谓词。

函数和量词

Definition(函数):是某个体域到另外一个体域的映射,约定用小写字母表示。

Example:书上的举例:MARRIED(father(张三),mother(张三)),表示张三的父亲和母亲是否结婚。

Definition(量词):∀,∃ 作用于个体变元,不允许作用于命题变项和谓词变项。表示为:

(∀x)(x是运动的)(x)(x是运动的)∀x(P(x))∃x(x是动物)

∀x(P(x)) 为真,当且仅当任意 x0∈D,都有 P(x0)=T.

∀x(P(x)) 为假,当且仅当存在 x0∈D,有 P(x0)=F.

不允许出现 (∃x)P(x)∧Q(x).

变量易名规则:(∀x)P(x)=(∀y)P(y),间接说明了和具体的 x,y 无关。

Definition(辖域):是量词所约束的范围。

(∃x)((∀y)P(x,y)) 中,P(x,y) 是 ∀y 的辖域。

image-20231111174326838

谓词逻辑合式公式

符号约定:

Definition(谓词逻辑的合式公式):合式公式的定义:

反面:(∀x)F(x)∧G(x). G(x)→(∀x)F(x).

反面:(∃x)((∀x)P(x)). (∀x)P(y).

简单理解,就是能不能给出一个解释,使得合式公式合理。

自然语句的形式化

所有的……都是……

(∀x)(P(x)→Q(x))

不等价于 (∀x)(P(x)∧Q(x)),因为这句话说的是 (∀x)(P(x))∧(∀x)(Q(x)).

当真值取真时,真值和论域无关?

“所有的实数都是有理数”,若论域取 {1,2,3},则成立;若取 {1,2,π},则不成立;若取 {i},则成立。

有的……是……

(∃x)(P(x)∧Q(x))

设 P:是有理数,Q:是无理数,不等价于 (∃x)(P(x)→Q(x)). 假设我们找到一个数既不是有理数,也不是无理数,那么这个是对的。

没有……是……

¬(∃x)(P(x)∧Q(x))
(∀x)(P(x)→¬Q(x))

有的……不是……

(∃x)(A(x)∧¬B(x))
¬(∀x)(A(x)→B(x))

至少有一偶数是素数和至少有一偶数并且至少有一素数 第一个命题等价于“有的……是……”,第二个命题等价于:

(∃x)P(x)∧(∃x)Q(x)

积木世界的形式描述

谓词 ON,表示是否在上;CLEAR 表示是否其上有积木块,则:

(∀x)(CLEAR(x)→¬(∃y)(ON(y,x)))

自然数集的形式化描述

论域是自然数集,来形式化语句:

(1)对每个数,有且仅有一个相继后元 (2)没有这样的数,0 是其相继后元 (3)对除 0 而外的数,有且仅有一个相继前元(可将这三句话作为建立自然数集合的公理)

引入:

那么可以这样表示:

(∀x)(∃y)(E(y,f(x))∧(∀z)(E(z,f(x))→E(y,z)))

在说:存在一个 y 是 x 的相继后元,如果另外一个数 z 也是相继后元,那么 y=z.

¬(∃x)E(0,f(x))

在说:没有一个数的后继是 0.

(∀x)(¬E(x,0)→(∃y)(E(y,g(x))∧(∀z)(E(z,g(x))→E(y,z))⏟在说有且仅有一个相继前元))

谓词变元多次量化和公式表示法

(∀x)(∀y)P(x,y)=(∀x)((∀y)P(x,y))(∀x)(∃y)P(x,y)=(∀x)((∃y)P(x,y))(∃x)(∀y)P(x,y)=(∃x)((∀y)P(x,y))(∃x)(∃y)P(x,y)=(∃x)((∃y)P(x,y))

可得:(∃x)(∃y)P(x,y)=(∃y)(∃x)P(x,y),(∀x)(∀y)P(x,y)=(∀y)(∀x)P(x,y)

假设论域为 {1,2,⋯,k},我们可以枚举:

(∀x)P(x)=P(1)∧P(2)∧⋯∧P(k)(∃x)P(x)=P(1)∨P(2)∨⋯∨P(k)

因此,∀ 是 ∧ 的推广,∃ 是 ∨ 的推广。

在论域 {1,2} 上多次量化公式:

(∃x)(∀y)P(x,y)=(∀y)P(1,y)∨(∀y)P(2,y)=(P(1,1)∧P(1,2))∨(P(2,1)∧P(2,2))

公式的普遍有效性和判定问题

和命题公式类似,也有三类:

如何理解一个解释,就是将个体变元以具体的事物代之。

有限域 上一个公式的可满足性和普遍有效性依赖于个体域个体的个数且仅依赖于个体域个体的数目

谓词逻辑的判定问题,指的是任一公式的普遍有效性。若说谓词逻辑是可判定的,就要给出一个能行方法,使得对任一谓词公式都能判断其是否普遍有效。

Ch5-谓词逻辑的等值和推理演算

谓词逻辑的等值

等值式的定义:如果公式 A,B 的任何解释下,A,B 都有相同的真值,则 A,B 等值。

Theorems 由命题公式移植来的等值式 (命题公式中,直接以谓词公式代入命题变项)

  1. ¬¬P(x)=P(x)

  2. ¬¬(∀x)P(x)=(∀x)P(x)

  3. P(x)→Q(x)=¬P(x)∨Q(x)

  4. (∀x)P(x)→(∃x)Q(x)=¬(∀x)P(x)∨(∃x)Q(x)

  5. (P(x)∧Q(x))∨R(x)=(P(x)∨R(x))∧(Q(x)∨R(x))

  6. ((∀x)P(x)∧Q(y))∨(∃z)R(z)=((∀x)P(x)∨(∃z)R(z))∧(Q(y)∨(∃z)R(z))

Theorems 否定型等值式(摩根律)

¬(∀x)P(x)=(∃x)¬P(x)(∀x)P(x)=¬(∃x)(¬P(x))¬(∃x)P(x)=(∀x)¬P(x)(∃x)P(x)=¬(∀x)(¬P(x))

如果不是对所有 x 都成立,一定对一个 x 不成立。


Examples

“并非所有的动物都是猫” 设 A(x):x 是动物,B(x):x 是猫。

“天下乌鸦一般黑” 设 F(x):x 是乌鸦,G(x,y):x,y 一般黑。

Theorems 量词对合取、析取的分配律 若 q 不含 x,则:

(∀x)(P(x)∨q)=(∀x)P(x)∨q(∃x)(P(x)∨q)=(∃x)P(x)∨q(∀x)(P(x)∧q)=(∀x)P(x)∧q(∃x)(P(x)∧q)=(∃x)P(x)∧q
(∀x)(P(x)∧Q(x))=(∀x)P(x)∧(∀x)Q(x)(∃x)(P(x)∨Q(x))=(∃x)P(x)∨(∃x)Q(x)

∀ 对 ∨,∃ 对 ∧ 的分配率一般不成立。

Problem:证明 (∀x)(P(x)∨Q(x))≠(∀x)P(x)∨(∀x)Q(x).

Proof:例如,对于论域 {1,2},令 P(1)=1,P(2)=0,Q(1)=0,Q(2)=1,则不成立。

Problem:但是 (∀x)P(x)∨(∀x)Q(x)⇒(∀x)(P(x)∨Q(x)).

Proof:枚举 (∀x)P(x) 成立或者 (∀x)Q(x) 成立。

Problem:证明 (∃x)(P(x)∧Q(x))≠(∃x)P(x)∧(∃x)Q(x). 和上面举例相同。

Problem:证明 (∃x)(P(x)∧Q(x))⇒(∃x)P(x)∧(∃x)Q(x),

Proof:消去存在量词,P(a)∧Q(a) 为真,则 P(a),Q(a) 均为真,此时 (∃x)P(x) 和 (∃x)Q(x) 均成立。

Theorems 量词对 → 的分配律

(∀x)(P(x)→q)=(∃x)P(x)→q(∃x)(P(x)→q)=(∀x)P(x)→q(∀x)(p→Q(x))=p→(∀x)Q(x)(∃x)(p→Q(x))=p→(∃x)Q(x)

Proof(1.)

(∀x)(¬P(x)∨q)=(∀x)(¬P(x))∨q=¬(∃x)P(x)∨q=(∃x)P(x)→q

也可以这样证明,引入前提假设 (∃x)P(x),则 q 成立当且仅当 (∀x)(P(x)→q)。

Theorems 变元易名后的分配律

(∀x)(∀y)(P(x)∨Q(y))=(∀x)P(x)∨(∀x)Q(x)(∃x)(∃y)(P(x)∧Q(y))=(∃x)P(x)∧(∃x)Q(x)(∀x)(∀y)(P(x)∧Q(y))=(∀x)P(x)∧(∀x)Q(x)(∃x)(∃y)(P(x)∨Q(y))=(∃x)P(x)∨(∃x)Q(x)

Proof(1.) RHS先做替换:(∀x)P(x)∨(∀y)Q(y). 然后后面一项对于第一项来说,可以视作常量 q,则:

(∀x)(P(x)∨(∀y)Q(y))

因此:

(∀x)(∀y)(P(x)∨Q(y))

谓词逻辑的范式

Definition 前束范式 如果 A 中的一切量词都位于公式的最左边(不含否定词),而且量词的辖域都延伸到公式的末端,前束范式 A 的一般形式为:

(Q1x1)⋯(Qnxn)M(x1,⋯,xn)

其中 Qi 为量词,M 称为公式 A 的母式(基式),M 中不再有量词。

谓词逻辑的任一公式都可以化为与之 等值 的前束范式,但是不唯一。

Definition ∃ 前束范式一个公式的 ∃ 前束范式为 (∃x1)⋯(∃xi)(∀xi+1)⋯(∀xn)M(x1,⋯,xn). 所有的存在量词都在全称量词的左边。M(x1,⋯,xn) 不含量词和自由个体变元。

谓词逻辑的任一公式 A,都可以化作相应的 ∃ 前束范式,并且 A 是 普遍有效 的当且仅当其 ∃ 范式是 普遍有效 的。

Problem:求 (∃x)(∀y)(∃u)P(x,y,u) 的 ∃ 前束范式(P 中无量词)。

Solution:将全称量词 (∀y) 改写为存在量词 (∃y),再引入谓词 S 和一个变元 z,得到 S(x,z),建立公式

(∃x)(((∃y)(∃u)P(x,y,u)∧¬S(x,y))∨(∀z)S(x,z))

∃ 前束范式仅在普遍有效的意义下与原公式等值,

(∀y)(F(y)→G(y))→((∀y)F(y)→(∀z)G(z))

Problem 求公式 (∀x)(P(x)↔(∃y)Q(x,y)) 的前束范式。

Solution:

(∀x)(P(x)↔(∃y)Q(x,y))=(∀x)((P(x)→(∃y)Q(x,y))∧((∃y)Q(x,y)→P(x)))=(∀x)(∃y)(∀z)((P(x)→Q(x,y))∧(Q(x,z)→P(x)))

Definition Skolem 标准型 仅仅保留全称量词的前束形。

谓词逻辑的任一公式 A,都可以化作相应的 Skolem 标准型,并且 A 是 不可满足 的当且仅当其 Skolem 标准型是 不可满足 的。

从左到右消去存在量词,设要消去 (∃x),则将谓词 P 中出现的所有变元 x 均以论域中的某个常项 a 代入。若 (∃x) 的左边有若干全称量词 (∀y)⋯(∀z),需将谓词 P 中出现的所有变元 x 均以全称量词 y,⋯,z 的某个多元函数 f(y,⋯,z) 代入。

Example 求公式 (∃x)(∀y)(∀z)(∃u)(∀v)(∃w)P(x,y,z,u,v,w) 的 Skolem 标准型.

因此 Skolem 标准型为 (∀y)(∀z)(∀v)P(a,y,z,f(y,z),v,g(y,z,w)).

可以这样理解,比如说极限的定义是 ∀ε>0,∃δ>0,∀|x−x0|<δ,|f(x)−f(x0)|<ε.

可以给出 δ 关于 x0,ε 的一个函数。

谓词逻辑的基本的推理公式

(∀x)P(x)∨(∀x)Q(x)⇒(∀x)(P(x)∨Q(x))(∃x)(P(x)∧Q(x))⇒(∃x)P(x)∧(∃x)Q(x)

Proof:前面推导过。


(∀x)(P(x)→Q(x))⇒(∀x)P(x)→(∀x)Q(x)(∀x)(P(x)→Q(x))⇒(∃x)P(x)→(∃x)Q(x)

Proof:引入前提假设 (∀x)P(x) 或 (∃x)P(x). 在 (∀x)(P(x)→Q(x)) 的条件下,可以分别推得 (∀x)Q(x) 或 (∃x)Q(x) 成立。


(∀x)(P(x)↔Q(x))⇒(∀x)P(x)↔(∀x)Q(x)(∀x)(P(x)↔Q(x))⇒(∃x)P(x)↔(∃x)Q(x)

Proof:和上面证明方法一样,证明双向。


(∀x)(P(x)→Q(x))∧(∀x)(Q(x)→R(x))⇒(∀x)(P(x)→R(x))

Proof:

(∀x)(P(x)→Q(x))∧(∀x)(Q(x)→R(x))⇒(∀x)((P(x)→Q(x))∧(Q(x)→R(x)))⇒(∀x)(P(x)→R(x))

(∀x)(P(x)→Q(x))∧P(a)⇒Q(a)

(∀x)(∀y)P(x,y)⇒(∃x)(∀y)P(x,y)(∃x)(∀y)P(x,y)⇒(∀y)(∃x)P(x,y)

Proof:解释性的说明:

  1. 当 P(x,y) 对于任意论域中的 x,y 都成立,则存在 x0,使得任意 P(x0,y) 成立。

  2. 设在一解释 I 下,有 (∃x)(∀y)P(x,y)=T,于是有 x0∈D,使得对于一切的 y∈D,都有 P(x0,y)=T. 从而对于一切的 y∈D,都有一个 x(均选为 x0)使得 P(x,y)=T.

谓词逻辑的推理演算

  1. 前提引入规则;

  2. 结论引用规则;(中间结论可以作为后续推理的前提)

  3. 代入规则;(代入重言式的命题变项)

  4. 置换规则;(用等值公式置换)

  5. 分离规则(假言推理)A→B 和 A 推出 B.

  6. 条件证明规则。引入前提条件。A1⇒A2→B 和 A1∧A2⇒B 是等价的。

谓词逻辑的推理规则

例如 (∀x)(∃y)P(x,y)⇒(∃y)P(x,y)⇒P(x,a).

但是不能再推出 (∀x)P(x,a),因为不是对于同一个 a 都成立。

需要分析好变量之间的依赖关系。

Example:分析下述推理的正确性

  1. (∀x)(∃y)(x>y). 前提;

  2. (∃y)(z>y). 全称量词消去,y 与 z 相关;

  3. z>b. 存在量词消去,b 依赖 z.

  4. (∀z)(z>b). 全称量词引入(错误,b 不能依赖 z)

Problem:有的病人喜欢所有的医生:

(∃x)(P(x)∧(∀y)(D(y)→L(x,y)))

没有病人喜欢庸医:

(∀x)(P(x)→(∀y)(Q(y)→¬L(x,y)))

推出,没有医生是庸医:

(∀x)(D(x)→¬Q(x))

Solution.

  1. (∃x)(P(x)∧(∀y)(D(y)→L(x,y)))

  2. 存在量词消去 P(c)∧(∀y)(D(y)→L(c,y)).

  3. (∀x)(P(x)→(∀y)(Q(y)→¬L(x,y)))

  4. 全称量词消去 P(c)→(∀y)(Q(y)→¬L(c,y))

  5. P(c) 2. 推出

  6. (∀y)(D(y)→L(c,y)) 2. 推出

  7. D(y)→L(c,y) 6. 消去

  8. (∀y)(Q(y)→¬L(c,y)). 5. 4. 分离

  9. Q(y)→¬L(c,y). 8. 消去

  10. L(c,y)→¬Q(y). 9. 置换。

  11. D(y)→¬Q(y). 三段论

  12. (∀y)(D(y)→¬Q(y)). 全称量词引入(因为 y 为论域中任何一个个体)

谓词逻辑的归结证明

  1. 根据 A∧¬B=G,写出公式 G.

  2. 建立子句集。

  3. 归结出矛盾。


证明 (∀x)(P(x)→Q(x))∧(∀x)(P(x)→Q(x))=(∀x)(P(x)→R(x)).

首先写出:G=(∀x)(P(x)→Q(x))∧(∀x)(P(x)→Q(x))∧¬(∀x)(P(x)→R(x))

因此 G 的子句集为 {¬P(x)∨Q(x),¬Q(x)∨R(x),P(a),¬R(a)}.


求证 A1∧A2⇒B. G=A1∧A2∧¬B.

建立子句集:

{P(a),¬D(y)∨L(a,y)}{¬P(x)∨¬Q(y)∨¬L(x,y)}D(b),Q(b)