# Abs[Sin[4a]] not equal to 2Sin[2a]Abs[Cos[2a]] for a in [0,\pi/2]

I have a long expression which is not fully simplified because Abs[Sin[4a]] is considered different from 2Sin[2a]Abs[Cos[2a]] for a∈[0,π/2]a \in [0,\pi/2] – which is actually not.

As a proof of that, if I run

Assuming[0 <= a <= Ï€/2, Abs[Sin[4 a]] == 2 Abs[Cos[2 a]] Sin[2 a] // Simplify] I do not get True, but Abs[Sin[4 a]] == 2 Abs[Cos[2 a]] Sin[2 a]. Of course, if I run Assuming[0 <= a <= Ï€/2, Abs[Sin[4 a]] == 2 Abs[Cos[2 a] Sin[2 a]] // Simplify] I get True. Anyone has an idea why it is not correctly simplified? Anyone with the same issue? I am using Mathematica 10.0 on a Windows 7 Home Premium machine. ================= ================= 2 Answers 2 ================= As I was recently informed by Wolfram support, Simplify is not guaranteed to fully solve equalities or inequalities. Take this example: FullSimplify[Log[x] > 1, Element[x, Reals]] (* Log[x] > 1 *)
Reduce[Log[x] > 1, x, Reals] (* x > E *)

We can also get your equation to simplify by using Reduce.

Reduce[Abs[Sin[4 a]] == 2 Abs[Cos[2 a]] Sin[2 a] && 0 <= a <= Pi/2] (* 0 <= a <= Pi/2 *) As you can see, the equality has been simplified to True.      Thank you for pointing out the use of Reduce. However, I feel like using it for simplifications is in general more cumbersome, especially if you are working with expressions involving multiple variables/parameters and temporary assumptions. – Nicola Mar 11 '15 at 0:02      @Nicola In fact it's even worse, since Reduce won't take arbitrary expressions, only systems of equalities and inequalities. – 2012rcampion Mar 11 '15 at 0:04 You can add ComplexExpand to the transformations FullSimplify will try (since a is real). But FullSimplify seeks to minimize the complexity of the expression, and the starting expression is a local minimum, To get it over the hump, we can penalize Abs. Assuming[0 <= a <= Ï€/2, FullSimplify[Abs[Sin[4 a]] == 2 Abs[Cos[2 a]] Sin[2 a], TransformationFunctions -> {Automatic, ComplexExpand},
ComplexityFunction -> (LeafCount[#] + 10 Count[#, _Abs, Infinity] &)]]
(* True *)

Perhaps the best way is to combine 2012campion’s method with this:

Assuming[0 <= a <= Ï€/2, Simplify[Abs[Sin[4 a]] == 2 Abs[Cos[2 a]] Sin[2 a], TransformationFunctions -> {Automatic, # /. eq_Equal :> Simplify@Reduce[eq && \$Assumptions] &}]]
(* True *)