贫乏却最美好的三段论和神奇而不太严格的欧几里得算法-逻辑与算法之六
贫乏却最美好的三段论和神奇而不太严格的欧几里得算法- 逻辑与算法之六
三段论是没有数字计算的推理,虽然如有些学者所言,这个来自希腊语的术语“三段论”本身就有计算的涵义。但希腊语的这个计算也许只是在推理意义上的计算或者演算,并没有数字计算的涵义。
照片1三段论的希腊文和英文
三段论与计算无缘,同时,它也因其是简单得不能再简单的推理,遭到近现代许多人的批评,认为它是一门毫无用处的东西。的确,三段论的内容比较贫乏,以至于无法表达几乎是同时代、同一个地区出现的算术和欧几里得几何学推理(《计算进化史》第14页)。但近代最伟大的一位数学家,却给这个贫乏的三段论以极高评价,这个人,就是德国哲学家也是数学家的莱布尼兹(1646-1716)。
在他所著《人类理智新论》论理性那一章,第十七章中,在讨论了三段论是有用还是无用时,莱布尼兹也承认,三段论的经院形式很少有用,即使用得着,也会太冗长太麻烦。但莱布尼兹很快就话锋一转,接着说:
“你相信吗?我主张,三段论形式的发明是人类心灵最美好、甚至也是最值得重视的东西之一。这是一种普遍的数学,它的重要性还没有被充分认识:并且我们可以说,其中包含着一种不谬性(其实是必然性)的技术,只要我们知道并且能够很好地加以运用的话,这不是永远能办得到的。”(《人类理智新论》第573页)
照片2《人类理智新论》
照片3莱布尼兹
我们现在学习的三段论,四个格,256个式,24个有效式,虽然简单,但已经包含现代公理体系的基本要素(参见卢卡西维兹《亚里士多德三段论》)。所以,从公理体系角度看,三段论在先,几何原本在后。遗憾的是,因为其过于简单,先后不过百年的两个公理体系,在后的似乎未从在先的创造中吸收什么东西。
照片4亚里士多德三段论
其实,普适性的科学发现,并不在意你用它还是不用它,那是一种永恒和无限,一种超越世俗的精魂。如庄子所言:
“若夫乘天地之正,而御六气之辩,以游无穷者,彼且恶乎待哉!故曰:至人无己,神人无功,圣人无名。”(《庄子通释》第4页)
照片5庄子
不过,三段论还是有个很重要的功绩值得显摆显摆,那就是,卢卡西维兹在其著作中特别强调的,亚里士多德最伟大的一个发明:
“在正确的三段论中,所有的词项都是由字母代表的,也就是说,是由变项代表的,例如‘如果R属于所有S并且P属于有些S,那么P属于有些R。’
把变项引入逻辑是亚里士多德的最伟大发明之一。就我所知,一直到现在没有一个哲学家或语言学家注意到这个最重要的事实,这几乎是令人难以置信的。”(《亚里士多德三段论》第16页)
在推理中使用变元,这是人类在语言使用上的一个飞跃,研究亚里士多德的权威学者罗斯就认为,正是因为亚里士多德开始使用变项,使得他成为逻辑学的创始人,成为当之无愧的逻辑学之父。(参见同上页)
同样可惜的是,几何原本的命题和定理的描述,也没有使用亚里士多德意义上的变项,而是使用的自然语言。所以,欧几里得基于推理的计算非常神奇,但在表达的严格性和推演的严格性上还远非完美。
变项的使用,大大扩充了人们思维的视野。从个体到类,从小类到大类,一直到范畴,这是逻辑和哲学把人的视野从有限延申到无限。而一旦变项开始使用到数学,思维就跨越了类。思维的抽象层次,仿佛从空间升腾到云端。变项的无穷指向,给人类的抽象思维提供了无穷想象的时空。
除了变项,三段论还用到了逻辑证明中的归谬法和反证法,这种推理证明方法,广泛地出现在几何原本之中。我们有关推理的思考,自然要从三段论过渡到几何原本。
基于推理的计算,最令人惊叹的古典模式是欧几里得的辗转相除法,这被今天的算法理论称之为欧几里得算法。《几何原本》的第七卷给出命题1和命题2(见《几何原本》第215-217页),就见证了这样一种算法的本源。欧几里得的伟大之处,不仅在给出算法,还在命题给出之后,都进行了命题的推理证明。证明所使用的方法,就是我们在前述三段论中提到的归谬法和反证法。
我还是不按译本,而按现代通常的逻辑或者数学的术语,来理解伟大的欧几里得算法。不希望篇幅太长,本篇为其算法的神奇而惊叹,用实例来体验。下篇再来品尝他的推理证明,领略其中使用的归谬法或者反证法吧。
这两个有关求最大公约数的命题,可简述如下。
命题1:若在两个不等的自然数中,每当用其中较大的数减去较小的数,就得到一个余数。直到余数小于小数,再从小数中连续减去余数直到小于余数。这样一直下去,如果余数除不尽前一个数,直到最后的余数为1,则此两数是互质(素)数。
命题2:若两个自然数不是互质数,则可以找到它们的最大公约数。
完全用自然语言表述的命题1,实际上给出了,显示两个不等自然数互质数的计算方法。那就是,在整个计算过程中,不断地辗转相减。我们先用一对数字实例,大数a1=3001,小数a2=907,来实例说明这个命题1。这当然是很原始,很笨拙的解释算法的方式。如果数字更大更长,计算步骤自然也就更为宏大,最后变成不可能。幸亏希腊有了逻辑学,我们才可能用逻辑的方式来理解计算。
我们开始用实例验证:
第一步,3001-907=2094,余数2094,
第二步,2094-907=1187,余数1187,
第三步,1187-907=280,余数280<907,
所以,
第四步,907-280=627,余数627,
第五步,627-280=347,余数347,
第六步,347-280=67,余数67<280
所以,
第七步,280-67=213,余数213,
第八步,213-67=146,余数146,
第九步,146-67=79,余数79,
第十步,79-67=12,余数12<67,
所以,
第十一步,67-12=55,余数55,
第十二步,55-12=43,余数43,
第十三步,43-12=31,余数31,
第十四步,31-12=19,余数19,
第十五步,19-12=7,余数7,
第十六步,12-7=5,余数5
第十六步,7-5=2,余数2,
第十七步,5-2=3,余数3>2,
所以,
第十八步,3-2=1,余数1。
这表明,3001和907这两个自然数互质。
你该惊叹古希腊欧几里得的智慧了吧。
命题2的说明,我们举《原本》注释中给出的例子,大数a1=3009和小数a2=884,其并非互质结果的计算步骤就是:
第一步,3009-884=2125,余数2125,
第二步,2125-884=1241,余数1241,
第三步,1241-884=357,余数357<884,
所以,
第四步,884-357=527,余数527,
第五步,527-357=170,余数170,
第六步,357-170=187,余数177,
第七步,187-170=17,余数17。
余数17可以被前面的170除尽,
由此,3009和884这两个自然数并非互质数。
由此,依据命题2,这两个自然数就有公约数17。这个公约数是否是最大公约数,还有待证明。但这个命题的证明不是指的某一对自然数,而是指所有满足条件的任意一对自然数。
你不能不从骨子里佩服这位天才的欧几里得,如此复杂的计算过程,被欧几里得如此清晰地表述出来。而且这里的计算,仅仅只是举出了一对数字实例,而命题指称的是整个类别,所有符合条件的自然数对。
逻辑中之所以会出现全称和特称的量词,出现变元等等术语,这个例子大概已经说明了问题。这留待以后再来探究讨论。我们把注意力,在用例子说明了命题1和命题2之后,下一篇,集中到欧几里得这个神奇算法的推理和证明中去。
在古希腊时代,第一个完整的逻辑系统是三段论,出现在《工具论》之中。而第一个完整的几何学公理系统则出现在《几何原本》中。在它们之前,无论是逻辑学还是几何学,顶多是零散局部的记录。而且,好像还没有看到纯粹的数学家来讨论归谬法和反证法,多为哲学家所考虑。也许,欧几里得算法中用到的推理方法,是把数学与逻辑联系起来的最早一部文献。也许,这会给我们理解逻辑,也为我们理解数学产生新的启示。2019/10/23