本文属于「离散数学」系列文章之一。这一系列着重于离散数学的学习和应用。由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘。此外,在本系列学习文章中,为了透彻理解数学知识,本人参考了诸多博客、教程、文档、书籍等资料。以下是本文的不完全参考目录,在后续学习中还会逐渐补充:
- 离散数学及其应用 第七版
Discrete Mathematics and Its Applications 7th
,作者是Kenneth H.Rosen
- 离散数学 第二版,武波等编著,西安电子科技大学出版社
2. 谓词公式
有了谓词和量词(全称量词、存在量词、变元量化、全总个体域、特性谓词)的概念,就可以利用谓词、量词和联结词构造表达式,更为准确和深入地刻画自然语言中的各类命题。然而同命题公式一样,只有满足一定生成规则的表达式才能有效表示命题、进行谓词演算和推理。
2.1 谓词逻辑的合式公式(谓词公式)
与命题公式类似,不存在逻辑联结词和量词的单个谓词,如 P ( x 1 , x 2 , … , x n ) ( n ≥ 0 ) P(x_1, x_2, \dots, x_n)\ (n \ge 0) P(x1,x2,…,xn) (n≥0) 称为谓词演算的原子公式。单个命题常元和命题变元也是谓词演算的原子公式。
定义2.1.1 谓词逻辑的合式公式(简称谓词公式)可由以下步骤生成:
- 原子公式是谓词公式;
- 如果 A A A 和 B B B 是谓词公式,则 ¬ A \lnot A ¬A、 ( A ∧ B ) (A\land B) (A∧B)、 ( A ∨ B ) (A\lor B) (A∨B)、 ( A → B ) (A \to B) (A→B)、 ( A ↔ B ) (A \leftrightarrow B) (A↔B) 是谓词公式;
- 如果 A A A 是谓词公式,且 A A A 中有未被量化的个体变元 x x x ,则 ∀ x A ( x ) \forall xA(x) ∀xA(x) 和 ∃ x A ( x ) \exist x A(x) ∃xA(x) 是谓词公式(注意适用条件,如由 ∀ x P ( x , y ) \forall xP(x,y) ∀xP(x,y) 可以生成 ∃ y ∀ x P ( x , y ) \exist y\ \forall x P(x,y) ∃y ∀xP(x,y) ,但不能生成 ∀ x ∃ y P ( x , y ) \forall x\ \exist y P(x, y) ∀x ∃yP(x,y) );
- 只有有限次应用步骤1,2,3所得到的公式才是谓词公式。
由以上定义可知,任何一个命题公式都是谓词公式。书写谓词公式时,规定与命题逻辑相同,可以将最外层的括号略去,但紧跟在量词后面的括号不能略去。
例1 证明
∀
x
(
F
(
x
)
→
∃
y
(
B
(
y
)
∧
G
(
y
,
x
)
)
)
\forall x(F(x) \to \exist y(B(y) \land G(y, x)))
∀x(F(x)→∃y(B(y)∧G(y,x))) 是谓词公式。
解答:
(
1
)
F
(
x
)
步
骤
1
(
2
)
B
(
y
)
步
骤
1
(
3
)
G
(
y
,
x
)
步
骤
1
(
4
)
(
B
(
y
)
∧
G
(
y
,
x
)
)
步
骤
2
,
(
2
)
,
(
3
)
(
5
)
∃
y
(
B
(
y
)
∧
G
(
y
,
x
)
)
步
骤
3
,
(
4
)
(
6
)
(
F
(
x
)
→
∃
y
(
B
(
y
)
∧
G
(
y
,
x
)
)
)
步
骤
2
,
(
1
)
,
(
5
)
(
7
)
∀
x
(
F
(
x
)
→
∃
y
(
B
(
y
)
∧
G
(
y
,
x
)
)
)
步
骤
3
,
(
6
)
\begin{aligned} &(1)\ F(x) \quad &步骤1\\ &(2)\ B(y) \quad &步骤1\\ &(3)\ G(y, x) \quad &步骤1\\ &(4)\ (B(y) \land G(y, x)) \quad &步骤2, (2), (3)\\ &(5)\ \exist y (B(y) \land G(y, x)) \quad &步骤3, (4)\\ &(6)\ (F(x) \to \exist y (B(y) \land G(y, x))) \quad &步骤2, (1), (5)\\ &(7)\ \forall x(F(x) \to \exist y (B(y) \land G(y, x))) \quad &步骤3, (6)\\ \end{aligned}
(1) F(x)(2) B(y)(3) G(y,x)(4) (B(y)∧G(y,x))(5) ∃y(B(y)∧G(y,x))(6) (F(x)→∃y(B(y)∧G(y,x)))(7) ∀x(F(x)→∃y(B(y)∧G(y,x)))步骤1步骤1步骤1步骤2,(2),(3)步骤3,(4)步骤2,(1),(5)步骤3,(6)
定义2.1.2 若 B B B 是谓词公式 A A A 的一个连续段且 B B B 也是谓词公式,则称 B B B 是 A A A 的一个子公式。
例2 用谓词公式表示以下自然语言表达的命题。
(1)没有不犯错误的人。
(2)尽管有人聪明,但未必所有人都聪明。
(3)每个人都有些缺点。
(4)没有最大的实数。
(5)每个自然数都有唯一一个自然数是它的直接后继。
解答:以下命题有两种等价的表达形式,具体原因可见谓词公式的永真公式。
(1)设
H
(
x
)
H(x)
H(x) 表示
x
x
x 是人,
F
(
x
)
F(x)
F(x) 表示
x
x
x 犯错误。则命题翻译为:
∀
x
(
H
(
x
)
→
F
(
x
)
)
或
者
¬
∃
(
H
(
x
)
∧
¬
F
(
x
)
)
\forall x (H(x) \to F(x))\ 或者\ \lnot \exist (H(x) \land \lnot F(x))
∀x(H(x)→F(x)) 或者 ¬∃(H(x)∧¬F(x))
(2)设 H ( x ) H(x) H(x) 表示 x x x 是人, C ( x ) C(x) C(x) 表示 x x x 聪明。则命题翻译为: ∃ x ( H ( x ) ∧ C ( x ) ) ∧ ¬ ∀ x ( H ( x ) → C ( x ) ) \exist x(H(x) \land C(x)) \land \lnot \forall x(H(x) \to C(x)) ∃x(H(x)∧C(x))∧¬∀x(H(x)→C(x))
(3)设 H ( x ) H(x) H(x) 表示 x x x 是人, G ( y ) G(y) G(y) 表示 y y y 是缺点, F ( x , y ) F(x, y) F(x,y) 表示 x x x 有 y y y 。则命题翻译为: ∀ x ( H ( x ) → ∃ y ( G ( y ) ∧ F ( x , y ) ) 或 者 ¬ ∃ x ( H ( x ) ∧ ∀ y ( G ( y ) → ¬ F ( x , y ) ) ) \forall x(H(x) \to \exist y(G(y) \land F(x, y))\ 或者\ \lnot \exist x(H(x) \land \forall y(G(y) \to \lnot F(x, y))) ∀x(H(x)→∃y(G(y)∧F(x,y)) 或者 ¬∃x(H(x)∧∀y(G(y)→¬F(x,y)))
(4)设 R ( x ) R(x) R(x) 表示 x x x 是实数, G ( x , y ) G(x, y) G(x,y) 表示 x x x 大于 y y y 。则命题翻译为: ∀ x ( R ( x ) → ∃ y ( R ( y ) ∧ G ( y , x ) ) ) 或 者 ¬ ∃ x ( R ( x ) ∧ ∀ y ( R ( x ) → ¬ G ( y , x ) ) ) \forall x(R(x) \to \exist y(R(y) \land G(y, x)))\ 或者\ \lnot \exist x(R(x) \land \forall y(R(x) \to \lnot G(y, x))) ∀x(R(x)→∃y(R(y)∧G(y,x))) 或者 ¬∃x(R(x)∧∀y(R(x)→¬G(y,x)))
(5)设
N
(
x
)
N(x)
N(x) 表示
x
x
x 是自然数,
G
(
x
,
y
)
G(x, y)
G(x,y) 表示
y
y
y 是
x
x
x 的直接后继。则命题翻译为:
∀
x
(
N
(
x
)
→
∃
y
(
N
(
y
)
∧
G
(
x
,
y
)
∧
¬
∃
z
(
N
(
z
)
∧
z
≠
y
∧
G
(
x
,
z
)
)
)
\forall x(N(x) \to \exist y(N(y) \land G(x, y) \land \lnot \exist z(N(z) \land z \ne y \land G(x, z)))
∀x(N(x)→∃y(N(y)∧G(x,y)∧¬∃z(N(z)∧z=y∧G(x,z)))
或者:
∀
x
(
N
(
x
)
→
∃
y
(
N
(
y
)
∧
G
(
x
,
y
)
∧
∀
z
(
N
(
z
)
∧
G
(
x
,
z
)
→
z
=
y
)
)
)
\forall x(N(x) \to \exist y(N(y) \land G(x, y) \land \forall z(N(z) \land G(x, z)\to z = y)))
∀x(N(x)→∃y(N(y)∧G(x,y)∧∀z(N(z)∧G(x,z)→z=y)))
2.2 谓词量化、辖域、约束变元、自由变元
在谓词前面加上量词称为量化。量化的作用是约束个体变元。如果给定一个谓词公式,其中含有
∀
x
P
(
x
)
\forall xP(x)
∀xP(x) 或
∃
x
P
(
x
)
\exist xP(x)
∃xP(x) ,则紧接于量词
∀
x
\forall x
∀x 或
∃
x
\exist x
∃x 之后出现的最小的子公式称为该量词的辖域 scope
。在
∀
x
\forall x
∀x 或
∃
x
\exist x
∃x 辖域内
x
x
x 的一切出现称为约束出现,约束出现的个体变元称为约束变元 bound variable
。个体变元的非约束出现称为自由出现,自由出现的个体变元称为自由变元 free variable
。
例3 说明下列各式中量词的辖域和变元受约束的情况。
(1)
∀
x
(
P
(
x
)
→
Q
(
x
)
)
\forall x(P(x) \to Q(x))
∀x(P(x)→Q(x))
(2)
∀
x
P
(
x
)
→
Q
(
x
)
\forall xP(x) \to Q(x)
∀xP(x)→Q(x)
(3)
∃
x
(
P
(
x
,
y
)
→
Q
(
x
,
y
)
)
∨
P
(
y
,
z
)
\exist x(P(x, y) \to Q(x, y)) \lor P(y, z)
∃x(P(x,y)→Q(x,y))∨P(y,z)
(4)
∀
x
(
(
P
(
x
)
∧
∃
x
Q
(
x
,
z
)
)
→
∃
y
R
(
x
,
y
)
)
∨
Q
(
x
,
y
)
\forall x((P(x) \land \exist xQ(x, z)) \to \exist yR(x, y)) \lor Q(x, y)
∀x((P(x)∧∃xQ(x,z))→∃yR(x,y))∨Q(x,y)
解答:
(1)
∀
x
\forall x
∀x 的辖域是
(
P
(
x
)
→
Q
(
x
)
)
(P(x) \to Q(x))
(P(x)→Q(x)) ,
x
x
x 为约束变元;
(2)
∀
x
\forall x
∀x 的辖域是
P
(
x
)
P(x)
P(x) ,
P
(
x
)
P(x)
P(x) 中的
x
x
x 为约束变元,
Q
(
x
)
Q(x)
Q(x) 中的
x
x
x 为自由变元;
(3)
∃
x
\exist x
∃x 的辖域是
(
P
(
x
,
y
)
→
Q
(
x
,
y
)
)
(P(x, y) \to Q(x, y))
(P(x,y)→Q(x,y)) ,其中
x
x
x 是约束变元,
y
,
z
y, z
y,z 都是自由变元;
(4)
∀
x
\forall x
∀x 的辖域是
(
(
P
(
x
)
∧
∃
x
Q
(
x
,
z
)
)
→
∃
y
R
(
x
,
y
)
)
((P(x) \land \exist xQ(x, z)) \to \exist yR(x, y))
((P(x)∧∃xQ(x,z))→∃yR(x,y)) ,
∃
x
\exist x
∃x 的辖域是
Q
(
x
,
z
)
Q(x, z)
Q(x,z) ,
∃
y
\exist y
∃y 的辖域是
R
(
x
,
y
)
R(x, y)
R(x,y) ,
x
,
y
x, y
x,y 是约束变元。
Q
(
x
,
z
)
Q(x, z)
Q(x,z) 中的
z
z
z 是自由变元,不受任何量词的约束,
Q
(
x
,
z
)
Q(x, z)
Q(x,z) 中的
x
x
x 受到
∃
x
\exist x
∃x 的约束,而不受
∀
x
\forall x
∀x 的约束。
P
(
x
)
P(x)
P(x) 和
R
(
x
,
y
)
R(x, y)
R(x,y) 中的
x
x
x 受
∀
x
\forall x
∀x 的约束。
Q
(
x
,
y
)
Q(x, y)
Q(x,y) 中的
x
,
y
x, y
x,y 不受任何量词的约束。
2.3 约束变元及换名规则
从例3可以看出,在谓词公式中同一个个体变元可能以约束变元和自由变元两种形式同时出现,也有可能出现在不同地方并受到不同量词的约束,容易引起混淆。考虑到公式中个体变元的表示符号是无关紧要的,可以通过对约束变元进行换名或对自由变元进行代入,使一个变元在一个公式中只以一种形式出现。
约束变元的换名规则如下:
- 对某个约束变元换名时,需要对量词的作用变元以及该量词辖域内所有受该量词约束的约束变元一起换名;
- 换名后的变元符号应是量词辖域内未出现的符号,最好是整个公式中未出现的符号。
例4 对
∀
x
(
P
(
x
)
→
R
(
x
,
y
)
)
∧
Q
(
x
,
y
)
\forall x(P(x) \to R(x, y)) \land Q(x, y)
∀x(P(x)→R(x,y))∧Q(x,y) 中的约束变元进行换名。
解答:对约束变元
x
x
x 可以换名为
z
z
z ,得到
∀
z
(
P
(
z
)
→
R
(
z
,
y
)
)
∧
Q
(
x
,
y
)
\forall z(P(z) \to R(z, y)) \land Q(x, y)
∀z(P(z)→R(z,y))∧Q(x,y) 。但不能换名为
∀
y
(
P
(
y
)
→
R
(
y
,
y
)
)
∧
Q
(
x
,
y
)
\forall y(P(y) \to R(y, y)) \land Q(x, y)
∀y(P(y)→R(y,y))∧Q(x,y) ,这样将原本辖域中的自由变元
y
y
y 变成了约束变元;也不能换名为
∀
z
(
P
(
z
)
→
R
(
x
,
y
)
)
∧
Q
(
x
,
y
)
\forall z(P(z) \to R(x, y)) \land Q(x, y)
∀z(P(z)→R(x,y))∧Q(x,y) ,这样将原本辖域中的约束变元
x
x
x 变成了自由变元。
2.4 自由变元及代入规则
自由变元的代入规则有两条:
- 自由变元代入时,谓词公式中该变元自由出现的每一处都要同时代入;
- 代入选用的变元符号是原公式中未出现的符号。
例5 对
∀
x
(
P
(
x
)
→
R
(
x
,
y
)
)
∧
Q
(
x
,
y
)
\forall x(P(x) \to R(x, y)) \land Q(x, y)
∀x(P(x)→R(x,y))∧Q(x,y) 中的自由变元进行代入。
解答:对自由变元
x
x
x ,用
w
w
w 代入得到
∀
x
(
P
(
x
)
→
R
(
x
,
y
)
)
∧
Q
(
w
,
y
)
\forall x(P(x) \to R(x, y)) \land Q(w, y)
∀x(P(x)→R(x,y))∧Q(w,y) 。注意不能代入为
∀
x
(
P
(
x
)
→
R
(
x
,
x
)
)
∧
Q
(
x
,
x
)
\forall x(P(x) \to R(x, x)) \land Q(x, x)
∀x(P(x)→R(x,x))∧Q(x,x) ,因为这样将原本辖域中的自由变元
y
y
y 变成了约束变元。
2.5 谓词公式的赋值
谓词公式中通常包括谓词符、个体变元、个体常元、命题变元和联结词。
定义2.5.1 对于一个谓词公式,若给它指定一个个体域 E E E ,再给所有谓词符均指派出确定涵义(具体的函数、特性或关系),给所有命题变元指派出确定命题(或者指定 T T T 或 F F F ),并为所有自由变元分别指派 E E E 上确定的个体,则称为对谓词公式的一个赋值(指派或解释)。
谓词公式经过赋值之后,就变成了具有确定真值的命题。下面通过实例6,说明谓词公式的赋值过程。
我没有太多可说的,只有一个警告:生命从海洋登上陆地是地球生物进化的一个里程碑,但那些上岸的鱼再也不是鱼了……
定义2.5.2 设 A A A 是谓词公式,如果对于特定论域 E E E 上的任何赋值, A A A 的真值都为真,则称谓词公式 A A A 在 E E E 上永真;如果对于特定论域 E E E 上的任何赋值, A A A 的真值都为假,则称谓词公式 A A A 在 E E E 上永假;如果对于特定论域 E E E 上存在一种赋值,使得 A A A 的真值为真,则称 A A A 在 E E E 上可满足。
定义2.5.3 设 A A A 是谓词公式,如果对于任何赋值, A A A 的真值都为真,则称谓词公式 A A A 是永真式;如果对于任何赋值, A A A 的真值都为假,则称谓词公式 A A A 是永假式;如果存在一种赋值,使得 A A A 的真值为真,则称谓词公式 A A A 是可满足式。
由定义可知,对于任意谓词公式 A A A ,若 A A A 是永真式,则 A A A 在特定论域 E E E 上永真;若 A A A 是永假式,则 A A A 在特定论域 E E E 上永假;若 A A A 在特定论域 E E E 上可满足,则 A A A 是可满足式。
例6 给定谓词公式
P
(
x
)
∧
∃
x
P
(
x
)
P(x) \land \exist xP(x)
P(x)∧∃xP(x) ,指定论域
D
=
{
3
,
4
}
D = \{3, 4\}
D={3,4} ,给定两种赋值:
(1)
P
(
x
)
P(x)
P(x) 表示
x
x
x 是质数,
x
=
4
x = 4
x=4 ;
(2)
P
(
x
)
P(x)
P(x) 表示
x
x
x 是合数,
x
=
4
x = 4
x=4
求
P
(
x
)
∧
∃
x
P
(
x
)
P(x) \land \exist xP(x)
P(x)∧∃xP(x) 在(1)、(2)两种不同赋值下的真值,并判断
P
(
x
)
∧
∃
x
P
(
x
)
P(x) \land \exist xP(x)
P(x)∧∃xP(x) 是否为永真式。
解答:构造谓词公式
P
(
x
)
∧
∃
x
P
(
x
)
P(x) \land \exist xP(x)
P(x)∧∃xP(x) 的真值表:
P ( x ) P(x) P(x) | x x x | P ( x ) ∧ ∃ x P ( x ) P(x) \land \exist xP(x) P(x)∧∃xP(x) |
---|---|---|
x x x 是质数 | 4 | F ∧ T ⇔ F F \land T \Leftrightarrow F F∧T⇔F |
x x x 是合数 | 4 | T ∧ T ⇔ T T \land T\Leftrightarrow T T∧T⇔T |
由此可见, P ( x ) ∧ ∃ x P ( x ) P(x) \land \exist xP(x) P(x)∧∃xP(x) 在论域 { 3 , 4 } \{3, 4\} {3,4} 上不是永真式,它是一个可满足式。
显然,一个谓词公式可能存在很多种不同的赋值。即使在一个有限特定论域上,一个谓词公式的赋值虽然是有限的,但是当论域较大、谓词符和自由变元的数量较多时,很难用真值表进行真值的判定。因此,在谓词逻辑中,判定谓词公式的永真性、永假性、可满足性以及公式间的等价性,往往是比较困难的。