本文属于「离散数学」系列文章之一。这一系列着重于离散数学的学习和应用。由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘。此外,在本系列学习文章中,为了透彻理解数学知识,本人参考了诸多博客、教程、文档、书籍等资料。以下是本文的不完全参考目录,在后续学习中还会逐渐补充:
- 离散数学及其应用 第七版
Discrete Mathematics and Its Applications 7th
,作者是Kenneth H.Rosen
- 离散数学 第二版,武波等编著,西安电子科技大学出版社
文章目录
1. 谓词、量词
1.1 谓词
1.1.1 谓词定义、意义
一个简单的推理示例,大前提:所有自然数都有大于它的素数;小前提: 2 100 2^{100} 2100 是自然数;结论: 2 100 2^{100} 2100 有大于它的素数。这一推理显然正确,但由于两个前提和结论都是简单命题,它在命题逻辑中得不到证明。同样的还有,大前提:所有人都会死;小前提:苏格拉底是人;结论:苏格拉底会死。另外,给定三个简单命题:甲是老师,乙是老师,丙是老师,命题符号化时要使用三个不同符号,不能反映“是老师”这一共同特征。
为了解决命题逻辑存在的这些问题,引入了谓词的概念。谓词对简单命题进一步分析,找出所描述的对象以及对象间的关系,抽象出同类命题描述的一般模式。如下所示,命题中出现的“2”、“5”、“7”等是具体的个体对象,“…是偶数”刻画对象 x x x 的性质,“…小于…”刻画对象 x x x 和 y y y 之间的关系,“…在…和…之间”刻画对象 x , y , z x, y, z x,y,z 之间的关系:
示例 | 模式 |
---|---|
2是偶数 | x x x 是偶数 |
5小于7 | x x x 小于 y y y |
点a在b和c之间 | x x x 在 y y y 和 z z z 之间 |
用于表示具体或特定个体的符号称为个体常元,常用 a, b, c
等表示。用于表示任意个体的变元称为个体变元,常用 x, y, z
等表示,个体变元的取值范围称为该变元的论域 domain of discourse
或个体域,是一个集合,通常使用大写字母表示。
定义1.1.1 刻画单个个体的特性或多个个体间关系的模式称为谓词 predicate
。
谓词可以简单描述为,由一个谓词符和若干具有固定次序的个体常元或变元组成的表达式。带有 n ( n ≥ 0 ) n\ (n \ge 0) n (n≥0) 个个体的谓词称为 n n n 元谓词,如下所示:
- 零元谓词,即 n = 0 n = 0 n=0 时,谓词就是一个命题;
- 一元谓词用于刻画个体的特性,由一个表示个体特性的大写字母(称为特性谓词符、一元谓词符、一元关系符)和一个个体常元或变元组成的表达式表示,如 P ( a ) , Q ( x ) P(a),\ Q(x) P(a), Q(x) 等;
- n n n 元谓词用于刻画 n n n 个个体之间的关系( n ≥ 2 n \ge 2 n≥2 时),由一个表示 n n n 个个体关系的大写字母(称为 n n n 元谓词符、 n n n 元关系符)和 n n n 个个体常元或变元组成的表达式表示,如 R ( a 1 , a 2 , … , a n ) R(a_1, a_2, \dots, a_n) R(a1,a2,…,an)、 Q ( x 1 , x 2 , … , x n ) Q(x_1, x_2, \dots, x_n) Q(x1,x2,…,xn) 等;
因此,“ x x x 是偶数”可以用谓词 P ( x ) P(x) P(x) 表示, P ( 2 ) P(2) P(2)、 P ( 3 ) P(3) P(3) 分别表示 “2是偶数”、“3是偶数”;“ x x x 小于 y y y”可以用谓词 Q ( x , y ) Q(x, y) Q(x,y) 表示, Q ( 5 , 7 ) Q(5, 7) Q(5,7)、 Q ( 6 , 5 ) Q(6, 5) Q(6,5) 分别表示“5小于7”、“6小于5”;“ x x x 在 y y y 和 z z z 之间”可以用谓词 R ( x , y , z ) R(x, y, z) R(x,y,z) 表示。
特别地,某些谓词符/关系符直接使用特殊的习惯符号,如 = , ≠ , < , > , ≤ , ≥ =, \ne, \lt, \gt, \le, \ge =,=,<,>,≤,≥ 等,表达方式可采用中缀表示法,如 x ≠ y , x ≤ y x \ne y, x \le y x=y,x≤y 等。
谓词也可以使用联结词进行组合,此处的意义与命题逻辑完全相同,如 S ( x ) S(x) S(x) 表示 x x x 是学习委员, W ( x ) W(x) W(x) 表示 x x x 是数学课代表,则 S ( x ) ∧ W ( x ) S(x) \land W(x) S(x)∧W(x) 表示 x x x 既是学习委员也是数学课代表。
1.1.2 谓词与函数、谓词与命题
设有谓词 P ( x 1 , x 2 , … , x n ) P(x_1, x_2, \dots, x_n) P(x1,x2,…,xn) , D 1 , D 2 , … , D n D_1, D_2, \dots, D_n D1,D2,…,Dn 是个体域集合,其中 x i ∈ D i x_i \in D_i xi∈Di 。显而易见, n n n 元谓词 P ( x 1 , x 2 , … , x n ) P(x_1, x_2, \dots, x_n) P(x1,x2,…,xn) 是从 D 1 × D 2 × ⋯ × D n D_1\times D_2\times \dots \times D_n D1×D2×⋯×Dn 到集合 { T , F } \{T, F\} {T,F} 上的一个 n n n 元函数。因此,有时也把 P ( x 1 , x 2 , … , x n ) P(x_1, x_2, \dots, x_n) P(x1,x2,…,xn) 称为 n n n 元命题函数。当 n = 0 n = 0 n=0 时,谓词 P P P 退化为命题。
由于谓词 P ( x 1 , x 2 , … , x n ) P(x_1, x_2, \dots, x_n) P(x1,x2,…,xn) 仅是一个函数,它没有真假值。只有将谓词符 P P P 指定为一个确定的 n n n 元函数,将每个个体变元均代入相应个体域中确定的个体常元,才能得到一个具有确定真假值的命题。
例1 用谓词表示以下命题:
(1)小王是大学生。
(2)老张是小张的父亲。
(3)0.7介于0和1之间。
解答:
(1)设一元谓词
A
(
x
)
A(x)
A(x) 表示
x
x
x 是大学生,个体常元
c
c
c 表示小王,则
A
(
c
)
A(c)
A(c) 表示小王是大学生。
(2)设二元谓词
B
(
x
,
y
)
B(x,y)
B(x,y) 表示
x
x
x 是
y
y
y 的父亲,个体常元
a
a
a 表示老张,
b
b
b 表示小张,则
B
(
a
,
b
)
B(a, b)
B(a,b) 表示老张是小张的父亲。
(3)设三元谓词
G
(
x
,
y
,
z
)
G(x, y, z)
G(x,y,z) 表示
x
x
x 介于
y
y
y 和
z
z
z 之间,个体常元
a
a
a 表示0.7,
b
b
b 表示0,
c
c
c 表示1,则
G
(
a
,
b
,
c
)
G(a, b, c)
G(a,b,c) 表示0.7介于0和1之间。
1.2 量词
仅仅使用谓词,还不能很好地表达日常生活中的所有命题,如“所有的人都要呼吸”、“有些有理数是自然数”等。为了刻画这类表示全称判断或特称判断的命题,需要引入量词 quantifier
。
1.2.1 全称量词 ∀ \forall ∀
∀
x
\forall x
∀x 表示“对于所有的
x
x
x”、“对于任一
x
x
x”、“对于每一个
x
x
x” 。符号
∀
\forall
∀ 称为全称量词 universal quantifier
,
x
x
x 是量词
∀
\forall
∀ 的作用变元或指导变元。例如:
- ∀ x P ( x ) \forall xP(x) ∀xP(x) 表示“对于所有的 x x x 均有 P ( x ) P(x) P(x)”
- ∀ x ¬ P ( x ) \forall x\lnot P(x) ∀x¬P(x) 表示“对于所有的 x x x 均有 ¬ P ( x ) \lnot P(x) ¬P(x)”
- ¬ ∀ x P ( x ) \lnot \forall x P(x) ¬∀xP(x) 表示“并非对于所有的 x x x 均有 P ( x ) P(x) P(x)”
- ¬ ∀ x ¬ P ( x ) \lnot \forall x \lnot P(x) ¬∀x¬P(x) 表示“并非对于所有的 x x x 均有 ¬ P ( x ) \lnot P(x) ¬P(x)”
1.2.2 存在量词 ∃ \exist ∃
∃
x
\exist x
∃x 表示“存在某个
x
x
x”或“至少有一个
x
x
x ”。符号
∃
\exist
∃ 称为存在量词 existential quantifier
,
x
x
x 是量词
∃
\exist
∃ 的作用变元或指导变元。例如:
- ∃ x P ( x ) \exist xP(x) ∃xP(x) 表示“存在 x x x 满足 P ( x ) P(x) P(x)”
- ∃ x ¬ P ( x ) \exist x\lnot P(x) ∃x¬P(x) 表示“存在 x x x 满足 ¬ P ( x ) \lnot P(x) ¬P(x)”
- ¬ ∃ x P ( x ) \lnot \exist x P(x) ¬∃xP(x) 表示“不存在 x x x 满足 P ( x ) P(x) P(x)”
- ¬ ∃ x ¬ P ( x ) \lnot \exist x \lnot P(x) ¬∃x¬P(x) 表示“不存在 x x x 满足 ¬ P ( x ) \lnot P(x) ¬P(x)”
1.2.3 全称量化、存在量化
在谓词
P
(
x
)
P(x)
P(x) 或
Q
(
x
,
y
)
Q(x, y)
Q(x,y) 等前面加上全称量词
∀
x
\forall x
∀x 或存在量词
∃
x
\exist x
∃x ,则称个体变元
x
x
x 被全称量化或存在量化。要指出的是,如果论域是有限集合,则对某个个体变元的量化可以用命题形式表示(翻译到命题逻辑?)。设论域
D
=
{
a
1
,
a
2
,
…
,
a
n
}
D = \{ a_1, a_2, \dots, a_n\}
D={a1,a2,…,an} ,则有:
∀
x
P
(
x
)
⇔
P
(
a
1
)
∧
P
(
a
2
)
∧
⋯
∧
P
(
a
n
)
∃
x
P
(
x
)
⇔
P
(
a
1
)
∨
P
(
a
2
)
∨
⋯
∨
P
(
a
n
)
\begin{aligned} \forall xP(x) \Leftrightarrow P(a_1) \land P(a_2) \land \dots \land P(a_n)\\ \exist xP(x) \Leftrightarrow P(a_1) \lor P(a_2) \lor \dots \lor P(a_n) \end{aligned}
∀xP(x)⇔P(a1)∧P(a2)∧⋯∧P(an)∃xP(x)⇔P(a1)∨P(a2)∨⋯∨P(an)
对于一个谓词,如果为谓词符指定具体含义,为每个个体变元指定论域,则谓词中的所有变元都会被量词量化,则该命题成为一个具有真假值的命题。
例2 如果论域是整数,指出下列命题的真假值。
(a)
∀
x
(
x
<
x
+
1
)
\forall x ( x \lt x + 1)
∀x(x<x+1)
(b)
∃
x
(
x
<
x
+
1
)
\exist x(x \lt x + 1)
∃x(x<x+1)
(c)
∃
x
(
x
=
3
)
\exist x (x = 3)
∃x(x=3)
(d)
∀
x
(
x
=
3
)
\forall x(x = 3)
∀x(x=3)
解答:如果论域是整数,则 (a), (b), (c)
是真,(d)
是假。这里
x
x
x 被全称量化或存在量化。
1.2.4 全总个体域、特性谓词及其代入规则
由例2可知,量化后所得命题的真值与个体变元的论域相关。事实上,不同个体变元可以采用完全不同的论域,但不同变元一起讨论时用不同的论域会带来不便,于是引入一个统一的个体论域——全总个体域,它包括所有个体变元所能代表的所有可能的个体。除非特别说明,否则论域默认为全总个体域。此时,对个体变元的变化范围,要用特性谓词来加以限制。
例3 符号化下列命题。
(a)所有的人都是要死的。
(b)有些人不怕死。
解答:设
D
(
x
)
D(x)
D(x) 表示
x
x
x 是要死的,
H
(
x
)
H(x)
H(x) 表示
x
x
x 是人,
F
(
x
)
F(x)
F(x) 表示
x
x
x 不怕死。
- 如果论域是人类,则(a)符号化为 ∀ x D ( x ) \forall x D(x) ∀xD(x) ,(b)符号化为 ∃ x F ( x ) \exist x F(x) ∃xF(x) ;
- 如果论域是全总个体域,则大不相同,需要用特性谓词来加以限制:
- (a)实际上等价于“对于一切 x x x ,如果 x x x 是人,那么 x x x 是要死的”,应表示为 ∀ x ( H ( x ) → D ( x ) ) \forall x(H(x) \to D(x)) ∀x(H(x)→D(x)) ,而非 ∀ x ( H ( x ) ∧ D ( x ) ) \forall x(H(x) \land D(x)) ∀x(H(x)∧D(x)) ;
- (b)实际上等价于“存在一些
x
x
x ,
x
x
x 是人,并且
x
x
x 不怕死”,应表示为
∃
x
(
H
(
x
)
∧
F
(
x
)
)
\exist x(H(x) \land F(x))
∃x(H(x)∧F(x)) ,而非
∃
x
(
H
(
x
)
→
F
(
x
)
)
\exist x (H(x) \to F(x))
∃x(H(x)→F(x)) 。
例3中的
H
(
x
)
H(x)
H(x) 就是特性谓词(即一元谓词),用以刻画个体是“人”这一特性。特性谓词的作用是,限定论域为 (全总个体域中)满足该谓词的所有个体构成的一个特定的论域。例3中特性谓词
H
(
x
)
H(x)
H(x) 的作用如下图所示:
把特性谓词加入到公式时,有以下两条规则:
- 规则1:对于全称量词,特性谓词作为条件式的前件加入;
- 规则2:对于存在量词,特性谓词作为合取式的合取项加入;
例4 在全总个体域上,使用谓词和量词表示下列命题公式。
(a)所有的有理数都是实数;
(b)虽然存在一些大于0的有理数,但是并不是大于0的实数都是有理数。
(c)对于任何一个有理数,都存在大于该有理数的实数。
解答:设
R
(
x
)
R(x)
R(x):
x
x
x 是实数,
Q
(
x
)
Q(x)
Q(x):
x
x
x 是有理数,
G
(
x
,
y
)
G(x, y)
G(x,y):
x
>
y
x > y
x>y ,则:
(a)
∀
x
(
Q
(
x
)
→
R
(
x
)
)
\forall x(Q(x) \to R(x))
∀x(Q(x)→R(x)) ——特性谓词
Q
(
x
)
Q(x)
Q(x) 对于
∀
\forall
∀,作为条件式的前件
(b)
∃
x
(
Q
(
x
)
∧
G
(
x
,
0
)
)
∧
¬
∀
x
(
(
R
(
x
)
∧
G
(
x
,
0
)
)
→
Q
(
x
)
)
\exist x (Q(x) \land G(x, 0)) \land \lnot \forall x \big((R(x) \land G(x, 0)) \to Q(x) \big)
∃x(Q(x)∧G(x,0))∧¬∀x((R(x)∧G(x,0))→Q(x)) ——特性谓词
R
(
x
)
R(x)
R(x) 对于
∀
\forall
∀,作为条件式的前件;特性谓词
Q
(
x
)
Q(x)
Q(x) 对于
∃
\exist
∃ ,作为合取式的合取项。
(c)
∀
x
(
Q
(
x
)
→
∃
y
(
R
(
y
)
∧
G
(
y
,
x
)
)
)
\forall x(Q(x) \to \exist y(R(y) \land G(y, x)))
∀x(Q(x)→∃y(R(y)∧G(y,x))) ——特性谓词
Q
(
x
)
Q(x)
Q(x) 对于
∀
\forall
∀,作为条件式的前件;特性谓词
R
(
y
)
R(y)
R(y) 对于
∃
\exist
∃ ,作为合取式的合取项。