简单数学笔记


数学证明:proof
命题:proposition
逻辑推理:logical deduction 推理规则:inference rule
公理:axiom
良序原理:Well Ordering Principle
归纳法:induction
定义:命题的数学证明是指基于一系列公理,经过一连串逻辑推理,最后得出这个命题。
定义:命题是一个真或假的语句(表述)。
质数:prime。指大于 1 且不能被任何其它大于 1 的整数整除的整数。
存在情况满足:
对所有情况满足:
自然数集:N
整数集:Z
谓词:predicate。相当于取值只有真或假的函数。但其实谓词不是函数。
假设:assumption。
定理:theorem。重要的真命题。
引理:lemma。预备性命题,为后面的命题证明做准备。
推论:corollary。从定理出发,只需几步逻辑推导就能得出的命题。
公理化方法:axiomatic method。

逻辑推理:

基本推理规则:假言推理(modus ponens)。即:证明了 P 且证明了 P implies Q,就证明了 Qimplies 可理解为“能够推导出”,即后文的“蕴涵”。
推理规则的表示方法:

P,P implies QQ

横线上面的语句被称为前件(antecedent),下面的语句成为结论(conclusion)或后件(consequent)。一旦前件被证明,也就证明了后件。
推理规则必须有效(sound),从真公理出发,应用有效的推理规则,得到的结论也都是真的。
更多自然有效的推理规则:

P implies QQ implies RP implies R

not(P) implies not(Q)Q impliesP


从本质上说,证明是基于公理及已被证明的语句,推导出命题结论的任意逻辑推理序列。
但是很多证明遵循数量有限的标准模板。

证明方法:

证明蕴涵:

形如“如果 P,则 Q”的命题称为蕴涵(implication)。
证明蕴涵有一些标准方法。
要证明 P implies Q
证明蕴涵方法 #1:

  1. 假设 P
  2. 从逻辑上证明 Q

证明蕴涵方法 #2:证明逆反命题
一个蕴涵逻辑等价于其逆反命题(contrapositive)
即:P implies Qnot(Q) implies not(P)
所以:

  1. 假设 not(Q)
  2. 从逻辑上证明 not(P)
证明当且仅当:

两个语句逻辑等价,即一个语句成立当且仅当(if and only if)另一个语句成立。当且仅当简写为 iff,数学表达式中写作 IFF
要证明 P IFF Q
证明 iff 方法 #1:

P IFF QP implies Q&Q implies P

所以可以通过证明两个蕴涵来证明 iff

  1. 证明 P 蕴涵 Q
  2. 证明 Q 蕴涵 P

证明 iff 方法 #2:构建 iff
构建一条 iff 蕴涵链。

  1. 证明 P implies p1
  2. 证明 p1 implies p2
    ...
    直到证明 pn implies Q
案例证明法:

将复杂的证明分解成案例,然后分别证明每一个案例。(分类讨论)
需要囊括所有情形,一般有两种,形如 P 和非 P

反证法:

反证法(proof by contradiction),又称间接证明法(indirect)。
假如命题是假的,那么相应的虚假事实为真。逻辑为,既然虚假事实本身不可能是真的,所以命题一定为真。
证明 P 为真:

  1. 假设 P 是假的。
  2. 推导得出某些已知的假事实(逻辑矛盾)
  3. 得出 P 一定是真的。

良序原理(The Well Ordering Principle):非负整数集中的每个非空子集都有一个最小元素。
良序原理是离散数学(discrete mathematics)中最为重要的证据规则之一。
对任一非负整数 n,使用良序性(Well Ordering)证明 P(n) 成立,通常有一套标准的方法。
证明“对所有 nN,P(n) 为真”:

  1. 定义 CP 为真的反例集合,即 C={nN|not(P(n)) 为真 }
  2. 假设 C 是非空集进行反证。
  3. 根据良序原理,一定存在一个最小元素 nC
  4. 得出矛盾。
  5. 得出结论, C 一定是空集,即不存在反例。

一个典型的例子:
证明“每一个大于 1 的整数都能分解成某种质因数的成绩形式”(不需要证明其唯一性)。
C 表示所有大于 1 但不能被分解成质因数乘积的整数集合。假设 C 不为空。
因为 C 不为空,由良序性可知,存在一个最小元素 nC。因为质数是自己和 1 相乘,而质数的乘积不属于 C,所以 n 一定不是质数。
因此, n 一定是两个整数 a,b 的乘积,且 1<a,b<n。因为 a,bC 中最小的元素 n 都要小,所以 a,bC。所以 ab 可以写成质数的乘积形式。所以 n=ab 可以写成质数的乘积形式,这与 nC 矛盾。
所以原假设 C 不为空不成立。

有良序性的集合被称为良序集合,此集合的任意非空子集都有一个最小元素。
反例之一是非负有理数集合,其全集有 0 这个最小元素,但是存在没有最小元素的子集,比如正有理数。


命题变量(propositional variable):值只有 T(真) 和 F(假) 的变量。又被称为布尔变量(Boolean variable),发明者为乔治 · 布尔(George Boole)。

逻辑符号:
为了区分符号和命题,符号不用 Markdown。
NOT、AND、OR、XOR(exclusive-or):用法不必多说。

IFF(当且仅当):P IFF QTPQ 都为 T 或都为 F

IMPLIES(蕴涵,从这里开始用大写):
PTQTP IMPLIES QT。如果 P,则 QP 已经是真的了,Q 也已经是真的了,所以这个蕴涵是真。
PTQFP IMPLIES QF。因为 P 是真,所以 Q 为真时蕴涵为真。Q 为假,蕴涵不成立,为假。
PFQTP IMPLIES QTP 都是假的了,Q 无论怎样都不会有影响,所以蕴涵为真。
PFQFP IMPLIES QT。同上。
一个例子:“如果猪会飞,那么你的账户就不会被盗”。然而猪不会飞,所以你不知道你的账户会不会被盗,被盗了这个蕴涵依然成立,不被盗这个蕴涵依然成立。
重要的是,数学蕴涵不考虑因果联系,而因果蕴涵(causal implication)要考虑因果联系。但是数学蕴涵用途更广泛。
(个人看法:P IMPLIES Q NOT(P) OR Q
现在有一个机器,当其模式为 Ci 时,它的动作为 Ai,这个机器一共有 n 种模式,则这个机器正常运行的判断语句就是 [C1 IMPLIES A1] AND ... AND [Cn IMPLIES An]

要判断两个逻辑语句是否等价,只需要将这两个语句列出来,枚举命题的所有情况,对比这两个逻辑语句的结果是否相同。
给出一些逻辑语句的关系:
P IMPLIES Q 等价于 NOT(P) IMPLIES NOT(Q)
P IMPLIES Q逆命题(converse) 为 Q IMPLIES P,它们不等价。但是将它们 AND 起来,等价于一个 iff 语句:
[P IMPLIES Q] AND [Q IMPLIES P] 等价于 P IFF Q


永真式(valid formula,也称有效公式):指无论变量如何取值,总是为真的公式。比如:P OR NOT(P)
要证明如果 P IMPLIES Q,且 Q IMPLIES R,则 P IMPLIES R
相当于证明 [(P IMPLIES Q) AND (Q IMPLIES R)] IMPLIES (P IMPLIES R)
两个式子永真,意味着两个式子等价。事实上,一个式子永真,当且仅当其等价于 T
可满足式(satisfiable formula) :指有时候为真的公式,即存在某种变量取值使公式为真。反例就是,P AND NOT(P) 不是可满足式。

永真与可满足的关系:
P 是可满足的,当且仅当它的否命题 NOT(P) 不是永真式。


命题代数:

定理:每个命题公式都等价于一个析取范式和一个合取范式
析取范式(disjunctive normal form,DNF)。
合取范式(conjunctive normal form,CNF)。
所有高级逻辑词(比如 XOR、IFF、IMPLIES)都可以化为 NOT、AND、OR 的形式。而如果把 F 看作 0,则 AND 等价于 ×,OR 等价于 +T 等价于 NOT(0)
析取范式即把原命题公式分解为先 AND 再 OR 的结构,且分解出的命题与原命题等价。比如 A AND (B OR C),其析取范式为 (A AND B) OR (A AND C)
合取范式则是把原命题公式分解为先 OR 再 AND 的结构。比如 A AND (B OR C),其合取范式为((!A)|B|C) & (A|(!B)|(!C)) & (A|(!B)|C) & (A|B|(!C)) & (A|B|C)。(式子太长就用代码写了)
范式的好处是,能够只通过对比范式(经过某种方法排序)就能够得出两个式子是否等价。而如果真要枚举命题取值,复杂度是指数级的。
如何将一个普通式子转化为范式呢?


首先,任何其它符号都能转换成一些 NOT、AND 和 OR。这一步很简单。
再给出一些公理:
NOT 公理:
双重否定律(double negation) :NOT(NOT(A))A
AND 公理:
AND 很像乘法。所以显然的:
AND 交换律(commutatuvuty):A AND BB AND A
AND 结合律(associativity):(A AND B) AND CA AND (B AND C)
AND 同一律(identity):T AND AA
AND 零律(zero):F AND A F
AND 对 OR 的分配律(distributivity):A AND (B OR C)(A AND B) OR (A AND C)
然后是数学算术规则里面没有的:
OR 对 AND 的分配律:A OR (B AND C)(A OR B) AND (A OR C)
AND 幂等律(idempotence):A AND AA
AND 矛盾律(contradiction):A AND NOT(A) F
OR 公理:
跟算术相同的交换律结合律。
上面写过的 OR 和 AND 的两个分配律。
OR 永真律(validity):A OR NOT(A) T

三个运算符全都用到的德摩根律(Demorgan's Laws):
AND 德摩根律:NOT(A AND B) NOT(A) OR NOT(B)
OR 德摩根律:NOT(A OR B) NOT(A) AND NOT(B)

这时对于任意一个只含有 NOT、AND 和 OR 的命题公式,都可以通过以上的公理,转化为范式。事先说明一点,NOT 的作用范围仅有一个命题变量时,NOT 也作为这个变量的一部分,而不是一个符号了,不影响范式。(用时间复杂度来分析的话就是可以 O(1) 取反一个变量,不是瓶颈)

然后……转化过程复杂得要命,需要具体情况具体分析。书上也只是举了个例子。转化范式时,可以根据需要添加任意变量。
范式不能出现这种情况:A OR (B AND C) 这种把 A 露在外面的形式。必须严格把每个变量都套括号里面。

应该有多项式时间复杂度转化范式的方法吧,我没查到。


谓词公式

捏麻麻滴,难死我了。

posted @   0htoAi  阅读(458)  评论(3编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起