数理逻辑
上QQ阅读APP看书,第一时间看更新

4 一阶语言

到此为止,我们只是通过几个例子在直观上说明什么是推理,以及什么是推理的合规则性和有效性。我们强调合规则性和有效性只与推理的形式有关。下面我们打算把合规则性和有效性这两个概念进一步精确化,以便更加明确地阐述我们的主题和任务。这牵涉到如下几个问题:如何严格分析命题的形式,从而明确推理的形式?如何澄清有效性概念中“情形”一词的模糊意义?如何确切理解一命题在某个情形下为真?怎样严格表达和应用一个规则?前面简单谈到了传统逻辑如何分析命题形式的几个例子,但我们不准备在传统逻辑里继续深入,现代的观念和技术提供了更加严格和有力的分析手段。

4.1 命题成分

按照一种广为接受的观念,最简单的命题是述说某个体具有某种性质的,如“这是一支矛”、“这支矛非常锐利”等等,其中的“这”、“这支矛”等指称个体,而“……是一支矛”、“……非常锐利”等表达个体的性质。稍微复杂一点的命题述说几个个体之间具有某种关系,如“这支矛能刺破这张盾”表达了两个个体之间具有“……能刺破……”的关系,“点a居于点b和点c之间”表达了三个个体具有“……居于……和……之间”的关系,等等。

我们称命题中指称个体的成分为个体项,表达性质和关系的成分为概念。像“韩非”、“这支矛”等专名和确定指示词指称确定的个体,因此是个体项。概念的特点是,它们具有“空位”,当空位被确定的词项填充进去,我们就得到一个完整的命题。如概念“……是哲学家”有一个空位,用专名“亚里士多德”填充后,我们得到“亚里士多德是哲学家”这个命题,它表达一个确定的个体具有某个确定的性质;概念“……喜欢……”有前后两个空位,用名字“韩非”与“这支矛”分别填充后,我们得到“韩非喜欢这支矛”这个命题,它表达两个确定个体具有某个确定的关系。关系不但有两个个体之间的,还有三个个体之间的、四个个体之间的等等,分别称为二元关系、三元关系、四元关系等等。表达n元关系的,称为n元概念。一个典型的二元概念是等同,就是“……等于……”,在数学里经常记为=,它表达同一关系。为方便起见,我们把一个个体的性质也称为一元关系。于是,一元概念就表达性质。

对命题的这种个体项—概念式分析不同于传统逻辑的主—谓式分析,后者只讲性质,不讲关系,把“这支矛能刺破这张盾”这样的关系命题仅分析为“这支矛”具有“能刺破这张盾”这个性质。这种分析表达力较弱,比如,它无法说明数学中“a等于b,b等于c,因此a等于c”这种推理的有效性。(三段论不能解释这里的有效性。)

更复杂一点的命题,表述某一类个体的全部或部分具有某种性质。命题“所有的人都会推理”,按主—谓式分析,它的形式是“所有的S是P”,但按我们更精细的个体项—概念式分析,它表达“人”这一类的每个个体都具有“……会推理”这个性质,这相当于说“对任何个体x,如果x是人,则x会推理”。同样,命题“有些数是偶数”表达“数”这一类中至少有一个个体具有“……是偶数”这个性质,或者“至少有一个x,x是数,并且x是偶数”。我们称“所有的”(或“任何一个”)为全称量词,“有些”(或“至少有一”)为存在量词。变项x是个体变项,个体变项大体相当于自然语言中的不定代词,它们虽然也是个体项,但不是确定个体的名字,其作用与数学中的变项一样,代表某类个体中的随便一个。上例中的个体变项都随量词出现,或者说有量词约束它们。如果一个个体变项出现在概念中而没有量词约束它,则它出现之处就相当于空位。比如,“x是偶数”不是一个命题,它其实就是概念“……是偶数”。

有量词在手,我们便可重叠使用,进一步表达比较复杂的关系。而某些复杂的关系,在日常语言不精确的形式下,往往被掩盖。如日常语言的句子“每支矛都能刺破某张盾”有歧义,它可能表达“对任何一支矛,都存在一张盾,使得这矛能刺破这盾”(注意这里全称量词在前,存在量词在后),也可能表达“存在一张盾,对任何一支矛,这矛能刺破这盾”(这里量词次序颠倒了)。我们借助重叠量词的分析,看出这是两个不同的命题,因而可以在不同的语境中捕捉“每支矛都能刺破某张盾”这个句子的不同意义,将它们分别处理。这种分析,传统逻辑很难做到。

现代逻辑的命题形式分析,从历史上看,首先是为了说明数学推理的有效性。数学语言描述的对象,除了个体和关系之外,还有函数,如自然数的加法和乘法函数。我们一般用+和·分别表示加法和乘法,它们称为函数符号。这里的函数是某种运算,一元函数施于一个对象之上,n元函数施于n个对象之上,“变换”出一个对象(函数值)。个体域上的运算,其函数值仍然是个体,例如自然数的二元加法运算f(x,y)=x+y施于个体1和2,就得到值1+2,也就是个体3。因此,个体域上的函数运算,其表达式也是一种个体词项,它以某种(复杂的)方式代表个体。注意,函数里面虽然出现个体变项或空位,但它不同于概念。概念里的空位被个体项填充后得到命题,而上例中函数的空位被个体项填充后还得到个体项。

最后,我们可以使用命题联结词从已有的命题构造出复合命题。自然语言里有许多命题联结词,但逻辑所关心的只是“并非”、“并且”、“或者”、“如果……则……”等少数几个。利用它们,我们可以得到诸如“如果这支矛能刺破所有的盾,则这支矛能刺破这张盾”、“并非这支矛能刺破所有的盾”等直接由联结词复合的命题,还可再加量词,得到“对任何一支矛,都存在一张盾,使得这矛能刺破这盾,并且并非这矛能刺破所有的盾”等等更复杂的命题。另外,从这些复杂的命题,我们又可以得到复杂的概念,如去除上例中最前面的量词等部分,我们得到概念“x是一支矛,存在一张盾,使得x能刺破这盾,并且并非x能刺破所有的盾”,它表达个体的一个复杂性质。进一步去除量词等部分,得到概念“x是一支矛,y是一张盾,x能刺破y,并且并非x能刺破所有的盾”,这表达个体间的某个二元关系。这样复杂的性质和关系,在传统逻辑中也是难以处理的。

上述命题,总体上说,表达的是个体具有什么性质及个体间具有什么关系,我们称这类命题为一阶命题。一阶命题描述的世界,由个体、性质和关系(包括函数)组成,大部分的数学“世界”正是这样组成的,我们日常的世界,在某种哲学观点之下也可以“看成”是这样组成的。因此,一阶命题能描述大部分的数学及非数学情形,能够满足科学的需要。我们的逻辑将在一阶命题里展开。

一阶命题的成分里,量词和命题联结词是逻辑常项,其余是可替换部分。因此,量词和命题联结词决定了一阶命题的形式。

4.2 外延性与真

在什么条件下我们说一个一阶命题为真呢?

个体具有性质,如韩非、亚里士多德等个体分别具有“……是人”这个性质,用术语来说,韩非、亚里士多德等个体分别例示了“……是人”这个性质;反过来,每个性质规定或“挑出”一些个体,就是那些例示了这个性质的个体,如“……是人”这个性质挑出了韩非、亚里士多德等个体。关系的情形与之类似,月亮和地球例示了“……是……的卫星”这个二元关系,而这个关系挑出了月亮和地球这一对个体以及其他那些例示这个关系的成对的个体。不同之处在于,性质挑出个体,而多元关系挑出的是个体的序列,所谓个体的序列就是有顺序的一系列个体。(注意,“……是……的卫星”挑出了〈月亮,地球〉这个二元序列,或有序对,但并未挑出〈地球,月亮〉这个不同的有序对。)

我们似乎能这样说,正是这种例示或挑出关系,决定了最简单的(从而决定了更复杂的)一阶命题的真假。比如,“韩非是人”为真,当且仅当个体韩非例示了性质“……是人”;“月亮是地球的卫星”为真,当且仅当有序对〈月亮,地球〉例示了关系“……是……的卫星”。

但是,不同的性质或关系却可以挑出相同的一些个体或个体序列,或者说,它们对应的概念有相同的外延。假如你喜爱所有的狗,而不喜爱其他动物,那么性质“……是一只狗”和“……是你喜爱的动物”就挑出了相同的一些个体,而这两个概念就具有相同的外延,但这两个性质或概念显然是不同的。这说明,性质和关系不是被它们所挑出的个体或个体序列所唯一决定的,它们还含有其他方面的内容,表达性质和关系的概念,也因此有外延和内涵的区分。

类似于概念的内涵和外延,(弗雷格等人认为)个体项也有涵义和指称两个方面。比如“晨星”和“暮星”有共同的指称——金星(这个个体),但二者指称金星的方式却是不同的,或者说,二者的涵义不同。关于这些问题,语言哲学中有许多的讨论,我们不准备在这里涉及。

回到真假问题,概念的内涵和名字的涵义,不管它们是什么,对一阶命题的真假都没有影响,就是说,在任何一阶命题里,都可以将具有相同外延的概念或具有共同指称的名字相互替换而不改变这个命题的真假。这是因为,一阶命题的真假只与个体是否例示关系有关,而与如何指称个体或如何表达关系无关。在这个意义上,只涉及一阶命题的语言是外延性的。既然推理的有效性只与命题的真假有关,那么其他方面的内容对推理的有效性也就没有影响——在任何推理里面,对任何一阶命题而言,都可以将其中具有相同外延的名字或概念相互替换而不改变这整个推理的有效性。

因此,对概念来说,我们可以忽略它的非外延方面的内容,而只考虑它所涉及的那些个体或个体序列。这种抽象的结果,逻辑学家们称为集合。集合作为概念的外延,包含了性质或关系挑出的个体或个体序列。比如与一元概念(性质)“……是人”相对应的集合包含所有的人,与二元概念(二元关系)“……是……的卫星”相对应的集合,包含〈月亮,地球〉、〈木卫一,木星〉、〈木卫二,木星〉等等有序对。一个集合所包含的东西,称为这个集合的元素。a是集合A的元素,记为a∈A,读作a属于A。

但是,跟概念或性质和关系不同,一个集合是被它的元素所唯一决定的。这称为集合的外延性原则:


如果集合A与集合B包含相同的元素(就是说,对任意的x,x∈A当且仅当x∈B),则A与B就是同一个集合。


所以,前面提到的“……是一只狗”和“……是你喜爱的动物”,虽然是不同的概念,但作为集合,是同一个东西;“……是有心的动物”和“……是有肾的动物”,也是不同的概念,但也对应于同一个集合。

类似地,对名字来说,我们也可以忽略它的涵义,只考虑它的指称。这样,“晨星”和“暮星”如果看作个体项,也就成了同一个指示词,这种指示词的唯一意义就是标示能成为集合元素的个体。

这样建立的集合概念恰好解释了命题的真假:命题“韩非是人”为真的充分必要条件,不需再表述为韩非这个个体例示了性质“……是人”,而只要表述为这个个体属于这个性质决定的集合。同样,命题“月亮是地球的卫星”为真,当且仅当〈月亮,地球〉属于“……是……的卫星”相对应的集合。

4.3 一阶符号语言

推理的有效性只与命题的真假有关,而命题的真假又只由个体和集合来决定,所以,探讨有效性问题就只需要关注集合和个体。这要求我们设计一种专供逻辑使用的语言,使其中的句子不再描述个体具有什么性质或关系,而描述个体或个体序列属于什么集合。就是说,这个语言中的“概念”不再表示个体的性质和关系,而表示个体或个体序列的集合,这个语言中的“名字”也不再有涵义,而只有指称。这个语言的句子,因此表达而且只表达一阶命题的真假。

显然,自然语言不能在这里继续使用了,因为它们的词项有其约定俗成的意义(且经常有歧义),无法剥离。我们需要的是一种人工语言,其中有一些专门设置的符号来表示个体、集合、函数、量词和联结词。

为了确定一个这样的语言,首先要明确它所对应的世界。这样的一个世界或者可以叫做原先那个含有性质和关系的世界的“外延”世界。它同样由个体组成,但在原先存在性质和关系的地方,这里却只存在对应于那些性质和关系的个体集合与个体序列的集合。这样一种情形或世界,逻辑学家称为关系结构,或简称结构。结构中所有的个体组成我们语言的论域(它也是一个集合),就是这个语言准备谈论的那些个体。为了能够述说一个结构里的事实或情况,我们的语言首先需要以下这些词汇:


i.(对应于名字)个体常项:a,b,c等,它们指称论域里某些特定的个体。

ii.(对应于概念)谓词:F,G,H等,表达论域中那些个体的集合和个体序列的集合。

iii.函数符号:f,g,h等,表达论域上的函数。


比如,假定我们要谈论某个结构alt中的情况,论域是所有的人组成的集合。我们可以定义一种语言L1,其中个体常项a指称韩非,b指称亚里士多德;一元谓词F代表哲学家的集合,二元谓词G表达的集合由这样的有序对〈x,y〉组成,其中x与y是同时代人(这个集合对应于关系“……与……是同时代人”);还可以有别的个体常项(c,d等等)和谓词(I,H等等)。到底需要哪些个体常项和谓词,根据alt的具体情况而定。

表达一阶命题(的真假)的,在我们的新语言里称为公式。于是,一阶命题“亚里士多德是哲学家”在L1中就可以用公式F(b)(它的意义就是:b所指称的个体属于F所表达的集合)来表达,“韩非与亚里士多德是同时代人”可以表达为公式G(a,b)(同理,这意味着:〈a所指称的个体,b所指称的个体〉∈G所表达的集合)。

当然,L1中的词汇一旦给定,你也可以对它们做不同的解释,如把a解释成亚里士多德的指示词,b解释成韩非的指示词,F解释成会思考的人的集合等等。你甚至可以找一个不同的结构,将L1的词汇在其中另做一番解释,这样L1就可用来谈论另一套话题(这当然要求L1的词汇够用)。

又比如,我们要谈论算术结构alt,这里的论域便是自然数集合。我们可以定义另一种语言L2,其中个体常项a指称自然数0,b指称数1,等等。至于谓词,由于相等关系一般而言是不可缺少的,所以我们需要设定一个符号,比如F,来表达二元关系“=”。如果我们想讨论自然数的“小于”关系,则又需要另一个二元谓词G表示“<”。很多情况下,我们需要谈及自然数的函数,如此我们则需要二元函数符号,如f和g,分别解释为“+”和“·”。函数运算0+1和0·1于是在L2中分别表示为词项f(a,b)和g(a,b),复合运算(1·0)+0表示为词项f(g(b,a),a),(假)命题1=(1·0)+0表示为公式F(b,f(g(b,a),a))。

所以,我们需要的不是一个,而是一类语言,其中每一个都因其所描述的结构不同,而有不同意义的词汇。但是,不管我们谈论什么结构,都需要以下这些词汇:


iv.个体变项:x,y,z,u,v,……;

v.全称量词∀和存在量词∃,它们使用在论域的个体之上;

vi.真值联结词:alt(并非)、∧(并且)、∨(或者)、→(如果……则……)


这些称为一个语言的逻辑符号,其中量词和联结词对应于前面所说的逻辑常项,它们在任何一个语言中的任何解释中都有固定的意义。相应地,i—iii称为一个语言的非逻辑符号,它们在不同语言的不同解释中意义不同。所有这些符号组成一个语言的字母表(或初始符号表)。有了全部这些符号,我们就可以构造更复杂的公式。比如,在L1中,我们有公式∃xF(x),∃yaltF(y)——它们分别表达F代表的集合和它的余集非空。还有更复杂的公式,如:


∃xF(x)∧∃yaltF(y)(在alt中,它表达的是哲学家这个集合既非空集又非全集,翻译成自然语言就是:有些人是哲学家,并且有些人不是哲学家。)

∀x(G(x,b)→F(x))(任意一个人,如果他跟亚里士多德同时代的话,则他是哲学家。即:所有跟亚里士多德同时代的人都是哲学家。)

∀x(G(x,b)→F(x))→F(a)(如果所有跟亚里士多德同时代的人都是哲学家的话,那么韩非是哲学家)

等等。


在L2中,有公式:


∃x(altF(x,a))(在alt中,它表达:存在自然数x,x≠0。)

∀x∀y(altF(x,a)→∃u∃v(F(y,f(g(x,u),v))))(对任何自然数x和y,如果x≠0,则存在自然数u和v,使得y=(x·u)+v。)

等等。


这些公式所表达的,严格来讲,不是命题,而是抽象的真值(真和假)。公式只捕捉到了自然语言命题的真假,而舍弃了其他方面的内容。因此,这里的真值联结词,不等同于(括号中与它们对应的)命题联结词,这里被联结的,只是真值。我们语言中的任何公式φ和ψ,作为真值的表达式,都可以用任何一个联结词联结起来构成复合公式altφ,φ∧ψ,φ∨ψ和φ→ψ,不管φ、ψ对应的自然语言命题有无内容上的联系。而这些复合句子的真值,也唯一地被φ和ψ的真值所决定。特别地,如前所述,→表达实质蕴涵,φ→ψ等值于alt(φ∧altψ)。这虽然跟自然语言中“如果……则……”的许多用法有明显区别,但可用来表达与推理相关的保真条件,这正是我们需要的意义。

这一类语言,统称一阶符号语言(以后简称一阶语言),其公式称为一阶公式。一阶公式作为人工设定的符号序列,单独拿来看并无真假可言,只有用它们来描述一个特定的结构时,它们的非逻辑符号才在这个结构中有了具体解释,它们才表达某种意义,并因而有了真值。确定业经解释的一阶公式的真值时,我们仍然遵循某种符合论的原则,就是说,公式φ在某个结构中为真,当且仅当这个结构中有φ所描述的情形。比如,考虑L1-公式和alt这个结构,F(b)在alt中为真,当且仅当alt中用来解释b的个体属于用来解释F的集合;G(a,b)在alt中为真,当且仅当alt中用来解释a和b的个体组成的有序对属于用来解释G的集合;∃xF(x)在alt为真,当且仅当alt中至少存在一个个体属于F对应的集合(即这个集合非空);如此等等。当一个(一些)公式经解释后在一个结构中为真时,我们称这个结构为这个(这些)公式的模型。

我们以前曾经把推理的有效性在直观上表达为:在任何情形下,如果前提都真,则结论为真。这里的“情形”、“真”等概念仍然是模糊的。现在,我们有了一阶语言及其语义学,就可以用一阶公式表达推理中的命题,用严格的结构概念代替原先的“情形”,用严格的模型概念阐释“真”,从而把推理的有效性精确化。在任意一个一阶语言中,设Φ为一组公式,φ为一个公式,我们用Φ⊧φ表达如下事实:Φ的任何模型都是φ的模型。此时我们称φ是Φ的语义后承。显然,把Φ⊧φ放在直观背景下来理解,它说的恰好是:从前提Φ到结论φ的推理是有效的。

用一阶语言这样的人工语言来表达命题,处理推理,标志着逻辑的巨大进步。在历史上,这种语言的建立,是弗雷格(Frege, 1879)的贡献,其思想可上溯到莱布尼茨。而一阶语言语义学的研究,则由塔斯基(Tarski, 1933)奠定了基础。