1. 從邏輯代數開始

邏輯代數是一種用於描述客觀事物邏輯關系的數學方法,由英國科學家喬治·布爾 (George·Boole) 於 19 世紀中葉提出,因而又稱布爾代數。
所謂邏輯代數,就是把邏輯推理過程代數化,即把邏輯推理過程符號化。
2. 從邏輯代數到命題邏輯
同樣的,命題邏輯是將那些具有真假意義的陳述句接着進行符號化,產生原子命題。與此同時,當我們把邏輯代數中的運算符:與( · )、或( + )、非( - ),替換成命題邏輯中的聯結詞集:合取( ∧ )、析取( ∨ )、非( ¬ )、蘊涵( → ) 和等價( ↔ ) 之后,我們就進入了命題邏輯的研究領域。
需要指出的是,通常也將命題邏輯稱作命題演算,后者的出現就是用來討論前者的,這里不再區分。它與下面出現的一階邏輯(謂詞邏輯)都是數理邏輯的子集(或稱之為分支),是數理邏輯的兩個最基本的也是最重要的組成部分。
有人可能會問,為什么不從數理邏輯開始,其實意義不大。要談數理邏輯,不可避免的下一個主題就是邏輯代數。為什么這樣說呢?因為數理邏輯一開始的誕生是沒有意義的,它的創始人正是我們熟知的萊布尼茨(沒錯,就是高數中的那個牛頓-萊布尼茨公式)。萊布尼茨一開始是想要建立一套普遍的符號語言,從而將一些由自然語言的推理轉換成用符號演算。但可惜他的工作只是開了個頭,而且沒有太多的發表,因此影響不大。而真正使數理邏輯這門學科迅速擴張的是開頭所說的英國科學家——喬治·布爾,而他所做的正是將邏輯代數化。
2.1 數理邏輯與數學和邏輯學
數理邏輯又稱符號邏輯、理論邏輯,是一門用數學方法研究邏輯或形式邏輯的學科,這是百度詞條給出的解釋。還有一句話非常拗口:它既是數學的一個分支,也是邏輯學的一個分支。其研究對象是對證明和計算這兩個直觀概念進行符號化以后的形式系統。簡單來講,數理邏輯研究的並不是數學領域,而是計算機科學等領域。但歸根到底用到的還是數學方法,例如數學方法中的符號的使用、公式的定義等。
數理邏輯除了跟數學有關,還跟邏輯學有關。其實我一直以為邏輯學是數學的一個分支,但當我檢索信息時發現並不是這樣簡單。因為沒有學過邏輯學,只能暫時認為兩者的研究對象、研究任務和研究目標是不同的。但最重要的一點是,兩者是不可割裂的。因為邏輯出現在數學中,就是為了證明數學中所不能證明的。而邏輯用來推斷未知,那么這些未知就需要用數學中的方法來表現出來。
數學是研究數量、結構、變化以及空間模型等概念的一門學科。透過抽象化和邏輯推理的使用,由計數、計算、量度和對物體形狀及運動的觀察中產生。主要研究:數量、結構、空間和基礎與哲學。
邏輯是人的一種抽象思維,是人通過概念、判斷、推理、論證來理解和區分客觀世界的思維過程。邏輯學就是由上述過程產生的一門學科。邏輯的本質是尋找事物的相對關系,並用已知推斷未知。
2.2 命題邏輯的符號化思想
關於命題邏輯,相信學過離散的人都很熟悉。這里只提一下命題邏輯的符號化思想,這又是一種抽象的方法。數理邏輯的誕生就是代替使用自然語言進行推理,因此必須對其符號化,用元符號進行表示。而這種符號化帶來的好處就是消除了自然語言中的二義性,例如 “非 p”,這是一個典型的半符號化命題,自然語言 “非” 會產生二義性,因為你可以把 “非 p” 解釋成 “p 不成立” 等。為此,命題邏輯進一步符號化,用 “¬” 來代替 “非”,“不成立” 等。並且還定義一系列規則,比如說:¬p 為真當且僅當 p 為假。
符號化思想也帶來了一些在數理邏輯中不能夠處理的麻煩,甚至是一些常見的簡單推理。這里引用書上的一個例子,考慮這一命題:凡偶數都能被 2 整除,6 是偶數,所以,6 能被 2 整除。這個問題如果使用命題邏輯中的形式化推理,將無法判斷正確性。在命題邏輯中只能將推理中出現的 3 個簡單命題依次符號化為 p,q,r,將推理的形式結構符號化為 (p ∧ q) → r,由於該式不是重言式,所以不能夠由它判斷推理的正確性。問題就出現在這個 “凡” 字,命題邏輯不能夠解釋這一陳述句的本意。
為此,引入了一階邏輯中的主角——量詞。
3. 從命題邏輯到一階邏輯
一階邏輯也稱為謂詞邏輯,在命題邏輯中,命題是一個具有真假意義的陳述句,但在推理過程中往往會忽視命題具體想要陳述的本意。因此,我們引入元符號來描述命題邏輯中的簡單命題中的每一個成分,再將它們組合起來。也就是分別描述成個體詞、謂詞和量詞。這樣一來,在事先定義好的個體域上,個體詞 + 謂詞 + 量詞就可以在推理的形式結構符號化中表述(拼湊出)數學中的簡單命題的本意。
但我的疑問不是為什么引入一階邏輯,而是一階邏輯到底是怎么定義的,它跟二階、高階邏輯到底是什么關系。
4. 從一階邏輯到二階、高階邏輯
作為一個初學者,實在不適合繼續再探討一階邏輯與二階、高階邏輯的區別。但我還是希望能夠表達一下自己的看法。
百度詞條對一階邏輯的解釋很粗暴:“一階邏輯是相對於高階邏輯存在的數理邏輯,它不允許量化性質。比如說一個物體的顏色,狀態等”。這么說,暫時也夠用了。但在二階邏輯中,解除了這一限制,也就是說,謂詞能夠被量詞修飾了,如果對於一個命題中的個體詞,它存在任意性質或關系,那么就可以在二階邏輯中用全稱量詞來表達。
舉個例子:“對於任意的個體變項 x 和 y,如果 x 和 y 相等,那么對於任意性質或關系 F,F(x) 當且僅當 F(y)。”這在一階邏輯中是無法表達出來的。因為一階邏輯只能量化個體,而性質是包含個體的。但當我們引入了二階邏輯后,就可以表達出來,這句話用二階邏輯寫出來會是這樣:∀x∀y( (x=y) → ∀F(F(x) ↔ F(y) )。從中我們可以看到,二階邏輯可以量化包含個體詞的集合(性質或關系),那么依次類推,更高階的邏輯就是可以量化前一階所能量化到的集合的集合。
至於為什么不再探討高階邏輯,那已經是邏輯學,集合論的范疇了,還是等我學了再說吧。
5. 題外話
有時候,我在電腦前踱步的時候會在想:“數理邏輯的嚴謹性到底是基於什么 ?”,這一切可能都源於萊布尼茨發現 0 和 1 之間這一微妙的聯系吧。直到今天,我們還沿用基於 0 和 1 的二進制,例如計算機系統。
為什么計算機要采用二進制,而不是常用的八進制、十六進制呢?因為任何一種事物、一種狀態,要將之量化,最直接、最明了的方法就是將之區分為兩極。這不但是事物最根本的狀態,也是最利於表達的狀態。二進制符合計算機的設計思想,電流的速度是非常快的,而電流最明顯的兩種狀態就是導通和截止,這無疑也適合於二進制的使用。
因此,在計算機的邏輯電路中,人們就使用 0 和 1 兩個數字來代表兩種狀態。這樣一來,一個晶體管就可以用 01 碼表示一條信息。集成電路設計已完全采用了二進制語言信息,如果有兩個晶體管,就可能產生 01,10,00,11 四種狀態的組合,就能表示 4 條信息。依次類推,有 n 個晶體管,就可以表示 22 條信息。由於隨着 n 的增長,信息量是按幾何級數增長的。所以,可表示的信息狀態是極其可觀的。
硅谷的 “八叛徒” 所創辦的仙童半導體公司,早在上個世紀就已經用集成電路技術把成千上萬個晶體管做在一起,其處理信息的能力是可想而知的。
其實非常湊巧的是,我們前幾天才在計算機英語上了解了萊布尼茨,下面截取的是老師給的 PPT,讓我們來體會一下:



6. 感謝文章
后記
不得不感嘆,數理邏輯真的把 0(false) 和 1(true) 發揮到了極致。