# A one line proof that one is zero using Mathematica 10

 a = (Sqrt[2] + 1) (Sqrt[2] - 1) - 1;
{a/a, Simplify[a]/a, b/b == Simplify[b]/b}

{1, 0, True}


This one line "proof" that one equals zero is disturbing (and could possibly lead to wrong results in real computations). Mathematica 9, unlike the versions 8 and 10, recognized that a is zero and issued a warning a/a Indeterminate!

• Welcome to Mathematica.SE! This is a questions/answers site, and a bit different from forums you may be used to. Posts are expected to be practical and answerable questions. Please also realize that this site is independent of Wolfram Research and the people here are just users like you. It is not the place for bug reports, you'll need to contact WRI for that. That said, I believe that the behaviour you see is reasonable and won't be any different for other computer algebra systems. I'll elaborate in an answer. Commented Nov 13, 2014 at 19:15
• What are the specifics of the version 9 that showed an Indeterminate? I am not able to replicate that result on any version 9 I have tried. Commented Nov 13, 2014 at 19:58
• @DanielLichtblau Simplify::infd: Expression ((-2 (-1+Sqrt[17])^2+(-3+Sqrt[17]) (5+3 Sqrt[17])) (2 (-1+Sqrt[17])^2 (4+Sqrt[17])-(5+Sqrt[17]) (5+3 Sqrt[17])))/(-1-8 (4+Sqrt[17])+(4+Sqrt[17])^2)^2 simplified to Indeterminate. >> Commented Nov 13, 2014 at 20:16
• Okay, I see now that they are different. I am fairly certain I know what change gave rise to the more correct behavior, and what subsequently reverted it. That latter was due to some extreme slowdown in symbolic manipulation internals that were not so uncommon. We occasionally revisit this, and will do so again, but when improvements come into conflict with considerable speed degradation, they often have to be resolved in favor of the latter. Commented Nov 13, 2014 at 20:28
• I'm looking at this apparently well liked question and puzzling over whats b? Commented Feb 5, 2017 at 15:36

The behaviour you see is quite reasonable, given what we can expect from computer algebra systems. It will be very similar in other systems too (and exactly the same in all of Mathematica versions 8, 9 and 10 -- I do not see a difference in v9). Here's Maple's output for example:

I assume that you would expect a/a to return Indeterminate or a warning. There are reasons why doing this is not practical in a computer algebra system. To implement this behaviour, the / operation would need to check its operands every time, making sure that they are not zero. It turns out that such a test can be quite slow, and in general it is undecidable. (See PossibleZeroQ under Details.)