當前位置: 華文星空 > 知識

哲學論證有可能像數學一樣精確嗎?

2013-03-11知識

這是一個非常美好的夢想,其實這個問題本身並不完全是一個哲學問題,至少部份地,是一個關於語言的問題:自然語言有可能像形式語言那樣精確嗎?

那麽我們先來看看 形式語言 為什麽可以如此精確,而形式語言本身又到底有多精確。

首先,在談論形式語言的時候,我們有 元語言 ,在這裏,就是我們使用的現代漢語,對於英國人來說就是英語,對於德國人來說就是德語,但是無論如何要有一個在形式語言之前的元語言來幫我們解決一些最為基本的表達需要。沒有元語言是不可能進行交流的,因為交流必須要語言(任何形式的語言都行,包括手語),而初始的語言不可能是形式語言(這一點可以由 Quine 關於意義模糊性的論證所確立)。

那麽我們開始 構建 一個形式語言。為了簡單起見,以常規的邏輯系統中最不復雜,並且套用最為廣泛的命題邏輯(Propositional Logic)為例:

一個命題邏輯系統包含以下 基本符號

常元 符號:

命題常元符號:a_1,a_2,a_3,\ldots (一個系統中可以沒有命題常元符號)

一元邏輯連線詞:\neg

二元邏輯連線詞:\vee

變元 符號:

命題變元:p_1,p_2,p_3,\ldots

輔助符號:( , )

以及 匯出符號

邏輯常元:\top:= p_1\vee(\neg p_1) ; \bot:=\neg \top

二元邏輯連線詞:\phi\wedge\psi :=\neg ((\neg\phi)\vee(\neg\psi)) ,\phi\rightarrow\psi:= (\neg\phi )\vee\psi , \phi\leftrightarrow\psi:=(\phi\rightarrow\psi)\wedge(\phi\rightarrow\psi) (其實\wedge 和\rightarrow 也可以作為基本符號,而將其它二元邏輯連線詞視作匯出符號)

其中「:= 」是 元語言 中的符號,表示右邊的式子 定義 了左邊的式子,或者,左邊的式子是右邊式子的 縮寫 ,而\phi 和\psi 也都是 元語言 中的符號,用來代指 合式公式 。很難想像在沒有元語言的情況下要如何構造形式語言。除了基本符號和到處符號,命題邏輯中 不包含任何其它符號 , Godel 的處理方式更為激進,他為了簡便而不采用數碼下標,形如x_1,x_2,x_3 的符號被他記作x,x',x'' ,不過這僅僅是一些技術處理上的細節。

所謂 合式公式 (WFF: Well-formed Formula,不是「合適公式」!摔!),就是符合語法規則的公式,比如說p_1\neg p_2 就 是一個合法的公式,p_1 \vee \neg 也不是。

一個 WFF 是:

  • 一個原子公式(無論是命題常元還是命題變元),或者,
  • 形如(\neg \phi) 的公式,其中 \phi 是一個 WFF,又或者,
  • 形如(\phi\vee\psi) 的公式,即由二元連線詞連線的兩個 WFF。
  • 此外 沒有別的 WFF 。當然,括弧是用來確定優先級的,所以如果我們采用波蘭式或者逆波蘭式的記法,那麽括弧就是沒有必要的,此時合式公式的生成規則也就和上面的生成規則不同了,如,寫成波蘭式的 WFF 的生成規則是:

  • 一個原子公式(無論是命題常元還是命題變元),或者,
  • 形如\neg \phi 的公式,其中 \phi 是一個 WFF,又或者,
  • 形如\vee\phi\psi 的公式,即由二元連線詞連線的兩個 WFF。
  • 為了方便,我們在書寫中綴運算式的時候可能會省略某些括弧,比如說一個公式的最外層括弧,或者,在明確優先級的情況下,省略某些不改變語意的括弧。但是此時這串字元就不再是一個 WFF,而僅僅是一個元語言中為了方便起見而采用的字串。你可以理解為「三亞海天盛宴.avi.rar」不等於「三亞海天盛宴.avi」,因為前者不是一個可播放檔,雖然透過它你可以準確地得到你想要的東西。


    說到這個,我們會發現, 自然語言幾乎沒有所謂的 WFF ,很多時候我們可以理解一個殘缺不全的,或者順序混亂的句子,因為我們不是透過 syntax 來理解句子,而是透過 semantics 來理解句子。當然,概念的澄清還是必要的,概念之間的結構雖然不會以句法的形式強行規定出來,但是還是存在某種特定的結構。

    此外,正如下面指出的那樣,形式語言的意義是確定的。當然,邏輯本身的意義就是可以廣泛代入各種別的東西,然後構成一個個具體的論證。但是另一方面,邏輯常項的解釋是確定的。比如說在日常語言中,蘊含可能是指相幹蘊含。這樣,反事實條件句才有可能是錯的,如「如果太陽從西邊升起,那麽它就從東邊升起」本身是一個反事實條件句,而在日常意義下這句話也應該是錯的(但是作為一個前提為假的條件命題來說是對的)。日常語境中,不同意義的「或者」以及「推出」/「蘊含」是被混用的。從這個意義上來說,形式語言的語意確定性也是精確性的基礎。


    之後,我們有兩套模式來分別進行處理這些公式,來看它們到底是不是「好」的公式,或者,看一個推理(即,從一個公式集出發,得到一個公式的過程)是不是「好」的推理。這兩套方式中,一套是內功,一套是外功。

    所謂內功,就是 語意 的方式,語意將 體現為一種對於符號來說內在的東西,即,透過規定一元和二元 邏輯連線詞 \neg 和\vee 的 運算規則 ,來得出每個公式的真值條件,進而讓我們知道什麽推理是 語意有效 的(無論出現的命題變元如何賦值,只要所有前提集合中的 WFF 都為真,那麽結論也為真),一個命題集合的 語意後承 是什麽。由於真值只有兩個,所以一元算子的真值表可以透過一個兩行的表格給出,而二元算子的真值表可以透過一個四行的表給出。(事實上命題邏輯裏面采用的是一個更為嚴謹的表述方式,但是這種表述方式本身涉及到了元語言中的「和」「或」「推出」「若且唯若」等邏輯詞匯[3])

    另一方面,我們有一套外功,之所以說是外功,是因為這裏我們並不在乎符號的意義,而透過外部強加規則的方式,來限定符號的意義,也就是采用一個 證明系統 ,比如說希爾伯特的證明系統(它包含了三條公理模式和一個推理規則,或者說三條公理和兩個推理規則)[1]。透過這些 公理 規則 ,我們可以進行 定理證明 句法推理 。進而,我們可以知道,在系統內,哪些命題是可證明的,哪些推理是句法有效的,一個命題集合的句法後承是什麽。

    幸運的是,對於命題邏輯來說,一般的(也即正常的那些)命題演算系統[2]中,透過證明系統和透過語意定義得到的結果是相同的,即:凡是有效的語意推理都是有效的句法推理(強完全性),反之亦然,凡是有效的句法推理都是有效的語意推理(強可靠性)。而定理和真命題就分別可以視作從空集分別以證明系統和語意的方式推出來的那些命題,於是就有:凡是真的都是可證的(弱完全性),以及,凡是可證的都是真的(弱可靠性)。

    當然,命題演算系統對於日常語言來說是表達力不足的,比如說,我們無法透過這個系統解釋三段論的有效性。因為任何一個三段論都是「p, q 推出 r」式的。而這顯然不是一個有效的命題演算。

    所以人們 修改 了命題邏輯,在保留邏輯常元符號(一元和二元連線詞,匯出符號\top 和\bot )的基礎上(當然,匯出符號的定義也修改了,比如在有等詞算子「=」的一階邏輯中,兩個符號分別被定義為「a=a」及其否定),將命題進一步分解,每個原子命題都是一個作用在 n 個詞項上的 n 關系,而每個詞項要麽就是一個原子詞項,要麽就是 m 個原子詞項在一個 m 元函數作用下得到的一個新的原子詞項(比如說個體的人作為原子詞項,那麽 f(a,b)=c 就可能被解釋為:「c 是 a 和 b 的長子」,其中「=」 是一個二元關系)。然後有了更為復雜的一階系統。但是由於談論這個系統實在是太麻煩了,要設計到基礎的模型論,所以暫且略過不談。

    當然,一階邏輯的表達力也是不夠的,雖然這個東西已經足以讓我們去處理一些哲學問題,比如說:關於上帝存在的本體論論證。

    Frege 將上體的本體論論證的結論視作一種非法的公式,他認為,「上帝存在」是一個非法的句子,我們可以說「禿頭男人存在」,這樣就是說\exists x(Bold(x)\wedge Male(x)\wedge Man(x)) ,此時,存在這種性質是作用於內容(這裏是三個內容的合取)上的二階性質。此處 x 作為約束變元僅僅是一個占位符。但是,上帝不是內容,而是一個個體,所以「上帝存在」這句話是非法的。因為它沒有辦法表示為一個一階邏輯的命題。(當然,這裏本身也涉及一些關於專名的復雜性的問題,暫且不理)即便一階邏輯看上去很有用(比如說羅素的摹狀詞理論整個就是搭建在一階邏輯上),但是這個系統甚至沒有辦法幫我們表達某些簡單的數學定理,比如大家都知道的 確界存在定理 :有上界實數集均有實數上確界,這個定理必須用二階邏輯進行表述(註意開頭的全稱量化是針對所有實數集合 S):\forall S(\exists m(\forall x\in S( x<m))\rightarrow \exists y(\forall x\in S (x\leq y)\wedge\forall z( \forall x \in S(z\geq x)\rightarrow (z\geq y))))

    所以,人們 擴充 (而不是修改)了一階邏輯,讓它能夠對 性質 進行量化,進而有了高階邏輯(如二階邏輯),又有人為了表達模態詞「可能」、「必然」而創造了模態邏輯。但是,這時哥德爾告訴我們,凡是一個能夠表達自然數系統的一階邏輯的擴充,都是不完全的,即,存在不可證明的真命題。

    總的來說,對於一個邏輯系統,表達能力和 優良的性質 (如可判定性、計算復雜性、強/弱完全性、緊致性)之間是一對矛盾: 表達能力越強的系統,優良性質就越少 ,而且,進行判定的復雜度就越高。後面這一點可以從命題邏輯和一階邏輯之間的差別體現出來:命題邏輯中的判定是可停機的,而一階邏輯中不存在一個有效的判定方法,即,如果一個公式是正確的,那麽系統最終能夠證明這個公式,但是如果這個公式是錯誤的,或者不是系統中的一個定理,那麽系統就不會停機。

    而像是那些不具有完全性的系統,則直接沒有可能透過證明系統中的機械的句法的演算來進行語意有效性的判定。

    顯然,人類的自然語言是無窮階的,因為我們可以采用任意的量化來進行討論。當然,有人會問,既然如此,我們為什麽不去限定自己的語言呢?就像是 Frege 做的事情那樣:透過一階邏輯或者某些一階邏輯的優良拓展(如一階模態邏輯)來限定我們的語言。

    這個理想自然是很好的,事實上分析哲學也基本上就是起源於這樣一種思想: 將能夠說清楚的都說清楚 對不能說清楚的保持沈默

    但是,哲學和形式系統之間有一個本質上的區別:形式系統是一種 工具 ,其合法性是 外在的 ,我們會透過別的手段(如邏輯哲學)來為之進行證明或者辯護。但是哲學不同,哲學負責解決那些需要澄清的問題。比如說「科學是什麽」不是一個科學問題而是一個哲學問題,「『美』是什麽」也是一個哲學問題,「『善』是什麽」不是一個規範倫理學問題,而是一個元倫理學問題,最後,「哲學本身是什麽」也是一個哲學問題。這也就使得哲學的研究物件、研究手段等問題都需要哲學自身來回答。

    在形式系統中,我們可以有很多系統外的理由來為使用這樣一個形式系統來進行辯護,但是如果我們希望哲學本身也限定在某些內容或者某些研究近路上,那我們就必須為哲學的這種選擇提供一個系統內的辯護,而這種辯護本身必然不能使用形式化的方法,因為你恰好就是要為形式化的合法性來進行辯護。

    以上是第一個問題。

    將第一個問題放大,其實可以得到一種對於理性的質疑,以及,對於「理性基礎」這一概念的質疑:理性既然是以工具的形式呈現在我們面前的,是否可能存在一個所謂的理性基礎?比如,你應該如何給出一個演繹有效的論證,證明自己應該活著,或者,證明殺人是不對的?我們最後可能會訴諸情感,但是即便如此,我們依然不能為這個行為本身提供一個辯護,而如果我們訴諸本能的話,那麽事實上我們就是在逃避使用理性的方式。當然,我個人是反對理性基礎的概念的,所以我會毫不猶豫地承認,存在一些理性沒有辦法解決的問題,關於問題背後的依據,完全是非理性的個人喜好。


    第二個問題,是 形式化的困難性 。或許這才是真正的困難。對於數學,我們在形式化的過程中是沒有異議的,當然,這種異議也並不是絕對沒有,比如說畢達哥拉斯不認為無理數應該被囊括入論域中,進而否定無理數的存在。也有很長一段時間,人們否認虛數單位i 的存在。非歐幾何的發展的困難也說明了這樣的問題。類似的,還有對於無窮大的概念(實無窮)等等。Quine 在 On What There Is 中的觀點是非常正確的:如果一個人認為某個東西在本體論上是存在的,那麽這種想法對於這個人來說必定是 trivial 的。

    我們可以透過 Quine 給出的本體論承諾的標準判斷一個系統是否承諾了某個實體(認為某個實體存在),只需要看這個實體是否能夠 作為 一個(一階)量化運算式中 約束變元的值 存在於 值域 中就行了。比如說在實數體中,無理數存在,但是在有理數體中就不是這樣,因此我們可以說,實數的本體論承諾了無理數,而有理數的本體論沒有,更具體一點,我們可以將前面的「無理數」替換為「\sqrt{2} 」或者「\pi 」。但是,對於論域本身的問題,沒有辦法透過形式系統解決。因為論域的確定是 先於 形式系統的。與本體論相關的哲學問題往往在形式系統構建之前就提出來了。

    形式化的困難性同時也體現在個人經驗的私有性上。相信現代醫學肯定會出現這樣的情況:儀器檢測出來的數據顯示完全沒有問題,但是患者卻自己覺得有問題。這種私有感覺使得對應的語言是不可能的。你指向的東西對於別人來說可能不存在,就像一個女人對男人說痛經,男人對女人說蛋疼那樣,實際上是沒有可能交流的。

    作為普通的經驗交流,我們似乎還能忍受這種無法指稱的問題,因為感覺經驗似乎和哲學關系不大,但是當我們涉及神聖的存在,比如說上帝的時候,這就變成討論的困難之處了:基督徒並不試圖 證明 上帝存在,他們只是在 描述 上帝是如何存在的,而非基督徒們把這個當成了證明,這直接導致了交流無法進行。這也是前面的論域困難性的一個例證。


    除了確定論域的困難, 轉譯的困難 也是阻礙哲學形式化的一個嚴重問題。

    知識 為例,最經典的 JTB 定義中,知道算子K_\alpha\phi 被定義為下面三個條件的合取:

  • \phi (知道的命題是真的)
  • B_\alpha\phi (一個人知道的命題是他所相信的)
  • J_\alpha (B_\alpha\phi) (His belief is justified)
  • 第一個條件是正常的,第二個條件就已經會引發一些問題了。比如說,信念算子是否是對於邏輯後承封閉的?一個人相信一族命題,是否就會相信這個命題集合的所有邏輯後承?

    但是關鍵還是在於第三個條件中的 J 算子,這裏 J 的意思是,\alpha 相信\phi 的行為是 受到辯護的 (justified),但是這個算子暫時還 沒有一個公認的形式化方案 (一階邏輯中給出單純的一個詞是不夠的,你還要給出對應的模型)[4]。因為對於辯護的弱的要求會使得一些碰巧猜中或者經過錯誤的推理得到的信念也被囊括入知識中,而對於辯護的過於強的要求則會導致不可知論。

    而在 Nozick 關於知識的定義中,他將第三個條件覆寫為一個模態語句:

    \Box (\phi\rightarrow B_\alpha\phi )\wedge\Box(B_\alpha\phi\rightarrow\phi)

    即,在我們這個可能世界 可以通達的所有可能世 界中,如果事件\phi 發生了,我就會相信它,如果事件\phi 沒有發生,那我就不會相信它(根據逆否命題得到上面的第二個分支)。

    但是並不是采用了模態公式就能解決問題,因為在確定模態公式之後,我們還需要確定 可能世界的結構 ,顯然,我們這裏「所有可以通達的可能世界」並不是指所有的可能世界,而應該是那些和我們這個可能世界相差不大的可能世界。但是這個「相差不大」本身就是一個難以形式化的詞匯,而如果我們考慮的是所有可能世界的話,那麽就會得到比休謨命題更為強的一個結論:我們不可能擁有任何關於經驗的知識(特稱的知識都不行,因為一個事件發生之後,總存在一個可能世界,使得在這個可能世界中「\phi 發生了」為真而「我相信\phi 發生了」為假。)


    倫理學中也會遇到形式化之後產生的困難。比如,道義邏輯中,一方面,我們會發現很多時候命題演算中正確的推理模式沒有辦法套用,比如說,在標準的道義邏輯系統裏面,會有如下經典悖論:

    首先,Op\rightarrow O(p\vee q) 是一個系統內可證明的公式,其中 O 表示應該算子,p、q 是命題。

    於是得到悖論:如果你應該寄出這封封信,那麽你應該寄出這封信或者燒了它。

    類似的,對於允許算子也有這樣的可證公式,於是我們有:

    如果你可以喝水,那麽你就可以喝水或者喝酒。

    當然,透過技術手段可以避免這些悖論,但是很容易看出來,日常語言和形式語言中的「且」和「或」是不盡相同的。因此,我們不能直接形式化。而要在形式化的過程中仔細考量形式化本身是否正確反應了語言,以及,得到的形式語言的結論要如何才能正確的變為元語言中的語句。而這個過程是不可能由形式化的方式來進行的。哲學比起數學,在某些層面上更像是套用數學:關鍵不在於技巧性的、機械性的地方,而在於建模的過程是否和事實一致。

    關於倫理學的另一個困難就是,道義邏輯本身的假設就是已經假設了善的存在。它一開始的設定了一個 d,用以表示所有的道德義務,然後將Op 定義為\Box (d\rightarrow p) ,即,在每個可能世界中,p 都能從 d 中推出,換而言之,p 在任何情況下都是一個道德義務。但是問題在於,這裏的 d 本身是什麽是沒有辦法透過邏輯系統給出來的,這種元倫理學問題和前面的本體論問題一樣,是要先於形式系統確定的。

    和倫理學類似,涉及審美判斷的美學也有這樣的問題,我們自然可以在有了「美」的概念的基礎上建立一個形式系統,但是美學要問的就是:美是什麽?

    而政治哲學就更不用說了,關於自由、平等、正義這些概念,形式化僅僅是方便大家理解,而沒有辦法為形式化本身的合法性作出辯護。


    據此,我們可以看到,哲學的幾個重要分支都的根基都沒有辦法踏入形式化的領域內,而這些根本的問題也恰恰就是哲學最為關心的問題。不過正是因為如此,哲學才是有趣的。正如同 XXX 的吐槽那樣:代數學家是把靈魂出賣給惡魔的人,依靠直觀的幾何才是更為有趣的東西。


    [1] Hilbert 的公理系統可以寫為如下兩種模式之一:

    第一種:三個公理模式加一個規則:

    (\mathcal{A}\rightarrow(\mathcal{B}\rightarrow\mathcal{A}))

    ((\mathcal{A}\rightarrow(\mathcal{B}\rightarrow \mathcal{C}))\rightarrow((\mathcal{A}\rightarrow \mathcal{B})\rightarrow(\mathcal{A}\rightarrow\mathcal{C})))

    (((\neg\mathcal{A})\rightarrow(\neg\mathcal{B}))\rightarrow(\mathcal{B}\rightarrow\mathcal{A}))

    為什麽說是公理模式呢?因為這裏的\mathcal{A} 、\mathcal{B} 、\mathcal{C} 都是元語言中用來代表合式公式的符號。換而言之,這個系統中有無窮多條公理。

    至於推理規則,就只有一個 MP 規則:\phi,\phi\rightarrow\psi\vdash\psi ,中間的\vdash 表示證明系統中的推出,並且,這裏的\phi 和\psi 也都是元語言中代表合式公式的符號。

    第二種:三條公理加兩個規則:將上面的 A、B、C 換成原子命題,然後外加一條代入規則。

    當然,Hilbert 的系統裏面是沒有剩下的三個二元連線詞的,因為不必要。

    [2] 所謂正常自然是和不正常相對應的,比如說,如果一個公理系統中包含了 MP 規則,同時還包含了一個自相矛盾的公理,那麽任何一個命題都是這個系統的定理。這樣的系統也是一個系統,但是顯然是不好的,因為這個系統是不一致的。類似的,如果一個公理系統沒有辦法推出某些真命題的話,那麽這個公理系統也是不夠好的。所以事實上這裏所說的是一句廢話,因為一個足夠好的公理系統就必然能夠完整地,並且毫不多余地刻畫語意推理。進而,不完全性定理就可以理解為,在給定了語意的情況下,不存在一個足夠好的系統。

    [3] 事實上, 即便是簡單的命題邏輯,在處理這些東西的時候也比想象中的要復雜。

    首先要定義的是一個賦值,一個賦值是一個函數 V,定義域是原子命題的集合,值域是\{\top ,\bot\} 。

    進而,透過賦值定義模型,由於命題邏輯不是一階邏輯,所以一個模型\mathfrak{J} 就僅僅包含了賦值函數。

    進而我們有如下的關於語意後承\models 的遞迴定義:

  • \mathfrak{J}\models p 若且唯若V(p)=\top
  • \mathfrak{J}\models\neg\phi 若且唯若並非\mathfrak{J}\models\phi (由於這裏的邏輯是二值的,並且賦值函數在所有出現過的原子命題的集合上是有定義的,所以, \phi 以及 \neg\phi 兩者必有一個成立)
  • \mathfrak{J}\models\phi\vee\psi 若且唯若\mathfrak{J}\models\phi 或者 \mathfrak{J}\models\psi
  • 我們將這個模型的語意後承\phi 稱為在這個模型上可滿足的。進而,將那些在任何模型(即是任何賦值)下都可以滿足的公式稱為有效的(永真的)。註意,這裏的「若且唯若」、「並非」以及「或者」,都是元語言中的符號。

    可以註意到,這個定義是一個遞迴定義。

    [4] 比如說,下面兩句話具有相同的結構,但是真值卻不同:

  • 牛不是馬,所以牛頭不是馬頭。
  • 牛不是馬,所以牛的祖先不是馬的祖先。
  • 這裏本質的問題在於,「X 的頭」和「X 的祖先」這兩個函數(不是性質,而是函數,因為「X」 的頭是一個物件)具有不同的結構,對於一般物體來說「X 的頭」和「X」是一一對應的,所以推理成立,而對於祖先來說,不同的個體可能共有一個祖先,進而破壞了推理。所以,前面的推理的有效性實際上是建立在函數「X 的頭」的特定模型上的。所以,無論是模態邏輯還是一階邏輯,給出最為基本的符號還是不夠的,同時還有給出一個討論的模型。或者, 在不確定某個具體模型的情況下,給出滿足某個性質的一族模型所構成的框架類(這個是針對模態邏輯)。