Say I enter the following code:
FullSimplify[Im[r*Exp[I*theta]^2 + (s + I*t)*Exp[I*theta]], Element[theta | r | s | t, Reals]]
I expect to get:
2*r*Cos[theta]*Sin[theta] + s*Sin[theta] + t*Cos[theta]
But what Mathematica gives me is:
Im[Exp(I*theta)*(Exp(I*theta)*r + s + I*t)]
What's going on, why isn't Mathematica successfully using the assumptions to compute the imaginary part? When I take out any one of the three terms in the original expression, Mathematica successfully produces the simplified output.