首页 > 解决方案 > 为什么(A或B)和((不是A)或C)=(A或B)和((不是A)或C)和(B或C)?

问题描述

我无法证明这两个布尔公式在逻辑上是等价的。我认为需要使用分配和吸收属性,但是子句的not a和存在让我感到困惑。c不知道如何在同一个表达式中处理两者。

标签: boolean-logic

解决方案


我认为您主要必须使用分配律:

我表示!Anot A,以使符号更短:

1.) 重构等式左边:

(A or B) and (!A or C) 

应用分配律:

(A and (!A or C)) or (B and (!A or C))

稍微简化一下:

(A and !A) or (A and C) or (B and !A) or (B and C)

因为 (A and !A) 总是假的,这就变成了:

(A and C) or (B and !A) or (B and C)

2.) 重构等式右边:

(A or B) and (!A or C) and (B or C)
(A and !A) or (A and C) or (B and !A) or (B and C)

因为 (A and !A) 总是假的,这就变成了:

(A and C) or (B and !A) or (B and C)

现在你在等式两边得到相同的表达式,这告诉你,这两个布尔表达式是等价的。


推荐阅读