跳轉至內容

計算機科學家邏輯/謂詞邏輯/歸結

來自 Wikibooks,開放世界中的開放書籍

在命題情況下,我們透過“去除”兩個要進行歸結的子句中的一對互補文字來定義歸結推理規則。然而,在一階情況下,這並不總是足夠的。

在這兩個子句中,沒有互補文字,但是,在將項替換為變數和將替換為後,我們得到

現在我們可以應用命題邏輯中的推理規則,並得到歸結式

另一種可能性是將替換為中,得到

然後我們可以得到從 解,從某種意義上說,它比之前推匯出的解更通用。

定義 18

[編輯 | 編輯原始碼]

替換是一個函式,它將變數對映到項,並且幾乎處處都是恆等對映。因此,它可以表示為

如果是基本項,我們稱為基本替換。空替換用表示。

定義 19

[編輯 | 編輯原始碼]

為一個替換,且為一個表示式(即文字或項),則是從中同時替換中每個出現的得到的表示式,用項替換。

示例


時,我們得到

定義 20

[編輯 | 編輯原始碼]

是兩個代換。則代換的複合,記為 ,是從 中刪除任何滿足 的元素 和任何滿足 的元素 所得到的代換。
示例

定義 21

[編輯 | 編輯原始碼]

是一個表示式集合,且 是一個代換, 的一個統一化子,當且僅當

.

一個統一代換 被稱為最一般統一代換,當且僅當對於每個統一代換 ,都存在一個替換 使得

接下來,我們將討論一種計算最一般統一代換的演算法。為此,我們假設有一組要進行統一的項 。首先,我們透過引入一個尚未出現在此集合中的新變數,例如 ,並將此集合轉換為一組方程。

我們現在將轉換此集合,使其統一代換保持不變,其中 是一組 的統一代換,如果 成立。

統一


給定一組表示式。將其轉換為一組如上定義的方程 。儘可能地應用以下轉換規則

  1. 方向化

    其中 是一個變數,而 是一個非變數項

  2. 刪除



  3. 分解 (項約簡)

  4. 消去 (變數消去 I)

    如果 不在 中,但在

  5. 合併 (變數消去 II)

    如果

  6. 衝突

    如果

  7. 出現檢查

    如果

定理 7

[編輯 | 編輯原始碼]

為一組表示式。上述統一演算法會終止。如果它返回 ,則 沒有統一式,否則 會被轉換為一組方程 ,它表示 的最一般統一式。

定義 22

[編輯 | 編輯原始碼]

如果一個子句 的兩個或多個文字具有一個統一式 ,則 稱為 的一個因子。

示例


對於 ,我們得到因子

定義 23

[編輯 | 編輯原始碼]

是兩個沒有公共變數的子句,使得 ,並且 有一個最一般合一化 的二元消解式是


示例:給定 。將 重新命名為 ,透過使用最一般合一化 ,得到消解式


我們通常以圖形方式描繪消解式,例如:

定義 24

[編輯 | 編輯原始碼]

兩個子句 的消解式是以下二元消解式之一

  • 的二元消解式
  • 的二元消解式和 的一個因子
  • 的一個因子的二元消解式和
  • 的一個因子的二元消解式和 的一個因子的二元消解式


示例



給定

的一個因子是 的二元消解式,因此也是 的二元消解式是

下面的引理用於消解完備性證明。

引理 5(提升引理)

[編輯 | 編輯原始碼]

如果 分別是 的例項,並且 的一個解,那麼存在 的一個解 ,使得 的一個例項。

圖 1

一個子句集 是不可滿足的,當且僅當空子句可以透過歸結原理從 推匯出。
證明
假設 是不可滿足的。令 的基本原子集,因此是 Herbrand 基。令 為一棵完整的二叉樹,如 圖 2 所示。根據 Herbrand 定理(版本 1),存在一棵封閉的有限語義樹 。有兩種情況

  • 如果 只包含一個節點(因此是根節點),則從這棵樹的空分支收集的解釋只使空子句為假。因此,空子句必須在 中。

  • 假設包含多個節點。那麼,中一定存在一個推理節點,因此它的兩個子節點都是失敗節點。如果這樣的節點不存在,那麼每個節點都至少有一個非失敗節點,這意味著在中至少存在一條無限路徑,這將違反它是一個有限閉合語義樹的事實。設如上所述;並設

現在,令 分別是子句 的基本例項,使得 證偽,而 證偽,使得兩者均不被 證偽。

因此,我們有 ,並且我們可以構造歸結式

must be false in , because both and are false in . According to the Lifting Lemma 5 there exists a resolvent of and , such that is a ground instance of . Let be the closed semantic tree for , obtained from by deleting all nodes below the first node which falsifies . Note, that is unsatisfiable if and only if is unsatisfiable. Clearly, has less nodes than and we now can iterate this process until only the root of the semantic tree is remaining. This, however is only possible if the empty clause is derivable. For the opposite direction, assume that is derivable by resolution from and let the resolvents constructed during this process. Assume is satisfiable and to be a model for . From the correctness lemma according to the propositional case we known, that if a model satisfies two clauses it also satisfies its resolvent. Therefore has to satisfy ; this, however, is impossible, because one of this resolvents is .



圖 2

問題 14(謂詞)

[編輯 | 編輯原始碼]

在每種情況下,用謂詞邏輯歸結法推匯出空子句!

  1. ()


問題 15(謂詞)

[編輯 | 編輯原始碼]

透過對項和公式構造的歸納,展示以下的提升引理:如果 是一個謂詞邏輯公式,並且 是一個適合 的解釋,

以及。那麼


是有效的,如果 不包含任何被 中的替換所繫結的變數。

透過替換繫結。

問題 16(謂詞)

[編輯 | 編輯原始碼]

計算 - 如果可能 - 以下子句集的最一般統一。


問題 17 (謂詞)

[編輯 | 編輯原始碼]

確定以下子句對的所有直接消解式


問題 18 (謂詞)

[編輯 | 編輯原始碼]

計算 - 如果可能 - 以下子句集的最一般統一。


問題 19 (謂詞)

[編輯 | 編輯原始碼]

確定以下子句對的所有直接消解式

  1. {¬p(x), ¬p(b), q(x,b)} 和 {p(a), q(a,b)}
  2. {r(x), r(f(x))} 和 {¬r(x), ¬r(f(f(x)))}
  3. {¬s(c,g(c))} 和 {s(x,x), ¬t(x)}


問題 20(謂詞邏輯)

[編輯 | 編輯原始碼]

對於以下子句集,給出(a)線性推導,(b)使用單元分解的推導,(c)透過謂詞邏輯分解獲得空子句的進一步(最短)推導!

{{¬e(x), o(s(x))}, {¬e(x), ¬o(s(x)), e(s(s(x)))}, {e(a)}, {¬o(s(s(s(s(s(a))))))}}


問題 21(謂詞邏輯)

[編輯 | 編輯原始碼]

在每種情況下,用謂詞邏輯歸結法推匯出空子句!

  1. ()


華夏公益教科書