# Boolean Algebra Expressions

So I have been trying to understand the truth tables and everything that goes along with that, and I thought I had it until I got down to the part about Identities. I got to the part about the most common mistake for beginners: “One of the most common errors that beginners make when working with Boolean logic is to assume the following: `(xy)' = x'y'` . This is wrong! Refer to DeMorgan’s Law to see the correct identity. To prove it to yourself, generate the truth table for `(xy)'` an `x'y'` to see if they are equivalent.”

And I was like okay I will make the table, but then I got to making it and I thought to myself, wait, I don’t think I actually understand this because I don’t understand how you come up with the values in the truth table. Like how under x it will say the values are: 0 0 1 1 and y values are: 0 1 0 1

I don’t get how you know what to put as the value? Is x always 0 0 1 1 ? is y always 0 1 0 1 ? like the first truth table shows? I am just lost at this point with it.

I know this is probably a stupid question, but can anyone please explain this to me?

A truth table can be derived from the expression itself. If you want to prove that (xy)’ doesn’t equal x’y’, you can do so by subbing in the possible values yourself and evaluating the output. You know you’re only working with ones and zeros, so, just write it out. When x is 0 and y is 0, (xy)’ --> (0 and 0) or (False and False) = (0)’ or (False)’, not zero, or not false, so 1 or True. So the answer is you don’t know which values prove or disprove `(xy)' = x'y'` , but you can crunch the truth the table manually by plugging each possibility into the function and recording the output. Does that make sense?

So you can see based on the output columns (f) that the two expressions are not equivalent.

2 Likes

Hello!

Just to expand further on gdevl’s answer regarding the question about understanding exactly how to know which values to input into your truth table: try not to think about the x and y values as static blocks of 0 0 1 1 and 0 1 0 1. Instead, remember you are simply comparing all possible input values of n variables in a truth table.

You are listing out all the minterms* of your given variables, so when we have two variables we have four minterms because 2² = 4 (2³ = 8 for 3 variables, etc). So the minterms for x & y are:

1. x’y’ >> 0 0 >> False False
2. x’y >> 0 1 >> False True
3. xy’ >> 1 0 >> True False
4. xy >> 1 1 >> True True

In terms of how you order out these minterms, for our purposes we’ll just start with 0 0, to represent a default “OFF” state, and the next minterm you list should change values one at a time. (Don’t worry too much about this right now, a lot of it will make more sense when you hit the k-map section!)

*Minterm of n variables is a product of the variables in which each appears exactly once in true or complemented form. 