Question | How To Convert From CNF TO DNF?

  • Context: Undergrad 
  • Thread starter Thread starter gabaygu
  • Start date Start date
  • Tags Tags
    Convert
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
5 replies · 30K views
gabaygu
Messages
2
Reaction score
0
using de' morgan Lows.
thanks!
 
Physics news on Phys.org
Despite this being "fairly straightforward", I don't get it.

Say you have something like (AB)+(CD). If you apply De Morgan's, you get something like ((A'+B')(C'+D'))', no? But now you've got this negation around the whole thing, so it's not in CNF. Conversely, if you start with something like (A+B)(C+D), you end up with ((A'B')+(C'D'))', don't you? But that's not DNF, because there's a negation around it.

Can you really convert from CNF to DNF and visa versa using De Morgan's laws; if so, how do you do it? If not, what procedure should you use?

If I think about it heuristically, I can see that (A+B)(C+D) = AC + AD + BC +BD, but I don't see a general procedure. Is it just that 'multiplying' it out is the manual procedure?
 
luddite said:
Say you have something like (AB)+(CD). If you apply De Morgan's, you get something like ((A'+B')(C'+D'))', no? But now you've got this negation around the whole thing, so it's not in CNF.

You almost got it. But you must apply de Morgan's law twice because
for every Boolean function f we have: f = f ''

So let's say f = (AB)+(CD). Then, f = f '' = [ (AB)+(CD) ]'' = [ (A'+B')(C'+D') ] '
Then, use the distributive law within the [] brackets:
[ (A'+B')(C'+D') ]' = [ A'C' + A'D' + B'C' + B'D' ]' = (A+C) (A+D) (B+C) (B+D)