跳转到内容

计算机科学家逻辑/命题逻辑/消解

来自维基教科书,开放世界中的开放书籍

在本节中,我们将为命题逻辑开发一种演算。到目前为止,我们有一个语言,即一组公式,我们已经研究了语义和公式或子句集的一些性质。现在,我们将引入一条推理规则,即消解规则,它允许从给定的子句推导出新的子句。

定义 10

[编辑 | 编辑源代码]

一个子句 是子句 的消解式,如果存在文字 ,并且

其中

注意,存在一种特殊情况,如果我们从两个文字构造消解式,即 可以被消解并产生空集。这个空的消解式用特殊符号 表示。
表示一个不可满足的公式。我们定义一个包含空子句的子句集为不可满足的,

接下来,我们将研究消解规则和整个演算的性质。以下引理说明了消解规则单次应用的正确性。

如果 是一组子句,而 的一个消解式,那么

证明: 的一个赋值;因此它也是 的一个赋值。假设 :因此,对于 中的所有子句 ,我们都有 的消解式 看起来像

其中 。现在有两个情况

  • : 从 中,我们可以得出 因此 .
  • : 从 中我们可以得出 因此 。引理的相反方向是显而易见的。

定义 11

[edit | edit source]

是子句集,并且

那么




如果我们将迭代 Res 运算符的过程理解为从给定集合中推导出新子句的过程,特别是推导出可能为空的子句,我们必须问,在哪些情况下我们能得到空子句,反之,如果我们得到空子句,这意味着什么。以下两个定理将研究这些性质。

定理 8(正确性)

[edit | edit source]

为一组子句。如果 ,则 不可满足。

证明: 中我们可以得出结论, 是通过两个子句 采用归结推理得出的。因此,存在一个 使得 并且 ,因此 不可满足。从定理(归结推理引理)中我们可以得出结论,,因此 不可满足。

定理 9(完备性)

[edit | edit source]

为一组有限子句。如果 不可满足,则 .

证明: 对公式集中原子公式数量 进行归纳。当 时,我们有 ,因此

假设 固定,并且对于每个包含 个原子公式的不可满足子句集 ,都有

假设有一个包含原子公式 的子句集 。接下来我们将构造两个子句集

  • 是通过从 中删除每个子句中所有 以及包含 的所有子句而得到的。这种变换显然对应于用 解释原子公式
  • 是从类似的变换中得出的,其中 的出现和包含 的子句都被删除了,因此 被解释为 .

让我们证明, 都是不可满足的:假设原子公式 的一个赋值 的模型。因此,赋值 的模型,这导致了矛盾。类似的构造表明 也是不可满足的。因此,我们可以使用归纳假设得出结论:。因此,存在一个子句序列

使得 成立 是两个子句 的消解式,其中 。对于 也有类似的序列。

现在我们将重新引入之前删除的文字 到这两个序列中。

  • 子句 是从 中原始子句删除 而得到的,再次被修改为 。这将导致一个序列

其中 要么是 ,要么是

  • 在第二个序列中,我们引入 ,使得 要么是 ,要么是

在以上任何情况下,我们都得到 ,最多经过一次使用 的消解步骤。


基于正确性和完备性定理,我们给出了一个决定命题公式可满足性的过程。

决定命题公式的可满足性

给定一个命题公式

  • 转换为等价的 CNF
  • 计算 ,对于
    • 如果 则 **停止:不可满足**。
    • 如果 则 **停止:可满足**。

定理 10

[edit | edit source]

如果 是一个有限的子句集,那么存在一个 使得


到目前为止,我们一直在处理子句集。在接下来的内容中,我们会发现,讨论消解规则应用序列是有帮助的。

定义 12

[edit | edit source]

从一组子句中推导出一个子句,是一个序列,满足以下条件:

  • 并且


中推导出空子句 被称为 的一个反驳。


例子 我们想要证明公式 的一个逻辑结论。为此,我们对 取反并证明 的不可满足性。

为此,您可以使用本书中的交互式内容,以多种形式

  • 使用交互式真值表来证明不可满足性,或者
  • 使用交互式 CNF 变换将公式转换为 CNF,然后
  • 使用以下交互式解析。


问题

[edit | edit source]

问题 23 (命题)

[edit | edit source]

计算 对于所有 ,对于以下子句集

哪一个公式是可满足的,或者哪一个是不可满足的?

问题 24(命题逻辑)

[编辑 | 编辑源代码]

指出 S 中所有子句的消解式,其中

问题 25(命题逻辑)

[编辑 | 编辑源代码]

证明:两个子句 的消解式 的逻辑结论。注意:使用“结论”的定义。

问题 26(命题逻辑)

[编辑 | 编辑源代码]

是一个公式集, 是一个公式。证明

当且仅当 不可满足。


问题 27(命题逻辑)

[编辑 | 编辑源代码]

计算 ,其中 以及


问题 28(命题逻辑)

[编辑 | 编辑源代码]

通过提供一个反证,证明以下公式集 是不可满足的。

问题 29(命题逻辑)

[编辑 | 编辑源代码]

使用消解规则证明 是子句集 的一个推理。

问题 30(命题逻辑)

[编辑 | 编辑源代码]

使用消解规则证明 是一个重言式。

华夏公益教科书