基于括号表示法的一阶逻辑系统
2019-05-24杜国平
杜国平
一、括号表示法
根据张清宇先生的相关思想[注]张清宇:《不用联结词的经典命题逻辑系统》,《哲学研究》1995年第5期。张清宇:《不用联结词和量词的一阶逻辑系统》,《哲学研究》1996年第5期。张清宇:《哲学逻辑研究》,北京:社会科学文献出版社,1997年,第25~68页。,我们在《关于“不用联结词的逻辑系统”的注记》与《不用联结词的“舍生取义”型自然推演系统》[注]杜国平:《关于“不用联结词的逻辑系统”的注记》,《重庆理工大学学报(社会科学)》2019年第4期。杜国平:《不用联结词的“舍生取义”型自然推演系统》,《湖南科技大学学报(社会科学版)》2019年第3期。两篇文章中对“不用联结词”的相关思想进行了进一步的阐发并以此为基础做了一些推进性的研究工作。以这些工作为基础,我们在此明确提出逻辑符号的括号表示法。之所以在张清宇先生“不用(真值)联结词”提法的基础上,提出逻辑符号的“括号表示法”,是基于几点考虑:1.为了避免误解。联结词是逻辑研究的核心内容之一,例如命题逻辑主要研究的是“否定”“蕴涵”“合取”“析取”“等值”等联结词的推理性质,模态逻辑研究的是“必然”“可能”等联结词的推理性质,时态逻辑研究的是“曾经”“将来”“一直”“永远”等时态联结词的推理性质,直觉主义逻辑和弗协调逻辑研究的主要是基于独特哲学思考的“否定”“蕴涵”等联结词的推理性质,即使在以量词为核心研究内容之一的一阶逻辑中,联结词也是不可或缺的。对于不太了解张清宇先生“不用联结词”具体含义的人来说,在一个逻辑系统中不用联结词是令人费解的。实际上,张清宇先生“不用联结词”指的仅仅是在初始符号中不用联结词而已,是使用括号来代替某一个联结词的符号表示法,常用的联结词是可以通过定义而引入的(在公理系统中,张清宇先生使用了通过定义引入的联结词“”)[注]张清宇:《不用联结词的经典命题逻辑系统》,《哲学研究》1995年第5期。,并且在语义解释中,括号是可以被解释为“联结词”的。2.在初始符号中,符号仅仅是符号而已,我们常把小写字母“p、q、r”等称为“命题变元”,把箭头“→”和方框“□”称为联结词,这实际上是基于一个直觉的语义解释的背景,作为形式语言,“p、q、r、→、∧、∨、、、”都仅仅是不同的符号而已。同样,作为形式语言,括号“( )”也仅仅是符号而已,当其经过语义解释之后,它可以是具有结构功能的“括号”,也可以是真值运算的“联结词”,还可以做其他解释。有时我们称形式语言中的某类符号为“联结词符号”也仅仅是为了称呼方便而已。3.在括号表示法中,括号不仅可以用来承担“(真值)联结词”的功能,而且可以继续承担其区分层次、确立符号结合先后顺序的结构表达功能,还可以用来表示“量词”“模态词”“时态词”等等。4.在逻辑符号系统中,不同的符号标示系统是各个逻辑系统的特征标志之一,这些符号的使用情况有时甚至影响着相关逻辑系统和逻辑思想的传播和发展。如包含二维符号“a、、f(a)”的弗雷格符号系统,包含符号“p、p∩q、p∪q、p⊃q、pq”的皮亚诺符号系统,包含符号“p∨q、pq、p⊃q、pq”的罗素《数学原理》符号系统,包含符号“p∨q、p&q、p→q、p~q”的希尔伯特符号系统等,特别值得一提的是由卢卡西维茨等人发明的包含符号“Np、Cpq、Kpq、Apq”的波兰表示法系统。其中,弗雷格的符号“虽然相当精确,但因为是二维的,因此很难掌握,也不便于应用,从历史上看,这就是造成弗雷格的《概念文字》在当时未能产生很大影响的重要原因之一。”[注]郑毓信:《现代逻辑的发展》,沈阳:辽宁教育出版社,1989年,第52~53页。《关于“不用联结词的逻辑系统”的注记》与《不用联结词的“舍生取义”型自然推演系统》两篇文章中提出的包括符号“(p)、(pq)、(x)”的括号表示法是与前述若干种符号表示法不同的一种新的标记方法。
在逻辑形式语言中,包括常项和变项。变项主要用来描述所要研究的特定范围内的语言对象;常项包括逻辑常项和非逻辑常项,其中逻辑常项是逻辑研究揭示特定范围内推理规律的核心要素。不同的符号表示法的区别主要体现在逻辑常项的区别上。
一般认为,常见的逻辑形式语言对于逻辑常项的表示方法主要有前置法、中置法和后置法。前置法指的是把运算符号或者联结词写在运算项或者变项之前的一种表示方法。20世纪20年代波兰逻辑学家卢卡西维兹提出的波兰表示法就是前置法。后置法也称逆波兰表示法,指的是把二元运算符号或者二元联结词写在两个运算项或者两个变项之间的一种表示方法,常见的数学运算如“+、-、×、÷”等采用的都是中置法。中置法的优点是直观,缺点是需要括号或者其他约定来确定运算的先后次序,而且不适用于一元运算,也难以适用于三元或者三元以上的运算。前置法和后置法的优点是运算的先后次序是明确的,不需要使用括号,公式简约,缺点是不够直观。
上述常见的三种符号表示法都是分离表示法。括号表示法不属于上述任何一种表示法,它是一种整体表示法,在设计思想上是一种完全不同的符号表示法。之所以称上述三种符号表示法为分离表示法,是因为中置法将运算符号或联结词左右的两个符号断开,当其作为一个单元形成更复杂的公式时(如p∨q→r),需要括号或者其他规定来确定运算的先后顺序;前置法和后置法虽然运算顺序是明确的,但是因为相互临近的两个符号是分置的,当公式足够复杂时(如CKCNpCpqrs),确立运算顺序也非易事。反之,括号表示法将其作用的符号作为一个整体连接在一起,结合顺序和运算顺序非常明确。并且,括号表示法也不受元数的限制,非常灵活,它可以作为一元联结词,如(p);也可以作为二元联结词,如(pq);还可以作为三元或者多元联结词,如(pqrs);当然,也可以作为量词,如(x)。综上所述,括号表示法是一种在形式语言中以括号来表示各种逻辑常项的符号表示方法。
二、形式语言
因为括号表示法和其他表示法的区别主要是联结词符号表示的区别,所以下面我们在命题逻辑的形式语言中研究括号表示法的精确性(唯一性)问题。
定义2.1 形式语言L(P)包括如下两类符号:
(1)命题符号:p1,p2,p3……;
(2)左右括号:(,)。
通常以p、q、r等表示任一命题符号。
定义2.2 一个由形式语言L(P)中的符号构成的任意有穷序列称为一个表达式;一个表达式中依次出现的符号的数目,称为表达式的基数。
左括号、右括号、字母或者字母加下标算作一个符号。
我们使用大写字母X、Y、Z(或加下标)来表示任一表达式;所有表达式的集合记为Expr(L(P))。
定义2.3 两个表达式X和Y是相等的(或相同的),记作XY,当且仅当它们有相同的基数,并且依次出现的符号相同。
定义2.4 设X、Y、Z、Z1、Z2Expr(L(P))。如果XZ1YZ2,则称Y为X的段;如果XY,则称Y为X的真段;如果XYZ,则称Y为X的初始段,称Z为X的结尾段;如果XYZ,且Z不空,则称Y为X的真初始段;如果XYZ,且Y不空,则称Z为X的真结尾段。
定义2.5 称L(P)的一个表达式为原子公式当且仅当它是一个单独的命题符号(加下标)。
由L(P)中所有原子公式构成的集合记为Atom(L(P)),由L(P)中所有公式构成的集合记为Form(L(P))。
定义2.6Form(L(P))是满足以下(1)—(3)的表达式集合中的最小集:
(1)Atom(L(P));
证明:
证明:
根据定理2.2和定理2.4可得:
命题2.1 形式语言L(P)中的任一公式恰好具有以下三种形式之一:原子公式、()或者();并且在各种情形下公式所具有的那种形式是唯一的。
证明:
1.显然,形式语言L(P)中的任一公式所具有的形式必定为原子公式、()或者()这三种形式之一。
2.这三种形式中的任何两种都不相同,即形式语言L(P)中的任一公式所具有的形式至多为这三种形式之一。
首先,原子公式的基数为1,而其他两种公式的基数至少为3,因此原子公式和其他两种公式的形式不同。
其次,其他两种公式的形式也不相同。因为,假设其他两种形式的公式并非不相同,则存在公式、、,使得
()()
等式两边均去掉最外层的左括号和右括号,得到:
()()
等式两边均去掉最外层的左括号,可得
))
证明:
以上完成了公式结构唯一性的证明。这说明括号表示法的语言是无歧义的,公式结构具有唯一性、精确性。
三、公式的长度
因为在形式语言中,左右括号一般都是成对使用,不单独使用,因此,正如将一个字母及其下标视为一个符号一样,将左右括号视为一个符号也是合理的。
在波兰表示法中,这3条公理表示为:
在括号表示法中,这3条公理可表示为:
对比中置法、前置法(波兰表示法)、后置法(逆波兰表示法)和括号表示法可以看出,括号表示法和波兰表示法同样简洁,比中置法简短许多。这是因为中置法比括号表示法多联结词,比波兰表示法多括号。另外,因为括号表示法总是从最里层的括号开始并按照由内而外的结合顺序进行,因此顺序关系的辨识也比波兰表示法清晰、容易。
四、一阶逻辑系统
在《不用联结词的经典命题逻辑系统》中,张清宇先生指出他建立的系统包含命题常项,即零元联结词,“因此利用它们建立的不用联结词的系统还不能算是十分严格的不用联结词的系统”[注]张清宇:《不用联结词的经典命题逻辑系统》,《哲学研究》1995年第5期。。对此他提出了以括号代替舍弗函数的策略,这当然是一个非常巧妙的可行策略。
其实,还有一个比较简单直观的策略,就是使用括号表示法直接对已有的系统进行改写,这样一方面可以发挥括号标记法的简明优势,另一方面也可利用现成的推理系统。下面我们简要地对此加以阐述:
定义4.1 形式语言L(Q)包括如下符号:
(1)个体符号:c1,c2,c3……(常元);u1,u2,u3……(自由变元);x1,x2,x3……(约束变元);
(2)函数符号:f1,f2,f3……;
(4)左右括号:(,)。
定义4.2 一个由形式语言L(Q)中符号构成的任意有穷序列称为一个表达式。
一般使用大写字母X、Y、Z来表示任一表达式。
形式语言L(Q)中的项、原子公式和公式的集合分别记为Term(L(Q))、Atom(L(Q))和Form(L(Q));一般用小写字母及其下标、、等来表示任一项,用大写字母、、、等来表示任一公式,用~、等表示任一公式集。
定义4.3 一个表达式X称为项,当且仅当X能有限次使用下面的规则生成:
(1)Atom(L(Q))Form(L(Q));
定义4.6 基于括号表示法的一阶逻辑自然推演系统QZ2包括如下7条推理规则:
在QZ2中不难证明:
等等。
(4) ((x)(x))1当且仅当,对的任一x-变异,((u))1。
对于系统QZ2,不难证明:
五、推理结构
结构推理是一种非常直观的逻辑形式系统的构建方法。它从结构规则和逻辑联结词的推理规则两个方面来研究逻辑,并且尤其关注各种结构规则所体现的推理行为,展示不同逻辑形式系统的推理特征[注]具体可参见冯棉《结构推理》,桂林:广西师范大学出版社,2015年。。与之相类似的是可以由此深入细致地分析基于各种联结词的联系和区别的推理特性,而括号表示法为研究联结词(或逻辑常项)的推理结构提供了一个非常良好的分析工具。下面我们来概要地说明这一点。
对于一元联结词,可以列出如下一些推理规则:
在适当的共同的结构规则之上加上推理规则1至推理规则6的不同组合可以用来表述不同类型的二值否定,如经典否定、某种直觉主义否定或者某种弗协调否定等等[注]杜国平:《哲思逻辑——一个形而上学内容的公理体系》,《东南大学学报(哲学社会科学版)》2007年第4期。;推理规则7至推理规则11的不同组合则可以用来表述某种类型的三值否定等等。
对于二元联结词,可以列出如下一些推理规则:
在适当的共同的结构规则之上加上推理规则1至推理规则11的不同组合可以用来表述不同类型的二值二元联结词。如推理规则1加推理规则3至6的组合可以用来描述二值析取,推理规则1、2、3加上推理规则7、8、9的组合可以用来描述二值合取,推理规则1、2加上推理规则10、11、12的组合可以用来描述二值蕴含等等[注]Elliott Mendelson, Introduction to Mathematical Logic, Boca Raton: CRC Press, 2010, p. 39.。
其实,推理规则1、3中的括号还具有二元函子的特征,因为其中的括号可以是合取,也可以是析取,还可以是等值等等[注]卢卡西维茨:《亚里士多德的三段论》,李真、李先焜译,北京:商务印书馆,1981年,第197~204页。。
由此可见,使用括号表示法可以彰显各种逻辑联结词在推理行为上的区别和联系,括号表示法可以作为分析联结词推理行为的良好工具。
综上,括号表示法作为一项形式语言的符号处理技术,以括号来表示命题联结词、量词、模态词等各种逻辑常项,其语言表达是精确而无歧义的。它与以往的符号表示法不同,是一种整体性符号表示法。运用括号表示法表达的公式,其长度比中置法表达的公式简短,比波兰表示法表达的公式清晰。运用括号表示法改写的一阶逻辑自然推理系统非常简洁。括号表示法为研究逻辑常项的推理结构提供了一个非常良好的技术工具。