一階邏輯是使用於數學、哲學、語言學及電腦科學中的一種形式系統，也可以稱為：一階斷言演算、低階斷言演算、量化理論或謂詞邏輯。一階邏輯和命題邏輯的不同之處在於，一階邏輯包含量詞。 高階邏輯和一階邏輯不同之處在於，高階邏輯的斷言符號可以有斷言符號或函式符號當做引數，且容許斷言量詞或函式量詞。在一階邏輯的語義中，斷言被解釋為關係。而高階邏輯的語義裡，斷言則會被解釋為集合的集合。 在通常的語義下，一階邏輯是可靠（所有可證的敘述皆為真）且完備（所有為真的敘述皆可證）的。雖然一階邏輯的邏輯歸結只是半可判定性的，但還是有許多用於一階邏輯上的自動定理證明。一階邏輯也符合一些使其能透過證明論分析的定理，如勒文海姆斯科倫定理及緊緻性定理。 一階邏輯是數學基礎中很重要的一部份。許多常見的公理系統，如一階皮亞諾公理、馮諾伊曼 博內斯 哥德爾集合論和策梅洛 弗蘭克爾集合論都是一階理論。然而一階邏輯不能控制其無窮模型的基數大小，因根據勒文海姆斯科倫定理和康託爾定理，可以構造出一種 病態 集合論模型，使整個模型可數，但模型內卻會覺得自己有「不可數集」。類似地，可以證明實數系的普通一階理論既有可數模型又有不可數模型。這類的悖論被稱為斯科倫悖論。但一階的直覺主義邏輯裡，勒文海姆斯科倫定理不可證明 Skolems paradox and constructivism Charles McCarty Neil Tennant，故不會有以上之現象。 簡介 基本符號 命題邏輯顧名思義，會將「蘇格拉底是哲學家」、「柏拉圖是哲學家」之類直觀上有真有假的敘述簡記為 p 及 q （也就是有真有假的命題），然後討論 neg p（非 p）、p Rightarrow q（若 p 則 q）、p wedge q（p 且 q）與 p vee q（p 或 q）之間的推理關係。 但一階邏輯嘗試從一些比較基礎的詞彙去建構「句子」，比如說，可用符號 text Philx 代表 「 x 是哲學家」，也就是賦予斷言符號「text Philx 」語意的解釋。這個解釋預設一個「所有人類的群體」（也就是下面標準語義一節會說到的論域），並將變數 x 對應為自群體中取出來的某人。 以此類推，斷言符號可以包含一個以上的變數。例如：可以將 text Cpxy 解釋為「 x 與 y 是夫妻」。 一階邏輯類似於命題邏輯，可以將斷言符號與 neg（非）、Rightarrow（則）、wedge（且）和 vee（或）組成更複雜的敘述，例如：把斷言符號 text Scholx 解釋成「 x 是學者」，那「若 x 為哲學家，則 x 為學者」可表示為： text PhilxRightarrow text Scholx 但相較之下，一階邏輯又加入了描述「所有」與「存在」的量詞，比如說「對所有 x ，若 x 為哲學家，則 x 為學者」可記為： forall x text Philx Rightarrow text Scholx 也就是自左方開始閱讀，將 forall x 解釋成「對所有 x 有」。forall 這個符號被稱為全稱量詞。 而對於「有 x 是哲學家」這一敘述，一階邏輯則引入另一種量詞： exists x text Philx 也就是自左方開始閱讀，將 exists x 解釋成「存在 x 使」。exists 這個符號被稱為存在量詞。 順帶一提「並非所有 x 不是哲學家」等價於「有 x 是哲學家」；且「不存在 x 不是學者」也等價於「所有的 x 是學者」。所以可以用「否定」和「全稱量詞」來組合出「存在量詞」。換句話說，可作以下的符號定義（mathcal A 代表一段「敘述」）： exists x mathcal Aneg forall x negmathcal A 相等 一階邏輯也考慮到「相等」這個概念在敘述中的重要性，例如想表達「若所有 x 是哲學家，那 x 的長子也會是哲學家」，可先把 text Sonx 解釋為 「 x 的長子」，那麼這段敘述可記為： forall x text Philx Rightarrow text Philtext Sonx 換句話說，text Sonx 被解釋成「與 x 有特定且唯一對應關係」的某物件（被稱為函式符號）。換句話話說，只要「x 就是 y」，那「x 的長子也會是 y 的長子」。換句話說： x y Rightarrow text Sonx text Sony 這些性質被一階邏輯視為「理所當然」。 類似地，敘述中也有一些「不變的實體」，如蘇格拉底，表示這些「實體」的符號被稱為常數符號。例如將 s 解釋為蘇格拉底，那「蘇格拉底為哲學家」就可以寫成： text Phils 所謂的「不變」隱含的代表： 「蘇格拉底就是蘇格拉底」 「對所有 x，對所有 y，如果 x 就是蘇格拉底，且 y 就是蘇格拉底，那 x 就是 y」 換句話說 s s forall x forall yx s wedge y s Rightarrow x y 這兩個性質也被一階邏輯視為「理所當然」。 形式理論 一階邏輯的形式理論可分成幾個部份： ：決定哪些符號組合是合式公式。（直觀上的 文法無誤的敘述） 推理規則：由合式公式符號組合出新合式公式的規則（直觀上的 推理） 公理：一套合式公式（直觀上的基本假設） 基本符號 一套理論能容許多少符號，取決於人類能運用物理定律來塑造多少符號，但目前無法確知宇宙是不是有限，或是以可無限制地分割。雖然所有的公理化集合論都以量詞的形式隱晦的承認跟自然數一樣多的無窮（如 ZF 集合論的無窮公理），甚至以這樣的可數無窮為基礎，去建構出不可數的實數，但將抽象的理論對應到現實時，還是需要回答物理上有沒有可數或不可數的無窮。所以謹慎起見，如果沒有特別申明的話，以下各種類符號的數目上限都是有限的。 邏輯符號 一階邏輯通常擁有以下的符號： 量化符號 forall 及 exists 某些作者 Elliott Mendelson Introduction to Mathematical Logic 6th Edition p40 會把 exists 符號定義為 exists xmathcal A neg forall x negmathcal A，如此便只需要 forall 做為基礎符號。 邏輯聯結詞：以下為可能的表示符號（關於波蘭表示法下的邏輯連線詞，請參見邏輯運算的波蘭記法）： 否定： neg 或 sim 或－ 條件：Rightarrow 或 rightarrow 或 supset 且：land 或 或：lor 或 雙條件：Leftrightarrow 或 harr 某些作者 Elliott Mendelson Introduction to Mathematical Logic 6th Edition p29 會作如下的符號定義： mathcal Awedgemathcal Bneg mathcal ARightarrow negmathcal B mathcal Aveemathcal Bnegmathcal ARightarrowmathcal B mathcal ALeftrightarrowmathcal Bmathcal ARightarrowmathcal Bwedge mathcal BRightarrowmathcal A 如此一來只需要否定和條件做為基礎符號。 標點符號：括號、逗號及其他，依作者的喜好有所不同。 為了更有效的將括號做配對，通常還會採用大括號 跟中括號 。 至多跟自然數一樣多的變數，通常標記為英文字母末端的小寫字母 x、y、z、，也常會使用下標（或上標、上下標兼有）來區別不同的變數：x0、x1、x2、（特別注意 c 有時候會被當成常數符號而引起混淆）。 等式符號： 有作者會因為語義上對 相等 的不同解釋，而將等式符號視為雙元斷言符號、甚至是某種合式公式的簡寫。 符號相等：asymp 某些作者 Stephen Cole Kleene Introduction to Metamathematics p405 會額外採用這個符號來表示符號辨識上的等同以便與等式符號作區別。 並非所有的符號都不可或缺的，像謝費爾豎線「 」（或異或）可以用來定義量詞以外的所有邏輯符號，換句話說： 另外，一些作者不區分語義解釋和形式理論，所以會將表示真值的符號納入形式理論裡，也就是說，用 T 、Vpq 或 top 來表示「真」，並用 F 、 Opq 或 bot 來表示「假」。 斷言符號 「他們兩人是夫妻」，是一個關於兩個 物件 的斷言，而「他是人」、「三點共線」則表明斷言容許一個或者多個物件。所以對於自然數 n 、j 約定： An_j x_1x_2x_n 為一階邏輯的合法詞彙。它在直觀上表示一個有 n 個 物件 的斷言，稱為 n 元斷言符號。下標的自然數 j 只是拿來和其他同為 n 元的斷言符號作區別。 實用上只要有申明，不至於和其他詞彙引起混淆的話，可以用任意的形式簡寫一個斷言符號。如：公理化集合論裡的雙元斷言符號 A2_1 xy 也可以表示為 xin y 。 函式符號 「物體的顏色」、「夫妻的長子」這種斷言說明瞭一組物件所唯一對應的物件。但不同的夫妻有不同的長子；不同的物體有不同的顏色。據此，形式上對於自然數 n 、j 約定： fn_j x_1x_2x_n 為一階邏輯的合法詞彙，直觀上表示 n 個 物件 所對應到的東西，稱它為 n 元函式符號。需要特別注意，這種 唯一對應 的直觀想法，必須配上關於 等式 的性質（詳見下面的等式定理章節），才能在形式理論中被實現。 與斷言符號一樣，只要不引起混淆，就可以用任何的形式簡寫函式符號。如：公理化集合論裡的 xcup y 是依據聯集公理而定義的新函式符號（請參見下面函式符號與唯一性章節），也可以冗長的表記為 f2_j xy 。 常數符號 「刻度 0」、「原點」、「蘇格拉底」是直觀上＂唯一不變＂的物件。據此，對自然數 j 約定 c_j 為一階邏輯的合法詞彙，直觀上表示一個 唯一不變 的物件，稱為常數符號。同樣的。常數的不變性 需配上等式的性質（詳見下面等式定理）才能被實現。 為了不和變數的表記混淆，常數符號一樣可以用任何的形式簡寫，如公理化集合論裡的 varnothing 是根據空集公理和函式符號與唯一性，而定義的新常數符號。亦可冗長的表示為 c_j 。 語法 和自然語言（如英語）不同，一階邏輯的語言以明確的遞迴定義判斷一個給定的詞彙是否合法。大致上來說，一階邏輯以「項」代表討論的物件，而對「項」的斷言組成了最基本的原子（合式）公式；而原子公式和邏輯符號組成了更複雜的合式公式（也就是 敘述）。 項 「那對夫妻的長子的職業」、「xytimes z」、「xcupvarnothing」代表變數可以與函式符號組成更一般的物件。據此形式，遞迴地規定一類合法詞彙 項為： 習慣上以大寫的西方字母（如英文字母、希伯來字母、希臘字母）代表項，如果變數不得不採用大寫字母，而可能跟項引起混淆的話，需額外規定分辨的辦法。 原子公式 為了比較簡潔地規定甚麼是合式公式，先規定原子公式為：（若 T_1T_n 是項） An_j T_1T_n 這樣的形式。 公式 一階邏輯的合式公式（簡稱公式或 wf ）以下面的規則遞迴地定義： 另外成對的中括弧跟大括弧，符號辨識上視為成對的小括弧，而草書的大寫西方字母為公式的代號。 舉例來說， forall y A2_1 xf1_1 y 是公式而 forall x x Rightarrow 則不是公式。 而接下來只要對任意公式 mathcal A 、 mathcal B 與變數 x，做以下符號定義 這樣所有的邏輯連線詞與量詞就納入了合式公式的規範。 施用 所謂的施用 作用，是以下公式形式的口語說法：（其中 mathcal A 與 mathcal B 都是公式） negmathcal A 稱為 neg 施用於 mathcal A 上。 mathcal ARightarrowmathcal B 稱為 Rightarrow 施用於 mathcal A 和 mathcal B 上。 mathcal Awedgemathcal B 稱為 wedge 施用於 mathcal A 和 mathcal B 上。 mathcal Aveemathcal B 稱為 vee 施用於 mathcal A 和 mathcal B 上。 mathcal ALeftrightarrowmathcal B 稱為 Leftrightarrow 施用於 mathcal A 和 mathcal B 上。 forall xmathcal A 稱為 forall x 施用於 mathcal A 上。 exists xmathcal A 稱為 exists x 施用於 mathcal A 上。 就類似於運運算元作用在它們身上。 自由變數和約束變數 量詞所施用的公式被稱為量詞的範圍（scope）。同一個變數在公式一般來說不只出現一次，若變數 x 出現在 forall x 的範圍內，稱這樣出現的 x 為不自由 被約束的 x （not freebounded）；反過來說，不出現在 forall x 的範圍內的某個 x 被稱為自由的 x。 例如，對於公式： forall xA1_1 xRightarrow A1_2 y A1_1 xRightarrow A1_2 y 就是量詞 forall x 的範圍；而 A1_1 x 裡的 x 就是不自由的；反之 A1_2 y 裡的 y 就是自由的。 說 x 於公式 mathcal A 完全自由，意為於 mathcal A 出現的 x 都是自由的；反之，說 x 於公式 mathcal A 完全不自由 完全被約束，意為 mathcal A 內根本沒有 x ，或是 mathcal A 內沒有自由的 x 。若 mathcal A 內所有的變數都完全不自由，mathcal A 特稱為封閉公式 句子（closed formulasentence）。 括弧的簡寫 括弧是為了保證語意解釋符合預期，但太多的括弧書寫不易，為此規定以下的 重構法（反過來就是 簡寫法），從表面上不合法的一串符號找出作者原來想表達的公式： 若整串符號的括弧不成對，直接視為無法重構。 以 lnotlandlorforallexistsRightarrowLeftrightarrow（左至右）的施用順序重構括弧。 相鄰的邏輯連線詞或量詞無法決定施用順序的話，以右邊為先。 重構施用的順序，以被成對括弧包住的部分為優先施用，其次才是落單的斷言符號。 舉例來說 lnot forall x A1_1 x Rightarrow exists x lnot A1_2 x 的重構過程如下 lnot forall x A1_1 x Rightarrow exists x lnot A1_2 x （優先施用 lnot） lnot forall x A1_1 x Rightarrow exists x lnot A1_2 x （施用 exists） lnot forall x A1_1 x Rightarrow exists x lnot A1_2 x （最後施用 Rightarrow） 可以被重構為公式的一串符號則寬鬆的認定為 合式公式。（最明顯的例子就是合式公式最外層的括弧可以省略） 波蘭表示法 波蘭表示法將邏輯連線詞前置於被施用的公式而非傳統的中間。如果沿用以上的＂施用順序＂，這個表示法允許捨棄所有括弧。如公式 forall xforall yA1_1 f1_1 xRightarrownegA1_1 xRightarrow A3_1 f1_1 yxz 轉成波蘭表示法的過程如下 forall xforall yRightarrow A1_1 f1_1 xnegRightarrow A1_1 x A3_1 f1_1 y x z （轉成波蘭表示法的順序） Pi xPi ytext C A1_1 f1_1 xtext Ntext C A1_1 x A3_1 f1_1 y x z （邏輯連結詞的符號轉換） 推理規則 一階邏輯通常只有以下的推理規則（因為將普遍化視為推理規則會有不直觀的限制） 直觀意義非常明顯，就是 pq 且 p 可以推出 q。 在只以謝費爾豎線「 」為基礎邏輯連線詞的公理系統裡，MP 律會被改寫成 公理 邏輯公理 它們實際上是公理模式，代表著 跟自然數一樣多 條的公理。 在有（A1）與（A2）的前提下，（A3）等價於以下的公理模式：（證明請參見下面否定一節。） 另外，在只以謝費爾豎線「 」為基礎邏輯連線詞的公理系統裡，上面三條公理模式等價於下面這條公理模式： 量詞公理 它們實際上也是公理模式。 等式和它的公理 根據不同作者的看法，甚至是理論本身的需求，「等式」在形式理論裡可能是斷言符號或是一段公式（如 a 等於 b 可定義為對所有的 x ， x 屬於 a 等價於 x 屬於 b ）。而如何刻劃直觀上「等式的性質」，有一開始就將「等式的性質」視為公理（模式），但也有視為元定理的另一套處理方法，以下暫且以公理模式的方式處理。以元定理處理的方法會在等式定理詳述。 事實上這兩個公理模式也確保了函式符號 唯一對應 和常數符號的 唯一性，但證明這些性質需要一些元定理，簡便起見合併於下面的等式定理一節講述。 標準語義 一階邏輯的標準語義源於波蘭邏輯學家阿爾弗雷德塔斯基所著《On the Concept of Truth in Formal Languages》。根據上面語法一節，公式是由原子公式遞迴地新增邏輯連結詞而來的，而原子公式是由斷言符號與項所構成的。所以要檢驗一條公式在特定的論域下正不正確，就要規定項的取值，然後檢驗這樣的取值會不會落在斷言符號所對應的關係裡。由此延伸出所有公式的 真假值 。 也就是一套一階邏輯的語義解釋，要包含 變數取值的論域 如何解釋函式符號（為論域中的某個函式）與常數符號（為論域中的某特定元素），以便從特定的變數取值得出項的取值。 如何將斷言符號與論域裡的某關係做對應。 通常一套解釋方法（簡稱為解釋）會以代號 M 表示。 項的取值 量詞的解釋需要指明變數取值範圍的論域 也就是一個集合 D 。而變數可能跟自然數一樣多，換句話說，所有變數在論域 D 取的值可以依序以自然數標下標 也就是一個在 D 取值的數列。如果以 x_1x_2x_3cdots 的代號（不一定是變數本身的表示符號）來列舉變數，那麼從 D 的某套變數取值就以 left langle a_k right rangle_kinmathbb N 或較直觀的符號 left langle a_1 a_2 a_3cdots right rangle 來表示。 一套解釋 M 會將 n 元函式符號 fn_i 解釋成某個 fn_iMDnto D 的 n 元函式；而常數符號 c_l 解釋成特定的 c_lMin D （亦稱為 c_l 的取值為 c_lM），這樣就可以用上面語法一節定義項的方式，遞迴地規定項的取值： 真假的賦值 直觀上要解釋關係最直接的方法，就是列舉所有符合關係的物件；例如如果想說明夫妻關係，可以列舉所有（老公，老婆）的雙元有序對，但並非所有的人類有序對都會在這個關係中。 以此為基礎，若以 Dm 代表所有以 m 個 D 中的元素構成的 m 元有序對的集合（也就是 m 元笛卡兒積） ，那一套解釋 M 會將 m 元斷言符號 Am_j 解釋為一個 Am_jMsubseteq Dm 的 m 元有序對子集合。 這樣就可以依據語法的遞迴定義，以下面的規則對每條公式賦予真值。（這種賦值方式稱為 T 模式，取名於邏輯學家阿爾弗雷德塔斯基） 更進一步的來說 代數化語義 另一種一階邏輯語義的方法可經由命題邏輯的林登鮑姆 塔斯基代數擴充套件而成。有如下幾種型別： 圓柱代數，由阿爾弗雷德塔斯基和其同事提出； 多元代數，由保羅哈爾莫斯提出。 斷言函子邏輯，主要是基於威拉德範奧曼奎因的工作成果。 這些代數都是純粹擴充套件兩元素布林代數而成的格。 塔斯基和葛範德於 1987 年證明，沒有超過包在三個以上的量化內的原子句子的部份一階邏輯，其表示力和關係代數相同。上述部份一階邏輯令人十分地感到有興趣，因為它已足夠表示皮亞諾算術和公理化集合論，包括典型的 ZFC。他們亦證明瞭，具有簡單有序對的一階邏輯和具有兩個有序的投影函式的關係代數等價。 空論域 上述的語義解釋都要求論域為非空集合。但在如自由邏輯之中，設定空論域是被允許的。甚至代數結構的類包含一個空結構（如空偏序集），當允許空論域時，這個類只能是一階邏輯中的一個基本類，不然就要將空結構由類中移除。 不過，空論域存在著一些難點： 許多常見的推理規則只在論域被要求是非空時才為有效的。一個例子為，當 x 不是 phi 內的自由變數時，phi lor exists x psi 會薀涵 exists x phi lor psi。這個用來將公式寫成前束正規化的規則在非空論域中是可靠的，但在允許空論域時則是不可靠的。 在使用變數賦值函式的解釋中，真值的定義不能和空論域一起運作，因為不存在範圍為空的變數賦值函式。（相似地，也無法將解釋賦予上常數符號。）在甚至是原子公式的真值可被定義之前，都必須選定一個變數賦值函式。然後一個句子的真值即可在任一個變數賦值之下定義出其真值，且可證明其真值不依選定的賦值而變。這個做法在賦值函式不存在時不能運作；除非將其改成配上空論域。 因此，若空論域是被允許的，通常也必須被視成特例。不過，大多數的作家會簡單地將空論域由定義中排除。 常用的推理性質 定理與證明 以下介紹一些基本用語和符號 口語上會稱公式 mathcal A （或 vdash_mathcal Lmathcal A ） 為 mathcal L 下的定理（theorem）。而這列 mathcal C_i1leq ileq n 會稱為 vdash_mathcal Lmathcal A 的證明。 例如定理 I vdash_mathcal Lmathcal BRightarrowmathcal B 的證明： 以上其實是蘊含了無限多定理的元定理的證明 因為沒有給出合式公式的明確形式。方便起見，這種元定理還是會稱為定理並以同樣的形式來表達。 直觀上的證明，總是會有一些 前提假設，對此，若以 Gamma 代表一列有限數目的公式，那 這樣稱 mathcal C_i1leq ileq n 為在前提 Gamma 下， mathcal A 的證明；或是說 mathcal A 是 Gamma 的推論結果。 若要特別凸顯 Gamma 裡的一條＂前提條件＂ mathcal B 對＂證明過程＂的重要性，可以用 Gammamathcal Bvdash_mathcal Lmathcal A 的符號去特別凸顯。若 Gamma 裡的公式列舉出來有 mathcal B_1mathcal B_n ，那亦可表示為 mathcal B_1mathcal B_nvdash_mathcal Lmathcal A 證明過程沒有被引用的公式盡可能不寫出來。另一方面從以上對於證明定義可以發現，依怎樣的順序列舉前提條件，對於證明本身是不會有任何影響的。 本節所介紹的符號，在引用哪個理論很顯然的情況下，vdash_mathcal L 的下標 mathcal L 可以省略。 實際的證明常常會＂引用＂別的（元）定理，嚴格來說，就是照抄（元）定理的證明過程，然後作一些修改使符號一致。為了節省證明的篇幅，引用時只會單單列出配合引用（元）定理所得出的公式（形式），並在後面註明引用的（元）定理代號。 演繹元定理 從公理（A1）和（A2）會得出不但直觀且實用的演繹元定理： 證明 （注意這是下的證明）： 假設 mathcal C_1mathcal C_2mathcal C_n 為條件所說 mathcal C 的證明，如果 mathcal C_1 是 Gamma 裡的公式或 mathcal L 的公理，那根據（A1） vdashmathcal C_1Rightarrow mathcal BRightarrowmathcal C_1 所以由 MP 律有 Gammavdashmathcal BRightarrowmathcal C_1 若 mathcal C_1 是 mathcal B，那因為 vdashmathcal BRightarrowmathcal B 所以有 Gammavdashmathcal BRightarrowmathcal C_1 至此 mathcal C_1 的部分證明完畢。 接下來要用歸納法；假設對 ik 都有 Gammavdashmathcal BRightarrowmathcal C_i 。 若 mathcal C_k 是公理、或從 Gamma 來的、或是根本就是 mathcal B，仿造上面 mathcal C_1 的部分就有 Gammavdashmathcal BRightarrowmathcal C_k 剩下沒考慮的狀況是由 MP 律組合出 mathcal C_k 的狀況，也就是有 lmk 使 mathcal C_m 是 mathcal C_lRightarrowmathcal C_k。 由公理 A2 有 vdash mathcal BRightarrow mathcal C_lRightarrowmathcal C_kRightarrow mathcal BRightarrowmathcal C_lRightarrow mathcal BRightarrowmathcal C_k 套用歸納法的假設，加上 MP 律，就會發現 Gammavdashmathcal BRightarrowmathcal C_k 如此可以一路歸納到 mathcal C_n 也就是 mathcal C 的情況，故元定理得證。Box 因為 Gamma 代表的是有限條公式，所以透過演繹元定理可以將證明過程必要的前提條件遞迴地移到 vdash 後，直到不需要任何前提為止；然後由 MP 律可以知道，若有 Gammavdash_mathcal Lmathcal BRightarrowmathcal C ，則有 Gammamathcal Bvdash_mathcal Lmathcal C，如此一來透過演繹元定理搬到推論結果的合式公式，也可以任意的搬回來。所以 Gammavdash_mathcal Lmathcal B 等價於某定理 vdash_mathcal Lmathcal C 。因此也會將 Gammavdash_mathcal Lmathcal B 稱為一個定理。 而從演繹元定理和 MP 律，會有以下直觀且實用的元定理 以下如果需要將引用的定理以演繹元定理進行＂搬移＂，會省略掉搬移的過程並在搬移後得到的結果後標註（D）。如果引用以上的（D1）和（D2）也會省略過程，單有結果和代號標註。 否定 以下的證明會分成使用（A3）的部分跟將公理（A3）取代為（T1）的部分，用以證明兩者的等價性。 證明（使用 A3） （1）negmathcal ARightarrownegnegmathcal ARightarrow negmathcal ARightarrownegmathcal ARightarrowmathcal A （A3） （2）negmathcal ARightarrownegmathcal A （I） （3）negmathcal ARightarrownegnegmathcal ARightarrowmathcal A （D2 with 1 2） （4）negnegmathcal ARightarrow negmathcal ARightarrownegnegmathcal A （A1） （5）negnegmathcal ARightarrowmathcal A （D1 with 3 4） 證明（使用 T1） （1）negneg mathcal A Rightarrow negnegnegneg mathcal A Rightarrow negnegmathcal A （A1） （2）negneg mathcal A （Hyp） （3）negnegnegneg mathcal A Rightarrow negnegmathcal A （MP with 2 1） （4）negmathcal A Rightarrow negnegneg mathcal A （MP with 3 T1） （5）negneg mathcal A Rightarrow mathcal A （MP with 4 T1） （6）mathcal A （MP with 2 5） 證明（使用 A3） （1）negnegnegmathcal ARightarrownegmathcal ARightarrow negnegnegmathcal ARightarrowmathcal ARightarrownegnegmathcal A （A3） （2）negnegnegmathcal ARightarrowmathcal ARightarrownegnegmathcal A （MP with DNe 1） （3）mathcal ARightarrow negnegnegmathcal ARightarrowmathcal A （A1） （4）mathcal ARightarrownegnegmathcal A （D1 with 23） 證明（使用 T1） （1）negnegnegmathcal ARightarrownegmathcal A （DNe） （2）mathcal ARightarrownegnegmathcal A （MP with 1 T1） 上面兩定理表達了雙否定推理上等價於於原公式，引用兩者任一會都以（DN）簡寫。 證明（使用 A3） （1）negmathcal ARightarrownegmathcal BRightarrow negmathcal ARightarrowmathcal BRightarrowmathcal A （A3） （2）negmathcal ARightarrownegmathcal B （Hyp） （3）negmathcal ARightarrowmathcal BRightarrowmathcal A （MP with 1 2） （4）mathcal BRightarrow negmathcal ARightarrowmathcal B （A1） （5）mathcal BRightarrowmathcal A （D1 with 3 4） 證明（使用 T1） （1）negnegmathcal BRightarrowmathcal B （DN） （2）mathcal BRightarrowmathcal A （Hyp） （3）negnegmathcal BRightarrowmathcal A （D with 1 2） （4）mathcal ARightarrownegnegmathcal A （DN） （5）negnegmathcal BRightarrownegnegmathcal A （D1 with 34） （6）negnegmathcal BRightarrownegnegmathcal ARightarrow negmathcal ARightarrownegmathcal B （T1 D） （7）negmathcal ARightarrownegmathcal B （MP with 5 6） 注意到（T2）的證明引用了（T1）（DN），但之前已經證明瞭（A1）（A2）（A3）可以推出（T1）；還有（A1）（A2）（T1）也可以推出（DN），所以註明使用（T1）即可。 以上二定理說明 mathcal BRightarrowmathcal A 推理上等價於 negmathcal ARightarrownegmathcal B ，引用這兩個定理中任一都以（T）表示。 至此，已經可以證明（A1）（A2）（T1）可以推出（A3）： （T1）可推出（A3）的證明 由 MP 律顯然有 negmathcal Bnegmathcal B Rightarrow mathcal B vdash mathcal B （1）negmathcal B Rightarrow negmathcal B Rightarrow mathcal B Rightarrow mathcal B （對上面的定理使用兩次演繹元定理） （2）negmathcal B Rightarrow negmathcal B Rightarrow neg negmathcal B Rightarrow mathcal B （D1 with 1 T2） （3） negmathcal B Rightarrow negmathcal B Rightarrow negmathcal B Rightarrow neg negmathcal B Rightarrow mathcal B （MP with A2 2） （4） negmathcal B Rightarrow neg negmathcal B Rightarrow mathcal B（MP with I 3） （5） negmathcal B Rightarrow mathcal B Rightarrow mathcal B（MP with T1 4） （6）negmathcal BRightarrow negmathcal C（Hyp） （7）negmathcal B Rightarrow mathcal C（Hyp） （8）negmathcal C Rightarrow negnegmathcal B（MP with T2 7） （9）negmathcal B Rightarrow negnegmathcal B （D1 with 6 8） （10）negmathcal B Rightarrow mathcal B （D1 with DN 9） （11）mathcal B （MP with 5 10） 所以綜合以上所述，在有（A1）（A2）的前提下，公理（T1）等價於公理（A3）。 由（T）可以得到類似於公理（A3）的定理 證明 （1）negmathcal BRightarrownegnegmathcal ARightarrow negmathcal BRightarrownegmathcal ARightarrowmathcal B （A3） （2）negmathcal ARightarrowmathcal BRightarrow negmathcal BRightarrownegnegmathcal A （T D） （3）negmathcal ARightarrowmathcal B （Hyp） （4）negmathcal BRightarrownegnegmathcal A （MP with 2 3） （5）negmathcal BRightarrownegmathcal ARightarrowmathcal B （MP with 1 4） （6）mathcal ARightarrowmathcal BRightarrow negmathcal BRightarrownegmathcal A （T D） （7）mathcal ARightarrowmathcal B （Hyp） （8）negmathcal BRightarrownegmathcal A （MP with 6 7） （9）mathcal B （MP with 5 8） 實質條件 以下的定理重現了實質條件的直觀理解。 證明 （1）negmathcal A （Hyp） （2）mathcal A （Hyp） （3）negmathcal BRightarrownegmathcal ARightarrow negmathcal BRightarrowmathcal ARightarrowmathcal B （A3） （4）negmathcal ARightarrow negmathcal BRightarrownegmathcal A （A1） （5）negmathcal BRightarrownegmathcal A （MP with 4 1） （6）mathcal ARightarrow negmathcal BRightarrowmathcal A （A1） （7）negmathcal BRightarrowmathcal A （MP with 6 2） （8）negmathcal BRightarrowmathcal ARightarrowmathcal B （MP with 35） （9）mathcal B （MP with 87） 證明 首先注意到 mathcal Amathcal ARightarrowmathcal Bvdashmathcal B （MP） （1）mathcal ARightarrow mathcal ARightarrowmathcal BRightarrowmathcal B （0 D） （2）mathcal ARightarrowmathcal BRightarrowmathcal BRightarrownegmathcal BRightarrow neg mathcal ARightarrowmathcal B （T） （3）mathcal A （Hyp） （4）mathcal ARightarrowmathcal BRightarrowmathcal B （MP with 1 3） （5）negmathcal BRightarrow neg mathcal ARightarrowmathcal B （MP with 2 4） （6）negmathcal B （Hyp） （7）neg mathcal ARightarrowmathcal B （MP 5 6） 證明 （1）mathcal BRightarrow mathcal ARightarrowmathcal B （A1） （2）mathcal BRightarrow mathcal ARightarrowmathcal BRightarrowneg mathcal ARightarrowmathcal BRightarrow negmathcal B （T） （3）neg mathcal ARightarrowmathcal BRightarrow negmathcal B （MP with 1 2） （4）neg mathcal ARightarrowmathcal B （Hyp） （5）negmathcal B （MP with 3 4） 證明 （1）negmathcal ARightarrow mathcal ARightarrowmathcal B （M0 D） （2）negmathcal ARightarrow mathcal ARightarrowmathcal BRightarrowneg mathcal ARightarrowmathcal BRightarrow negnegmathcal A （T） （3）neg mathcal ARightarrowmathcal BRightarrow negnegmathcal A （MP with 1 2） （4）neg mathcal ARightarrowmathcal B （Hyp） （5）negnegmathcal A （MP with 34） （6）mathcal A （MP with 5 DN） 反證法 證明 （1）mathcal ARightarrownegmathcal BRightarrow negnegmathcal BRightarrownegmathcal A （T D） （2）mathcal ARightarrownegmathcal B （Hyp） （3）negnegmathcal BRightarrownegmathcal A （MP with 1 2） （4）mathcal B （Hyp） （5）negnegmathcal B （MP with DN 4） （6）negmathcal A （MP with 3 5） 邏輯與和邏輯或 且與或的交換性 以下為邏輯與的交換性 證明 （1）mathcal BRightarrownegmathcal ARightarrow mathcal ARightarrownegmathcal B （C1 D） （2）mathcal BRightarrownegmathcal ARightarrow mathcal ARightarrownegmathcal BRightarrowneg mathcal ARightarrownegmathcal BRightarrow neg mathcal BRightarrownegmathcal A （T D） （3）neg mathcal ARightarrownegmathcal BRightarrow neg mathcal BRightarrownegmathcal A （MP with 12） 類似的，（C2）正是邏輯或的交換性： 且與或的直觀意義 ＂且＂的直觀意義是實質條件元定理的直接結果 從（AND）和 Leftrightarrow 的符號定義可知，vdashmathcal BLeftrightarrowmathcal C 的證明可以拆成兩部分；習慣上會以「（ Rightarrow ） 」標示 vdashmathcal BRightarrowmathcal C 部分的證明，而「（ Leftarrow ） 」標示 vdashmathcal CRightarrowmathcal B 部分的證明。 類似的，＂或＂的直觀意義是（M0）跟（D）的直截結果 以下的定理則是（A3）的直截結果 證明 （1） negmathcal ARightarrowmathcal B （Hyp） （2） mathcal BRightarrowmathcal C （Hyp） （3） negmathcal ARightarrowmathcal C （D1 with 1 2） （4） mathcal ARightarrowmathcal C （Hyp） （5） mathcal C （A3 with 3 4） 且與或的結合律 對於＂且＂，展開符號定義後，可以從直觀意義輕鬆地得到 ＂或＂也有類似的性質 且與或的分配律 ＂且＂和＂或＂之間還有分配律 證明 （Rightarrow） （1）mathcal Awedge mathcal Bveemathcal C （Hyp） （2）mathcal A （MP with 1 AND） （3）negmathcal BRightarrowmathcal C （MP with 1 AND） （4）negneg mathcal ARightarrownegmathcal B （Hyp） （5）mathcal ARightarrownegmathcal B （MP with 4 DN） （6）mathcal ARightarrowmathcal C （D1 with 3 5） （7）mathcal C （MP with 2 5） （8）mathcal Awedgemathcal C （MP twice with 2 7 AND） 也就是 mathcal Awedge mathcal Bveemathcal Cneg mathcal Awedgemathcal Bvdashmathcal Awedgemathcal C 再套用（D）就會得到 mathcal Awedge mathcal Bveemathcal Cvdash mathcal Awedgemathcal Bvee mathcal Awedgemathcal C （Leftarrow） （1）neg mathcal Awedgemathcal BRightarrowmathcal Awedgemathcal C （Hyp） （2）neg mathcal Awedgemathcal BRightarrowmathcal A （D1 with 1 AND） （3）neg mathcal Awedgemathcal BRightarrowmathcal C （D1 with 1 AND） （4）negmathcal ARightarrow mathcal Awedgemathcal B （MP with 2 C2） （5）negmathcal CRightarrow mathcal Awedgemathcal B （MP with 3 C2） （6）negmathcal ARightarrowmathcal A （D1 with 4 AND） （7）negmathcal CRightarrowmathcal B （D1 with 4 AND） （8）mathcal A （A3 with 6 I） （9）mathcal Awedge mathcal Bveemathcal C （MP twice with 7 8 AND） 也就是 mathcal Awedgemathcal Bvee mathcal Awedgemathcal Cvdashmathcal Awedge mathcal Bveemathcal C 證明 （Rightarrow） （1）negmathcal ARightarrow mathcal Bwedgemathcal C（Hyp） （2）negmathcal ARightarrowmathcal B （D1 with 1 AND） （3）negmathcal ARightarrowmathcal C （D1 with 1 AND） （4）mathcal Aveemathcal Bwedge mathcal Aveemathcal C（MP twice with 2 3AND） 也就是 mathcal Avee mathcal Bwedgemathcal Cvdash mathcal Aveemathcal Bwedge mathcal Aveemathcal C （Leftarrow） （1）negmathcal ARightarrowmathcal Bwedge negmathcal ARightarrowmathcal C （Hyp） （2）negmathcal ARightarrowmathcal B （MP with 1 AND） （3）negmathcal ARightarrowmathcal C （MP with 1 AND） （4）negmathcal A （Hyp） （5）mathcal B （MP with 24） （6）mathcal C （MP with 34） （7）mathcal Bwedgemathcal C （MP twice with 5 6 AND） 也就是 mathcal Awedge mathcal Bveemathcal Cnegmathcal Avdashmathcal Bwedgemathcal C 再使用一次推論元定理會得到 mathcal Awedge mathcal Bveemathcal Cvdashmathcal Avee mathcal Bwedgemathcal C 德摩根定律 以下的元定理的名字來自於英國邏輯學家奧古斯塔斯德摩根。 證明 （Rightarrow） （1）negneg mathcal ARightarrow negmathcal B （Hyp） （2）mathcal ARightarrow negmathcal B （MP with 1 DN） （3）negnegmathcal ARightarrowmathcal A （DN） （4）negnegmathcal ARightarrow negmathcal B （D1 with 2 3） （Leftarrow） （1）negnegmathcal ARightarrow negmathcal B （Hyp） （2）mathcal ARightarrownegnegmathcal A （DN） （3）mathcal ARightarrow negmathcal B （D1 with 1 2） （4）negneg mathcal ARightarrow negmathcal B （MP with DN 3） 證明 （Rightarrow） （1）neg negmathcal ARightarrowmathcal B （Hyp） （2）negmathcal A （MP with M2 1） （3）negmathcal B （MP with M3 1） （4）negmathcal Awedge negmathcal B （AND with 2 3） （Leftarrow） （1）negmathcal A （Hyp） （2）negmathcal B （Hyp） （3）neg negmathcal ARightarrowmathcal B （M1） 普遍化元定理 公理模式（A7）可以稍加延伸成以下的元定理 證明 假設 mathcal C_1mathcal C_2mathcal C_n 就是 mathcal B 的證明，那 mathcal C_1 一定是公理，根據（A7）可以得到 vdash forall xmathcal C_1 若對 ik 都有 vdash forall xmathcal C_i ，如果 mathcal C_k 是公理的話顯然 vdash forall xmathcal C_k 。 若有 lmk 使得 mathcal C_m mathcal C_lRightarrowmathcal C_k 那根據歸納法的假設跟（A6）有 vdash forall xmathcal C_lRightarrow forall xmathcal C_k 上式配上 vdash forall xmathcal C_l 就可以得到 vdash forall xmathcal C_k 以此歸納到 mathcal C_n 也就是 mathcal B，故本元定理得證。Box 更進一步，有以下元定裡 證明 以下對前提條件的數量 n 做歸納。 若 n 1，根據前提有 mathcal A_1vdashmathcal B 以（D）將 mathcal A_1 往前搬，再套用定理的普遍化，會得到 vdash forall xmathcal A_1Rightarrowmathcal B 再根據（A5）和 MP 律，就可以得到 vdashmathcal A_1Rightarrow forall xmathcal B 也就是本元定理要求的結果。 現在假設 n k 的情況下元定理會成立。元定理的前提條件根據（D）可以寫為 mathcal A_1mathcal A_2mathcal A_k1vdashmathcal A_kRightarrowmathcal B 則根據歸納法的假設 mathcal A_1mathcal A_2mathcal A_k1vdash forall xmathcal A_kRightarrowmathcal B 上式配上（A5），本元定理在 n k 的情況就可以得到證明，故本元定理得證。Box （GEN）可以稍加修飾，以套用在含有存在量詞的公式上 等價代換 以下的定理，說明兩條「等價」的公式可以互相代換 證明 以下的證明都會用到這三條公式： a mathcal ALeftrightarrowmathcal B （from Gamma） b mathcal ARightarrowmathcal B （MP with AND a） c mathcal BRightarrowmathcal A （MP with AND a） 1 1 negmathcal BRightarrow negmathcal A （MP with T b） 2 negmathcal ARightarrow negmathcal B （MP with T c） 3 negmathcal ALeftrightarrow negmathcal B （AND with 3 5） 2 Rightarrow 1 mathcal CRightarrowmathcal A（Hyp） 2 mathcal CRightarrowmathcal B（D1 with 1 b） Leftarrow 1 mathcal CRightarrowmathcal B（Hyp） 2 mathcal CRightarrowmathcal A（D1 with 1 c） 3 Rightarrow 1 mathcal ARightarrowmathcal C（Hyp） 2 negmathcal CRightarrow negmathcal A（MP with T 1） 3 negmathcal ARightarrow negmathcal B（MP with T c） 4 negmathcal CRightarrow negmathcal B（D1 with 2 3） 5 mathcal BRightarrowmathcal C（MP with T 4） Leftarrow 1 mathcal BRightarrowmathcal C（Hyp） 2 negmathcal CRightarrow negmathcal B（MP with T 1） 3 negmathcal BRightarrow negmathcal A（MP with T b） 4 negmathcal CRightarrow negmathcal A（D1 with 2 3） 5 mathcal ARightarrowmathcal C（MP with T 4） 4 Rightarrow 1forall xmathcal ARightarrowmathcal B（GEN with x a） 2forall xmathcal ARightarrow forall xmathcal B（MP with A6 1） Leftarrow 1forall xmathcal BRightarrowmathcal A（GEN with x c） 2forall xmathcal BRightarrow forall xmathcal A（MP with A6 1） 這些定理通常是混合使用，以達到「等價代換」的結果，例如，考慮到「邏輯與」是以下的符號定義： mathcal A wedge mathcal C neg mathcal A Rightarrow negmathcal C 那如果假設 vdash mathcal A Leftrightarrow mathcal B ，就有： vdash mathcal A Rightarrow negmathcal C Leftrightarrow mathcal B Rightarrow negmathcal C vdash neg mathcal A Rightarrow negmathcal C Leftrightarrow neg mathcal B Rightarrow negmathcal C 換句話說，從「 vdash mathcal A Leftrightarrow mathcal B 」可以得到「 vdash mathcal A wedge mathcal C Leftrightarrow mathcal B wedge mathcal C」，直觀上相當於，把 mathcal A 都代換成 mathcal B 則兩式等價。日後像這樣遞迴地套用上述定理來得到「代換則某兩式等價」，都簡單地以「引用（Equv）」來表示這段實際的推演過程。 量詞的可交換性 由普遍化，很容易證明以下關於＂交換性＂的定理 注意最後（3）一般來說是不能反向的，只要想到＂對每個 a，都有一個數（也就是 a ），使 aa0＂，但是任取一個 a 的數 a 和任意的數 b ， ba 並不一定會為零。 量詞的簡寫 數學中常常有 ＂對所有 epsilon 0 有＂，或是 ＂存在 delta 0 使的＂。而兩句話比較清晰，接近一階邏輯語言的說法是 ＂對所有 epsilon ，只要 epsilon 0 則＂ 與 ＂存在 delta ， delta 0 且＂。「大於」直觀上是一個二元關係，也就是說，在公理化集合論裡對應於一條 epsilon （ 或 delta ） 在裡面完全自由的合式公式。據此，可做以下的符號定義 但直觀上也會說 ＂對所有 n 0 和 m 0 有＂，這樣連續，帶有條件的全稱量詞也是有＂交換性＂的。 為了討論這個問題，首先需要一些前置的定理 證明 （Rightarrow） mathcal ARightarrow mathcal BRightarrowmathcal Cvdash mathcal Awedgemathcal BRightarrowmathcal C 注意到 （AND） mathcal Awedgemathcal Bvdashmathcal A （AND） mathcal Awedgemathcal Bvdashmathcal B 所以 mathcal ARightarrow mathcal BRightarrowmathcal Cmathcal Awedgemathcal Bvdashmathcal C 再套上演繹元定理就可以得證。Box （Leftarrow） mathcal Awedgemathcal BRightarrowmathcal Cvdashmathcal ARightarrow mathcal BRightarrowmathcal C 注意到 （AND） mathcal Amathcal Bvdashmathcal Awedgemathcal B 所以 mathcal Awedgemathcal BRightarrowmathcal Cmathcal Amathcal Bvdashmathcal C 再套上演繹元定理就可以得證。Box 這樣就可以證明以下定理 證明 （Rightarrow） forall mathcal AxTforall mathcal BySmathcal C vdash forall xforall ymathcal AxTwedgemathcal BySRightarrowmathcal B （1）forall x mathcal AxT Rightarrow forall ymathcal ByS Rightarrow mathcal C （Hyp） （2）mathcal AxT Rightarrow forall ymathcal ByS Rightarrow mathcal C （MP with 1 A4） （3）mathcal AxT Rightarrow mathcal ByS Rightarrow mathcal C （D1 with 2 A4） （4）mathcal AxT wedge mathcal ByS Rightarrow mathcal C （MP with abb 3） （5）forall xforall ymathcal AxTwedgemathcal BySRightarrowmathcal B （GEN with 4 twice） （Leftarrow） forall xforall ymathcal AxTwedgemathcal BySRightarrowmathcal B vdash forall mathcal AxTforall mathcal BySmathcal C （1）forall xforall ymathcal AxTwedgemathcal BySRightarrowmathcal B （Hyp） （2）mathcal AxTwedgemathcal BySRightarrowmathcal B （MP with 2 A4 twice） （3）mathcal AxT Rightarrow mathcal ByS Rightarrow mathcal C （MP with abb 2） （4）forall y mathcal AxT Rightarrow mathcal ByS Rightarrow mathcal C （GEN with 3） （5）mathcal AxT Rightarrow forall ymathcal ByS Rightarrow mathcal C （MP with A5 4） （6）forall x mathcal AxT Rightarrow forall ymathcal ByS Rightarrow mathcal C （GEN with 5） 如果再加上 ＂項 S 裡沒有 x ＂ 那就是 ＂對所有 n 0 和 m 0 有＂，也就是以上所討論的情況了。以這個定理配上全稱量詞本身的交換性定理，那這句話就可以等價的說成 ＂對所有 m 和 n 若 n 0 且 m 0 則＂，所以根據＂且＂的可交換性，可以進一步的說成 ＂對所有 m 0 和 n 0 有＂，所以連續帶有條件的全稱量詞是＂可交換的＂。也就是說 但對於帶條件的存在量詞，首先可以得到以下非等價的定理。 這是因為一般來說， exists ymathcal D 不總是能推出 mathcal D 。雖說如此，只要對公式做出一些限制，就會有以下交換的直觀定理： 證明 Rightarrow 1 mathcal Q Rightarrow forall xnegmathcal R Hyp 2 mathcal Q Rightarrow negmathcal R D1 with 1 and A4 換句話說 mathcal Q Rightarrow forall xnegmathcal R vdash mathcal Q Rightarrow negmathcal R 這樣使用 GEN 有 mathcal Q Rightarrow forall xnegmathcal R vdash forall xmathcal Q Rightarrow negmathcal R 這樣對上式使用 De Morgan 和 T 就有 vdash exists xmathcal R wedge mathcal mathcal Q Rightarrow exists xmathcal R wedge mathcal Q Leftarrow 1 forall xmathcal Q Rightarrow negmathcal R Rightarrow mathcal Q Rightarrow forall xnegmathcal R A5 2 forall xnegmathcal Q vee negmathcal R Rightarrow negmathcal Q vee forall xnegmathcal R vee 的定義 3 forall xneg mathcal Q wedge mathcal R Rightarrow neg mathcal Q vee exists xmathcal R MP with 2 De Morgan 4 mathcal Q vee exists xmathcal R Rightarrow exists xmathcal Q wedge mathcal R MP with 3 T 也就是直觀上，「存在 x 使得 x0 且 y0」與｢y0 且存在 x 使得 x0」是一樣的意思。 等式定理 一般來說，等式 xy 會被視為某個合式公式 mathcal Ex y 的簡寫。若使用元定理的形式刻劃等式的性質，會作如下的定義 上面的定義符合函式符號直觀上的＂唯一對應＂。為了證明常數符號的＂唯一性＂，需要以下元定理 證明 （Rightarrow） 從（E1）（E2）（E2＂）（E3）推出（E2）的過程分成幾個階段推廣（E2） （1）含有常數符號的原子公式 取 c_j 為任意常數符號。目標是證明：對一段含常數符號 c_j 但不含任何函式符號的原子公式 mathcal Bxxc_j ，若 mathcal Bxyc_j 表 mathcal Bxxc_j 裡某一個 x 被取代為 y 的新公式，則 vdash_mathcal Lmathcal Ex yRightarrow mathcal Bxxc_jRightarrowmathcal Bxyc_j （a） （a）證明過程如下： 取一個不曾在 mathcal Bxyc_j 出現的變數 z。若以 mathcal Bxxz 表示 mathcal Bxxc_j 內的 c_j 都被取代成 z 的新公式，將之帶入 （E2）有 vdash_mathcal Lmathcal Ex yRightarrow mathcal BxxzRightarrowmathcal Bxyz 對上式，以變數 z 取（GEN）有 vdash_mathcal Lforall zmathcal Ex yRightarrow mathcal BxxzRightarrowmathcal Bxyz （b） 但從（A4）有 vdash_mathcal Lforall zmathcal Ex yRightarrow mathcal BxxzRightarrowmathcal BxyzRightarrowmathcal Ex yRightarrow mathcal Bxxc_jRightarrowmathcal Bxyc_j 這樣上式就可以與（b）式取 MP，就會有（a）。 （2）含有任意項的原子公式 對一列項 T_1cdotsT_m ，若以 S 代表項 T_k 裡的一個 x 被取代成 y 而成的新項，那這樣可以用 Am_j T_1cdotsScdotsT_m 代表 Am_j T_1cdotsT_kcdotsT_m 的 T_k 被取代成 S 所構成的新公式。那現在的目標是證明 vdash_mathcal Lmathcal Ex yRightarrow Am_j T_1cdotsT_kcdotsT_mRightarrow Am_j T_1cdotsScdotsT_m （c） 但根據（A4）和（GEN），只需要證明 vdash_mathcal Lmathcal Ex yRightarrow Am_j x_1cdotsx_k1T_kx_k1cdotsx_mRightarrow Am_j x_1cdotsx_k1Sx_k1cdotsx_m （c） 就足夠了。更進一步的，由下面兩定理可以推出（c） vdash_mathcal Lmathcal EzzprimeRightarrow Am_j x_1cdotsx_k1zx_k1cdotsx_mRightarrow Am_j x_1cdotsx_k1zprimex_k1cdotsx_m （d） vdash_mathcal Lmathcal Ex yRightarrowmathcal ET_kS （e） 也就是對（c）以變數 z 和 zprime 連續兩次使用（GEN），然後連續兩次與（A4）以 MP 律配合會得到 vdash_mathcal Lmathcal ET_kSRightarrow Am_j x_1cdotsx_k1T_kx_k1cdotsx_mRightarrow Am_j x_1cdotsx_k1Sx_k1cdotsx_m 然後將上式與（e）帶入（D1）就有（c）。但事實上（d）就是（E2）的特殊狀況，所以接下來只需要從（E2＂）證明（e），為此根據項的遞迴定義，以對項 T_k 裡有的函式符號數量做歸納： 函式符號數量為零的時候，（e）有兩種狀況（其中 c_j 為任意常數符號） vdash_mathcal Lmathcal Ex yRightarrowmathcal Exy （e0） vdash_mathcal Lmathcal Ex yRightarrowmathcal Ec_jc_j （e0） （e0）就只是（I）故顯然成立；另一方面，對（E1）使用（GEN）然後與（A4）配合就會有 vdash_mathcal Lmathcal Ec_jc_j 故與（A1）配合就會有（e0），至此函式符號數量為零情況的（e）已被證明。 若 T_k 內函式符號數量為 l 個，事實上會有一列函式符號數量小於 l 的項 S_1cdotsS_n ，而有 T_kfn_i S_1cdotsS_n 若以 S_rprime 代表 S_r 中的某個 x 被取代成 y 而成的新項，那這就是 T_k 取代成新項 S 的詳細過程，那歸納法的前提就是 vdash_mathcal Lmathcal Ex yRightarrowmathcal ES_rS_rprime 那對（E2＂）使用 n 次（GEN），然後同樣與（A4）以 MP 律配合 n 次有 vdash_mathcal Lmathcal ES_rS_rprimeRightarrowmathcal Efn_i S_1cdotsS_rcdotsS_nfn_i S_1cdotsS_rprimecdotsS_n 也就是 vdash_mathcal Lmathcal ES_rS_rprimeRightarrowmathcal ET_kS 故將上式與歸納前提套入（D1）就會有 vdash_mathcal Lmathcal Ex yRightarrowmathcal ET_kS 至此（e）已被歸納法證明。 （3）任意的公式 為了將（E2）從任意原子公式推廣到任意公式，根據語法對公式的遞迴定義，要分別對公式裡的量詞和邏輯連線詞的數量做歸納。 假設 mathcal Bxx 為不含邏輯連線詞的任意公式： mathcal Bxx 沒有量詞的情況就只是（c）而已，故成立。 若假設對於量詞數量為 l 的 mathcal Bxx 有（ mathcal Bxy 代表 mathcal Bxx 內某個自由的 x 被取代成 y 所成的新公式） vdash_mathcal Lmathcal Ex yRightarrow mathcal BxxRightarrowmathcal Bxy 首先注意到新增量詞的時候，不可以取 forall x 或是 forall y ，否則上面的自由取代就會完全被破壞。故取個不是 x 也不是 y 的任意變數 z ，對上式使用（GEN），然後與（A6）、（A5）配合使用 MP 律有 vdash_mathcal Lmathcal Ex yRightarrow forall zmathcal BxxRightarrowforall zmathcal Bxy 上式也就是量詞數量為 l1 的狀況，而把（E2）推廣到了不含邏輯連線詞的任意公式上。 接下來對不含「 Rightarrow 」的任意公式裡的「 neg 」的數量做歸納： 「 neg 」的數量為零的情況剛剛已經證明，不再贅述。 假設「 neg 」的數量為 l ，沒有「 Rightarrow 」的公式下（E2）都對，那對「 neg 」的數量為 l 的 mathcal Bxx 有（特別注意到推廣的（E2）也可以將 mathcal Bxy 裡唯一的 y 取代成 x） vdash_mathcal Lmathcal Ey xRightarrow mathcal BxyRightarrowmathcal Bxx （f） 那根據（T）有 vdash_mathcal Lmathcal BxyRightarrowmathcal BxxRightarrow negmathcal BxxRightarrownegmathcal Bxy （g） 這樣對（f）和（g）套用（D1），結果再和（E3）套用（D1）一次就有 vdash_mathcal Lmathcal Ex yRightarrow negmathcal BxxRightarrownegmathcal Bxy （f） 上式也就「 neg 」的數量為 l1 的情況，故把（E2）推廣到了僅不含「 Rightarrow 」的任意公式上。 為了要推廣到任意的公式上，我要要對「 Rightarrow 」的數量做歸納： 「 Rightarrow 」的數量為零的情況剛剛已經證明，不再贅述。 假設「 Rightarrow 」的數量小於 l 的公式下（E2）都對，那對但數量合起來為 l 的 mathcal Bxx 與 mathcal Cxx 就會滿足 vdash_mathcal Lmathcal Ex yRightarrow mathcal BxxRightarrowmathcal Bxy  vdash_mathcal Lmathcal Ex yRightarrow mathcal CxxRightarrowmathcal Cxy  考慮到（D1）有 mathcal BxxRightarrowmathcal Cxxmathcal CxxRightarrowmathcal Cxyvdash_mathcal Lmathcal BxxRightarrowmathcal Cxy mathcal BxyRightarrowmathcal Bxxmathcal BxxRightarrowmathcal Cxxvdash_mathcal Lmathcal BxxRightarrowmathcal Cxy 那配上與就有 vdash_mathcal Lmathcal Ex yRightarrowmathcal BxxRightarrowmathcal CxxRightarrow mathcal BxxRightarrowmathcal Cxy vdash_mathcal Lmathcal Ex yRightarrowmathcal BxxRightarrowmathcal CxxRightarrow mathcal BxyRightarrowmathcal Cxx 上兩式就是所有「 Rightarrow 」的數量為 l1 的情況，故把（E2）推廣到了任意公式。 最後，取代 n1 個 x 的狀況，就是取代 n 後再取代一次。所以可以由歸納法，從推廣後的（E2）推出（E2） （ Leftarrow ） 首先（E2）顯然只是（E2）的特例；要得到（E2＂）只要注意到由（E2）有 vdash_mathcal Lmathcal Ex_kyRightarrowmathcal Efn_i x_1cdotsx_kcdotsx_nfn_i x_1cdotsx_kcdotsx_nRightarrowmathcal Efn_i x_1cdotsx_kcdotsx_nfn_i x_1cdotsycdotsx_n 然後對（E1）使用（GEN）再配合（A4）使用 MP 律有 vdash_mathcal Lmathcal Efn_i x_1cdotsx_kcdotsx_nfn_i x_1cdotsx_kcdotsx_n 所以對上面兩式套用（D2）就有（E2＂）。 至於（E3），注意到由（E2）有 vdash_mathcal Lmathcal ExyRightarrow mathcal ExxRightarrowmathcal Eyx 那這樣對上式和（E1）套用（D2）就有（E3） 從上面可以得知，如果等式符號僅僅為斷言符號，那等式和它的公理一節的等式公理模式，是等價於本節的（E1）（E2）（E2＂）。 由上面的元定理，對帶有等式符號的 mathcal L 可以證明以下的等式性質 對任意常數符號 c ，上列元定理確保了 vdash_mathcal Lcc xcycvdash_mathcal Lxy 也就是常數符號的＂唯一性＂。 函式符號與唯一性 唯一性 數學討論中，常常唯一存在某個符合特定條件的數，像是「存在唯一的實數 sinR 使的對所有的實數 rinR ， r s r 」；更精確地來說，這句話的意思是： 「存在 sinR 使的對所有的實數 rinR ， r s r」且「對所有的 sprimesinR 和所有 rinR，若 r s r 且 r sprime r 則 s sprime 」 這樣一般來說，可以對任意變數 x 和合式公式 mathcal Bx 做以下的符號定義： 注意到要能定義唯一性，一階邏輯理論一定要帶有等號。 新舊理論的等效條件 上節所提到的例子，實際上就是所謂的實數 0 ，但常數符號不能憑空從理論中冒出來，所以仔細來說，「定義實數 0 」的過程應該是在原來的理論新增新的常數符號「 0 」與以下的公理： 「對所有的實數 rinR 有 r 0 r 」 這樣的話，「 r 0」就是一條含有新常數符號的敘述，它應等價於： 存在 sinR 使「r s 且對所有的 x inR ， x s x」 也就是說，新增「 0 」創造了一套新理論，新理論的每條新敘述會對應到舊理論的某條舊敘述，且照理來說，新的對舊的也會對，反之亦然。 更一般的來說，如果新的一階邏輯理論，是在舊的理論增添一些新符號跟新公理（並額外要求新符號與舊公理相容），那為了讓新舊理論等效，對於任意新理論的合式公式 mathcal C ，都要有某條相應的舊理論公式 mathcal Cprime 滿足以下條件： 從條件（2）事實上就可以推出「若 vdash_o mathcal Cprime ，則有 vdash_n mathcal C 」，因為 vdash_o mathcal Cprime 的話， 新理論只是擴張舊理論而沒改變舊理論固有的定理，所以有 vdash_n mathcal Cprime ，但這樣根據條件（2）跟 MP 律就會有 vdash_n mathcal C。所以條件（2）事實上是比「舊的對那新的也對」強的條件，但在之後的推導上（2）會比較方便。 預備定理 在以嚴謹的方式實踐以上提及的直觀動機前，需要一個預備定理 證明 （Rightarrow） existsmathcal Bx vdash exists x mathcal Bx wedge mathcal Cx Rightarrow forall x mathcal Bx Rightarrow mathcal Cx 以下取一個不曾出現的變數 y 展開唯一性的定義 （1）forall xforall y mathcal Bx wedge mathcal By Rightarrow x y （Hyp） （2）mathcal By （Hyp） （3）mathcal Bx wedge mathcal Cx （Hyp） （4）mathcal Bx wedge mathcal By Rightarrow x y （MP with A4 1） （5）mathcal Bx （MP with AND 3） （6）mathcal Bx wedge mathcal By （MP twice with AND 2 5） （7）x y （MP with 4 6） （8）x y Rightarrow mathcal Cx Rightarrow mathcal Cy （E2） （9）mathcal Cx Rightarrow mathcal Cy （MP with 7 8） （10）mathcal Cx （MP with AND 3） （11）mathcal Cy （MP with 9 10） 這樣根據（AND）和 D1 有 exists x mathcal Bx mathcal By mathcal Bx wedge mathcal Cx vdash mathcal Cy 那這樣先使用（D）把 mathcal By 移到左邊，並對變數 x 使用（GENe）有 exists x mathcal Bx exists x mathcal Bx wedge mathcal Cx vdash mathcal By Rightarrow mathcal Cy 那這樣再對變數 y 使用（GEN）有 exists x mathcal Bx exists x mathcal Bx wedge mathcal Cx vdash exists y mathcal By Rightarrow mathcal Cy 再使用（A4）把右側的變數 y 替換成 x ，再對 x 使用（GEN）有 exists x mathcal Bx exists x mathcal Bx wedge mathcal Cx vdash exists x mathcal Bx Rightarrow mathcal Cx 所以根據（D），本部分得証。 （Leftarrow） existsmathcal Bx vdash forall x mathcal Bx Rightarrow mathcal Cx Rightarrow exists x mathcal Bx wedge mathcal Cx （1）forall x mathcal Bx Rightarrow mathcal Cx （Hyp） （2）mathcal Bx （Hyp） （3）mathcal Bx Rightarrow mathcal Cx （MP with A4 1） （4）mathcal Cx （MP with 2 3） （4）mathcal Bx wedge mathcal Cx （MP twice with AND 2 4） 也就是說 forall x mathcal Bx Rightarrow mathcal Cx mathcal Bx vdash mathcal Bx wedge mathcal Cx 對變數 x 使用（GENe）有 forall x mathcal Bx Rightarrow mathcal Cx exists x mathcal Bx vdash exists x mathcal Bx wedge mathcal Cx 這樣根據（AND）和 D1 有 forall x mathcal Bx Rightarrow mathcal Cx exists x mathcal Bx vdash exists x mathcal Bx wedge mathcal Cx 所以根據（D），本部分得証。 新理論的假設 一般來說，如果變數 t_1t_2ldotst_nx 在 mathcal Bt_1t_2ldotst_nx 完全自由，且舊理論裡有： （U）vdash_o exists x mathcal Bt_1t_2ldotst_nx 那所謂的新理論，就是新增一個函式符號 fn_k 和以下的新公理： （Uprime）mathcal Bt_1t_2ldotst_nfn_k t_1t_2ldotst_n 如果僅僅是： vdash_o exists x mathcal Bx 的話，新增的是常數符號 c_k 與以下的新公理： （U）mathcal Bc_k 新增常數符號的情況可視為新增函式符號情況的特例，因為常數符號可以視為「零變數」的函式符號。 但不管如何，還需假設 fn_k 和新理論的邏輯公理、量詞公理相容，也就是所有公理模式須涵蓋內含 fn_k 的項。特別像是（A4）這種將自由變數代換成項的公理模式，也就是說，若項 T 內含 fn_k ，且公式 mathcal Dx 內自由的 x 都不在 T 的變數的量詞範圍內，那 forall x mathcal Dx Rightarrow mathcal DT 仍然是新理論的公理。 另外還需要考慮到 fn_k 與等號的相容性（換句話說，新理論仍須是帶等號的一階邏輯理論），這樣的話，考慮到上面等式定理所述的條件（E2），需額外假設： 這樣就有以下直觀的定理 證明 （Rightarrow） vdash_n x fn_k t_1t_2ldotst_n Rightarrow mathcal Bt_1t_2ldotst_nx （1） y x Rightarrow mathcal Bt_1t_2ldotst_ny Rightarrow mathcal Bt_1t_2ldotst_nx （E2） （2） forall yy x Rightarrow mathcal Bt_1t_2ldotst_n y Rightarrow mathcal Bt_1t_2ldotst_n x （GEN with 1 y） （3） fn_k t_1t_2ldotst_n x Rightarrow mathcal Bt_1t_2ldotst_nfn_k t_1t_2ldotst_n Rightarrow mathcal Bt_1t_2ldotst_nx （MP with A4 2） （4） fn_k t_1t_2ldotst_n x Rightarrow mathcal Bt_1t_2ldotst_nx （D2 with Uprime 3） （Leftarrow） vdash_n mathcal Bt_1t_2ldotst_n x Rightarrow x fn_k t_1t_2ldotst_n （1）forall xforall y mathcal Bt_1t_2ldotst_nx wedge mathcal Bt_1t_2ldotst_ny Rightarrow x y （MP with AND and U） （2）forall xbig mathcal Bt_1t_2ldotst_nx wedge mathcal Bt_1t_2ldotst_nfn_k t_1t_2ldotst_n Rightarrow x fn_k t_1t_2ldotst_n big （A4 with 1 and y） （3） mathcal Bt_1t_2ldotst_nx wedge mathcal Bt_1t_2ldotst_nfn_k t_1t_2ldotst_n Rightarrow x fn_k t_1t_2ldotst_n （A4 with 2 and x） （4）mathcal Bt_1t_2ldotst_nx （Hyp） （5）mathcal Bt_1t_2ldotst_nx wedge mathcal Bt_1t_2ldotst_nfn_k t_1t_2ldotst_n （AND with U and 4） （6）x fn_k t_1t_2ldotst_n （MP with 3 and 5） 換句話說，「 s 0 」在新理論裡等價於 「對所有的實數 rinR ， r s r」。 符號變換 等效元定理 一階邏輯的元定理 下面列出了一些重要的元邏輯定理。 不像命題演算，一階邏輯是不可判定性的。對於任意的公式 P，可以證實沒有判定過程，判定 P 是否有效，（參見停機問題）。（結論獨立的來自於邱奇和圖靈。） 有效性的判定問題是半可判定的。按哥德爾完備性定理所展示的，對於任何有效的公式 P P 是可證明的。 一元斷言邏輯（就是說，斷言只有一個引數的斷言邏輯）是可判定的。 轉換自然語言到一階邏輯 用自然語言表達的概念必須在一階邏輯（FOL）可以為為其效力之前必須被轉換到 FOL，而在這種轉換中可能有一些潛在的缺陷。在 FOL 中，p lor q 意味著 要麼 p 要麼 q 要麼二者，就是說它是 包容性 的。在英語中，單詞 or 有時是包容性的（比如，加牛奶或糖？），有時是排斥性的（比如，喝咖啡或茶？，通常意味著取其中一個或另一個但非二者）。類似的，英語單詞 some 可以意味著 至少一個，可能全部，有時意味著 不是全部，可能沒有。英語單詞 and 有時要按 or 轉換（比如，男人和女人可以申請）。 一階邏輯的限制 所有數學概念都有它的強項和弱點；下面列出一階邏輯的一些問題。 難於表達 ifthenelse 帶有等式的 FOL 不包含或允許定義 ifthenelse 斷言或函式 if（cab），這裡的 c 是表達為公式的條件，而 a 和 b 是要麼都是項要麼都是公式，並且它的結果是 a 如果 c 為真，或者 b 如果它為假。問題在於 FOL 中，斷言和函式二者只接受（非布林型別）項作為引數，而條件的明確表達是（布林型別）公式。這是不幸的，因為很多數學函式是依據 ifthenelse 而方便的表達的，而 ifthenelse 是描述大多數計算機程式的基礎。 在數學上，有可能重定義匹配公式運算元的新函式的完備集合，但是這是非常笨拙的。 斷言 if（cab）如果重寫為 c wedge a lor neg c wedge b 就可以在 FOL 中表達，但是如果條件 c 是複雜的這就是笨拙的。很多人擴充套件 FOL 增加特殊情況斷言叫做 if（條件，a b）（這裡 a 和 b 是公式）和／或函式 ite（條件，a b）（這裡的 a 和 b 是項），它們都接受一個公式作為條件，並且等於 a 如果條件為真，或 b 如果條件為假。這些擴充套件使 FOL 易於用於某些問題，並使某類自動定理證明更容易。 其他人進一步擴充套件 FOL 使得函式和斷言可以在任何位置接受項和公式二者。 型別（種類） 除了在公式（布林型別）和項（非布林型別）之間的區別之外，FOL 不包括型別（種類）到自身的概念中。 某些人爭辯說缺乏型別是巨大優點 Leslie Lamport Lawrence C Paulson Should Your Specification Language Be Typed ACM Transactions on Programming Languages and Systems 1998 httpciteseeristpsuedu71125html ，而很多其他人發覺了定義和使用型別（種類）的優點，比如幫助拒絕某些錯誤或不想要的規定 Rushby John Subtypes for Specification 1997 Proceedings of the Sixth European Software Engineering Conference ESECFSE 97 httpciteseeristpsuedu328947html 。 想要指示型別的那些人必須使用在 FOL 中可獲得的符號來提供這種資訊。這麼做使得這種表達更加複雜，並也容易導致錯誤。 單一引數斷言可以用來在合適的地方實現型別的概念。例如： forall x Man x rightarrow Mortal x， 斷言 Man（x）可以被認為是一類 型別斷言（就是說，x 必須是男人）。 斷言還可以同指示型別的 存在 量詞一起使用，但這通常應當轉而與邏輯合取運算元一起來做，比如： exists x Man x wedge Mortal x（存在既是男人又是人類的事物）。 容易寫成 exists x Man x rightarrow Mortal x，但這將等價與 exists x neg Man x lor exists x Mortal x（存在不是男人的事物或者存在是人類的事物），這通常不是想要的。類似的，可以做一個型別是另一個型別的子型別的斷言，比如： forall x Man x rightarrow Mammal x（對於所有 x，如果 x 是男人，則 x 是哺乳動物）。 難於刻畫模型大小 從 LöwenheimSkolem 定理得出在一階邏輯中不可能刻畫有限性或可數性。若一階理論有任意有限大的模型，則也有無窮大的模型，所以說不能刻劃有限性。而若理論有某個無窮基數大小的模型，則也必有任意更大的模型，所以不能刻劃可數性。另一個例子，是無法用一階語言將實數系公理化，因為不論用何種一階理論描述，既然該理論有實數系此種無窮模型（大小為 2aleph_0），所以必有比實數系更大（比如 22aleph_0）的另一個模型，從而該理論不是（唯一地）刻劃實數系的性質。實數系滿足的公理中，有上確界性質一項，它聲稱實數的所有有界的、非空集合都有上確界。一階邏輯祗能對元素量化，但此公理中，要對模型的全部子集量化，這就需要二階邏輯了。 圖可及性不能表達 很多情況可以被建模為節點和有向連線（邊）的圖。例如，效驗很多系統要求展示不能從 好 狀態觸及到 壞 狀態，而狀態的相互連線經常可以建模為圖。但是，可以證明這種可及性不能用斷言邏輯完全表達。換句話說，沒有斷言邏輯公式 f，帶有 u 和 v 作為它的唯一自由變數，而 R 作為它唯一的（2 元）斷言符號，使得 f 在一個有向圖中成立，如果在這個圖中存在從關聯於 u 的節點到關聯於 v 的節點的路徑。 參見 真值表 邏輯等價 邏輯條件 邏輯與非 邏輯或非 數理邏輯 零階邏輯 一階語言 二階邏輯 布林函式 推理規則列表 哥德爾完備性定理 哥德爾不完備定理 參考文獻 引用 來源 Jon Barwise and John Etchemendy，2000 Language Proof and Logic CSLI University of Chicago Press and New York Seven Bridges Press David Hilbert and Wilhelm Ackermann 1950 Principles of Theoretical Logic（English translation） Chelsea The 1928 first German edition was titled Grundzüge der theoretischen Logik Wilfrid Hodges 2001 Classical Logic I First Order Logic in Lou Goble ed The Blackwell Guide to Philosophical Logic Blackwell 外部連結 Stanford Encyclopedia of Philosophy：＂Classical Logic by Stewart Shapiro Covers syntax model theory and metatheory for first order logic in the natural deduction style forall x an introduction to formal logic by PD Magnus covers formal semantics and proof theory for firstorder logic Metamath：an ongoing online project to reconstruct mathematics as a huge first order theory using first order logic and the axiomatic set theory ZFC Principia Mathematica modernized and done right Podnieks Karl Introduction to mathematical logic Y Category 形式邏輯系統