# Can Mathematica reliably determine the equality of any two constructible numbers?

A constructible number is any number which can be expressed with only natural numbers and the operators $+$, $-$, $\times$, $/$, $\sqrt{}$ (square root only). Is Mathematica's Simplify or FullSimplify guaranteed to be able to detect equality between two such numbers regardless of the complexity of the expression? More specifically, if I have two expressions a and b which represent the same constructible number, is either of the following guaranteed to yield True?

FullSimplify[a - b] == 0
FullSimplify[a == b]


An algorithm for determining equality exists, but from the documentation it's not clear, whether Mathematica will always be able to determine equality or just "try really hard".

Bonus question if the answer is "yes": how about algebraic numbers, i.e. allowing radicals of other orders than 2.

• The best thing to do is RootReduce[]; if the two algebraic numbers are indeed equal, RootReduce[] should be able to see that their difference is zero. Alternatively (or equivalently, if you think about it), use MinimalPolynomial[]. – J. M. is in limbo Apr 1 '16 at 9:52
• Have you seen Constructible numbers? – user9660 Apr 1 '16 at 13:57

PossibleZeroQ[a - b, Method -> "ExactAlgebraics"]