王春麗, 何向東
(西南大學 邏輯與智能研究中心, 重慶 400715)
邏輯學在19世紀發(fā)生了巨大變化,邏輯與數(shù)學的聯(lián)系異常緊密。英國數(shù)學家喬治·布爾(G.Boole)是其中做出卓越貢獻的重要學者之一。布爾的邏輯理論著作有兩部:《邏輯的數(shù)學分析》(1847)和《思維規(guī)律的探究——面向邏輯和概率的數(shù)學理論》(1854,以下簡稱《思維規(guī)律》)。其中,后者是對前者的補充和完善,被譽為數(shù)理邏輯發(fā)展史上的一個里程碑。布爾所闡述的邏輯代數(shù)用類演算的方式實現(xiàn)了對傳統(tǒng)三段論邏輯的改造,在當時的邏輯學界產生了巨大影響。國內關于布爾學術的研究多數(shù)著眼于計算機、數(shù)學或自動化等方面,從邏輯史方向研究布爾邏輯理論并系統(tǒng)介紹其邏輯思想的文獻甚少。有學者認為布爾在其邏輯理論中無限制地使用數(shù)學,在將邏輯理論數(shù)學化的同時,也包含一些不足,而富有爭議的“不可解釋的表達式”(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.就是其理論演化的結果之一。本文在解讀布爾關于基本邏輯和邏輯普遍方法的思想的基礎上,分析“不可解釋的表達式”的主要由來及其預設,進而沿著布爾關于邏輯的普遍方法及其應用的思考,厘清其理論建構中對于表達式之邏輯與解釋的立場,認為布爾并沒有將除法這樣的運算引入邏輯,所謂的“不可解釋的表達式”可能是誤讀布爾邏輯理論的結果。
在《邏輯的數(shù)學分析》中,布爾提出了邏輯的數(shù)學理論。他認為計算的有效性依賴于符號組合的規(guī)律,是一種形式的構設并對這種構設尋求邏輯意義上的合宜解釋。《思維規(guī)律》對其理論進行了補充和完善,布爾的邏輯理論主要分為兩個獨立的部分:其一是布爾給出的基本邏輯,即基本的邏輯系統(tǒng);其二主要為基本邏輯的擴充,其中包含對于演算過程、消除與約簡(reduction)等內容的分析。顯然,布爾認為,這兩個部分是兩種完全不同的類型,兩者在內容上的分離并不僅僅具有空間意義,正如下面所見,前者是后者的基礎,但同時后者也不僅僅是前者內容的一個簡單擴展。
布爾邏輯理論中,引入了表示類概念的符號x、y、z等,以及常量1和0。其中,符號x、y、z等是具有屬性X、Y、Z等的那些物的類;常量1表示所有事物對象的類,也可解釋為古典邏輯中的“真值”;常量0表示什么對象也沒有,即“空類”,也可解釋為古典邏輯中的“假值”。此外,他還引進了二元運算符號“×”、“+”和“-”,并使這些運算符號與邏輯中的各種聯(lián)結詞相對應,比如: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在邏輯與代數(shù)之間建立了聯(lián)系,他主張邏輯規(guī)則與數(shù)學中的表達對應起來。表達式xx=x2=x在邏輯上是普遍成立的,但在普通代數(shù)中,僅對0和1值成立。取值的嚴格限制使邏輯代數(shù)和普通代數(shù)建立了某種聯(lián)系,即“代數(shù)中的規(guī)則、公理和推理過程與邏輯代數(shù)中的規(guī)則、公理和推理過程是相同的。只是解釋的不同將它們區(qū)分開來”(2)George Boole,An Investigation of the Laws of Thought,Beijing:Higher Education Press,2016,p.26.。這是邏輯演算據以建立的基本規(guī)則。
布爾在其邏輯理論中引入一個完全不同的主題——布爾方法,布爾邏輯理論研究中關注的正是這一主題相關內容中出現(xiàn)的那些表達式。在這些內容中,布爾提出了他所謂的“邏輯的普遍方法”。布爾認為,早期的邏輯為這種方法奠定了基礎,正是在此意義上,這種邏輯的普遍方法不同于基本邏輯?;具壿媰H限于處理完全可解釋的邏輯運算,而邏輯的普遍方法則涉及在邏輯背景中應用更普遍的形式方法。顯然,布爾意圖能夠在邏輯背景中使用非邏輯的轉換方法,以此加強邏輯的轉換。布爾所謂的邏輯的普遍方法是布爾邏輯工作中最精彩的部分,即布爾分析論證的基本方法,其使用可以簡單歸結如下:第一步,將命題轉換為方程。在轉換中,首先,將項的名稱轉換為如下代數(shù)術語:全類用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.;其次,將命題轉換為等式。第二步,將規(guī)定的代數(shù)過程序列應用于方程,產生所求結論方程的過程。在此過程中,首先,將前提變成代數(shù)形式之后用一組右側為0的方程表示;其次,將方程組r1=0,r2=0,…,rn=0簡化為r=0的單個方程形式,然后再解方程。上述步驟是布爾一般方法中所必須做的。布爾將方程組簡化為單個方程形式r=0的過程較為復雜,方法有三種,分別為消除(Elimination)、擴展(Development or Expansion)和除法(Devision)。根據不同的目標,可選擇不同的運算方法,直至得出一個想要的方程。最后,將方程結論轉換為命題結論,產生原始命題集的預期結果,這一過程也稱為“解釋”。布爾通過這種常規(guī)的機械化的代數(shù)程序將推理從前提命題替換為結論命題?!安豢山忉尩谋磉_式”就是在運用普遍方法的過程中產生的。
邏輯學的每一重大發(fā)展和轉向都伴隨著新思想和新技術的出現(xiàn)。伯努利(J. Bernoulli)提出了邏輯可以進行類似代數(shù)的運算(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)設想對邏輯進行符號化,但是在構設具有“通用語言”和“通用數(shù)學”功能的符號邏輯體系方面沒有獲得成功。1830年皮考克(G.Peacock)發(fā)表了《代數(shù)學》,對代數(shù)運算的基本法則進行了探索性研究,試圖建立一門更一般的代數(shù),僅是符號及其滿足的某些運算法則的科學,但皮考克仍局限于數(shù)和量的領域中。格雷戈里(D.F.Gregory)發(fā)展了皮考克的代數(shù)思想,他認為符號規(guī)則應該擴展到數(shù)和量的領域之外,并且符號可以允許非數(shù)的解釋。德摩根(De Morgan)對符號代數(shù)和邏輯之間的關系有更加深刻的認識,他指出:“我們必須從代數(shù)那里去尋找邏輯形式的最尋常的用法?!?5)William Ewald,F(xiàn)rom Kant to Hilbert:A Source Book in The Foundations of Mathematics,Vol.Ⅰ,Oxford:Clarendon Press,1996,p.331.其主要著作《形式邏輯》(1847)第一次以公式的形式明確了合取和析取的關系,后人將其稱為德摩根定律。他引入的“謂詞量化”理論引發(fā)了和漢米爾頓(W.Hamilton)之間的學術剽竊爭論,其影響甚至超過了論文本身。這場爭論引起布爾對邏輯的關注,并在同一年出版了第一本邏輯著作《邏輯的數(shù)學分析》(6)奚穎瑞:《論19世紀的邏輯學——在數(shù)學與哲學之間》,《自然辯證法研究》2010年第5期。。
布爾在《邏輯的數(shù)學分析》的引言中介紹,“熟悉符號代數(shù)理論的人們都知道,分析過程的有效性并不依賴于對所用符號的解釋,而僅僅依據其組合的規(guī)則”(7)George Boole,The Mathematical Analysis of Logic,London:Henderson and Spalding,1847,p.3.。布爾最初的目的是把傳統(tǒng)三段論代數(shù)化,并沒有期望達到新的結果,但是結果卻超出預料,他很快被迫考慮“表述應用過程的方法的適宜性和局限性”(8)James Gasser,A Boole Anthology:Recent and Classical Studies in the Logic of George Boole,Dordrecht:Kluwer Academic Publishers,2000,p.194.,為此他建立了邏輯的一般定理。布爾認為數(shù)學形式一般是真正的邏輯形式,而已經建立和高度組織的數(shù)學語言通常是符號的自然語言?;谶@種思想,布爾創(chuàng)立了他自己的邏輯符號演算。每一個邏輯命題精確而嚴謹?shù)谋磉_,不僅亞里士多德的三段論和推理規(guī)則可以轉換為代數(shù)方程,復雜的命題系統(tǒng)也可以進行代數(shù)方式上的演繹推理,其結果在邏輯上是可解釋的。布爾邏輯演算的方法論是基于其第一部數(shù)學著作《論分析中的一般方法》(1844),該著作中布爾對非交換符號的組合規(guī)律進行了深入的研究,而在運算微積分(the calculus of operations)領域,布爾以特定符號方程的形式對拉普拉斯方程進行了轉換,借麥克勞林公式對代數(shù)化的或經過代數(shù)轉化的邏輯方程進行擴展,擴展過程中出現(xiàn)了“不可解釋的表達式”,布爾稱為“不可解釋的過程”(9)George Boole,An Investigation of the Laws of Thought,p.49.。
有了符號代數(shù)學說的基礎,即運算的有效性依賴于符號組合的規(guī)律,而不是對使用的符號所作的解釋,布爾在邏輯代數(shù)中定義1-x為x的否定,即“非x”的類,利用這一定義來分析邏輯等式xx=x2=x,通過變換可以得出:
x-x2=0
∴ x(1-x)=0
上面的式子可解釋為不存在事物同時既屬于x類又屬于“非x類”。x(1-x)=0也可以用圖1來表示(10)黃耀樞:《布爾與布爾代數(shù)》,《自然辯證法研究》1985年第4期。。
(圖1)
(圖2)
任意布爾函數(shù)表達式f(x),f(x,y),f(x,y,z)等,是只取值0和1的邏輯符號x,y,z的函數(shù)(11)黃耀樞:《布爾與布爾代數(shù)》。。由此可以得到
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)
布爾函數(shù)f(x)定義在x域或非x域上,很顯然這是最基本的布爾概念。含有兩個變元的函數(shù)表達式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)
人們認為布爾在邏輯背景中對數(shù)學不加批判地使用,以致出現(xiàn)了邏輯上不可解釋的表達式。不足為奇的是,許多批評者一致認為,布爾的后繼者(在他的代數(shù)邏輯中)為這些表達提供邏輯解釋,以此擴展邏輯與數(shù)學之間的對稱性。耶方斯(W.Jevons)在其解釋中認為,“……盡管布爾的準數(shù)學系統(tǒng)為亞里士多德邏輯提供了一個可行的替代方案,但是它很難被認為是一個最終的、完美無缺的解決方案。該方案不僅需要以一個錯綜復雜且令人費解的方式處理數(shù)學符號,而且它所獲得的結果缺乏說服力。因為這些結果取決于所使用的晦澀難懂的符號,同時只能用類推的方法獲得意義”(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]。在耶方斯看來,布爾工作的數(shù)學性質不僅給布爾演算以優(yōu)勢,也是造成其缺陷的原因所在。一方面,如果布爾一直沒能夠找到那些適合在0、1代數(shù)規(guī)則中成立的規(guī)則和運算形式,那么在布爾邏輯演算中幾乎不存在這樣的普遍形式,而另一方面,在運用這種數(shù)學方法處理問題的過程中,所產生的運算和表達總是存在某種模糊之處,這一點可以從難以給出與之相應的邏輯解釋得到印證。而且,布爾的數(shù)學主義走的太遠,它所導致的不過是一個沒有邏輯解釋或者幾乎沒有價值的復雜符號及程序世界,正因為如此,他的邏輯系統(tǒng)中才不可避免地遭遇減法和除法的問題以及大于1的數(shù)的問題(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,F(xiàn)reiburg and Munich:Verlog Karl Alber,1956]。達米特(M.Dummett)在描述布爾邏輯成就時也指出,其代數(shù)邏輯中圍繞“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]。
布爾的邏輯系統(tǒng)比以往系統(tǒng)增添了一些特性,使得它具有相對較多的適用性,但是,他所給出的邏輯系統(tǒng)存在一些嚴重的缺陷。例如,在表達存在命題時,布爾使用了字母“v”,因此接受不同于1和0的數(shù)值系數(shù);其邏輯系統(tǒng)使用了除法運算,但是這種運算并沒有恒定的意義界定,至少可以說,這些表達式的邏輯意義是不確定的(18)William Kneale,Martha Kneale,The Developmentof Logic,Oxford:Oxford University Press,1962,p.422.。因此,有人認為布爾后繼者的任務是去處理這些不足,并還這個系統(tǒng)一個本來的面目:這是一個數(shù)學的邏輯,而不是其反對者所懷疑的只是邏輯的數(shù)學。
能夠給出自洽的形式語義解釋,是對邏輯系統(tǒng)的一個基本理論要求。“不可解釋的表達式”是在關聯(lián)邏輯系統(tǒng)與代數(shù)系統(tǒng)的基礎上出現(xiàn)的。從布爾邏輯理論本身出發(fā),筆者認為“不可解釋的表達式”未必成立,它們甚至可能是誤讀布爾所謂的“邏輯的普遍方法”。在邏輯轉換過程中,普遍方法的使用包括純數(shù)學的運算——作為把數(shù)學的形式力量使用在邏輯背景中的一種方法,受到質疑的表達式在這樣的運算中,只能充當其成分,并沒有被布爾當作邏輯表達式。在布爾邏輯理論的批判者看來,既是邏輯又是不可解釋的表達式可分為兩類:第一類,根據普遍方法的規(guī)則,它們可能是一個推理步驟中兩個可給以邏輯解釋表達式之間的非邏輯表達式;第二類,就像有些例子中的考慮一樣,它們可能是作為邏輯應用過程的非邏輯表達式的組成部分。在這兩種情況下,布爾都沒有作任何模糊的或難以理解的解釋?;蛟S正是因為他本身沒有做任何解釋,才致使很多人對這些表達式提出了質疑。下面就一些具體的質疑,筆者試圖做一個解讀。
按照布爾的上述闡釋,不存在將除法視為一個邏輯運算的可能。因為這里的抽象可以用已經存在的邏輯方法來處理,而這種邏輯方法中并不包括除法。在解釋這種邏輯的普遍方法時,布爾首先提出,“……是否有必要通過相同知識的可解釋性條件來限制邏輯過程的符號規(guī)則的應用?”(20)George Boole,An Investigation of the Laws of Thought,pp.25-26.因為:如果x和y不代表不同的類,則表達式“x+y”是不可解釋的,就是說,只有當確定結果是一個可解釋的表達時,才能使用“+”。布爾繼續(xù)提出,“如果這樣的限制是必要的,那么不可能存在普遍的方法。但是,另一方面,如果這樣的限制是不必要的,我們在什么樣的情況下去思考那些旨在幫助思維的不可解釋的過程?”(21)George Boole,An Investigation of the Laws of Thought,p.49.顯然,布爾認為這種限制是沒必要的,并對上述問題給出進一步解釋。
布爾的解釋從關注普通推理開始。在他看來,普通推理所涉及到的過程和解釋之間總是存在對應關系,也即是說,在普通推理中的每一步都是可解釋的,沒有一步僅僅是形式的改變。布爾認識到有些人可能由此提出質疑,他對可能的質疑進行了反駁:“……因為支配符號使用的規(guī)則或公理是建立在那些可以給以解釋的案例的研究之上,所以,我們沒有權利把它們運用到那些不可以給以解釋的案例,即使證明的中間步驟,也是如此?!?22)George Boole,An Investigation of the Laws of Thought,p.49.布爾明確表示這樣的質疑是荒謬的,“毫無疑問的事實是,任何符號推理過程所得結論的有效性都不依賴于在不同研究階段對已經呈現(xiàn)出來的形式進行解釋的能力”(23)George Boole,An Investigation of the Laws of Thought,p.50.。在這里,布爾給出了邏輯的普遍方法的基礎。具體而言,布爾把這種方法歸納為如下規(guī)則:在給定的方程中,我們可以把符號的邏輯解釋放在一邊,將其轉化為僅限值為0和1的量化符號,基于這些符號完成所有必要的解決方案,最終再回到對于它們的邏輯解釋。
布爾在這里主張的邏輯過程顯著不同于他的基本邏輯。他建議任何邏輯符號都可以按照基本邏輯中的規(guī)定方式作為其數(shù)學上的對應,且所有的數(shù)學運算都具有適用性,無論這種運算在邏輯上是不是可解釋的;通過序列運算最終獲得一個數(shù)學表達式,則必然存在一個與之對應的邏輯表達式。該序列可以被看作是一個從最初表達式到最終表達式的推理,兩者之間有一個純粹數(shù)學的運算。擴展在邏輯的普遍方法中起著關鍵作用,布爾把它看作是一個過程。根據上面的規(guī)則,通過擴展這種方式,可以在邏輯可解釋的表達式之間建立聯(lián)系。擴展中不僅僅包含邏輯應用,可能還包含其他有待于發(fā)掘的應用。布爾給予擴展的最初定義是這樣的:當任一函項f(x)被歸結為形如ax+b(1-x)的形式,a和b是如此的確定,使得結果與它所推導的函項相等時,函項f(x)被認為是可擴展的。其中x是一個邏輯符號,或者是僅適用于0和1值的量化符號。
布爾對于所謂的“不可解釋的表達式”的使用多有含混不清或模棱兩可之處。這些“不可解釋的表達式”被限制到他所謂的普遍方法的運用,也就是說,他打算將這些表達式應用于不屬于基本邏輯的表達范圍之中是可能的。但同樣可能的是,他有意識地將數(shù)學符號添加到他的基本邏輯中。如果是這樣的話,對布爾把除法引入邏輯的批判就是合理的。
《思維規(guī)律》的批判者提出一些“不可解釋的表達式”,它們既是邏輯的,又是無法解釋的。在布爾邏輯理論的語境下,質疑“不可解釋的表達式”,其實質是問“不可解釋的表達式”是否被布爾視為其基本邏輯的一部分?如果這些表達式被布爾作為基本邏輯部分,那么這些批評都是合理的;如果這些表達式沒有被布爾視作基本邏輯部分,而是限制在普遍方法中,這些批評的意義就不存在了。從本文的分析來看,布爾傾向于后者,而這就在很大程度上使得對于“不可解釋的表達式”的質疑失去意義。這些表達式被布爾理解為邏輯的普遍方法的部分,而不是邏輯上的表達。盡管布爾關于除法的解釋及立場不太明朗,但至少存在一種理解布爾表達式使用的方法,即認為他并沒有引入除法作為基本邏輯的運算。
布爾邏輯理論有其不盡完美之處,但是這并不構成質疑其理論價值的充分理由。布爾邏輯理論不僅代表著現(xiàn)代邏輯的巨大改革,而且對于邏輯學科歷史演進有著無可替代的重要性。這種重要性在于他強調邏輯的普遍方法,給出一種應用普遍方法的例示。這種對于邏輯的方法的發(fā)展已經遠遠超出了自亞里士多德時代以來的描述性邏輯,對普通語言的簡單形式化做出了精彩的詮釋。我們從中看到,布爾將數(shù)學方法引入邏輯,這不僅不同于當代邏輯學家所追求的數(shù)學化的邏輯,也保留了邏輯不同于數(shù)學的基本獨立性。從這個意義上說,邏輯的普遍方法的提出,進一步遠離了早期邏輯研究對于普通語言的依賴。