程式人雜誌 -- 2014 年 3 月號 (開放公益出版品)

謂詞邏輯、一階邏輯與「哥德爾完備定理」

前言

布林邏輯與推論系統 -- 何謂嚴格的數學證明? 這篇文章中,我們介紹了「布林邏輯」(Boolean Logic) 這種簡單的推論系統,這種邏輯系統又稱為「命題邏輯」(Propositional Logic)。

在本文中,我們將介紹一個能力較強大的邏輯系統,稱為「一階邏輯」(First Order Logic) 系統,這是一種「謂詞邏輯」(Predicate Logic) 的實例,然後再說明這種邏輯系統中的一個重要定理,稱為「哥德爾完備定理」。

謂詞邏輯

在布林邏輯中,只有用來代表真假值的簡單變數,像是 A, B, C, X, Y, Z .... 等,所以邏輯算式看來通常如下:

這種命題邏輯裏沒有函數的概念,只有簡單的命題 (Proposition),因此才稱為命題邏輯。

而在謂詞邏輯裏,則有「布林函數」的概念,因此其表達能力較強,例如以下是一些謂詞邏輯的範例。

您可以看到在這種邏輯系統裏,有「布林變數」的概念 (像是 x, y, z 等等),也有函數的概念,像是 Parent(), Father(), Ancestor() 等等。

一階邏輯

在上述這種謂詞邏輯系統中,如果我們加上 (對於所有) 或 (存在) 這兩個變數限定符號,而其中的謂詞不可以是變項,而必須要是常項,這種邏輯就稱為一階邏輯。

當然、規則可以更複雜,像是以下這個範例,就說明了「存在一些人可以永遠被欺騙」。

二階邏輯

如果一階邏輯中的謂詞,放寬成可以是變項的話 (這些變項可以加上 等符號的約束),那就變成了二階邏輯,以下是一些二階邏輯的規則範例。

一致性與完備性

在邏輯系統中,所謂的「一致性」,是指公理系統本身不會具有矛盾的現象。假如我們用 A 代表該公理系統,那麼 A 具有一致性就是 A 不可能導出兩個矛盾的結論,也就是 A => P 與 A=> -P 不可能同時成立。

哥德爾完備性定理

哥德爾於 1929 年證明了「哥德爾完備定理」(Gödel's Complete Theorem),這個定理較簡化的陳述形式如下:

以下是哥德爾完備定理的兩種陳述形式,詳細的證明方法請參考 Wikipedia:Original proof of Gödel's completeness theorem

結語

「哥德爾完備性定理」似乎得到了一個很正向的結果,讓人對邏輯系統的能力擁有了一定的信心。

但是、當哥德爾進一步擴展這個邏輯系統,加入了「自然數的加法與乘法」等運算之後,卻發現了一個令人沮喪的結果,那就是「包含自然數加法與乘法的一階邏輯系統,如果不是不一致的,那就肯定是不完備的,不可能兩者都成立」。

這將引出我們的下一篇文章, 從程式人的角度證明「哥德爾不完備定理」

參考文獻

【本文由陳鍾誠取材並修改自 維基百科,採用創作共用的 姓名標示、相同方式分享 授權】