跳至內容

計算機科學邏輯/一階邏輯

來自華夏公益教科書

一階邏輯

[編輯 | 編輯原始碼]

在命題邏輯中,我們考慮了關於原子物件的公式,這些物件只能是真或假。一階邏輯是本章的主題,它建立在命題邏輯的基礎上,並允許您檢視公式中討論的物件內部。我們可以透過將物件討論為大於集合 的集合的元素,幷包括任意複雜的相互關係來提供這種更精細的粒度級別。

我們首先透過定義一階 (FO) 邏輯的語法開始,然後賦予這些結構意義。

一階邏輯的討論域是一階結構或模型。一個一階結構包含

  1. 關係,
  2. 函式,以及
  3. 常量(元數為 0 的函式)。

一階邏輯的詞彙是

  1. 一組具有關聯元數的關係符號,以及
  2. 一組具有關聯元數的函式符號。

以下是一些示例一階邏輯詞彙

    • 關係集 = {  : 一元, : 二元 }
    • 函式集 = {  : 一元 }
  1. 算術
    • 關係集 = {  : 三元, : 三元, : 三元, : 二元, : 二元 }
    • 函式集 = {  : 一元, : 常量 }

這裡,圖是由一組頂點和一組邊組成。對於算術集,請注意使用純粹是語法上的,我們本可以使用“加”和“乘”符號來代替。我們還沒有給這些符號賦予任何意義。

表示一階結構中的一個元素。項用於指代我們討論域中的元素。以下是描述項是什麼的規則

  • 每個變數都是一個項,其中變數只是一個符號集合
  • 每個常數都是一個項
  • 如果是項,且元函式,那麼是一個項。

例如,如果是一個二元函式,而是一個三元函式,那麼以下都是項:.

原子公式

,

其中元關係,而是項。當將視為一個集合時,這只是另一種說法,即元組

.

一個特殊的“”關係表示“等於”,不能被解釋為其他含義。例如,代表

.

一階公式是由給定的 一階詞彙表、變數和符號 構成的表示式。 一階公式的集合是滿足以下條件的最小集合。

  • 原子公式是一階公式
  • 如果 是公式, 是一個變數,則以下也是公式

給定詞彙表上的一個一階結構包含以下內容:

  1. 一個域,它是一組元素(也稱為宇宙)
  2. 一個對映,它將詞彙表中的每個 元關係符號與域上的 元關係相關聯,並將每個 元函式符號與域上的 元函式相關聯。

這些元件賦予符號意義。

例子

關係集 = {  : 三元,  : 三元,  : 三元,  : 二元,  : 二元 }
函式集 = {  : 一元,  : 常數 }

在這個詞彙表上的一個一階結構是

  1. 域:整數集
  2. 對映 : 加法, 乘法, 冪運算, 排序,

在這個結構中,公式

表達了“存在質數”的命題(數字1也滿足該命題)。

這裡要注意 等價於 .

量詞的作用域

[edit | edit source]

在公式 中, 被稱為變數 的量化作用域。公式中變數的出現,如果在該變數的量化作用域內,則稱該出現是約束的,否則稱該出現是自由的。您可以將量詞的用法視為變數宣告。

句子是一個沒有自由變數的公式(即所有變數都是約束的)。句子要麼為真要麼為假。

包含自由變數的公式可以被認為是描述自由變數的屬性。例如, 表示一個包含 自由變數的公式,並描述了 的屬性。

如果一個句子 在結構 上評估為真,我們說 滿足 ,並將其記為

  • 當且僅當 ,其中 中的解釋。
  • 當且僅當 。(對於 類似)。
  • 當且僅當
  • 如果 對於某些 在域中。
  • 如果 對於每個 在域中。

注意: 表示用 替換 中的所有自由出現的結果。替換將在本章後面進一步討論。

公理化方法

[edit | edit source]

公理是一組句子,旨在區分“期望”模型與其他模型。但通常,也存在“非期望”模型,稱為非標準模型。

例如: 考慮詞彙表 ,其中符號具有通常的含義(由關於此詞彙表的 FO 句子定義)。這組公理的標準解釋(見本章末尾)是整數,但模 的整數集也滿足這些公理。透過將以下句子新增到公理中,可以排除這種可能性:

問題: 所有非標準模型都可以透過公理化排除嗎? 答案是否定的。考慮 [TODO: 匯入圖形] 中所示的模型,該模型的詞彙表僅包含 (上行中的所有元素都大於下行中的元素)。

沒有一組一階句子可以區分此模型與自然數。直觀地,原因是,我們無法在一階句子中任意“回溯”(向 )。對於上面的完整詞彙表,也可以獲得類似的非標準模型。

評估 FO 句子

[edit | edit source]

給定一階結構 和 FO 句子 ,我們能否判斷

對於有限結構,這個問題是可判定的。例如,假設 是一個表示圖邊界的二元關係,而給定句子是

.

我們可以透過嘗試 的所有可能值來評估這個句子的真值。(樸素評估:“巢狀迴圈”。)這在域大小上是多項式時間,但在公式大小上是指數時間。

在無限域上,我們可能能夠評估句子的真值,也可能不能。在詞彙 中,其中 是自然數集,如果句子為真,則它是可判定的。(這被稱為普雷斯伯格算術。)但是,如果我們包含乘法,則句子的真值將變得不可判定。

FO 的演繹系統

[編輯 | 編輯原始碼]

FO 句子的集合

  • 可滿足的,如果存在某個結構 使得
  • 不可滿足的,如果它不可滿足
  • 有效的,如果對所有結構 ,都有

給定一組 FO 句子 和一個句子

  • 蘊涵 (記為 ),如果每個滿足 的結構也滿足
  • 當且僅當 是不可滿足的。
  • 如果 是有限的,那麼, 當且僅當 是有效的。
  • 如果公式 有自由變數 是有效的,當且僅當 是有效的。

有效性公理

[edit | edit source]

有效性公理分為三類:

  1. 布林有效性公理。這些公理從命題邏輯中繼承而來。
  2. 等式公理。
  3. 量化公理。
布林有效性
[edit | edit source]

給定一個一階邏輯公式 的布林形式是一個命題公式 ,使得 是透過將 中的每個命題變數替換為 的子公式得到的。

的布林形式集合用 表示。

例子

  • 對於一階邏輯公式 ,布林形式為
  • 如果 ,那麼 ,其中

斷言: 如果 並且 是有效的,那麼 是有效的。

等式公理
[編輯 | 編輯原始碼]

是項。以下是一階邏輯的有效公式。

  • , 其中 是一個 元函式。
  • , 其中 是一個 元關係。

給定一個公式 ,其中變數 出現自由(表示為 )和一個項 ,我們定義將 代入 ,記為 ,為將 中每個 的自由出現用 代替得到的結果公式,但必須滿足約束條件: 不包含任何在 中被量化的變數 ,使得 出現在 量化範圍內的自由位置。如果 不在 中自由出現,那麼 被定義為

例如:設

,

那麼

  • 是一個有效的替換
  • 不是一個有效的替換。
量化公理
[編輯 | 編輯原始碼]
  1. ,其中 是一個項, 是一個有效的替換

總之,有效性的公理是

  1. 布林有效性公理。這些公理從命題邏輯中繼承而來。
  2. 等式公理。
  3. 量化公理。

定義:一個證明是一個序列 的 FO 語句,使得對於每個 或者 或者 使得 以及 .

符號: 如果存在使用 的證明,我們用 來表示這個事實。

事實 (可靠性): 如果 ,那麼 是有效的。

備註: 可以證明有效的公式集是遞迴可列舉的。

示例: 公式 的證明

的證明是 對稱的。

有用的等價關係

[edit | edit source]
  • 例如 "x 是偶數" 以及 "x 是奇數"

前束正規化

[edit | edit source]

斷言:每個 FO 語句都等價於一個形如 的 FO 語句,其中 是無量詞的。

這是透過使用量詞的分配律證明的。可能需要重新命名變數,以避免歧義。雖然你總是可以將所有量詞移動到左側,但所得公式的大小實際上可能比原始公式大很多倍。

例子:

回顧公理方法

[edit | edit source]
  1. 使用一個(可能是無限的,但遞迴的)公理集(一階句子)儘可能詳細地描述所需模型。
  1. 使用演繹證明事物。

符號: 我們說 的有效推論(記為 ),如果每個滿足 的模型也滿足

事實: 當且僅當 不可滿足。

旁註: 數論的非邏輯公理

[edit | edit source]

以下十四個一階公理描述了算術和數字的性質,即加法 (),乘法 (),冪運算 (,相等 (),排序 (),後繼函式 () 和餘數 (mod)。這個例子展示了一階語句的表達能力,最初人們希望它能為“唯一真正的數學”提供基礎。

問題: 為什麼它們被稱為“非邏輯”公理?

NT1:
NT2:
NT3:
NT4:
NT5:
NT6:
NT7:
NT8:
NT9:
NT10:
NT11:
NT12:
NT13:
NT14:
華夏公益教科書