由于计算机中的数据都以离散量的形式存储,处于对研究数据结构和算法的需要,离散数学成为了计算机科学必备的前置科目。离散数学是一门证明较多,实用性较强的学科,因此概念和定理也非常繁杂。

离散量:逻辑量,图,树,整数,布尔代数等
连续量:温度,压力,体积,电压等

命题逻辑

命题逻辑与联结词

所谓命题(proposition),是指一句有真假意义的话。我们用大写的英文字母 P,Q,R,P,Q,R,\cdots,代表一个抽象的命题,称为命题符号

如果一个命题为真,则称其真值为1,也用“1”代表一个抽象的真命题;如果一个命题为假,则称其真值为0,也用“0”代表一个抽象的假命题。

命题“PP 是不对的”称为 PP否定,记作 ¬P\neg P,读作非 PP.
真值规定:¬P\neg P 为真     \iff PP 为假。

命题“PP 或者 QQ”称为 P,QP,Q析取(disjunctive),记作 PQP\vee Q,读作 PPQQ.
真值规定:PQP\vee Q 为真     \iff P,QP,Q 中至少有一个为真。

命题“PP 并且 QQ”称为 P,QP,Q合取(conjunction),记作 PQP\wedge Q,读作 PPQQ.
真值规定:PQP\wedge Q 为真     \iff P,QP,Q 都为真。

自然语言中“或”有两种含义——表示两者可以同时成立,称为可兼或;表示二者只能居其一,不会同时成立,称为不可兼或,或异或(exclusive or),可以表示为:

(P¬Q)(¬PQ)(P\wedge\neg Q)\vee(\neg P\wedge Q)

命题“如果 PP,则 QQ”称为 PP 蕴涵 QQPP implies QQ),记作 PQP\rightarrow Q.
真值规定:PQP\rightarrow Q 为假     \iff PP 为真而 QQ 为假。

命题“PP 当且仅当 QQ”称为 PP 等价 QQPP is equivalent to QQ),记作 PQP\leftrightarrow Q.
真值规定:PQP\leftrightarrow Q 为真     \iff P,QP,Q 都为真或都为假。

联结词的运算优先级(从高到低): ¬,,,,\neg,\wedge,\vee,\rightarrow,\leftrightarrow

命题公式

GG 是命题公式,A1,,AnA_1,\cdots,A_n 是出现在 GG 中的所有原子(atom),指定 A1,,AnA_1,\cdots,A_n 的一组真值,则称这组真值为 GG 的一个解释 II,其对应的真值通常记作 TI(G)T_{I}(G)。显然,有 nn 个不同原子的公式,共有 2n2^n 个解释。

TI(G)={m1,m2,,mn}T_{I}(G)=\{m_1,m_2,\cdots,m_n\}

mi={AiAiI下为1¬AiAiI下为0i=1,2,,nm_i=\begin{cases}A_i&\text{当}A_i\text{在}I\text{下为}1\text{时}\\\neg A_i&\text{当}A_i\text{在}I\text{下为}0\text{时}\end{cases}\\ i=1,2,\cdots,n

如果 GG 在解释 II 下为真,则称 II 满足 GG
如果 GG 在解释 II 下为假,则称 II 弄假 GG

公式 GG 在其所有可能的解释下取真值所作出的表,称为 GG真值表(truth table)

如果 GG 在它的所有解释下都为真,则称其为恒真式(重言式)
如果 GG 在它的所有解释下都为假,则称其为恒假式(矛盾式)
如果 GG 至少存在一个解释 II 满足 GG,则称其为可满足式

公式的等价:

如果 G,HG,H 在其任意解释 II 下真值相同,则称公式 G,HG,H等价的,记作 G=HG=H
公式 G,HG,H 等价     \iff 公式 GHG\leftrightarrow H 恒真。

定律 基本等价式
单条件等价式 GH=(GH)(HG)G \leftrightarrow H=(G \rightarrow H)\wedge(H \rightarrow G)
双条件等价式 GH=¬GHG \rightarrow H=\neg G \vee H
幂等律 GG=GGG=GG \vee G=G\\ G \wedge G=G
交换律 GH=HGGH=HGG \vee H=H \vee G\\ G \wedge H=H \wedge G
吸收律 G(GH)=GG(GH)=GG \vee(G \wedge H)=G\\ G \wedge(G \vee H)=G
分配律 G(HS)=(GH)(GS)G(HS)=(GH)(GS)G \vee(H \wedge S)=(G \vee H)\wedge(G \vee S)\\ G \wedge(H \vee S)=(G \wedge H)\vee(G \wedge S)
同一律 G0=GG1=GG \vee 0=G\\ G \wedge 1=G
零一律 G1=1G0=0G \vee 1=1\\ G \wedge 0=0
互补律 G¬G=1G¬G=0G \vee \neg G=1\\ G \wedge \neg G=0
De Morgan 律 ¬(GH)=¬G¬H¬(GH)=¬G¬H\neg(G \vee H)=\neg G \wedge \neg H\\ \neg(G \wedge H)=\neg G \vee \neg H

利用基本等价式化简命题公式:

例:

(PQ)PQ=¬(¬PQ)(PQ)=(P¬Q)(PQ)=P(¬QQ)=P1=P\begin{aligned} &\quad(P\rightarrow Q)\rightarrow P\wedge Q\\ &=\neg(\neg P\vee Q)\vee(P\wedge Q)\\ &=(P\wedge\neg Q)\vee(P\wedge Q)\\ &=P\wedge(\neg Q\vee Q)\\ &=P\wedge 1=P \end{aligned}

利用基本等价式判断命题公式是否恒真:

例:

(PQ)((QR)(PR))=¬(¬PQ)(¬(¬QR)(¬PR))=(P¬Q)((Q¬R)(¬PR))=(P¬Q)((Q¬PR)(¬R¬PR))=(P¬Q)((Q¬PR)1)=(P¬Q)(Q¬PR)=(PQ¬PR)(¬QQ¬PR)=11=1\begin{aligned} &\quad(P\rightarrow Q)\rightarrow((Q\rightarrow R)\rightarrow(P\rightarrow R))\\ &=\neg(\neg P\vee Q)\vee(\neg(\neg Q\vee R)\vee(\neg P\vee R))\\ &=(P\wedge\neg Q)\vee((Q\wedge\neg R)\vee(\neg P\vee R))\\ &=(P\wedge\neg Q)\vee((Q\vee\neg P\vee R)\wedge(\neg R\vee\neg P\vee R))\\ &=(P\wedge\neg Q)\vee((Q\vee\neg P\vee R)\wedge 1)\\ &=(P\wedge\neg Q)\vee(Q\vee\neg P\vee R)\\ &=(P\vee Q\vee\neg P\vee R)\wedge(\neg Q\vee Q\vee\neg P\vee R)\\ &=1\vee 1=1 \end{aligned}

所以原命题公式为恒真式。

联结词的完备集

QQ 是联结词符号集合,若所有命题运算都能由 QQ 中符号表示出来,而 QQ 的任意真子集无此性质,则称 QQ 是一个完备集

可以证明,{¬,}\{\neg,\wedge\}{¬,}\{\neg,\vee\}{¬,}\{\neg,\rightarrow\} 都是完备集。

证明 {¬,}\{\neg,\wedge\} 是完备集:

PQ=¬(¬P¬Q)PQ=¬PQ=¬(P¬Q)PQ=(PQ)(QP)=(¬PQ)(¬QP)=(¬(P¬Q))(¬(¬Q¬P))\begin{aligned} P\vee Q&=\neg(\neg P\wedge\neg Q)\\ P\rightarrow Q&=\neg P\vee Q=\neg(P\wedge\neg Q)\\ P\leftrightarrow Q&=(P\rightarrow Q)\wedge(Q\rightarrow P)\\ &=(\neg P\vee Q)\wedge(\neg Q\vee P)\\ &=(\neg(P\wedge\neg Q))\wedge(\neg(\neg Q\wedge\neg P)) \end{aligned}

证明 {¬,}\{\neg,\vee\} 是完备集:

PQ=¬(¬P¬Q)PQ=¬PQPQ=(PQ)(QP)=(¬PQ)(¬QP)=¬(¬(¬PQ)¬(¬QP))\begin{aligned} P\wedge Q&=\neg(\neg P\vee\neg Q)\\ P\rightarrow Q&=\neg P\vee Q\\ P\leftrightarrow Q&=(P\rightarrow Q)\wedge(Q\rightarrow P)\\ &=(\neg P\vee Q)\wedge(\neg Q\vee P)\\ &=\neg(\neg(\neg P\vee Q)\vee\neg(\neg Q\vee P)) \end{aligned}

证明 {¬,}\{\neg,\rightarrow\} 是完备集:

PQ=¬PQPQ=¬(¬P¬Q)=¬(P¬Q)PQ=(PQ)(QP)=¬((PQ)¬(QP))\begin{aligned} P\vee Q&=\neg P\rightarrow Q\\ P\wedge Q&=\neg(\neg P\vee\neg Q)\\ &=\neg(P\rightarrow\neg Q)\\ P\leftrightarrow Q&=(P\rightarrow Q)\wedge(Q\rightarrow P)\\ &=\neg((P\rightarrow Q)\rightarrow\neg(Q\rightarrow P)) \end{aligned}

与非式和或非式

命题“PPQQ 的否定”称为 PPQQ与非式,记作 PQP\uparrow Q.
真值规定:PQP\uparrow Q 为真     \iff P,QP,Q 不同时为真。

PQ=¬(PQ)P\uparrow Q=\neg(P\wedge Q)

因为 {¬,}\{\neg,\wedge\} 是完备集,所以 {}\{\uparrow\} 也是完备集。

命题“PPQQ 的否定”称为 PPQQ或非式,记作 PQP\downarrow Q.
真值规定:PQP\downarrow Q 为真     \iff P,QP,Q 同时为假。

PQ=¬(PQ)P\downarrow Q=\neg(P\vee Q)

因为 {¬,}\{\neg,\vee\} 是完备集,所以 {}\{\downarrow\} 也是完备集。

公式的蕴涵与演绎推理

逻辑公式的一个重要作用就是研究命题推理,除了利用公式的等价关系进行推理以外,公式间的逻辑蕴涵(entailment)关系,也可以反映命题间的演绎推理(deductive reasoning)

G,HG,H 是两个公式,当且仅当对 G,HG,H 的任意解释 II,如果 II 满足 GG,则 II 也满足 HH 时,称 HHGG逻辑结果GG 蕴涵 HH),记作 GHG\Rightarrow H

GHG\Rightarrow H     \iff GHG\rightarrow H 是恒真的。

证明:

必要性:任取 G,HG,H 的解释 II
TI(G)=1T_I(G)=1,则由 GHG\Rightarrow H 可知 TI(H)=1T_I(H)=1,因此 TI(GH)=1T_I(G\rightarrow H)=1
TI(G)=0T_I(G)=0,则 TI(GH)=1T_I(G\rightarrow H)=1
从而,对 G,HG,H 的任意解释 II,有 GHG\rightarrow H 恒真。

充分性:任取 G,HG,H 的解释 II,若 TI(G)=1T_I(G)=1,由 GHG\rightarrow H 恒真,可知 TI(H)=1T_I(H)=1,从而有 GHG\Rightarrow H

G1,G2,,Gn,HG_1,G_2,\cdots,G_n,H 是公式,当且仅当 (G1G2Gn)H(G_1\wedge G_2\wedge \cdots\wedge G_n)\Rightarrow H 时,称 HHG1,G2,,GnG_1,G_2,\cdots,G_n逻辑结果G1,G2,,GnG_1,G_2,\cdots,G_n 共同蕴涵 HH)。

显然,(G1G2Gn)H(G_1\wedge G_2\wedge \cdots\wedge G_n)\Rightarrow H     \iff G1,G2,,GnHG_1,G_2,\cdots,G_n\rightarrow H 是恒真的。

定理: 如果 H1,H2,Hm,PH_1,H_2,\cdots H_m,P 共同蕴涵公式 QQ,则 H1,H2,HmH_1,H_2,\cdots H_m 共同蕴涵公式 PQP\rightarrow Q

演绎的定义:

SS 是一个命题公式的集合,称为前提集合,从 SS 推出公式 GG 的一个演绎是公式的一个有限序列:

G1,G2,,GkG_1,G_2,\cdots,G_k

其中,GkG_k 就是 GGGiG_i 要么属于 SS,要么是某些 Gj (j<i)G_j\ (j<i) 的逻辑结果。

此时称从 SS 演绎GGGG 为此演绎的逻辑结果,记作 SGS\Rightarrow G

演绎方法的完备性:

引理:设 G,H1,H2G,H_1,H_2 是公式,如果 GH1,GH2G\Rightarrow H_1,G\Rightarrow H_2,则 G(H1H2)G\Rightarrow(H_1\wedge H_2)

证明:任取 G,H1,H2G,H_1,H_2 的一个解释 II,若 II 满足 GG,由假设知,H1,H2H_1,H_2 都是 GG 的逻辑结果,从而 II 满足 H1H_1,又因为 II 满足 H2H_2,故 II 满足 H1H2H_1\wedge H_2。由 II 的任意性,可得 G(H1H2)G\Rightarrow(H_1\wedge H_2)

SS 是公式集合,GG 是一个公式,从 SS 演绎出 GG 的充要条件是 GGSS 的逻辑结果。

证明:

必要性:设从 SS 演绎出 GG,令这个演绎为 G1,G2,,GkG_1,G_2,\cdots,G_k
对任意 Gi (i=1,2,,k)G_i\ (i=1,2,\cdots,k),只需证明 GiG_iSS 的逻辑结果。

ii 使用归纳法:

  1. i=1i=1 时,因为 G1SG_1\in S,显然 G1G1G_1\wedge\cdots\rightarrow G_1 恒真,故 SG1S\Rightarrow G_1
  2. i<ni<n 时,同理可得 SGiS\Rightarrow G_i
  3. i=ni=n 时,若 GnSG_n\in S,则 SGnS\Rightarrow G_n,归纳完毕。
    GnG_n 是某些 Gj (j<n)G_j\ (j<n) 的逻辑结果,不妨设 (Gj1Gjh)Gn(G_{j1}\wedge\cdots\wedge G_{jh})\Rightarrow G_n,其中 j1,,jn<nj_1,\cdots,j_n<n
    由归纳假设可得,SGjm, m=1,,hS\Rightarrow G_{jm},\ m=1,\cdots,h,又由引理可得 S(Gj1Gjh)S\Rightarrow(G_{j1}\wedge\cdots\wedge G_{jh}),所以综上所述,可得 SGnS\Rightarrow G_n,归纳完毕。

充分性:若 GGSS 的逻辑结果,由演绎的定义可得,GG 是演绎 H1,H2,,Hm,GH_1,H_2,\cdots,H_m,G 的逻辑结果,其中 H1,H2,,HmH_1,H_2,\cdots,H_mSS 中的所有公式。

演绎定理:SS 是前提集合,G,HG,H 是两个公式,如果从 S{G}S\cup\{G\} 可演绎出 HH,则从 SS 可演绎出 GHG\rightarrow H

定律 基本蕴涵式
恒等律 0GG10\Rightarrow G\\ G\Rightarrow 1
化简律 PQPPQQP\wedge Q\Rightarrow P\\ P\wedge Q\Rightarrow Q
附加律 PPQQPQP\Rightarrow P\vee Q\\ Q\Rightarrow P\vee Q
变形化简律 ¬(PQ)P¬(PQ)¬Q\neg(P\rightarrow Q)\Rightarrow P\\ \neg(P\rightarrow Q)\Rightarrow\neg Q
变形附加律 ¬P(PQ)Q(PQ)\neg P\Rightarrow(P\rightarrow Q)\\ Q\Rightarrow(P\rightarrow Q)
前提引入规则 P,QPQP,Q\Rightarrow P\wedge Q
析取三段论 ¬P,PQQ\neg P,P\vee Q\Rightarrow Q
假言推理 P,PQQP,P\rightarrow Q\Leftrightarrow Q
拒取式 ¬Q,PQ¬P\neg Q,P\rightarrow Q\Leftrightarrow\neg P
假言三段论 PQ,QRPRP\rightarrow Q,Q\rightarrow R\Leftrightarrow P\rightarrow R
二难推理 PQ,PR,QRRP\vee Q,P\rightarrow R,Q\rightarrow R\Leftrightarrow R

公式间蕴涵的证明方法:

给出两个公式 G,HG,H,证明 GHG\Rightarrow H 可以使用以下方法:

  1. 真值表法,将公式 GG 和公式 HH 同列在一张真值表中,扫描公式 GG 所对应的列,验证该列真值为1的每一项,它所在行上对应公式 HH 所对应真值必为1,则 GHG\Rightarrow H
  2. GG\rightarrow 是恒真公式;
  3. 利用一些基本等价式和基本蕴涵式进行推导;
  4. 任取解释 II,若 II 满足 GG,只需证明 II 满足 HH
  5. 反证法,设结论为假,只需证明前提也为假,即证明 ¬H¬G\neg H\Rightarrow\neg G

自然演绎法推理

根据一些基本等价式和基本蕴涵式,可以从公式 SS 演绎出公式 GG,在演绎过程中遵循以下三条基本规则:

规则 P(前提引入规则,premise rule): 在推导的过程中,可随时引入前提集合中的任意一个前提。
规则 T(逻辑结果引用规则,transformation rule): 在推导的过程中,可随时引入前面演绎出的某些公式的逻辑结果。
规则 CP(附加前提规则,conclusion premise rule): 如果需要演绎出的公式是 PQP\rightarrow Q 的形式,可将 PP 作为附加前提使用,而力图去演绎出 QQ

例:证明 {(PQ),(PR),(QS)}SR\{(P\vee Q),(P\rightarrow R),(Q\rightarrow S)\}\Rightarrow S\vee R

证法一(不使用规则 CP):

(1)PQ(2)¬PQ(3)QS(4)¬PS(5)¬SP(6)PR(7)¬SR(8)SR\begin{align} &(1)\quad P\vee Q\tag{P}\\ &(2)\quad \neg P\rightarrow Q\tag{T,1}\\ &(3)\quad Q\rightarrow S\tag{P}\\ &(4)\quad \neg P\rightarrow S\tag{T,2,3}\\ &(5)\quad \neg S\rightarrow P\tag{T,4}\\ &(6)\quad P\rightarrow R\tag{P}\\ &(7)\quad \neg S\rightarrow R\tag{T,5,6}\\ &(8)\quad S\vee R\tag{T,7} \end{align}

证法二(使用规则 CP):

(1)¬S(2)QS(3)¬Q(4)PQ(5)P(6)PR(7)R(8)¬SR(9)SR\begin{align} &(1)\quad \neg S\tag{CP}\\ &(2)\quad Q\rightarrow S\tag{P}\\ &(3)\quad \neg Q\tag{T,1,2}\\ &(4)\quad P\vee Q\tag{P}\\ &(5)\quad P\tag{T,3,4}\\ &(6)\quad P\rightarrow R\tag{P}\\ &(7)\quad R\tag{T,5,6}\\ &(8)\quad \neg S\rightarrow R\tag{CP,1,7}\\ &(9)\quad S\vee R\tag{T,8} \end{align}

析取范式与合取范式

使用真值表来判定命题公式的真假虽然是万能的,但在公式包含原子数较多时,就会显得太过繁琐,为了简化两个命题公式是否等价及一个公式恒真、恒假、可满足的判定,我们引入范式(normal form) 的概念。

原子或原子的否定称为文字,有限个文字的析取式称为一个子句,有限个文字的合取式称为一个短语。一个文字既可以称为是一个子句,也可以称为是一个短语。

有限个短语的析取式称为析取范式(disjunctive normal form,DNF)
有限个子句的合取式称为合取范式(conjunctive normal form,CNF)
一个文字、子句、短语既可以看作是析取范式,也可以看作是合取范式。

定理: 对于任意命题公式,都存在与其等价的析取范式与合取范式。

对于公式 GG,通过如下方法即可得出等价于 GG 的范式:

  1. 使用基本等价式,将 GG 中的逻辑联结词 ,\rightarrow,\leftrightarrow 消去。
  2. 使用 ¬(¬H)=H\neg(\neg H)=H 和 De Morgan 律,将 GG 中的所有否定号 ¬\neg 都放在原子之前。
  3. 反复使用分配律,即可得到等价于 GG 的范式。

极小项与主析取范式:

P1,P2,,PnP_1,P_2,\cdots,P_nnn 个不同原子,一个短语如果恰好包含所有nn 个原子或其否定,且其排列顺序与 P1,P2,,PnP_1,P_2,\cdots,P_n 的顺序一致,则称此短语为关于 P1,P2,,PnP_1,P_2,\cdots,P_n 的一个极小项(minterm),对任意一个极小项 mm,有且仅有一个解释使其取1值。显然,共有 2n2^n 个不同的极小项。

极小项与解释和 nn 位二进制数具有一一对应关系,参见下表:

极小项 成真解释 记法
¬P¬Q¬R\neg P\wedge\neg Q\wedge\neg R 000 m0m_0
¬P¬QR\neg P\wedge\neg Q\wedge R 001 m1m_1
¬PQ¬R\neg P\wedge Q\wedge\neg R 010 m2m_2
¬PQR\neg P\wedge Q\wedge R 011 m3m_3
P¬Q¬RP\wedge\neg Q\wedge\neg R 100 m4m_4
P¬QRP\wedge\neg Q\wedge R 101 m5m_5
PQ¬RP\wedge Q\wedge\neg R 110 m6m_6
PQRP\wedge Q\wedge R 111 m7m_7

任意两个不同极小项的合取式恒假,所有极小项的析取式恒真:

i=02n1mi=1\bigvee_{i=0}^{2^n-1}m_i=1

设命题公式 GG 所有不同原子为 P1,P2,,PnP_1,P_2,\cdots,P_n,如果 GG 的某个析取范式 GG' 中的每一个短语都是关于 P1,P2,,PnP_1,P_2,\cdots,P_n 的一个极小项,则称 GG'GG主析取范式(principal disjunctive normal form)。在真值表中,使得公式为真的解释所对应的极小项的析取即为此公式的主析取范式。

定理: 对于任意命题公式,都存在唯一一个与其等价的主析取范式。

设命题公式 GG 中所有不同原子为 P1,P2,,PnP_1,P_2,\cdots,P_n,则与其等价的主析取范式的求法如下:

  1. 将公式 GG 化为析取范式 GG'
  2. 删去析取范式中所有恒假的短语。
  3. 用等幂律将短语中重复出现的同一文字化简为只出现一次,例如 PP=PP\wedge P=P
  4. GG' 中的每一个短语进行检查,如果 GiG_i' 不是关于 P1,P2,,PnP_1,P_2,\cdots,P_n 的极小项,则 GiG_i' 中必然缺少原子 Pj1,,PjkP_{j1},\cdots,P_{jk},将所有非极小项 GiG_i' 都化成一些极小项之析取,即可得等价于 GG 的主析取范式:

Gi=Gi(Pj1¬Pj1)(Pjk¬Pjk)=mi1mi2mi2k\begin{aligned}G_i'&=G_i'\wedge(P_{j1}\vee\neg P_{j1})\wedge\cdots\wedge(P_{jk}\vee\neg P_{jk})\\&=m_{i_1}\vee m_{i_2}\vee\cdots\vee m_{i_{2^k}}\end{aligned}

极大项与主合取范式:

和极小项类似,设 P1,P2,,PnP_1,P_2,\cdots,P_nnn 个不同原子,一个子句如果恰好包含所有nn 个原子或其否定,且其排列顺序与 P1,P2,,PnP_1,P_2,\cdots,P_n 的顺序一致,则称此短语为关于 P1,P2,,PnP_1,P_2,\cdots,P_n 的一个极大项(maxterm),对任意一个极大项 MM,有且仅有一个解释使其取0值。极小项和极大项为相互否定的关系:

mi=¬Mi,Mi=¬mim_i=\neg M_i,\quad M_i=\neg m_i

极大项 成假解释 记法
PQRP\vee Q\vee R 000 M0M_0
PQ¬RP\vee Q\vee\neg R 001 M1M_1
P¬QRP\vee\neg Q\vee R 010 M2M_2
P¬Q¬RP\vee\neg Q\vee\neg R 011 M3M_3
¬PQR\neg P\vee Q\vee R 100 M4M_4
¬PQ¬R\neg P\vee Q\vee\neg R 101 M5M_5
¬P¬QR\neg P\vee\neg Q\vee R 110 M6M_6
¬P¬Q¬R\neg P\vee\neg Q\vee\neg R 111 M7M_7

任意两个不同的极大项的析取式恒真,所有极大项的合取式恒假:

i=02n1Mi=0\bigwedge_{i=0}^{2^n-1}M_i=0

设命题公式 GG 所有不同原子为 P1,P2,,PnP_1,P_2,\cdots,P_n,如果 GG 的某个合取范式 GG' 中的每一个子句都是关于 P1,P2,,PnP_1,P_2,\cdots,P_n 的一个极大项,则称 GG'GG主合取范式(principal conjunctive normal form)。在真值表中,使得公式为假的解释所对应的极大项的合取即为此公式的主合取范式。

定理: 对于任意命题公式,都存在唯一一个与其等价的主合取范式。

设命题公式 GG 中所有不同原子为 P1,P2,,PnP_1,P_2,\cdots,P_n,则与其等价的主合取范式的求法如下:

  1. 将公式 GG 化为合取范式 GG'
  2. 删去合取范式中所有恒真的短语。
  3. 用等幂律将子句中重复出现的同一文字化简为只出现一次,例如 PP=PP\vee P=P
  4. GG' 中的每一个子句进行检查,如果 GiG_i' 不是关于 P1,P2,,PnP_1,P_2,\cdots,P_n 的极大项,则 GiG_i' 中必然缺少原子 Pj1,,PjkP_{j1},\cdots,P_{jk},将所有非极大项 GiG_i' 都化成一些极大项之合取,即可得等价于 GG 的主合取范式:

Gi=Gi(Pj1¬Pj1)(Pjk¬Pjk)=Mi1Mi2Mi2k\begin{aligned}G_i'&=G_i'\vee(P_{j1}\wedge\neg P_{j1})\vee\cdots\vee(P_{jk}\wedge\neg P_{jk})\\&=M_{i_1}\wedge M_{i_2}\wedge\cdots\wedge M_{i_{2^k}}\end{aligned}

等价于同一公式的主析取范式 GG' 与主合取范式 GG'' 具有以下关系:

G=¬¬G=¬¬m0=¬(m1m2mk)=¬m1¬m2¬mk=M1M2Mk\begin{aligned} G''&=\neg\neg G'\\ &=\neg\neg m_0\\ &=\neg(m_1\vee m_2\cdots\vee m_k)\\ &=\neg m_1\wedge\neg m_2\wedge\cdots\wedge\neg m_k\\ &=M_1\wedge M_2\wedge\cdots\wedge M_k \end{aligned}

通过如下方法即可将主析取范式转化为主合取范式:

  1. 求出 GG 的主析取范式中没有包含的所有极小项 mim_i
  2. 求出与该极小项下标相同的极大项 MiM_i
  3. 将求出的所有极大项合取起来,即可得到 GG 的主合取范式 GG'

用范式判断公式的等价性:

主析取范式和主合取范式都可以用来判断公式是否等价。因为等价于同一公式的主析取范式和主合取范式都是唯一的,所以假如对应于公式 G,HG,H 的主析取范式或主合取范式不完全相同,则 G,HG,H 不等价。

用范式判断公式的恒真恒假性:

析取范式法:公式 GG 是恒假的当且仅当在与其等价的析取范式中,每个短语均至少包含一个原子及其否定。
合取范式法:公式 GG 是恒真的当且仅当在与其等价的合取范式中,每个子句均至少包含一个原子及其否定。

主析取范式法:公式恒假时,主析取范式没有极小项(G=0G'=0);公式恒真时,主析取范式包含所有极小项。
主合取范式法:公式恒假时,主合取范式包含所有极大项;公式恒真时,主合取范式没有极大项(G=1G'=1)。

另一种判定算法:对任给要判定的命题公式 GG,设其中有原子 P1,P2,,PnP_1,P_2,\cdots,P_nP1\bm{P_1} 取1值,求 GG 的真值,或为1,或为0,或为新公式 G1G_1 且其中只有原子 P2,,PnP_2,\cdots,P_n再令 P1\bm{P_1} 取0值,求 GG 真值。如此继续,到最终只含0或1为止。若最终结果全为1,则公式 GG 恒真;若最终结果全为1,则公式 GG 恒假;若最终结果既有1又有0,则公式 GG 为可满足式。

例:求 (PQR)(PQ)(PR)(P\wedge Q\rightarrow R)\wedge(P\rightarrow Q)\rightarrow(P\rightarrow R) 是否恒真。

PP 取0值 \Rightarrow 1
PP 取1值 \Rightarrow (QR)QR(Q\rightarrow R)\wedge Q\rightarrow R

QQ 取0值 \Rightarrow 1
QQ 取1值 \Rightarrow RRR\rightarrow R

RR 取0值 \Rightarrow 1
RR 取0值 \Rightarrow 1

最终结果全为1,可得原公式恒真。

谓词逻辑

命题逻辑有一些严重的缺陷,那就是把问题看成一个个孤立的命题,忽略了问题之间的联系,不能反映某些重要的常见的逻辑思维过程。为解决这些问题,我们引入了谓词和谓词逻辑的概念。

谓词逻辑与量词

我们首先提出个体的定义:可以独立存在的物体称为个体(individual),在谓词演算中,个体通常指一个命题里的思维对象;个体变化的范围称为个体域(individual domain),个体域可以是有限的,也可以是无限的;具象的个体称为个体常元(individual constant),抽象的个体称为个体变元(individual variable),变元可以被个体域内的任意一个元素代入。

用用于描述个体的性质或个体之间关系的词就称为谓词(predicate),含有 nn 个个体变元的的谓词称为 n\bm n 元谓词,记作 P(x1,x2,,xn)P(x_1,x_2,\cdots,x_n)。一元谓词用于描述个体的性质,二元或多元谓词用于描述两个或多个个体间的关系,0元谓词中没有个体,退化为命题。

命题“对任意 xx 都有 G(x)G(x)”称为全称命题,记作 xG(x)\forall xG(x)x\forall x 称为全称量词(universal quantifier)
xG(x)\forall xG(x) 为真     \iff 对所有个体域内的 xxG(x)G(x) 均为真;
xG(x)\forall xG(x) 为假     \iff 至少有一个个体域内的 x0x_0,使 G(x0)G(x_0) 为假。

命题“存在 xx 使得 G(x)G(x)”称为存在命题,记作 xG(x)\exists xG(x)x\exists x 称为存在量词(existential quantifier)
xG(x)\exists xG(x) 为真     \iff 至少有一个个体域内的 x0x_0,使 G(x0)G(x_0) 为真;
xG(x)\exists xG(x) 为假     \iff 对所有个体域内的 xxG(x)G(x) 均为假。

xG(x)G(a)xG(x) ¬xG(x)¬xG(x)\forall xG(x)\Rightarrow G(a)\Rightarrow\exists xG(x)\\ \ \\ \neg\exists xG(x)\Rightarrow\neg \forall xG(x)

量词本身不是一个独立的逻辑概念,可以用析取和合取代替。当个体域 D={x0,x1,}D=\{x_0,x_1,\cdots\} 可数时:

xG(x)    G(x0)G(x1) xG(x)    G(x0)G(x1)\forall xG(x)\iff G(x_0)\wedge G(x_1)\wedge\cdots\\ \ \\ \exists xG(x)\iff G(x_0)\vee G(x_1)\vee\cdots

量词的约束范围:

当变元至少一次出现在使用这个变元的量词范围之内,则该变元受量词约束,称其为约束变元(bound variable);当变元至少一次出现在使用这个变元的量词范围之外,则该变元不受量词约束,称其为自由变元(free variable)。一个变元可以既是约束变元又是自由变元。

约束变元的名称可以被更改,但这种改名必须在量词作用区域内各处以及该量词符号中同时进行,并且改成的新约束变元必须有别于改名区域中的所有其它变元。

谓词公式

为了给出谓词公式的定义,我们需要先引入项(term) 的概念。谓词逻辑中的项具有如下递归定义:

  1. 个体常元是项;
  2. 个体变元是项;
  3. f(x1,x2,,xn)f(x_1,x_2,\cdots,x_n)nn 元函数符号,则 x1,x2,,xnx_1,x_2,\cdots,x_n 是项,f(x1,x2,,xn)f(x_1,x_2,\cdots,x_n) 也是项;
  4. 有限次使用以上规则生成的符号串都是项。

P(x1,,xn)P(x_1,\cdots,x_n)nn 元谓词符号,t1,,tnt_1,\cdots,t_n 是项,则 P(x1,,xn)P(x_1,\cdots,x_n) 被称为原子

谓词公式具有如下递归定义:

  1. 原子是公式;
  2. G,HG,H 是公式,则 (¬G)(\neg G)(GH)(G\vee H)(GH)(G\wedge H)(G)(G\rightarrow)(GG)(G\leftrightarrow G) 也是公式;
  3. GG 是公式,xxGG 中的自由变元,则 xG\forall xGxG\exists xG 也是公式;
  4. 有限次使用以上规则生成的符号串都是公式。

若公式中无自由变元,或将自由变元看作常元,则称其为封闭公式,只有封闭公式可以看作命题,并且有确定的真值。

谓词公式 GG 的一个解释 I\bm I 是由非空集合 DD (称为论域)和对 GG 中出现的个体常元,函数符号,谓词符号以下列规则进行的一组指定组成:

  1. 对每个个体常元,指定 DD 中一个元素;
  2. 对每个 nn 元函数符号,指定一个函数;
  3. 对每个 nn 元谓词符号,指定一个谓词。

例:证明 xyP(x,y)\forall x\exists yP(x,y)yxP(x,y)\exists y\forall xP(x,y) 不等价。

证:对函数 P(x,y)P(x,y) 做以下指定:

P(1,1)=1,P(1,2)=0,P(2,1)=0,P(2,2)=1P(1,1)=1,P(1,2)=0,P(2,1)=0,P(2,2)=1

考虑论域 D={1,2}D=\{1,2\},并构造在该论域下的解释 II,则:

TI(xyP(x,y))=TI(P(1,1)P(1,2))(P(2,1)P(2,2))=1TI(yxP(x,y))=TI(P(1,1)P(1,2))(P(2,1)P(2,2))=0T_I(\forall x\exists yP(x,y))=T_I(P(1,1)\vee P(1,2))\wedge(P(2,1)\vee P(2,2))=1\\ T_I(\exists y\forall xP(x,y))=T_I(P(1,1)\wedge P(1,2))\vee(P(2,1)\wedge P(2,2))=0

所以二者不等价。

在使用量词时,要注意多重量词的运算顺序和量词的作用范围。

不同的量词运算顺序:

构造解释 II:设 DD 为自然数集,令函数 P(x,y):x>yP(x,y):x>y,则:

(1)

TI(xyP(x,y))=TI(yP(0,y)yP(1,y)y(P,n,y))T_I(\forall x\exists yP(x,y))=T_I(\exists yP(0,y)\wedge\exists yP(1,y)\wedge\cdots\wedge\exists y(P,n,y)\wedge\cdots)

因为

TI(yP(0,y))=TI(P(0,0)P(0,1))=0T_I(\exists yP(0,y))=T_I(P(0,0)\vee P(0,1)\vee\cdots)=0

所以 TI(xyP(x,y))=0T_I(\forall x\exists yP(x,y))=0

(2)

TI(yxP(x,y))=TI(xP(x,0)xP(x,1)xP(x,n))=111=1\begin{aligned}T_I(\forall y\exists xP(x,y))&=T_I(\exists xP(x,0)\wedge\exists xP(x,1)\wedge\cdots\wedge\exists xP(x,n)\wedge\cdots)\\&=1\wedge 1\wedge\cdots\wedge 1\wedge\cdots\\&=1\end{aligned}

(3)

TI(xyP(x,y))=TI(yP(0,y)yP(1,y)yP(n,y))=000=0\begin{aligned}T_I(\exists x\forall yP(x,y))&=T_I(\forall yP(0,y)\vee\forall yP(1,y)\vee\cdots\vee\forall yP(n,y)\vee\cdots)\\&=0\vee 0\vee\cdots\vee 0\vee\cdots\\&=0\end{aligned}

综上所述,xyP(x,y)\forall x\exists yP(x,y)yxP(x,y)\forall y\exists xP(x,y)xyP(x,y)\exists x\forall yP(x,y) 不等价。

当论域 DD 可数时,相邻的同种量词可以交换顺序:

xyP(x,y)=yxP(x,y)xyP(x,y)=yxP(x,y)\forall x\forall yP(x,y)=\forall y\forall xP(x,y)\\ \exists x\exists yP(x,y)=\exists y\exists xP(x,y)

不同的量词作用范围:

xP(x)P(a)\forall xP(x)\rightarrow P(a)x(P(x)P(a))\forall x(P(x)\rightarrow P(a))

DD 为个体域,aDa\in DP(x)P(x)DD 上任意一个谓词,则:

(1)任取解释 II
P(a)P(a)II 下为真,则 xP(x)P(a)\forall xP(x)\rightarrow P(a)II 下为真;
P(a)P(a)II 下为假,则 xP(x)\forall xP(x)II 下为假,所以 xP(x)P(a)\forall xP(x)\rightarrow P(a)II 下为假。
因此,xP(x)P(a)\forall xP(x)\rightarrow P(a) 为恒真式。

(2)构造解释 II:设论域 D={1,2}D=\{1,2\}a=1a=1,令 P(1)=0,P(2)=0P(1)=0,P(2)=0,则:

TI(x(P(x)P(a)))=TI((P(1)P(1))(P(2)P(1)))=10=0\begin{aligned}T_I(\forall x(P(x)\rightarrow P(a)))&=T_I((P(1)\rightarrow P(1))\wedge(P(2)\rightarrow P(1)))\\&=1\wedge 0 \\&=0\end{aligned}

因此,x(P(x)P(a))\forall x(P(x)\rightarrow P(a)) 不为恒真式。

综上所述,xP(x)P(a)\forall xP(x)\rightarrow P(a)x(P(x)P(a))\forall x(P(x)\rightarrow P(a)) 不等价。

谓词公式的等价与蕴涵

谓词公式的等价与蕴涵和命题公式类似。因为对任意谓词公式 G,HG,H,在解释 II 下,G,HG,H 就是两个命题,所以命题逻辑中给出的基本等价式在谓词逻辑中仍然成立;同理,命题逻辑中给出的基本蕴涵式在谓词逻辑中也仍然成立。

此外,谓词逻辑还引入了一些新的常用基本等价式与蕴涵式:

定律 基本等价式
量词辖域扩张及收缩律 \\HH 不含约束变元 xx x(G(x)H)=xG(x)Hx(G(x)H)=xG(x)Hx(G(x)H)=xG(x)Hx(G(x)H)=xG(x)H\forall x(G(x)\vee H)=\forall xG(x)\vee H\\ \exists x(G(x)\vee H)=\exists xG(x)\vee H\\ \forall x(G(x)\wedge H)=\forall xG(x)\wedge H\\ \exists x(G(x)\wedge H)=\exists xG(x)\wedge H
量词转化律 ¬xG(x)=x¬G(x)¬xG(x)=x¬G(x)\neg\forall xG(x)=\exists x\neg G(x)\\ \neg\exists xG(x)=\forall x\neg G(x)
量词分配律 xG(x)xH(x)=x(G(x)H(x))xG(x)xH(x)=x(G(x)H(x))\forall xG(x)\wedge\forall xH(x)=\forall x(G(x)\wedge H(x))\\ \exists xG(x)\vee\exists xH(x)=\exists x(G(x)\vee H(x))
量词分配律(改名) xG(x)xH(x)=xy(G(x)H(y))xG(x)xH(x)=xy(G(x)H(y))\forall xG(x)\vee\forall xH(x)=\forall x\forall y(G(x)\vee H(y))\\ \exists xG(x)\wedge\exists xH(x)=\exists x\exists y(G(x)\wedge H(y))
定律 基本蕴涵式
量词分配律 x(A(x)B(x))xA(x)yB(y)xA(x)yB(y)x(A(x)B(x))x(A(x)B(x))xA(x)xB(x)\exists x(A(x)\wedge B(x))\Rightarrow\exists xA(x)\wedge\exists yB(y)\\ \forall xA(x)\vee\forall yB(y)\Rightarrow\forall x(A(x)\vee B(x))\\ \forall x(A(x)\rightarrow B(x))\Rightarrow\forall xA(x)\rightarrow\forall xB(x)

对于谓词公式 A,BA,B,一般有如下证明 ABA\Rightarrow B 的方法:

方法一: 证明 ABA\rightarrow B 是恒真公式。

例:证明 xy(A(x)B(y))xA(x)\exists x\exists y(A(x)\wedge B(y))\Rightarrow\exists xA(x) 为恒真公式。

只需证明 xy(A(x)B(y))xA(x)\exists x\exists y(A(x)\wedge B(y))\rightarrow\exists xA(x) 为恒真公式:

xy(A(x)B(y))xA(x)=xA(x)yB(y)xA(x)=¬xA(x)¬yB(y)xA(x)=(¬xA(x)xA(x))¬yB(y)=1¬yB(y)=1\begin{aligned} &\quad\exists x\exists y(A(x)\wedge B(y))\rightarrow\exists xA(x)\\ &=\exists xA(x)\wedge\exists yB(y)\rightarrow\exists xA(x)\\ &=\neg\exists xA(x)\vee\neg\exists yB(y)\vee\exists xA(x)\\ &=(\neg\exists xA(x)\vee\exists xA(x))\vee\neg\exists yB(y)\\ &=1\vee\neg\exists yB(y)\\ &=1 \end{aligned}

方法二: 由基本等价式和基本蕴涵式推导出 ABA\Rightarrow B.

例:证明 (xA(x)xB(x))x(A(x)B(x))(\exists xA(x)\rightarrow\forall xB(x))\Rightarrow\forall x(A(x)\rightarrow B(x)) 为恒真公式。

xA(x)xB(x)=¬xA(x)xB(x)=x(¬A(x))xB(x)x(¬A(x)B(x))=x(A(x)B(x))\begin{aligned} \exists xA(x)\rightarrow\forall xB(x)&=\neg\exists xA(x)\vee\forall xB(x)\\ &=\forall x(\neg A(x))\vee\forall xB(x)\\ &\Rightarrow\forall x(\neg A(x)\vee B(x))\\ &=\forall x(A(x)\rightarrow B(x)) \end{aligned}

方法三: 任取解释 II,若 II 满足 AA,只需证明 II 也满足 BB.

方法四: 证明 ¬B¬A\neg B\Rightarrow\neg A.

例:证明 x(A(x)B(x))xA(x)xB(x)\exists x(A(x)\vee B(x))\Rightarrow\forall xA(x)\vee\exists xB(x) 为恒真公式。

证法一(方法三):任取解释 II,假设 x(A(x)B(x))\exists x(A(x)\vee B(x))II 下为真,则对 DD 中每个元素 xx,都有 A(x)B(x)A(x)\vee B(x) 为真。

  1. 若对 DD 中某个元素 x0x_0B(x0)B(x_0) 为真,则 x0B(x0)\exists x_0B(x_0) 为真,因此 x0A(x0)x0B(x0)\forall x_0A(x_0)\vee\exists x_0B(x_0) 为真;
  2. 若对 DD 中每个元素 xxB(x)B(x) 均为假,则必然 A(x)A(x) 均为真,即 xA(x)\forall xA(x) 为真,因此 x0A(x0)x0B(x0)\forall x_0A(x_0)\vee\exists x_0B(x_0) 为真。

综上所述,可推得 x(A(x)B(x))xA(x)xB(x)\exists x(A(x)\vee B(x))\Rightarrow\forall xA(x)\vee\exists xB(x).

证法二(方法四):假设存在解释 II 使 x(A(x)B(x))\exists x(A(x)\vee B(x)) 为假,则 xA(x)\forall xA(x)xB(x)\exists xB(x) 均为假,即 DD 中存在元素 x0x_0,使 A(x0)A(x_0) 为假,且对 DD 中任意元素 xxB(x)B(x) 均为假,于是 A(x0)B(x0)A(x_0)\vee B(x_0) 为假,所以 x(A(x)B(x))\exists x(A(x)\vee B(x))II 下为假。

因此,x(A(x)B(x))xA(x)xB(x)\exists x(A(x)\vee B(x))\Rightarrow\forall xA(x)\vee\exists xB(x).

前束范式

如果量词均在公式的开头,并且它们的作用域延伸到整个公式的末端,则该公式被称作前束范式(prenex normal form),它的形式如下:

Q1x1Q2x2QnxnM,i=1,2,,nQ_1x_1Q_2x_2\cdots Q_nx_nM,\quad i=1,2,\cdots,n

其中 QixiQ_ix_ixi\forall x_ixi\exists x_i 中的一种,MM 是不含量词的公式,我们将 Q1x1Q2x2QnxnQ_1x_1Q_2x_2\cdots Q_nx_n 称为首标,将 MM 称为母式

定理: 对任何公式 GG,都存在与其等价的前束范式。

通过如下算法,可将公式 GG 化为与其等价的前束范式:

  1. 使用基本等价式,将 GG 中的 \leftrightarrow\rightarrow 删除:

(KH)=(KH)(HK)(KH)=¬KH\begin{aligned}(K\leftrightarrow H)&=(K\rightarrow H)\wedge(H\rightarrow K)\\ (K\rightarrow H)&=\neg K\vee H\end{aligned}

  1. 使用 ¬(¬H)=H\neg(\neg H)=H,De Morgan 律和量词转化律,将 GG 中的所有否定号 ¬\neg 都放在原子之前。

  2. 如果必要的话,对约束变元进行改名。

  3. 使用量词辖域扩张与分配律将所有量词都提到 GG 的最左边。

Skolem(斯科伦)范式

如果公式 GG 是前束范式,并且可以消除它的所有存在量词,生成与原公式可满足性等价(并不一定等价) 的公式 SS,则称公式 GG 可以 Skolem 化(Skolemization),消除存在量词后得到的公式 SS 称作 Skolem 范式(Skolem normal form)

所谓可满足性等价,可以理解为以下两点:

  1. 满足 SS 的解释满足 GG
  2. 满足 GG 的解释,适当扩充后可满足 SS.

Q1x1Q2x2QnxnMQ_1x_1Q_2x_2\cdots Q_nx_nM 式与 GG 等价的前束范式,并且 MM 为合取范式形式,通过如下规则对 GG 进行 Skolem 化:

  1. QrQ_r 是存在量词,并且它左边没有全称量词,则取异于 MM 中所有个体常元的常元 cc,并用 cc 代替 MM 中所有的 xrx_r,然后在首标中删除 QrxrQ_rx_r.

  2. Qs1,Qs2,,Qsm (m1,1s1<s2<<sm<r)Q_{s_1},Q_{s_2},\cdots,Q_{s_m}\ (m\geq 1,1\leq s_1<s_2<\cdots<s_m<r) 是所有出现在 QrxrQ_rx_r 左边的全称量词,则取异于 MM 中所有函数的 mm 元函数 f(xs1,xs2,,xsm)f(x_{s_1},x_{s_2},\cdots,x_{s_m}),用该函数代替 MM 中所有的 xrx_r,然后在首标中删除 QrxrQ_rx_r.

用于代替 xrx_r 的常元和函数称为公式 GGSkolem 函数

例:将下面公式化为 Skolem 范式:

xy(A(x)B(x,y))(yC(y)zD(z))\forall x\forall y(A(x)\to B(x,y))\to(\exists yC(y)\to\exists zD(z))

先将其化成母式为合取范式的前束范式:

xytz[(A(x)¬C(t)D(z))(¬B(x,y)¬C(t)D(z))]\exists x\exists y\forall t\exists z[(A(x)\vee\neg C(t)\vee D(z))\wedge(\neg B(x,y)\vee\neg C(t)\vee D(z))]

aa 代替 xx,用 bb 代替 yy,用 f(t)f(t) 代替 zz,即可得到公式的 Skolem 范式:

t[(A(a)¬C(t)D(f(t)))(¬B(a,b)¬C(t)(f(t)))]\forall t[(A(a)\vee\neg C(t)\vee D(f(t)))\wedge(\neg B(a,b)\vee\neg C(t)\vee(f(t)))]

定理:SS 为公式 GG 的 Skolem 范式,则公式 GG 恒假的充要条件是公式 SS 恒假。(恒假性等价)

证明:

假设 GG 恒假,而 SS 可满足,由 GGSS 的可满足性等价可知,GG 应该是可满足的,产生了矛盾;
假设 SS 恒假,而 GG 可满足,由 GGSS 的可满足性等价可知,GG 应该是可满足的,也产生了矛盾。

故该定理成立。

例:假设 xyM(x,y)\exists x\forall yM(x,y) 是公式 GG 的前束范式,其中 M(x,y)M(x,y) 是仅仅包含变量 x,yx,y 的母式。设 ff 是不出现在 M(x,y)M(x,y) 中的函数符号,证明:GG 是恒真的当且仅当 xM(x,f(x))\exists xM(x,f(x)) 是恒真的。

分析:要证明 GG 恒真当且仅当 xM(x,f(x))\exists xM(x,f(x)) 恒真,只需证明 ¬G\neg G 恒假当且仅当 ¬xM(x,f(x))\neg\exists xM(x,f(x)) 恒假。

证:因为

¬G=xy(¬M(x,y))¬xM(x,f(x))=x(¬M(x,f(x)))\begin{aligned} \neg G&=\forall x\exists y(\neg M(x,y))\\ \neg\exists xM(x,f(x))&=\forall x(\neg M(x,f(x))) \end{aligned}

又因为 x(¬M(x,f(x)))\forall x(\neg M(x,f(x)))¬G\neg G 的 Skolem 范式,所以二者恒假性等价,原命题得证。

高阶逻辑概述

在之前,我们所使用的谓词逻辑都处在一阶逻辑系统下,但一些命题并不能用一阶逻辑来确切表述。例如:设 G(x)G(x) 是一元谓词,则命题“对任意一元谓词 G(x)G(x),命题 xG(x)\forall xG(x) 都为真。”应当用“公式 G(xG(x))\forall G(\forall xG(x)) 为恒真式”来表述,这就是一个典型的高阶逻辑命题。

在公式 G(xG(x))\forall G(\forall xG(x)) 中,不仅有关于个体变元 xx 的量词,还有关于谓词符号的量词,由这样的公式所组成的逻辑系统就被称为高阶逻辑。在高阶逻辑中,不仅判定问题不可解,甚至连一个完备的公理系统都没有。

集合代数

集合论所讨论和研究的对象是集合(set),所谓集合,是我们将一系列客体的总和而考虑为的一个整体,这些客体叫作该集合的元素(element),若有一个集合 AA 和一个元素 aa,并且集合 AA 包含元素 aa,可以记作 aAa\in A

集合的性质:

  1. 确定性:任何一个对象,要么是这个集合的元素,要么不是。

  2. 互异性:集合中不允许出现重复的元素。

  3. 无序性:我们不考虑集合中元素的顺序。

  4. 多样性:集合中的元素可以是任意的对象,相互独立,不要求一定要具备明显的相同特征。

集合的常见定义:

  1. 空集(empty set):一个没有任何元素的集合,记作 \emptyset\varnothing{}\{\},空集是唯一的,并且是任何集合的子集。

  2. 全集(univerasal set):所讨论的对象的全体组成的集合,记作 EEUU

  3. 有限集(finite set):包含有限个元素的集合,元素数(基数)表示为 A|A|

  4. 无限集(finite set):包含无限个元素的集合。

  5. 相等集合:当两个集合所包含的元素完全一样,则称这两个集合相等。

  6. 子集(subset):设 A,BA,B 是两个集合,若 AA 的元素都是 BB 的元素,则称 AABB 的子集,也称 AA 包含于 BB,记作 ABA\subseteq B

  7. 真子集(proper subset):设 A,BA,B 是两个集合,若 ABA\subseteq BABA\neq B,则称 AABB 的真子集,也称 AA 真包含于 BB,记作 ABA\subset B

常见的集合表示法:

  1. 列举法:将集合中的元素一一列举,或列出足够多的元素以反映集合中元素的特征。

  2. 描述法:通过描述集合中元素的共同特征来表示集合:

A={xx的特征}A=\{x|x的特征\}

  1. 文氏图(又称韦恩图,Venn diagram):

康托尔的朴素集合论公理

1. 外延公理:
任意两个集合相等,当且仅当它们中的各个元素都是相同的。

2. 抽象公理:
任给一个性质,都有一个满足该性质的对象所组成的集合。

3. 选择公理:
每个集合都有一个选择函数。

康托尔的朴素集合论公理看上去很美好,但是罗素悖论(Russell’s paradox) 的出现推翻了抽象公理,这里不作过多介绍。

集合的运算

1. 交集(intersection):
A,BA,B 是两个集合,所有属于 AA 并且属于 BB 的元素组成的集合,称为 AABB 的交集。

AB={xxAxB}A\cap B=\{x|x\in A\wedge x\in B\}

2. 并集(union):
A,BA,B 是两个集合,所有属于 AA 或属于 BB 的元素组成的集合,称为 AABB 的并集。

AB={xxAxB}A\cup B=\{x|x\in A\vee x\in B\}

并集和交集拥有对应的推广运算:

A1,A2,,AnA_1,A_2,\cdots,A_nnn 个集合,则

A1A2Ani=1nAiA_1\cup A_2\cup\cdots\cup A_n\Leftrightarrow\bigcup_{i=1}^nA_i

A1A2Ani=1nAiA_1\cap A_2\cap\cdots\cap A_n\Leftrightarrow\bigcap_{i=1}^nA_i

3. 差集(difference):
A,BA,B 是两个集合,所有属于 AA 但不属于 BB 的元素组成的集合,称为 AABB 的差集。

AB={xxA 且 xB}A-B=\{x|x\in A\ 且\ x\notin B\}

4. 补集(complement):
AA 是一个集合,全集 EEAA 的差集称为 AA 的补集或余集,记作 A\overline A

A=EA\overline A = E - A

补集和差集的关系:AB=ABA-B=A\cap\overline B

5. 对称差(symmetric difference):
A,BA,B 是两个集合,则它们的对称差(环和)类似于布尔代数中的异或运算:

AB=(AB)(BA)=(AB)(AB)A\oplus B=(A-B)\cup(B-A)=(A\cup B)-(A\cap B)

6. 幂集(power set):
指的是一个集合的所有子集所组成的新的集合,集合 AA 的幂集记作 ρ(A)\rho(A)2A2^A

定理:AA 为有限集,则

ρ(A)=Cn0+Cn1++Cnn=2n|\rho(A)|=C_n^0+C_n^1+\cdots+C_n^n=2^n

推论 1: xρ(A)x\in\rho(A) 的充要条件为 xAx\subseteq A

推论 2:A,BA,B 是两个集合,ABA\subseteq B 的充要条件为 ρ(A)ρ(B)\rho(A)\subseteq\rho(B)

基本运算律:

运算律 公式
幂等律 AA=AAA=AA\cap A=A\\ A\cup A=A
交换律 AB=BAAB=BAA\cap B=B\cap A\\ A\cup B=B\cup A
结合律 (AB)C=A(BC)(AB)C=A(BC)(A\cap B)\cap C=A\cap(B\cap C)\\ (A\cup B)\cup C=A\cup(B\cup C)
分配律 A(BC)=(AB)(AC)A(BC)=(AB)(AC)A\cap(B\cup C)=(A\cap B)\cup(A\cap C)\\ A\cup(B\cap C)=(A\cup B)\cap(A\cup C)
吸收律 A(AB)=AA(AB)=AA\cap(A\cup B)=A\\ A\cup(A\cap B)=A
互补律 AA=AA=EA\cap\overline A=\emptyset\\ A\cup\overline A=E
De Morgan 律 (AB)=AB(AB)=AB\overline{(A\cap B)}=\overline A\cup\overline B\\ \overline{(A\cup B)}=\overline A\cap\overline B
同一律 EA=AA=AE\cap A=A\\ \emptyset\cup A=A
零一律 A=EA=E\emptyset\cap A=\emptyset\\ E\cup A=E
双重否定律 A=A\overline{\overline A}=A

与集合有关的证明

证明集合的包含关系:

利用上面我们所了解的集合基本概念,我们可以尝试证明集合的包含关系,常见的有以下几种证法:

方法一: 利用定义来证明集合的包含关系。

要证明 ABA\subseteq B,首先任取 xAx\in A,再演绎地证出 xBx\in B 成立。特别地,当 AA 是无限集时,因为我们不能对 xAx\in A,逐一地证明 xBx\in B 成立,所以证明 xx 是任取的就至关重要。

方法二: 利用包含关系的传递性。

设法找到一个集合 TT,满足 ATA\subseteq TTBT\subseteq B,由包含关系的传递性可得 ABA\subseteq B

方法三: 利用 ABA\subseteq B 的等价定义:

AB=B    AB=A    AB=A\cup B=B\iff A\cap B=A\iff A-B=\emptyset

方法四: 利用已知包含式的并、交等运算符得到新的包含式。

例:证明若 ACBCA\cap C\subseteq B\cap CACBCA-C\subseteq B-C,则 ABA\subseteq B.

证:

(AC)(AC)(BC)(BC)(AC)(AC)(BC)(BC)A(CC)B(CC)AEBEAB\begin{aligned} (A\cap C)\cup(A-C)&\subseteq(B\cap C)\cup(B-C)\\ (A\cap C)\cup(A\cap\overline C)&\subseteq(B\cap C)\cup(B\cap\overline C)\\ A\cap(C\cap\overline C)&\subseteq B\cap(C\cap\overline C)\\ A\cap E&\subseteq B\cap E\\ A&\subseteq B \end{aligned}

方法五: 反证法:

例:证明若 ACBCA\cap C\subseteq B\cap CACBCA-C\subseteq B-C,则 ABA\subseteq B.

证:若不然,则有 xAx\in AxBx\notin B
xCx\in C,则 xACx\in A\cap CxBCx\notin B\cap C,与 ACBCA\cap C\subseteq B\cap C 矛盾;
xCx\notin C,则 xACx\in A-CxBCx\notin B-C,与 ACBCA-C\subseteq B-C 矛盾,
因此 ABA\subseteq B.

证明集合的相等关系:

方法一: 利用定义来证明集合的相等关系。

A,BA,B 是有限集,证明 A=BA=B 可通过逐一比较两集合所有元素均一一对应相等;若 A,BA,B 是无限集,通过证明集合包含关系的方法证 ABBAA\subseteq B\wedge B\subseteq A 即可。

方法二: 反证法。

方法三: 利用集合算律和集合等式。

利用集合的基本算律以及已证明的集合等式,通过相等变换将待证明的等式左(右)边的集合化到右(左)边的集合,或者两边同时相等变换到同一集合。

二元关系

有序对与笛卡尔积

在介绍二元关系之前,我们首先来了解一下有序n元组(ordered n-tuples),按一定顺序依次给出 nn 个客体 x1,x2,,xnx_1,x_2,\cdots,x_n,由它们组成有序n元组 (x1,x2,,xn)(x_1,x_2,\cdots,x_n),通俗点说——有序n元组就是将顺序作为属性一部分的集合。

两个有序n元组 (x1,x2,,xn)(x_1,x_2,\cdots,x_n)(y1,y2,,yn)(y_1,y_2,\cdots,y_n) 相等的充要条件是对任意 i{1,2,,n}i\in\{1,2,\cdots,n\},皆有 xi=yix_i=y_i。元素相同但次序不同的有序n元组一般是不相等的。

对于有序n元组,当 n=2n=2 时,将其称作有序二元组,也称作有序对序偶。若 aba\neq b,则 (a,b)(b,a)(a,b)\neq(b,a),两个有序对 (a,b)(a,b)(b,a)(b,a) 相等的充要条件是 a=c,b=da=c,b=d

笛卡尔积:

有了有序对的概念,接下来我们引入一种新的运算,称作笛卡尔积直积,下面这种运算被称作二元笛卡尔积:

A×B={(x,y)xAyB}A\times B=\{(x,y)|x\in A\wedge y\in B\}

同理还有三元笛卡尔积等等:

A×B×C={(x,y,z)xAyBzC}A\times B\times C=\{(x,y,z)|x\in A\wedge y\in B\wedge z\in C\}

下面我们所说的笛卡尔积皆为二元笛卡尔积。

笛卡尔积有以下性质:

  1. A=m,B=b|A|=m,|B|=b,则 A×B=A×B=mn|A\times B|=|A|\times|B|=mn
  2. 对任意集合 AA,有 A×=A\times\emptyset=\emptyset×A=\emptyset\times A=\emptyset
  3. 笛卡尔积不满足交换律,即 A×BB×AA\times B\neq B\times A
  4. 笛卡尔积不满足结合律,即 (A×B)×CA×(B×C)(A\times B)\times C\neq A\times(B\times C)
  5. 直积运算对并和交运算满足分配律:

A×(B×C)=(A×B)(A×C)(BC)×A=(B×A)(C×A)A×(BC)=(A×B)(A×C)(BC)×A=(B×A)(C×A)A\times(B\times C)=(A\times B)\cup(A\times C)\\ (B\cup C)\times A=(B\times A)\cup(C\times A)\\ A\times(B\cap C)=(A\times B)\cap(A\times C)\\ (B\cap C)\times A=(B\times A)\cap(C\times A)

  1. A,B,C,DA,B,C,D 是集合,若 ACA\subseteq CBDB\subseteq D,则 A×BC×DA\times B\subseteq C\times D

关系的定义

A1,A2,,AnA_1,A_2,\cdots,A_nnn 个集合,集合 A1×A2××AnA_1\times A_2\times\cdots\times A_n 的一个子集 FF 称为 A1,A2,,AnA_1,A_2,\cdots,A_n 上的一个 n\bm n 元关系

特别地,集合 A×BA\times B 的一个子集 RR,称为集合 AABB 上的一个二元关系,简称为关系

对于 xA,yBx\in A,y\in B

  • (x,y)R(x,y)\in R,则称 x,yx,y 有关系 RR,记作 xRyxRy
  • (x,y)R(x,y)\notin R,则称 x,yx,y 没有关系 RR,记作 xRyx\cancel Ry

A\bm A 上的二元关系:

A=BA=B,则称 RRAA 上的二元关系。

  1. A×AA\times A 的任一子集都是 AA 上的一个关系。
  2. A=n|A|=n,则 AA 上的关系又有 2n22^{n^2} 个。
  3. AA 上的三种特殊关系:
    空关系:\emptyset
    全域关系:EA=A×AE_A=A\times A
    恒等关系:IA={(x,x)xA}I_A=\{(x,x)|x\in A\}
  4. R=EAR=A×AR\overline R=E_A-R=A\times A-R

关系的表示法

集合表示法: 直接使用定义,这种表示法便于书写。

例:设 A={1,2,3,4}A=\{1,2,3,4\}AA 上的一个关系可以表示为

R={(1,1),(1,2),(1,3),(2,1),(2,2)}R=\{(1,1),(1,2),(1,3),(2,1),(2,2)\}

关系矩阵(relation matrix)表示法: 这种表示法便于存储。

给定两个有限集合 A={a1,,am},B={b1,,bn}A=\{a_1,\cdots,a_m\},B=\{b_1,\cdots,b_n\}RRAABB 上的一个二元关系,则可以用以下关系矩阵 MR=[rij]m×nM_R=[r_{ij}]_{m\times n} 来表示 RR

[r11r12r1nr21r22r2nrm1rm2rmn]\begin{bmatrix} r_{11}&r_{12}&\cdots&r_{1n}\\ r_{21}&r_{22}&\cdots&r_{2n}\\ \vdots&\vdots&&\vdots\\ r_{m1}&r_{m2}&\cdots&r_{mn} \end{bmatrix}

其中若 (ai,bj)R(a_i,b_j)\in R,则 rij=1r_{ij}=1;否则 rij=0r_{ij}=0.

关系矩阵表示与矩阵的行列对应的集合。

关系图(digraph of relations)表示法: 这种表示法较为直观清晰。

给定两个有限集合 A={a1,,am},B={b1,,bn}A=\{a_1,\cdots,a_m\},B=\{b_1,\cdots,b_n\}RRAABB 的一个二元关系。

首先在平面上作 mm 个结点代表 a1,,ama_1,\cdots,a_m,再另外作 nn 个结点代表 b1,,bnb_1,\cdots,b_n.

关系(有向)图常用来表示 A×AA\times A 的子集,即 AA 上的关系。令集合 AA 中的每个元素对应图中的一个点吗,AA 上关系 RR 中的每个有序对 (a,b)(a,b) 在图中表示为有从 aabb 的一条有向弧。

关系图示例

关系的运算

关系是集合的一种,所以处理集合的方法对关系都是有效的,因此我们也可以为关系定义一套类似于集合的运算。

1. 关系的交:
对任意 x,yAx,y\in A,有

x(RS)y    (x,y)RS    (x,y)R 并且 (x,y)S    xRy 并且 xSy\begin{aligned} x(R\cap S)y&\iff(x,y)\in R\cap S\\ &\iff(x,y)\in R\ 并且\ (x,y)\in S\\ &\iff xRy\ 并且\ xSy \end{aligned}

RS={(x,y)xA,yA,xRyxSy}R\cap S=\{(x,y)|x\in A,y\in A,xRy\wedge xSy\}

2. 关系的并:
对任意 x,yAx,y\in A,有

x(RS)y    (x,y)RS    (x,y)R 或 (x,y)S    xRy 或 xSy\begin{aligned} x(R\cup S)y&\iff(x,y)\in R\cup S\\ &\iff(x,y)\in R\ 或\ (x,y)\in S\\ &\iff xRy\ 或\ xSy \end{aligned}

RS={(x,y)xA,yA,xRyxSy}R\cup S=\{(x,y)|x\in A,y\in A,xRy\vee xSy\}

3. 关系的差:
对任意 x,yAx,y\in A,有

x(RS)y    (x,y)RS    xRy 并且 xSy\begin{aligned} x(R-S)y&\iff(x,y)\in R-S\\ &\iff xRy\ 并且\ x\cancel Sy \end{aligned}

RS={(x,y)xA,yA,xRyxSy}R-S=\{(x,y)|x\in A,y\in A,xRy\wedge x\cancel Sy\}

4. 关系的余:
对任意 x,yAx,y\in A,有

xRy    (x,y)R    xRy\begin{aligned} x\overline Ry&\iff(x,y)\in\overline R\\ &\iff x\cancel Ry \end{aligned}

R=A×AR={(x,y)xA,yA,xRy}\overline R=A\times A-R=\{(x,y)|x\in A,y\in A,x\cancel Ry\}

5. 子关系:
R,SR,S 是集合 AA 上的两个关系,若 RSR\subseteq S,则称 RRSS 的子关系。

  • 从集合的角度:RRSS 的子集。
  • 从关系矩阵的角度:MRM_R11 的地方,MSM_S 一定也为 11
  • 从关系图的角度:RR 关系图中有的弧,SS 关系图中一定也有。

6. 逆关系:
RR 是集合 AA 上的一个关系,称 R1R^{-1}RR 的逆关系:

R1={(y,x)xA,yA,并且 xRy}R^{-1}=\{(y,x)|x\in A,y\in A,并且\ xRy\}

xR1y    (x,y)R1    yRxxR^{-1}y\iff(x,y)\in R^{-1}\iff yRx

  • 从集合的角度:将 RR 的每个有序对的顺序颠倒过来得到 R1R^{-1}
  • 从关系矩阵的角度:MR1M_R^{-1}MRM_R 的转置矩阵。
  • 从关系图的角度:将 RR 关系图中每条有向弧的方向反过来得到 R1R^{-1} 的关系图。

7. 关系的乘积:
R,SR,S 是集合 AA 上的两个关系,称 RSR\cdot S 为关系 RRSS 的乘积或合成:

RS={(x,y)xA,yA,并且存在 zA 使得 xRz,zSy}R\cdot S=\{(x,y)|x\in A,y\in A,并且存在\ z\in A\ 使得\ xRz,zSy\}

  • AA 上任意的关系 RR,有

RIA=IAR=RR\cdot I_A=I_A\cdot R=R

  • 从关系矩阵的角度:若对 {0,1}\{0,1\} 中的元素的加法使用逻辑加,则对 AA 上的任意关系 R,SR,S,都有:

MRS=MRMSM_{R\cdot S}=M_R\cdot M_S

  • 从关系图的角度:将 R,SR,S 关系图中由两条方向一致的弧连接起来的元素改为用一条弧连接。

例:证明 (RS)TR(ST)(R\cdot S)\cdot T\subseteq R\cdot(S\cdot T)

证:任取 (x,y)(RS)T(x,y)\in(R\cdot S)\cdot T,即 x(RS)Tyx(R\cdot S)\cdot Ty
由关系乘积的定义可知,存在 zAz\in A 使得

x(RS)z,zTyx(R\cdot S)z,\quad zTy

同样对 x(RS)zx(R\cdot S)z,存在 zAz'\in A 使得

xRz,zSzxRz',\quad z'Sz

故由 zSzz'SzzTyzTy 可知 z(ST)yz'(S\cdot T)y
又由 xRzxRz'xR(ST)yxR\cdot(S\cdot T)y,即 (x,y)R(ST)(x,y)\in R\cdot(S\cdot T)
又因为 (x,y)(RS)T(x,y)\in(R\cdot S)\cdot T,综上所述,原式成立。

8. 关系的幂:
由于关系的乘法运算满足结合律,因此可以用“幂”表示集合 AA 上同一个关系的乘积,有:

Rn=RRRn×RR^n=\underbrace{R\cdot R\cdot\cdots\cdot R}_{n\times R}

关系的幂满足如下定义:

{R0=IARn+1=RnR,nN\left\{\begin{aligned} &R^0=I_A\\ &R^{n+1}=R^n\cdot R,\quad n\in N \end{aligned}\right.

关系的幂具有以下基本性质:

  • RRAA 上的关系,m,nm,n 为任意自然数,有

RmRn=Rm+n(Rm)n=RmnR^m\cdot R^n=R^{m+n}\\ (R^m)^n=R^{mn}

  • 设集合 AA 的元素数为 nnRRAA 上的二元关系,那么存在自然数 i,j (0i<j2n2)i,j\ (0\leq i<j\leq 2^{n^2}) 使得 Ri=RjR^i=R^j.

  • RR 是集合 AA 上的关系,若存在自然数 i,j (i<j)i,j\ (i<j),使得 Ri=RjR^i=R^j,则有

Ri+k=Rj+k,kNRi+kp+m=Ri+m,k,mN,p=jiR^{i+k}=R^{j+k},\quad k\in N\\ R^{i+kp+m}=R^{i+m},\quad k,m\in N,p=j-i

证明:Ri+kp+m=Ri+mR^{i+kp+m}=R^{i+m},其中 k,mN,p=jik,m\in N,p=j-i

Ri+kp+m=Ri+(ji)+(k1)(ji)+m=Rj+(k1)(j1)+m=Ri+(k1)(ji)+m=Ri+(ji)+(k2)(ji)+m=Rj+(k2)(ji)+m=Ri+(k2)(ji)+m  =Ri+(ji)+m=Rj+m=Ri+m\begin{aligned} R^{i+kp+m}&=R^{i+(j-i)+(k-1)(j-i)+m}=R^{j+(k-1)(j-1)+m}\\ &=R^{i+(k-1)(j-i)+m}=R^{i+(j-i)+(k-2)(j-i)+m}\\ &=R^{j+(k-2)(j-i)+m}=R^{i+(k-2)(j-i)+m}\\ &\ \ \vdots\\ &=R^{i+(j-i)+m}=R^{j+m}=R^{i+m} \end{aligned}

特殊关系

1. 自反关系(reflexive):
集合 AA 上有关系 RR,对于每一个 xAx\in A,都有 xRxxRx.

  • RR 是自反的     \iff IARI_A\subseteq R     \iff R1R^{-1} 是自反的
  • 从关系矩阵的角度:MRM_R 的主对角线元素都为1。
  • 从关系图的角度:RR 的关系图中每一点均有到自身的弧。

2. 反自反关系(irreflexive):
集合 AA 上有关系 RR,对于每一个 xAx\in A,都有 xRxx\cancel Rx.

  • RR 是反自反的     \iff IAR=I_A\cap R=\emptyset
  • 从关系矩阵的角度:MRM_R 的主对角线元素都为0。
  • 从关系图的角度:RR 的关系图中每一点均没有到自身的弧。

3. 对称关系(symmetric):
集合 AA 上有关系 RR,如果 xRy (xA,yA)xRy\ (x\in A,y\in A),都有 yRxyRx.

  • RR 是对称的     \iff R1=RR^{-1}=R
  • 从关系矩阵的角度:MRM_R 为对称矩阵。
  • 从关系图的角度:RR 的关系图中不同的两点间若有弧相连,则必定是成对出现的。

4. 反对称关系(antisymmetric):
集合 AA 上有关系 RR,如果 xRy,yRxxRy,yRx,则必有 x=yx=y;或者说,如果 xRy,xyxRy,x\neq y,则必有 yRxy\cancel Rx.

  • RR 是反对称的     \iff RR1IAR\cap R^{-1}\subseteq I_A
  • 从关系矩阵的角度:MRM_R 中以主对角线为对称的元素都不同时为1。
  • 从关系图的角度:RR 的关系图中任意两个不同点之间的有向弧都不成对出现。

5. 传递关系(transitive):
集合 AA 上有关系 RR,对于 xA,yA,zAx\in A,y\in A,z\in A,如果 xRy,yRzxRy,yRz,则必有 xRzxRz.

  • RR 有传递性     \iff R2RR^2\subseteq R
  • 从关系矩阵的角度:如果 MR2M_{R^2} 中某元素 sij=1s_{ij}=1,那么 MRM_R 相应位置元素 rijr_{ij} 也一定为1.
  • 从关系图的角度:RR 的关系图中的任意三点 a,b,ca,b,c,若存在 aabb 的有向弧,bbcc 的有向弧,则必然存在 aacc 的有向弧。
关系名称 拥有的特殊关系
空集上的空关系 \emptyset 自反、反自反、对称、反对称、传递
非空集合上的空关系 \emptyset 反自反、对称、反对称、传递
恒等关系 IA (A>0)I_A\ (|A|>0) 自反、对称、反对称、传递
全域关系 EA (A>1)E_A\ (|A|>1) 自反、对称、传递

关系的闭包

所谓闭包,指的就是对原关系的序偶进行一些扩充,使得原关系满足某种特殊性质,并且要求对原关系的改动最小化。

AA 是非空集合,RRAA 上的二元关系。称 RR'RR 的自反/对称/传递闭包,RR' 满足:

  1. RR' 是自反/对称/传递的。
  2. RRR\subseteq R'
  3. AA 上的任意关系 RR'',若 RRR\subseteq R'',且 RR'' 是自反/对称/传递的,则必有 RRR'\subseteq R''.

RR 的自反/对称/传递闭包分别记作 r(R),s(R),t(R)r(R),s(R),t(R),称此处的 r,s,tr,s,t闭包运算

闭包定理:

  1. r(R)=IARr(R)=I_A\cup R
  2. s(R)=RR1s(R)=R\cup R^{-1}
  3. t(R)=i=1Ri\displaystyle t(R)=\bigcup_{i=1}^\infty R^i (直到 RiR^i 为空集为止)

等价关系与等价类

AA 是一个非空集合,RRAA 上的二元关系。如果 RR 同时具有自反、对称、传递性,则称 RR 是一个等价关系(equivalence relation),通常记作 \cong

AA 是一个非空集合,RRAA 上的等价关系。AA 的一个非空子集 MM 叫作关于 RR 的一个等价类,其满足

  1. aM,bMa\in M,b\in M,则 aRbaRb
  2. aM,bMa\in M,b\notin M,则 aRba\cancel Rb
    aM,aRba\in M,aRb,则 bMb\in M

可以将等价类看作是拥有某一共同特征的元素组成的集合,等价关系即为集合中的元素所拥有的关系。

通常,用 [a]R[a]_R 表示包含元素 aa 的等价类,aa 称为该等价类的代表元

[a]R={x(x,a)R}[a]_R=\{x|(x,a)\in R\}

定理1:\cong 是非空集合 AA 上的等价关系,于是等价类是存在的。

证明:任取 aAa\in A,令 M={xxA 并且 xa}M=\{x|x\in A\ \text{并且}\ x\cong a\}

(1)显然,aMa\in MMM 非空。

(2)任取 x1M,x2Mx_1\in M,x_2\in M,则有 x1a,x2ax_1\cong a,x_2\cong a,而 \cong 具有对称性和传递性,所以 x1x2x_1\cong x_2.

(3)任取 x1Mx_1\in M,若 x1yx_1\cong y,则由 x1ax_1\cong a\cong 具有对称性和传递性,可得 yay\cong a,所以 yMy\in M.

综上所述,可以认为 MM 为关于 \cong 的一个等价类。

定理2:\cong 是非空集合 AA 上的等价关系,M1,M2,M_1,M_2,\cdotsAA 中关于 \cong 的所有等价类,则有

A=M1M2A=M_1\cup M_2\cup\cdots

并且

MiMj=(ij)M_i\cap M_j=\emptyset\quad(i\neq j)

换句话说,集合 AA 上的等价关系把 AA 分成了互不相交的等价类。

证明:

任取 Mi,Mj,ijM_i,M_j,i\neq j,假设 MiMjM_i\cap M_j\neq\emptyset,则必然存在 xMiMjx\in M_i\cap M_j.
任取 aMia\in M_ibMjb\in M_j,都有 aMia\cong M_ibMjb\cong M_j,所以 aba\cong b,即 Mi=MjM_i=M_j,产生矛盾,
所以 MiMj=M_i\cap M_j=\emptyset

任取 aAa\in A,令 M={xxA 并且 xa}M=\{x|x\in A\ \text{并且}\ x\cong a\},由定理1可知,MM 是一个等价类,故必然存在 kk,使得 Mk=MM_k=M
因为 aMa\in M,所以 aM1M2Mka\in M_1\cup M_2\cup\cdots\cup M_k\cup\cdots,即 AM1M2A\subseteq M_1\cup M_2\cup\cdots
又易得 M1M2AM_1\cup M_2\cup\cdots\subseteq A
所以 A=M1M2A=M_1\cup M_2\cup\cdots

划分与商集

称集合 AA子集族 CCAA划分(partition),如果满足以下条件:

  1. BCB\in C,则 BB\neq\emptyset
  2. BCB=A\displaystyle\bigcup_{B\in C}B=A
  3. 对任意的 BBBCB'\in C,若 BBB\neq B',则 BB=B\cap B'=\emptyset

则称 CC 中元素为划分的单元,或划分块

我们规定,A=A=\emptyset 时只有划分 \emptyset

RR 是非空集合 AA 上的等价关系,以 RR所有不同等价类为元素作成的集合称为 AA 关于 RR商集(quotient set),简称 AA 的商集,记作 A/RA/R

划分和等价关系能由以下定理联系在一起:

  1. AA 为非空集合,RRAA 上的任意一个等价关系,则对应的商集 A/RA/R 恰为 AA 的一个划分。
  2. AA 为非空集合,CCAA 的任意一个划分,令 RC={(x,y)x,yA 并且 x,y 属于 C 的同一划分块}R_C=\{(x,y)|x,y\in A\ \text{并且}\ x,y\ \text{属于}\ C\ \text{的同一划分块}\},则 RCR_CAA 上的等价关系。

IA,EA,RijI_A,E_A,R_{ij} 均为等价关系,并且用它们划分集合 AA 可以得:

A/IA={{a1},{a2},,{an}}A/EA={{a1,a2,,an}}A/Rij={{ai,aj},{ak1},{ak2},,{akn2}}\begin{aligned} A/I_A&=\left\{ \{ a_1 \},\{ a_2 \},\cdots,\{ a_n \} \right\}\\ A/E_A&=\left\{ \{ a_1,a_2,\cdots,a_n \} \right\}\\ A/R_{ij}&=\left\{ \{ a_i,a_j \},\{ a_{k_1} \},\{ a_{k_2} \},\cdots,\{ a_{k_{n-2}} \} \right\} \end{aligned}

其中 k1,k2,,kn2k_1,k_2,\cdots,k_{n-2} 均不等于 iijj,共有 Cn2C_n^2 个这样的关系 RijR_{ij}

等价关系 \bm\Rightarrow 商集:
关键:求出该等价关系下集合 AA 的每个元素所在的等价类。

例:A={a,b,c}A=\{a,b,c\}AA 的一个等价关系 IAI_A,求 A/IAA/I_A

IA={(a,a),(b,b),(c,c)}[a]IA=a,[b]IA=b,[c]IA=cA/IA={{a},{b},{c}}\begin{aligned} &I_A=\{(a,a),(b,b),(c,c)\}\\ &[a]_{I_A}={a},[b]_{I_A}={b},[c]_{I_A}={c}\\ &A/I_A=\left\{\{ a\},\{b\},\{c\}\right\} \end{aligned}

商集 \bm\Rightarrow 等价关系:
关键:R=IA{(),(),}R=I_A\cup\{(),(),\cdots\}

例:A={a,b,c}A=\{a,b,c\}AA 的一个商集 A/R={{a},{b,c}}A/R=\left\{\{a\},\{b,c\}\right\},求对应的等价关系 RR

R={(a,a),(b,b),(c,c),(b,c),(c,b)}=IA{(b,c),(c,b)}\begin{aligned} R&=\{(a,a),(b,b),(c,c),(b,c),(c,b)\}\\ &=I_A\cup\{(b,c),(c,b)\} \end{aligned}

划分的加细:

CCCC' 都是集合 AA 的划分,若 CC 的每个划分块都包含于 CC' 的某个划分块中,则称 CCCC'加细(refinement)

定理: CCCC' 的加细当且仅当 RCRCR_C\subseteq R_{C'}.

第二类斯特林(Stirling)数:

第二类斯特林数用于研究将元素划分成若干集合,每个集合非空的方案数,因此又称斯特林子集数。用 {nm}\begin{Bmatrix}n\\m\end{Bmatrix} 表示将 nn 个元素划分成 mm 个集合,读作 nn 子集 mm

我们能发现第二类斯特林数的几个特例:

{n0}=0,{n1}=1,{n2}=2n11,{nn1}=Cn2,{nn}=1\begin{Bmatrix}n\\0\end{Bmatrix}=0,\begin{Bmatrix}n\\1\end{Bmatrix}=1,\begin{Bmatrix}n\\2\end{Bmatrix}=2^{n-1}-1,\begin{Bmatrix}n\\n-1\end{Bmatrix}=C_n^2,\begin{Bmatrix}n\\n\end{Bmatrix}=1

考虑若 nn 个元素要形成 mm 个集合,第 nn 个元素要么单独成一个集合,要么放入前 n1n-1 个元素构成的 mm 个集合中的一个,可以写出如下递推关系式:

{nm}=m{n1m}+{n1m1}\begin{Bmatrix}n\\m\end{Bmatrix}=m\begin{Bmatrix}n-1\\m\end{Bmatrix}+\begin{Bmatrix}n-1\\m-1\end{Bmatrix}

利用第二类斯特林数求集合的划分个数:
设集合 AAnn 个元素,则其划分个数为:

{n1}+{n2}++{nn}\begin{Bmatrix}n\\1\end{Bmatrix}+\begin{Bmatrix}n\\2\end{Bmatrix}+\cdots+\begin{Bmatrix}n\\n\end{Bmatrix}

序关系

偏序关系:

RR 是集合 AA 上的一个关系,如果 RR 具有自反性、反对称性、传递性,则称 RR 为一个偏序关系(partial ordering relation),或半序关系部分序关系,通常写为 \leq

集合 AA 在偏序关系 RR 下做成一个偏序集(partial ordered set,poset),或半序集部分序集,记作 (A,R)(A,R)

一个偏序集的子集仍为偏序集,并且

(A,R)(B,R(B×B)),BA(A,R)\Rightarrow(B,R\cap(B\times B)),\quad B\subseteq A

证明:

(1)R(B×B)R\cap(B\times B) 是自反的:

任取 xBx\in B,则 (x,x)B×B(x,x)\in B\times B,由 xBx\in BBAB\subseteq A,可得 xAx\in A,又因为 RRAA 上的自反关系,所以 (x,x)R(x,x)\in R.
因此,(x,x)R(B×B)(x,x)\in R\cap(B\times B),即 R(B×B)R\cap(B\times B) 是自反的。

(2)R(B×B)R\cap(B\times B) 是反对称的:

(x,y)R(B×B)(x,y)\in R\cap(B\times B)(y,x)R(B×B)(y,x)\in R\cap(B\times B),则 (x,y)R(x,y)\in R 而且 (y,x)R(y,x)\in R.
因为 RR 是反对称的,所以 x=yx=y,即 R(B×B)R\cap(B\times B) 也是反对称的。

(3)R(B×B)R\cap(B\times B) 是传递的:

(x,y)R(B×B)(x,y)\in R\cap(B\times B)(y,z)R(B×B)(y,z)\in R\cap(B\times B),则 (x,y)R(x,y)\in R(y,z)R(y,z)\in R,由 RR 有传递性可知,(x,z)R(x,z)\in R.
另外,(x,y)B×B(x,y)\in B\times B(y,z)B×B(y,z)\in B\times B,显然 B×BB\times BBB 的全域关系 EBE_B,则 (x,z)B×B(x,z)\in B\times B.
因此 (x,z)R(B×B)(x,z)\in R\cap(B\times B),即 R(B×B)R\cap(B\times B) 是传递的。

全序关系:

(A,)(A,\leq) 是一个偏序集,对任意 x,yAx,y\in A,如果 xyx\leq yyxy\leq x,则称 xxyy 可比;否则称 xxyy 不可比。一个偏序集的子集,其中任意两个元素都可比,则称该子集为一条

如果 (A,)(A,\leq) 本身就是一条链,则称此处的“\leq”为全序关系(totally ordering relation),称 (A,)(A,\leq)全序集(totally ordered set)

一个偏序集的子集不一定为偏序集,但也满足

(A,R)(B,R(B×B)),BA(A,R)\Rightarrow(B,R\cap(B\times B)),\quad B\subseteq A

拟序关系:

RR 是集合 AA 上的一个关系,如果 RR 具有反自反性、传递性,则称 RR 为一个拟序关系(quasi-ordering relation),通常写为 <<

拟序关系隐含了反对称性

证明:

R=R=\emptyset,则 RR 具有反自反性、传递性,并且具有反对称性。

RR\neq\emptyset,任取 (x,y)R(x,y)\in R,即 xRyxRy,因为 RR 具有反自反性,所以 xyx\neq y
假设 RR 不具有反自反性,则存在 x,yx,y 使得 xRy,yRxxRy,yRx,又由传递性可得 xRxxRx,与反自反性相矛盾。
因此,对任意 xRyxRy 都没有 yRxyRx,即 RR 是反对称的。

哈斯图(Hasse diagram):

哈斯图以平面上的点代表偏序集中的元素:

若两元素 xyx\leq y,且 xyx\neq y,则

  1. xx 画在 yy 的下面。
  2. 若没有不同于 x,yx,y 的元素 zz,使得 xzyx\leq z\leq yyy 覆盖 xx),则将 x,yx,y 用直线连接。

(A,)(A,\leq) 是一个偏序集,则

  1. 如果 AA 中有一个元素 aa,对于所有的 xAx\in A,都有 xa (ax)x\leq a\ (a\leq x),则称 aa 为集合 AA最大元(最小元)
  2. 如果 AA 中除了元素 aa 自身,不存在 xAx\in A,使得 ax (xa)a\leq x\ (x\leq a),则称 aa 为集合 AA极大元(极小元)
  3. 对于 AA 的子集 MM,如果存在 aAa\in A,使得对任意 mMm\in M,都有 ma (am)m\leq a\ (a\leq m),则称 aa 为子集 MM上界(下界)
  4. 对于 AA 的子集 MM,如果存在一个 MM 的上界 aa,对于 MM 的任意上界 xx,都有 axa\leq x,则称 aa 为子集 MM上确界
  5. 对于 AA 的子集 MM,如果存在一个 MM 的下界 aa,对于 MM 的任意上下界 xx,都有 xax\leq a,则称 aa 为子集 MM下确界

定理:(A,)(A,\leq) 是一个偏序集,并且 BAB\subseteq A,则

  1. bbBB 的最大元(最小元),则 bb 必为 BB 的上确界(下确界)。
  2. bbBB 的上界(下界),且 bBb\in B,则 bb 必为 BB 的最大元(最小元)。
  3. BB 有上确界(下确界),则其上确界(下确界)唯一。

映射

A,BA,B 是两个集合,若对 AA 的每个元素 aa,规定了 BB 的一个确定元素 bb 与之对应,则称此对应为 AABB 内的一个映射(mapping),记作 σ\sigma,并且

σ(a)=b\sigma(a)=b

bb 称为 aa像(image)aa 称为 bb原像(pre-image),集合 AA 称为映射 σ\sigma定义域(domain)σ\sigma 的值域也称为像的集合,表示为

σ(A)={bσ(a)=b,aA}\sigma(A)=\{b|\sigma(a)=b,\forall a\in A\}

显然,σ(A)\sigma(A)BB 的子集。

映射的关系定义法:A,BA,B 是两个集合,σ\sigmaAABB 的关系。如果对任意 aAa\in A,都有 BB 中唯一的 bb,满足 (a,b)σ(a,b)\in\sigma,则称 σ\sigmaAABB 内的一个映射。

设集合 AA 拥有 mm 个元素,集合 BB 拥有 nn 个元素,则集合 AA 到集合 BB 恰好有 nmn^m 个映射。

映射的分类

1. 满射:
σ\sigmaAABB 内的映射(AB|A|\geq|B|),如果 BB 中每一个元素都一定是 AA 中某元素的像,则称 σ\sigmaAABB 上的满射(surjective onto)

2. 单射:
σ\sigmaAABB 内的映射(AB|A|\leq|B|),如果对任意 a,bAa,b\in Aaba\neq b,都有 σ(a)σ(b)\sigma(a)\neq\sigma(b),则称 σ\sigmaAABB单射(injection)

3. 双射(一一映射):
σ\sigmaAABB 内的映射(A=B|A|=|B|),如果 σ\sigma 既是 AABB 的满射,又是 AABB 的单射,则称 σ\sigmaAABB双射(bijection),或一一映射(one-to-one correspondence)

逆映射

A,BA,B 是两个集合,σ\sigmaAABB 的双射,则 σ\sigma 的逆关系 σ1\sigma^{-1} 称为 σ\sigma逆映射(inverse mapping)

对任意 aAa\in A,都有

σ1(σ(a))=a\sigma^{-1}(\sigma(a))=a

推论:A,BA,B 是两个集合,σ\sigmaAABB 的双射,则 σ1\sigma^{-1}BBAA 的双射。

交集的逆映射满足:

σ1(AB)σ1(A)σ1(B)\sigma^{-1}(A\cap B)\subseteq\sigma^{-1}(A)\cap\sigma^{-1}(B)

映射的乘积

σ\sigma 是集合 AA 到集合 BB 内的映射,τ\tau 是集合 BB 到集合 CC 内的映射,称 τσ\tau\cdot\sigma 为映射 τ\tauσ\sigma 的乘积,即对任意 aAa\in A,有

(τσ)(a)=τ(σ(a))(\tau\cdot\sigma)(a)=\tau(\sigma(a))

映射的乘积满足结合律,但是不满足交换律。

(σ(τρ))(x)=((στ)ρ)(x)=σ(τ(ρ(x)))(\sigma\cdot(\tau\cdot\rho))(x)=((\sigma\cdot\tau)\cdot\rho)(x)=\sigma(\tau(\rho(x)))

将集合 MM 中元素映射到自身的变换称为恒等映射(identity mapping)
,记作 II。如果 τσ=στ=I\tau\cdot\sigma=\sigma\cdot\tau=I,则 τ,σ\tau,\sigma 均为双射,并且 τ=σ1\tau=\sigma^{-1}.

集合的可数性

基数

基数(cardinal number),是在集合论中被用于刻画任意集合大小的一个概念,也称为集合的势。设 A,BA,B 为两集合,若 AABB 之间存在双射,则称 AABB 基数相同(对等,等势或等浓),记作 A=B|A|=|B|.

  • 当集合 AA 为有限集时,它的基数为非负整数,且与集合 AA 的元素个数相等。

  • 把自然数集合的基数记作阿列夫零 0\aleph_0,凡是与自然数集合等势的集合 AA,其基数 A=0|A|=\aleph_0.

集合的等势关系是一个等价关系。集合按照等势关系分成等价类,每个等价类的共同的数量特征,称为该等价类中集合的基数。

集合基数的不对等关系 \leq 是一个偏序关系。若 AABB 的某一子集有一一对应关系,则 AB|A|\leq |B|;若 AABB 的某一真子集有一一对应关系(即 AABB 没有一一对应关系),则 A<B|A|<|B|.

基数的三歧性定理(trifideity theorem):
对任意集合 A,BA,B,或者 A<B|A|<|B|,或者 A=B|A|=|B|,或者 B<A|B|<|A|,同时只能有一个式子成立。

康托尔-伯恩斯坦定理(Cantor-Bernstein theorem):
若存在 AA 的子集 AA'BB 的子集 BB',使得 A=B|A|=|B'|B=A|B|=|A'|,则 A=B|A|=|B|.
即若 AB|A|\leq|B|BA|B|\leq |A|,则 A=B|A|=|B|.

可数集合

一个集合,如果它的元素为有限个,或者它的元素与自然数集合之间存在双射,则称此集合为可数集合。否则称该集合为不可数集合。元素不是有限的可数集合称为可数无穷集合

藉由定义,我们可以得到集合 AA 为可数无穷集合的充要条件:集合 AA 中的元素可排列为 A={a1,a2,,an,}A=\{a_1,a_2,\cdots,a_n,\cdots\},即可以将其元素编号。

定理:

  • A1,A2,,An,A_1,A_2,\cdots,A_n,\cdots 是可数无穷多个可数集合的序列,则 i=1Ai\displaystyle\bigcup_{i=1}^\infty A_i 是可数集合。即可数无穷多个可数集合的并集仍是可数集合。

  • A,BA,B 是可数无穷集合,则 A×BA\times B 仍是可数集合。
    推论:若 A1,A2,,AnA_1,A_2,\cdots,A_n 是可数集合,则 A1×A2××AnA_1\times A_2\times\cdots\times A_n 仍是可数集合。

  • 可数集合的子集仍为可数集合。

  • 有理数集合 Q\mathbb Q 是可数集合。

  • 实数集 R\mathbb R,区间 (a,+)(a,+\infty)[a,b][a,b][a,b)[a,b)(a,b] (ab)(a,b]\ (a\neq b) 等都是不可数的,且与区间 (0,1)(0,1)[0,1][0,1] 等势,将其基数记为 cc

  • A1,A2,,An,A_1,A_2,\cdots,A_n,\cdots 是互不相交的集合序列,它们的基数都是 cc,则 i=1Ai\displaystyle\bigcup_{i=1}^\infty A_i 的基数也是 cc。即可数(无穷)个基数为 cc 的集合的并集基数仍为 cc

证明 (0,1)(0,1) 区间内的实数不可数:

假设我们可以将 (0,1)(0,1) 区间内的数排成一个序列:

{P1=0.a11a12a13P2=0.a21a22a23P3=0.a31a32a33Pk=0.ak1ak2ak3akk\begin{cases} P_1=0.a_{11}a_{12}a_{13}\cdots\\ P_2=0.a_{21}a_{22}a_{23}\cdots\\ P_3=0.a_{31}a_{32}a_{33}\cdots\\ \quad\vdots\\ P_k=0.a_{k1}a_{k2}a_{k3}\cdots a_{kk}\cdots\\ \quad\vdots \end{cases}

考虑下面的数:

0.r1r2rk(k=1,2,)0.r_1r_2\cdots r_k\cdots\quad(k=1,2,\cdots)

其中

rk={1akk12akk=1r_k=\begin{cases} 1&a_{kk}\neq 1\\ 2&a_{kk}=1\\ \end{cases}

显然,这个数是 (0,1)(0,1) 区间内的数,但却无法放进我们所构造的序列中。对序列中的任意一个数 0.ak1ak2ak3akk0.a_{k1}a_{k2}a_{k3}\cdots a_{kk}\cdots,因为 rkakkr_k\neq a_{kk},所以

0.ak1ak2ak3akk0.r1r2rk0.a_{k1}a_{k2}a_{k3}\cdots a_{kk}\cdots\neq 0.r_1r_2\cdots r_k\cdots

与我们的假设产生矛盾,所以 (0,1)(0,1) 区间内的实数不可数。

判断可数集合的方法:

  1. 按照可数集合的定义,若 AA 为有限集,则 AA 一定是可数集合,否则若 AA 与自然数集之间存在双射,则 AA 是可数集合。

  2. AA 与某可数集合之间存在双射,则 AA 是可数集合。

  3. AA 中所有元素都可以按照某种规律进行排序,则 AA 是可数集合。

  4. AAn (n>1)n\ (n>1) (或可数无限个)个可数集合的并集,则 AA 是可数集合。

  5. AA 是某个已知可数集合的子集,则 AA 是可数集合。

  6. AAn (n>1)n\ (n>1) 个可数集合的笛卡尔积,则 AA 是可数集合。

康托尔定理(Cantor’s theorem):
集合 AA 的幂集的基数大于 AA 的基数。

证明:

假设 σ\sigmaAAρ(A)\rho(A) 上的满射,令

B={xxAxσ(x)}B=\{x\mid x\in A\wedge x\notin\sigma(x)\}

显然,BAB\subseteq A,于是,存在唯一一个元素 bAb\in A,使得 σ(b)=B\sigma(b)=B.

bBb\in B,则 bσ(b)=Bb\notin\sigma(b)=B,产生矛盾;
bBb\notin B,因为 σ(b)=B\sigma(b)=B,所以 bσ(b)b\notin\sigma(b),则 bBb\in B,产生矛盾。

综上所述,不存在 AAρ(A)\rho(A) 上的满射,所以

A<ρ(A)|A|<|\rho(A)|

连续统问题

我们可以构造基数任意大的集合,如 R<ρ(R)<|\mathbb R|<|\rho(\mathbb R)|<\cdots

按照基数的大小可以排列为:

0,1,2,,n,,0,1,2,0,1,2,\cdots,n,\cdots,\aleph_0,\aleph_1,\aleph_2,\cdots

所谓连续统问题(continuum hypothesis),即已知 0<c\aleph_0<c,问 1<c\aleph_1<c 是否成立?
换句话说就是:能否找到一实数集的子集,它是不可数集合,但又不能与实数集合建立一一对应。

连续统假设1=c\aleph_1=c.

连续统假设无法在目前已有的集合论公理下被证明或证伪。