why is (b *c)+(a*c) = c?

93 Views Asked by At

I have been learning boolean algebra but I am stuck understanding a rule. That is the term I am trying to explain my problem on: $$(\neg a*\neg b* \neg c)+(\neg a*\neg b * c)+(\neg a *b *c)+(a*\neg b*c)+(a*b*c)$$

I first cut it down to this: $(\neg a * \neg b)+(\neg a *b *c)+(a*c)$ // I think this is right so far
the next step would be: $(\neg a * \neg b)+(b *c)+(a*c)$ // problem 1
and after that it would be: $(\neg a * \neg b)+c$ // problem 2

so, the first problem is: why is $(\neg a *b *c)+(a*c) = (b *c)+(a*c)$ ?
I would appreciate a detailed explanation, I think the same thing happens on problem 2:
why is $(b *c)+(a*c) = c$ ?

I first thought okay, it is because both terms depend on c anyway, but lets say $c=1 $ and $b = 0 = a$ this would be a different outcome than just $c = 1$, so how do we get $c$ as the result? I think its probably the same way as with problem 1.

I would appreciate your help

3

There are 3 best solutions below

1
On

Starting from: $$(\neg a*\neg b* \neg c)+(\neg a*\neg b * c)+(\neg a *b *c)+(a*\neg b*c)+(a*b*c)$$ Indeed, a first step could be to combine the first two into: $$(\neg a*\neg b)+(\neg a *b *c)+(a*\neg b*c)+(a*b*c).$$ Now what I would do is rewrite the last three terms by pulling out the $c$ as: $$(\neg a*\neg b)+c * (\neg a *b + a*\neg b + a*b).$$ Now, since the result is a $1$ anyway if both $a$ and $b$ are $0$ (by the first term), you can introduce a dummy term to "complete the square": $$(\neg a*\neg b)+c * (\neg a *b + a*\neg b + a*b + \neg a * \neg b).$$ This would then be equal to $$(\neg a*\neg b)+c.$$

To answer your concrete question: the equivalence only holds conditioned on $a, b$ such that the first term is not equal to $1$. Just as I did above, $(\neg a *b + a*\neg b + a*b + \neg a * \neg b) = 1$ but generally $(\neg a *b + a*\neg b + a*b) \neq 1$. So $b* c + a * c \neq c$ but in the context here, where the first term is not $1$ only if at least one of $a$ and $b$ equals $1$, then indeed $b * c + a * c = c$.

0
On

I assume you are writing $+$ for $\vee$, i.e. inclusive OR, and $*$ for $\wedge$, i.e. AND.

Then the first statement is true: $(\neg a* b* c)+(a* c)=(b* c)+(a* c)$. This is because $b* c=(a* b* c)+(\neg a* b* c)$, so $$(b* c)+(a* c)=(a* b* c)+(\neg a* b* c)+(a* c)\\ =\big((a* b* c)+(a* c)\big)+(\neg a* b* c)\\ =\big((a* c)*(b+1)\big)+(\neg a* b* c)\\ =(a* c)+(\neg a* b* c),$$ since $b+1=1$ ("anything OR true" is true).

Your second statement doesn't work. It is true that $(\neg a*\neg b)+(b∗c)+(a∗c)=(\neg a*\neg b)+c$, but not that $(b∗c)+(a∗c)=c$. In general $x+y=x+z$ does not mean that $y=z$ in Boolean algebra (after all $x+x=x+0$ for any $x$). This is why $+$ is a misleading symbol to use for OR.

0
On

If $a$ is true, then $(\lnot a *b*c) + (a*c) \equiv (a*c)$ which is true iff $c$ is true, therefore is equivalent to $(a*c) + (b*c)$.

If $a$ is false, $(\lnot a *b*c) + (a*c) \equiv (\lnot a *b*c) \equiv (b*c) \equiv (b*c) + (a*c)$

Thus, in all cases, $$(\lnot a *b*c) + (a*c) \equiv (b*c) + (a*c)$$.

Now $$\begin{align}(\lnot a *\lnot b)+(b*c) + (a*c) &\equiv (\lnot a *\lnot b)+(a+b)*c\\&\equiv (\lnot a *\lnot b) + (\lnot(\lnot a *\lnot b))*c\\&\equiv A + (\lnot A*c)\end{align}$$ Making the distinction between when $A =^{def} (\lnot a*\lnot b)$ is true or false, you finally get that $(\lnot a *\lnot b)+(b*c) + (a*c) \equiv (\lnot a *\lnot b)+c$

(Also note that $(b*c) + (a*c) \ne c$, you need that third term)