王春丽, 何向东
(西南大学 逻辑与智能研究中心, 重庆 400715)
逻辑学在19世纪发生了巨大变化,逻辑与数学的联系异常紧密。英国数学家乔治·布尔(G.Boole)是其中做出卓越贡献的重要学者之一。布尔的逻辑理论著作有两部:《逻辑的数学分析》(1847)和《思维规律的探究——面向逻辑和概率的数学理论》(1854,以下简称《思维规律》)。其中,后者是对前者的补充和完善,被誉为数理逻辑发展史上的一个里程碑。布尔所阐述的逻辑代数用类演算的方式实现了对传统三段论逻辑的改造,在当时的逻辑学界产生了巨大影响。国内关于布尔学术的研究多数着眼于计算机、数学或自动化等方面,从逻辑史方向研究布尔逻辑理论并系统介绍其逻辑思想的文献甚少。有学者认为布尔在其逻辑理论中无限制地使用数学,在将逻辑理论数学化的同时,也包含一些不足,而富有争议的“不可解释的表达式”(1)James W.Van Evra,“A Reassessment of George Boole’s Theory of Logic”,Notre Dame Journal of Formal Logic,Vol.18,No.3,1977,p.364.就是其理论演化的结果之一。本文在解读布尔关于基本逻辑和逻辑普遍方法的思想的基础上,分析“不可解释的表达式”的主要由来及其预设,进而沿着布尔关于逻辑的普遍方法及其应用的思考,厘清其理论建构中对于表达式之逻辑与解释的立场,认为布尔并没有将除法这样的运算引入逻辑,所谓的“不可解释的表达式”可能是误读布尔逻辑理论的结果。
在《逻辑的数学分析》中,布尔提出了逻辑的数学理论。他认为计算的有效性依赖于符号组合的规律,是一种形式的构设并对这种构设寻求逻辑意义上的合宜解释。《思维规律》对其理论进行了补充和完善,布尔的逻辑理论主要分为两个独立的部分:其一是布尔给出的基本逻辑,即基本的逻辑系统;其二主要为基本逻辑的扩充,其中包含对于演算过程、消除与约简(reduction)等内容的分析。显然,布尔认为,这两个部分是两种完全不同的类型,两者在内容上的分离并不仅仅具有空间意义,正如下面所见,前者是后者的基础,但同时后者也不仅仅是前者内容的一个简单扩展。
布尔逻辑理论中,引入了表示类概念的符号x、y、z等,以及常量1和0。其中,符号x、y、z等是具有属性X、Y、Z等的那些物的类;常量1表示所有事物对象的类,也可解释为古典逻辑中的“真值”;常量0表示什么对象也没有,即“空类”,也可解释为古典逻辑中的“假值”。此外,他还引进了二元运算符号“×”、“+”和“-”,并使这些运算符号与逻辑中的各种联结词相对应,比如:x×y(也可记作xy)表示同时具有属性X和属性Y的事物所构成的类,相当于古典逻辑中的“合取命题”;x+y表示具有属性X或者具有属性Y的事物组成的类,相当于古典逻辑中的“不相容析取”;x-y表示由不是y的那些x组成的类,只有y被包含在x中,该表达式才有意义。另外布尔用符号“=”表示逻辑的等式。同时,这些运算满足以下基本定律:
①交换律: xy=yx;x+y=y+x
②分配律: z(x+y)=zx+zy
③结合律: (x×y)×z=x×(y×z)
布尔通过表达式xx=x2=x在逻辑与代数之间建立了联系,他主张逻辑规则与数学中的表达对应起来。表达式xx=x2=x在逻辑上是普遍成立的,但在普通代数中,仅对0和1值成立。取值的严格限制使逻辑代数和普通代数建立了某种联系,即“代数中的规则、公理和推理过程与逻辑代数中的规则、公理和推理过程是相同的。只是解释的不同将它们区分开来”(2)George Boole,An Investigation of the Laws of Thought,Beijing:Higher Education Press,2016,p.26.。这是逻辑演算据以建立的基本规则。
布尔在其逻辑理论中引入一个完全不同的主题——布尔方法,布尔逻辑理论研究中关注的正是这一主题相关内容中出现的那些表达式。在这些内容中,布尔提出了他所谓的“逻辑的普遍方法”。布尔认为,早期的逻辑为这种方法奠定了基础,正是在此意义上,这种逻辑的普遍方法不同于基本逻辑。基本逻辑仅限于处理完全可解释的逻辑运算,而逻辑的普遍方法则涉及在逻辑背景中应用更普遍的形式方法。显然,布尔意图能够在逻辑背景中使用非逻辑的转换方法,以此加强逻辑的转换。布尔所谓的逻辑的普遍方法是布尔逻辑工作中最精彩的部分,即布尔分析论证的基本方法,其使用可以简单归结如下:第一步,将命题转换为方程。在转换中,首先,将项的名称转换为如下代数术语:全类用1表示,空类用0表示,非x的类用1-x表示,x或y的类用x+y(1-x)或者xy+x(1-y)+y(1-x)表示(3)George Boole,An Investigation of the Laws of Thought,p.42.;其次,将命题转换为等式。第二步,将规定的代数过程序列应用于方程,产生所求结论方程的过程。在此过程中,首先,将前提变成代数形式之后用一组右侧为0的方程表示;其次,将方程组r1=0,r2=0,…,rn=0简化为r=0的单个方程形式,然后再解方程。上述步骤是布尔一般方法中所必须做的。布尔将方程组简化为单个方程形式r=0的过程较为复杂,方法有三种,分别为消除(Elimination)、扩展(Development or Expansion)和除法(Devision)。根据不同的目标,可选择不同的运算方法,直至得出一个想要的方程。最后,将方程结论转换为命题结论,产生原始命题集的预期结果,这一过程也称为“解释”。布尔通过这种常规的机械化的代数程序将推理从前提命题替换为结论命题。“不可解释的表达式”就是在运用普遍方法的过程中产生的。
逻辑学的每一重大发展和转向都伴随着新思想和新技术的出现。伯努利(J. Bernoulli)提出了逻辑可以进行类似代数的运算(4)Theodore Hailperin,“Algebrical Logic 1685-1900”,in D.M. Gabbay,J. Woods,eds.,Handbook of the History of Logic(Volume 3):The Rise of Mordern Logic:From Leibriz to Frege,North Holland:Elsevier,2004,pp.323-324.。同时期莱布尼茨(Leibniz)设想对逻辑进行符号化,但是在构设具有“通用语言”和“通用数学”功能的符号逻辑体系方面没有获得成功。1830年皮考克(G.Peacock)发表了《代数学》,对代数运算的基本法则进行了探索性研究,试图建立一门更一般的代数,仅是符号及其满足的某些运算法则的科学,但皮考克仍局限于数和量的领域中。格雷戈里(D.F.Gregory)发展了皮考克的代数思想,他认为符号规则应该扩展到数和量的领域之外,并且符号可以允许非数的解释。德摩根(De Morgan)对符号代数和逻辑之间的关系有更加深刻的认识,他指出:“我们必须从代数那里去寻找逻辑形式的最寻常的用法。”(5)William Ewald,From Kant to Hilbert:A Source Book in The Foundations of Mathematics,Vol.Ⅰ,Oxford:Clarendon Press,1996,p.331.其主要著作《形式逻辑》(1847)第一次以公式的形式明确了合取和析取的关系,后人将其称为德摩根定律。他引入的“谓词量化”理论引发了和汉米尔顿(W.Hamilton)之间的学术剽窃争论,其影响甚至超过了论文本身。这场争论引起布尔对逻辑的关注,并在同一年出版了第一本逻辑著作《逻辑的数学分析》(6)奚颖瑞:《论19世纪的逻辑学——在数学与哲学之间》,《自然辩证法研究》2010年第5期。。
布尔在《逻辑的数学分析》的引言中介绍,“熟悉符号代数理论的人们都知道,分析过程的有效性并不依赖于对所用符号的解释,而仅仅依据其组合的规则”(7)George Boole,The Mathematical Analysis of Logic,London:Henderson and Spalding,1847,p.3.。布尔最初的目的是把传统三段论代数化,并没有期望达到新的结果,但是结果却超出预料,他很快被迫考虑“表述应用过程的方法的适宜性和局限性”(8)James Gasser,A Boole Anthology:Recent and Classical Studies in the Logic of George Boole,Dordrecht:Kluwer Academic Publishers,2000,p.194.,为此他建立了逻辑的一般定理。布尔认为数学形式一般是真正的逻辑形式,而已经建立和高度组织的数学语言通常是符号的自然语言。基于这种思想,布尔创立了他自己的逻辑符号演算。每一个逻辑命题精确而严谨的表达,不仅亚里士多德的三段论和推理规则可以转换为代数方程,复杂的命题系统也可以进行代数方式上的演绎推理,其结果在逻辑上是可解释的。布尔逻辑演算的方法论是基于其第一部数学著作《论分析中的一般方法》(1844),该著作中布尔对非交换符号的组合规律进行了深入的研究,而在运算微积分(the calculus of operations)领域,布尔以特定符号方程的形式对拉普拉斯方程进行了转换,借麦克劳林公式对代数化的或经过代数转化的逻辑方程进行扩展,扩展过程中出现了“不可解释的表达式”,布尔称为“不可解释的过程”(9)George Boole,An Investigation of the Laws of Thought,p.49.。
有了符号代数学说的基础,即运算的有效性依赖于符号组合的规律,而不是对使用的符号所作的解释,布尔在逻辑代数中定义1-x为x的否定,即“非x”的类,利用这一定义来分析逻辑等式xx=x2=x,通过变换可以得出:
x-x2=0
∴ x(1-x)=0
上面的式子可解释为不存在事物同时既属于x类又属于“非x类”。x(1-x)=0也可以用图1来表示(10)黄耀枢:《布尔与布尔代数》,《自然辩证法研究》1985年第4期。。
(图1)
(图2)
任意布尔函数表达式f(x),f(x,y),f(x,y,z)等,是只取值0和1的逻辑符号x,y,z的函数(11)黄耀枢:《布尔与布尔代数》。。由此可以得到
f(x)=ax+b(1-x)
(1)
当x=1时, f(1)=a,
当x=0时, f(0)=b。
由此确定了a和b的值,把它们代入方程(1)中,可以得到:
f(x)=f(1)x+f(0)(1-x)
(2)
布尔函数f(x)定义在x域或非x域上,很显然这是最基本的布尔概念。含有两个变元的函数表达式f(x,y)为:
f(x,y)=f(1,1)xy+f(1,0)x(1-y)+f(0,1)(1-x)y+f(0,0)(1-x)(1-y)
(3)
(4)
(5)
人们认为布尔在逻辑背景中对数学不加批判地使用,以致出现了逻辑上不可解释的表达式。不足为奇的是,许多批评者一致认为,布尔的后继者(在他的代数逻辑中)为这些表达提供逻辑解释,以此扩展逻辑与数学之间的对称性。耶方斯(W.Jevons)在其解释中认为,“……尽管布尔的准数学系统为亚里士多德逻辑提供了一个可行的替代方案,但是它很难被认为是一个最终的、完美无缺的解决方案。该方案不仅需要以一个错综复杂且令人费解的方式处理数学符号,而且它所获得的结果缺乏说服力。因为这些结果取决于所使用的晦涩难懂的符号,同时只能用类推的方法获得意义”(15)W.Stanley Jevons,The Principles of Science,a Treatise on Logic and Scientific Method,New York:Dover Publications,Inc.,1958,p.113.[A reprint of the London edition of 1874]。在耶方斯看来,布尔工作的数学性质不仅给布尔演算以优势,也是造成其缺陷的原因所在。一方面,如果布尔一直没能够找到那些适合在0、1代数规则中成立的规则和运算形式,那么在布尔逻辑演算中几乎不存在这样的普遍形式,而另一方面,在运用这种数学方法处理问题的过程中,所产生的运算和表达总是存在某种模糊之处,这一点可以从难以给出与之相应的逻辑解释得到印证。而且,布尔的数学主义走的太远,它所导致的不过是一个没有逻辑解释或者几乎没有价值的复杂符号及程序世界,正因为如此,他的逻辑系统中才不可避免地遭遇减法和除法的问题以及大于1的数的问题(16)Joseph M. Bochenski,A History of Formal Logic,Notre Dame:University of Notre Dame Press,1961,p.298.[A revised translation(by I.Thomas) of Formale Logik,Freiburg and Munich:Verlog Karl Alber,1956]。达米特(M.Dummett)在描述布尔逻辑成就时也指出,其代数逻辑中围绕“v”、“+”和“-”等符号的运用展开,存在表达力的问题。达米特认为布尔没有证明普遍方法的保真性,他的证明不得不遵循泰勒定理(17)Michael Dummett,“Review of Studies in Logic and Probability by George Boode”,The Journal of Symbolic Logic,Vol.24,No.3,1959,pp.203-209.[Reprinted in this volume,pp.79-85]。
布尔的逻辑系统比以往系统增添了一些特性,使得它具有相对较多的适用性,但是,他所给出的逻辑系统存在一些严重的缺陷。例如,在表达存在命题时,布尔使用了字母“v”,因此接受不同于1和0的数值系数;其逻辑系统使用了除法运算,但是这种运算并没有恒定的意义界定,至少可以说,这些表达式的逻辑意义是不确定的(18)William Kneale,Martha Kneale,The Developmentof Logic,Oxford:Oxford University Press,1962,p.422.。因此,有人认为布尔后继者的任务是去处理这些不足,并还这个系统一个本来的面目:这是一个数学的逻辑,而不是其反对者所怀疑的只是逻辑的数学。
能够给出自洽的形式语义解释,是对逻辑系统的一个基本理论要求。“不可解释的表达式”是在关联逻辑系统与代数系统的基础上出现的。从布尔逻辑理论本身出发,笔者认为“不可解释的表达式”未必成立,它们甚至可能是误读布尔所谓的“逻辑的普遍方法”。在逻辑转换过程中,普遍方法的使用包括纯数学的运算——作为把数学的形式力量使用在逻辑背景中的一种方法,受到质疑的表达式在这样的运算中,只能充当其成分,并没有被布尔当作逻辑表达式。在布尔逻辑理论的批判者看来,既是逻辑又是不可解释的表达式可分为两类:第一类,根据普遍方法的规则,它们可能是一个推理步骤中两个可给以逻辑解释表达式之间的非逻辑表达式;第二类,就像有些例子中的考虑一样,它们可能是作为逻辑应用过程的非逻辑表达式的组成部分。在这两种情况下,布尔都没有作任何模糊的或难以理解的解释。或许正是因为他本身没有做任何解释,才致使很多人对这些表达式提出了质疑。下面就一些具体的质疑,笔者试图做一个解读。
按照布尔的上述阐释,不存在将除法视为一个逻辑运算的可能。因为这里的抽象可以用已经存在的逻辑方法来处理,而这种逻辑方法中并不包括除法。在解释这种逻辑的普遍方法时,布尔首先提出,“……是否有必要通过相同知识的可解释性条件来限制逻辑过程的符号规则的应用?”(20)George Boole,An Investigation of the Laws of Thought,pp.25-26.因为:如果x和y不代表不同的类,则表达式“x+y”是不可解释的,就是说,只有当确定结果是一个可解释的表达时,才能使用“+”。布尔继续提出,“如果这样的限制是必要的,那么不可能存在普遍的方法。但是,另一方面,如果这样的限制是不必要的,我们在什么样的情况下去思考那些旨在帮助思维的不可解释的过程?”(21)George Boole,An Investigation of the Laws of Thought,p.49.显然,布尔认为这种限制是没必要的,并对上述问题给出进一步解释。
布尔的解释从关注普通推理开始。在他看来,普通推理所涉及到的过程和解释之间总是存在对应关系,也即是说,在普通推理中的每一步都是可解释的,没有一步仅仅是形式的改变。布尔认识到有些人可能由此提出质疑,他对可能的质疑进行了反驳:“……因为支配符号使用的规则或公理是建立在那些可以给以解释的案例的研究之上,所以,我们没有权利把它们运用到那些不可以给以解释的案例,即使证明的中间步骤,也是如此。”(22)George Boole,An Investigation of the Laws of Thought,p.49.布尔明确表示这样的质疑是荒谬的,“毫无疑问的事实是,任何符号推理过程所得结论的有效性都不依赖于在不同研究阶段对已经呈现出来的形式进行解释的能力”(23)George Boole,An Investigation of the Laws of Thought,p.50.。在这里,布尔给出了逻辑的普遍方法的基础。具体而言,布尔把这种方法归纳为如下规则:在给定的方程中,我们可以把符号的逻辑解释放在一边,将其转化为仅限值为0和1的量化符号,基于这些符号完成所有必要的解决方案,最终再回到对于它们的逻辑解释。
布尔在这里主张的逻辑过程显著不同于他的基本逻辑。他建议任何逻辑符号都可以按照基本逻辑中的规定方式作为其数学上的对应,且所有的数学运算都具有适用性,无论这种运算在逻辑上是不是可解释的;通过序列运算最终获得一个数学表达式,则必然存在一个与之对应的逻辑表达式。该序列可以被看作是一个从最初表达式到最终表达式的推理,两者之间有一个纯粹数学的运算。扩展在逻辑的普遍方法中起着关键作用,布尔把它看作是一个过程。根据上面的规则,通过扩展这种方式,可以在逻辑可解释的表达式之间建立联系。扩展中不仅仅包含逻辑应用,可能还包含其他有待于发掘的应用。布尔给予扩展的最初定义是这样的:当任一函项f(x)被归结为形如ax+b(1-x)的形式,a和b是如此的确定,使得结果与它所推导的函项相等时,函项f(x)被认为是可扩展的。其中x是一个逻辑符号,或者是仅适用于0和1值的量化符号。
布尔对于所谓的“不可解释的表达式”的使用多有含混不清或模棱两可之处。这些“不可解释的表达式”被限制到他所谓的普遍方法的运用,也就是说,他打算将这些表达式应用于不属于基本逻辑的表达范围之中是可能的。但同样可能的是,他有意识地将数学符号添加到他的基本逻辑中。如果是这样的话,对布尔把除法引入逻辑的批判就是合理的。
《思维规律》的批判者提出一些“不可解释的表达式”,它们既是逻辑的,又是无法解释的。在布尔逻辑理论的语境下,质疑“不可解释的表达式”,其实质是问“不可解释的表达式”是否被布尔视为其基本逻辑的一部分?如果这些表达式被布尔作为基本逻辑部分,那么这些批评都是合理的;如果这些表达式没有被布尔视作基本逻辑部分,而是限制在普遍方法中,这些批评的意义就不存在了。从本文的分析来看,布尔倾向于后者,而这就在很大程度上使得对于“不可解释的表达式”的质疑失去意义。这些表达式被布尔理解为逻辑的普遍方法的部分,而不是逻辑上的表达。尽管布尔关于除法的解释及立场不太明朗,但至少存在一种理解布尔表达式使用的方法,即认为他并没有引入除法作为基本逻辑的运算。
布尔逻辑理论有其不尽完美之处,但是这并不构成质疑其理论价值的充分理由。布尔逻辑理论不仅代表着现代逻辑的巨大改革,而且对于逻辑学科历史演进有着无可替代的重要性。这种重要性在于他强调逻辑的普遍方法,给出一种应用普遍方法的例示。这种对于逻辑的方法的发展已经远远超出了自亚里士多德时代以来的描述性逻辑,对普通语言的简单形式化做出了精彩的诠释。我们从中看到,布尔将数学方法引入逻辑,这不仅不同于当代逻辑学家所追求的数学化的逻辑,也保留了逻辑不同于数学的基本独立性。从这个意义上说,逻辑的普遍方法的提出,进一步远离了早期逻辑研究对于普通语言的依赖。