分享

文兰:说谎者悖论的隐蔽的假设

 hercules028 2023-01-10 发布于四川

说谎者悖论的隐蔽的假设

文兰

本文原载于《逻辑学研究》 2022年第2期,1–20

【作者简介】文兰,男,汉族,1946年出生于甘肃兰州,籍贯安徽泾县,数学家,中国科学院院士、第三世界科学院院士,北京大学数学学院教授、博士生导师。北京大学数学系硕士学位;美国西北大学数学系博士学位;1988年起在北京大学数学学院工作;1997年获得第六届陈省身数学奖;1999年当选为中国科学院院士;2004年至2007年担任中国数学学会第九届理事会理事长;2005年当选为第三世界科学院院士;2011年获得第十届华罗庚数学奖。主要从事微分动力系统领域的研究,并与合作者在微分动力系统领域的研究中做出了具有国际影响的贡献。

【摘要】 说谎者悖论是最古老最有影响的一个悖论。关于说谎者悖论,主流的理论着重于对“自我指涉”和“真谓词”的分析。本文指出,自我指涉和真谓词虽然是说谎者悖论的明显的外部特征,却不是问题的要害。问题的要害是说谎者悖论里的一个隐蔽的假设。本文先通过考察悖论与反证法的关系给出一个有助于寻找隐蔽假设的一般原理,然后应用这个原理找出说谎者悖论里的隐蔽的假设,以解答说谎者悖论。提供有力证据的是一个新发现的“三卡悖论”,它证实该原理适用于说谎者悖论。按照这一原理,说谎者悖论与一个布尔方程无解的反证法有相同的假设,即“该方程有解”的假设,也即“存在变元的值满足该方程”的假设,只不过对说谎者悖论来说,这个假设是隐蔽的。于是,解答说谎者悖论的关键就是搞清楚这一假设所说的“变元”“值”“方程”“解”对说谎者悖论来说是什么意思。人们将惊讶这一假设在说谎者悖论里隐藏之深。同样的分析也给出了雅布罗(S. Yablo)悖论的解答。

【关键词】 说谎者悖论;雅布罗悖论;反证法;布尔方程

1 前言

所谓悖论,就是推出矛盾但原因不明的推理。([4])所谓解悖,就是找出悖论推出矛盾的原因。

反证法也是推出矛盾的推理,但它推出矛盾的原因很清楚:是由于一个假 设。反证法总是先宣布一个假设(以下简称“头”),然后推出矛盾,最后下结论该假设不成立(以下简称“尾”)。这个“头”、“尾”点明了该反证法的推理中使用的假设。悖论则看不出使用了什么特别的假设,推出矛盾无法理解。

但实际上,悖论也有假设,只不过是隐蔽的。隐蔽的假设当然是推出矛盾 原因不明的最重要的原因。因此,找出隐蔽的假设,是对一个悖论的彻底解答。

读者也许会觉得奇怪,一个推理中的假设怎么会是隐蔽的呢?作为例子我 们将演示,如何只移去一个词而使集合论创始人康托的一段推理中的假设当场变得隐蔽,成为著名的理发师悖论。本文主要篇幅将揭示说谎者悖论中的一个隐蔽得多的假设,从而解答这一最古老最有影响的悖论。人们将惊讶这一假设在说谎者悖论里的隐藏之深(第[3.9]小节)。

本文首先给出一个有助于寻找隐蔽假设的一般原理:如果一个悖论是一 个反证法的掐头去尾的翻译,那么除了翻译,这个悖论与这个反证法有相同的假设,只不过对这个悖论来说,该假设是隐蔽的。然后,应用这个原理去找出说谎者悖论中的隐蔽的假设。不难看出,说谎者悖论是一个极其简单的布尔方程无解的反证法的掐头去尾的翻译。为确证这不是一个肤浅的观察,作者选取了一个非平凡的三元布尔方程组无解的反证法,掐头去尾之后,将其余的部分翻译成日常语言,果然得到一个令人眼前一亮的说谎者型的“三卡悖论”。按照上述原理,除了翻译,三卡悖论与该三元布尔方程组无解的反证法有相同的假设,即“该方程组有解”的假设,也即“存在变元的值满足该方程组”的假设。只不过对三卡悖论来说,这个假设是隐蔽的。

这一发现具有重要的意义。我们知道,关于说谎者悖论,主流的理论着重 于对“自我指涉”和“真谓词”的分析。现在,三卡悖论所表现的“自我指涉”和“真谓词”与说谎者悖论完全相同。这说明,自我指涉和真谓词虽然是三卡悖论的明显的外部特征,却不是三卡悖论的要害,也就不是说谎者悖论的要害。问题的要害是隐蔽地假设了“该方程组有解”即“存在变元的值满足该方程组”。只要搞清楚这一假设对三卡悖论来说是什么意思,即只要建立起诸如“句变元”以及句变元的“值”“句方程”“句解”等概念,就可以陈述三卡悖论的解答,也就可以陈述说谎者悖论的解答:

说谎者悖论的解答. 说谎者悖论 为假是一个句变元问题,应该写成一个句方程 为假。说谎者悖论推出矛盾是因为隐蔽地假设了该句方程有句 解,即隐蔽地假设了存在 的一个值 使得 为假。说谎者悖论的矛盾 证明,不存在 的值 使得 为假。

这一解答出自文献 [4] 。这里的陈述更为细致。把 换成 ,再换回成 , 其哲学意味是微妙的。本文将对这一解答做一个透彻的解说。作为应用,本文 给出了雅布罗悖论的解答。【注:感谢陈龙博士建议作者考虑雅布罗悖论,导致了这个精彩的应用。】

2 悖论与反证法:一个关于隐蔽假设的原理

反证法对逻辑学和数学来说具有基本的重要性。一个初等的例子如:

定理1. 不是有理数。

Proof. 假设 是有理数,即存在整数 和 使得 ,这里不妨设 和 没有公约数。两端平方,得 。故 为偶数。故 为偶数。故 为 的倍数。故 为偶数。故 为偶数。这与 和 没有公约数矛盾。这一矛盾证明 不是有理数。 ◻

对本文来说,特别要注意的是反证法结构上的“头”和“尾”。反证法的 “头”永远是宣布某个假设,“尾”永远是下结论该假设不成立,这是反证法的例行格式。注意头尾并不是推理,中段才是推理。该假设真正起作用不是在头尾而是在中段,即使去掉头尾,该假设也仍然在中段起着作用。

比如上面这个证明,如果只删掉开头句“假设 是有理数”而不作其他改动,会删掉该假设在随后推理中的实际作用吗?显然不会。删掉开头句后,紧接着第一句话“存在整数 和 使得 ”就仍然用到了 是有理数的假设,此后每一步推理也仍然建筑在该假设之上。显然,删除开头句只是删除了该假设的宣示,完全不影响该假设在推理中的实际作用。至于删除结尾句“这一矛盾证明 不是有理数”就更不影响该假设在推理中的实际作用 了,因为推理已经结束。

简言之,对反证法掐头去尾不改变其推理中的假设。

对反证法掐头去尾虽然不改变其推理中的假设,但在极少数情形却可能 使该假设变得隐蔽,这就引向了本文的主题 ------ 悖论。让我们来看一个著名的悖论。

理发师悖论(1918).某村有一理发师,恰给本村那些不给自己理发的人理发。若他给自己理发,则他属于那种给自己理发的人。按照他的原则,他应该不给自己理发。矛盾。若他不给自己理发,则他属于那种不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。

按照前言的开头所给出的悖论的定义,悖论是推出矛盾但原因不明的推 理。理发师悖论就是这样,它是一个推理,它推出了矛盾,但原因不明。

从以上两个例子可以看出,反证法和悖论都是推出矛盾的推理,但二者有 重大的区别。反证法有一个明确的假设,而悖论却似乎看不出有什么假设。从外观上看,反证法有专门讲述其假设的“头”和“尾”,而悖论则无头无尾。

由于对反证法掐头去尾不改变推理中的假设,立得下面这个有助于寻找 隐蔽假设的一般原理:

隐蔽假设原理. 如果一个悖论是一个反证法的掐头去尾的翻译,那么除了翻译,这个悖论与这个反证法有相同的假设,只不过对这个悖论来说,该假设是隐蔽的。

这是因为,任何一个反证法,其假设总是陈述在“头尾”,而使用在“中 段”以导致矛盾。现在这个中段是一个悖论,因此它意识不到自己正在使用的导致矛盾的假设。对这个悖论来说,该假设是隐蔽的。

这也说明,一个悖论一旦被发现是某个反证法的掐头去尾,其隐蔽的假设 就被(该反证法的“头尾”)揭露了,该悖论也就被解决了。

对这个原理的最好的诠释是看看理发师悖论是哪个反证法的掐头去尾。我 们来看一下。首先把理发师悖论重述一遍:

理发师悖论重述.假设某村有一理发师,恰给本村那些不给自己理发的人理发。若他给自己理发,则他属于那种给自己理发的人。按照他的原则,他应该 不给自己理发。矛盾。若他不给自己理发,则他属于那种不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。

注意这一次在开头添加了两个字“假设”。

“假设”二字一加,问题马上清楚了,产生矛盾的原因就是这个假设,所 得矛盾无非说明该假设不成立,即该村不存在一个理发师“恰给本村那些不给自己理发的人理发”罢了。

但人们要问,理发师悖论的陈述里原来并没有“假设”二字,如此重要的 两个字,为什么可以凭空加上去呢?

其实,原来是有“假设”二字的,是在集合论创始人康托的一个定理里。我们来解释一下。

先回顾一下集合论的几个概念。设 和 为两个集。所谓一个从 到 的映射是指一个法则,它对 中的每一元素 ,唯一指定 中 的一个元素。这个为 指定的 中的元素称作 在 下的,记为 。如 果 中的每一个元素都是 中某个元素的像,就称 是一个满射。对任意一 个集 ,称 的所有子集所成的集为 的幂集,记作 。

康托定理(1895). 对任何集 ,不存在从 到幂集 的满射。这是集合论最基本的定理之一,一般陈述为“不存在从 到幂集 的一一对应”。但不存在满射当然就更不存在一一对应。

Proof. 任取一个映射 ,要证 不是满射。为此令

我们来证明,不存在 使得 。为此用反证法。

假设存在 使得 。若 ,则 。但 , 故 ,矛盾。若 ,则 。但 ,故 ,也矛盾。这证 明不存 使得 ,故 不是满射。 ◻

那么康托定理与理发师悖论有什么关系呢?

我们来给康托这段反证法一个“理发”的解释。把 理解为该村村民的 集,把 理解为“理发映射”,即对每一村民 ,令 为被 理发的那些村 民的集,即 的“顾客集”。那么康托所考虑的集合

就是该村那些不给自己理发的人所成的集,而 的意思就是 恰给本 村那些不给自己理发的人理发,故 就是悖论所说的那位理发师。

现在来对照一下康托的证明和理发师悖论。

存在 使得 (某村有一理发师,恰给本村那些不给自己理 发的人理发)。若 ,则 。但 ,故 ,矛盾(若他给 自己理发,则他属于那种给自己理发的人。按照他的原则,他应该不给自己理 发,矛盾)。若 ,则 。但 ,故 ,也矛盾(若他不给 自己理发,则他属于那种不给自己理发的人。按照他的原则,他应该给自己理 发,也矛盾)。

显然,理发师悖论就是用理发语言叙述的康托证明。

那么为什么一个是定理,一个是悖论呢?

康托(1895)是在作反证法,前面还有“假设”二字,后面还有结尾句“这 证明不存 使得 ”(请读者检查一下)。用理发的语言讲,康托 是假设本村有一理发师恰给本村那些不给自己理发的人理发,推出矛盾后立 刻下结论不存在这样一个理发师。一切正常,一点也不“悖”。

而理发师悖论(1918 )照搬了康托的反证法,却移去了开头的“假设”二 字(以及最后的结尾句),致使人们把该理发师的存在当成了事实,推理似乎 就没有了假设,推出矛盾也就原因不明,成了悖论。

于是我们看到,仅仅移去一个词就可能使一个反证法的假设变得隐蔽。这 诠释了隐蔽假设原理,也给出了

理发师悖论的解答. 村里那位“恰给本村那些不给自己理发的人理发”的理发 师的存在只是个假设。理发师悖论的矛盾证明这一假设不成立,即村里不可能 存在这样一个理发师。

理发师悖论与康托反证法的掐头去尾的关系见文献 [6] 。关于这样一个理 发师为什么不存在,有一种说法是“理发师是女性不用刮胡子”。这是不对的。是逻辑的而不是性别的原因使得这样一个理发师不可能存在。

读者要问,还有哪些悖论是现成的反证法的掐头去尾呢?

若强调“现成的”,则例子很少。除了理发师悖论,另一个重要的例子是说谎者悖论,我们将在下一节充分地分析。这里我们对悖论与反证法的一般的关系再做一些说 明。这有两个方面,一是反证法如何掐头去尾成为悖论,二是悖论如何添上头 尾成为反证法,二者都需要一些说明。

(1)把反证法掐头去尾很容易,但绝大多数反证法掐头去尾都荒唐可笑,也 就成不了悖论。要想成为悖论,其掐头去尾必须出于某种原因未被察觉。

例如上述 不是有理数的反证法,如果隐去开头的“假设”二字,就劈 头成了“ 是有理数”,这显然荒唐可笑,也就成不了悖论。

相反,隐去康托反证法开头的“假设”二字,“假设某村有一理发师,恰给 那些不给自己理发的人理发”就成了“某村有一理发师,恰给那些不给自己理 发的人理发”,事实证明却未被察觉,成了著名的理发师悖论。

请读者想一想,这两个例子都是隐去“假设”二字,为什么前者很容易察 觉而后者不容易察觉呢?(这个问题虽不在本文的主线上,却是一个有意义、 有深度的问题,对认识悖论的实质很重要。)

(2)把悖论添上头尾成为反证法则不容易,需要先找出悖论推理里隐藏的 假设,而这相当于解答悖论。

这是因为,反证法的“头尾”是专门讲述“中段”所使用的假设的,“头”是宣布该假 设,“尾”是下结论该假设不成立。所以,只有找出悖论推理里隐藏的假设, 才有可能补上“头尾”写成反证法。而一旦找出了隐藏的假设,也就可以随时 补上“头尾”写成一个反证法。这个反证法一般就不是现成的了,而是“人为” 的了。后面第 [3.8]小节将把雅布罗悖论补上“头尾”写成这样一个反证法。

3 说谎者悖论的解答

悖论中最有影响的是有 2500 多年历史的说谎者悖论。它有好几种表述方 式,一种比较直观的是使用卡片:

说谎者悖论

这张卡片上的句子为假

若这张卡片上的句子为真,则肯定其所述,故这张卡片上的句子为假,矛 盾。若这张卡片上的句子为假,则否定其所述,故这张卡片上的句子为真,也矛盾。

注意,说谎者悖论的推理只是反复使用(推广的)塔斯基的 T-模式( [3]):若 意指 ,则 为真当且仅当 。

中世纪出现的一种变形是 Jourdain 给出的

双卡悖论

第二张卡片上的句子为假

第一张卡片上的句子为真

以下把“第一张卡片上的句子”简称为“第一个句子”,等等。

若第一个句子为真,则肯定其所述,因而第二个句子为假。故否定第二个 句子之所述,因而第一个句子为假,矛盾。

若第一个句子为假,则否定其所述,因而第二个句子为真。故肯定第二个 句子之所述,因而第一个句子为真,也矛盾。

这两则推理推出了矛盾,但原因不明,成为史上最著名的悖论。

关于说谎者悖论的文献卷帙浩繁,最著名的是塔斯基(A. Tarski,[3]) 的“语言分层”理论和克里普克(S. Kripke,[1])的“真值空隙”理论。2001年笔者在文 献 [4]中给出了一个不同的解答,不采用语言分层,又坚持传统的二值逻辑。下面就来介绍这个解答。

3.1 三卡悖论

先来看一个新发现的“三卡悖论”,它将揭示说谎者悖论的本质,直接导 致说谎者悖论的解答。

三卡悖论

第二张卡片的句子为真,且第三张卡片的句子为假

第一张卡片的句子为假,或第三张卡片的句子为真

第一张和第二张卡片的句子都为真

设第一个句子为真。由其所述,第二个句子为真,且第三个句子为假。这 样一来,第三个句子之所述就被肯定了,因而第三个句子为真,与已经证明了 的第三个句子为假的事实矛盾。

再设第一个句子为假。于是,第二个句子之所述就被肯定了,因而第二个 句子为真。又,第三个句子之所述就被否定了,因而第三个句子为假。但这样 一来,第一个句子之所述就被肯定了,因而第一个句子为真,矛盾。至此已穷尽所有可能而处处遇到矛盾。

这个悖论出自文献 [4] ,其陈述和推理都和说谎者悖论类似,是又一个说谎 者型的悖论。

但这个“三卡悖论”从何而来?它的推理含有“且”和“或”,逻辑意味甚 浓,它是怎样被发现的?后面第 [3.4]小节将揭示其秘密。现在让我们先回到说谎 者悖论。

3.2 说谎者悖论与“方程”

说谎者悖论不是一个单一的对象,而是两个对象之间的“意指”关系。通 过把“这张卡片上的句子为假”写在一张卡片上,说谎者悖论给出了一个意指 关系,即“这张卡片上的句子”( 8 个字)意指“这张卡片上的句子为假”( 10 个 字)。

塔斯基( [3])使用了类似的设计。通过把“印在本页正数第 5 行的句子不真”印 在某一页的正数第 5 行,塔斯基给出了一个意指关系,即“印在本页正数第 5 行 的句子”( 12 个字)意指“印在本页正数第 5 行的句子不真”( 14 个字)。注意塔 斯基使用的术语是“不真”而不是“假”。但因本文使用经典的二值逻辑,所以 对本文来说“不真”等同于“假”。

说谎者悖论是两个对象之间的意指关系,这一点已经是文献中的共识。比 如现代文献对说谎者悖论的表述形式:

就明确地表达了这一点,其中 表示词组“这个句子”,冒号表示“意指”(或“所述是”)。([8])

现在我们提出一个关键的看法:不妨把这个意指关系视为“尚未验证”的 而不是“已经验证”的,也就是说,不妨写成一个“方程”:

由于不排除这个式子将来“被验证”的可能性,这样写并不失去什么。以后我们将看到,把 为假写成 为假不仅是“不妨”,而且是“必须”。

以下我们有时会更简练地用符号 表示“为假”,则说谎者悖论就完全符号化为:

其中符号“ ”也表示“意指”。

把 写成 ,读者可能有些不放心。不过,说到底,“这个句子”一定是指一个确定的、具体的句子吗?

不一定。我们来看词组“这个数”。在很多时候它的确是指一个确定的数, 比如一个人指着黑板上的一个“ ”说:“瞧这个数!”这时,“这个数”就是指 这个具体的数“ ”。但也有另一种情形,“这个数”被用来表示一个待定的数, 一个“未知数”,比如一位老师在课堂上给学生出题:“一个数等于这个数自己 的 倍减 ,求这个数。”其中的代词词组“这个数”就表示一个未知数 ,老师 的题目也就是一个方程 。

换句话说,代词词组“这个数”(其他代词词组如“这个句子”“第一张卡 片上的句子”“印在本页正数第 5 行的句子”也一样)本来就有两种可能的功 能,一是代表一个确定的数,二是代表一个待定的数,即一个“变元”。后面第 [3.5]小节要定义的概念“句变元”,其语言学依据就是代词词组的这第二种功 能。上面这位老师是在谈论“这个数”:一个数等于这个数自己的 倍减 ,其 中的代词“这个数”是一个变元 , 而整个问题是一个方程 。现在说 谎者悖论是在谈论“这个句”:一个句意指这个句自己为假,其中的代词“这 个句”就是一个“句变元” ,而整个说谎者悖论就是一个“句方程” 为假。这是对说谎者悖论为什么是一个“句方程”的一个朴素的说明。严格的、 理论的说明将在第 [3.9]小节的问题 1 中给出。

3.3 说谎者悖论里隐藏的假设

上述 是一个有解方程。与说谎者悖论关系更紧密的是一个无 解布尔方程:

定理 A . 布尔方程 = 无解。

Proof. 假设该方程有解,即假设存在 的一个值使该方程两端相等。为简便, 直接用 表示这个值。

若 (若这个句子为真),则由方程, (则肯定其所述,故这个句 子为假),矛盾。反之,若 (若这个句子为假),则由方程, (则否 定其所述,故这个句子为真),也矛盾。

此矛盾证明该布尔方程无解。 ◻

读者一定注意到了,括弧里的译文就是说谎者悖论的推理。

那么卡片呢?卡片则是布尔方程 = 本身的翻译。把 = 翻译为 ,用语言叙述就是,“这张卡片上的句子”意指“这张卡片上的句子为 假”,再把“这张卡片上的句子为假”写在一张卡片上,就得到说谎者卡片

这张卡片上的句子为假

可见,说谎者悖论是布尔方程 = 无解的反证法的掐头去尾的翻译。

这正是隐蔽假设原理的框架。定理 A 反证法的主体就是说谎者悖论的推 理,“头尾”则解释了这个推理推出矛盾的原因,正是两千多年来人们苦苦寻 找的说谎者悖论的解答!

由于太久找不到说谎者悖论推理中的假设,人们认为说谎者悖论的矛盾 一定是语言或逻辑的某种深层次缺陷所致(上世纪中叶以来由于悖论的驱动 甚至出现了一种理论挑战经典逻辑的根本大法矛盾律,主张“不相容逻辑”)。而现在,定理 A 反证法的“头尾”明明白白写着:说谎者悖论的推理假设了 “该方程有解”。当然什么是“方程”什么是“解”对说谎者悖论来说还不太清楚,但那只是个术语问题,重要的是,说谎者悖论推理里隐藏的假设被发现 了!

不过,如此重大的发现得来似乎太容易了,只是把说谎者悖论与布尔方程 =作了一下对比。这会不会是肤浅的表面类比呢?

3.4 三卡悖论的秘密

为确证这不是肤浅的表面类比而是一个洞见,笔者找了下面这个三元布 尔方程组(容易看出“双卡悖论”是布尔方程组 无解的反证法的掐头去尾,故考虑三元),把它的反证法掐头去尾翻译过来,果然得到一个令人眼前一亮的说谎者型的“三卡悖论”,见文献 [4] 。我们来回顾这一制作过程。

定理B . 布尔方程组

无解。

Proof. 假设该方程组有解,即假设存在 的值使方程组成立。为简便,直 接用 表示这三个值。

假设 。由方程(1),得 ,且 。这样一来,由方程(3),得 ,与已经证明了的 矛盾。

再假设 。于是,由方程 (2) ,得 。又由方程 (3),得 。但这样一 来,代入方程(1)就得 ,矛盾。

此矛盾证明该布尔方程组无解。 ◻

现在来制作三卡悖论。先看定理 B 的陈述。我们从中去掉“布尔方程组” 和“无解”几个字,把三个布尔方程翻译成三张卡片。具体做法是用 表 示三个代词词组“第一个句子”“第二个句子”“第三个句子”。我们知道布 尔代数乘法对应于“且”,用 表示,加法对应于“或”,用 表示。再用 T 表示“为真”, F表示“为假”,三个布尔方程就翻译成三个“句方程”

我们来把它们写成三张卡片。用自然语言叙述,第一个句方程 就成为“第一张卡片上的句子”意指“第二张卡片上的句子为真,且第三张卡 片上的句子为假”。把“第二张卡片上的句子为真,且第三张卡片上的句子为 假”写在一张卡片上,并放在第一个位置,就得到第一张卡片

第二张卡片的句子为真,且第三张卡片的句子为假

这就是第一张卡片的由来。类似得到其他两张卡片。

再看定理 B 的证明。我们去掉反证法的“头尾”,只翻译中段:

假设 (设第一个句子为真)。由方程(1),得 ,且 (由其所 述,第二个句子为真,且第三个句子为假)。这样一来,由方程(3),得 , 与已经证明了的 矛盾(这样一来,第三个句子之所述就被肯定了,因而 第三个句子为真,与已经证明了的第三个句子为假的事实矛盾)。

再假设 (再设第一个句子为假)。于是,由方程(2),得 (于 是,第二个句子之所述就被肯定了,因而第二个句子为真)。又由方程(3),得 (又,第三个句子之所述就被否定了,因而第三个句子为假)。但这样一 来,代入方程(1)就得 ,矛盾(但这样一来,第一 个句子之所述就被肯定了,因而第一个句子为真,矛盾)。

括弧中的译文正是第 [3.1]小节的三卡悖论的推理。可见,“三卡悖论”是定 理 B 的反证法的掐头去尾的翻译。

三卡悖论是一个“大型的”说谎者悖论。它的发现证实了说谎者悖论与布 尔方程的关系绝不是表面现象。类似地,可以构造出四卡、五卡、 ...... N 卡悖 论,说谎者悖论只是这个家族的冰山一角。([4])这展示了说谎者悖论前所未见的 宽广而深刻的背景。

按照隐蔽假设原理,三卡悖论与定理 B 的反证法有相同的假设,即“该方 程组有解”的假设,也即“存在变元的值满足该方程组”的假设。

这一发现具有重要的意义。我们知道,关于说谎者悖论,主流的理论着重 于对“自我指涉”和“真谓词”的分析。问题在于,三卡悖论所表现的“自我指 涉”和“真谓词”与说谎者悖论完全相同(三卡悖论表现为“互相指涉”但最 终归结为“自我指涉”)。这说明,自我指涉和真谓词虽然是三卡悖论的明显的 外部特征,却不是问题的要害。问题的要害是,三卡悖论的推理隐蔽地假设了 “该方程组有解”也即“存在变元的值满足该方程组”。那么说谎者悖论也是。

3.5 建立句变元、句方程等概念

下一步要做什么就很明确了,就是搞清楚“该方程组有解”或“存在变元 的值满足该方程组”这一假设所说的“方程”“解”“变元”“值”对语言悖论 来说是什么意思。我们在第 [3.2]小节曾通过一位教师在课堂上的问题非正式地 描述了“句变元”和“句方程”,现在来正式定义这几个概念。首先回顾一下代 数学里的定义。

取定一个数域 ,比如实数域,作为讨论的论域。于是代数学里有如下 4 个 概念:

上的一个变元(又称未知数),是一个符号,常用 等表示,用来代表 的任意一个元素,但一般尚未确定代表 的哪个元素。变元所代表的 的元素称为这个变元的。注意变元不是 的元素,变元的值才是。

方程是含有未知数的等式。

方程的是使得该方程两端相等的未知数的值。一个方程可以有解,也可 以无解。

现在我们来建立语言学中的相应概念。对照 与 可知,与“数” 相对应的是“句” ,因此最自然的是把相应的 4 个概念命名为“句变元”“句变元的值”“句方程”“句解”。

回顾在经典逻辑里,所谓命题是指可以判断真假的陈述句。为讨论说谎者 悖论,我们取全体命题所成的类 作为论域。以下常把命题叫做“句子”,或 简称“句”,以便和说谎者悖论的用语一致。

现在来定义这 4 个概念。

上的一个句变元是“这个句子”“第一张卡片上的句子”“印在本页 正数第 5 行的句子”那样的代词词组,常用 等符号表示,用来代表 的 任意一个元素,但一般尚未确定代表 的哪个元素。句变元所代表的 的元 素称为这个句变元的。注意句变元不是 的元素,句变元的值才是。(请读 者与上面代数学的“变元”定义相对照。)

句方程(或称意指方程)是含有句变元的意指关系式,左端是单独一个 句变元,中间是“意指”符号“ : ”或“ := ”,右端是左端所意指的内容,比如 。句方程经常用自然语言表达,比如“甲句说乙句为假”就是一 个典型的句方程,其中的“说”也就是“意指”。

句解是使得该句方程成立的句变元的值。一个句方程可以有句解,也可以 无句解。

我们来看一下上面提到的句方程的例子:

例. 甲句说乙句为假,即 为假,其中“”表示“说”或“意思是”。

这是一个典型的句方程,即“双卡悖论”中的第一张卡片。这个句方程有 句解。比如令 为“一加一等于三是错误的”, 为“一加一等于三”,这两 个句子都是 的元素,代入句方程立见是该句方程的一个句解,因为“一加 一等于三是错误的意思是一加一等于三为假”显然成立。

注. 以上我们选取了经典逻辑的“命题”的类 作为论域。实际上,讨论说谎者悖论,论域的选取不是唯一的。从数理逻辑的观点看,这一论域可以抽象地、公理化地定义,而且需要定义的不只是上述 4 个概念,还有两个概念 “意指”和“为真”也需要定义。加上原始概念“句”,共有 7 个概念 —— 句、意 指、为真、句变元、句变元的值、句方程、句解—— 需要定义,包括建立公理以 约束它们之间的关系。为了自给自足地定义这些概念,作者在文献 [4] 中采用了 形式化的方式。文献 [4] 还讨论了“说真话者”。值得注意的是,“说真话者”依 赖于对意指符号 的解释,这一点,与说谎者悖论不依赖于对意指符号“ ”的解释很不相同。

3.6 说谎者悖论的解答

上一小节给出了句方程 为假的一个句解。实际上这个句方程有无 穷多个句解。任取 的一个元素 (比如取 为“一加一等于二”),令 为“ 为假”,令 为 ,就构成该句方程的一个句解,因为“一加一等于二为假意思是一加一等于二为假”平凡地成立。这样看,句方程很容易有解,因而找 一个无解句方程也许不太容易。幸运的是,我们手里就握有一个无解句方程, 那就是说谎者悖论 为假(当然,通过构造三卡悖论现在我们已经知道 有无穷多无解句方程组),它和句方程 为假只差一个字母。证明它无句 解就不能靠举例了,而是用反证法。

定理A. 说谎者方程(即 为假)无句解。

Proof. 假设该句方程有句解,即假设存在 的一个值 使得 为假。

若 为真,则肯定其所述,故 为假,矛盾。反之,若 为假,则否定其 所述,故 为真,也矛盾。

此矛盾证明该句方程无句解。 ◻

这个反证法的“中段”就是说谎者悖论。添上“头尾”之后,矛盾的原因 就清楚了,悖论就不“悖”了。这再一次诠释了隐蔽假设原理。

看到这里,读者可能要问,添上这个“头尾”,形式上倒是像反证法了,但 这个头尾与中段真是融汇一体的吗?这个“有句解”的假设,也即“ 是一个 值”的假设,真的用在了说谎者悖论的推理里吗?用在了哪里?

问得好!这就是下面的基本问题 2。让我们往下看。

定理 A其实是定理 A 的翻译。第 [3.2]小节我们曾把定理 A 的“中段”做 了翻译。当时没有翻译“头尾”,是因为“头尾”里的“方程”“解”等术语无 法翻译。现在有了“句方程”“句解”等新概念,就可以把定理 A 完整地翻译 过来了。

定理 A的陈述对说谎者悖论没有采用文献中的通常写法 为假,而是 写成了 为假,其证明则通过取值把 换回成了 。这是与定理 A 的做 法一致的,是与代数学的基本思想一致的。下面的解答总结了这个微妙的“换 去又换回”的过程:

说谎者悖论的解答. 说谎者悖论 为假是一个句变元问题,应该写成一个 句方程 为假。说谎者悖论推出矛盾是因为隐蔽地假设了该句方程有句 解,即隐蔽地假设了存在 的一个值 使得 为假。说谎者悖论的矛盾 证明,不存在 的值 使得 为假。

这说明,区分“变元”和它的“值”,是理解说谎者悖论的哲学关键。说谎者悖论是一个句变元问题,要用符号 来表述,但在推理时,则要假设 是一个“值”,要用 符号 来表述。说谎者悖论把二者混到一起了。

这个解答是受代数学的启发得到的。当然,不能说因为代数学里有变元、 方程的概念,说谎者悖论就也是一个“句变元”“句方程”问题。说谎者悖论 究竟为什么是一个“句变元”“句方程”问题,必须有它自身的语言学和逻辑 学的根据,必须自己从根本上回答下面两个基本问题:

基本问题 1. 为什么说谎者悖论 为假是一个句变元问题,应该写为 为假?

基本问题 2. 为什么在说谎者悖论的推理中必须把 换回为一个“值” ?推理中究竟哪里用到了 是一个“值”的假设?

这两个基本问题将在第 [3.9]小节给以彻底的回答。这里对“ ”和“ ”再 做几点一般的说明。

布尔方程 和说谎者悖论 都是“自我指涉”,推理相同,为 什么 不是悖论而 却是呢?更一般地,在代数学里,等号两端随便写两个关于 的表达式都不会出“悖论”,为什么在语言学里, 两 端稍稍不同就成了悖论呢?

显然是因为,代数学是把 当做一种尚未验证的式子处理的,因此有 退路,出了矛盾大不了说一句“该方程无解”就行了。而语言学却是把 当做已经验证的式子处理的,因此没有退路,出了矛盾就是死结。

语言学处理 之所以缺乏弹性,原因就是缺少“句变元 ”的概 念。代数学的“变元 ”的概念看似简单,实际上在历史上是划时代的。代数 课程给人印象最深的就是“变元 ”的概念,正是这个概念抓住了“尚未验证” 的微妙含义。现在我们给语言学也建立了“句变元 ”的概念,以后就也可以 在符号 两端随便写两个关于 的表达式而不会出悖论了,出了矛盾大 不了说一句“该句方程无句解”就行了。我们对说谎者悖论的解答就是这样做 的。一句话,变元不怕自指,方程不怕自指。

“句方程”的概念可以厘清语言学的一些长期存在的疑难问题。比如主流 理论把“一个句子说自己为假”当做一个句子,称作“说谎者句”。实际上,它 是个句方程 为假,应该称作“说谎者方程”。“句子”是 的元素,是经 典逻辑中的可以判断真假的陈述句,而“句变元”按定义不是 的元素,无所 谓真假,从而“句方程”也不是 的元素,无所谓真假。这是一个严重的区别。又如常常见到,甚至在海报上见到这样一个问题:“一个句子说自己为假,这 句话是真是假?”实际上,这样提问是错误的,正确的问题应该是:“一个句子 说自己为假,这个句方程有解无解?”这两个问题都归结为“一个句子说自己 为假”为什么是一个“句方程”,即基本问题 1 。彻底的回答将在第 [3.9]小节给出。

现在来把我们关于说谎者悖论的看法小结一下:

说谎者悖论是一个意指关系 为假,其中 表示“这个句子”。

为慎重起见最好先视 为句变元,写成 ,即把说谎者悖论写成一个 句方程 为假。如果这个句方程有句解,再把 写成 不迟。

但实际上,这个句方程无句解。

证明用反证法:假设该句方程有句解,即假设存在 的一个值 使得 为假。那么,若 为真,则肯定其所述,故 为假,矛盾。若 为假,则否定其所述,故 为真,也矛盾。这一矛盾证明该句方程无句解。

在这样的理解下,说谎者悖论完全消解,风平浪静了。

但这 4 点中,只有黑体字部分是文献中已有的,其余部分,特别是反证法 的头尾,一直缺失。这些缺失的部分处处需要“句变元”“句变元的值”“句方 程”“句解”等概念才能表述,而这些概念一直没有出现。缺失了这么多链条, 说谎者悖论的矛盾就无法理解,成了千古之谜。

3.7 说谎者悖论不是一个纯语言学问题

上一小节得到了说谎者悖论的解答。这个解答不像理发师悖论的解答那 样一经对照康托反证法马上就被理解了。这一次,虽经对照布尔反证法,但说 谎者悖论的解答理解起来困难得多。读着说谎者悖论的解答,什么“句方程” “句解”,搞不好不知道它在说什么。人们会抱怨,说谎者悖论是一个纯语言 学问题,为什么一定要使用奇怪的“代数学术语”呢?

但实际上,说谎者悖论并不是一个纯语言学问题。这只需看三卡悖论。三 卡悖论是由布尔方程组翻译而来,是代数问题的语言表述,那么三卡悖论是语 言学问题还是代数学问题呢?只能说表面上是语言学问题而实际上是代数学 问题,无论如何不是纯语言学问题。那么说谎者悖论也如此。说谎者悖论不是 一个纯语言学问题,而是语言学中的代数学现象。它的解答需要使用一些“代 数学术语”,是并不奇怪的。

三卡悖论是我们立论的基础。如果关于说谎者悖论有什么疑难,最好的办 法是去看三卡悖论,在那里一切都清楚得多。

3.8 雅布罗悖论的解答

句变元的观点不仅可以解答说谎者悖论,还可以解答科里( Curry ,或 称 Löb,[2])悖论和雅布罗悖论。科里悖论的解答见文献 [4] ,这里给出雅布罗悖 论的解答。这几个悖论(说谎者,科里,雅布罗)有一个共同的关键词“意指” (或“说”,或“所述是”),可统称为“意指悖论”。

雅布罗悖论([5]). 有一列句 每一个都说自己后面的所有句为假。

若 为真,则肯定其所述,即 都为假。既然 为假,就要否定 其所述,故必有 使得 为真,矛盾。

若 为假,则否定其所述,故必有 使得 为真。那么肯定其所述, 即 都为假。既然 为假,就要否定其所述,故必有 使得 为真,也矛盾。

这就是雅布罗悖论,其中每个句仅指涉后面的句,因而永远不归结为自我 指涉。这说明“自我指涉”并非导致矛盾的必要条件。实际上,雅布罗悖论导 致矛盾的原因和说谎者悖论相同,都是因为混淆了“变元”和它的“值”,因此 可以把雅布罗悖论添上与说谎者悖论同样的“头尾”写成反证法:

雅布罗定理. 雅布罗悖论是个句变元问题,应该用 陈述成“有一列句

每一个都说自己后面的所有句为假”。这个问题无句解,即不存在 的值 使得每一个都说自己后面的所有句为假。

Proof. 假设存在 的值 使得每一个都说自己后面的所有句为 假。则

若 为真, ...... 矛盾。

若 为假, ...... 也矛盾。(这两个省略号代表雅布罗原来的推理)

此矛盾证明不存在 的值 使得每一个都说自己后面的所有句为假。 ◻

这也给出了:

雅布罗悖论的解答. 雅布罗悖论是一个句变元问题,应该用变元符号 陈述 成“有一列句 每一个都说自己后面的所有句为假”。雅布罗悖论推 出矛盾是因为隐蔽地假设了存在这些句变元的值 使得每一个都说自 己后面的所有句为假。所得矛盾证明,不存在这些句变元的值 使得每 一个都说自己后面的所有句为假。

这就是说,和说谎者悖论一样,区分“变元”和它的“值”是理解雅布罗 悖论的关键,而为了区分,需要在陈述中把 换成 , 再在推理中换回成 , 故雅布罗悖论的解答同样归结为第 [3.6]小节的两个基本问题,详见下一小节。

3.9 对基本问题 1 和 2 的回答

这一小节对第 [3.6]小节的两个基本问题做一彻底的回答。我们就说谎者悖 论做回答,但答案同样适用于雅布罗悖论和科里悖论。注意在这两个问题的陈 述里“方程”和“解”的术语没有出现,是因为已经归结为“变元”和“值”:

基本问题 1. 为什么说谎者悖论 为假是一个句变元问题,应该写为 为假?

基本问题 2. 说谎者悖论的推理是:“若 为真,则肯定其所述,故 为 假,矛盾。反之,若 为假,则否定其所述,故 为真,也矛盾”。为什么在 这个推理中必须把 换回为一个“值” ?推理中究竟哪里用到了 是一个 “值”的假设?

我们来回答问题 2 ,在此过程中,问题 1 的回答也将水到渠成。注意问题 2 的 原型是在代数学里:

代数原型. 定理 A 的推理是:“若 ,则由方程, ,矛盾。反之,若 ,则由方程, ,也矛盾”。为什么在这个推理中必须假设 是一个 “值”?推理中究竟哪里用到了 是一个“值”的假设?

我发现自己不会回答这个代数原型问题。定理 A 的证明一开始就假设了 是一个“值”(请读者查看定理 A 的证明,在第 [3.2]小节),这是我们习惯了的代 数课程里的标准格式。我们确信这个关于“值”的假设一定用在了证明的某个 地方,但就是找不到!我意识到为什么说谎者悖论如此困难了。

最后终于找到了。我们知道“变元”和变元的“值”的区别就在于,“变 元”尚未确定代表哪个数,而变元的“值”则是一个确定的数。比如第一句推 理是:“若 ,则由方程, ,矛盾。”从 到 ,在这个推理过 程中, 必须始终代表同一个确定的数,它既等于 又等于 才是矛盾。如果 在这个推理过程中可以变,那它既等于 又等于 就不是矛盾。换句话说,当我们断言“矛盾”时,就不自觉地用到了 是一个“值”的假设。

翻译过来就知道说谎者悖论的推理为什么必须假设 是一个“值”。我 们知道“句变元”和句变元的“值”的区别就在于,“句变元”尚未确定代表论 域 的哪个元素,而句变元的“值”则是 的确定的元素。比如第一句推理是:“若 为真,则肯定其所述,故 为假,矛盾。”从 为真到 为假,在这个推理过程中, 必须始终代表同一个确定的句,它既为真又为假才是矛盾。如果 在这个推理过程中可以变,那它既为真又为假就不是矛盾。换句话说,当我们断言“矛盾”时,就不自觉地用到了 是一个“值”的假设。

原来,如果不假设 是一个“值”,而是可以变,那么它既为真又为假就 不是矛盾。问题 2 的答案多么简单自然啊!

但人们会说,在“若 为真,则肯定其所述,故 为假,矛盾”的推理过 程中, 当然不可以变啦,这还用说吗?这也算假设吗?

问题就出在这里。实际上, 没有理由“当然不可以变”。在本文中, 代表说谎者悖论中的代词词组“这个句子”。第 [3.2] 小节说过,代词词组本来就 有两种可能的功能,一是代表一个确定的对象,这时就不可以变;二是代表一 个尚未确定的对象,这时就具有“变元”的功能,就可以变。说谎者悖论只说 “这个句子”,却没有说明究竟是哪个具体的句子( 的哪个元素),无法肯定是第一种功能。另一方面,三卡悖论的“第一个句子”“第二个句子”“第三个 句子”是由代数学的 翻译而来,却肯定具有变元的功能。那么与三卡悖 论类比,说谎者悖论的“这个句子” 至少应该说很有可能具有变元的功能, 实际上下一自然段马上就要证明 确实具有变元的功能。无论如何, 没有 理由“当然不可以变”。

问题 1 的答案至此也清楚了。如果 是一个“值”,不可以变,说谎者推理 就将顺利通过而得到矛盾。因此,根据反证法原理, 一定不是一个“值”,而 是一个句变元 。简言之,是说谎者悖论的矛盾本身证明了说谎者悖论是一个 句变元问题。这就是期待已久的问题 1 的答案。这个答案很短,但含义很深。

回过头看,问题 1 相当于问,为什么 是一个“值”则说谎者推理就推出 矛盾。而问题 2 是问,为什么 不是一个“值”则说谎者推理就推不出矛盾。二者合起来就是问,为什么“ 是一个值”是说谎者悖论推出矛盾的充分必要 条件。

所谓“ 是一个值”,说白了就是“ 在推理中途不可以变”。这也确实太 平淡了。莫非就是因为太平淡,这个假设在说谎者悖论中隐藏了 2500 年?若不 是代数学在历史上发现了“ 是一个值”是一个实质性假设,我们是否至今也 不会意识到“ 是一个值”是一个实质性假设呢?

悖论的要害是隐蔽的假设。若论隐蔽之深,说谎者悖论可谓登峰造极。代 数学专门建立了“值”的概念,无数次明确宣示“假设 是一个值”,人们尚 且找不到该假设用在了哪里,何况说谎者悖论连“值”的概念都没有。可以想 见,实际存在的“ 是一个值”的假设在说谎者悖论中隐藏有多深。

相传古希腊诗人、学者菲勒塔斯(Philitas)为说谎者悖论殚精竭虑,身心交 瘁而死。这样的人多么纯洁。要知道他生活在遥远的古代,不要说“句变元”, 就是代数学的“变元”,也要等到他身后 1000 多年才会出现。有过这样纯洁的 人,是古希腊文明的光荣,也是人类理性的光荣。

谨以此文纪念这位用生命追求逻辑纯洁性的思想先驱。


【注:2001 年笔者对说谎者悖论给出了一个解答([4]),文章写得比较浓缩,包括了形式化的处理。为便于理解,笔 者 2018 年写了一本中文书([7]),对这个解答用日常语言加以详细解说,并加进了另外几个悖论的讨论。2019 年 北京师范大学哲学学院 40 周年,笔者应邀做了一个关于说谎者悖论的报告。报告的 PPT 后来几经修改,成为一篇 文章,是为本文的由来。同一个解答,经过 [4] 和 [7],这是第三次阐述,仍有许多提升的空间,令笔者深感说谎 者悖论问题内涵之深。】


(责任编辑:袁之)

参考文献

[1] S. Kripke, 1975, “Outline of a theory of truth”, The Journal of Philosophy, 72(19): 690–716.

[2] E. Mendelson, 1987, Introduction to Mathematical Logic, 3rd edition, Monterey, Calif: Wadsworth & Brooks/Cole Advanced Books & Software.

[3] A. Tarski, 1983, Logic, Semantics, Metamathematics, 2nd edition, Cambridge, MA: Hackett Publishing Company.

[4] L. Wen, 2001, “Semantic paradoxes as equations”, The Mathematical Intelligencer, 23(1): 43–48.

[5] S. Yablo, 1993, “Paradox without self­reference”, Analysis, 53(4): 251–252.

[6] 文兰,“理发师悖论不足以称为悖论”,自然辩证法研究,1996 年增刊 ,第 22–23 页。

[7] 文兰,悖论的消解,2018 年,北京:科学出版社。

[8] 张建军,逻辑悖论研究引论,2014 年,北京:人民出版社。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多