Mathematics for computer science-Patterns of Proof

来源:互联网 发布:淘宝店铺公告图片尺寸 编辑:程序博客网 时间:2024/05/17 18:15

2、证明模式(Patterns of Proof)

2.1、公理法(The Axiomatic Method)

建立数学真理的标准程序是由公元前300年在埃及亚历山大里亚工作的数学家欧几里得发明的。他的想法是从五个基于直观经验且不可否认的几何假设开始。例如,“两点确定一条直线”就是其中一个假设,类似这种简洁并不可否认为真的命题被称作公理。

从公理出发,欧几里得通过给出相应的证明确定了很多额外命题的真伪。证明是从公理和已被证明的命题出发,并以提出问题的命题作为结论的一系列逻辑推理过程。你可能在高中几何课上写过很多证明,在这本书中,你也会见到很多。

对于已经被证明的命题,我们有几种不同的术语来表征其在更为广泛领域中的作用:

  • 重要的命题被称作定理(theorem)。

  • 引理(lemma)是用来证明后续命题的一个初始命题。

  • 推论(corollary)是由定理或引理经过少量逻辑推理步骤得到的命题。

以上定义并不十分精确,实际上,又是一个好的引理往往会比它欲证明的定理更为有用。

欧几里得的公理-证明方法现在被称作公理法(axiomatic method),是当今数学的基础。实际上,少数几个公理,统称为ZFC(包含选择公理的策梅洛弗兰克尔集合论),加上几个逻辑推理规则,足以推导出所有的数学。

2.1.1、我们的公理

在学习和证明数学基础中,ZFC公理起着很重要的作用,但是出于应用的目的考虑,它们又显得太过于原始。利用ZFC证明定理就像利用二进制编码进行编程而不是一门完善的程序语言。例如,利用ZFC证明“2+2=4”需要超过20000步的逻辑推导。因此我们会选取一些高中就接触过的公理作为我们的基础。

这可以让我们很快的入门,但是你可能也会对这套规范并不精确的公理系统感到困惑。比如在一个证明中,你可能会想知道“对于这个事实,我必须证明它还是说可以把它作为一个公理来使用?”你可以向他人寻求指导,但回答往往并不绝对,因为你得考虑到证明过程你所涉及的相关假设,也不要通过把所有要证明的命题定义为公理来逃避作业和考试。

2.1.2、逻辑推论

逻辑推论(推理规则)是被用来指明如何利用已被证明的命题来证明新的命题

“如果P且PQ是真,则Q为真”,这条推理规则被称作肯定前件(假言推理)。也被写作:

Rule 2.1.1(假言推理)

P,PQQ

横线上的是前提(前件),横线下的是结论(后件)。当前提得到证明时,我们可以得到结论也得到证明的结论。

推理规则的关键是必须合理健全的:使前提为真的所有真值分配都必须能保证结论为真。所有当我们以一个正确的前提开始,应用一个合理且正确的推理规则,那么我们所证明的任何结论都为真。

PQ的真值表可以用来说明为什么假言推理是合理健全的,因为对于PPQ都为真,且结论Q为真只存在一种情况

P Q PQ F F T F T T T F F T T T

如下是一些常用的推理规则:

Rule 2.1.2(前提三段论)

PQQRPR

Rule 2.1.3(拒取式)

PQNOT(Q)NOT(P)

Rule 2.1.4

NOT(P)NOT(Q)QP

如下推理并不是健全的

Non-Rule

NOT(P)NOT(Q)PQ

因为当命题P为真,且命题Q为假时;可知,前件为真但是结论为假。

一个命题推理规则合理健全的标准为其前件包含所有条件的AND蕴含其结论为真。

就公理而言,我们不会过于拘泥与这一系列的推理规则。证明中的每一步应该是简洁明了且符合逻辑的;并且在证明中应说明哪一个已被证明的事实被用来推导出新的结论。

2.1.3、证明模板

原则上一个证明可以是由公理或者已证明命题来推导问题中提到的命题的任何一系列逻辑推理步骤,这种构造证明过程的自由看起来十分有效,那么我们到底该如何开始进行一个证明呢?

好消息是,许多证明都遵循与少数几个证明的标准模板。当然每一个证明有着自己的细节,但是证明模板至少提供了一个证明大纲。在这一章接下来的几节中,我们会提到一些标准模板及其核心思想,以及常见的问题并给出一些示例。这些模板一起讨论,有的可以给你一个大纲,有的则可以提供给你相关的细节。我们会在第三章讨论其他更为复杂的证明技巧。

以下内容会具体到你在纸上应该写下什么,当然你可以用自己的方式来进行表述,我们只是提供一些可以用来描述的方法。

2.2、分类证明(Proof by Cases)

将复杂的证明进行划分,并分别对划分的不同情况进行证明是一个很有效的策略。实际上在前面我们利用真值表来判断某些命题为真还是为假是就隐式地运用到了这个策略。
。。。。。。