在本节中,我们将介绍语义树的概念,它可以用来证明解析的完备性。为此,我们假设读者熟悉树、二叉树和树路径的概念。
一组子句 的语义树是一棵二叉树 ,其根为 ,使得边用文字标记,文字由 的 Herbrand 基中的元素构成,使得
- 如果 是一个内部节点,它的两条出边用互补文字 和 标记。
- 在 中,到达节点 的每条路径中,都不会包含 中的互补文字,其中 是路径边上的文字集。
如果每条路径都包含 Herbrand 基中的每个原子(正或负),则语义树称为完整的。
示例: ,其 Herbrand 基为
请注意,对于语义树 和节点 ,集合 可以被看作是对基本原子进行真值赋值,就像在 Herbrand 解释中一样。因此,我们称 为部分解释。一个完整的语义树对应于对解释的穷尽“枚举”。
- 语义树 的一个节点 是一个失败节点,如果 使 中的一个子句的某个基本实例为假,但对于 的每个祖先节点 , 不会使 中的任何子句的基本实例为假。
- 如果语义树 中的每条路径都包含一个失败节点,那么该树称为闭合树。
- 如果闭合语义树中的节点 的两个直接子节点都是失败节点,则称该节点为推断节点。
示例: ,其中 Herbrand 基是
令 为一个完整的语义树,那么我们称 为相应的闭合树,如果它可以通过在失败节点处剪切所有分支从 中获得。
定理 5(Herbrand 定理 - 版本 1)
[编辑 | 编辑源代码]
一组子句 是不可满足的,当且仅当对于 的每个完整语义树,都存在一个相应的有限封闭语义树。
证明: 假设 是不可满足的,并且 是 的一个完整语义树。对于每条路径 ,我们都有标签集 ,这是一个解释,因为树是完整的。因此, 使子句 的一个地面实例 为假,因为 是不可满足的。由于 中只有有限多个文字,因此必须存在一个失败节点 ,它距离根节点有限距离。由于每条路径都有这样的失败节点,因此存在一个相应的封闭语义树 ,它是有限的。
对于相反方向,假设对于每个完整语义树 ,都存在一个相应的有限封闭树 。那么,每条路径都包含一个失败节点,因此,每个解释都使 为假;因此 是不可满足的。
一组子句 是不可满足的,当且仅当存在一个有限不可满足的集合 ,该集合包含 中子句的地面实例。
证明: 假设 是不可满足的,并且 是 的一个完备语义树。根据 Herbrand 定理版本 1,存在 的一个有限闭合语义树 。设 是在 的所有失败节点上被证伪的子句的基实例集。 是有限的,并且被所有解释所证伪,因此是不可满足的。我们通过逆否命题证明相反的方向。
注意,这个版本的 Herbrand 定理可以直接转化为一个证明过程:给定一组子句 ,我们想证明它的不可满足性。
- 生成 子句集,这些子句集是 的子句的基实例。对每个子句集执行命题不可满足性测试。
- 根据 Herbrand 定理,如果 是不可满足的,那么存在一个有限的 是不可满足的。
假设以下子句集
- 指出 (a) 的 Herbrand 宇宙和 (b) 的 Herbrand 基!
- 给出 的一个闭合语义树!
下面给出公式 和 。
分别给出 和 的 (a) 有限和 (b) 无限 Herbrand 模型,或如果不可能则给出论证。
给出以下子句集
分别给出它们的 (a) Herbrand 宇宙,(b) Herbrand 模型和 (c) 非 Herbrand 模型。