DeMorgan Theorem

Papabravo

Joined Feb 24, 2006
21,225
We solve equations; you have given us an expression. Did you mean to ask: "Can you help me expand this Boolean expression into a Sum of Products (SOP), or Product of Sum (POS) form using De Morgan's Theorem"?
 

Papabravo

Joined Feb 24, 2006
21,225
By solution, you mean the sequence of steps showing how to transform one expression into the other?

If so then you need to state explicitly what you want. You still don't have the expression in SOP or POS form.

Example:
"Can you take the following Boolean expression (a(b+z(x+a')))' and using De Morgan't theorem express it as a Sum of Products."
 

Papabravo

Joined Feb 24, 2006
21,225
Your question is not a question -- it is a Boolean Expression
Why is the answer an answer, and how did you get there?
 

djsfantasi

Joined Apr 11, 2010
9,160
As I said in another of your posts on this question, this is the "Homework Help" forum . It is not the "Homework Done for You" forum. Have you read Posting questions in the Homework Help section? One item it states is
Rich (BB code):
Additionally:
  • Post all your attempts at the questions and details of any information you have been given as part of the homework/coursework/assignment.
We understand that you are stuck. What have you tried so far? By providing that information, we can see how you are thinking and guide you to the correct solution.
 

mlog

Joined Feb 11, 2012
276
Question (a(b+z(x+a')))'
Help me to solve this question by using DeMorgan's Theorem
Is the above exactly how the question was stated?

The reason I ask is that I can't imagine why you would want to create the equivalent expression in the answer you provided. I'm not saying the expressions aren't equivalent. What I'm wondering is why in the world would anyone want to do that.

As someone else stated, a transformation to the SOP or POS form would make sense, but not the form that was given in your answer.
 

MrAl

Joined Jun 17, 2014
11,464
Question (a(b+z(x+a')))'
Help me to solve this question by using DeMorgan's Theorem

Hi there,

I'll help you get started.

First, write out the equation as it stands, and here i'll replace all the negations with the letter 'n' rather than use a single quote because that gets strange sometimes,
and to begin with we leave the last negation at the end for last.
Rewriting, we have:
a*((x+an)*z+b)

Note this is the same original expression without the last negation.

To get started we expand this expression and we get:
a*x*z+a*an*z+a*b

Note all we did so far was leave off the last negation and multiply out the expression using the rules of algebra.

Now here is where it gets interesting...

If we examine that expression, we see a combination of factors which can immediately be reduced, which makes our expression simpler already. The "a*an" factors reduce because 'a' times it's negated twin 'an' ALWAYS result in a zero (0). This is one of the main beauties of DeMorgan and Boolean Algebra in general, and this is what we look for in order to reduce the expression.
We note that if 'a' is 1 then 'an' ALWAYS MUST BE equal to the negated value, which of course is 0, and if 'a' is 0 then 'an' ALWAYS MUST BE equal to 1, so we either have:
a*an=1*0=0
or
a*an=0*1=0

So you see, a*an ALWAYS reduces to zero (0).

Knowing this now, we can replace "a*an" with zero in the current expression:
BEFORE:
a*x*z+a*an*z+a*b
AFTER:
and after replacement we get:
a*x*z+0*z+a*b

Now you'll note that zero times anything else is always zero, so we can remove that entire center term and get:
a*x*z+a*b

So now we are down to two terms, which means we've reduced the expression already.

But we are not done yet because we left off the last negation, so we have to now negate this expression and look for more reductions, or possibly look for more reductions first and then negate it. For now it is probably easier to negate it first and then look for more reductions.

So up to now we have:
(a*x*z+a*b)'

and now you should try to proceed with these reduction techniques yourself. You should look up the list of common reductions on the web because it helps to know at least the simpler ones. For a few examples:

a*1=a
a*0=0
a*a=a
a+a=a
a*a'=0
a+a'=1

There are many more you should look up and you will find this makes it a lot easier to do.

A slightly more advanced concept is:
a+a*b=a

and this is true because if we already have 'a' OR'ed into the expression then we dont have to know what 'b' is to get the result:
a+a*b=0+0*0=0
a+a*b=1+1*0=1
a+a*b=0+0*1=0
a+a*b=1+1*1=1
Note in all four possible cases the result is always equal to just plain old 'a'.
 
Last edited:

MrAl

Joined Jun 17, 2014
11,464
Hi,

What is that? That does not look correct.

In my last post i stopped when we got to this:
(a*x*z+a*b)'

and now we wanted to apply that last negation to the entire expression so we can reduce further. So lets do that now.

To negate the expression we just have to negate EVERYTHING inside the parens, and that means we negate the logical connectives as well as the variables themselves. This means that a variable like "a" gets negated to "an" or a' and if we have an AND operator "*" it becomes the OR operator "+" and if we have the OR operator "+" it becomes the AND operator "*".

So we have:
(a*x*z+a*b)'

and first we negate the "a" and we get a', then next we have the AND operator "*" and that becomes "+", then we have "x" and that becomes x', then another AND which becomes "+", then z which becomes z', then OR which becomes "*", etc., and we end up with:
(a'+x'+z')*(a'+b')

One other thing you'll notice here is that when we negated the AND operators "*" to be OR operators "+" we kept the grouping the same by using parens. So a statement like this:
(a*b*c)'
becomes:
(a'+b'+c')
and we keep three variables grouped together with the parens so that when they combine with other negations we still have the right expression. Another quick example:
(a*b+c*d)'
becomes:
(a'+b')*(c'+d')
We must keep the AND'ed groupings together or else we loose the original meaning of the expression.

So for the original problem so far we have now:
(a'+x'+z')*(a'+b')

and we want to reduce this even more. The next step could be to multiply this out and then look for more reductions, or else look for more reductions first. See what you can do with this.
 
Top