跳轉到內容

計算機科學家邏輯/命題邏輯/消解

來自華夏公益教科書

在本節中,我們將為命題邏輯開發一種演算。到目前為止,我們有一個語言,即一組公式,我們已經研究了語義和公式或子句集的一些性質。現在,我們將引入一條推理規則,即消解規則,它允許從給定的子句推匯出新的子句。

定義 10

[編輯 | 編輯原始碼]

一個子句 是子句 的消解式,如果存在文字 ,並且

其中

注意,存在一種特殊情況,如果我們從兩個文字構造消解式,即 可以被消解併產生空集。這個空的消解式用特殊符號 表示。
表示一個不可滿足的公式。我們定義一個包含空子句的子句集為不可滿足的,

接下來,我們將研究消解規則和整個演算的性質。以下引理說明了消解規則單次應用的正確性。

如果 是一組子句,而 的一個消解式,那麼

證明: 的一個賦值;因此它也是 的一個賦值。假設 :因此,對於 中的所有子句 ,我們都有 的消解式 看起來像

其中 。現在有兩個情況

  • : 從 中,我們可以得出 因此 .
  • : 從 中我們可以得出 因此 。引理的相反方向是顯而易見的。

定義 11

[edit | edit source]

是子句集,並且

那麼




如果我們將迭代 Res 運算子的過程理解為從給定集合中推匯出新子句的過程,特別是推匯出可能為空的子句,我們必須問,在哪些情況下我們能得到空子句,反之,如果我們得到空子句,這意味著什麼。以下兩個定理將研究這些性質。

定理 8(正確性)

[edit | edit source]

為一組子句。如果 ,則 不可滿足。

證明: 中我們可以得出結論, 是透過兩個子句 採用歸結推理得出的。因此,存在一個 使得 並且 ,因此 不可滿足。從定理(歸結推理引理)中我們可以得出結論,,因此 不可滿足。

定理 9(完備性)

[edit | edit source]

為一組有限子句。如果 不可滿足,則 .

證明: 對公式集中原子公式數量 進行歸納。當 時,我們有 ,因此

假設 固定,並且對於每個包含 個原子公式的不可滿足子句集 ,都有

假設有一個包含原子公式 的子句集 。接下來我們將構造兩個子句集

  • 是透過從 中刪除每個子句中所有 以及包含 的所有子句而得到的。這種變換顯然對應於用 解釋原子公式
  • 是從類似的變換中得出的,其中 的出現和包含 的子句都被刪除了,因此 被解釋為 .

讓我們證明, 都是不可滿足的:假設原子公式 的一個賦值 的模型。因此,賦值 的模型,這導致了矛盾。類似的構造表明 也是不可滿足的。因此,我們可以使用歸納假設得出結論:。因此,存在一個子句序列

使得 成立 是兩個子句 的消解式,其中 。對於 也有類似的序列。

現在我們將重新引入之前刪除的文字 到這兩個序列中。

  • 子句 是從 中原始子句刪除 而得到的,再次被修改為 。這將導致一個序列

其中 要麼是 ,要麼是

  • 在第二個序列中,我們引入 ,使得 要麼是 ,要麼是

在以上任何情況下,我們都得到 ,最多經過一次使用 的消解步驟。


基於正確性和完備性定理,我們給出了一個決定命題公式可滿足性的過程。

決定命題公式的可滿足性

給定一個命題公式

  • 轉換為等價的 CNF
  • 計算 ,對於
    • 如果 則 **停止:不可滿足**。
    • 如果 則 **停止:可滿足**。

定理 10

[edit | edit source]

如果 是一個有限的子句集,那麼存在一個 使得


到目前為止,我們一直在處理子句集。在接下來的內容中,我們會發現,討論消解規則應用序列是有幫助的。

定義 12

[edit | edit source]

從一組子句中推匯出一個子句,是一個序列,滿足以下條件:

  • 並且


中推匯出空子句 被稱為 的一個反駁。


例子 我們想要證明公式 的一個邏輯結論。為此,我們對 取反並證明 的不可滿足性。

為此,您可以使用本書中的互動式內容,以多種形式

  • 使用互動式真值表來證明不可滿足性,或者
  • 使用互動式 CNF 變換將公式轉換為 CNF,然後
  • 使用以下互動式解析。


問題

[edit | edit source]

問題 23 (命題)

[edit | edit source]

計算 對於所有 ,對於以下子句集

哪一個公式是可滿足的,或者哪一個是不可滿足的?

問題 24(命題邏輯)

[編輯 | 編輯原始碼]

指出 S 中所有子句的消解式,其中

問題 25(命題邏輯)

[編輯 | 編輯原始碼]

證明:兩個子句 的消解式 的邏輯結論。注意:使用“結論”的定義。

問題 26(命題邏輯)

[編輯 | 編輯原始碼]

是一個公式集, 是一個公式。證明

當且僅當 不可滿足。


問題 27(命題邏輯)

[編輯 | 編輯原始碼]

計算 ,其中 以及


問題 28(命題邏輯)

[編輯 | 編輯原始碼]

透過提供一個反證,證明以下公式集 是不可滿足的。

問題 29(命題邏輯)

[編輯 | 編輯原始碼]

使用消解規則證明 是子句集 的一個推理。

問題 30(命題邏輯)

[編輯 | 編輯原始碼]

使用消解規則證明 是一個重言式。

華夏公益教科書