# Solve[ ] with Method -> Reduce gives a different result than Reduce[ ]

Why does

Solve[Sqrt[x + Sqrt[x]] - Sqrt[x - Sqrt[x]] ==
m Sqrt[x/(x + Sqrt[x])], x, Reals, Method -> Reduce]


give a different result than

Reduce[Sqrt[x + Sqrt[x]] - Sqrt[x - Sqrt[x]] ==
m Sqrt[x/(x + Sqrt[x])], x, Reals]


note that the first one says $1<m<2$ while the second one says $1<m\le 2$.
The documentation says

With Method->Reduce, Solve uses only equivalent transformations and finds all solutions.

## 1 Answer

Solve by default works with generic parameters, even if you use the option Method -> Reduce. To get the special parameter value m = 2 you need to set MaxExtraConditions to All:

Solve[Sqrt[x + Sqrt[x]] - Sqrt[x - Sqrt[x]] == m Sqrt[x/(x + Sqrt[x])], x, Reals,
Method -> Reduce, MaxExtraConditions -> All]
Out[1]= {{x -> ConditionalExpression[(4 - 8 m + 8 m^2 - 4 m^3 + m^4)/(4 - 8 m + 4 m^2),
1 < m <= 2]}}

• As discussed in this thread, Even both Method -> Reduce, MaxExtraConditions -> All are turned on, Solve and Reduce could give different results. For example, Solve[x^2 + y^2 <= r^2, {x, y}, Method -> Reduce, MaxExtraConditions -> All], and the Reduce counterpart. Feb 10, 2014 at 14:08