【 數理邏輯 二 】邏輯概述、現代邏輯學發展歷程和形式系統與形式語言

邏輯概述、現代邏輯學發展歷程和形式系統與形式語言

一、邏輯概述

  • 邏輯必知三件事:
  1. 論證(argument)
  2. 有效論證(valid argument)
  3. 論證模式(argument schema)

 

  • 什麼是邏輯 ?

Logic,as the science of reansoning,即邏輯,作爲“推理(reasoning)”的學問。那什麼是推理 ?這裏爲了避免成爲概念的堆疊與迭代定義。我們先來搞清楚推理有什麼用途? 【推理】的一個重要應用是在“辯論學(argumentation)”上。辯論學在西方是一門非常實用的學問,主要用於爭辯(debate)、交涉(negotiation)和勸說(persuade)(令別人相信某一觀點是正確的或錯誤的)。辯論學是律師的必修課和基本素養,常用在法庭的各種聽證會上。“辯論學”的基礎理論就是邏輯推理,而推理所用的工具就是論證和論證模式。邏輯學的任務就是搞清楚到底是什麼因素使得一個論證有效,換句話說,如何使得所作出的推理是正確的。既然推理的工具就是論證,那我們首先要搞清的概念就是:【論證】。

我們通常說,“這個人不講道理”,“跟他理論理論”。這其實指的就是論證(argument)。“論證”就是“講道理”的學術說法。其英語表達是 argument,同樣也有講道理和辯論的意思。argument是argue的名詞形。而argue的意思即是提出論點講道理、也有辯論、爭辯的意思。例如英美人常說 Don't argue with me.(不要和我爭論)意思是我不想和你打架(當對方說着說着臉紅脖子粗的時候)或者:這事沒有再議論下去的必要。

 

  • 什麼是論證?

所以論證,我們可以簡單地理解爲“講道理”,或者是你講的那些道理本身。換句話說,論證即可以看做是講道理的過程,也可以看做是所講“道理”的物化形式——你說出或寫出的一系列句子。這樣,我們就可以把所有論證——講道理物質化爲一組有着特殊結構的句子。通常,我們用文章、段落等形容句子的集合體,現在,我們又加了一個新詞表示句子的集合體:論證;一個論證就是由若干個句子組成的一段話。但是和一般的文章、段落等散列性結構不同,一個論證有着明確的成分結構:即任何一個論證都由n個句子順序構成(n>2),第1到第n-1個句子稱作【前提】(premise),第n個句子稱作【結論】(conclusion)。

通過上述的定義,我們將講道理的過程和結果用一個更準確的術語表達出來——論證,並給它一個非常嚴格的形式化定義。這個定義,就像我們小學中學學習算術和代數一樣,小學時我們學習具體的算術運算,掌握的是具體的運算技能,而中學,學習各種公式,掌握的是各種運算規律。算術也好代數也好,它們都有明確統一的格式:
運算子(各種數字或代表數字的字母)運算符(加減乘除符號)運算子 = 結果(各種數字或表示數字的字母)。而論證——則是對“講道理”這件事的“形式化”。所謂“形式化”,就是對某個過程給出嚴格的格式,而不考慮這個過程所包含的意義。因此,論證,完全可以向中小學的算術、代數一樣,給出一個固定格式的描述,這就是邏輯學所要研究的內容。邏輯形式化之後,我們就可以像代數一樣對其進行研究,也可稱爲邏輯代數

論證的實質和算術式差不多,先要寫出所有作爲“前提”的句子,再畫一條橫線,下面寫出作爲結論的句子。

所有人都有兩隻眼睛的
蘇格拉底是人
-----------------
蘇格拉底有兩隻眼睛

論證和算術式相比,既有相似的地方也有不同的地方:

  • 相同的地方是:
    • 從形式上看,進行計算、推理的成分和結果、結論都明顯隔開,算術用等號,論證用橫隔線。
    • 從內容上看,計算、推理都遵循各自的“規則”:算術要依照加減乘除的規則,論證要依照命題的真值組合規則,最後都得到確定的結果。
  • 不同的地方是:形式上,算術有明確的運算符號,而用自然語言記述的論證通常沒有明顯的符號,有時,我們會看到像“若...則”之類的類似算術運算符號的表達。從意義上看,算術的計算規則是我們在小學時代經過正規訓練掌握的,而論證,我們通常沒有正規的訓練,通常是通過日常生活自然掌握的。

對比算術與邏輯,算術我們可以精確地算出來,而論證我們無法“算”,只能憑直覺“覺得”這個論證“對不對”。所以,邏輯學就是從理論上教你爲什麼從上面兩個前提就可以得到“蘇格拉底有兩隻眼睛”的結論,幫助判斷論證到底對不對,即論證是否有效。

 

  • 什麼是有效論證 ?

有效論證”,若拿算術式做例子的話就是:等號兩邊的“值”相等。論證也一樣,前提和結論的“值”亦必須“相等”。如果是這樣,那論證中兩邊的“值”是什麼?

在理解前提和結論的“值”之前,先要引入命題的概念。命題是指語法上的陳述句(declarative sentence)所代表的“意思” 或 “語義”(meaning)或者說是一個句子的【命題語義】。這裏的“語義”是指:一個句子內容是否“正確地”描述了一個給定狀況,當然這裏所謂的“給定狀況”未必是客觀現實,什麼都可以,只要句子內容和這個狀況相符。例如,“母豬上樹”,描述一種狀況,如果狀況是客觀現實,那麼這個句子並沒有“正確地”描述,如果“給定的狀況”出現在某部文學作品中確實是“母豬上樹”,那麼這句話則“正確地”描述的該狀況。

因此,邏輯會給每一個句子分配給一個【真值】(truth value)來區分這個句子是否與給定狀況相符,稱作這個句子的命題義。因爲【命題語義】的值域是 {真,假} ,也就是說,任何一個肯定陳述句都有一個值(value),這個值是值域 {真,假} 當中的任一且唯一的元素。 如果句子正確描述了給定狀況,則稱爲:【真】,否則稱爲:【假】,通常用符號T(true)和F(false)表示。這個【真值】和現實生活中所謂的“真善美”無關,與現實參照無關。之所以不把命題和真值和現實世界關聯起來從科學的角度講是一種“抽象”。從現實角度講是能更“形式化”地討論問題而不受命題所關聯的現實世界中個體認知差異的影響。不同的給定狀況或前提,則命題的真值可能不同。

因此,對論證,論證的有效性,命題、真值都是形式上的定義,這使得邏輯更像數學:當我說3+4=7的時候,沒有人跟我爭論3和4究竟代表了什麼概念,是3只羊還是4枝鉛筆,只有當我說3+4=8的時候纔會有人出來跟我理論。在深入探討其論證有效性之前,需要再引進幾個概念:

  1. 命題:一個肯定陳述句所表達的“語義”(meaning)或者【命題語義】。
  2. 肯定陳述句:命題的語言表達形式,包括句法結構和詞彙。簡稱爲“句子”。
  3. 表達式(expression):是句子中的任何一個部分,可以是整個句子,也可是句子的某一成分,主語、謂語、名詞、動詞,甚至是句子中任一字串。即表示句子中的任何單詞或詞組(即:按照語法分類自然形成的單詞串);
  4. 句塊(construction)表示跨單詞、跨詞組的單詞串,如 take care of,it will be the case that...

接下來先看一個例子:

所謂的“排除法”:先設定一個選擇空間{a,b},然後逐一排除,最後確定選擇空間中的特定元素。

例1:
前提1:張三是犯罪嫌疑人或李四是犯罪嫌疑人
前提2:張三不是犯罪嫌疑人
---------------------------------------
結論:李四是犯罪嫌疑人。

現在把問題細化,加入排除張三不是犯罪嫌疑人的理由
(d)如果張三當時沒有在犯罪現場,那張三不是犯罪嫌疑人
(e)張三當時沒有在犯罪現場
(b)張三不是犯罪嫌疑人

所以這個論證應當是:
前提1:張三是犯罪嫌疑人或李四是犯罪嫌疑人
(子論證)
------前提1.1:如果張三當時沒有在犯罪現場,那張三不是犯罪嫌疑人
------前提1.2:張三當時沒有在犯罪現場
------------------------------------------------------
前提2:結論:張三不是犯罪嫌疑人
------------------------------------------------------
結論:李四是犯罪嫌疑人。

從論證的有效性上看,前提1是否爲真 ?只要前提1中任何一個子句爲真,前提1就是真的,即它是否爲真取決於構成它的子句的真實性。前提1的前後子句其中至少必有一真。此外我們不能判斷前提 2 的真假。但如果前提1是真的,那【結論】就必然是真的。

例2:
前提1:a-2 > 0 或 a-2<0
前提2:a = 3
-------------------------------
結論:a-2 > 0

其中例2與例1完全是一個“模式”。抽取出這些論證的具體內容,我們會得到一個論證模式:
例3:
(a)P 或 Q
(b)非P
--------------------
(c)Q

綜上所有例子,可以看出:所謂有效(valid),並不是指個別句子的真實性,而是與下面描述的事實相符:

1. 前提1是一個選言判斷,亦即,兩個由“或”連接的子句
2. 前提2是前提1前一子句的否定
3. 結論是前提1的後一子句

凡是符合這個結構的論證必然是“有效的”。決定這個論證有效的因素有兩個:
1. 【或】的語義和【非】的語義
2. 句子的排列順序
和這個論證有效性無關的是P、Q個別句子的命題語義。當然,除了上面列舉的選言判斷的論證 schema之外,還有有許多類型的論證 schema,但這些並不是目前討論的重點,重點是理解什麼是valid 論證。

這樣,我們對valid 論證的研究,就轉化爲對一組特定表達式如【或】、【與】、【非】【如果】的語義和論證 schema結構的研究,換句話說就是對論證 schema的語法和語義的研究。

【或】、 【與】、【非】【如果】可以作爲一個詞類:連接詞。除了連接詞外,還有一類稱作【量詞】。在日常生活中,一個人、三隻羊、四支鉛筆等表示的是一類量詞,這 類量詞稱作【定量詞】;邏輯研究的是另外一類量詞,「有」、「所有」,稱作【存在量詞】和【全稱量詞】;而【否定】構成了一階語言的第三類詞類。

【連接詞】、【否定詞】 和【量詞】合在一起,構成了是一階邏輯研究的核心內容,它們是構成論證的“骨架”型元素;正是這三類詞的語義決定了一個論證是否有效。包含【連接詞】、【否定詞】邏輯式的句法和語義,構成了命題邏輯的主要內容,而包含【全稱量詞】和【存在量詞】邏輯式的語法和語義則是一階謂詞邏輯的主題。

總結:使論證成爲一個有效論證,有兩個決定性因素:
1. 論證內各個句子的排列方式:這構成了一階語言(first-order language)的句法研究
2. 論證中【連接詞】和【量詞】的語義:這構成了一階語言(first-order language)的語義研究

 

  • 什麼是論證模式 ?

簡單說論證模式就是論證的代數化。小學時我們會從千千萬萬的5*4=20、12*2.5=30等具體運算中得出A=ab這樣一個公式,這個公式就是模式。而論證實際上就是相當於5*4=20這樣的具體表達式,抽象化後成爲一個公式,例如:
A or B
Not A
-------
B
就是一個論證的公式,在這裏,我們稱作【論證模式】(argument schema)。

 

  • 【論證】和【推理】之間的關係 ?

推理可以看作是人類大腦的基本功能之一,人們根據已知的事實、經驗獲得新的事實。對【推理】進行研究,就是邏輯學,但是邏輯學對【推理】中所包含的具體事實不感興趣,而只對推理的形式,或者說推理的一般格式感興趣。通過對推理形式的研究,得到如何從給定的事實、經驗正確得到新事實的規律。所以,【推理】這個人類的精神活動,若剝掉其內容,所剩下的“骨架”就叫做【論證】,我們把【論證】和【推理】的關係看做一個簡單的算術關係:
推理 = 論證 + 推理的內容   或者   論證 = 推理 - 推理的內容

而對論證進行研究,主要是研究論證模式,論證的形式化框架,而不是某個具體的論證。

綜上所述:

1. 論證(argument):是句子的集合體(collection),其中最後一個句子叫做“結論”,第一行到倒數第二行叫做”前提“。論證,就像算術中的的具體算式,例如22+53=73,每個句子都有具體的含義。

2. 有效論證(valid argument):論證的有效性由兩個因素確定:
(1)論證的句法結構;
(2)命題真值;

有效論證,從算術的角度看,就像是“做對”了的算術題,我們研究的是如何做對算術題。在論證中,研究的是如從【前提】獲得“正確”的結論。即推理規則以及如何演繹推理。

3. 論證模式 (argument schema):是論證的一般性公式,它抽離了具體命題內容,只留下了命題真值和句法結構。論證模式和論證,就像算術和代數,前者進行具體的計算,後者研究運算規律。論證是展示“講道理”的具體案例,論證模式展示“講道理”的一般規律。

 

  • 邏輯與語義的關係

從對論證有效性的討論中我們看到,命題中一些特定的表達式如【連接詞】和【量詞】對確定整個論證的有效性有着決定性的作用。因此,邏輯學的研究對象,其實就是對論證模式的有效性問題。使得一個論證模式有效,第一是論證模式的結構,第二是那些特定表達式【連接詞】和【量詞】的語義。

我們知道論證是句子構成。而句子,可分爲單句和複句。單句是指只含單一命題的句子,複句由多個單句構成。單句內部,可包含(全稱、存在)量詞。單句之間可用連接詞構成複句。每一個單句都含有特定的【命題語義】,這個【命題語義】的值域是 {真,假} 。至於某一單句的“實際”真值,是無法確定的。例如:

(1)天上有太陽。
從人們的常識性感知(perception)來講,這句話只有在白天才是“真的”,而對天文學家來講,如果“天上”是指地外空間那永遠是“真的”。
(2)我昨天參加了小王20歲的生日宴會。
如果你真的是說這話的前一天“參加了小王的生日宴會”那這句話是“真的”但第二天便不是“真的”了。你只能說“我前天…”。當然,從今以後這句話永遠是“假的”了。

有沒有永遠爲真或永遠爲假的句子呢?當然有!俗稱永真式。例如
(3)2是唯一一個偶素數
(4)2不是素數
(5)(a + b)² = a² + 2ab + b²
(6)所有的正整數都大於0

但在討論語義時,這些並不是我們目前關注的重點,重點是單句的【命題語義】在一階邏輯中並不是完全可以確定的,而複句的【命題語義】則可以在一階邏輯中確定。而之所以是這樣是因爲一階邏輯可以把握【連接詞】、【否定】和【量詞】的語義。
那複句的【命題語義】是如何確定的呢?這個問題便是命題邏輯所要研究的重點。複句的【命題語義】的真值是由所包含子句真值和【連接詞】的語義決定的。

 

這裏關鍵的是我們對論證有效性的研究,歸結爲論證中各個句子語義之間某種特定關係的研究,亦即,【結論】和【前提】之間的依賴關係:我們將這種依賴關係稱之爲“邏輯歸結”(logical consequence)。邏輯歸結的意思就是,當論證的【前提】組合符合一定的結構,例如之前討論的“選言結構”那麼,該論證的【結論】的真值也就能確定,一個論證就是有效的,那麼以它作爲【結論】的句子的【命題語義】的真值必定爲真。綜上所述,可知邏輯實際上是在研究邏輯(論證的有效性)和語義(即前提中各個句子的【命題語義】和【結論】的【命題語義】)之間的依賴關係。

前面我們已經提到,句子是表達命題的語法手段,命題是句子要表達的內容(語義),二者之中前者爲表,後者爲裏。從句法的角度講,一個【連接詞】連接兩個單句,形成 P conj Q 這樣一個句型。推而廣之,這種將n個單句通過【連接詞】、【否定】和【量詞】等形成新的、更大的句子的過程,叫做“句法演算”(syntactic operation)。而一階邏輯的重要任務,就是對該“句法演算”所形成的表達式給出語義解釋(semantic interpretation)。當然,不管是“句法演算”還是“語義解釋”都是在論證模式而不是具體的論證的層次上完成的,就像我們討論算術性質,是在公式運算律這個層級而不是具體數的運算層級進行的。

這樣我們就可以看到,邏輯學實際上是對按照一定句法規則建立起來的“語言”(或者叫形式體系)給出相應的語義解釋談到“語義”,可以有各個層面上的語義。例如,任何“語言”都有其最基本元素,自然語言稱作單詞,編程語言稱作標示符(identifier)和關鍵詞(keyword),一階語言稱爲“詞項”(term),這些基本元素當然有自己特定的語義。由這些基本元素根據各自不同的句法規則形成更大的單位,例如單句,則形成相應的語義解釋,也就是我們現在已經熟悉了的【命題】。由單句經【否定】形成新的單句,經【連接詞】形成複句,則可根據這些特定表達式的語義,對整個新句子給出相應的語義解釋。關於【量詞】,則要涉及單句內部的結構,便是【謂詞邏輯】所要解決的。

在一個論證內,前提內所有的複句和單句的語義解釋一旦確定,則【結論】的語義(亦即命題真值)也將確定。
所以,命題邏輯並不關涉單句內部成分的語義解釋,謂詞邏輯只關涉與量詞相關的語義解釋。
 

在命題邏輯和謂詞邏輯的層級上,是如何進行語義解釋的呢?基本原則就是所謂“意義的組合性原則(the principle of the compositionally of meaning)”。意思非常簡單:句子的語義(命題真值)是由組成句子的各個部分的語義決定的。說的更技術性一點,句子的命題真值是該句子各個部分(composite)語義的函數。這個原則是由德國數學家、邏輯學家弗雷格(Frege)首次提出來的。

有了這個原則,邏輯就可以向着兩個方向擴展:第一,擴大基本詞彙;除了【連接詞】、【否定】和【量詞】之外,邏輯還可以對時態結構(temporal construction)、表達情態意義的模態表達式(必然、可能)進行研究。這些分別構成了時態邏輯和模態邏輯。另一個方向是研究非陳述句(nonindicative sentence)的語義分析。對於這一部分便不是一階邏輯(命題和謂詞邏輯)所涉及的了。


綜上所述:
1. 論證的有效性歸結【結論】的【命題語義】的真值爲真,此時,【結論】的【命題語義】真值依賴於【前提】各個句子的【命題語義】真值和論證的結構。
2. 邏輯學的主要任務就對形式系統(暫且理解爲某種人工語言)根據句法演算所得到的句法結構給出相應的語義解釋(semantic interpretation)
3. 語義這個概念可適用於形式系統的各個層次,一階邏輯所描述的語義只限於單句以上的單位以及單句內部和【量詞】相關的語義解釋,而不涉及一般性的單句語義和詞彙語義。
4. 邏輯學進行語義解釋的基本機制是弗雷格所提出的“意義組合性原則”,根據此原則,句子的語義是由組成這些句子的各部分的語義決定的。
5. 邏輯學根據“意義組合性原則”可向兩個方向擴展:擴充基本詞彙:【模態】和【時態】;擴展句子類型:【非陳述句】。

 

  • 五花八門的邏輯系統概述

此小節主要探討兩個問題:
1. 邏輯常項(logical constant)
2. 各種邏輯系統(logical systems)

先引入一個概念:結構有效性(structural validiy)。此前我們多次提到:決定一個論證有效性有兩個因素:
1. 句子在論證中的排列方式;
2. 連接詞、否定詞或量詞的語義;
所謂結構有效性,其實就是指1,論證中句子的排列方式;

現在進入正題:
除了命題邏輯、謂詞邏輯外,我們可能還聽說過帶着各種形容詞“帽子”的其它XX邏輯,如:模態邏輯、時態邏輯、責任邏輯、多值邏輯、高階邏輯等。爲什麼有這如此衆多的邏輯?它們都是些什麼東東?今天就想談談這個問題。

首先,所有XX邏輯,包括我們將要詳細討論的命題邏輯和謂詞邏輯,我們都稱之爲“邏輯系統” (logical system)。命題邏輯是一個邏輯系統,謂詞邏輯是另外一個邏輯系統;當然,模態邏輯又是另一個邏輯系統,以此類推。

第二,爲什麼會有這麼多邏輯系統?這就和這篇筆記的第一個主題相關:邏輯常項。邏輯常項是許多【普通邏輯】課程中經常提及的概念,熟悉【普通邏輯】的朋友可能已經知道我在講什麼了。但對於不知道什麼是邏輯常項的朋友,還得從頭講起。

一個邏輯系統,不管是什麼XX開頭,都不可能是萬能的,也就說不可能描述所有種類的論證的有效性,這和你如何定義邏輯學無關。教科書中都將邏輯定義爲:研究推理的科學、同時也是研究語義關係的科學 。但不管你如何定義邏輯學的內容,世界上沒有任何“放之四海而皆準”的邏輯學。每個邏輯系統只對所專研的的論證模式體系有效。例如命題邏輯只研究以單句爲原子成分的論證模式,而對單句內部結構視而不見;謂詞邏輯向前跨了一步,除了命題邏輯的內容外只對單句中含有全稱和存在量詞的的表達式感興趣。換句話說,每一個邏輯系統,都有自己特定的論證類型。例如含有【和】、【與】、【如果】、【當且僅當】、【不】的論證和含有【所有】、【一些】等表達式的論證是不同類的。

爲什麼要對論證分類?因爲決定它們有效性的因素是不一樣的:在命題邏輯中,決定論證有效的除了結構有效性外,第二便是【連接詞】和【否定詞】了。而謂詞邏輯在命題邏輯的基礎上又加上了【量詞】。這些”關鍵詞“的存在,將論證分成不同的種類。
命題邏輯研究這樣一類論證,它的有效性只依賴於表達式and, or, if (… then), if and only if,以及否定not的語義,其它影響論證有效性的其它表達式一律排除在外。
而謂詞邏輯的論證是含有all和some【量詞】的論證。

這樣看來每一個邏輯體系對論證模式的研究都有自己特定的範圍,其有效性的研究基於某些特定的表達式的語義。

這些特殊的表達式本質上決定了邏輯體系的研究範圍,所以是一個邏輯體系固有的成分,通常稱作“邏輯常項”(logical constants),邏輯常項的語義在所屬的邏輯體系中是完全固定的。邏輯常項在不同的領域有不同的術語。在編程語言中,稱作關鍵詞(keyword)。例如C語言。C語言的關鍵詞用於定義基本數據類型、描述選擇結構和循環結構以及控制程序語句的執行順序。HTML語言是另一個使用”邏輯常項“的語言,不過稱作”標籤(tag)“,例如<html>、<head>、<body>等。推而廣之,任何以形式系統,都會有類似的機制。算術中,+,-,*,/、= 都是有着嚴格語義解釋的”連接符“,其實也是一種”邏輯常項“。

正像+定義了加法運算、*定義了乘法運算一樣,在邏輯中,不同的”邏輯常項“定義了不同的邏輯系統。

這裏令人饒有興趣的問題是:在一個邏輯體系中,什麼樣的表達式可以作爲邏輯常項?

爲此我們再來重新審視一下論證模式的結構:首先一個論證有效並不是因爲其內容而是它的外在形態。因此如果一個表達式成爲邏輯常項則必須對論證模式的結構上有效性有影響。純粹的普通名詞根據這個基準被排除在外,而and, or, if (… then), if and only if和否定詞not,以及量詞all, some很明顯是對整個論證的結構有效性產生影響的表達式,而且這也是它們在語言中唯一起到的作用。它們的語義完全是由在論證扮演的角色來決定的,而且這些表達式沒有任何實質性意義。這樣,and, or, if (… then), if and only if, not被當做是命題邏輯的邏輯常項,而謂詞邏輯除了這些外再加上all, some。
        
在這兩個邏輯體系之外,還有一些其它的邏輯體系,每一個都有自己特定的邏輯常項。最熟知的當然是自然語言。自然語言中存在和一階邏輯的邏輯常項對應的表達式,連接詞,否定和量詞。其它邏輯體系都是在一階邏輯基礎上特別是通過對命題邏輯的擴展加上更多的邏輯常項。在這些體系中,這些邏輯常項已成爲最基礎的成分以至於沒有它們研究有效性的概念則成了無米之炊。

應當注意的是,這並不是新邏輯體系存在的唯一方式。另一種方式是對現有的邏輯常項給予新的解釋。用這種方法也可以造就另類的有效論證模式。

除了經典的命題邏輯之外,在直覺命題邏輯(intuitionistic)中,對同樣的邏輯常項的語義解釋是略微不同的。嚴格地說,一個邏輯體系的重要特徵就可以表述爲它的邏輯常項的集合和加之於這些常項的語義解釋。
        
除了我們提到的那些邏輯常項外,還有一類表示模態的表達式,如:可能、必然,它們構成了模態邏輯中的邏輯常項;而時間表達式,如“it was the case that…”,"it will be the case that…",sometimes, never以及動詞的時態成爲時態邏輯(tense logic)的邏輯常項。所有這些表達式和句塊,都對各自類型的論證有效性產生影響。
        
不過,和標準一階邏輯中的邏輯常項有一點不一樣的是,這些表達式和句塊都包含某種描述性的意義,因此這也是爲什麼這些邏輯體系從一開始將上述表達式和句塊作爲邏輯常項時就和傳統的哲學概念“必然性和時間”摻雜在一起。與此相同的是“認知邏輯”(epistemic),它的核心邏輯常項是“信念(belief)”和“知識/知道(knowledge)”;而責任邏輯(diontic)的核心概念是“許可(permission)”和“義務(obligation)”。
        
那麼到底有多少邏輯常項呢?可以說邏輯常項和一般詞彙一樣是開放的。只要你願意還可以給出更多的表達式和句塊作爲某些現存的邏輯體系的邏輯常項。

雖然理論上很難界定可以或不可以成爲邏輯常項詞彙表元素的邊界,但有點是確定的:如果一個表達式或句塊有着固定的指稱內容,而在這個邏輯體系內所有論證的有效性又依賴於它,那將是不可能的,因爲這樣的表達式或句塊的語義是指稱現實世界而不是決定論證的結構有效性,因而無法成爲描述論證結構的成分;用邏輯常項描述現實世界並不是邏輯學的任務。但從上面的例子中我們也看出一個表達式或句塊有無描述性內容無法清楚界定,因爲有些表達式的指稱內容是不確定的。和這個問題並行的還有一個語言學的問題:語言學中的語義學應當研究什麼問題而應當忽略什麼問題。傳統上,語言學理論只研究結構性語義而不研究指稱內容,但有一種漸進性的、從前者到後者的遷移。

 

  • 邏輯學在語言學上的應用

邏輯學在語言學中的應用。首先,當我們談到將邏輯學應用到語言學時,應當是指某個特定邏輯體系在語言學中的應用。第二,儘管前面談到了邏輯學與語義的關係,但不能指望邏輯學可以提供一個現成的完整的自然語言語義學理論。第三,雖然語言學有時能夠給邏輯學的發展帶來一些靈感,但一般來說,邏輯學中出現的問題和語言學的問題完全不同。

不過現在有一種觀點,這兩個學科有着某種本質上的聯繫,一部分是歷史的原因,一部分是體系上的差異所造成的。

我們的觀點是:邏輯學對語言學的影響是雙重的:第一、邏輯提供的體系可以嚴格精確地描述某些表達式,它們對推理過程極爲重要而且語言學的語義理論對此也不能忽略。邏輯學對這些表達式的精確描述可以刻畫各種不同句法範疇所包含的多種語義,同時提供了從部分語義到建立複合表達式整體語義的的方法。第二,邏輯提供的方法和概念對於分析傳統的推理邏輯從未研究過的表達式和句塊非常有幫助,而這些表達式和句塊必須要在語言學的語義理論中得到說明。

 

二、現代邏輯學發展歷程

 

  • 分歧終端機:現代邏輯學的起源

看過馮小剛的電影《非誠勿擾》嗎?葛優扮演的“誠實的”奸商秦奮將所謂的“高科技新產品”“分歧終端機”賣給了“老謀深算”的傻子商人範偉。秦奮的說辭是:天下之所以有如此多的爭執、紛爭、以至於戰爭,是因爲比賽不公平,有些人總能作弊,現在“分歧終端機的出現一舉解決了這個問題”。

看電影的人,一般只將這個故事當做笑料,沒有人認真過。據中文維基介紹,“電影中的‘分歧終端機’的概念源於馮小剛的好友彭浩翔。”

完全出人意料的是,幾百年前的萊布尼茨,大名鼎鼎的數學家、哲學家,現代邏輯的先驅,在構想他自己的邏輯體系時,其基本動機竟然和秦奮(葛優)一樣:讓機器替人解決爭端。

萊布尼茨的基本思路是這樣的:自然語言充滿了歧義、模糊、不確定和各種個人風格,無法準確地表達思想,因此,首先應當創立一個獨立的“通用語言”。這個語言嚴謹、準確,可以和我們的思想直接對應,不會產生歧義,不會是相同的意思對應不同的措辭;也不會是相同的措辭含有不同的意思。首先嚴格定義語言的基本符號,然後利用“組合的藝術”,使之產生不同的表達式,而這些表達式能直接表達思想。第二,使用這個通用語言將亞氏邏輯公式化,然後利用一個“演算推理器”(Calculus Ratiocinator)檢查使用這個語言的一系列推理的有效性。任何意見分歧,在這個樂觀的哲學家看來,只要藉助計算的手段都能解決。“那麼,一旦發生分歧,哲學家們再無必要爭論,他們只需手裏拿一支筆,坐在計算器旁邊,互相說:開始計算吧!(calculemus!)”。

萊布尼茨進一步認爲,所有的真理(通過邏輯推理得到的真理)包括表面上看是偶然的真理,都隱含着必然,因此原則上都可以通過計算方法(將邏輯推理機械化)得到。這個當時看來驚世駭俗的想法(看完《非誠勿擾》連現在的人有誰認爲不是呢?)沒想到成爲了現代邏輯產生髮展的最原始動力。

萊布尼茨本人並沒有身體力行去實踐這個構想,但他以後的200年,竟然有多人追隨這個瘋狂的想法,這裏有一個很長的名單:伯納德·波爾查諾(Bernard Bolzano)、喬治·布爾(George Boole)、查爾斯·桑德斯·皮爾斯(Charles Saunders Pierce),以及最著名的戈特洛布·弗雷格(Gottlob Frege)。

萊布尼茨關於“通用語言”的設想,在弗雷格那裏,以“謂詞邏輯”的形式得以實現。這個謂詞邏輯語言,比亞里士多德的三段論邏輯更爲強大,解決了包括多量詞在內的困擾數千年的許多邏輯問題。最令人印象深刻的是,在測試推理的邏輯有效性時這個語言確實做到了將問題歸結爲計算問題:“分歧終端機”部分地得到了實現。不過,令人掃興的是,同時得到證明的是,不存在任何機械性的方法能夠測試出任意推理式的有效性,故而謂詞邏輯被認爲是“不可判定的”(undecidable),因而也證明萊布尼茨的自動推理的方案是無法實現的。

萊布尼茨的瘋狂想法有兩個劃時代的意義:
1. 關於人工語言的構想:儘管“普遍語法”的先驅者構想過超越語言差異的理想語法,但是這個語法的形態、構造和用途卻沒有任何詳細闡述。萊布尼茨雖然沒有自己親自實踐這個構想,但明確提出了這種人工語言的基本原則:沒有歧義,嚴格對應思想的表徵:推理的範式。這個嚴格定義的人工語言可以用來計算,亦即現在數理邏輯中的演算體系;從此以後,創建人工語言成爲描述任何形式體系的必要步驟
2. 邏輯本身可以形式化。在萊布尼茨之前,除了數學之外,沒有人想到過和語言、哲學這些形而上的學科密切相關的邏輯學也可以公式化、形式化。這個思想本身就是個創舉!而萊布尼茨提出的形式化的結果、所謂的“演算推理器“,其實就是現代數理邏輯中模型論和證明論的最初靈感。

再次引用萊布尼茨上面的語錄:只要藉助計算的手段都能解決。“那麼,一旦發生分歧,哲學家們再無必要爭論,他們只需手裏拿一支筆,坐在計算器旁邊,互相說:開始計算吧!(calculemus!)”
在”讓我們計算吧“發出200年後,真正基於數學的邏輯——數理邏輯誕生了,從此邏輯從純粹的思辨科學變成了”計算“的科學。

 

  • 現代邏輯的奠基人:弗雷格與謂詞邏輯

弗雷格創建的謂詞邏輯首先將亞里士多德的三段論邏輯與斯多亞學派的關於邏輯聯結詞的概念組合成一個整體,並同時解決了中世紀遺留下來的多量詞的問題。但是謂詞邏輯並沒有運用什麼高難度的技術手段,而只是藉助一些相當簡單的思路。

弗雷格首先採用了亞里士多德關於命題最基本的思想:主詞-謂詞形態:
(1)
a is P

這裏屬性P是關於實體a的表述(predicated)。

然後,弗雷格採用了以下的關係表達式表達更復雜的命題:
(2)
a R b (b和b具有關係R )

例如:
(3)
John loves Mary (a=John b=Mary: R=love) 二值關係

(4)
二小於三 (a=二 b=三:R=小於) 二值關係

除了二值關係外,還可以有三值關係、四值關係等。從哲學的觀點來看,這是一個創舉。自此關係成爲了邏輯中最重要的概念之一。

第二,弗雷格取消了亞氏邏輯中主詞在命題中曾經佔有的中心位置,取而代之的是結構成分(constituent)的概念,用來統一指稱實體。在關係中,可以有任意數量的不同結構成分,但沒有任何成分被允許佔據比其它成分更特殊的位置,從而取消了主詞原來在命題中的特殊地位。弗雷格本人給出的例子現今仍然給人啓迪:
(5)
The Greeks defeated the Persians at Plataea

這個句子的主詞似乎是關於the Greeks,但實際上,它的同義被動式
(6)
The Persians were defeated by the Greeks at Plataea

的主詞成爲the Persians,如果按照主詞是句子中心的觀念,同義命題的主詞有兩個,這就和亞氏三段論邏輯發生了矛盾。因此弗雷格的結論是:無論是the Greeks還是the Persians在邏輯上都沒有理由比對方更重要。(5)和(6)或許有差異,但這和邏輯無關。

在弗雷格的謂詞邏輯理論中,基本邏輯常項只包括了no(句子的否定)、if(… then)(條件式)、all(全稱)以及is(等同關係),其它邏輯常項可根據這幾個基本常項定義。

所有這些邏輯常項對早期的邏輯學家們並不是陌生的,但弗雷格邏輯體系最大的進步就是在沒有增加任何邏輯常項的情況下就解決了多量詞的問題——這也是弗雷格最基本的思想:每個句子不管多複雜,都可以看做是有步驟的建構過程的結果(the result of systematic construction process),在這個過程中每一步處理一個邏輯常項。用這種方式,具有兩個量詞的句子:”Everyone sees someone” 可以看做是經過下列步驟建構的結果:
1、首先一個將形如 ”Jack sees Jill” 的基本句擴義爲存在句:”Jack sees someone”,
2、 然後句子再進一步擴義爲全稱句:”Everyone sees someone”。

只要是系統性使用這種方法所獲得句子, 都可以通過先解釋基本句然後給出和句法建構步驟並行的語義解釋,直到整個句子都獲得語義解釋。在每一個步驟中,只有一個量詞得到解釋。

弗雷格的觀點,現在被稱爲“意義的組合性原則”。如果句法是簡單的,那麼就有可能給出並行的語義,而且推理理論就可以建立在一次處理一個邏輯詞的推理步驟的基礎上。和許多重大發現一樣,弗雷格的發現具有無可比擬的簡化和明確性,以至於很難想象在他之前爲什麼所有一切看上去都是那麼困難。弗雷格在《概念語言》一書中創建了謂詞邏輯,這本書的意圖是要描述在數學中使用語言的方式。謂詞邏輯後來成爲邏輯主義學派研究數學基礎的工具之一。在他之後邏輯的發展大都在“元邏輯”這個領域,這個領域使用數學方法研究謂詞邏輯和其它邏輯系統。

弗雷格在自然語言和形式語言(謂詞邏輯語言)之間做過一個令人啓迪的比較:前者相當於人的肉眼,後者相當於顯微鏡。如果精密度是必須的,則顯微鏡具有更好的解像度,從而使人可以看清更多的細節。但是顯微鏡缺乏舒適,和適用的多樣性,而這個正是肉眼的特長。爲了得到這樣一些多樣性,人們需要建立一個可在需要時擴展的大範圍的形式語言。它們的基礎則是謂詞邏輯。

 

三、形式系統與形式語言

  • 形式語言(formal language)是什麼?

由於形式語言/形式語言學是從英語翻譯過來的,我們權且按照英文的解釋:distinct from content or matter,區別於內容和實質。按照這個解釋,世界上什麼語言符合這個定義呢?我們首先想到的應當是數學的語言。數字就是一種抽象:例如數字3,就是從三頭牛、三個蘋果這些具體的計數抽象出來的。三頭牛、三個蘋果的共性是什麼?抽掉量詞和名詞,就是數詞。三這個字,離開了具體的物質屬性,只剩下數字這個抽象的屬性。在這個意義上,3就是三頭牛、三個蘋果的形式化表示(formal representation)。

 

  • 形式系統和形式語言 

邏輯作爲推理的科學,是人類各種思維行爲其中的一種,其表達形式就是語言。它可以用漢語、英語、荷蘭語等自然語言表達,而且自然語言在數理邏輯出現之前是闡述邏輯的唯一媒介。但自然語言從本質上並不適合用作科學研究。例如,我們前面講到連接詞【和】,你覺得拿它當邏輯工具靠得住嗎?
(1)我和小李今晚吃了頓飯。
(2)我今晚吃了頓飯。
(3)小李今晚吃了頓飯。
從直感我們就知道(1)的意思不等於(2)和(3)。

再看下一句:
(4)我和小李是朋友。
(5)?我是朋友。
(6)?小李是朋友。

問號的意思是此話跟(4)挨不上邊。

英語也有這樣的問題
(7)Old men and women take priority
這裏的old是修飾men還是men and women含混不清,因爲有兩種可能:
(8)(Old men) and women take priority(老人和女性優先)
(9)Old (men and women) take priority(老人優先)

如果定義不清楚,則論證的有效性完全不同
前提1:(8)
前提2:我妹妹是女性
--------------------------------------------
結論:我妹妹優先


但如果按照(9)如果說話人是年輕人,則論證的無效。

關於自然語言的不可靠性,英國數理邏輯學家伯特蘭 羅素曾提出過“誤導形態論題”(misleading form thesis),認爲由自然語言語法生成的句子(羅素稱作“語法形態(grammatical form)”)是不可靠的、誤導的,邏輯學家的任務是發現其grammatical form背後的“邏輯形態”(logical form)。

總之,任何自然語言都不適合描述邏輯系統。

 

下面談談“形式系統”
任何事物都有形式和內容兩個方面。考察下面的句子
(10)北京是中國的首都,位於河北省境內。
(11)北京是由兩個漢字組成,發音音調是上聲和陰平。

從這兩個句子我們應當如何定義【北京】的含義?這個問題涉及到語言哲學中關於語言的功能問題,稱作“運用”(use)和“引用”(mention)。(10)是語言的“運用”,用語言指稱其它對象,命題、實體;(11)是語言的“引用”,用語言指稱語言本身。如果將語言(例如中文)當做一個系統的話,我們知道這個系統有一個巨大的“字彙表”也就是漢字的集合。同時漢字組合後可以形成比“字”更大的單位:詞和詞組,從詞和詞組出發組成各種語言表達式,句子,段落、篇章。我們的語文教學大部分是在教“運用”(use),語言學涉及到“引用”(mention)。
要描述作爲推理形式的邏輯,當然也需要一套語言,這套語言自然也具有“運用”和“引用”兩大功能,這就構成了語言本身的內容和形式,亦即語言的句法和語義。這是一套什麼樣的語言呢?在看到它的真面目之前,我們先稱之爲“一階邏輯語言”或者簡稱“一階語言”。

既然稱作“語言”,那就應當有相應的詞彙,語法規則和相應的語義。所謂詞彙,就是用來表達某種意義的基本元素。而語法規則,最重要的一點必須是有限的,第二必須是一個演繹系統,也就說先設定一套原生的無法從其它規則、命題、原則派生的規則,以此爲基礎,派生出其它規則。當規則確定之後,就要對規則所派生的符號串給出嚴格的語義解釋。什麼叫“語義解釋”?自然語言當然不用費心做什麼“語義解釋”(研究語義學除外),誰都懂。但人工語言不同,被創建出來是要說明某個學科體系的內容的。這種說明是嚴密的精確的,這個任務是語言創建者的任務,這樣就需要一個“標準語”。

把這個思想一般化,不僅僅是語言、邏輯,所有的科學都應當具有這樣從形式到內容精確描述的特質。最著名的例子當然就是歐幾里得幾何學了。首先設定一些無法定義的基本元素,點、直線等(詞彙),然後設定若干原生的規則,從這些原生的規則出發,定義其它派生規則,直至用規則能說明幾何體系內所有對象。通常,原生、基本的規則被稱作“公理”(axiom),或者“公設”(postulate)(這裏暫先不去探討公理和公設的區別),派生出來的規則稱之爲定理(theorem)。這一整套由公理、公設、定理表達出來的體系,就稱作是形式系統(formal system)。形式系統的表示仍然是某種形式語言,這就形成了用語言說明語言的“悖論”。什麼叫“悖論”?就是說一個命題或如果能確定其真值,則會導出相反的真值,最著名的就是所謂的說謊者悖論(liars paradox)。

這個問題困擾了哲學家們上千年。直到上世紀中葉由波蘭邏輯學家塔爾斯基(Alfred Tarski)做出圓滿的解釋:在用一種語言說明另外語言的時候必須要區分對象語言(object language)和元語言(meta language)。就像我們學習英語,通常是利用漢語,例如拿一本中國人寫的英語教科書。教科書中當然是用漢語解釋英語,此時,英語就是對象語言,而漢語則是元語言。順便說一句,meta在英語裏,通常作爲某個學科的前綴,意思是用某個學科研究自身的學問,如meta mathematics(元數學),metalogic(元邏輯)等”。
對象語言與元語言的區別實際上和上面提到的語言的“運用”(use)和“引用”(mention)的區別是一致的,這也是爲什麼在描述任何邏輯體系時要使用專門的形式語言。

爲了加深印象,這裏給出個微型的“形式語言”它是歸納定義的
0. 設這個形式語言爲L
1. 設詞彙表爲一個集合:V = {p, q}
2. 詞彙表中所有詞彙屬於L
3. 如果p和q屬於L,那麼 (p * q)也屬於L
4. 只有(2)或(3)經有限步驟生成的才屬於L,沒有其它。

說明:規則(3)中的【*】是一個沒有定義語義的邏輯常項,由於這個微型“形式語言”沒有任何用處,所以無法定義它的語義。

把這個概念一般化,任何一個形式系統或邏輯系統都是有三個部分組成:
1. 一個原始元素的非空集合(形式語言,表達)
2. 關於原始元素的命題集合:公理集合(基礎命題):公理(axiom)、定義(definition)、公設(postulate)
3. 從公理派生其它命題的演繹方法(定理):演繹規則(派生命題):定理(theorem)、事實(fact)、(引理)lemma、推論(corollary)

 

下面是一個簡化版的一階命題邏輯的形式系統
句法
1. 詞彙表(vocabulary):
---(1)命題字母(肯定陳述句單句):p, q, r,...
---(2)邏輯常項:¬ (negation:否定)
---------------- ∧(and:與)
---------------- ∨(or:和)
---------------- →(implies:條件、蘊含)
---------------- ↔(equivalence:雙條件,等價)
---輔助符號:(,)
2. 良形命題公式(well-formed formulas,簡稱:wff)生成規則:
---(1)所有詞彙表中的命題字母爲良形命題公式(wff)(原子命題)
---(2)如果A爲wff,則(¬ A)亦然。
---(3)如果A爲wff且B爲wff,則( A ∧ B)亦然。
---(4)如果A爲wff且B爲wff,則( A ∨ B)亦然。
---(5)如果A爲wff且B爲wff,則( A → B)亦然。
---(6)如果A爲wff且B爲wff,則( A ↔ B)亦然。
沒有任何除(1)-(6)以外的規則可生成wff

語義
一旦命題邏輯語言按照上述句法規則建立,則每一個邏輯表達式都需賦予(valuation)一個相應的語義解釋(semantic interpretation)。因這裏只是展示不作爲學習,故只用命題定義的形式給出語義解釋:
定義1. (語義)解釋就是將每一個命題字母賦予/關聯(valuate/associate)一個真值,真值集合爲{T,F},其中T代表“真”,F代表“假”。
定義2. 真值表定義 ...
定義3. 賦值函數定義
定義4. 同義反復/恆等定義
定義5. 可滿足性/不可滿足性定義
定義6. wff解釋模型定義
定義7. 邏輯歸結定義
定義8. wff的邏輯等價(logical equivalence)定義

其中,定義i相當於形式系統的一個公理,公理的集合,亦即上述所有從定義1到定義n。從這些公理出發,我們可以派生更多的定理(theorem)。

 

以上就是命題邏輯語言的句法和語義建立的過程和概貌。除此之外還需要一套推理規則(rules of inference)用來描述有效的argument,用來作爲從公理到定理之間演繹的工具。

總結
形式語言是描述一個形式系統的媒介,是形式系統的表達方式;
形式語言定義一個形式系統的句法和語義;
公理集合是形式系統的基本原始命題集合;
推理規則是形式系統從從公理到定理演繹的工具。

如果說19世紀以前的邏輯學主要是描述哲學思想,19世紀末20世紀初的邏輯主要是描述數學,那末,20世紀下半葉開始邏輯成爲描述自然語言語義的工具。如果有一天邏輯學真的可以作爲描述自然語言語義的語言,那麼邏輯就真的成了“宇宙語言”,它已經囊括了人類知識最精華的部分:是描述哲學、數學和自然語言的元語言!而自然語言語義學是一門新興的學科。對自然語言語義的探索,除了傳統上的哲學、語言學和邏輯學,現在又加上了人工智能(機器學習)、計算機科學和認知科學等,可以說是典型的跨學科研究。

最後到這裏就到了本篇的結尾了,我們對邏輯的基本定義和現代邏輯學的發展和形式系統與形式語言都有了一個大概的瞭解。接下來就是數理邏輯的介紹了。

注:此篇文章主要以豆瓣的邏輯小站爲主要的素材整理而來,如有對邏輯學感興趣的可以自行關注該小站,同時感謝該站主的知識分享與貢獻。 邏輯小站

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章