How to simply this 2 to 1 mux boolean expression
I use a slightly different notation/symbols to denote it easier:


a = not A
A = A
b = not I1
B = I1
c = not I0
C = I0



Q = aBc + aBC + AbC + ABC   
  = aB(c + C) + AC(b + B)     // c + C = true, aB(true) = aB
                              // b + B = true, AC(true) = AC
  = aB        + AC



Written back in original symbols:


  Q = aB         + AC
         = not(A) * I1 + A * I0