Help simplifying boolean logic

Thread Starter


Joined Nov 9, 2007
Hey guys,

Am I glad I found this forum or what!! I've spent about a week trying to figure out how to simplify the below equation & I keep coming up blank:
A v ~[(~B ^ ~C) v (~B ^ ~D)] v (~A ^ D)

my symbols may not make sense so here's a key for you:
v = OR, ^ = AND, ~ = NOT

Please can someone explain to me in english a nice easy way to break this down into something a bit more simplified.

Here are some examples of other ones that i have managed to simplify & if anyone can suggest ways for me to further improve on them then be my guest ;)

~[~A v ~(B ^ C)] v (~C ^ B) simplified = (A ^ B ^ C) v (~C ^ B)

A v [B ^ (A v B)] v [A ^ (~A v B)] simplified = A v B


Joined Nov 9, 2007
first better to write like this:
A + [(B'.C') + (B'.D')]' + A.'D

A + A'.D = A + D
[(B'.C') + (B'.D')]' = (B'.C')'.(B'.D')' = (B + C).(B + D) = B + C.D

A + D + B + C.D
BUT, D + C.D = D!!!

A + B + D :p
A little bit of explicit explanation might help. For the part where you have [(B'C')+(B'D')]' you have to use D' Morgan's law. How that works is you inverse the variables and change the AND to OR and OR to AND. The previous poster skipped some steps.

The first thing I did was to switch the OR to an AND. Then invert the variables. When I mean variables, I actually mean (B'C')' & (B'D')'. You must then apply D'Morgan's Law once again. So for (B'C')', change the and to an OR. Then Invert the variables. You will get (B+C) Some more examples that are a bit simpler.
(A+B)' = A'B'
(AB)' = A' + B'
D'Morgan's laws are very important, especially when you start doing things with NAND and NOR gates. It turns out that NAND and NOR gates are cheaper/faster than other gates so you will want to convert AND/OR and OR/AND circuits into NAND/NAND and NOR/NOR circuits. To do this, it is often easiest to use D'Morgan's laws especially if you are already given the SOP or POS form.

A note for how I write equations. I don't use the . when I do the AND operations. If there is nothing in between two variables, an AND is implied since I will never represent a variable with 2 letters.