How can you convert this boolean expression into CNF

boolean-algebralogicsolution-verification

I'm currently completely lost trying to show that these boolean expressions are equal: $$\bar abc\lor a\bar bc\lor ab\bar c = (a\lor c)(b\lor c)(a\lor b)(\bar a \lor \bar b\lor\bar c)$$
I spend almost 8 hours trying everything but never got far. This is the furthest I've got:
$$(\bar abc\lor a\bar bc)\lor ab\bar c \\= ([\bar abc \lor a][\bar abc \lor \bar b][\bar abc \lor c])\lor ab\bar c\\=
([1(a\lor b)(a\lor c)]\land[(\bar b\lor \bar a)1(\bar b\lor c)][(c\lor \bar a)(c\lor b)(c\lor c)])\lor ab\bar c\\=
c(a\lor b)(\bar b\lor \bar a)\lor ab\bar c$$

Is this proof really that complex or am I just missing something very easy?

Best Answer

HINT: You can in 1 step do something akin to FOIL on the second expression, i.e. combine one term from the first conjunct with one from the second, one from the third, and one from the fourth. Do this for all possible combinatins: This should get you $2\cdot 2 \cdot 2 \cdot 3 =24$ new terms:

$abaa'+abab'+abac'+abba'+abbb'+abbc'+....$

Now you can remove any term where you have a variable and its complement, since that term represents a contradiction/impossibility:

$abac'+abbc'+...$

Now you can remove duplicates of variables:

$abc'+abc'+...$

... and duplicates of terms:

$abc'+...$

You can also start with the left side and do an analgous process, but then the first step gets you $3 \cdot 3 \cdot 3 =27$ terms ... and given your high school number algebra experience it's probably not as intuitive to work with products of sums as opposed to sums of products, which is why I recommend going from right to left.

Finally, I should point out that you yourself are almost there anyway:

$c(a+b)(b'+a')+abc'=$ (FOIL)

$c(ab'+aa'+bb'+ba')+abc'=$(remove contradictions)

$c(ab'+ba')+abc'=$

$cab'+cba'+abc'=$(bunch of commutations)

$a'bc+ab'c+abc'$

Related Question