Simplifying a logic function using boolean algebra - boolean-logic

I'm taking a class on digital logic and I am having a hard time with boolean algebra and simplifying logic functions with it. I have tried answering this problem several times and I keep coming to the answer "1", which I feel is absolutely wrong.
The question is
Consider the logic function f(a,b,c) = abc + ab'c + a'bc + a'b'c + ab'c'. Simplify f using Boolean algebra as much as possible.
I have tried solving it several ways using the boolean identities given in my textbook and from lecture, but I keep coming to something like c + 1 which is equivalent to 1, which I don't feel is the correct answer considering the next question in the problem.
Here is my last attempt:
f(a,b,c) = abc + ab'c + a'bc + a'b'c + ab'c'
= a(bc + b'c + b'c') + a'(bc + b'c) # Distributive, took out the a and the a' separately.
= (a + a')((bc + b'c + b'c') + (bc + b'c)) # Distributive(?), took out the a and a' together (This is probably where I screwed up).
= (1)((c + b'c') + c) # a + a' = 1; bc + b'c = c (Combining).
= c + b'c' + c # cleaned up a little.
= c + b'c' # c + c = c.
= c + (b' + c') # b'c' = b' + c' (DeMorgan's Theorem).
= 1 + b' # c + c' = 1.
= 1 # 1 + b' = 1
This feels absolutely wrong to me, and the next question asks me to make the logic circuit for it, which I don't think is possible.
Can anyone help/walk me through what I am doing wrong? I would really appreciate it. :(
(P.S. I used code formatting, I apologize if this is annoying to some.)

By this table:
A 1 1 1 1 0 0 0 0
B 1 1 0 0 1 1 0 0
C 1 0 1 0 1 0 1 0
Y 1 0 1 1 1 0 1 0
Y=ab'+c
I've got it :D
f(a,b,c) = abc + ab'c + a'bc + a'b'c + ab'c'
= a(bc + b'c + b'c') + a'(bc + b'c)
= a(c(b + b') + b'c') + a'(c(b + b'))
= a(c * 1 + b'c') + a'(c * 1)
= a(c + b'c') + a'c
= a(c'(b'c')')' + a'c
= a(c'(b + c))' + a'c
= a(c'b +cc')' + a'c
= a(c'b)' + a'c
= a(c+b') + a'c
= ac + ab' + a'c
= c(a + a') + ab'
= ab' + c

Related

How to prove (x+y)/z + (y+z)/x + (x+z)/y>=6 when x,y,z>0

This question actually had two parts. In the first part I had to prove that a + 1/a >=2. I proved it by rearranging it to (a-1)^2 >= 0, which is always true.
So, I thought the second problem would require a similar method.
(x+y)/z + (y+z)/x + (x+z)/y >=6, where x,y,z>0
But I cant figure it out.
I've tried simplifying it and factoring it for ideas but I've got nothing.
Once you know that a + 1/a >= 2, the second part is easy. Define:
a := x/z, b := y/z, c := y/x
and now
(x+y)/z + (y+z)/x + (x+z)/y = x/z + y/z + y/x + z/x + x/y + z/y
= a + b + c + 1/a + 1/c + 1/b
>= 2 + 2 + 2
= 6

Boolean algabra

I'm working on some logic homework and I can't figure out the next step in reducing the number of literals. Any help would be greatly appreciated.
(A + B + C) (A’B’ + C)
A’B’C + AC + BC + C
C(A’B’ + A + B + C)
C((A + B)’ + A + B + C)
I'm pretty sure I use the associative law next, but I don't understand how the not operator is distributed when rearranging.
From the point where you left:
C((A + B)’ + A + B + C)
C(1 + C) ; X' + X = 1 applied to X = A + B
C(1) ; 1 + <anything> = 1
C ; <anything>1 = <anything>

Is this simplification correct? (Demorgans Theorem)

{a(b+c)+a’b}’ 
using demorgans theorem I got a'+ b'c'a + b' then I factored b' out of b'c'a + b' to get b'(1+c'a) which just turns into b'. plugging it back into the equation I'm left with a'+b'. Is that correct or do I have this all wrong?
 
{a(b+c)+(a'b)}' = (a (b+c))' . (a'b)'
= (a' + (b+c)') . (a+b')
= (a' + (b'.c')) . (a+b')
= (a.a') + (a'b') + (ab'c') + (b'c')
= 0 + a'b' + b'c'(a+1)
= a'b' + b'c'(1)
= a'b' + b'c'
= b'(a'+c')

Mathcad 14: "pattern match exception" when solving equation with more unknowns

I'm trying to solve an equation with 5 unknowns in Mathcad 14. My equations look like this:
Given
0 = e
1 = d
0 = c
-1 = 81a + 27b + 9c + 3d + e
0 = 108a + 27b + 6c + d
Find(a,b,c,d,e)
Find(a,b,c,d,e) is marked as red and says "pattern match exception". What is the problem?
In mathcad you need to do something similar to:
c:=0
d:=1
e:=0
a:=1
b:=1
Given
81*a + 27*b + 9*c + 3*d + e = -1
108*a + 27*b + 6*c + d = 0
Find(a,b,c,d,e) = (0,0,0,0,-1)
Now, what I have done here is to define the variables BEFORE the Solve Block (Given...Find), you have to give initial values which you think are close to the solution you require in order for the iteration to succeed.
Tips: To get the equals sign in the Solve Block, use ctrl and '='. If your looking to solve for 5 unknowns then you need 5 equations, the original post looked like you knew 3 of the variables and were looking for a and b, in this case you would do the following:
c:=0
d:=1
e:=0
a:=1
b:=1
Given
81*a + 27*b + 9*c + 3*d + e = -1
108*a + 27*b + 6*c + d = 0
Find(a,b) = (0.111,-0.481)
This has held c, d and e to their original values and iterated to solve for a and b only.
Hope this helps.

Boolean Simplification

I have a boolean simplification problem that's already been solved.. but I'm having a hard time understanding one basic thing about it.. the order in which it was solved.
The problem is simplifying this equation:
Y = ¬A¬B¬C + ¬AB¬C + A¬B¬C + A¬BC + ABC
The solution is:
Y = ¬A¬B¬C + ¬AB¬C + A¬B¬C + A¬BC + ABC
= ¬A¬B¬C + ¬AB¬C + A¬B¬C + A¬BC + A¬BC + ABC (idempotency for A¬BC)
= ¬A¬C(¬B + B) + A¬B(¬C + C) + AC(¬B + B)
= ¬A¬C + A¬B + AC
The way I solved it is:
Y = ¬A¬B¬C + ¬AB¬C + A¬B¬C + A¬BC + ABC
= ¬A¬B¬C + ¬AB¬C + ¬A¬B¬C + A¬B¬C + A¬BC + ABC (idempotency for ¬A¬B¬C)
= ¬A¬C(¬B + B) + ¬B¬C(¬A + A) + AC(¬B +B)
= ¬A¬C + ¬B¬C + AC
So how do I know which term to use the law of idempotency on? Thanks.
¬A¬B¬C + ¬AB¬C + A¬B¬C + A¬BC + ABC
¬A¬C(¬B + B) + A(¬B¬C + ¬BC + BC)
¬A¬C + A(¬B¬C + ¬BC + BC) <- see truth table below for the simplification of this
¬A¬C + A(¬B + C)
¬A¬C + A¬B + AC
truth table:
B C
0 0 = 1 + 0 + 0 = 1
0 1 = 0 + 1 + 0 = 1
1 0 = 0 + 0 + 0 = 0
1 1 = 0 + 0 + 1 = 1
which is ¬B + C