Search code examples
booleansimplificationboolean-algebra

Boolean Simplification - Why does (A + NOT(B.C)).(B + NOT(B.C)).(C + NOT(B.C)) = A + NOT B.C


This is the answer to the equation, but I do not understand why. Please help!


Solution

  • If you apply the Laws of Boolean Algebra one by one, the solution is a direct result:

    1. de Morgan´s Theorem: The complement of two terms joined together by OR is the same as the complements of two terms joined by AND, and vice versa (i.e. NOT(A + B) = NOT(A) * NOT(B) and NOT(A * B) = NOT(A) + NOT(B)).
    2. Commutative Law: The order of joining two separate terms with AND or OR is not important.
    3. Complement Law: A term joined with its complement with AND equals 0 respectively with OR equals 1 (i.e. A * NOT(A) = 0 and A + NOT(A) = 1).
    4. Annulment Law: A term joined with AND with 0 equals 0 and joined with OR with a 1 equals 1 (i.e. A * 0 = 0 and A + 1 = 1).
    5. Identity Law: A term joined with 1 by AND or with 0 by OR is equal to itself (i.e. A * 1 = A and A + 0 = A).

    (there are more, but you don't need them here)

    Applied to your term:

                  (A + NOT(B*C))        * (B + NOT(B*C))        * (C + NOT(B*C)) 
    [with 1.]   = (A + NOT(B) + NOT(C)) * (B + NOT(B) + NOT(C)) * (C + NOT(B) + NOT(C))
    [with 2.]   = (A + NOT(B) + NOT(C)) * (B + NOT(B) + NOT(C)) * (C + NOT(C) + NOT(B))
    [with 3.]   = (A + NOT(B) + NOT(C)) * (1          + NOT(C)) * (1          + NOT(B))      
    [with 4.]   = (A + NOT(B) + NOT(C)) *  1                    *  1      
    [with 5.]   = (A + NOT(B) + NOT(C))  
    [with 1.]   = (A + NOT(B*C))