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