0

我正在努力将这句话转换为 CNF:

(A ∨ B) ⇔ (C ∧ D)。

我已经尝试使用双条件消除逻辑规则来消除⇔。

(A ∨ B) → (C ∧ D) ∧ (C ∧ D) → (A ∨ B)。

然后我用蕴含消除逻辑规则消除了→。我现在有

¬(A ∨ B) ∨ (C ∧ D) ∧ ¬(C ∧ D) ∨ (A ∨ B)。

我几乎被困在这里。我的教授说我应该使用分配规则来减少句子。我似乎找不到任何符合分配规则要求的东西。因此,在执行一些我不知道的逻辑规则之前,我似乎无法使用分配规则。

我在这里想念什么?Stack Overflow 可以帮助我恢复到 CNF 的转换吗?

4

1 回答 1

0

您从以下表达式开始:

  • (A ∨ B) ⇔ (C ∧ D)。

您尝试执行前几个步骤。在这里,我添加了括号以清楚和正确:

  • [(A ∨ B) → (C ∧ D)] ∧ [(C ∧ D) → (A ∨ B)]。(根据⇔的定义)
  • [¬(A ∨ B) ∨ (C ∧ D)] ∧ [¬(C ∧ D) ∨ (A ∨ B)]。(根据→的定义)

将 De Morgan 否定定律应用于 ¬(A ∨ B) 和 ¬(C ∧ D):

  • [(¬A ∧ ¬B) ∨ (C ∧ D)] ∧ [(¬C ∨ ¬D) ∨ (A ∨ B)]。

简化右半部分:

  • [(¬A ∧ ¬B) ∨ (C ∧ D)] ∧ [¬C ∨ ¬D ∨ A ∨ B]。

∨ 对 ∧ 的分配律表明:X ∨ (Y ∧ Z) ⇔ (X ∨ Y) ∧ (X ∨ Z)。

我们将定律应用于左半部分,X = (¬A ∧ ¬B),Y = C,Z = D:

  • [((¬A ∧ ¬B) ∨ C) ∧ ((¬A ∧ ¬B) ∨ D)] ∧ [¬C ∨ ¬D ∨ A ∨ B]。

将分配律应用于左半部分的两个子表达式:

  • [[(¬A ∨ C) ∧ (¬B ∨ C)] ∧ [(¬A ∨ D) ∧ (¬B ∨ D)]] ∧ [¬C ∨ ¬D ∨ A ∨ B]。

删除多余的括号,因为 ∧ 是关联和可交换的:

  • (¬A ∨ C) ∧ (¬B ∨ C) ∧ (¬A ∨ D) ∧ (¬B ∨ D) ∧ [¬C ∨ ¬D ∨ A ∨ B]。

重新排列变量,我们得到了合取范式 (CNF)的最终公式:

  • (¬A ∨ C) ∧ (¬A ∨ D) ∧ (¬B ∨ C) ∧ (¬B ∨ D) ∧ (A ∨ B ∨ ¬C ∨ ¬D)。
于 2016-04-03T17:37:47.370 回答