在本節中,我們將介紹一種針對 Horn 子句的線性求解特殊形式。我們將透過以下形式的符號來解釋程式中的子句
設
為一組程式子句。假設一個選擇函式,對於給定的目標
,可以從其子目標
中選擇一個。進一步假設一個目標
和一個選擇函式,該函式選擇
。設
為
中一個子句的變體,使得
和
沒有共同的變數。如果
是
和
的最一般統一,則目標
被稱為 SLD-消解式
對一組程式子句
和一個目標子句
的
的 SLD-演繹(-反駁)是一個線性演繹(反駁),其中只出現 SLD-消解步驟,並且
是起始子句。
- 一個
-計算的答案替換
對於
是
,其中
是從
的 SLD 證偽中獲得的 mgU,選擇函式為
。
- 對於
的替換
是
的答案替換。
- 如果
,則它對於
是正確的答案替換。
令
是一個程式子句集,
是一個目標子句,而
是一個選擇函式。對於
的每個正確答案替換
,都存在一個
-計算的答案替換
對於
以及一個替換
,使得 
在命題邏輯部分,我們已經解釋了命題真值表及其變體,例如連線演算和模型消去。在本節中,我們將介紹一階情況下的模型消去。請注意,在這種情況下,我們需要一個額外的推理規則,即歸約規則。
一組子句
的子句(正規化)真值表是
的真值表,其節點來自
的文字,並且透過以下規則的(可能無限的)序列構建。
- 以
為根,
為其直接後繼的樹,其中
是來自
的子句的新變體,是
的真值表(初始化規則)。
- 令
為
的真值表,
是
的一個分支,
是來自
的子句的新變體,使得連結條件滿足 mgu
。如果樹
是透過用
個子樹
擴充套件
而構建的,那麼
是
的真值表(擴充套件規則)。
- 令
為
的一個 tableau,
是
的一個分支,
是
的一個葉節點,而
,使得
和
具有一個 mgu
,則
是
的一個 tableau(歸約規則)。
以下列出了三種可能的連結條件
- 無條件。
- 弱連結條件:存在文字
和
,使得
和
具有一個 mgu 
- 強連結條件:存在
的一個葉節點
,以及
,使得
和
具有一個 mgu
。
類似於命題情況,不同的連結條件會導致不同的演算。
- 空條件會導致一個子句正規化 tableau 演算。