在本节中,我们将介绍一种针对 Horn 子句的线性求解特殊形式。我们将通过以下形式的符号来解释程序中的子句
设
为一组程序子句。假设一个选择函数,对于给定的目标
,可以从其子目标
中选择一个。进一步假设一个目标
和一个选择函数,该函数选择
。设
为
中一个子句的变体,使得
和
没有共同的变量。如果
是
和
的最一般统一,则目标
被称为 SLD-消解式
对一组程序子句
和一个目标子句
的
的 SLD-演绎(-反驳)是一个线性演绎(反驳),其中只出现 SLD-消解步骤,并且
是起始子句。
- 一个
-计算的答案替换
对于
是
,其中
是从
的 SLD 证伪中获得的 mgU,选择函数为
。
- 对于
的替换
是
的答案替换。
- 如果
,则它对于
是正确的答案替换。
令
是一个程序子句集,
是一个目标子句,而
是一个选择函数。对于
的每个正确答案替换
,都存在一个
-计算的答案替换
对于
以及一个替换
,使得 
在命题逻辑部分,我们已经解释了命题真值表及其变体,例如连接演算和模型消去。在本节中,我们将介绍一阶情况下的模型消去。请注意,在这种情况下,我们需要一个额外的推理规则,即归约规则。
一组子句
的子句(范式)真值表是
的真值表,其节点来自
的文字,并且通过以下规则的(可能无限的)序列构建。
- 以
为根,
为其直接后继的树,其中
是来自
的子句的新变体,是
的真值表(初始化规则)。
- 令
为
的真值表,
是
的一个分支,
是来自
的子句的新变体,使得链接条件满足 mgu
。如果树
是通过用
个子树
扩展
而构建的,那么
是
的真值表(扩展规则)。
- 令
为
的一个 tableau,
是
的一个分支,
是
的一个叶节点,而
,使得
和
具有一个 mgu
,则
是
的一个 tableau(归约规则)。
以下列出了三种可能的链接条件
- 无条件。
- 弱链接条件:存在文字
和
,使得
和
具有一个 mgu 
- 强链接条件:存在
的一个叶节点
,以及
,使得
和
具有一个 mgu
。
类似于命题情况,不同的链接条件会导致不同的演算。