弗雷格:从突破到绝望
弗雷格提出了把普通数学中一切演绎推理都包含在内的第一个完备的逻辑体系,他用逻辑分析工具来研究语言。
弗雷格的概念文字
1879年,他出版了一本不到100页的小册子,名为《概念文字》。其副标题是:“一种模仿算数语言构造的纯思维的形式语言”。
弗雷格试图找到一个能够包含数学实践中全部演绎推理的逻辑系统。布尔把普通代数作为出发点,用代数符号来表示逻辑关系。就像其他的数学分支那样,由于弗雷格想以他的逻辑为基础而把代数构造出来,所以引入自己的特殊符号来表示逻辑关系以避免混乱是很重要的。
布尔曾经认为用于表示其他命题之间关系的命题是二阶命题,在这里,弗雷格发现那些连接命题的关系也可被用于分析命题的结构,他把这些关系充当了他的逻辑的基础。后来这一重要思想被普遍接受,成为了现代逻辑的基础。
例如,弗雷格会用逻辑关系如果……,那么……
来分析句子
所有的马都是哺乳动物。
即
如果x是一匹马,那么x是一个哺乳动物。
类似地,他会用逻辑关系……且……
来分析句子
有些马是纯种的。
即
x是一匹马,且x是纯种的。
然而,在这两个例子中,字母x的用法是不同的。在第一个例子中,我们想说的是,无论x可能是什么,即对于任何x,所断言的都为真。但在第二个例子中,我们想断言的只是对于某个x。
在目前使用的符号体系中,对于任何被记作∀,对于某个被记作∃。于是,两个句子可以写为如下形式:
(∀x)(如果x是一匹马,那么x是一个哺乳动物),
(∃x)(x是一匹马,且x是纯种的)。
符号∀是一个倒写的A,暗示“所有”(All),称为全称变量。符号∃是一个侧写的E,旨在暗示“存在”(exists),称为存在量词。于是第二个句子可以读作
存在一个x,使得x是一匹马且x是纯种的。
通常把逻辑关系如果……,那么……
记为⊃,把……且……
记为∧。利用这些符号,上面的句子就变成:
(∀x)(x是一匹马⊃x是一个哺乳动物),
(∃x)(x是一匹马∧x是纯种的)。
甚或更简洁地写成:
(∀x)(马(x)⊃哺(x)),
(∃x)(马(x)∧纯(x))。
在上一章中,我们举了乔和苏珊用逻辑来寻求乔的支票本的例子。在那个例子中,我们用字母简化句子如下:
L=乔把支票本忘在超市。
F=乔的支票本在超市找到了。
W=乔昨晚在饭馆开了一张支票。
P=昨晚开了支票之后,乔把支票本放在了他的夹克口袋里。
H=乔从昨晚起就没有再用过他的支票本。
S=乔的支票本仍然再他的夹克口袋里。
他们的推理可以归结为如下模式:
前提:
如果L,那么F
非F
W且P
如果W并且P并且H,那么S
H
结论:
非L
S
如果用符号¬来表示“非”,并且利用我们已经介绍过的其他符号,则上面的句子就变成:
L⊃F
¬F
W∧P
W∧P∧H⊃S
H
-------
¬L
S
还有最后一个符号:∨表示……或……
下表是对我们已经介绍过的符号的总结:
¬ 非……
∨ ……或……
∧ ……且……
⊃ 如果……,那么……
∀ 任何
∃ 某个
在上一章的结尾,我们举了一个逻辑结构无法用布尔的方法进行分析的例子,即
所有失败的学生或是糊涂的或是懒惰的。
而对弗雷格的逻辑而言,它是很简单的。如果用
F(x)表示x是一个失败的学生
S(x)表示x是糊涂的
L(x)表示x是懒惰的
则这个句子可以表示为:
(∀x)(F(x)⊃ S(x)∨ L(x))
现在我们应该很清楚了,弗雷格并不仅仅是对逻辑进行一种数学处理,他实际上创立了一种新的语言。在这一点上,他以莱布尼茨的普遍语言思想为导向,只要恰当地选择符号,语言就可以获得力量。
这种语言的表达能力可以从下面的例子中体现出来,其中我们用L(x,y)来表示x爱y:
每个人都爱某人 (∀x)(∃y)x爱y (∀x)(∃y)L(x, y)
某人爱每个人 (∃x)(∀y)x爱y (∃x)(∀y)L(x, y)
每个人都被某人所爱(∀y)(∃x)x爱y (∀y)(∃x)L(x, y)
某人被每个人所爱 (∃y)(∀x)x爱y (∃y)(∀x)L(x, y)
下面是另外一个例子:
每个人都爱一个情人
我们先把它写成
(∀x)(∀y)[y是一个情人⊃L(x ,y)]
如果我们把“一个情人”理解为“爱某个人”,则我们就可以用(∃z)L(x,z)来代替y是一个情人,最后我们得到:
(∀x)(∀y)[(∃z)L(y, z)⊃L(x,y)]
弗雷格发明形式句法
布尔的逻辑只不过是需要用普通数学方法进行发展的另一数学分支,这当然包括使用逻辑推理。但是用逻辑来发展逻辑有些循环。
在弗雷格看来,这是不可接受的。他的目标是要表明一切数学如何可能被建立在逻辑的基础之上。为了令人信服地做到这一点,弗雷格必须找到某种不用逻辑来发展他的逻辑的方法。
他的解决方法是用铁面无情的精确的语法规则或句法规则把他的概念文字发展成一种人工语言。这就使得逻辑推理表示为机械演算即所谓的推理规则成为可能,这些规则仅仅与排列的样式有关。这也是第一次用精确的句法构造出形式化的人工语言。从这个观点看,概念文字是我们今天使用的所有计算机程序设计语言的前身。
弗雷格最基本的推理规则是这样来使用的:如果◇和△是用费雷格概念文字写成的任意两个句子,那么如果◇和(◇⊃△)都得到断言,则句子△也可以得到断言。关于这一演算,我们只需注意它的执行,而不需要理解⊃是什么意思。
当然,我们可以看出这条规则是不可能导致错误的,因为它仅仅能够使我们从◇和(如果◇,那么△)推出△。但在实际运用这条规则的时候,只需把组成◇这个句子的一个个符号与长句第一部分的符号进行对应。这条规则呗称为“肯定前件推理”(modus ponens)。在那个寻找乔的支票本的例子中,我们的前提是:
W∧P∧H⊃S
如果我们也能够断言W∧P∧H,那么该规则就可以使我们断言所需的结论之一S。下面就是对应的情况:
W∧P∧H⊃S
W∧P∧H
费雷格的逻辑已经成了在数学系,计算机科学系和哲学系教给本科生的标准逻辑,并且间接地帮助图灵提出了一种通用计算机的思想。
我们现在通常称弗雷格的逻辑为一阶逻辑。这是要把它与量词∀和∃既作用于属性又作用于个体的逻辑系统相区别。下面是一个二阶逻辑的句子的例子:
(∀F)(∀G)[(∀x)(F(x)⊃G(x))⊃(∃x)(F(x)⊃(∃x)G(x))]
事实上,弗雷格的缺考虑了属性的量化,从而超越了一阶逻辑,所以我们把一阶逻辑称为“弗雷格的逻辑”是不确切的。
弗雷格的逻辑比布尔的逻辑前进了一大步。第一次有一个精密的数理逻辑体系至少在原则上包含了数学家们通常使用的全部推理。从弗雷格逻辑中的某些前提出发,我们可以尝试运用弗雷格的规则以获得希望得到的结论。
伯特兰·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。
例如,3这个数将被解释为逻辑的一部分。自然熟时即和的一种属性·罗素的信为何如此具有毁灭性
弗雷格希望能为自然数提出一种纯粹逻辑的理论,从而证明算术,微积分的所有进展乃至一切数学都可以被看成逻辑的一个分支。
于是,弗雷格便希望能用纯逻辑术语来定义自然数,然后再用他的逻辑导出它们的性质。例如,3这个数将被解释为逻辑的一部分。
自然熟时即和的一种属性,即它的元素的数目。3这个数是为下面所有事物所共有的某种东西:三位一体,并架拉车的三匹马的集合,三叶草的叶子的集合,字母{a, b, c}的集合。显然,我们可以看到这些集合中任意两个的元素数目都相等。我们可以把它们一一对应起来。弗雷格的思想是要3这个数等同于所有这些集合的集合。也就是说,3这个数只不过是所有3个一组的事物的集合。一般而言,一个给定集合的元素数目可以被定义为:能够与给定集合一一对应的所有那些集合的集合。
弗雷格关于算数基础的两卷著作阐述了如何利用他的《概念文字》所提出的逻辑发展出自然熟的算术。伯特兰·罗素在1902年的信中向弗雷格指出,他的整个工作是不一致的,也就是说是自相矛盾的。事实上,弗雷格的算术使用了集合的集合。罗素在信中指出,用集合的集合进行推理很容易导致矛盾。
罗素的悖论可以这样来说明:如果一个集合是它自身的一个成员,那么就把这个集合称为异常的;否则就称它为正常的。
一个集合如何可能是异常的呢?
罗素自己举的关于异常集合的例子是:所有那些能够用数目少于19的英语单词定义的东西所组成的集合(the set of all those things that can be defined is fewer than 19 English words)。由于方才我们仅用16个(英文)词就把这个集合定义了,所以它属于它自身,从而是异常的。另一个例子是:所有不是麻雀的东西所组成得集合。无论这个集合是什么,它都肯定不是一只麻雀,所以这个集合也是异常的饿。
罗素指出,如果把所有正常集合所组成的结集合记为ε,那么ε是正常的还是异常的呢?
答案必定非此即彼。但情况似乎并非如此。ε是正常的吗?如果ε是正常的,那么由于ε是由所有正常集合所组成的集合,它就将属于自身。而这恰恰说明它是异常的。如此一来,ε就只能是异常的了。可是,由于它是由所有正常集合所组成的集合,所以它将不属于自身。而这恰恰又使它成为正常的!无论哪个结果都导致了矛盾!
罗素的悖论是大量令人大伤脑筋的有趣难题之一。而当费雷格收到罗素的信时,他可没有觉得有趣。他马上意识到,这一矛盾可以从他用语发展算术的系统中导出。
如果一则数学证明陷入矛盾,那么就证明该论证的前提之一是错误的。从古至今,这条原则都被当成一种有用的证明方法:要证明一个命题,我们只要说明否定它会导致矛盾就可以了。但是对于可怜的弗雷格来说,这一矛盾表明他的体系所基于的那些前提都是靠不住的。弗雷格再也没有从这个打击中恢复过来。
弗雷格和语言哲学
1892年,弗雷格在一份哲学杂志上发表了一篇论文,它的题目或可译为“论含义与指称”(On Sense and Denotation)。除了弗雷格的逻辑,正是这篇文章才使哲学家对他的工作如此感兴趣。
弗雷格指出,我们可以用不同的语词来命名或指称同一个具体对象,尽管它们有着非常不同的含义或意思。他的著名例子是“晨星”和“昏星”。它们的含义是非常不同的:一个是指日落后看到的星星,另一个是指日出前看到的星星。但两者都指称同一颗星体——金星。两者指的是同一对象。
弗雷格的某些考虑与替代性有关:考虑下面这个句子
金星是晨星
它与
金星是金星
是非常不同的,尽管相对于其中的某一句话而言,另一句话只是替换了一个指称相同对象的语词而已。
这些思想标志着20世纪哲学的一个主要分支——语言哲学的开端。可以说,当代计算机科学的某些重要概念也是源自此文章。比如计算机程序设计语言中出现的惯用语的含义,为这样一种语言提供语义学,完全是基于弗雷格的思想。
弗雷格与莱布尼茨之梦
弗雷格认为他的《概念文字》体现了莱布尼茨所憧憬的逻辑的普遍语言。的确,弗雷格的逻辑可以处理林林总总,各不相同的对象。但在莱布尼茨看来,这很可能令他失望。
它至少在两个方面未能如他心意。莱布尼茨曾经设想过这样一种语言,它不仅能够进行逻辑演绎,而且也能自动包含科学与哲学中的一切真理。莱布尼茨曾经设想过一种能够成为有效的计算工具的语言,这种语言将通过对符号的直接操作而使逻辑推理自动进行。
事实上,在弗雷格的逻辑中,除了那些最简单的演绎,其余的情况复杂得让人难以忍受。这些演绎不仅长得可怕,而且在弗雷格的概念文字的逻辑中,它的规则也没有为判定某个结论是否可以从给定前提中推导出来提供计算步骤。
由于概念文字的确完全包含了普通数学中所用到的逻辑,所以用数学方法来研究数学活动本身也就成为可能了。
然而,正是在证明弗雷格的逻辑中某一推理是否正确的过程中,阿兰·图灵发现了某种必定会令莱布尼茨欣喜的东西:他发现原则上可能设计出一种通用机器,它能够自行任何可能的计算。