||
公理化逻辑系统的缺陷
——从计算机的思维到人类的思考之二
从一个小故事说起:
据说,在一座山上,住着一位年老的智者,人们盛传他能回答任何人的任何问题。有个小男孩试图愚弄他,于是就抓来了一只小鸟去找智者。
小男孩把小鸟抓在手心,问老人:“都说你能够回答任何人提出的任何问题,那么请你告诉我这只鸟是活的还是死的?”。
老人完全明白这个孩子的意图,便说:“孩子啊,如果我说这鸟是活的,你就会马上捏死它;如果我说它是死的呢,你就会放手让它飞走。你看,孩子,你的手掌握着生杀大权”。
作为一个故事,这很容易理解,如果把它形式化,那就显的神奇了,看如下这个定理:
“不存在这样一个程序(算法),它能够计算任何程序(算法)在给定输入上是否会结束(停机)”。
定理是这样证明的:
假设存在这样一个能判断停机问题的程序P,现在我们就可以构造一个程序A,在程序A中,A向P询问,A是否是可停机的,如果P回答A是可停机的,A就进入一个死循环;如果P回答A是不可停机的,A马上就结束;因此,A的存在就证实了P的不存在。当然,这个证明其实并不能完全证实不存在停机判断程序(比如说,P对A进行测试的过程中,可以对先回答停机,或不可停机,测试若干次之后再给出最终的结论),但是,程序P的构造困难恰恰反映了现有形式化逻辑的局限性,无法对客体的独立性进行干预——本质上说,这是一个博弈问题。
类似的问题也常常以另外的面孔出现,请看如下的一个悖论:
假设有一个集合A={1,2,3,4},同时存在4个判断命题:
⑴X是奇数;
⑵X是偶数;
⑶X是理查德数;
⑷X是3的倍数;
首先我们假定有一个映射方法F,使得4个命题可以分别被映射到一个编码值,不妨令四个判定命题的编码值是1,2,3,4,显然,编码值与命题之间是一一对应的;
然后,我们定义理查德数的性质:由于4个命题分别在集合A中确定了一个子集(比如,编码值为1的命题对应{1,3},编码值为4的命题对应{3}),如果一个命题的编码值不属于其命题确定的子集(比如4),那么称该编码值是理查德数。
显然,1,2都不是理查德数;
再后,我们分析集合A上的数字的性质,显然,每个命题的真假都可以转换为集合A上的纯数学判定—— 一个数学命题,要么是真的,要么是假的。
现在,问题是: 3是否是理查德数?
假设3是理查德数,即编码值为3的命题对应的集合为{3,4},那么,3属于集合{3,4},根据理查德数的定义,3不是理查德数;
假设3不是理查德数,即编码值为3的命题对应的集合为{4},那么,3不属于集合{4},根据理查德数的定义,3是理查德数;
综上所述,3是否是理查德数是不可判定的。
如果我们把映射方法F叫做哥德尔编码,而把编码值叫做哥德尔数,我们就得到了不完全定理。
通过对以上问题的讨论,我们可以发现其中的一些共同的特点:
主体基于自身的智能特性,试图对客体作出某种正确性(或客观性等)判断,但是,怪异的是,客体(或命题)知晓了主体的判断方式,并充分利用了主体的判断方法,使得主体的判断不能完全实现——尽管主体的判断可能是正确的,但这种正确性完全取决于客体的意愿而不是主体的智能。
以上几个事例,都可以做成一个如下的简化版本:
“这个语句是错的”。
不要小看“这个语句”,由于“这个语句”对概念语义“错的”有了理解,可以说,他得到了一口仙气,这口仙气已经使得他具有一定的博弈本领(或许这就是点石成金的关键所在吧,据说诸葛亮当年摆下的石头阵,之所以能抵挡十万骑兵,靠的也就是这种理解力)。
休谟说,一切归纳问题的结论都是可以怀疑的。事实上,从我们上面的分析可以看出,一切命题自身的真假都是不可确定的。
如果命题自身的真假都不能确定,那么公理化系统的理想——试图从几个不容质疑的公理出发,通过形式替换,得到新的正确命题,也就只能是——银样蜡枪头,空有一副好皮囊了。
寻找几个所谓的公理范式,然后做一些形式推理,这就是现有计算机思维不及人类的另一个重要原因。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-31 05:24
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社