在本節中,我們將為命題邏輯開發一種演算。到目前為止,我們有一個語言,即一組公式,我們已經研究了語義和公式或子句集的一些性質。現在,我們將引入一條推理規則,即消解規則,它允許從給定的子句推匯出新的子句。
一個子句
是子句
和
的消解式,如果存在文字
和
,並且
其中 
注意,存在一種特殊情況,如果我們從兩個文字構造消解式,即
和
可以被消解併產生空集。這個空的消解式用特殊符號
表示。
表示一個不可滿足的公式。我們定義一個包含空子句的子句集為不可滿足的,
接下來,我們將研究消解規則和整個演算的性質。以下引理說明了消解規則單次應用的正確性。
如果
是一組子句,而
是
的一個消解式,那麼 
證明:令
是
的一個賦值;因此它也是
的一個賦值。假設
:因此,對於
中的所有子句
,我們都有
。
和
的消解式
看起來像
其中
且
。現在有兩個情況
: 從
和
中,我們可以得出
因此
.
: 從
中我們可以得出
因此
。引理的相反方向是顯而易見的。
令
是子句集,並且
那麼


如果我們將迭代 Res 運算子的過程理解為從給定集合中推匯出新子句的過程,特別是推匯出可能為空的子句,我們必須問,在哪些情況下我們能得到空子句,反之,如果我們得到空子句,這意味著什麼。以下兩個定理將研究這些性質。
令
為一組子句。如果
,則
不可滿足。
證明:從
中我們可以得出結論,
是透過兩個子句
和
採用歸結推理得出的。因此,存在一個
使得
並且
,因此
不可滿足。從定理(歸結推理引理)中我們可以得出結論,
,因此
不可滿足。
令
為一組有限子句。如果
不可滿足,則
.
證明: 對公式集中原子公式數量
進行歸納。當
時,我們有
,因此
。
假設
固定,並且對於每個包含
個原子公式的不可滿足子句集
,都有
。
假設有一個包含原子公式
的子句集
。接下來我們將構造兩個子句集
和 
是透過從
中刪除每個子句中所有
以及包含
的所有子句而得到的。這種變換顯然對應於用
解釋原子公式
,
是從類似的變換中得出的,其中
的出現和包含
的子句都被刪除了,因此
被解釋為
.
讓我們證明,
和
都是不可滿足的:假設原子公式
的一個賦值
是
的模型。因此,賦值
是
的模型,這導致了矛盾。類似的構造表明
也是不可滿足的。因此,我們可以使用歸納假設得出結論:
和
。因此,存在一個子句序列
使得
成立
或
是兩個子句
和
的消解式,其中
。對於
也有類似的序列。
現在我們將重新引入之前刪除的文字
和
到這兩個序列中。
- 子句
是從
中原始子句刪除
而得到的,再次被修改為
。這將導致一個序列
其中
要麼是
,要麼是
。
- 在第二個序列中,我們引入
,使得
要麼是
,要麼是
。
在以上任何情況下,我們都得到
,最多經過一次使用
和
的消解步驟。
基於正確性和完備性定理,我們給出了一個決定命題公式可滿足性的過程。
如果
是一個有限的子句集,那麼存在一個
使得
到目前為止,我們一直在處理子句集。在接下來的內容中,我們會發現,討論消解規則應用序列是有幫助的。
從一組子句中推匯出一個子句
,是一個序列
,滿足以下條件:
並且

從
中推匯出空子句
被稱為
的一個反駁。
例子 我們想要證明公式
是
的一個邏輯結論。為此,我們對
取反並證明
的不可滿足性。
為此,您可以使用本書中的互動式內容,以多種形式
- 使用互動式真值表來證明不可滿足性,或者
- 使用互動式 CNF 變換將公式轉換為 CNF,然後
- 使用以下互動式解析。
計算
對於所有
和
,對於以下子句集




哪一個公式是可滿足的,或者哪一個是不可滿足的?
指出 S 中所有子句的消解式,其中 
證明:兩個子句
和
的消解式
是
和
的邏輯結論。注意:使用“結論”的定義。
設
是一個公式集,
是一個公式。證明
當且僅當
不可滿足。
計算
,其中
以及
透過提供一個反證,證明以下公式集
是不可滿足的。
使用消解規則證明
是子句集
的一個推理。
使用消解規則證明
是一個重言式。