1 全书绪论

illustration

“I know what you’re thinking about,” said Tweedledum; “but it isn’t so, nohow.” “Contrariwise,” continued Tweedledee, “if it was so, it might be; and if it were so, it would be; but as it isn’t, it ain’t. That’s logic.”Lewis Carroll, Through the Looking-Glass, 1872

在我上大学的时候,不少关于 \(X\) 的课程始于下面这样的问题:

  1. 什么是 \(X\)?(\(X\) 的定义)
  2. 学好 \(X\) 在理论上有什么意义?
  3. 学好 \(X\) 在实践上有什么意义?
  4. 怎样学好 \(X\)?……

然后给出一些答案和细节,构成该课程的「绪言」。近年来,一些新出版的教科书仍沿袭这样的惯例,甚至「读经风」也要从「为什么要读」「读什么」和「怎样读」等问题刮起。这门课叫「符号逻辑」,是当代逻辑即数理逻辑的入门课程。按惯例,好像也该先讲讲什么是逻辑,什么是符号逻辑,什么是当代逻辑,为什么要学及如何学好逻辑,等等。

像「逻辑是什么」或「当代逻辑是什么」这类问题,如果问的是逻辑或当代逻辑等的定义,那么我劝初学者不必太认真。初学逻辑,自然想知道逻辑学大概是怎么回事,想知道逻辑学家大概做些什么。但是,若想满足这种好奇心,与其在脑子里装些不明不白的「定义」,倒不如对逻辑学里讨论的问题以及讨论的方法多一点认真。这是因为:对一个学科的整体上的理解,是以对该学科中的问题和方法的理解为前提的。当然,这并不是说,关于逻辑或数理逻辑的各种说法都不值得思考。这里的要点是:不具备足够逻辑知识的人,分不出这些说法的好坏高低,反而容易因为学了某些「定义」「分类」或「方向」,就自以为有些「逻辑学问」甚至「超逻辑学问」了。待到真有点逻辑学问后,再来思考这类问题为时不晚——只要那时还有这种兴趣。

在这门课上,把逻辑作为学科来谈时,通常都是指当代的形式逻辑,也称当代逻辑、现代逻辑或(广义)数理逻辑。我们虽不定义逻辑是什么,但以普通人的知识为背景,我们可以随便谈谈逻辑学大概讨论些什么问题。关于逻辑学有以下几种说法:

  1. 逻辑学是关于论说(argument)的。
  2. 逻辑学是关于推理(inference, reasoning)的。
  3. 逻辑学是关于理论或信念的一致性(consistency)的。

1.1 论说

无论是关于整个世界的某种看法,还是关于一类事物的某种理论,都是由一些句子来表达的。这些句子大体上可以分为两类:真句子和假句子。

在很多情况下,确定一个句子的真假的最基本方法是直接考察句中所谈的事物。但是,直接考察经常是做不到或不易做到的。因而,为确定一给定句子 \(\varphi\) 的真假,人们往往需要比较 \(\varphi\) 和某些已知其真假的句子 \(\psi_0\),…,\(\psi_n\)。即使只考虑是否应该相信 \(\varphi\),我们也常需比较 \(\varphi\) 和某些我们相信或不相信的句子 \(\chi_0\),…,\(\chi_n\)。从 \(\psi_0\),…,\(\psi_n\)(或 \(\chi_0\),…,\(\chi_n\))到 \(\varphi\) 或其否定的过渡,通常被称为「推理」。(Henkin, 1967)

在上述语境中,\(\psi_0, \cdots, \psi_n\)(或 \(\chi_0, \cdots,\chi_n\))常被称为「前提」,\(\varphi\)(或其否定)常被称为「结论」。人们把一集前提和从它得出的结论合起来,称之为论说,亦称论证(argument)。这里,「推理」指从前提得出结论的过程,而「论说」指前提和结论的集合。考虑下面的两句话,从中我们能得出什么结论?

例 1.1 (宝宝的爱)

  1. 人人都爱我的宝宝。
  2. 我的宝宝只爱我。

人们可以去编些故事,比如说,「我」指某人,「宝宝」指她(他)的孩子或情人,等等。但假定张三说,他从例 1.1 得出「我的宝宝就是我」,我们会同意吗?张三是这样得出他的结论的(用「宝宝」代替「我的宝宝」):

既然人人爱宝宝,而宝宝是人,所以宝宝爱宝宝。「宝宝只爱我」说的是:对任何 \(x\),如果宝宝爱 \(x\),那么 \(x\) 就是我;从而如果宝宝爱宝宝,那么宝宝就是我。既然宝宝爱宝宝,所以宝宝就是我。

通常人们用下述方法表示一个论说:将其前提和结论列出,用一道线将前提与结论分开,并在结论前加上「\(\therefore\)」表示「所以」。比如,张三从例 1.1 中的前提到结论「我的宝宝就是我」的论说就可以表示为:

例 1.2 (我的宝宝就是我)

  1. 人人都爱我的宝宝。
  2. 我的宝宝只爱我。
  3. 所以,我的宝宝就是我。

1.1.1 论说的好坏

论说有好有坏。逻辑学要做的事情之一,就是区分好的论说与坏的论说,或者说是给出一般的方法,而依据这些方法,我们能对论说的好坏作出正确的判断。这大概是对逻辑的最常见的一种说明。要说明上述示例是否好的论说,先要说明什么样的论说是好的,什么样的是不好的。对此,最直观又最简单的说法与下面说的差不多:

对任何一个论说,如果在每个使其前提都真的情况下,其结论也一定真,那么这个论说是的;如果在某些情况下,该论说的前提都真而结论假,那么这个论说就是的(不好的)。

这种直观的说法可以让人对论说的好坏有个初步的印象,但不够清楚准确。比如,什么叫作「使前提都真的情况」,什么叫作「在某个情况下,一个命题是真的」,等等,现在都还不清楚。这种说法的优点,是它强调了论说的好坏不在于前提和结论的真假,而在于它们的真假在不同情况下的比较。

1.1.2 论说形式的好坏

一个具体论说的好坏与其前提和结论的真假无关:一个好论说的前提和结论可能都是假的,而一个坏论说的前提和结论也可能都是真的。(:论说本身的好坏与论说形式的好坏是相互区别而又有联系的两个问题。)比如下面这个论说:

例 1.3 (企鹅与猴子)

  1. 企鹅都是鸟。
  2. 猴子都不是企鹅。
  3. 所以,猴子都不是鸟。

它的前提和结论都是真的,但人们仅凭直观就知道这个论说是不好的;人们会说:不是企鹅的不一定就不是鸟,比如说麻雀就不是企鹅,但不能因此说麻雀不是鸟。企鹅的确都是鸟,猴子的确都不是企鹅,并且猴子也的确都不是鸟;但是,最后一个命题之前的「所以」是没道理的。再看下面的论说:

例 1.4 (爱运动的男生)

  1. 爱运动的学生学习成绩都很好。
  2. 男学生都爱运动。
  3. 所以,男学生学习成绩都很好。

它的前提和结论都是假的,但整个论说似乎无懈可击。

常听到争论中的人说:「即使你的论证没问题,你的前提本身就是假的,结论当然也是假的。」这是一种常见的误解,仿佛好论说会「保存」虚假性,即会把前提的虚假性传到结论上。例 1.5 表明好论说并不保存虚假性:

例 1.5 (猫都是人)

  1. 所有的猫都是人。
  2. 所有的学生都是猫。
  3. 所以,所有的学生都是人。

易见两个前提都是假的,结论是真的,而整个论说也无懈可击。

前提有真有假的好论说或坏论说的例子也很多,不一一列举了。一般说来,真、假前提和真、假结论的各种组合情况,就坏论说而言都是可能的;就好论说而言也差不多,只有一个例外:好论说不会有真前提和假结论

上面说过,对任何一个论说,如果在每个使其前提都真的情况下,其结论也一定真,那么这个论说是好的。所谓使前提都真的情况,简单地说就是能使所有前提同时成立的一种解释,而这种解释既可以是现实也可以和现实无关。比如我们讨论例 1.3 中的坏论说时,给出的理由是「麻雀不是企鹅,但不能因此而说麻雀不是鸟」。这相当于把「猴子」换成了「麻雀」或是把「猴子」解释成了麻雀。当然,这是不够清楚的说法。清楚一些的说法涉及「论说的形式」(argument form)。我们暂时依赖直观判断什么是一个论说的形式:

例 1.6 (论说及其形式)

  1. 所有的猫都是人。
  2. 张三是猫。
  3. 所以,张三是人。

其直观形式为:

  1. 所有 \(S\)\(P\)
  2. \(a\)\(S\)
  3. 所以,\(a\)\(P\)

再如下列是例 1.3 的论证形式:

  1. 所有 \(S\)\(P\)
  2. 所有 \(Q\) 都不是 \(S\)
  3. 所以,所有 \(Q\) 都不是 \(P\)

下列是例 1.4 的论证形式:

  1. 所有 \(S\)\(P\)
  2. 所有 \(Q\)\(S\)
  3. 所以,所有 \(Q\)\(P\)

不同的论说可以有相同的形式,而具有相同形式的论说称为这个论说形式的特例(instance)。例如,例 1.7 中有两个不同的论说,但它们的形式同是上列例 1.3 之形式,并且同是该形式之特例:

例 1.7 (论说形式之特例)

  1. 企鹅都是鸟。
  2. 猴子都不是企鹅。
  3. 所以,猴子都不是鸟。

下列论说与上一论说形式相同:

  1. 企鹅都是鸟。
  2. 麻雀都不是企鹅。
  3. 所以,麻雀都不是鸟。

一个论说形式的众多特例中有一类被称为「反例」。一个论说形式的反例(counter example)是这个论说形式的特例,其所有前提都是真的,而其结论是假的。如果一个论说形式没有反例,那么该论说形式是好的;如果一个论说形式有反例,那么该论说形式是坏的(不好的)

1.1.3 论说好坏取决于形式的好坏

一个论说的形式是好的(亦即它的形式没有反例),则称其为好的论说。一个论说的形式是坏的(亦即它的形式有反例),则称其为坏的论说

既然具体论说的好坏在于它的形式的好坏,那么就任何具体论说而言,它的(前提和)结论真不足以说明它好,而它的(前提和)结论假也不足以说明它坏——它的好坏在于同样形式的特例中有没有前提真而结论假的论说。由此可知,要说明一个论说是坏的论说,最直接的方法是去找一个与它形式相同且前提真而结论假的论说。

我们来看如何说明一个论说是坏的论说。先考虑例 1.7 下方的论说,易见它的前提都真而结论假;我们知道其形式是例 1.6 所列之形式,所以它是例 1.6 左列形式的反例。既然例 1.6 所列形式有反例,它就是坏的论说形式。现在来看例 1.3 中的论说,亦即例 1.7 左侧的论说,其形式也是例 1.6 所列之形式。我们现在知道例 1.6 所列形式是坏的论说形式,所以,例 1.3 中的论说是个坏的论说。我们来看另一个论说:

例 1.8 (论说形式与内容)

  1. 浩毕特都生活在沙伊鄂。
  2. 拜根斯都是浩毕特。
  3. 所以,拜根斯都生活在沙伊鄂。

其论说形式为:

  1. 所有 \(S\)\(P\)
  2. 所有 \(Q\)\(S\)
  3. 所以,所有 \(Q\)\(P\)

在了解「浩毕特」「沙伊鄂」和「拜根斯」的意思之前,我们无法判断例 1.8 论证的前提或结论的真假。但是,我们知道其形式。

这个形式有下述特点:无论把什么类名词放在 \(S\)\(P\)\(Q\) 的位置上,都不会得到具有真前提和假结论的论说,即不会得到例 1.8 所列形式的反例。这就是说,例 1.8 所列之形式是好的论说形式。因为例 1.8 所列之论说是例 1.8 所列之形式的特例,所以它是个好的论说。

然,说一个论说形式没有反例,并非仅仅是说没有找到它的反例,因为没找到反例不等于没有反例。例 1.8 所列之论说形式比较简单,容易看出它不会有反例;但是,一个好的论说形式可以很复杂,仅靠直观未必能说出它是否有反例。这门课程的任务之一,就是学会判别好坏论说形式的若干方法

如果承认一个论说是好的,那么接受其前提就无法理性地拒绝其结论,从而否定其结论也就无法理性地坚持其前提;如果断定一个论说是坏的,那么接受其前提的同时可以拒绝其结论。用逻辑术语来说,如果一个论说是好的,那就意味着它的前提「逻辑蕴涵」(logically implies)它的结论(当代逻辑不仅讨论给定命题集合是否逻辑蕴涵某给定命题,它更要突破具体命题和具体命题集合的限制,把逻辑蕴涵关系作为对象来讨论。),或者说结论是前提的「逻辑后承」(logical consequence);如果一个论说是坏的,那就意味着它的前提和结论之间没有逻辑蕴涵关系,亦即结论不是前提的逻辑后承。我们将在第一编中讨论逻辑蕴涵的一种简单形式——重言蕴涵(重言后承),而在第三编中讨论逻辑蕴涵(逻辑后承)。

1.2 演绎

前面列举的关于逻辑学的几种说法中,有一种是「逻辑学是关于推理的」。当谈到论说的好坏与推理的关系时,也有类似于下述命题的说法:对任何一个论说,如果从其前提能够合理地推出其结论,该论说就是好的;如果从其前提不能合理地推出其结论,该论说就是坏的(不好的)。

所谓「合理地推出结论」,通常被理解为一个末端是这个结论的推理链(chain of reasoning),它可以只有一两步,也可以有很多步,但(关键的是)每一步都要「合理」。对「合理性」的各种要求或解释,形成了不同类型的推理链。演绎(deduction)是这些类型中的一种。

演绎对「合理性」的基本要求是:「推理链」中的每个推理步骤,如果不是前提、定义、预设、公理、假设等或已经从这些东西「合理地」推出的命题,那么一定是从它们用某些明确的规则得到的。这些明确的规则都要有如下性质:在演绎中使用这些规则时,人们从真命题只能得到真命题。众所周知的各种三段论、假言推理规则和选言推理规则等就属于这种规则。(演绎中也常用被称之为「引理」和「定理」之类的东西。它们虽与公认的规则不同,但因为它们也是经演绎得到的,所以可以把它们看作是已经「合理地推出」的命题。)如此说来,至少直观上看,演绎像是将一个个好的论说接起来——它一步步推出的每个命题都是该命题前面某些命题的逻辑后承。

1.2.1 演绎的例子一

数学证明都是演绎的例子,我们就不列举了。这里来看另一类例子。上一节谈到例 1.2 之论说,我们曾假定张三给岀了他的说明。那个说明其实就是个演绎的例子。虽然那个说明中的命题并没有列成链,而对每一步到下一步的过渡,也没说明是运用了什么规则;但是,人们可以把例 1.2 的说明「还原」成符合上述说法的演绎:

例 1.9 (宝宝的演绎)

  1. 所有的人都爱我的宝宝。 前提(经过复述)
  2. 我的宝宝是人。 预设
  3. 我的宝宝爱我的宝宝。 三段论
  4. 我的宝宝只爱我。 前提
  5. 对每个 \(x\),如果我的宝宝爱 \(x\),那么 \(x\) 就是我。 「按定义改写」
  6. 如果我的宝宝爱我的宝宝,那么我的宝宝就是我。 特例
  7. 我的宝宝就是我。 肯定前件的假言推理(modus ponens)

上述演绎「还原」的文字过程,可按照后续章节介绍的谓词逻辑的自然演绎方法表现。设定论域为人,\(\mathbf{a}\) 为「我」,\(\mathbf{b}\) 为「我的宝宝」,\(Px\) 表示「\(x\) 是人」,\(Lxy\) 表示「\(x\)\(y\)」,则本例推理过程可表述为(学完相关章节后再阅读这个自然演绎的例子):

当然,这个例子难免让人觉得怪。比较近情理的一个说法是:对于「所有的人都爱我的宝宝」这句话,人们往往不把其中的「所有的人」理解为所有的人,而是理解为宝宝以外的所有人。根据这种说法,从「所有的人都爱我的宝宝」应该得不出「我的宝宝爱我的宝宝」,进而从上述两个前提应该得不出「我的宝宝就是我」这个结论。

「所有的人」的这种「…以外的所有的人」的用法,是个习惯或语境的问题,而非命题的逻辑结构或推理的问题。显然,我们不能说「所有的人」的意思就是「宝宝以外的所有的人」的意思,因为在「所有的人都要睡觉」「所有的人都要吃饭」等句子中,「所有的人」显然不是指宝宝以外的所有的人。当然我们就更不能说「所有的 \(S\)\(P\)」中的「所有的 \(S\)」应理解为宝宝以外的所有的 \(S\)。如果把「所有的人都爱我的宝宝」的形式概括为「所有的 \(S\) 都与 \(a\) 有关系 \(R\)」(其中 \(a\) 是某个 \(S\),就像我的宝宝是人),那么「所有的 \(S\)」在句子中的意思是否就是所有不等于 \(a\)\(S\) 呢?有些时候是这样,但显然也并不总是这样。

比如,正常人不会认「所有的正整数都大于 1」这一命题是真的,因为正整数 1 不大于 1。然而,假如「所有的正整数」的意思就是所有不等于 1 的正整数,那么我们就必须承认这是个真命题。这样的例子太多了。日常会话中,我们习惯于怎么省事怎么说,「差不多就行」,甚至应该尽可能避免繁琐。但我们谈到理论问题时,「差一点」也不行。上面的例子告诉我们,如果在我们的理论中,我们把下列命题中的「除了 \(a\)」漏掉了,

  1. 所有的 \(S\) 都与 \(a\) 有关系 \(R\),除了 \(a\).
  2. \(a\)\(S\) 且只与 \(b\) 有关系 \(R\).

那么「\(a\) 就是 \(b\)」就成了从我们理论中可以演绎出来的一个结论,尽管我们可能并不想要它。

1.2.2 演绎的例子二

我们来看另一个演绎的例子。据说,有人曾针对古典逻辑(:「古典逻辑」是狭义的数理逻辑的另一个名字。狭义的数理逻辑包括「四论」(公理集合论、模型论、递归论和证明论),也包括本书讨论的命题逻辑和一阶逻辑等理论。在当代逻辑范围内,古典逻辑范围外,还有众多逻辑分支,俗称「非古典逻辑」。)「从假命题可推出任何命题」这一特点向罗素挑战,要他从「2+2=5」推出「罗素和教皇是同一个人」,罗素当即以下述演绎(或类似的演绎)作出回应:

例 1.10 (从假命题可推出任何命题)

  1. 2+2=5 假设
  2. 2=3 等词法则(等式两边各减 2)
  3. 3=2 等词法则(对称性)
  4. 2=1 等词法则(等式两边各减 1)
  5. 罗素和教皇是两个人。 事实
  6. 罗素和教皇是同一个人。 等词法则(运用上述「2=1」)

这个演绎也有点「怪」。上一个例子的前提「所有的人都爱我的宝宝」,虽然未必是真的,但在某些情况下可能是真的,至少我们不知道它是否在任何情况下都是假的。在这个例子中,我们却知道前提「2+2=5」在任何情况下都是假的。演绎和好的论说一样,它并不考虑前提或结论的真假。只要推演规则的选择适当,运用这些规则得到的命题都是前提的逻辑后承,亦即演绎保存真实性。正因如此,演绎不仅仅可以用来(从正面)说明某个命题的真实性,它同样可以用来(从反面)说明某个命题的荒谬性。当然,演绎并不保存荒谬性,可以从荒谬的命题演绎出的不仅仅是荒谬的命题。

1.2.3 可演绎性、可证性和独立性

如果从一集命题(理论、前提或假设)演绎出了某个命题 \(\varphi\),那么 \(\varphi\) 当然是从这集命题可演绎(deducible)的。从集命题可演绎的常被称为这集命题的演绎后承(deductive consequence)。没有前提的演绎称为证明,无需前提就可演绎的称为可证明的或可证的(provable)。说一个命题是不可证或从给定命题集不可演绎,不是说没有找到它的证明或演绎,而是说不存在这样的证明或演绎。(:当代逻辑不仅研究某些给定命题是否可证或可演绎,它更系统地研究可证性(可演绎性)和不可证性(不可演绎性)。注意:可证性和可演绎性都是相对于演绎「系统」来谈的。对于不同的演绎「系统」,一个命题是否可证或从一集命题是否可演绎的问题,完全可以有不同的答案。)

独立性就是不可演绎性,只不过它多用于人们感兴趣的命题。一个系统不可证明的命题通常很多,人们不会对所有这些命题都有同样的兴趣。人们有兴趣的命题在一系统中是否不可证,常被称为这些命题的(相对于该系统的)独立性(independence)问题。比如,「独立性」很多时候被用在系统的公理上。给定一个系统和系统中的一个公理 \(\varphi\)。如果从 \(\varphi\) 以外的所有公理经系统的全部推理规则不可证明 \(\varphi\),那么 \(\varphi\) 就是独立的。换句话说,该系统的全部推理规则和 \(\varphi\) 以外的所有公理构成该系统的一个子系统,而如果 \(\varphi\) 在这个子系统中不可证,我们就称 \(\varphi\)独立的(independent)。对于一个系统的公理集合,如果其中每个公理都是独立的,我们就称这个公理集合是独立的。

1.2.4 可演绎性与论说

至此,我们已经初步了解了检验论说好坏的两种基本方法:演绎和对论说形式的检验。这两种方法之间有没有关系呢?

我们说过,演绎对推演规则的要求是从真命题只能得到真命题。读者可能已经由此猜测:如果从一个论说的前提能够演绎出它的结论,这个论说的形式就是好的。事实上,这个猜测是正确的,而肯定其正确性的定理称为「可靠性定理」。

进一步的问题是,如果从前提演绎不出结论,那是否意味着这个论说的形式一定是不好的呢?或者换个方式来问,如果一个论说的形式是好的,是否一定有一个从它的前提到它的结论的演绎呢?这个命题的答案就本书讨论的演绎系统来说也是肯定的。给出这一问题肯定答案的定理称为「完全性定理」。

演绎和论说虽然关系密切,但它们在某些方面是很不同的。论说的好坏离不开真或假的概念。然而,演绎在一定程度上可以是机械的,与真和假的概念无关。对于确定的公理、假设和推演规则,我们可以逐个去试,看运用每一条公理、假设和规则能得到什么;而只要有足够长的时间和足够大的空间,凡是可演绎出来的命题,我们终究可以找到它的一个演绎。虽然这种办法很笨,而且谁也没有那么多时间把公理、假设和规则一个个地去试;但从理论上说,用这种笨办法总能找到可演绎命题的演绎。这里的关键是:在构造或寻找演绎的过程中,人们可以完全不考虑命题的真假,甚至可以根本没有真和假的观念——他们可以仅仅把规则运用于各个命题,而且在这样运用时又仅仅考察这些命题的形式结构。

1.3 一致性

1.3.1 关于一致性的基本想法

通常,我们可以说某人言行(不)一致,指的是此人说的和做的(不)一样。这和逻辑里说的一致性不同。逻辑里说的一致性(consistency),从直观上说就是不自相矛盾,不自打嘴巴,或者是能说得过去,能自圆其说,或者是相关的各命题可以相安无事,等等。(:参见 §2.5.3(P.88)中的「可满足性」分析。)也有人把一致性叫作自恰。有时我们也会说一个理论和另一个理论不一致,或一组信念与另一组信念不一致,等等。在这种情况下,我们的意思是说,把这两个理论或这两组信念合在一起就不一致。

很多时候,说一个理论(或一集信念)是一致的,意思是说,在适当的解释下,这个理论中的所有命题都同时是真的;而说一个理论(或一集信念)是不一致的,是说在任何解释下,这个理论中的命题都不会同时是真的。这种一致性的观念是一种「语义」观念,我们可以称它为「语义一致性」。当代逻辑中还有另一种一致性的观念:对于每一个理论,如果从它不能演绎出任何一对矛盾的命题,那么它就是一致的;否则,它就是不一致的。这种一致性的观念是一种「语法」观念,我们可以称它为「语法一致性」。在当代逻辑研究中,「一致性」通常指语法一致性,而语义一致性被称为「可满足性」。

语法一致性和语义一致性有如下关系:

  1. 相对于给定的演绎系统,如果语义一致的理论都是语法一致的,那么该系统一定有「可靠性」,亦即从前提可演绎的都是这些前提的逻辑后承。
  2. 相对于给定的演绎系统,如果语法一致的理论都是语义一致的,那么该系统一定有「完全性」,亦即只要是前提的逻辑后承都从这些前提可演绎。(:这一节中有几个命题,其真实性对初学者来说可能不那么明显。我们并不打算在此处详细讨论这些命题,而会在后面讨论它们。所以,即使现在不明白这些命题为什么成立,初学者也不必因此而对逻辑心生畏惧;读完这本讲义后回头来看这些命题时,就会明白它们成立的理由了。)

1.3.2 不一致命题集的例子

一个不一致的命题集合,如果其中的命题比较简单且数量很少,那么它的不一致性通常容易被发现。那些直接包含矛盾的命题集显然是不一致性的。比如:

  1. 海德格尔是纳粹。
  2. 海德格尔不是纳粹。

在任何解释下,如果这两个命题之一是真的,则另一个不可能是真的;所以任何解释都不能使这集命题同时成立。

在一定预设或直观背景下,有些不一致的命题集虽不是简单地包含一个命题和它的否定,但可以导出一对直接否定对方的命题。比如:

  1. 吾盾之坚,物莫能陷也。
  2. 吾矛之利,于物无不陷也。

如果那个卖矛和盾的人既有矛 \(a\) 又有盾 \(b\),那么由上述言论即可导致「\(a\) 不能陷 \(b\)」和「\(a\) 能陷 \(b\)」的矛盾。

有些命题集只含一个命题,但仍能导出矛盾的命题。比如「这位理发师为且只为所有不为自己理发的人理发。(:这是集合论中罗素悖论的通俗形式,俗称「理发师悖论」。)」通过这个命题我们知道:

  1. 这位理发师只为那些不为自己理发的人理发(即不为任何为自己理发的人理发)。
  2. 这位理发师为所有不为自己理发的人理发。

这位理发师要么为自己理发要么不为自己理发。但是,如果他为自己理发,那么根据第 0 条他就不为自己理发;而如果他不为自己理发,那么根据第 1 条他就为自己理发。

有些不一致的命题集合,其中任意一对命题都不导致矛盾,甚至去掉其中任何一个命题的结果都是一致的。比如:

例 1.11 (不一致的命题集)

  1. 哲学家都是求真的人。
  2. 求真的人都不喜欢神侃。
  3. 张三是哲学家。
  4. 张三喜欢神侃。

请读者检查:这个命题集不一致,尽管从中任选三个命题都一致。

1.3.3 一致性、逻辑蕴涵与可演绎性

理论或信念的一致性和它们的「真实性」或「正确性」是不同的。逻辑学本身不注重其他学科的具体理论或信念的真伪,(:从某种意义上说,逻辑学非常重视数学理论的真伪,弗雷格罗素等甚至深信数学可以归结为逻辑。这有点离题了。总之,至少可以说,逻辑学本身不注重逻辑和数学之外的具体理论或信念的真伪。)但注重这些具体理论和信念内部各命题之间的关系,或不同理论、不同信念集合之间的关系;正如逻辑不注重具体论说的前提或结论的真伪,但注重这些前提与结论之间的关系。一个理论或一组信念的一致性,或更一般地,一集命题的一致性,是这集命题为真的必要条件。如果一个理论不一致,那么这个理论的内部有互不相容的命题,而任何一种解释都不能使这个理论中的所有命题同时成立。一个理论或一种信念被人们相信或接受,通常不会仅仅因为它是一致的;但如果它不一致,它就是不可接受的。

一致性与逻辑蕴涵和可演绎性是「相通」的(就本书涉及的系统而言):

  1. 如果一个理论不一致,那么对其中的任何命题,该理论的其他命题一定逻辑蕴涵它的否定。
  2. 如果一个理论是一致的,那么对其中的任何命题,该理论的其他命题不会逻辑蕴涵它的否定。
  3. 如果一个理论不一致,那么对其中的任何命题,它的否定从该理论的其他命题一定可演绎。
  4. 如果一个理论是一致的,那么对其中的任何命题,它的否定从该理论的其他命题一定不可演绎。(:把一致性理解为语义一致性时,上述第三个命题等价于「完全性定理」,第四个等价于「可靠性定理」;而把一致性理解为语法一致性时,上述第一个命题等价于「可靠性定理」,第二个等价于「完全性定理」(后两个合起来是定理334)。)

为了简单地说明上述命题的意思,我们来看例 1.11。我们说过,这个「理论」是不一致的。例 1.11 命题 1 的否定可以从命题 2, 3, 4 演绎出来(或被它们逻辑蕴涵):

由命题 2, 4 知,张三不是求真的人,再与命题 3 合并,得知张三是哲学家但不是求真的人,进而得到:有些哲学家不是求真的人,即命题 0 的否定。

接下来我们看例 1.11 中命题 2 的否定可以从命题 1, 3, 4 演绎出来(或被它们逻辑蕴涵):

由命题 1, 3 知,张三是求真的人,再与命题 4 合并,得知张三既是求真的人又喜欢神侃,进而得到:有些求真的人喜欢神侃,即命题 1 的否定。

至于例 1.11 中命题 3 的否定和命题 4 的否定是否的确可以分别从其他三条命题演绎出来(或分别被它们逻辑蕴涵),这里就不讨论了,留给读者思考。

1.4 逻辑或「逻辑」的若干问题

近年来,一些与逻辑或「逻辑」有关的谈论实在有些离谱,我们在这里不得不说几句。

1.4.1 「逻辑是什么」不是逻辑问题

中国,「逻辑是什么」或「什么是逻辑」这类问题谈的特别多,学生们也好奇。一位美国逻辑学家在访问中国期间,曾应邀在某次学术讨论会上做了报告。事后,有一次他和我通电话,谈起那次会议。我问他与会者对他发言的讨论情况,他回答说,没什么逻辑问题,基本上就是问「逻辑是什么」。

学逻辑的人首先应该明白:「逻辑是什么」这类问题都不是逻辑问题。如果我们去上数学课或物理课,或是去读一篇数学论文或物理学论文,老师或作者会在那里大谈数学是什么或物理学是什么吗?不会,至少通常不会。相反,他们会讨论一些具体的数学或物理问题,会告诉我们如何解决这些问题;他们也会讨论一些理论,会告诉我们这些理论如何解决若干类问题。相反,如果我们去上国内流行的哲学课或读一篇哲学论文,遇到对具体哲学问题的讨论的概率几乎就是零。所以,从这样的角度来看,逻辑学像科学(:本讲义中,「科学」指数学和被称为自然科学的那些学科。我们无意在这里涉及科学哲学中关于数学是否科学的问题,也无意介入对类似问题的讨论。自然,一旦数学是科学,当代逻辑学也应是科学,因为无论是就对象还是就方法而言,当代逻辑学与数学的类似都不亚于任何其他被称为科学的学科。)而不像国内流行的哲学,因为逻辑学研究各种各样的具体的逻辑问题。

「逻辑是什么」这类问题,当然可以讨论。这样的讨论有两种。一是随便谈谈看法,二是认真的学术讨论。如果是随便谈看法,即使是外行来谈,只要谈的不是太离谱人们也不会去较真,因为任何人都可以有自己的看法。(:“Few men think, yet all will have opinions?” — George Berkeley, Three Dialogues between Hylas and philonous, 1713.)认真的学术讨论则不同,它决不像外行或初学者想像的那么简单,而且即使讨论者的态度是十二分的认真,也未必能使人严肃认真地对待他们的讨论。这是因为,要认真讨论「逻辑是什么」这类问题,首先要熟悉逻辑,要有较全面的学识和较好的修养。倘若只读了几本逻辑教科书,甚至连像样的教课书都没好好读过,那么讨论「逻辑是什么」这类问题是不会得要领的,从而无法指望内行人认真对待这样的讨论。

总有一些人,逻辑没入门,却偏偏热衷于谈论「逻辑是什么」,「逻辑学有多少种」,「逻辑研究有几个层面」和「逻辑学的发展方向」,等等。他们把外行话当「学术论文」写,当「学术报告」讲,甚至不惜误人子弟也要把这些东西炒响做大。真想学点逻辑的人要小心:这些东西只和「逻辑」这个名称有关,和逻辑学的内容不沾边。任何人把自己做的事称作「对科学研究的贡献」,都只是他个人的事;但如果以为只要能炒响做大,内行们就不得不认真对待,甚至不得不承认,那才是典型的科学外行的一厢情愿。

1.4.2 逻辑与「逻辑」的用法

有「专家」说,要想确定逻辑是什么,就要看历史上和现实中人们怎么用「逻辑」这个词,并声称只有这样得出的看法才是「客观的」。于是,经过对「逻辑」用法的一番「考察」得出结论:逻辑除亚里士多德逻辑、数理逻辑和概率逻辑,还有方法论和知识论、非形式逻辑和辩证逻辑,共有五六种。

按说,当「专家」一本正经地谈「学术」时,总不至于信口开河;可我们的「专家」实在不争气。单看结论就已令人大跌眼镜,因为仅凭常识也知道「逻辑」的用法远不止这五六种。

用 google 搜索一下就有以下结果:当代逻辑(数理逻辑、古典逻辑、哲学逻辑、非古典逻辑)、形式逻辑、归纳逻辑、概率逻辑、传统逻辑、发现的逻辑、辩证逻辑、非形式逻辑、自然语言逻辑、模糊逻辑、人工智能逻辑、中国古代逻辑、法律逻辑、经济逻辑、商业逻辑、商务逻辑、资本逻辑、营销逻辑、地产逻辑、自然逻辑、人文逻辑、社会逻辑、教育逻辑、文学逻辑、历史逻辑、艺术逻辑、审美逻辑、男性逻辑、女性逻辑、愤青逻辑、痴呆逻辑、行政逻辑、和谐逻辑、创新逻辑、文化逻辑、潜逻辑、足球逻辑、致富逻辑、运气逻辑、统治逻辑、专制逻辑、官场逻辑、官僚逻辑、升官逻辑、军阀逻辑、土匪逻辑、强盗逻辑、流氓逻辑、痞子逻辑、骗子逻辑、厕所逻辑,等等。

「逻辑」的诸多用法显然无法对应于「专家」说的那五六种逻辑,这一事实不仅无法否认,而且与「专家」的前提和结论无法同世而立。所以,如果我们的「专家」不肯放弃他的前提或结论,那就只会让自己落到全无逻辑的地步。(这也是「逻辑」的一种用法!)

外行人如何使用「逻辑」这个词,逻辑学者通常没必要认真,因为「逻辑」这个词早被人们或有意或无意地滥用,在很多情况下与作为一个学科的逻辑学没什么关系,正像「科学」这个词的很多用法与科学没什么关系一样。按说,内行人不在乎外行人对他们的学科怎么说一一科学家不在乎哲学家怎么定义科学就是很好的说明;那么,我们的「逻辑专家」在界定逻辑学时,何以恰恰相反,求助于外行关于「逻辑」的说法呢?套用一句话:这种人其实是外行,或者装作是外行。(二狗:「逻辑」有很多种,「逻辑学」也有很多种。)

1.4.3 逻辑与「习惯的说理方式」

地球是否围绕着太阳转?每个大于 1 的自然数是否都是某些素数的积?这些科学问题的答案和人们的习惯看法无关。同样地,从「如果 \(\varphi\)\(\chi\)」和「如果 \(\psi\)\(\chi\)」是否可推出「如果 \(\varphi\)\(\psi\) 那么 \(\chi\)」,也和人们的说理习惯无关。逻辑区分好的说理和坏的说理,但不以人们习惯的说理方式为根据。

记得曾有人主张「有些 \(S\)\(P\)」蕴涵「有些 \(S\) 不是 \(P\)」,理由就是人们常这样说理,比如从「有些学生迟到了」推岀「有些同学没迟到」,等等。令人费解的是,这些人大都承认,从「所有 \(S\)\(P\)」可以「合理地」推出「有些 \(S\)\(P\)」(假定说「所有\(S\)\(P\)」时总有 \(S\) 存在),却看不出这样一来,从「所有 \(S\)\(P\)」就可以「合理地」推出「有些 \(S\) 不是 \(P\)」,于是可以「合理地」推出逻辑矛盾。把习惯的说理方式看作合理的说理方式,其结果只会是混乱。

近来更有人把文化问题装扮成科学问题,宣称存在不同的逻辑,其理由是不同文化中人们有不同的说理方式和习惯。按照这种人的说法,不仅中国人的说理方式和习惯与西方人的不同,汉族的说理方式和习惯与其他民族的也不同;所以中国中国的逻辑,西方有西方的逻辑;汉族有汉族的逻辑,其他民族有其他民族的逻辑。同时,为了表明这种「理论研究」有社会效益,还特意为它插上「有助于各民族的相互了解」和「有利于社会发展」的标签。

不同文化中,人们的确可以有不同的说理方式和习惯;但同一个文化中,人们照样可以有不同的说理方式和习惯。倘若说理方式和习惯的不同真能说明存在不同的逻辑,那么,岂止是各国可以有各国的逻辑,或各民族可以有各民族的逻辑?各地区也可以有各地区的逻辑,各校又可以有各校的逻辑,甚至个人还可以有个人的逻辑——谁没有自己的说理方式和习惯呢?这世界上有一类人,他们习惯的说理方式是「空着肚子说气壮的话」,以自称「永远不会错」为这类气壮话的典型。这能否说明存在一种与之相应的「逻辑」,进而也该对它做一番「研究」呢?

假如今天哪个文化圈里的人习惯地认为圆周率是 3,或习惯地认为一万乘以一万就是无穷,那么头脑正常的人不会因此而声称存在不同的数学。假如昨天发现了某个远离现代社会的原始部落,那里的人都习惯地认为太阳绕着地球转,或认为人是猫变来的,那么头脑正常的人也不会因此而声称存在不同的物理学或生物学。偏偏中国的哲学和逻辑学先天不足,后天失调,「不同说理方式和习惯导致不同逻辑」这类昏话,竟也可以被称作学术研究而登堂入室。

1.4.4 当代逻辑、传统逻辑和「普通人需要的逻辑」

这门课叫「符号逻辑」,取这个名字只是为区别于其他逻辑课程,如「数理逻辑」等;但这些课程名称的不同,并不意味着符号逻辑和数理逻辑是不同的逻辑。在国际主流逻辑学界,「符号逻辑」「数理逻辑」「形式逻辑」「当代逻辑」通常都是指同一个东西。

传统的形式逻辑(在国内曾被称为「形式逻辑」,现在多被称为「普通逻辑」或「传统逻辑」)是幼年的形式逻辑,它从根本上说只构成当代逻辑的一个很小的部分。尽管幼年的形式逻辑在人类文明史上有着不可磨灭的贡献,但随着科学的发展,它提供的逻辑观念、理论和工具,相对于科学(尤其是数学)研究的需要来说,显得越来越贫乏,越来越不足道。自弗雷格以来的当代逻辑,无论是就基础的坚实还是就方法的完善来讲,都大大超过了幼年的形式逻辑;而更重要的是,从当代逻辑研究中产生的新观念和发现的新规律,为科学的发展提供了更好的逻辑理论和工具。(Tarski, 1941)用 20 世纪最杰出的逻辑学家哥德尔的话说:

数理逻辑不是别的,就是形式逻辑的准确和完备的表述。它有很不同的两面。一方面,它是数学的一个部门,处理着类、关系、符号组合等等,而不是数、函数、几何图形等等。另一方面,它是先于一切科学的一门科学,包含着位于一切科学底层的观念和原理。(Gödel, 1944)

有些人总在抱怨:当代逻辑太技术化,太专业化了,越来越不适宜满足日常思维的实际需求。他们举出很多当代逻辑不考虑普通人需求的证据,如形式语言和数学方法等,还有很多当代逻辑课不受普通学生欢迎的故事。有些人甚至声称,数理逻辑的纯技术化和数学化发展,已经在某种程度上对逻辑的存在构成了威胁。于是他们主张搞一种源于传统逻辑而又适应普通人思维实际需要的「新逻辑」,称之为「批判性思维」或「非形式逻辑」。

「批判性思维」之类的东西,作为一种初级逻辑的教学模式,或者作为关于初级逻辑的普及和日常应用的探索,是值得鼓励的。在美国不少大学,「逻辑导论」课是通选课,虽俗称「baby logic」,但仍有不少学生难以过关;而「批判性思维」课(如果有的话),俗称「baby baby logic」,就是专为这些学生开设的。国内不少学生甚至学者在逻辑性方面的欠缺是严重的,而普通的「逻辑导论」课又似乎对他们帮助不大;因而就逻辑的教学普及而言,我赞成借鉴甚至进口「批判性思维」这类课程。(二狗:批判性思维:foetus logic;逻辑导论:baby logic;经典数理逻辑:basic logic.)但是,就逻辑理论而言,「新逻辑」并不是新逻辑,因为无论人们的愿望是什么,它尚未提供能与当代逻辑理论相比的逻辑理论。

初级逻辑的普及和日常应用问题,甚至当代逻辑的应用问题,都可以讨论甚至应该重视;但面向大众的逻辑课是一回事,逻辑理论研究是另一回事。这问题本来很简单,就像文科学生的数学课,总不能和数学系的课一模一样;但这决不意味着「文科数学」是有别于主流数学的另一种数学。其实,即使从应用角度来说,当代逻辑的主要目标也是为理论研究、尤其是科学理论研究提供更好的逻辑理论和工具——它早已远远超出了「满足普通人日常需要」的眼界。在这方面,逻辑学和其他科学一样,其理论研究结果应该不是普通人一看就懂且马上能用的。在科学的实际应用方面,普通人包括学生大概都有发言权;但倘若评价科学理论要以外行的好恶为标准,科学理论问题要靠他们投票来解决,那么科学就不再是科学了。

当代逻辑学家既不拒绝对新问题的探讨,也不拒绝对现有理论的重新思考。惟其如此,才会出现众多的所谓新逻辑。不过,新逻辑的出现,不是靠拒绝当代逻辑的基本思想和方法,更不是靠知难而退式的「另起炉灶」。恰恰相反,这些新逻辑都是运用当代逻辑基本思想和方法的产物,进而逐步成为当代逻辑的新分支。(:这些分支数量之多,已使精通所有分支的「全才」成为「历史人物」。十多年前去世的 A. Church 传说是最后一位「所有逻辑文章的评审员」,而这种说法显然不是针对晚年的 Church 来说的。)任何人想再搞一套逻辑都可以,但要拿出能与主流理论竞争的理论。当真要竞争,总不能比对手差太远,起码要知道对手做什么,而不能像某些「\(X\) 科学」的鼓吹者那样,对真正的科学一知半解,且所谓「竞争」也只限于对主流科学界的抱怨和基于非科学评价的煽情。

和任何科学一样,逻辑学研究有大量人的参与。随着学科的快速发展,除非是天才,不学习就要落后,落后严重的就会变成外行。说白了,即便是亚里士多德再世,如果他既不学当代逻辑又只能做他两千年前做出的工作,那么他也只是个氏逻辑专家,而不是当代的逻辑学家。这样说似乎对氏不敬,但逻辑学科的发展和进步使式逻辑成为历史却是事实。今天,只懂得毕达哥拉斯时代的数学的人不会被称为数学家,只懂得牛顿时代的物理学的人也不会被称为物理学家。根据同样的道理,只懂得式逻辑的人,不会是当代的逻辑学家。如今,想要成为逻辑学内行,学习当代逻辑是必由之路;而若想和当代逻辑竞争,学懂当代逻辑更是必要条件。

当代逻辑有很多分支,研究者文理各科都有,研究兴趣也不一样;但有一点是相同的,即都用形式语言和数学方法讨论逻辑问题。对当代逻辑专业化和技术化的抱怨,主要是针对这种形式语言和数学方法的抱怨。

弗雷格曾把他的概念文字与日常语言的关系比作显微镜与眼睛的关系。(Frege, 1879)眼睛的适用范围和适应环境的灵活性远远高于显微镜,然而,一旦科学研究需要更敏锐的分辨能力,眼睛就立刻让位于显微镜。尽管后者在满足普通人的实际需要方面毫无用武之地,但它不应因此而受到指责。研究方法上的改进推动科学的进步,甚至比孤立的个别发现更加重要,这在科学界已是共识。恰恰是形式语言和数学方法的运用,使人们对真假、逻辑蕴涵、演绎、证明、一致性和公理系统等的认识有了空前的提高,也使逻辑学最终走出了它的幼年时期而与其他科学站到了一起,并为其他科学的理论研究提供了大量的逻辑理论和工具。在这种情况下,抱怨形式语言和数学方法不满足日常思维的需求,就像抱怨显微镜无助于提高普通人对日常现象的观察能力;这不仅不得要领,更清楚地表明抱怨者没有跟上逻辑学科的发展,其「逻辑观」还停留在弗雷格之前的某个年代。

当然,这并不是说当代逻辑对普通人的工作和生活完全没有影响。与各种科学理论研究一样,当代逻辑要绕很多弯子才能与普通人联系上。比如,我们都知道,个人电脑和计算机网络对普通人工作和生活的影响越来越大;而当代逻辑通过个人电脑和计算机网络就联系到我们的工作和生活,只不过要兜个圈子:它先联系到计算机科学,再经后者的理论研究联系到它的应用研究和技术研究,最后再经过具体硬件和软件的开发、生产和销售等中介,才联系到个人电脑和计算机网络,才联系到我们的工作和生活。尽管当代逻辑是计算机科学的基础理论之一,但使用个人电脑和计算机网络的普通人,却不需要懂当代逻辑(即使普通的程序员也不需要懂多少)。科学就是这样:它不要求所有的人都懂,却可以使所有的人受益。

如果读者愿意学点当代逻辑,又做好了克服困难的思想准备,那么我们的「逻辑旅程」就可以开始了。不过,当代逻辑从弗雷格算起虽只有一百多年时间,但内容丰富,分支很多,而且发展很快。读者在这里能够看到的,只是它最浅显的一部分。这份讲义虽然长达几百页,一旦学懂了,大概就只剩几十页了




Editorial comments

有屁请在此处放,看看谁的屁更响。