将此逻辑语句转换为合取范式

Convert this logic sentence to Conjunctive Normal Form

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

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

我已经试过用双条件消去逻辑规则消去⇔

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

然后我用蕴涵消去逻辑法则消掉了→。现在我有

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

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

我在这里错过了什么? Stack Overflow 可以帮我恢复到 CNF 的转换吗?

您的开头是以下表达式:

  • (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).