罗素类型论研究(一),本文主要内容关键词为:罗素论文,类型论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
中图分类号:B561.54文献标识码:A文章编号:1007-905X(2005)02-0048-04
类型论是罗素为解决逻辑悖论而构造出的一个极其重要的理论,有评论家说,它和罗素著名的摹状词理论一起对分析哲学的发展起到了强劲的推动作用。与摹状词理论相比,类型论还不够成熟,也没有获得“哲学的典范”那样高的哲学地位,但它解决的问题、引起的问题,以及它蕴涵的哲学意义,到今天仍值得我们深深地反思和深入地探究。类型论的技术性强,内容艰深复杂,本文试图在阐释它主要内容的基础上来展开对它的分析与评价。
一、缘起与建构
康托尔集合论有一个用来说明“集合”的概括原则,该原则说:任一性质均可定义一个集合,集合的元素恰好具有该性质。概括原则可以用符号表示为S={x|P(x)},它等价于x(x∈S-P(x)),该式的一个意思是“任意对象均可作为集合的元素”。任一集合由于都可以看做对象,因而都可以考虑其是否属于自身(或是否是自身的一个元素)的问题,因此,根据概括原则,就可以从性质“不属于自身”出发去构造一个新的集合S,它是由所有那些不属于自身的集合构成的,即
“罗素悖论”产生了巨大的震撼力,它表明作为数学基础的集合论是不一致的,让整个数学大厦为之动摇,如何去解决它就成了摆在当时数学家们面前的一个十分紧要的问题。类型论就是罗素经过长期探索而构造出的一个解悖方案。
(一)从简单类型论到分支类型论
类型论有两种形态:一是《数学的原理》中的简单形态,二是《数学原理》中的分支形态,它们有联系也有差别。
罗素1903年在《数学的原理》中提出了一个解决悖论的初步方案,这个方案后来被称为简单类型论。罗素在这里指出,解决这类悖论的关键在于区分不同的逻辑类型。以此作为指导思想,罗素首先给出了类型的定义:“类型”即“命题函项的意义域”。据此,罗素区分了个体、个体的类、个体的类的类等不同层次的类型,指出一个类和它的元素属于不同的类型。罗索还提出了一个原则:“如果一个命题函项φx要有意义,其中的x应该要限于某一个类型。”[1]这样,根据类型的划分和这个原则就可以断定“x∈x”是无意义的,这就排除了”罗素悖论”。简单类型论虽然可以解决一些悖论,但罗素发现,还有一些悖论它解决不了,譬如一些与说谎者悖论类似的语义悖论[1]。这些悖论影响到了推理的基础,需要更进一步的解决方案。
1906年,罗素在《论超穷数理论和序数理论的某些困难》一文中提出了解决悖论的三种方案:(1)“之字形理论”,这是一种内涵理论,它要求依赖命题函项的内容来确定类的存在性;(2)“限制大小的理论”,这是一种外延理论,它主张依据命题函项外延的大小(要求“不太大”)来判定相应的类的存在性;(3)“无类理论”,该理论要点是不把类看做实体,而是看做逻辑的假定,是说话时的方便。罗素后来在解决悖论的过程中没有采用前两种方案,而走了“无类论”的路线,其结果就是“分支类型论”的产生[2]。
“分支类型论”的最终提出与罗素对“恶性循环原则”(实际上是禁止恶性循环的原则)的采纳有关。这条原则最早由数学家彭加勒(H.Poincaré)在1906年根据理查德(J.Richard)的思想提出来,后来被罗素明确化、具体化了。理查德在1905年提出了“理查德悖论”。该悖论是关于定义可数性的悖论,它涉及了康托尔的对角线方法,其构造大致是这样的:考虑所有的可以通过有限多个词定义的十进位小数,并令E是这些小数的集合。那么E是一个可数集,其元素可以按照第一个、第二个、第三个……这样的顺序排列。令N是下列定义的数字:如果在E中的第n个小数中的第n位数字是p,则令N中的第n位数字是p+1(或0,如果p=9)。这样,N就不同于E中的任一元素,即N不是E的元素。但是,我们已经用有限多个词定义了N。因此,N应当是E的元素。这样,N既是又不是E的元素[3]。理查德在发现他的悖论的同时进一步指出,实际上矛盾是不存在的,因为一个集合不能包含那些只能借助于该集合本身才能定义的对象。彭加勒采纳了理查德的思想,并建议把理查德在构造悖论时所使用的那种定义称为“非直谓的定义”。简明地说,“非直谓的定义”是指:用一个总体来定义一个对象,而这个对象又属于该总体。彭加勒认为,“非直谓的定义”包含了恶性循环,悖论的根源就在于它,所以应当禁止。罗素通过对一些悖论细致的分析,接受了彭加勒的原则,并做了进一步的充实和完善,《数学原理》中的“分支类型论”就是在此基础上提出来的。
(二)恶性循环原则
恶性循环原则是悖论的“诊断器”,罗素在用它分析了各种各样的悖论后指出,所有的悖论有一个共同的特征,即“自我指称性或自返性”。以古老的“说谎者悖论”为例,罗素认为,“我正在说谎”这句话“在其自身范围内必定包含自身”[4],他说:“说‘我正在说谎’的那个人实际上是在断定‘有一个我在断定并且是假的命题’。这可能就是我们所指的说谎的意思。为了避免矛盾,我们不得不把他那整个断定看做是他这个断定所适用的那些命题之一。这就是说,当他说‘有一个我在断定并且是假的命题’时,我们不得不把‘命题’这一词解释为也把他的下述陈述,即他正在断定一个假命题,包括在了命题之中。因此,我们不得不假定,我们有某种总体,即诸命题的总体。但这个总体包含只能用这个总体本身来定义的分子。因为,当你说‘有一个我在断定并且是假的命题’时,这个陈述惟有通过参照诸命题的总体才能获得它的意义。你并没有说在世界上存在的所有命题之中的哪一个才是你正在断定的并且是假的命题,因此,它预设了命题的总体在你面前延伸,而且有某个命题(虽然你没有说是哪一个)正在被断定是假的。十分显然的是,如果你首先假定这种命题的总体在你面前展现,以至于你不必选出一个确定的命题就可以说‘我正在断定这个总体中的某个命题是假的’,然而,当你必须进一步说‘我正在断定这个总体中的某个命题是假的’时,这个陈述本身就是你要从中选取的总体中的一个,那么很清楚,你就要陷入一种恶性循环。这恰好是你在说谎者悖论中所遇到的情形。假定你首先给定一组命题,并且你断定其中的某一个命题正在被断定是假的,那么,这个断定本身就变成这一组命题中的—个,因此,假定这组命题已经全部在那儿,这显然是谬误。”[5]从罗素所做的分析来看,他认为“说谎者悖论”的实质在于:假设了一个确定的命题的总体(其中所包含的命题的数量应该是确定的),而关于这个总体的一个陈述可以形成一个新命题。这个新命题(由于恶性循环)进入原有的总体,这就便得总体中命题的数目增大了;但是,扩大这个总体的范围并不能避免循环,因为论及这个总体的陈述的范围随总体的范围扩大在扩大。因此,罗素得出结论,我们不能断言“所有的命题”,“所有的命题”是一个不合法的总体,“所有的悖论都共同有这样一个关于总体的假定:如果它合理,它立即就由它自身所定义的新元素而扩大”[4]。“我们所有的悖论都犯了恶性循环的谬误。”[3]
由于悖论的出现都是涉及了一个不合法的总体,把了恶性循环推理的谬误,因此,罗素提出恶性循环原则就是为了针对引起悖论的那些不合法总体,其目的是要排除这类总体,消除恶性循环。罗素在《数学原理》中对恶性循环原则作了如下陈述:“‘凡牵涉到一个集合的全部分子者,它本身不能是该集合的一个分子’;或者反过来说,‘设某一集合有一个总体,如果它含有一些只能用这个总体来定义的分子,那么这个集合就没有总体’。我们称这为‘恶性循环原则’,因为它能使我们避免那些由假定不合法的总体而产生的恶性循环。”[3]罗素对恶性循环原则还有另一种表述方式:“设有对象的这样一个集合,如果我们假定这个集合有一个总体,它包含的某些分子将以这个总体作为前提,那么,这样一个集合就没有一个总体。说一个集合‘没有总体’的意思是:我们不能对‘它的所有分子’作出一个有意义的陈述。”[3]
从罗素对恶性循环原则的几种表述来看,该原则的核心思想是:没有一个总体能包含只有通过这个总体来定义的分子。如果某个总体的分子一旦被确定,那么这个“最初”确定的总体的范围就不能再改变。悖论之所以产生就在于它们违反了这个原则,它们都包含将总体“最初”的范围不合法的扩大,这就改变了总体最初的构成。悖论之所以会引起这种对总体最初构成的改变,是因为它们把那些涉及“最初”总体的陈述看做是“最初”总体的一个分子。而这就是恶性循环,它正是恶性循环原则加以禁止的。罗素认为,恶性循环的过程就好像“你竭力要跳到你的头的影子上”[6],这实际上是一个无法实现的过程,因此,恶性循环原则禁止这种恶性循环符合人们的直觉。就康托尔集合论的概括原则“x(x∈S-P(x))”来说,恶性循环原则提出的要求是:不允许在约束变项x的取值范围内发现S这个集合。这样,如果遵循这个原则,“S∈S”就不会出现,因而“罗素悖论”也就被排除了。
罗素说,恶性循环原则还只是一种“纯粹否定性”的东西,即它只是告诉我们不应该做什么,“它足以表明许多理论是错误的,但是它不能说明怎样纠正这些错误”[4]。“类型论”就是罗素在“否定性”的基础上所提出的肯定的、建设性的东西,“其目的是为了给恶性循环原则一个严格的技术性的表述”[7]。也就是说,“类型论”力图要提供一组“正面”的规则,按照这组规则进行操作就不会带来恶性循环。
(三)类型及其分层
“类型论”的核心是“类型的分层”。由于罗素的类型是依据命题函项及其意义域来定义的,因此,在阐释分层理论之前,我们首先要弄清什么是命题函项。
一个命题函项是这样一个表达式,“该表达式包含一个或多个未定的成分,一旦这些未定的成分被赋值时,该表达式就变成一个命题”[8]。简言之,一个命题函项就是其值为命题的函项。譬如,“x是人”是一个命题函项,给未定的x一个值,比如苏格拉底,命题函项就变成命题“苏格拉底是人”,该命题是命题函项“x是人”的一个值。罗索认为,命题函项不像命题那样非真即假(由于含有未定的成分),它既不真也不假,而有三种可能性:恒真、有时真、恒假。命题函项不是某种已经具有意义的东西,而只是一个可以容纳意义的空架子。命题函项的意义是相对于主目(argument)而言的。罗素说:“一个函项对一给定主目是‘有意义的’条件就是该函项对该主目有一个值(不管这个值是真的还是假的)的条件。”[8]简略地说,“φ中对a是有意义的”意指“函项φ具有对于主目a的一个值”。这也就是说,如果φ和a的组合“φa”是一个或真或假的命题,那么φ对a就是有意义的。类型论主要研究的就是函项和主目之间这类有意义的组合的条件。
罗素把“类型”(type)定义为“命题函项的意义域”。一个命题函项的意义域就是“使有关命题函项有值的主目的集合”[5],说得更明确点就是,一个函项的意义域就是由所有的对此函项是真的主目和所有的对此函项是假的主目所共同组成的集合。
给出类型的定义后,罗素对类型进行了分层。罗素对类型的分层极其繁复,他首先把个体和函项区分为两个完全不同的类型,然后再把函项分成不同层的类型。在阐释函项的分层之前,我们在这里有必要先说明一个情况。在《数学原理》中,罗素区分了“函项本身”和“函项不确定的值”,函项本身是指那些带空位的如“φ()”这样的表达式,函项不确定的值是指空位填入了变项后得到的如“φx”这样的表达式,它指示某个不确定的命题,但函项本身不指示命题。罗素这样的区分不符合我们今天表述的习惯,并且也比较繁琐。为了表述的方便,本文把带空位的表达式和带变项的表达式统一起来。以“φx”为例,“φx”既表示函项本身“φ()”,也表示函项某个不确定的值,其中的x有双重身份,即:它既表示一个空位又表示一个变项。罗素对函项的分类同时考虑了两个维,其中一维跟函项的空位有关,另一维跟函项量词有关,这两个维互相交叉,形成了复杂的分层分支(“分支类型论”就是由此而得名的),类型论的复杂性主要就体现在这里。我们先考察罗素只根据函项的空位的层次来对函项所作的分类,这一维是类型论的主体。为了简化我们的表述,下文仅考虑一元命题函项,即只有一个空位的命题函项。
最低的类型由个体组成,即类型0;次一级的类型由个体的函项组成,即类型1;再次一级的类型由个体的函项的函项构成,即类型2。按此构成方式,还会产生类型3、类型4等,这一过程可以无限继续。我们把这一过程可以用符号列表表示如下:
“类型论”把所有这样构造出来的公式看成是无意义的,因为它们“不表达任何事物”[3]。由于罗素把类或集合看做是一个只为该类或集合的分子所满足的命题函项,而根据上面类型的划分不会产生“类型的混淆”,这样,就不会出现“属于自身”或“不属于自身”的类,也就是说,这样的类是不会出现在任何层次的类型中,从而也就避免了罗素悖论。
以上刻画的是“类型论”的一个方面,它实际上是“简单类型论”。我们可以看出,它和《数学的原理》提出来的类型论是一致的,它的特点是根据函项的空位来确定函项的层次,即如果φx中空位处的x属于类型n,那么φx就属于类型n+1。“简单类型论”能解决一些集合论悖论,但还不是以解决说“说谎者悖论”和“理查德悖论”等(这是一些与“集合论悖论”不同的另一类悖论,其不同处笔者在下文也会有所解释),为了解决这些悖论,罗素在此基础上从另一个维(即函项量词)构造了“分支类型论”的另一个分层。这个分层涉及函项的量化,它相当复杂。它的核心是把类型0以上每一个类型中的函项再分成不同的阶。为了简单起见,我们下面仅限于考察个体的函项(即类型1),以此来把握其中的思想。
给定一个个体a(a其实可以看做任何对象,譬如函项,把a设定为个体只是为了有助于理解),我们把所有能取a作为主目的函项称为“a函项”。显然,“a函项”属于类型1。“分支类型论”要求再把“a函项”分成不同阶的a函项,其分阶是这样的:
罗素首先确定了一个最基本的阶,这是由直谓的a函项构成的阶,罗素称它们为第一阶的a函项,简称“a的一阶函项”。所谓“直谓的a函项”是指那些“不涉及任何函项集合的函项”[8],亦即不涉及其他函项总体的a函项。与“直谓的a函项”相对应,还有“非直谓的a函项”。“非直谓的a函项”是指那些涉及其他函项总体的a函项。“非直谓的a函项”涉及了函项的量化。设定φa为任一直谓的a函项,即φ()是一个一阶函项的函项变元,现在用函项量词量化φa,我们可以得到,前者的意思是“a满足所有的一阶函项”,后者的意思是“a满足有些一阶函项”。由于a是个体,前两式中a就可以用任一个体变元,譬如x来替代,于是我们就得到函项,这两个函项与φx不同,它们由于量词的作用都涉及了一阶函项的总体。根据前述的恶性循环原则,凡涉及某个总体或根据该总体定义出来的东西,它就不能是谈总体的一个分子,因此,都不属于一阶函项,它们是由“直谓的a函项”通过函项量化得来的“非直谓的a函项”,罗素把此类。函项作为第二阶的a函项,简称“a的二阶函项”。仿此还有“b的二阶函项”、“c的二阶函项”等等,这样就可以构造一个个体的二阶函项的类型。以此类推,在二阶函项的基础上,通过二阶函项的总体可以构造“三阶函项”,然后依照同样的程序可以构造更高阶的函项。
我们进一步可以设定a为类型n的一个对象,依照上面的程序我们就可以把类型n+1中的函项分成不同的阶,它们依次为类型n的一阶函项、二阶函项,等等。
与函项的分阶类似,命题也可以分成不同的阶。一阶命题是指不含任何量词的命题或只含个体量词的命题,根据一阶命题的总体可以构造二阶命题。以此类推可以构造更高阶的命题。
罗素给不同类型中的函项进行分阶是为了避免由“所有的函项”、“所有的性质”、“所有的命题”等引起的恶性循环。他说:“无论什么时候,通过从关于一个变元能够有意义取的‘所有’或‘某些’值的陈述,我们常可以得到一个新的对象,这个新的对象必定不在前述变元所能取的值中,因为,倘若如此,那么变元涉及的值的总体会只能由它自己来定义,这样我们就陷入了恶性循环。例如,假如我们说‘拿破仑具有成为一个大将的一切性质’,那么,我们所定义‘性质’必须不包括我们现在所说的,也就是说,‘有成为一个大将的一切性质’本身不是我们所定义的性质那种意义上的性质。这是相当明显的……当我们说‘拿破仑具有所有的性质,等等’时,我们的意思是‘拿玻仑满足所有的直谓函项,等等’。这个句子将一个性质归于拿破仑,但不是将一个直渭性质归于拿破仑;这样我们就避免了恶性循环。无论何时,只要出现‘一切函项如何如何’,要想避免恶性循环,原有的函项必须限于一个类型……要详细说明这一点需要仔细的讨论,但是以上所说的足以表明,能用于一给定主目的函项属于一个无穷的类型序列。”[8]“分支类型论”所构造的就是这样的一个类型序列。
“分支类型论”的总体思想是:任一函项必定属于一定的类型和阶。凡涉及类型m中的函项的总体的函项,或通过类型m中的函项的总体定义(或构造)出来的函项,不属于类型m,而属于高一级的类型:m+1;在某个类型内部,凡要借助第n阶函项的总体来定义的函项,属于第n+1阶。通过这样的分层分阶,“分支类型论”既消除了“类型混淆”,也消除了恶性循环,因此,一般认为,所有已知的悖论通过“分支类型论”都能排除。例如,就“说谎者悖论”来说,罗素指出:当一个人说“我正在说谎”时,依据类型论,我们可以将他的话解释为“有一个我肯定的n阶命题,且这个命题是假的”,这是一个n+1阶的命题;原来的命题是被一个n阶的量词所约束,是一个n阶的命题,而由原来的命题得出的一个n+1阶的命题不属于n阶量词的作用范围,它不能作为n阶的命题变元的一个值进行代入,因此就不会产生悖论[4]。悖论都涉及了量词“所有”,“类型论”最终是通过限制量词的作用范围来达到解决悖论的目的的,因为,类型的划分规定了命题函项的意义域,量词量化命题函项得来的概括命题如果要有意义,量词的作用范围就要限于该命题函项的意义域。罗素说:“每一个命题函项都具有一个确定的意义域。在这个域之内是这个函项对其具有值的一些变目。在这个变目的域之内,这个函项不是真的就是假的;在这个域之外,这个函项则无意义。”[4]就是说,如果一个命题函项的量化式是有意义的,其中的量词就要限于一定的意义域,也就是说要限于一个确定的类型。
“分支类型论”通过分层分阶来限制量词,避免了恶性循环从而达到了排除悖论的目的,但是,分支类型论又带来了一些新的困难。譬如,据“分支类型论”,我们不能说所有的个体函项(或所有的函项)如何如何,而只能说某一阶的函项如何如何,由于数根据类来定义,而类又根据命题函项来定义,那么数也就具有与函项相似的阶的区分,这样,我们就不能说所有的实数如何如何,而只能说某一阶的实数如何如何。但是,“把数分成不同的阶使许多一般的推理变得无效”[9],实数理论依据分支类型论就无法建立起来。罗素也意识到,分支类型论“使得许多部分的初等数学成为不可能”[4]。为了克服这些困难,罗素在分支类型论中增加了一条“可化归性公理”。
“可化归性公理”是说,任一非直谓函项都有一个与它形式等值的直谓函项。用符号表示是:
式中的φx表示一个非直谓函项,Ψ!x表示一个直谓函项。有了这条公理后,我们就可以用直谓函项来代替非直谓函项,我们就可以把由不同阶的函项所表示的一类事物通过直渭函项来作出单一的断定,这样,有关实数阶的问题就可以解决,“分支类型论”所面临的一些困难也得到了克服。
上面阐释了类型论的主要内容,所阐述的是《数学原理》中的“无类”形式。类型论克服了悖论,缓解了数学基础所面临的危机,引起了逻辑学界和数学界的广泛注意。但是,正如罗素本人所言,类型论并没有获得广泛的认同,反而引起了不少争论。争论主要围绕可化归性公理和恶性循环原则,并涉及了一些深层的哲学问题,特别是“类的实在性”问题。
收稿日期:2005-01-19