我们先考虑一个日常生活中的问题。某人x祖籍江苏,出生在河北,五岁以后回到江苏并一直生活在江苏,那么,x应当是什么地方人呢?如果认为黄河以北为北方、黄河以南为南方,考虑下面的命题:
x是北方人.
可以看到,即便我们在地理上定义了北方和南方,仍然会对x的所属产生分歧:河北人可能会认为x是北方人,因为他是在河北出生的;而江苏人可能会认为x不是北方人,因为他的祖籍在江苏并且成年在江苏。如果x是一位历史名人,这个争论可能就会很激烈了。从这个例子可以看到,比“北方人”更基础的概念“是什么地方人”是需要明确定义的,如果这个更基础的概念没有明确定义,上述命题是无法进行判断的。如果以祖籍地为定义(历史上就是如此),则否定命题;如果以出生地为定义(许多国家就是如此),则肯定命题;如果以成人所在地为定义(身份证就是如此),则又要否定命题。因此,准确的定义对于命题的判断是非常重要的,在这个意义上,定义是命题的基础,也就是说,如果要判断某个命题“A→P”,首先应当清楚所指项A的所指是什么,即应当清楚集合A中都有一些什么,对于数学更是如此。考虑下面的数学命题:
乘法是可以交换的 (1)
如果用⊕表示一种运算,那么这个运算“可以交换”就是指:对于元素x和y均有x⊕y=y⊕x。现在的问题中⊕表示乘法。我们知道,如果x和y表示的是数,根据四则运算法则,我们肯定命题;如果x和y表示的是矩阵,那么,根据我们在《图形的变换》中给出的矩阵乘法定义,必须否定命题。如果不给出“乘法”一个明确的定义,我们是无法对命题进行判断的。所以,在进行命题的判断前,必须明确命题中所指项的定义。
那么,什么是定义呢?在我们的日常生活中,人们对于“定义”的要求是不苛刻的,有许多定义可以是相当模糊甚至可以因人而异。比如考虑语句:
这个菜是很辣的
这样的语句,就是个性化很强的定义语句,因为生活习惯的不同,大多数江苏人认为“很辣”的菜,许多湖南人会认为根本“不够辣”。虽然如此,这样的话语在日常生活中也是可行的,至多引发一些有趣的争论而已。只有当我们需要认真讨论“辣”这个问题的时候,才需要确认什么是辣,甚至需要给出辣的等级。
其至对于同一个人,对于同样的所指,有时也很难给出确切的定义。比如,考虑下面的语句:
完成这样的工作是很花费时间的
我们知道,即便是同样的工作,即便是同样的人,随着这个人对于这个工作的熟悉程度的不同,完成所花费的时间很可能是不同的;甚至一个工作完成的情况还可能与当事人的心情有关,我们都有这样的经历,有时感觉时间如“白驹过隙”,有时感觉“度日如年”。
我们的生活如此丰富多彩,涉及要定义的各种场合、各种类型的东西如此之多,因此,要给出“定义”本身一个明确的定义是非常困难的。但是,为了数学推理的需要,使用模糊的定义是不可以的;为了数学的精确性,必须抽象出与时间、地点和人的心情无关的数学定义。那么,什么是数学的定义呢?我想,我们通常使用的数学定义大概可以分为两种,一种是名义定义,一种是实质定义。
名义定义 是对某些事物标明符号,或者是对某类事物指明称谓。比如,关于点和直线的定义,希尔伯特就曾经表述为:用大写宁母A表示点,用小写字母a表示直线,这是前者;或者,关于三角形的定义,通常教科书的表述为:三角形事指用三条边围成的多边形,这是后者。这样的定义不涉及所要研究对象的具体含义,甚至可以不考虑定义中“所指”的存在性。比如,关于点和直线定义,我们并没有想说明点和直线是否存在、如何存在,只是通过符号给出称谓。更为特殊的,我们还可以定义:金山是指由金子所构成的山,这是罗素在《西方哲学史》中曾经举过的例子,这个定义根本不顾及“金山”这种东西是否存在。
这种完全符号化的定义有一个最大的好处,那就是可以避免许多可能出现的争议,就像希尔伯特关于几何对象的定义,或者像我们在后学《现代数学基础:集合论》中将要讨论的集合公理系统中关于集合的定义,那完全是为了避免各种悖论,但是,这样的定义也有一个最大的坏处,那就是这样的定义使得初学者无法把握研究对象的实质,进而无法很好地理解所要研究问题的对象。所以,在数学教育特别是基础教育阶段的数学教育过程中,必须注意到这种定义的不足之处,必须用一些具体的事物作为这神名义定义的补充。虽然,问题一旦具体化就必然会不全面,但是,我们更应当清楚,一般化恰恰是从许多不全面的具体中抽象出来的。因此我想,处理好一般与具体之间、抽象与实体之间的关系,是数学教育的基本法则之一。
实质定义 是指揭示所研究问题对象内涵的逻辑方法,正如我们曾经用很大篇幅讨论过的那样,通过对许多所要研究问题的对象进行具体分析,归纳出共性、抽象出定义。这个“抽象”过程在数学教育,特别是基础教育阶段的数学教育中是不可以忽略的,这是上面所说的基本法则的具体实施,根据这个想法,可以把数学的实质定义描述为:
给出准则构建一个集合A,如果利用这个准则,对任何元素x都能明确地判断元素x∈A还是x∈AC,则称这个准则为定义,A是这个定义所对应的集合. (2)
虽然上面只给出一个操作性描述,但是,这种操作性描述对于帮助我们建立数学的实质定义是非常重要的。进一步讨论命题(1),为了对命题成立与否给出确切的判断,我们必须对命题中所涉及的“乘法”给出一个明确的定义,并且这个定义还应当与“运算”的可交换性有关。所以,如果我们要给出一个新的定义或者进一步确认一个已经存在的定义,至少应当做下面三个步骤的工作:
给出准则:明确命题中所指项和命题项之间的关系,明确命题的内涵,依据内涵给出准则;
验证准则:通过例子验证准则是否满足(2)的要求,特别是验证那些可能成为反例的例子;
确立定义:如果验证无误,根据准则确立定义。
我们必须清楚地知道,数学的任何一个重要定义都要经受长时间的实践和理论的检验,这就像科学结论一样,随时准备接受反例的挑战。在建立定义的过程中,所谓的反例就是那些可能使准则模糊的例子,也就是那些可能属于集合A,也可能不属于集合A的例子。比如,关于“是什么地方人”的定义,我们给出的例子既涉及籍贯地又涉及出生地,还涉及成年所在地,那么,这样的例子就可能成为任何一种定义的反例。
重新讨论(1)的命题:乘法是可以交换的,因为这个命题关注的是运算的“交换律”是否成立,因此在进行命题的判断之前,我们必须确认所指项“乘法”的定义与命题项“可以交换”之间的关系。回忆《数的运算与扩张》的讨论,在那里,乘法的定义是:同一个元素的连续加法,在这个定义下,所谓的“矩阵乘法”就不是乘法了,只是借用了“乘法”的名称而已。如果确实需要构建满足“可以交换”条件的矩阵乘法的定义,那么,可以用数乘矩阵,即对于矩阵D有:3·D=D D D=D·3;或者用矩阵的阿达玛乘积:如果A和B是两个大小相同的矩阵,则两个矩阵的乘法A·B定义为两个矩阵的对应元素相乘。容易验证,这两种“矩阵乘法”都是可以交换的,于是在这样的乘法定义下,对命题(1)可以给出肯定的判断,否则,就必须给出否定的判断。由此我们可以再一次看到,能够对命题进行明确判断的前提是:所指项有明确的定义。
定义也具有系词结构,即一个定义可以表示为“A是B”或者用符号表示为“A→B”。正因为如此,有许多学者认为要区别定义与命题是非常困难的。但是我认为,在数学中,这种区别是非常明确的,我们仔细分析这个问题。
首先,定义是一个陈述语句,可以是判断语句,也可以不是判断语句;但是,命题必须是一个判断语句。比如,考虑下面的语句:
有一个角是90度的三角形是直角三角形 (3)
这是一个名义定义,是一个非判断的陈述语句。进一步,考虑下面阐述勾股定理的语句:
直角三角形斜边长的平方等于两条直角边长平方之和 (4)
这是一个判断语句,可以构成命题。用集合A表示“所有的直角三角形”,通常称其为条件;用集合Ω表示“一条边长的平方等于其他两条边长平方之和的所有三角形”,通常被称为结论。由《基本推理的基础---推理的对象:命题》中(5)式,如果我们肯定这个命题,就必须验证A⊆Ω,即验证对于任意x∈A则必然有r∈Ω。我们从勾股定理知道,这个命题是成立的,事实上,我们还能验证对于任意x∈Ω则必然有x∈A,因此由(1)知,这个命题的条件和结论之间是等价的,即A≡Ω。对于这种情况,我们称条件A和结论Ω是充分必要的,或者称A成立的充分必要条件是Ω成立,并且称这个命题是充分必要的。
我们再举一个生活中的例子来说明什么是充分条件,什么是必要条件:
对于某人,好伙食的标准是有红烧肉和炒青菜。朋友A请吃饭,有清蒸鱼、红烧肉、炒青菜;朋友B请吃饭,有红烧肉。
那么,对于这个人来说,朋友A提供了好伙食的充分条件,朋友B提供了好伙食的必要条件。因为,对于朋友A,虽然清蒸鱼是不必要的,但满足好伙食的全部条件红烧肉和炒青菜都有了;对于朋友B,虽然仅凭红烧肉是不充分的,但这个条件是必要的,因为没有红
烧肉不能成为好伙食。
现在,我们可以一般地阐述充分条件和必要条件了。用A表示命题条件所对应的集合,用P表示命题的结论,那么充分条件和必要条件可以表述为
充分条件:如果A成立那么必然有P成立,即有A→P;
必要条件:如果A不成立那么必然有P不成立,即有AC~P。
如果用集合的包含关系表示,那么有:
必要条件⊆命题P成立的条件⊆充分条件。
这样,我们所说的充分必要条件是指:必要条件与充分条件是一样的,即必要条件≡充分条件。根据包含关系的传递性,对于充分必要条件可以得到关系式:
必要条件≡命题P成立的条件≡充分条件
可以看到,对于任何数学问题,如果能够得到充分必要条件,就说明这个条件与结论之间是恰到好处,也说明我们已经把这个问题研究透彻了,已经不存在特殊情况了。对于这种情况,在命题的述说中,通常要突出命题的充分必要条件,即可以把(4)表述如下:
一个三角形是直角三角形的充分必要条件是这个三角形的一个边长的平方等于其他两个边长平方之和
进一步我们可以给出定义与命题之间的关系:如果一个命题是充分必要的,这个命题的命题项,即必要条件也可以作为定义。比如,在上面的述说中的必要条件就可以作为“直角三角形”的定义:
如果三角形的一个边长的平方等于其他两个边长平方之和,则称这个三角形为直角三角形。
显然这个定义与定义(3)是等价的。但是,我们必须再次强调的是,命题中的命题项可以作为定义是有条件的,那就是命题的条件与结论之间是充分必要的,在这个意义上,我们也能进一步理解实质定义的本质,那就是定义项与被定义项之间是充分必要的,这也是(2)的实质。
借此机会,我想说明早在中国的春秋战国时代,先哲们就能够明晰地分辨命题的必要条件和充分条件,并且给予了明确的表述。下面一段论述记载于《墨经·经上》的开篇,其中“小故”等价于必要条件,“大故”等价于充分条件:
“故是指得到结果的条件。
小故是指有不一定得到结果、没有则必然得不到结果的那种条件。
大故是指有不是必须的、但有则一定得到结果的那种条件。”
我们不能不赞叹,先哲的这段文字论述是如此的准确,又是如此的简捷。可惜的是,中国古代先哲们的论述总是那么言简意赅,使得后人很难了解他们是如何思考的。
下面,我们完成关于“是什么地方人”的定义,如果我们约定某人的出生所在地在哪里,这个人就是哪里人,这样就完成了定义,因为,一个人的“出生地”明确了。那么这个人是“哪里人”就确定了;反之,如果要确定一个人是“哪里人”,那么这个人必须是在“那
里出生的”。显然,这是一个充分必要的关系,因此这个定义是成立的。根据这个定义,某人x就是北方人了。
我们之所以要如此清晰地分辨命题和定义的区别,是为了进一步讨论数学的演绎推理。绝大多数情况下,数学基本推理的对象是命题,为了体现数学的精确性,我们应当更清晰地分辨一般意义下的命题与数学命题之间的区别,我想,这个区别主要表现在所指项,对于一般意义下的命题,所指项可以比较模糊,甚至可以是一个类,但是对于数学命题,如(3)所要求的那样,必须是一个元素,或者是一个泾渭分明的集合,现在,我们就可以进一步分析哥德尔的那篇引起很大震动的论文。
哥德尔
在前两节我们说过,哥德尔在那篇论文中,经过一系列符号和形式化的规定,提出了他的基本命题,即语句G:n在这个系统中是不可证的,其中n是语句所指派的哥德尔数,而这个语句就是G本身。这相当于说,语句G断言G在该系统是不可证的,在这个命题之中,所指项是哥德尔数n,而n的定义是:在这个系统中是不可证明的。很显然,这个“定义”不符合我们在(3)中的规定,因为无法给出一个“准则”明确的判断什么东西是可证明的或者不可证明的。因此,在我们的规定下,哥德尔的命题不能成为数学命题。如果强行解释“在这个系统中不可证明的”内涵是:命题本身与公理系统独立。这样,这个命题的成立又是显然的了,就像平行公理与欧几里得几何的其他公理的关系,但这并不是希尔伯特的原意。正像我们在前两辑中反复强调的,数学概念的符号化和论证的形式化是必要的,但是在数学的命题中,无论是符号化还是形式化,所指项的定义必须是清晰的。关于哥德尔这个命题中的逻辑,我们将在后面进一步讨论。
我们可以看到,问题还是出在希尔伯特最初关于公理体系完备性的描述:对于某个数学领域,从公理体系提供的概念和公理出发,可以判断基于这个领域概念的任意一个有意义的命题的真伪。现在的问题是,什么是“任意一个有意义的命题”呢?这个看起来似乎是非常明了的语句事实上是不明了的,如果遵循我们所给出的定义,数学命题中所指项必须符合(3)中的规定,那么,很可能就不会出现逻辑上的反例了。
不能不令我们再次惊讶的是,还是在中国的春秋战国时代,先哲们就能够清晰地知道定义与命题的区别,并且能够清晰地指出定义与命题各自的功能。这些表述被记录在《墨经·小取》之中,其中说道:以名举实,以辞抒意,以说出故。我们用现代语言把文中的意思表述如下:
“通过定义(名)明确所讨论问题的对象(实),通过命题(辞)表述所讨论问题的实质(意),通过论证(说)得到讨论问题的原因(故)。”
因此,从先哲的论述中我们能够清楚地知道:定义的功能是为了明确讨论问题的对象,命题的功能是为了表述所讨论问题的实质,论证的功能是分析条件和结果之间的关系。我想,先哲的论述已经清晰地指明了论证过程中三个最基本概念,并且阐明了这些基本概念各自的功能。接下来,我们将讨论数学推理过程中需要把握的基本原则。