Many times, I've struggled with simplifying complex expressions, such as this extraordinarily simple expression, and Mathematica wont do it:
$Assumptions = {l>0,a>0,a \[Element]Reals, l \[Element]Reals}
Conjugate[(Exp[I a])^(2 l)] //FullSimplify
Where Mathematica returns the same thing with no simplification. I told it the assumptions which make it very obvious to just change the sign of the exponent, and I don't understand why it doesn't work.
I looked here, but it seems like they have to define their own rules to do this kind of thing. I'm also saw here that you can do //ComplexExpand //FullSimplify for this expression, but it doesn't seem to work in all cases. Why should it be nessecary and why doesn't FullSimplify do it already? Also, I think ComplexExpand assumes that all variables are real, which was the case in this expression, but isn't always the case. So how would I do it then?


Conjugate[(Exp[I a])^(2 l)]simplified to? (and it is really not good idea to uselfor variable, it looks like1. Better usenormor something other letter. – Nasser May 24 '20 at 04:58ComplexExpand. WhileComplexExpanddefaults to assuming that all variables are real, the optional second argument is used to specify which variables are complex.FullSimplifydoesn't do everything because it would be inefficient to unnecessarily use additional tools in cases where they would have little value. Also, the "preferred" form is often a matter of opinion. – Bob Hanlon May 24 '20 at 05:26ComplexExpandassumes that all variables are real, which was the case in this expression, but isn't always the case" - indeed, so if you have things in your expression that aren't supposed to be real, that's what you use the second argument ofComplexExpand[]for. – J. M.'s missing motivation May 24 '20 at 05:55ComplexExpand), but refuses to use it as implemented. – MarcoB May 24 '20 at 16:51