Problem with Simplify, Sqrt, and Set: What's going on?

Probably some internal weirdness with the ComplexityFunction, but:

Simplify[Sqrt[1/(a + b c d e  )] Sqrt[a + b c d e ]==1] // PowerExpand

Simplify[1 == Sqrt[a + b*c*d*e] Sqrt[1/(a + b*c*d*e)], x4 > 0] // PowerExpand

(* 
   True
   True
*)

The cases involving x0, x1, x2, x3 will all simplify, but the x4 case will not.
What's going on here?

Simplify[1 == Sqrt[a + b*c*d*e] Sqrt[1/(a + b*c*d*e)], x4 > 0]

Sqrt[1/(a + b c d e)] Sqrt[a + b c d e] == 1

With x4 added, you have one too many variables for the assumptions to work. Maximum number of variables in non-linear expressions for the assumptions to be processed in Simplify and FullSimplify is 4 (the value of "AssumptionsMaxNonlinearVariables" sub-option of the system option "SimplificationOptions")

"SimplificationOptions" /. SystemOptions["SimplificationOptions"]

"AssumptionsMaxNonlinearVariables" -> 4,
"AssumptionsMaxVariables" -> 21, "AutosimplifyTrigs" -> True,
"AutosimplifyTwoArgumentLog" -> True, "FiniteSumMaxTerms" -> 30,
"FunctionExpandMaxSteps" -> 15, "ListableFirst" -> True,
"RestartELProver" -> False, "SimplifyMaxExponents" -> 100,
"SimplifyToPiecewise" -> True}

You can reset this sub-option value to a large enough number

SetSystemOptions["SimplificationOptions" -> {"AssumptionsMaxNonlinearVariables" -> 10}];
Simplify[1 == Sqrt[a + b*c*d*e] Sqrt[1/(a + b*c*d*e)], x4 > 0]

True

Related Q/As:

  • Evaluating an Inequality
  • Simplifying expressions with head Max
  • Using Inequality Assumptions)