简单数学笔记
数学证明:proof
命题:proposition
逻辑推理:logical deduction 推理规则:inference rule
公理:axiom
良序原理:Well Ordering Principle
归纳法:induction
定义:命题的数学证明是指基于一系列公理,经过一连串逻辑推理,最后得出这个命题。
定义:命题是一个真或假的语句(表述)。
质数:prime。指大于 且不能被任何其它大于 的整数整除的整数。
存在情况满足:
对所有情况满足:
自然数集:
整数集:
谓词:predicate。相当于取值只有真或假的函数。但其实谓词不是函数。
假设:assumption。
定理:theorem。重要的真命题。
引理:lemma。预备性命题,为后面的命题证明做准备。
推论:corollary。从定理出发,只需几步逻辑推导就能得出的命题。
公理化方法:axiomatic method。
逻辑推理:
基本推理规则:假言推理(modus ponens)。即:证明了 且证明了 ,就证明了 。 可理解为“能够推导出”,即后文的“蕴涵”。
推理规则的表示方法:
横线上面的语句被称为前件(antecedent),下面的语句成为结论(conclusion)或后件(consequent)。一旦前件被证明,也就证明了后件。
推理规则必须有效(sound),从真公理出发,应用有效的推理规则,得到的结论也都是真的。
更多自然有效的推理规则:
从本质上说,证明是基于公理及已被证明的语句,推导出命题结论的任意逻辑推理序列。
但是很多证明遵循数量有限的标准模板。
证明方法:
证明蕴涵:
形如“如果 ,则 ”的命题称为蕴涵(implication)。
证明蕴涵有一些标准方法。
要证明 。
证明蕴涵方法 #1:
- 假设 。
- 从逻辑上证明 。
证明蕴涵方法 #2:证明逆反命题
一个蕴涵逻辑等价于其逆反命题(contrapositive)
即:。
所以:
- 假设 。
- 从逻辑上证明 。
证明当且仅当:
两个语句逻辑等价,即一个语句成立当且仅当(if and only if)另一个语句成立。当且仅当简写为 ,数学表达式中写作 。
要证明
证明 方法 #1:
所以可以通过证明两个蕴涵来证明 。
- 证明 蕴涵 。
- 证明 蕴涵 。
证明 方法 #2:构建 链
构建一条 蕴涵链。
- 证明
- 证明
...
直到证明
案例证明法:
将复杂的证明分解成案例,然后分别证明每一个案例。(分类讨论)
需要囊括所有情形,一般有两种,形如 和非 。
反证法:
反证法(proof by contradiction),又称间接证明法(indirect)。
假如命题是假的,那么相应的虚假事实为真。逻辑为,既然虚假事实本身不可能是真的,所以命题一定为真。
证明 为真:
- 假设 是假的。
- 推导得出某些已知的假事实(逻辑矛盾)
- 得出 一定是真的。
良序原理(The Well Ordering Principle):非负整数集中的每个非空子集都有一个最小元素。
良序原理是离散数学(discrete mathematics)中最为重要的证据规则之一。
对任一非负整数 ,使用良序性(Well Ordering)证明 成立,通常有一套标准的方法。
证明“对所有 为真”:
- 定义 是 为真的反例集合,即 为真 。
- 假设 是非空集进行反证。
- 根据良序原理,一定存在一个最小元素 。
- 得出矛盾。
- 得出结论, 一定是空集,即不存在反例。
一个典型的例子:
证明“每一个大于 的整数都能分解成某种质因数的成绩形式”(不需要证明其唯一性)。
令 表示所有大于 但不能被分解成质因数乘积的整数集合。假设 不为空。
因为 不为空,由良序性可知,存在一个最小元素 。因为质数是自己和 相乘,而质数的乘积不属于 ,所以 一定不是质数。
因此, 一定是两个整数 的乘积,且 。因为 比 中最小的元素 都要小,所以 。所以 和 可以写成质数的乘积形式。所以 可以写成质数的乘积形式,这与 矛盾。
所以原假设 不为空不成立。
有良序性的集合被称为良序集合,此集合的任意非空子集都有一个最小元素。
反例之一是非负有理数集合,其全集有 这个最小元素,但是存在没有最小元素的子集,比如正有理数。
命题变量(propositional variable):值只有 T(真) 和 F(假) 的变量。又被称为布尔变量(Boolean variable),发明者为乔治 · 布尔(George Boole)。
逻辑符号:
为了区分符号和命题,符号不用 Markdown。
NOT、AND、OR、XOR(exclusive-or):用法不必多说。
IFF(当且仅当): IFF 取 T 时 和 都为 T 或都为 F。
IMPLIES(蕴涵,从这里开始用大写):
为 T, 为 T, IMPLIES 为 T。如果 ,则 。 已经是真的了, 也已经是真的了,所以这个蕴涵是真。
为 T, 为 F, IMPLIES 为 F。因为 是真,所以 为真时蕴涵为真。 为假,蕴涵不成立,为假。
为 F, 为 T, IMPLIES 为 T。 都是假的了, 无论怎样都不会有影响,所以蕴涵为真。
为 F, 为 F, IMPLIES 为 T。同上。
一个例子:“如果猪会飞,那么你的账户就不会被盗”。然而猪不会飞,所以你不知道你的账户会不会被盗,被盗了这个蕴涵依然成立,不被盗这个蕴涵依然成立。
重要的是,数学蕴涵不考虑因果联系,而因果蕴涵(causal implication)要考虑因果联系。但是数学蕴涵用途更广泛。
(个人看法: IMPLIES NOT OR )
现在有一个机器,当其模式为 时,它的动作为 ,这个机器一共有 种模式,则这个机器正常运行的判断语句就是 IMPLIES AND ... AND IMPLIES 。
要判断两个逻辑语句是否等价,只需要将这两个语句列出来,枚举命题的所有情况,对比这两个逻辑语句的结果是否相同。
给出一些逻辑语句的关系:
IMPLIES 等价于 NOT IMPLIES NOT。
IMPLIES 的逆命题(converse) 为 IMPLIES ,它们不等价。但是将它们 AND 起来,等价于一个 语句:
IMPLIES ] AND IMPLIES 等价于 IFF 。
永真式(valid formula,也称有效公式):指无论变量如何取值,总是为真的公式。比如: OR NOT。
要证明如果 IMPLIES ,且 IMPLIES ,则 IMPLIES ,
相当于证明 IMPLIES AND IMPLIES IMPLIES IMPLIES 。
两个式子永真,意味着两个式子等价。事实上,一个式子永真,当且仅当其等价于 T。
可满足式(satisfiable formula) :指有时候为真的公式,即存在某种变量取值使公式为真。反例就是, AND NOT 不是可满足式。
永真与可满足的关系:
是可满足的,当且仅当它的否命题 NOT 不是永真式。
命题代数:
定理:每个命题公式都等价于一个析取范式和一个合取范式。
析取范式(disjunctive normal form,DNF)。
合取范式(conjunctive normal form,CNF)。
所有高级逻辑词(比如 XOR、IFF、IMPLIES)都可以化为 NOT、AND、OR 的形式。而如果把 F 看作 ,则 AND 等价于 ,OR 等价于 ,T 等价于 NOT。
析取范式即把原命题公式分解为先 AND 再 OR 的结构,且分解出的命题与原命题等价。比如 AND OR ,其析取范式为 AND OR AND 。
合取范式则是把原命题公式分解为先 OR 再 AND 的结构。比如 AND OR ,其合取范式为((!A)|B|C) & (A|(!B)|(!C)) & (A|(!B)|C) & (A|B|(!C)) & (A|B|C)
。(式子太长就用代码写了)
范式的好处是,能够只通过对比范式(经过某种方法排序)就能够得出两个式子是否等价。而如果真要枚举命题取值,复杂度是指数级的。
如何将一个普通式子转化为范式呢?
首先,任何其它符号都能转换成一些 NOT、AND 和 OR。这一步很简单。
再给出一些公理:
NOT 公理:
双重否定律(double negation) :NOTNOT
AND 公理:
AND 很像乘法。所以显然的:
AND 交换律(commutatuvuty): AND AND
AND 结合律(associativity): AND AND AND AND
AND 同一律(identity):T AND
AND 零律(zero):F AND F
AND 对 OR 的分配律(distributivity): AND OR AND OR AND
然后是数学算术规则里面没有的:
OR 对 AND 的分配律: OR AND OR AND OR
AND 幂等律(idempotence): AND
AND 矛盾律(contradiction): AND NOT F
OR 公理:
跟算术相同的交换律结合律。
上面写过的 OR 和 AND 的两个分配律。
OR 永真律(validity): OR NOT T
三个运算符全都用到的德摩根律(Demorgan's Laws):
AND 德摩根律:NOT AND NOT OR NOT
OR 德摩根律:NOT OR NOT AND NOT
这时对于任意一个只含有 NOT、AND 和 OR 的命题公式,都可以通过以上的公理,转化为范式。事先说明一点,NOT 的作用范围仅有一个命题变量时,NOT 也作为这个变量的一部分,而不是一个符号了,不影响范式。(用时间复杂度来分析的话就是可以 取反一个变量,不是瓶颈)
然后……转化过程复杂得要命,需要具体情况具体分析。书上也只是举了个例子。转化范式时,可以根据需要添加任意变量。
范式不能出现这种情况: OR AND 这种把 露在外面的形式。必须严格把每个变量都套括号里面。
应该有多项式时间复杂度转化范式的方法吧,我没查到。
谓词公式
捏麻麻滴,难死我了。
本文来自博客园,作者:0htoAi,转载请注明原文链接:https://www.cnblogs.com/0htoAi/p/16464220.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步