欧几里得算法中的归谬法和反证法 逻辑与算法之七
思索《几何原本》第七卷命题1的证明,是一件十分有趣的事情。
回忆我的小学和中学,好像没有学过反证法似的,归谬法更没有印象。不过,这也许是儿时的记忆有误。数学当中,如果一个命题直接不大好证,我们可以绕个弯,先证明它反面不成立,然后就可以推出,那个待证的原命题是成立的。老师说这样证明有效,你还能反驳什么呢?不过,我们的水平难以反驳,后来真有人反驳这一点。凭什么?一个和原命题相反的命题它不成立,就证明原命题成立了呢?
这一篇小文,先给出我对原本七卷那个命题1证明的理解。原本证明过程的叙述太为简洁,我加上了一些自己的理解,给出该命题1的证明。这个证明过程,几乎就是在使用归谬法(Reductio ad absurdum),也可以说使用了反证法(proof by contradiction)。读《几何原本》,可以让我们对这两个证明方法有更精准的认知。
第七卷命题1:(《几何原本》第215页,天津科技出版社2019年版)
设有两不等自然数,依次从较大数减去较小数,若所得余数总是无法量尽它前面一数,直至最后余数为1,则该两数为互质数。
证明:
设较大数为AB,较小数为CD,如果该两数满足命题1条件,结果却不是互质数。
1)若AB和CD不是互质数,则依据几何原本命题12互质数定义,至少存在一个数,可被这两个数整除,也就是这两个数一定至少有一个公约数,设这个数为E。
可以用3条线段分别表示AB,CD和E。
2)我们先用CD量尽AB,需要多少次,就量多少次,这相当于做除法。
3)因为AB大于CD,最后可得余数FA。而且,你已经量到了最后,剩下的FA自然是小于CD。
4)对FA重复以上步骤,用FA量尽CD,也是需要多少次,就量多少次,也是做除法。
5)因为CD大于FA,不断重复这一过程,最后可得余数HA=1,
1线段图表照
6)不断重复这个求余数的过程,最后的余数就是一个单位,即表示数字1的线条,如上图HA。
7)于是我们有:E除尽CD,CD除尽BF,所以,E也除尽BF。(1,传递)
8)我们还能有:E可以除尽AB,E可以除尽CD,则E也可以除尽AB-CD。(2,直观)
9)并且,因为E可以除尽AF,AF可以除尽DG,所以,E也可以除尽DG。(3,传递)
10)进一步,因为E可以除尽CD,E可以除尽DG,所以,E也可以除尽CD-DG=CG而获得的CG,(4,直观)
11)最后,因为E可以除尽CG,CG可以除尽FH,所以,E也可以除尽FH,(5,传递)
12)所以,E可以除尽AF,又可以除尽FH,留下AF-FH=HA=1,并没有除尽,这种情况是不可能的。
13)所以假设不成立,
14)由此而证明命题1。
但如文本注释所示,欧几里得获得的中间结论1到5,虽然直觉上似乎都没有问题,恐怕正如伊壁鸠鲁学派的嘲弄者所言,就连笨驴也可以懂这常识,哪里需要证明?但一个严格的演绎体系,凭直觉是不行的,每一步都得有体系内的依据。就此而言,欧几里得建立起这个智慧大厦,功盖万世,但在严格性和很多方面,还真是得有人去批评和完善。不然,这科学大业,何以进化?其实,岂非科学大业,各行各业都应该是这个道理。
好了,还是回到两种证明方法,归谬法和反证法上来。
也许不少人把反证法和归谬法看作是一个方法,非专业情况下,混为一谈可以谅解。但对讲究严格性和科学性的数学与逻辑学科而言,二者则是不应该混淆的。
如果我们意在反驳一个命题,用间接的方式来反驳,我们在这时候就常常使用归谬法。英文使用拉丁文reductio ad absurdum,来表达这个方法。命题1的证明中,将其中的1)-12)单独抽取,它就是一个对于命题“AB与CD不是互质数”的反驳,最后推出不可能,就反驳成功。
而如果我们需要反证法来获得结果,常常需要在反驳基础上再使用两个重要的逻辑规律,一个是排中律,一个是矛盾律。反证法的英文表述正好说明了这一点,英文反证法的语词是(proof by contradiction),借助矛盾获得证明。矛盾律让我们需要确定,一对看来相反的命题是否具有矛盾关系。
这也是逻辑与数学的精微之处,两个看似相反的命题不仅可能是矛盾的,也可能不是矛盾的,而是反对的。所以得有了这个确认,我们才能使用排中律:两个互相矛盾的命题之间没有第三者。
既然已经证明一方的命题为假,和它矛盾的另一方就一定为真,这就是在使用排中律。就此而言,几何原本第七卷的命题1中所使用的反证法,也有确认一对命题是否是矛盾命题,再来确认原命题真,那才是严格的。就这一点,几何原本也有待完善之处。不过,人都天生有偷懒就便的习气,有时候也不是不严格,而是著者自身的毛病。这个世界大概多为俗人,就是智者也不能称为圣人,哪里免得了做人的俗气。
存在感是指的当下,但人都有历史感,总希图对过往的痕迹排个顺序。就历史感而言,给人的感觉是先有归谬法,然后才出现反证法。归谬法自然也是希腊人的功劳,一般认为,柏拉图在他的《巴门尼德》篇中首次记载了归谬法的出处。
埃利亚学派的芝诺(前490-430)在与苏格拉底的对话中提到:他说巴门尼德假定“世界是一”,要比“世界是多”更有道理。为什么呢?因为从“世界是多”,可以推出许多不可能的荒谬结论,这就是芝诺的反驳式论证方法:归于不可能的论证(reductio ad impossibile)。当这种归于不可能的论证用到肯定一个矛盾命题的真的时候,归谬法就成了反证法。(《柏拉图对话集》第402页)
2柏拉图对话集
3柏拉图(前428-348)和亚里士多德
4反证法和归谬法图表
这个论证方法,大概也是亚里士多德在他的《工具论》中发掘出逻辑三个基本规律的源头吧,这留待以后讨论。
篇末之时,得提提反证法后来受到的一个挑战。如本文开头所言,凭什么?一个和原命题相反的命题它不成立,就证明原命题成立了呢?
20世纪的数学学派出了个直觉主义,他否定逻辑规律中的排中律。认为排中律仅存在于有限集合之中,对于无限集合则无效。这个提法后来构成了构造性数学的群体,虽然并未影响反证法的继续使用,但无疑是我们今天使用反证法的一个提醒。
算法和逻辑的这几篇简单而粗糙小文,写到这里,算是对古代逻辑与算法思想的极简回顾。下一篇,该是跨越近乎千年的中世纪回顾了。2019/10/28
来源:https://blog.csdn.net/weixin_41670255/article/details/102756978