之前的筆記「數理邏輯1」介紹了命題演算,接下來在此基礎上介紹量化理論,即引入量詞符號
∀ 和相關的變數符號及函式符號。
基於命題演算的形式邏輯有個明顯的不足,就是難以表達諸如「所有x都具有y特性」這樣的句子。比如,著名的亞里斯多德三段論:所有人都會死,蘇格拉底是人,所以蘇格拉底會死。這個三段論僅用基於命題演算的形式邏輯是難以表達的。究其原因,是因為這類語句帶有量詞,例如「所有」,「有些」,「某個」。因此,本筆記的第二部分將介紹引入量詞後的形式邏輯系統。
引入量詞後的「邏輯語言」稱為一階邏輯語言,定義如下:
定義2.1: 乙個一階邏輯語言包含以下元素:
命題連線符號:¬,
⇒ ,和全稱量詞(universal quantifier):
∀ 標點符號:左括號(, 右括號), 逗號,
可數的許多變數:x1
, x2
, … (注:這裡的「可數」採用樸素理解即可,若採用集合論的理解方式,即能與自然數一一對應,或者說該集合與自然數的基數相同。)
乙個有限的,或者無限但可數的,函式集合(可以為空)。
乙個有限的,或者無限但可數的,常數集合(可以為空)。
乙個非空的謂詞集合(predicate letter)。
定義2.1相比之前的命題演算語言的定義來說,主要增加了全稱量詞
∀ 。一旦引入全稱量詞,自然而然就要引入變數符號。接著命題演算語言的描述字母(statement letter,即b,
d 這些東東)在這裡變成了「謂詞」,即predicate letter。它不再是乙個單純的字母表示,而是用類似函式的方法表示,因為它是「謂詞」,用來斷言某些「名詞」。而這裡的名詞就是各種變數、常量通過函式符號轉化而成的某個量。
同樣,我們也要定義何為好式子(well formed formula)wf,這是形式邏輯研究的主要物件。在定義wf之前,我們先要定義一階語言的解釋。由於一階語言引入了全程量詞和變數,以及相應的函式符號,那麼這些變數和函式必須對應乙個「域」(domain)才有意義,或者說才能把一階邏輯討論下去,而這樣的「域」就是一階語言的某種解釋。
定義2.2:
l 是乙個一階邏輯語言,那麼它的解釋
m包含以下元素:
乙個非空集合
d ,稱為它的定義域(domain)
對於每個謂詞an
j,對應乙個
d 中的
n階關係
對於每個函式符號fn
j ,對應乙個
d 中的函式,即fn
j:dn
→d對於每個常數符號aj
,對應d 中的某個固定元素。
上述定義2、3、4中的符號下標
j表示第
j 個符號,上標
n表示其輸入有
n 個。比如, a2
3表示第三個謂詞符號,其輸入有兩個,即a2
3(t1
,t2)
。f32 表示第二個函式符號,其輸入有3個,即f3
2(x1
,x2,
x3) 。有時為了表示方便,在不產生歧義的情況下,上標
n 會省略,如a3
(t1,
t2)、
f2(x
1,x2
,x3)
。甚至,在個別情況下,下標
j 也會省略。
定義2.2初看之下有些雲裡霧裡,其實簡單點說,就是找乙個定義域
d,所有的常量、變數、函式符號都基於這個定義域來定義,而謂詞符號則基於這個定於域的關係。(注:關係即是乙個集合(d
1,d2
,...
,dn)
,其中每個di
都是d 中的元素。)
之所以要給定乙個定義域是因為,一階語言和之前的命題演算語言不一樣,很難直接對「謂詞」分配乙個「真值」,因為謂詞往往包括變數。比如,你很難對a(
x1)分配乙個「真值」,因為我們希望a(
x1) 能表達「對於x1
而言,某某某是怎樣的」。所以不同的x1
就有不同的對錯真假。
一階邏輯的「真假」是與「某個序列是否滿足某個謂詞」關聯的。通俗點說,即謂詞中的變數用某個定義域
d 中的元素取代後,通過判定該謂詞對應的關係是否被「滿足」,從而來判定該謂詞的真假。在定義「滿足性」與「真假性」之前,我們要定義何為「項」,何為好式子。
定義2.3:對於乙個一階邏輯語言l,乙個項(term)是指
乙個常數符號aj
,或者,乙個變數符號xi
,或者,乙個函式符號fn
j 以及對應的輸入符號,即fn
j(t1
,t2,
...,
tn) ,其中t1
,t2,
...,
tn都是項(term)。
只能用上述1,2,3中方法產生。
定義2.4:對於乙個一階邏輯語言l,乙個好式子(well formed fomula),簡稱wf,是指
乙個謂詞an
j ,以及對應的輸入項,即an
j(t1
,t2,
...,
tn) ,也稱為原子wf。如果a
是wf,那麼¬a
也是wf。如果a
,b是wf,那麼a⇒
b 也是wf。如果a
是wf,那麼(∀
xi)a
,也是wf。
任何乙個wf,都只能由1,2,3,4的方法生成。
定義2.3和2.4的通俗理解即是:變數、常量、函式組成了項(term)。項作為謂詞的輸入,組成了原子wf。原子wf通過連線符號¬,
⇒ 組成了更多的wf。有了這些符號,一階邏輯語言能表述的範圍就變大了,大大覆蓋了我們人類日常的邏輯思維。
注意,定義2.4第4點中全稱量詞右方的變數符號xi
,可以不出現在好式子a中。它僅是一串符號,隨你怎麼寫變數符號都沒關係,它的邏輯意義由定義域
d 來解釋,「現實意義」則由人類解釋。
定義了這麼多東東,必須要給點例子,不然雲裡霧裡,沒法往下玩。
例子:
比如某個一階語言只有乙個函式符號f2
1,關聯的定義域
d 是自然數。函式f2
1定義為:f2
1(x1
,x2)
=x1+
x2,顯然,這是乙個從d2
到d的函式。接著,這個語言只有乙個謂詞符號a2
1,它基於定義域
d 的關係(即d2
的某個子集)如下:如果t1
=t2 ,那麼(t
1,t2
) 就在關係a2
1 中,否則就不在。也就是說,a2
1 定義了乙個「相等關係」。
那接下來我們看看何為好式子wf,我們把謂詞符號簡記為
a , 函式符號簡記為x1
+x2。比如a2
1(x1
,f21
(x1,
x2))
就可以簡記為a(
x1,x
1+x2
) 。 a(
x1,x
1+x2
) 就是乙個好式子,因為a是乙個謂詞符號,x1
是變數符號,所以也是乙個項。x1
+x2 實則是函式符號(的縮寫),所以也是乙個項。(∀
x1)a
(x1,
x1+x
2)也是乙個好式子,它符合定義2.4中的第四點。同樣,(∀
x2)a
(x1,
x1+x
2)也是乙個好式子wf。再來,(∀
x3)a
(x1,
x1+x
2)也是好式子!儘管這個式子沒什麼意思,無聊透底,因為變數符號x3
和後面的謂詞符號一點關係也沒有,但它仍然符合定義2.4,所以它就是個好式子wf。後面,我們將會看到為什麼要如此定義,允許∀x
3 ,全稱量詞之後跟乙個和後續謂詞毫無關係的變數符號x3
。¬a(
x1,x
1+x2
) , a(
x1,x
3+x4
)⇒¬a
(x2,
x100+x
200)
這些當然都是好式子wf。謂詞裡面的項可以隨便換,項中的變數符號也可以隨便換,當然也可以換成常量符號,比如¬a
(x1,
aj) 。
在沒有定義域的時候,這些wf都是無意義的,僅是一串符號,關鍵是你還不能像命題演算系統那樣分配真假值給它們。當對應了定義域之後,就可以討論「真假」與「滿足性」(satisfiability)。
數理邏輯蘊含 數理邏輯(1) 命題邏輯的基本概念
學習階段 自由。前置知識 基本的邏輯思維。很多人連基本的邏輯關係都搞不清,在這個系列科普一下離散數學中的數理邏輯。1.命題 命題 proposition 就是非真即假的陳述句。命題的真假,稱為真值,真 記為t true 或1,假 記為f false 或0.因為真值只有兩種,這種邏輯也稱為二值邏輯。在...
數理邏輯蘊含 數理邏輯(1) 命題邏輯的基本概念
學習階段 自由。前置知識 基本的邏輯思維。很多人連基本的邏輯關係都搞不清,在這個系列科普一下離散數學中的數理邏輯。命題 proposition 就是非真即假的陳述句。命題的真假,稱為真值,真 記為t true 或1,假 記為f false 或0.因為真值只有兩種,這種邏輯也稱為二值邏輯。在真值不止2...
數理邏輯3 形式數論1
這節開始跳到第三章,其實第二章還有好多內容,但冗長沉悶,也不知道後面是否能用上。所以,先跳到第三章,若需要用到第二章剩餘的內容,再跳回去。自然數和幾何,應該是人類最古老的兩大數學分支。所以,任何試圖建立數學根基的系統,都避免不了要對自然數系統進行 基礎化 何為自然數?自然數的加減乘除的本質是什麼?這...