$1 - \sqrt{5}$ $\in$ $\mathbf{R}$?

Why is there a difference in the output of the following codes?

First:

ClearAll["Global*"]

a = {0, -m};
b = {-(Sqrt[-2 + m^2]/Sqrt[m]), -m - (-2 + m^2)^2/m};
c = {-1, 1} b;
d = 1024 m (-2 + m^2)^3;
o = {0, 0};

Reduce[{d > 0, EuclideanDistance[a, o] == EuclideanDistance[b, c]}, m]
m == 2 || m == 1 - Sqrt || m == 1 + Sqrt

And then with Reals:

Reduce[{d > 0, EuclideanDistance[a, o] == EuclideanDistance[b, c]}, m, Reals]
m == 2 || m == 1 + Sqrt
• By the way ClearAll; is not a command; try: ClearAll["Global*"]. The All in ClearAll does not mean all Symbols, but rather all Symbol properties, including Attributes, Default, etc. – Mr.Wizard Jul 23 '13 at 11:27
• My guess would be that, because some subexpression (in particular Sqrt[-2 + m^2] in EuclideanDistance[b, c]) becomes imaginary for the value m == 1 - Sqrt, Reduce throws that solution away, even though all variables are real. But because I don't know the internals of Reduce, it's a pure guess ... – Teake Nutma Jul 23 '13 at 13:03
• I think @TeakeNutma is right. Change b = {Sqrt[(-2 + m^2)/m],..} and 1 - Sqrt shows up again as a Real solution. – Michael E2 Jul 23 '13 at 13:51

Try

Reduce[d > 0 && EuclideanDistance[a, o] == EuclideanDistance[b, c] &&
m \[Element] Reals, m, Complexes]
m == 2 || m == 1 - Sqrt || m == 1 + Sqrt

As from the documentation page of Reduce we have It seems to me Teake Nutma was right.

• Well, I wasn't right about this being some undocumented internal behaviour of Reduce. Thankfully some people still know how to read docs :). – Teake Nutma Jul 23 '13 at 14:34