本文属于「离散数学」系列文章之一。这一系列着重于离散数学的学习和应用。由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘。此外,在本系列学习文章中,为了透彻理解数学知识,本人参考了诸多博客、教程、文档、书籍等资料。以下是本文的不完全参考目录,在后续学习中还会逐渐补充:
- (国外经典教材)离散数学及其应用 第七版
Discrete Mathematics and Its Applications 7th
,作者是Kenneth H.Rosen
,袁崇义译,机械工业出版社- 离散数学 第二版,武波等编著,西安电子科技大学出版社,2006年
- 离散数学 第三版,方世昌等编著,西安电子科技大学出版社,2013年
- (经典参考书及其题解)离散数学/离散数学——理论•分析•题解,左孝凌、李为鉴、刘永才编著,上海科学技术文献出版社
- 离散数学习题集:数理逻辑与集合论分册,耿素云;图论分册,耿素云;抽象代数分册, 张立昂。北京大学出版社
2. 命题公式
2.1 命题公式及其符号化(难点)
命题常元 Propositional constant
,表示一个确定命题(真值不是
T
T
T 就是
F
F
F)的标识符,一般为
T
T
T 或
F
F
F 。命题变元 Propositional variable
,表示一个不确定或可泛指任意命题的、以“真,假”为其变域的标识符,即真值未确定(但真值唯一)的命题的标识符,表示为
A
,
B
,
C
A,\ B,\ C
A, B, C 。在此基础上,原子公式指的是单个命题变元或命题常元。
命题公式的递归定义如下:
- (1)基础:单个原子公式是命题公式。
- (2)归纳:如果 A A A 和 B B B 是命题公式,则 ( ¬ A ) , ( A ∧ B ) , ( A ∨ B ) , ( A → B ) , ( A ⇔ B ) (¬ A),\ (A∧B),\ (A∨B),\ (A→B),\ (A \Leftrightarrow B) (¬A), (A∧B), (A∨B), (A→B), (A⇔B) 是命题公式。
- (3)极小性:只有有限步应用条款(1)和(2)生成的长度有限的符号串才是命题公式。
这种定义叫归纳定义或递归定义。由这种定义产生的公式叫命题公式或合式公式 Well formed formula
。若
B
B
B 是命题公式
A
A
A 的一个连续段,并且
B
B
B 也是命题公式,则称
B
B
B 是
A
A
A 的一个子公式。
例1:(a) 说明
(
P
→
(
P
∨
Q
)
)
(P→(P∨Q))
(P→(P∨Q)) 是命题公式。
解:
- (i) P是命题公式,根据条款(1)
- (ii) Q是命题公式,根据条款(2)
- (iii) ( P ∨ Q ) (P∨Q) (P∨Q) 是命题公式,根据(i)(ii)和条款(2)
- (iv) ( P → ( P ∨ Q ) ) (P→(P∨Q)) (P→(P∨Q)) 是命题公式,根据(i)(iii)和条款(2)
(b) ∧ Q ∧Q ∧Q、 ( P → Q (P→ Q (P→Q、 P → ∧ Q P→∧Q P→∧Q、 ( ( P Q ) ∧ R ) ((PQ)∧R) ((PQ)∧R) 都不是命题公式, 因为它们不能由形成规则得出。
注意,并非由命题常元/变元、联结词和一些括号组成的字符串都能成为命题公式!
例2. 符号化下列命题:
① 若天不下雨也不下雪,则我去学校。
解:
P
P
P:天下雨;
Q
Q
Q:天下雪;
R
R
R:我去学校。于是命题公式是,
(
¬
P
∧
¬
Q
)
→
R
(\lnot P \wedge \lnot Q) \to R
(¬P∧¬Q)→R。
翻译时约定:运算符结合力的强弱顺序为 : ¬ ¬ ¬、 ∧ ∧ ∧、 ∨ ∨ ∨、 → → →、 ⇔ \Leftrightarrow ⇔ ,凡符合此顺序的,括号均可省去。相同的运算符,按从左至右次序计算时,括号可省去。最外层的圆括号可以省去。
② 林芬和林芳是姐妹。
解:
P
P
P:林芬和林芳是姐妹。这是一个原子命题。
③ 除非你掌握情况,否则你不能作出科学判断。
解:
P
P
P:你掌握情况;
Q
Q
Q:作出科学判断。于是命题公式为,
¬
P
→
¬
Q
\lnot P \to \lnot Q
¬P→¬Q 或其逆否命题
Q
→
P
Q \to P
Q→P 。
④ 说离散数学枯燥无味或毫无价值,那是不对的。
解:
P
P
P:离散数学是枯燥无味的;
Q
Q
Q:离散数学是毫无价值的。于是命题公式为,
¬
(
P
∨
Q
)
¬(P\vee Q)
¬(P∨Q) 。
2.2 命题公式的赋值 assign
命题公式的真值往往取决于所含命题变元的真值。设 p 1 , p 2 , … , p n p_1, p_2, \dots, p_n p1,p2,…,pn 是命题公式 A A A 中出现的所有命题变元,如果给 p 1 , p 2 , … , p n p_1, p_2, \dots, p_n p1,p2,…,pn 指定一组真值,则称为对命题公式 A A A 赋值/指派/解释。
显而易见,对于含有 n n n 个命题变元的命题公式 A ( P 1 , P 2 , … , P n ) A(P_1, P_2, \dots, P_n) A(P1,P2,…,Pn) ,由于每个命题变元可以有 T , F T, F T,F 两个不同赋值,因此共有 2 n 2^n 2n 种不同的赋值。
为观察命题公式在不同赋值下的真值情况,将命题公式 A ( P 1 , P 2 , … , P n ) A(P_1, P_2, \dots, P_n) A(P1,P2,…,Pn) 的所有可能赋值和对应真值形成的各种情况列举出来,就是命题公式的真值表。不过真值表有以下约定:
- 将公式中出现的 n n n 个命题变元,按照字典升序或降序排列;
- 对于 2 n 2^n 2n 个不同赋值,按照对应的 n n n 位二进制数从小到大或从大到小的顺序排列;
- 若公式较复杂,可从里到外先列出各个子公式的真值,最后列出所求公式的真值。
从真值表的各种情况发现,可以将命题公式分为三类:重言式、矛盾式、偶然式:
- 给定一个命题公式,如果在任何赋值下,它的真值都为
T
T
T ,则称该命题公式为重言式
tautology
或永真式;如 ¬ P ∨ P \lnot P\vee P ¬P∨P - 给定一个命题公式,如果在任何赋值下,它的真值都为
F
F
F ,则称该命题公式为矛盾式
contradiction
或永假式;如 ¬ P ∧ P \lnot P\wedge P ¬P∧P - 给定一个命题公式,如果它既不是永真式,也不是永假式,则称该命题公式为偶然式
contingency
;如 P ∨ Q P\vee Q P∨Q - 对一个命题公式
A
A
A ,如果至少存在一种赋值,使得
A
A
A 的真值为
T
T
T ,则称
A
A
A 为可满足的
satisfiable
。 - 对一个命题公式 A A A ,如果至少存在一种赋值,使得 A A A 的真值为 F F F ,则称 A A A 为非永真。
从而有以下推论:
- 重言式和偶然式都是可满足式;如果一个命题不是可满足式,则它是矛盾式。
- 如果命题公式 A A A 为重言式,则 ¬ A \lnot A ¬A 为矛盾式。反之亦然。
- 如果命题公式 A , B A, B A,B 均为重言式,则 ( A ∧ B ) (A\wedge B) (A∧B)、 ( A ∨ B ) (A\vee B) (A∨B)、 ( A → B ) (A\to B) (A→B)、 ( A ↔ B ) (A \leftrightarrow B) (A↔B) 都是重言式。
关于可满足式,还有一个有趣的问题:SAT,即判断一个命题公式是否为一个可满足式。关于SAT问题的介绍和2-SAT问题的解法,见[这篇文章]。