跳跃说谎者悖论与布尔悖论

2022-02-18 02:52陈树源
关键词:说谎者真值赋值

熊 明, 陈树源

(华南师范大学 哲学与社会发展学院,广州 510631)

一、引 论

是否存在这样的对象:它一方面类似于说谎者悖论,蕴含着矛盾,另一方面却无法通过语句表达出来?这种对象的有趣之处在于,它具有不可言喻的矛盾。笔者在文章《相对化T-模式下的跳跃说谎者与茹尔丹卡片悖论》[1]中提出的当n大于1时的n-跳跃说谎者就是这类对象的候选者。这类对象的提出意味着不可言喻的矛盾不必是一种心理状态,还可以是形而上学之物,是经得住逻辑分析的对象。

n-跳跃说谎者悖论其实是说谎者悖论的一种推广。众所周知,说谎者悖论可通过如下自指性语句进行表达:

语句(L)不为真。

(L)

这个语句之为悖论是因为:如果(L)为真,则根据(L)可知,(L)为假;如果(L)为假,则根据(L)可知,(L)为真。这就形成一个赋值循环。对此循环,笔者提出可按如下方式展开到关系框架(以下简称框架),并由此提出说谎者语句具有如下语义特征:L在框架中一个点为真,则L在该点通达的任意点为假;反之,若它在一个点为假,则它在该点通达的任意点为假[1]。

遵循上述思想,进一步提出的悖论是:如果该悖论中每个语句在框架中的一个点为真,那么它在该点n次通达的任意点为假;反之,若它在一个点为假,则它在该点n次通达的任意点为真(严格定义见下一节)。具有这种特征的语句集就是n-跳跃说谎者。注意,当n等于1时,n-跳跃说谎者退化为说谎者悖论。一般而言,每个n-跳跃说谎者都在一定的框架下导致悖论。因此,它们都属于悖论之列。

鉴于1-跳跃说谎者悖论就是不可言喻说谎者悖论,而其他跳跃说谎者悖论仅通过特定语义条件被隐定义,因此有如下“显定义”问题:当n大于1时,n-跳跃说谎者悖论是否与说谎者悖论一样,也可以用自指性语句进行定义?[1]269这一问题的答案被猜测为否定的[2]145。

若果真如此,如本文一开始所指出的那样,当n大于1时,n-跳跃说谎者悖论就是不可言喻的矛盾之物。

本文尝试推进上述问题的解答。一方面,我们将证明当n大于1时,n-跳跃说谎者悖论不能纳入到被称为布尔悖论的语句集,这些跳跃说谎者无法通过布尔悖论的语句形式表达出来。考虑到布尔悖论是最有代表性的有穷悖论,这在一定程度上支持上述猜测。另一方面,我们也发现某些布尔悖论能满足n-跳跃说谎者的部分特征,在某种程度上可把跳跃说谎者作为一种参照去研究布尔悖论。

本文揭示了当n大于1时,n-跳跃说谎者与布尔悖论是完全不同的两类悖论。这表明这些跳跃说谎者悖论与布尔悖论有本质区分。同时,这两类悖论又有某些相似之处。这对于我们认识悖论的多样性具有重要的参考价值。

本文第二节将给出关于前述问题及解答的基本概念。第三节讨论为什么当n大于1时,n-跳跃说谎者不能使用布尔悖论进行定义。第四节将给出一些布尔悖论,它们在一定程度上满足n-跳跃说谎者的部分特征。

二、悖论与框架

在当代逻辑与分析哲学的讨论中,常用“T[…]”表示“是真的”,并称之为真谓词。例如,说谎者语句可表达为满足等值式L↔T[L]的语句L。下文将借助来自于可能世界语义的(关系)框架及赋值来分析悖论语句。为方便起见,以下提到的框架皆指K=(W,R),τ为此框架上任意确定的一个赋值,不再一一声明。框架K上的赋值τ实现语句A指的是:在赋值τ下,对W中的任意两点u、v,如果uRv,那么T[A]在v为真,当且仅当A在u为真。这是塔斯基T-模式在框架上的“相对化”,是我们分析悖论的基本工具[1]245。

不难验证,τ实现说谎者语句L的充要条件是:在τ下,W中的任意满足uRv的两点u、v,L在v为真,当且仅当L在u为假。这正是之前提到的L的赋值条件。现在,对任意正整数n,规定uRnv,如果存在W中的点序列x0=u,x1,x2,…,xn=v,使得对小于n的任意i,xiRxi+1都成立。考虑下面的问题:是否存在语句集,使得K上赋值τ实现它的充要条件是,在τ下,对满足uRnv的任意两点u、v,此语句集中的每一个语句在v上为真,当且仅当它在u上为假?[1]269

满足上述条件的语句集为前面提到的n-跳跃说谎者。可以把这个问题称为n-跳跃说谎者的“显定义”问题。当n等于1时,上述问题的答案是显然的,因为1-跳跃说谎者可用说谎者语句L来表达。当n大于1时,上述问题该作何回答,则是本文需要分析探究的情形。除非特别申明,后文总假定n大于1。

我们把n-跳跃说谎者的“显定义”问题中充要条件中的赋值称为n-跳跃赋值。本文对此分为下述两个问题进行探究。

问题1 给定任意n(大于1),是否有语句集满足:如果赋值τ在框架K上为n-跳跃赋值,那么赋值τ在框架K上实现语句集?

问题2 给定任意n,是否有语句集满足:如果赋值τ在框架K上实现语句集,那么该赋值τ在K上为n-跳跃赋值?

显然,上述两个问题是n-跳跃说谎者的“显定义”问题的弱化。本文主要考虑是否有布尔悖论分别满足这两个问题中的条件。布尔悖论是这样一种语句集,其中每个语句都根据自指性条件等价于断定这些语句为真之陈述的布尔组合[3]888。为避免过多的符号,这里仅指出布尔悖论的特有性质之一:布尔悖论的语句在修正序列的任意后继阶段上的真值都由前一阶段上的这些语句的真值(按原先的布尔组合方式)决定[3]891。这个性质在框架上表现为:如果框架K的赋值τ实现一个布尔悖论,那么此布尔悖论中的每一个语句在此框架中任一点上的真值可由该悖论中所有语句在可通达该点的某个点上的真值完全确定。(1)相关定义出自本文参考文献[3],第903页。前面提及的修正序列出自Gupta和Herzberger所创立的修正理论。后面的讨论中会给出修正序列的具体实例,而这对于当前的研究已经足够,故略去修正序列的定义,有兴趣的读者可参考本文参考文献[5]和[6]。

本文把这一特性称为布尔悖论的语义封闭性。布尔悖论是形式和语义都比较简单且范围广大的一类悖论,几乎囊括了已知的有穷悖论[3]。更重要的是,这类悖论具有明确的构造方法,我们可以按照一定的周期性特征构造出各种布尔悖论,这使得我们在一个足够大的范围内考虑跳跃说谎者的“显定义”问题。

三、n-跳跃说谎者与布尔悖论

本节将建立的结论如下:

命题1 对任意n,没有布尔悖论满足:框架K上的n-跳跃赋值都会实现该布尔悖论。

这就否定性地回答了问题1。由此,立即可以推出(当n大于1时)n-跳跃说谎者悖论不能通过布尔悖论来进行定义。换言之,n-跳跃说谎者悖论都位于布尔悖论的范围外。

作为准备,本节先介绍布尔悖论的构造方法[3]。如果把框架中的可能世界取为自然数,把每个自然数看作阶段的序数,并把二元关系设定为后继关系,则对说谎者语句而言,可得:说谎者语句在第0阶段真值为1,则在第1阶段其真值修正为0,第2阶段为1……可称之为说谎者语句的一个修正序列,注意该序列以2为周期。同理,对任意布尔悖论,都可以相应地给出一个修正序列,使得悖论中每个语句在每个阶段的真值都由前一阶段上该悖论中语句的真值来确定。

可见,如果明确布尔悖论的表达式(即“显定义”),就能确定该悖论的修正序列及其相应周期。布尔悖论的构造方法则反其道而行之,它通过确定修正序列及其周期来构造满足该周期的布尔悖论。

以构造周期为3的布尔悖论为例,该悖论的修正序列需要3个不同的真值形成周期性变化,因此至少需要两个语句才能构造这一悖论。我们只需将4个不同的真值形成周期为3的修正序列。如表1所示,第1阶段与第4阶段语句的真值相同。注意,如果任意两个阶段上两个变元的真值对应相同,则这两个阶段的后继阶段上这两个变元的真值也是对应相同的。

假设待求布尔悖论的表达式为p1↔ f(T[p1], T[p2]);p2↔ g(T[p1], T[p2]),其中f和g表示特定的真值函数,则可将问题转化为求f和g的公式表示。根据修正序列的规定不难看出,如果知道p1、p2在某个阶段的真值,则它们在下一阶段的真值刚好为f(p1、p2)、g(p1、p2)[3]891。由此,根据表1,不难给出f和g作为真值函数对应的真值表,如表2所示。

表1 周期为3的真值修正序列

表2 与表1相应的真值表

最后,根据命题逻辑知识,可求出f和g的公式表达式,由此确定待求布尔悖论的表达式(即“显定义”)为:p1↔(T[p1]∧T[p2])∨(T[p1]∧T[p2]);p2↔ T[p1]∨T[p2]。

上述构造中使用了布尔悖论的如下语义特征:布尔悖论中的语句在一个阶段的真值唯一地决定了它们在下一阶段的真值,并且这些语句在后一阶段的真值都可以通过它们的等价式中的布尔组合计算得到[3]903。

下面给出命题1的证明梗概(用反证法进行证明)。假设有布尔悖论满足条件,则根据文章《相对化T-模式下的跳跃说谎者与茹尔丹卡片悖论》中[1]253的定理3.15,可取一个不含n-跳跃奇循环的框架K,从而此框架上存在n-跳跃赋值。当n大于1时,还可以进一步在此框架上取得两个不同的n-跳跃赋值τ1和τ2,使得此框架上存在两点u和v,满足u通达v;并且在点u处,此布尔悖论中的每个语句在赋值τ1下的真值与在赋值τ2下的真值是相同的;但在点v处,此布尔悖论中有语句,它在赋值τ1下的真值与在赋值τ2下的真值不相同;然而,这恰恰是布尔悖论的语义封闭性所不容的,因而假设不成立。为避免过多的技术细节,我们通过一个例子来说明这个证明的所需框架及相关的两个n-跳跃赋值的确定方法。

以2-跳跃说谎者为例。在如图1所示的框架K中,给出了两个不同的2-跳跃赋值。其中,用二元组(x1,x2)表示语句p1、p2在框架某点处的真值。如点u0中出现(0,1),这表示在u0上,p1的真值为0,p2的真值为1。

如果语句p1、p2在u0的真值为(1,1),在u2的真值为(0,0),在u1的真值为(1,0),在u3的真值为(0,1),那么,此赋值是一个2-跳跃赋值。同理,保持这两个语句在u0和u2的真值不变,但同时使得其在u1的真值为(0,1),在u3的真值为(1,0),则这也是一个2-跳跃赋值。

图1 K上的两个2-跳跃赋值

假设存在含两个语句的布尔悖论,使得在K中上述两个2-跳跃赋值都实现了此布尔悖论。根据语义封闭性,如果这两个语句在u0上取值为(1,1),那么这两个语句在u1的取值是唯一确定的;但已知上述两个2-跳跃赋值在u1的取值恰恰是不相同的,因此,上述两个2-跳跃赋值不可能都实现此布尔悖论。

需要指出的是,在上述证明中,n大于1是一个关键条件。这是因为,当已知相关语句在一个n-跳跃赋值下在框架中某点的真值时,我们能确定每隔n个点处(笔者按:通达关系计间隔)相关语句的真值。当n大于1时,从已知真值的点到它能确定真值的点的间隔中尚存其余的点;但当n等于1时,这个间隔其实为空。此时,相关语句在每个点的真值都能唯一地确定这些语句在这个点可通达的点处的真值。因而,在前一情形下,通过特定的构造总可以找出两个不同的n-跳跃赋值;而在n为1的情形下,1-跳跃赋值只能以唯一的方式得到确定。

四、弱n-跳跃说谎者

本节考虑,是否有语句集满足:如果赋值T在框架K上实现语句集,那么该赋值T在K上为n-跳跃赋值(见第二节问题2)。即对问题2的回答是肯定的。为方便起见,我们把满足此问题条件的悖论称为弱n-跳跃说谎者。这里的“弱”主要体现在其与n-跳跃说谎者的比较上,我们只要求实现它的那些赋值包含在n-跳跃赋值中,并不要求前者也包含后者。

我们仍利用布尔悖论的构造方法给出符合条件的弱n-跳跃说谎者,基本思路如下:首先,构造符合n-跳跃赋值特征的修正序列;其次,构造与该序列对应的真值表;最后,给出所需的弱n-跳跃说谎者的表达式。

首先来澄清什么是“符合n-跳跃赋值特征的修正序列”?n-跳跃赋值实现一个语句的要求是:在n-跳跃赋值下,若uRnv,则该语句在u上为真,当且仅当它在v上为假。把点换做修正序列中的阶段,上述要求变为:一个语句在阶段i为真,当且仅当它在阶段n+i为假,即语句的真值每隔n个阶段会改变一次。我们把这样的修正序列称为符合n-跳跃赋值特征的修正序列。显然,这样的修正序列以2n作为周期。

如果能构造一个布尔悖论,使得它所有的修正序列都符合n-跳跃赋值特征,那么根据《布尔悖论与修正周期》[3]891一文中的引理2.5可知,凡是实现该布尔悖论的赋值都必然是n-跳跃赋值。因此,该布尔悖论就是待求的弱n-跳跃说谎者悖论。在这个意义上,问题发生了转化,变成了去寻找具有并且只具有符合n-跳跃赋值特征的修正序列的布尔悖论。

命题2 令n=2k,则存在含有k+1个语句的布尔悖论,它即是弱n-跳跃说谎者悖论。

假设待求布尔悖论中含有m个语句:p1、…、pm,对这些语句的赋值表示为二进制有序组(x1,x2,…,xm),即这样一个赋值,语句p1、…、pm依次所取真值为x1,x2,…,xm。符合n-跳跃赋值特征的修正序列要求为:若这些语句在阶段i上的赋值为(x1,x2,…,xm),则它们在阶段n+i上的赋值必为(1-x1,1-x2,…,1-xn),即后者为前者的互补序列。为了使待求布尔悖论具有且只具有这种修正序列,需要把p1、…、pm所有的赋值(共2m个)按上述要求一个不漏地排列在一个或多个修正序列中。上述命题中已指出m为k+1时,这种构造一定是可行的。

下面按归纳法给出一个符合n-跳跃赋值特征的修正序列。

第0步,任选真值k+1元组(x1,x2,…,xm)作为初始阶段(即阶段0)的赋值,这决定了语句p1、…、pm在阶段n上的赋值为此赋值的互补序列。同理又知,这些语句在阶段2n的赋值为初始阶段的赋值,如此等等。因此,归纳起始步确定了上述语句某个修正序列中阶段0、n、2n、…上的赋值。

对任意i

需要注意的是,因m=k+1,故语句p1、…、pm的赋值共有2k+1个,而从阶段0到阶段2n,上述构造确保了所有这些赋值不重复不遗漏地出现在这些阶段上。而在阶段2n之后,各个阶段上的赋值又刚好按照周期2n进行循环。因此,上述过程的确构造出了一个周期为2n的修正序列。

为明确起见,特以n=4的情形来再现上述构造过程。因4=(2×0+1)22,故我们将使用含3个语句(设为p1、p2、p3)的布尔悖论来完成构造。表3中给出一个符合4-跳跃赋值特征的修正序列。其中语句p1、p2、p3在初始阶段的赋值取为(1,1,1),这同时决定了这些语句在阶段4上的赋值为(0,0,0),在阶段8的赋值为(1,1,1),如此等等。这些语句在阶段1的赋值取为(1,1,0),由此,他们在阶段5、9等的赋值为(0,0,1)、(1,1,0)。类似地,可确定这些语句在阶段2、3上的赋值,并同时确定它们在与这些阶段间隔为4的阶段上的赋值。

表3 符合4-跳跃赋值特征的修正序列

接下来的工作,就是把前面构造的修正序列转化为一个真值表,然后利用该真值表构造所需的布尔悖论。这个过程在前一节已作介绍,故略去。这里仅给出表3对应的布尔悖论的表达式如下:

p1↔(T[p1]∧T[p2])∨(T[p1]∧T[p3])∨(T[p2]∧T[p3]);

p2↔(T[p1]∧T[p2])∨(T[p1]∧T[p3])∨(T[p2]∧T[p3]);

p3↔(T[p1]∧T[p2])∨(T[p1]∧T[p3])∨(T[p2]∧T[p3])。

任意自然数n都可写作n=(2i+1)2k的形式,由此不难把命题1推广到一般情形。在符合n-跳跃赋值特征的修正序列中,因其周期为2n,并且其任一阶段i与阶段i+n赋值是互补的,不难看出,一个符合n-跳跃赋值特征的修正序列也是符合(2i+1)n-跳跃赋值特征的修正序列。

命题3 如果一个悖论为弱n-跳跃说谎者悖论,那么它也为弱(2i+1)n-跳跃说谎者悖论。

综合命题2和命题3可知,对任意n,弱n-跳跃说谎者悖论总是存在的,并总有对应的“显定义”。事实上,令n=(2i+1)2k,则弱n-跳跃说谎者悖论总可由一个含k+1个语句的布尔悖论来表达。可以看出,弱n-跳跃说谎者只针对一种跳跃赋值,n-跳跃说谎者则需要参考各种可能的n-跳跃说谎者。从构造方法看,弱n-跳跃说谎者可以针对某一n-跳跃赋值进行构造,但是n-跳跃赋值存在多种可能。因而,在语句数限定的情况下,弱n-跳跃说谎者可能存在多种表达形式,但n-跳跃说谎者却不然。n-跳跃说谎者只有一种表达形式,因为它总是满足不同的n-跳跃赋值。

五、结 论

至此,我们对n-跳跃说谎者问题给出了部分解答。从问题1的结论来看,布尔悖论的语义封闭性说明不存在布尔形式的n-跳跃说谎者,这类悖论不具备这一特征。另一方面,可以利用n-跳跃赋值的特征来构造对应的修正序列,由此给出弱n-跳跃说谎者。

对问题1的否定性回答说明了n-跳跃说谎者悖论不能通过布尔悖论来表达。考虑到一切有穷悖论都可归约为布尔悖论,我们可以认为n-跳跃说谎者悖论也不会通过有穷多个语句表达出来。因此,关于n-跳跃说谎者悖论的可定义性只有两种可能:它要么需要无穷多个语句来进行显定义,要么甚至无穷多个语句也无法定义出它。如果是前者,我们需要进一步利用无穷悖论的构造方法来构造n-跳跃说谎者悖论[4]。如果是后者,我们则需要寻找一个所有可显定义的悖论的一个不变量,使得这个不变量不为n-跳跃说谎者悖论所有。不论是哪种情形,我们都需要更深入的研究。

在对问题2的回答中,我们构造出了一类特殊的布尔悖论,其基本特征是它们的修正序列都是符合n-跳跃赋值的,即要求该布尔悖论中语句在间隔为n的两个阶段上的赋值都是互补的。在修正序列这个层次上,这种布尔悖论具有一定的对称性。从这个意义上讲,n-跳跃说谎者悖论是一类具有特定对称性的布尔悖论。至于这种对称性究竟意味着什么,也许是值得进一步思考的问题。

猜你喜欢
说谎者真值赋值
画与理
浅析弗雷格的涵义与指称理论
浅谈弗雷格的“函数和概念”
强赋值幺半群上的加权Mealy机与加权Moore机的关系*
10kV组合互感器误差偏真值原因分析
算法框图问题中的易错点
说谎者
利用赋值法解决抽象函数相关问题オ
学生为什么“懂而不会”
分析性语言哲学:反思与批判