3170 字
16 分钟
离散数学(1) 证明

命题#

可判断真假的陈述.

比如1+2=3,2+3=6.

“你叫什么名字?”和”你好.”不是命题.

“这句话是假的.”也不是命题.

命题的复合#

可以使用与,或,非

非(not)#

¬p\neg p为真当且仅当pp为真

与(and)#

pqp\land q为真当且仅当p,qp,q均为真.

或(or)#

pqp\lor q为真当且仅当p,qp,q中至少一个为真.

也可以说,qqq\lor q为假当且仅当p,qp,q均为假.

蕴含(implies)#

p    qp\implies q为真当且仅当:

pp为假,或qq为真.

等价于¬pq\lnot p \lor q.

pp蕴含qq”和”如果pp,那么qq”陈述等价.

等价(iff)#

p    qp\iff q当且仅当p与q同真假.

“p等价于q”也可说,“p当且仅当q”.

异或(xor)#

pqp\oplus q当且仅当p与q真假值不同.

显然pqp\oplus q

等价于¬(p    q)\lnot (p\iff q)

等价于(¬pq)(p¬q)(\lnot p \land q)\lor (p\land \lnot q)

运算律#

最重要的是德摩根律和分配律.

  • 德摩根律:

    • ¬(pq)\lnot (p\land q)等价于¬p¬q\lnot p \lor \lnot q
    • ¬(pq)\lnot (p\lor q)等价于¬p¬q\lnot p \land \lnot q
  • 分配律:

    • a(pq)a\land (p\lor q)等价于(ap)(aq)(a\land p) \lor (a\land q).
    • a(pq)a\lor (p\land q)等价于(ap)(aq)(a\lor p) \land (a\lor q).

谓词(predicate)#

相当于从某集合到布尔变量的函数p(n)或者p(x)p(n)或者p(x) 真假取决于给出的自变量取值.

比如"p(n):n2+n+41是质数p(n):n^2+n+41是质数"是一个谓词.真假取决于n的取值.当n39n\leq 39p(n)p(n)为真.

量词(quantifier)#

全称量词(universal quantifier)#

\forall(forall),表示”对所有的”,“对于任意”.

特称量词/存在量词(existential quantifier)#

\exist(exist),表示”存在""至少一个""存在某个”.

量词作为对谓词的限制,可以与谓词组成命题.

一个命题可以有多个量词,而往往只有一个谓词(当然,这个谓词可以是由多个谓词通过逻辑运算复合而成的).

举个例子,

(kZ)(2k4),质数p,质数q,2k=p+q.\forall (k\in Z) \land (2k \ge 4),\exist 质数p,\exist质数q, 2k=p+q.

即为一个命题(哥德巴赫猜想),这个命题有3个量词一个谓词,其中一个量词由两个命题复合而成.

量词的顺序很重要.上面这个命题和

质数p,质数q,(kZ)(2k4),2k=p+q.\exist 质数p,\exist质数q, \forall (k\in Z) \land (2k \ge 4), 2k=p+q.

不等价.前者说的是所有的偶数都由某组质数(可能不同)p,q相加得到. 后者说的是所有的偶数都由相同的一组质数p,q相加得到,显然为假.

论域(domain of discourse)#

研究某领域的问题时默认的讨论范围,可以省略. 比如说在讨论数论问题时往往可以默认讨论范围为自然数或整数.pZ\exist p\in Z可以省略成p\exist p.

复杂命题的否定#

改变量词,否定谓词.

(kZ)(2k4),质数p,质数q,2k=p+q.\forall (k\in Z) \land (2k \ge 4),\exist 质数p,\exist质数q, 2k=p+q.

的否定为

(kZ)(2k4),质数p,质数q,2kp+q.\exist (k\in Z) \land (2k \ge 4),\forall 质数p,\forall 质数q, 2k\neq p+q.

有效性(validity)#

若一个命题始终为真,则称其为有效的. 比如

p¬pp\lor \lnot p

无论p为真或假,该命题都为真. 上述命题也叫做重言式. 有效性的概念也可推广至谓词.若一个谓词p(n)在n的任何可能取值下都为真,则称谓词p(n)有效(valid).

可满足性(satisfiability)#

若一个命题在某取值下为真,则称其为可满足的.

p¬qp \land \lnot q

在p为真,q为假时命题为真,故该命题是可满足的(satisfiable). 可满足性的概念也可推广至谓词.若一个谓词p(n)在n的某一取值下为真,则称谓词p(n)是可满足的.

判断一个命题/谓词的可满足性的过程称为SAT. SAT是一个重要课题,当变量数增大时,往往需要指数级别的复杂度.虽然对于部分特殊的SAT问题有多项式复杂度的解,但目前尚不清楚是否对于所有SAT问题都能或不能得到多项式复杂度的解(P/NP问题).

证明方法#

公理#

在某个科学理论中,我们会假定某些命题为真,称为公理,然后再通过公理来证明其他定理. 比如说在现代数学中很重要的ZFC公理,平面集合中的欧几里得公理体系等.没有公理,科学理论本身将没有意义.

一个良好的公理体系的性质:

  • 相容性(一致性):在同一个公理体系中推导出来的所有命题必须同真或同假(比如说有p1,p2,...p_1, p_2,...这些公理,如果由p1,p2p_1,p_2可以证明某个命题q为真,由p3,p4p_3, p_4可以证明q为假,那么这个公理体系就是不满足一致性的)
  • 独立性:公理系统中的每一条公理都不能通过其他公理推导出来,确保公理之间没有冗余
  • 完备性:公理体系能够判定论域内的所有命题

其中相容性是必要的(否则该公理体系将没有意义),独立性是重要的(但不是必须的),而完备性对于很多论域来说甚至是无法做到的(见哥德尔不完备定理)

逻辑证明#

p,p    q.q\\p, \\p\implies q. \\------- \\q

也叫三段论推理.pp为大前提,p    qp\implies q为小前提.

NOTE

一些等价形式

p    q,q    r.p    r.\\p\implies q, \\q\implies r. \\------- \\p\implies r.p    q,¬q¬p.\\p\implies q, \\\lnot q \\------- \\\lnot p.¬p    ¬q,q    p.\\\lnot p\implies \lnot q, \\------- \\q\implies p.

(即原命题等价于其逆否命题)

分类讨论(proof by cases)#

这个很简单.

一个6人的团体中,要么包含一个3人均互相认识的团体,要么包含一个3人互相均不认识的团体.

证明

先研究6人中的某人x,与剩下5个人的认识情况只能是下列两者中的一个:

  1. 另外5人中至少3人认识x
  2. 另外5人中至少3人不认识x

研究第一种情况,即另外5人中至少3人认识x,研究其中3人:

  1. 3人间至少有一对a,b互相认识,这时a,b,x构成均互相认识的团体.
  2. 3人a, b, c间均不互相认识,这时a, b, c构成互相均不认识的团体

研究第二种情况,即另外5人中至少3人不认识x,考虑其中3人:

  1. 3人间至少有一对a,b互相不认识,这时a,b,x构成互相均不认识的团体.
  2. 3人a, b, c间均互相认识,这时a, b, c构成互相均认识的团体.

讨论完所有情况发现所有情况都要么包含一个3人均互相认识的团体,要么包含一个3人互相均不认识的团体.原命题成立.Q.E.D.

假定p为真#

这个没什么好说的,假定p为真,推出q则证明完毕.

证明逆否命题#

假定q为假,推出p为假则其逆否命题为真.

证明等价#

互相推导#

屋檐了

建立等价推导链#

从p推出q的过程中如果每一句均可逆(均为等价过程),则p与最后的结论也等价.

反证法#

本质:观察¬q    r\lnot q \implies r的真值表时发现rr为假时¬q\lnot q也一定为假,所以说只要能从¬q\lnot q推出任何假命题(自我矛盾的命题),即可证明q为真.

集合(set)#

将一些元素放在一起组成的群体.满足:

  1. 无序性
  2. 确定性:任何东西,要么在这个集合里,要么不在这个集合里.
  3. 互异性:集合里的元素不重复. 高中都学过,这里不赘述

集合的基数\势(Cardinality)#

集合的元素个数,通常用card(A)\operatorname{card}(A)或者A|A|表示.

幂集(the power set)#

集合的所有子集组成的集合. 集合AA的幂集记作2A2^{A}P(A)P(A),容易注意到P(A)=2A=2A|P(A)|=|2^{A}|=2^{|A|}

序列(sequence)#

某些元素有序排列组成的群体,可重复,有序. a,b,ca,b,c组成的序列记作(a,b,c)(a, b, c)λ\lambda 表示空序列.

笛卡尔积/叉积(cross product)#

假如A={a,b},B={c,d}A=\set{a,b},B=\set{c,d} 那么A×B={(a,c),(a,d),(b,c),(b,d)}A\times B=\set{(a,c),(a,d),(b,c),(b,d)}.

集合的描述#

{nNn is a prime and n=4k+1 for some integer k}\set{n \in N | n \space is \space a\space prime\space and\space n = 4k +1\space for\space some\space integer\space k}

罗素悖论#

对于任意一个集合A,A要么是自身的元素,即A∈A;A要么不是自身的元素,即A∉A。根据康托尔集合论的概括原则,可将所有不是自身元素的集合构成一个集合S1,即S1={x∉x}

ZFC公理体系

以下为ZF公理,分别是ZF1到ZF9,注意ZF公理中唯一的对象是集合,集合的元素也是集合.

  1. 外延公理:一个集合完全由元素决定,若两个集合含有相同的元素,则两个集合相等.
  2. 空集合存在公理: 存在空集,即没有元素的集合.
  3. 无序对公理:对于集合AA,BB,存在某个集合WW使得WW仅有A,BA,B作为其元素.
  4. 并集公理:任给一集合W,我们可以把W的元素的元素汇集到一起,组成一个新集合.
  5. 幂集公理:对于任意集合WW,P(W)P(W)存在,且也是一个集合.
  6. 无穷公理:存在一个集合WW,它有无穷多元素.
  7. 分离公理:对于任意集合WW和对WW元素有定义的谓词p(x)p(x), 存在集合{xp(x)}\set {x|p(x)}.
  8. 替换公理:对于函数F(x)F(x),若其定义域被限定在集合TT中,则存在某集合SS,使得F(x)F(x)的值域可被限定在SS中.
  9. 正则公理:任何集合的元素都具有最小性质.其传递闭包上不存在无穷降链.比如,不允许出现X属于X的情况.

以下为选择公理(AC).ZF公理加上选择公理就成为ZFC公理.

  • 选择公理:集合族上的任意笛卡尔积非空.

(一般认为ZF公理中可以不包含ZF2,ZF2可由其他公理导出)

归纳法(induction)#

良序原理(the well order principle)#

自然数集NN的任一非空子集中必然有最小元素. 这可以推导出:任何有理数的分数形式pq\frac {p}{q}必有最简形式.

数学归纳法证明#

比如说,要证明nN,p(n)\forall n\in N, p(n),有如下步骤:

  1. 证明p(0)p(0)
  2. 证明nN,p(n)    p(n+1)\forall n\in N, p(n) \implies p(n+1)

错误的数学归纳法证明#

此处证明”世界上的所有马拥有同一颜色”.

证明
  1. 定义p(n)::=p(n)::=”任意n只马拥有同一颜色”
  2. 显然n=1n=1时,1只马本身拥有同一颜色,即p(1)p(1)成立.
  3. 对于任意n,若p(n)p(n)成立,那么马H1,H2,...,HnH_1, H_2, ... , H_n这n只马拥有同一颜色, 即H1,H2,...,HnH_1, H_2, ... , H_n的颜色=H2,...,HnH_2, ... , H_n的颜色.
  4. 考虑H2,...,Hn,Hn+1 H_2, ... , H_n, H_{n+1}这n只马也拥有同一颜色, 则H1,H2,...,Hn,Hn+1H_1, H_2, ... , H_n, H_{n+1}的颜色=H2,...,HnH_2, ... , H_n的颜色.
  5. 即H_1, H_2, … , H_n, H_{n+1}拥有同一颜色.
  6. 综上我们证明了任意多只马拥有同一颜色.

这个证明的问题在于p(1)p(1)不能推出p(2)p(2),因为此时H2,...,HnH_2, ... , H_n为空.

不变量#

见视频6.042J(3),从14:23到56:15.

强归纳法#

比如说,要证明nN,p(n)\forall n\in N, p(n),有如下步骤:

  1. 证明p(0)p(0)
  2. 证明nN,p(1)p(2)...p(n)    p(n+1)\forall n\in N, p(1)\land p(2)\land ...\land p(n) \implies p(n+1)

示例见视频6.042J(3),从1:02:44到最后

猜出S(n)的通项是很关键的.

归纳结构(structural induction)#

递归数据类型#

一个递归数据类型应当包含:

  1. 一个不由递归定义的基本情况.
  2. 递归定义的其他情况.

比如,我们可以定义一个类型”括号字符串”,仅由]和[组成:

  1. 空串λ\lambda是一个”括号字符串”
  2. 如果s和t是”括号字符串”,那么[s]t是一个”括号字符串”

同样地,可以定义一个”算术表达式”:

  1. 变量x是一个表达式; 对于任何自然数a,其阿拉伯数字表示是一个表达式.
  2. 若e,f是表达式,则(e+f)是表达式;(e*f)是表达式;-(e)是表达式.

递归数据类型上的归纳证明#

比如要证明对于某个递归数据类型AA,aA\forall a\in A, p(x)p(x)为真:

  1. 证明基础情况下p(x)为真
  2. xx的组成元素为a,b,...a, b, ...,假定p(a),p(b),...p(a), p(b), ...为真,证明p(x)p(x)为真.

递归函数#

一个递归函数应当包含:

  1. 基础情况
  2. 能够最终归结于基础情况的递归式 这里不再赘述.

这门课中的数论内容比较简单,我会单独开一章来学习初等数论的相关知识.

离散数学(1) 证明
https://fuwari.vercel.app/posts/离散数学1-证明/
作者
ykindred
发布于
2025-08-29
许可协议
CC BY-NC-SA 4.0