# $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[5] || m == 1 + Sqrt[5]


And then with Reals:

Reduce[{d > 0, EuclideanDistance[a, o] == EuclideanDistance[b, c]}, m, Reals]

m == 2 || m == 1 + Sqrt[5]

-
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 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[5], 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 at 13:03
I think @TeakeNutma is right. Change b = {Sqrt[(-2 + m^2)/m],..} and 1 - Sqrt[5] shows up again as a Real solution. –  Michael E2 Jul 23 at 13:51

Try

Reduce[d > 0 && EuclideanDistance[a, o] == EuclideanDistance[b, c] &&
m \[Element] Reals, m, Complexes]

m == 2 || m == 1 - Sqrt[5] || m == 1 + Sqrt[5]


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 at 14:34