命题逻辑:为什么“不是A或(不是A和B)=不是A”

时间:2017-02-21 14:01:29

标签: logic

任何人都可以告诉我(正式),为什么

not A or (not A and B)

not A?

2 个答案:

答案 0 :(得分:0)

!A || (!A && B) means :

if(A = true and B = true) => false (!A)

if(A = True and B = false) => false (!A)

if(A = false and B = True) => True (!A)

if(A = false and B = false) => True (!A)

在所有情况下你的表达都是!A 它被称为表达式输入的真值表。

如果你有大量的输入和逻辑操作,这种方法很难验证你的表达。

在这种情况下你可以做些什么:

证明!A = !A || (!A && B)与证明A = !(!A || (!A && B))

相同
!(!A || (!A && B)) = A && !(!A && B) = A && (A || !B) = A

答案 1 :(得分:0)

A or (A and B) == A

总是一个重言式(其中A可以用&#34代替;不是A"或任何其他布尔表达式,类似于B)。

你不需要像其他人那样考虑整个真值表,只考虑A本身的值(即仅两种情况)并应用布尔逻辑的规则来简化:

  • 如果A为真,那么我们有:true or (true and B)这是非常真实的(根据定义或 - true or X总是true)。
  • 如果A为假,则我们false or (false and B) == (false and B) == false(根据或(false or X == X)和/或(false and X == false)的定义。)

根据您的个人品味,在集合理论中回忆起或与UNION相关可能更直观,并且"和"与INTERSECTION有关。在这种情况下,很明显。 UNION(A INTERSECTION B)等于A,因为(A INTERSECTION B)是A的严格子集。