The Boolean Algebra XOR Problem: Are These Expressions Equivalent?

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
7 replies · 2K views
Rectifier
Gold Member
Messages
313
Reaction score
4
The problem
This is not a complete homework problem. I am at the last step of the solution to a long problem and only interested to know whether these following expressions are equivalent.

My answer:
## a \oplus ab \oplus ac ##

Answer in my book:
## a \oplus b \oplus c ##

The attempt
I have tried rewriting that expression and get
## a \oplus ab \oplus ac = a \oplus a(b \oplus c) ##

I am not advancing any longer from there. I am surely missing some algebraic law for boolean expressions. Could you please help me?
 
Physics news on Phys.org
Did you try building a truth table?
If you do you'll see that your answer is different from the book's answer.
For example ABC = 0,1,0
The book answer gives 1
Your answer results in 0
 
  • Like
Likes   Reactions: Rectifier
Part of your problem may be your understanding of operator precedence.

It seems to vary slightly across programming languages. For C, Java and Javascript it is:

NOT > AND > XOR > OR

a XOR ( a AND b) XOR ( a AND c)

with XOR equivalent to:

x XOR y = (x OR y) AND (NOT ( x AND y) // mentor note: fixed the expression (thx cpscdave)

reworking the second and third terms should get you to the goal.
 
Last edited:
  • Like
Likes   Reactions: Rectifier
Well, I guess I am doing something wrong then. :/ Thanks for the help.
 
jedishrfu said:
x XOR y = (x OR y) AND (NOT ( x OR y)

Think you mean
(x OR y) AND [NOT ( x AND y)]

or alternatively

(x OR y) AND ( NOT x or NOT y)
 
Yes you are right my apologies.

I got my up and down arrows confused in my conversion to ands and ors.

I fixed my post.
 
  • Like
Likes   Reactions: cpscdave
Rectifier said:
My answer:
## a \oplus ab \oplus ac ##

Answer in my book:
## a \oplus b \oplus c ##

The attempt
I have tried rewriting that expression and get
## a \oplus ab \oplus ac = a \oplus a(b \oplus c) ##

I am not advancing any longer from there. I am surely missing some algebraic law for boolean expressions. Could you please help me?
I would proceed by converting one XOR at a time to its equivalent in AND and OR, starting with this:

## \mathrm {a \oplus ab \oplus ac = a (\overline {ab \oplus ac }) + \overline a (ab \oplus ac)}##