这里是离散数学第一篇学习笔记 qwq,也是我尝试使用 Markdown 记课上笔记的开始,离散数学是一门研究离散量的科学,是数据结构、算法设计的基础,这里不仅有有趣的逻辑与集合,还会有“超级好玩”的群论和图论等待你去探索。就让我们一起畅游这“魔法”的世界吧!
由于离散数学的知识较多,这里是数理逻辑部分的笔记 qwq。
本笔记采用在课上简记,课后完善的模式,有可能因时间不够停更,并且作者认为比较简单的证明和定义会简写甚至略去,并且几乎不会举例子。同时还总是希望尽量不全部按照书上写的定义而通过自己语言来叙述,虽然很多时候最后还是感觉自己表述的不清楚而写的书上的定义。
本学科为 28 课时讲课 + 4 课时实验 (office 315)
似乎没有找到可以显示出课本上所印刷的 “不可兼析取” 符号的 LaTeX 公式,所以使用 \oplus
(即 \(\oplus\))来代替。
\[\newcommand{\l}{\leftarrow}
\newcommand{\r}{\rightarrow}
\newcommand{\u}{\uparrow}
\newcommand{\d}{\downarrow}
\newcommand{\L}{\Leftarrow}
\newcommand{\R}{\Rightarrow}
\newcommand{\lr}{\leftrightarrow}
\newcommand{\Lr}{\Leftrightarrow}
\newcommand{\xl}{\xleftarrow}
\newcommand{\xr}{\xrightarrow}
\rule{750px}{1px}
\]
首先给出命题的概念:能表达判断且有确切的真值的陈述句。命题的真值只有两种即 True 和 False,但悖论这种自相矛盾的陈述句不是命题,因为它不可能有确切的真值。
我们可以根据命题的描述复杂程度将命题分为原子命题和复合命题,原子命题是一种不可分解为更简单语句的陈述句,复合命题是由若干原子命题通过联结词构成的命题。
为了便于数学的符号化表示,我们需要对联结词进行明确规定并给出其符号表示,下面是一些基本的联结词:(按照优先级排序)
名称 | 符号 | 意义 |
---|---|---|
否定 | \(\lnot\) | 取反 |
合取 | \(\and\) | 且 |
析取 | \(\or\) | 可兼或 |
条件 | \(\r\) | 若…则… |
双条件(同或) | \(\lr\) | 当且仅当 |
对于条件句,我们总是遵循善意的推并,即当前件(前提)为假时,无论后件(结论)真值为何,我们总是认为条件句的真值为真。并且在条件句和双条件句中,我们并不要求它们的前件与后件有实际的联系。
有了以上的概念,我们就可以将现实生活中的一些可以被视为命题的陈述句翻译为我们的数学语言了,下文给出了翻译的大致方法:
找到原语句中包含的原子命题;
将原语句中的关联词翻译成适当的逻辑联结词;
将其用数学的符号写出。
值得注意的一点是,关联词 ”只有…才…“ 是条件句。A if B 为 \(B \r A\),A only if B 为 \(A \r B\),A if and only if B 为 \(A \lr B.\)
命题常量为表示确定命题的符号,命题变元为表示任意命题的符号,但其不是命题,原子变元为表示原子命题的命题变元,给命题变元指定值的操作叫做指派。
命题公式采用递归(下文中 1. 称为基础,2. 3. 称为归纳,4. 称为界限)的定义,规定为:
对于一个命题公式中分量真值的各种指派所形成的各种组合所汇列成表,即为命题公式的真值表。
当给两个命题公式任意一组真值指派,它们的真值始终相等,则两个命题公式等价。我们如果想要证明两个问题中,两个命题公式是否等价,可以通过分别列出其真值表,而由 \(n\) 个命题变元所组成的命题有 \(2^n\) 种不同的真值指派,所以如果要依靠真值表证明,显然过于繁琐。我们可以通过一些法则来化简它们,在下文的推理理论部分会整合此类公式,所以这里先不列出公式。
子公式为一个命题公式的一部分,且这一部分本身是一个合法的命题公式。如果一个命题公式的子公式被其等价的命题公式置换,置换后得到的命题公式与原命题公式等价。
如果一个命题公式,无论对其分量做什么指派,其真值永为真,则称该命题公式为重言式(也称永真式)。如果存在一种对其分量的指派使得命题公式真值可以为真,则称命题公式为可满足的。显然重言式是特殊的可满足式。如果一个命题公式不可满足,则称其为矛盾式(或永假式)。如果 \(A \and B\) 为矛盾式,则称 \(A\) 与 \(B\) 是不相容的。
容易注意到,当且仅当 \(P \lr Q\) 为重言式时,有 \(P \Lr Q\)。
我们定义当 \(P \r Q\) 为重言式时,我们称 \(P\) 蕴含 \(Q\),记作 \(P \R Q\)。注意 \(P \r Q\) 与 \(Q \r P\) 并不等价,通过真值表验证,我们有:
\[(P \rightarrow Q) \Leftrightarrow (\lnot Q \rightarrow \lnot P) \\
(Q \rightarrow P) \Leftrightarrow (\lnot P \rightarrow \lnot Q)
\]
其中对 \(P \r Q\) 来说,\(Q \r P\) 称为其逆换式,\(\lnot P \r \lnot Q\) 称为其反换式,\(\lnot Q \r \lnot P\) 称为其逆反式。
如果要证 \(P \R Q\),只需证当 \(P\) 为 1 时,\(Q\) 的真值为 1,或者当 \(Q\) 为 0 时,\(P\) 的真值为 1。这两种情况均可说明 \(P \R Q.\)
\(P \Lr Q\) 当且仅当 \(P \R Q\) 且 \(Q \R P.\)
下面介绍对偶和范式的概念,对偶是指在给定的命题公式中将 \(\and\) 换成 \(\or\),\(\or\) 换成 \(\and\),将 \(\mathbf{T}\) 换为 \(\mathbf{F}\),则改变后的命题公式和原公式互为对偶。命题公式 \(A\) 的对偶式记为 \(A^*\)。我们容易发现,如果 \(A\) 是由 \(n\) 个命题变元 \(P_1, P_2, \cdots, P_n\) 组成(记作 \(A(P_1, P_2, \cdots, P_n)\)),则有:
\[\lnot A(P_1, P_2, \cdots, P_n) \Lr A^*(\lnot P_1, \lnot P_2, \cdots, \lnot P_n)
\]
根据上述结论,我们有一个推论:若 \(A \Lr B\),则 \(A^* \Lr B^*\)。
合取范式是形如:
\[A_1 \and A_2 \and \cdots \and A_n \, ,(n \geq 1)
\]
其中 \(A_i \, (1 \leq i \leq n)\) 为由命题变元或其否定所组成的析取式。
而析取范式的定义形式和合取范式类似,不再赘述。
容易发现与一个命题公式等价的析取范式有许多个,为了方便,我们希望找到一个较为规范的析取范式,使得每个命题公式只对应一个这样规范化的析取范式。考虑到对于几个等价的命题公式,它们的真值表一定是唯一的,所以我们就希望找到一种将真值表中的值 “翻译” 成命题公式的方法,于是就有了小项。
小项即指 \(n\) 个命题变元的合取式,其中每个命题变元或其否定在式中恰好出现一次,且不与其否定同时出现。显然对于 \(n\) 个命题变元的小项,其有以下性质:
这里的对应是指,例如对于 3 个命题变元,\(P, Q, R\),我们讨论的小项为 \(P \and \lnot Q \and R\),则当且仅当将 \(P, R\) 指派为 1,\(Q\) 指派为 0,此时该小项的真值才为 1。也就是说对应关系是指将在小项中出现其本身的命题变元指派为 1,出现其否定的命题变元指派为 0。所以我们也可以使用二进制来表示小项,如上文的小项记作 \(m_{101}.\)
主析取范式即为仅由小项的析取组成的命题公式,由小项的性质可知,其反映了命题公式的真值表。所以我们很容易得出,一个命题公式所有在真值表中为 \(\mathbf{T}\) 的指派所对应的小项组成的析取为该命题公式的主析取范式。我们同样可以通过逻辑推理将命题公式转化为主析取范式。
我们主要通过以下几步利用逻辑推理将命题公式转化为主析取范式:
对于主析取范式,我们借助了小项的概念,而对于主合取范式,我们则要借助大项的概念。
大项即指 \(n\) 个命题变元的析取式,其中每个命题变元或其否定在式中恰好出现一次,且不与其否定同时出现。我们可以仿照小项的性质,发现大项的以下性质:
同样我们也有:
主合取范式为仅由大项的合取组成的命题公式,由大项的性质可知,其反映了命题公式的真值表。所以我们很容易得出,一个命题公式所有在真值表中为 \(\mathbf{F}\) 的指派所对应的大项组成的合取为该命题公式的主合取范式。显然我们可以也仿照求主析取范式的方法求主合取范式,方法不再赘述。
我们发现,若全集 \(U = \{0, 1, \cdots, 2^n - 1\}\),\(S\) 为一个命题公式主析取范式中所有小项的下标所组成的集合,则主析取范式与主合取范式的关系为,(这里 \(\sum\) 为析取,\(\prod\) 为合取):
\[\sum_{i \in S} m_i \Leftrightarrow \prod_{i \in \overline{S}} M_i
\]
有了前面的各种铺垫,我们发现,我们当要通过一些已知的前提推理一些结论时,我们可以通过符号式的表达将结论推理出来。当然这里的推理仅是对命题中假设的真值和联结词的转化。为了方便,我们常常将前提的真值设为真。
我们对有效结论给出一个符号化的定义:如果 \(A, C\) 两个命题公式有 \(A \R C\),则称 \(C\) 为 \(A\) 的有效结论,更普遍的如果 \(n\) 个命题公式 \(H_1, H_2, \cdots, H_n\) 满足 \(\prod_{i = 1}^n H_i \R C\),则称 \(C\) 为前提 \(H_1, H_2, \cdots, H_n\) 的有效结论。
我们判定有效结论的过程为论证的过程。我们会分别介绍几种证法:
直接将前提和结论中所有的命题变元列真值表,对应确定所有真值的可能性,看是否有 \(\prod_{i = 1}^n H_i \R C.\)
直接证法使用推理规则使用已知的等价公式或蕴含公式推出结论,其中有两个规则:
P 规则:前提在推导的过程中都可以引入推导过程。
T 规则:在推导过程中,如果有一个或多个公式与前提或已推导出的命题公式所蕴含或等价,则其可以引入推导过程。
我们在此列出一些常用的蕴含公式:
标号 | 内容 | 标号 | 内容 |
---|---|---|---|
$$I_1$$ | $$P \and Q \R P$$ | $$I_9$$ | $$P, Q \R P \and Q$$ |
$$I_2$$ | $$P \and Q \R Q$$ | $$I_{10}$$ | $$\lnot P, P \or Q \R Q$$ |
$$I_3$$ | $$P \R P \or Q$$ | $$I_{11}$$ | $$P, P \r Q \R Q$$ |
$$I_4$$ | $$Q \R P \or Q$$ | $$I_{12}$$ | $$\lnot Q, P \r Q \R \lnot P$$ |
$$I_5$$ | $$\lnot P \R P \r Q$$ | $$I_{13}$$ | $$P \r Q, Q \r R \R P \r R$$ |
$$I_6$$ | $$Q \R P \r Q$$ | $$I_{14}$$ | $$P \or Q, P \r R, Q \r R \R R$$ |
$$I_7$$ | $$\lnot (P \r Q) \R P$$ | $$I_{15}$$ | $$A \r B \R (A \or C) \r (B \or C)$$ |
$$I_8$$ | $$\lnot (P \r Q) \R \lnot Q$$ | $$I_{16}$$ | $$A \r B \R (A \and C) \r (B \and C)$$ |
一些常用的等价公式:
标号 | 内容 | 标号 | 内容 |
---|---|---|---|
$$E_1$$ | $$\lnot (\lnot P) \Lr P$$ | $$E_{12}$$ | $$R \or (P \and \lnot P) \Lr R$$ |
$$E_2$$ | $$P \and Q \Lr Q \and P$$ | $$E_{13}$$ | $$R \and (P \or \lnot P) \Lr R$$ |
$$E_3$$ | $$P \or Q \Lr Q \or P$$ | $$E_{14}$$ | $$R \or (P \or \lnot P) \Lr \mathbf{T}$$ |
$$E_4$$ | $$(P \and Q) \and R \Lr P \and (Q \and R)$$ | $$E_{15}$$ | $$R \and (P \and \lnot P) \Lr \mathbf{F}$$ |
$$E_5$$ | $$(P \or Q) \or R \Lr P \or (Q \or R)$$ | $$E_{16}$$ | $$P \r Q \Lr \lnot P \or Q$$ |
$$E_6$$ | $$P \and (Q \or R) \Lr (P \and Q) \or (P \and R)$$ | $$E_{17}$$ | $$\lnot (P \r Q) \Lr P \and \lnot Q$$ |
$$E_7$$ | $$P \or (Q \and R) \Lr (P \or Q) \and (P \or R)$$ | $$E_{18}$$ | $$P \r Q \Lr \lnot Q \r \lnot P$$ |
$$E_8$$ | $$\lnot (P \and Q) \Lr \lnot P \or \lnot Q$$ | $$E_{19}$$ | $$P \r (Q \r R) \Lr (P \and Q) \r R$$ |
$$E_9$$ | $$\lnot (P \or Q) \Lr \lnot P \or \lnot Q$$ | $$E_{20}$$ | $$P \lr Q \Lr (P \r Q) \and (Q \r P)$$ |
$$E_{10}$$ | $$P \or P \Lr P$$ | $$E_{21}$$ | $$P \lr Q \Lr (P \and Q) \or (\lnot P \and \lnot Q)$$ |
$$E_{11}$$ | $$P \and P \Lr P$$ | $$E_{22}$$ | $$\lnot (P \lr Q) \Lr P \lr \lnot Q$$ |
有时候我们通过直接证法证明命题过于困难,我们可以将这个问题通过某种方式转化:
反证法,要证 \(\prod_{i = 1}^n H_i \R C\),设 \(S \Lr \prod_{i = 1}^n H_i\),则有 \(S \r C \Lr \lnot S \or C \Lr \mathbf{T}\),则 \(S \and \lnot C\) 为矛盾式,故只需证 \(\prod_{i = 1}^n H_i\) 和 \(\lnot C\) 不相容。
CP 规则, 如果要证 \(\prod_{i = 1}^n H_i \R (R \r C)\),设 \(S \Lr \prod_{i = 1}^n H_i\),则有 \(S \r (R \r C) \Lr (S \and R) \r C \Lr \mathbf{T}\),故只需证 \(\prod_{i = 1}^n H_i \and R \R C.\)
我们下面再介绍一些联结词:不可兼析取(异或),条件否定,与非,或非。
我们定义联结词不可兼析取(异或)记作 \(\oplus\),我们直接使用之前定义过的命题公式定义它:\(P \oplus Q \Lr (P \and \lnot Q) \or (\lnot P \and Q)\),根据其真值表,我们可以将其视为不进位的二进制加法。除定义之外,其还有以下性质:
\[P \oplus Q \Lr Q \oplus P \\
(P \oplus Q) \oplus R \Lr P \oplus (Q \oplus R) \\
P \and (Q \oplus R) \Lr (P \and Q) \oplus (P \and R) \\
P \oplus Q \Lr \lnot (P \lr Q) \\
P \oplus P \Lr \mathbf{F}, \mathbf{F} \oplus P \Lr P, \textbf{T} \oplus P \Lr \lnot P
\]
我们定义联结词条件否定记作 \(\xr{c}\),与非记作 \(\u\),或非记作 \(\d\),我们仍然用之前的命题公式定义它们:
\[P \xr{c} Q \Lr \lnot (P \r Q) \\
P \u Q \Lr \lnot (P \and Q) \\
P \d Q \Lr \lnot (P \or Q)
\]
我们可以看到与非,或非的一些性质:
\[P \u P \Lr \lnot P \\
(P \u Q) \u (P \u Q) \Lr P \and Q \\
(P \u P) \u (Q \u Q) \Lr P \or Q \\
P \d P \Lr \lnot P \\
(P \d Q) \d (P \d Q) \Lr P \or Q \\
(P \d P) \d (Q \d Q) \Lr P \and Q
\]
我们根据 \(P, Q\) 的真值表可能的真值情况(一共有 \(2^4 = 16\) 种),推断出不需要新的联结词。
而由等价公式可知,一些联结词总是可以被另外一些联结词的公式等价替换。我们有时希望命题公式中出现联结词的种类尽可能少,但又不可以太少,以至于我们不能表达所有命题公式。所以我们给出最小联结词组的概念:即对于一个由联结词组成的集合,如果任意命题公式都可以等价转化成只使用这个集合中联结词组成的命题公式,且这个集合的任意真子集不具有这个性质,那么就称这个集合为最小联结词组。
至此,本部分的知识已经更新完毕,感觉这一章充满了数学中逻辑的味道,终于明白了我们证明问题其实在描述什么。其中引出主析取范式的想法,即 “使用某种方法让命题公式可以直接描述真值表” 的想法着实让我眼前一亮。我个人比较喜欢证明和研究定义为何是良定义,大概也因为会时不时看到这种让我感觉到精彩的思路。
数学真的可以被称作是一门魔法,它就在我们身边,却又将看似不可能的东西联系起来。我也要尽快学习,成为一个有一定资质的魔法师 qwq!醒醒,你是计算机专业的(逃