Math Cranks

Mark Chu-Carroll beat me to this BBC story about a computer science professor in England claiming to have resolved a twelve-hundred year old problem. The story begins:

Dr James Anderson, from the University of Reading's computer science department, says his new theorem solves an extremely important problem - the problem of nothing.

“Imagine you're landing on an aeroplane and the automatic pilot's working,” he suggests. “If it divides by zero and the computer stops working - you're in big trouble. If your heart pacemaker divides by zero, you're dead.”

Computers simply cannot divide by zero. Try it on your calculator and you'll get an error message.

But Dr Anderson has come up with a theory that proposes a new number - 'nullity' - which sits outside the conventional number line (stretching from negative infinity, through zero, to positive infinity).

It will come as news to mathematicians that there is any mystery about dividing by zero. Suppose x is some non-zero real number, and suppose that x divided by 0 gave you some other real number y. Then it would also have to be true that x is equal to 0 times y. And since 0 times anything is 0, we have reached a contradiction.

So there is no way of assigning a numerical value to x divided by zero in a way that is consistent with everything else we know about arithmetic, and that is why children learn early on that division by zero is a very bad thing indeed. Dr. Anderson is free to define whatever symbols he likes and assign them whatever values he wants, but he hasn't resolved anything by doing so. Mark makes the important points:

What this guy has done is invent a new number, which he calls “nullity”. This number is not on the number line, can't be compared to other numbers by less than or greater than, etc. In other words, he's given a name to the basic mathematical concept of “undefined”, and proclaimed that this is somehow a solution to a deep and important problem.

The thing is, there is no problem. We understand what division by zero means. You can't do it. There is no number that meaningfully expresses the concept of what it means to divide by zero. (Emphasis in original).

Read the rest of Mark's post for some further commentary.

The BBC article also contains a short video of Dr. Anderson using his nifty new number to “solve” the old problem about the value of 00. Turns out it equals his new number. Most mathematicians would not bother to hang around for the proof of the fact, however. You see, Dr. Anderson begins his demonstration by drawing a number line. He labels the positive integers 1, 2, 3 and the negative integers -1, -2, -3 and so on.

Then he wants to indicate that these numbers go on until you reach positive infinity and negative infinity. He indicates this by placing infinity at the far right hand-side of the line and minus inifinty at the far left side. He then places a dot next to these symbols, as if they are actual numbers residing on the line.

This is where most mathematicians would leave the room in disgust.

Infinity and minus infinity are not numbers. They are not points on the number line. When mathematicians use an expression like “the limit as x goes to infinity” they do not mean that inifnity is an actual location on the number line where x will eventually end up if it wanders for long enough. This sort of sloppiness is a big tip-off that crankery is afoot.

I explained some of this in more detail here.

The BBC article shows a group of high school students looking pretty impressed as Dr. Anderson shows them his novel theory. So, just in case the biologists were thinking they were the only ones having to deal with cranks trying to get their hands on school children, it seems the mathematicians have to start paying attention as well.

More like this

Tons of folks have been writing to me this morning about [the BBC story about an idiot math teacher who claims to have solved the problem of dividing by zero][bbc-story]. This is an absolutely *infuriating* story, which does an excellent job of demonstrating what total innumerate idiots reporters…
Writing this blog, I get lots of email. One of the things that I get over and over again is a particular kind of cluelessness about the idea of infinity. I get the same basic kind of stupid flames in a lot of different forms: arguments about Cantor's diagonalization; arguments about calculus (…
Some of the commenters to yesterday's post raised some interesting questions on the subject of dividing by zero. So interesting, in fact, that I felt the subject deserved another post. My SciBling, revere, of Effect Measure: writes the following: OK, I shouldn't jump in here because I'm an…
There's an interesting blog discussion going on about the age-old question of whether .99999..., where the nines go on forever, is actually equal to one. The answer is: Yes, it does, and if you think it does not then you are mistaken. Polymathematics got the ball rolling with several arguments…

To the best of my knowledge his proposal of assigning zero or numbers with zero as a denominator to a new number system is nothing particularly new either. In fact, I know I have an introductory book on formal logic lying around somewhere that has a chapter devoted to discussing various proposals for handling division by zero. The chapter pretty much concludes that all such approaches are either logically flawed or, otherwise, are overly artificial. As you indicated, all these approaches ultimately solve nothing and hold no important results.

This BBC's publication of this story is just another sorry commentary on the sorry state of present scientific (and mathematical) journalism.

Now, now Jason. Don't be so dogmatic!

Why not teach the controversy and let the students decide which number "theory" makes the most sense? After all, if our present mathematical "dogma" can't handle division by zero, there must be a flaw somewhere!

Perhaps this Dr. Anderson could get some tips from that other great contemporary Newton (Dembski of course) about how to fight the dogmatists!

By ZacharySmith (not verified) on 07 Dec 2006 #permalink

OK, I shouldn't jump in here because I'm an epidemiologist and not a mathematician, but, what the hell. All I can do is be wrong (which I am used to).

Some algebraists do permit division by zero, but only in the case 0/0. Thus, Rotman in Advanced Modern Algebra, Revised Printing, p. 121, has this definition:

Def.: Let a and b be elements of a commutative ring R, Then a divides b in R (or a is a divisor of b or b is a multiple of a), denoted a|b, if there exists an element c in R with b = c*a.

As an extreme example, if 0|a, then a= 0*b for some b in R. Since 0*b=0, however, we must have a=0. Thus, 0|a iff a=0.

I haven't read the piece in question, so this isn't a comment on whether Anderson's use makes sense or not. But the real line is certainly a commutative ring; in fact it's an integral domain (and of course a field).

The reason I say this is definitional is that I believe most mathematicians would say that the divisor in an integral domain, D, must be in D/{0}, whereas Rotman isn't making this restriction, and perhaps he is unusual. This doesn't affect the cancellation requirement for a domain, I don't think, since that still requires the common factor to be non-zero.

There is a saying, show me a nitpicker at age 5 and I'll show you an epidemiologist at age 35. And I'm a lot older than that.

revere, I think that Rotman definition is a little pathological. I've not encountered any algebraists who actually allow that.

Moreover, there's a problem in that definition -- what is the element c such that b=c*a? If you allow a and b to be 0, then c can be *anything*, so division is no longer well-defined. That's a bigger sacrifice than not being able to compute 0/0.

Moreover, there's a problem in that definition -- what is the element c such that b=c*a? If you allow a and b to be 0, then c can be *anything*, so division is no longer well-defined. That's a bigger sacrifice than not being able to compute 0/0.

Well, there is no fundamental contradiction, but the textbook passage revere quotes basically just goes an excessively long way in stating that 0/0=0 and a.0=0 as well. I can't see any technical significance of that, but then again I'm just a stupid applied math undergrad.

Well, there is no fundamental contradiction, but the textbook passage revere quotes basically just goes an excessively long way in stating that 0/0=0 and a.0=0 as well.

From the textbook definition given, 0/0=c for all values of c. a/b=c means a=b*c, so 0/0=c means 0=0*c. In any field this is true for all values of c. I.e., 0/0 is multi-valued (which is another way of saying it's not well-defined).

From the textbook definition given, 0/0=c for all values of c. a/b=c means a=b*c, so 0/0=c means 0=0*c. In any field this is true for all values of c. I.e., 0/0 is multi-valued (which is another way of saying it's not well-defined).

Ah, I now see my error. Thank you kind sir.

revere:

The definition you cite does not allow us to define a/0 (or even 0/0). It gives a meaning to 0|a, which as you note is equivalent to a=0.

Yes. I must concede there is a difference between the definition of zero as a divisor of zero and the binary relation 0 R 0 which we call division. As you say, this is no longer well defined. But that's why I'm an epidemiologist and you are a mathematician.

WTF. In for a penny, in for a pound. Let me perseverate just a little more.

When you extend a domain to a field containing it as a subring in such a way that there is always a solution to a=b*c, you do it by constructing an equivalence relation on R x R which requires that (a,b)=(c,d) restricted to b not zero. Likewise, when Rotman states the cancellation requirement for a domain, c*a=c*b, implies a=b, c must be non-zero.

What this means to me is that you can have a divisor of zero but it requires 0|0=0 and in no other case does a number have zero as a divisor. However if you try to extend this domain to a field via the usual equivalence class definition of division, you must require that the denominator not be zero in any case.

This means that the "defect" in Rotman's definition is that there is a difference between having a divisor of zero in the domain and division by zero in the embedding field (the latter is not allowed).

So here's another issue with the post where I'm probably wrong, but I learned something from being wrong last time so I'll give it a whirl in the hope I'm wrong again and will learn something again.

When you (and MarkCC) way "Infinity and minus infinity are not numbers. They are not points on the number line," that is a somewhat strange definition of "number." A complex number with nonzero imaginary part is not a point on the (real) line either, but we consider it a number. Nor are the complex numbers a linear order, so Mark's complaint that infinity can't be compared to other numbers isn't very cogent. You can even extend the reals by appending plus and minus infinity to it to get RP1 (1-D real projective space) which is homeomorphic to S1 (circle), perfectly visualizable.

revere-

You raise a lot of interesting points. So many, in fact, that I think I'll devote a separate post to them. Stay tuned!

A complex number with nonzero imaginary part is not a point on the (real) line either, but we consider it a number.

The question is, how should we define "number"? I would argue that the best translation of the colloquial sense into something rigorous is "an element of some field extension of the rationals," since we implicitly assume numbers to obey the field axioms. Infinity is going to give you problems there; you have to extend the field axioms to deal with it in any coherent way. This can been done, but it's not really that useful.

You can even extend the reals by appending plus and minus infinity to it to get RP1 (1-D real projective space) which is homeomorphic to S1 (circle), perfectly visualizable.

Nitpick: you actually just append one point, not two.

"Infinity and minus infinity are not numbers. They are not points on the number line. When mathematicians use an expression like “the limit as x goes to infinity” they do not mean that inifnity is an actual location on the number line where x will eventually end up if it wanders for long enough. This sort of sloppiness is a big tip-off that crankery is afoot."

Yeah. It's not impossible to work with a "number system" that includes "+infinity" and "-infinity" (I've seen it done properly, once), but many of the usual properties of numbers don't apply, and it's easy to make a mistake. It's generally not worth it.

Now computer science is a little different in that many of the theorems of algebra don't strictly apply to operations on the so-called floating-point numbers. So you have to be careful anyway. But you do have to be careful: a nullity value is not going to magically save you. In fact his idea is not new: I vaguely recall that the 8087 math co-processor could be configured to propagate NaN (not a number) values through computations rather then raising an interrupt (which would typically crash the program). NaN sounds very much like his nullity. Heck, IIRC, Excel behaves like this, only it calls its special value something like #ERROR#. But if an automatic pilot calculates that you're #ERROR# meters above the ground, or NaN meters above the ground, it's probably not going to behave very well.

By Andrew Wade (not verified) on 08 Dec 2006 #permalink

"A complex number with nonzero imaginary part is not a point on the (real) line either, but we consider it a number. Nor are the complex numbers a linear order, so Mark's complaint that infinity can't be compared to other numbers isn't very cogent."

Well yes and no. It's not impossible to work with a "number system" that includes "+infinity" and "-infinity" (I've seen it done). But you have to know what you're doing: many of the usual properties of numbers don't apply, and it's easy to make a mistake.

This is also true with the usual "number system" of computer science: the floating point numbers. Many of the theorems of algebra don't strictly apply to operations on these numbers. Every now and then some bright spark wants his favourite computer language to work with rationals rather than floating point numbers, but that buys you very little and introduces new problems. (As for reals: the only way to support those is with a symbolic computation systems such as Maple(tm). Sometimes useful, but generally inappropriate.) Dividing by 0 is but one of many issues you need to deal with if you're doing important computations on a computer. It is quite possible to calculate a result that is way off (due to rounding errors) with no indication that anything has gone wrong.

In fact his idea is not new: I vaguely recall that the 8087 math co-processor could be configured to propagate NaN (not a number) values through computations rather then raising an interrupt (which would typically crash the program). NaN sounds very much like his nullity. Heck, IIRC, Excel behaves like this, only it calls its special value something like #ERROR#. But if an automatic pilot calculates that you're #ERROR# meters above the ground, or NaN meters above the ground, it's probably not going to behave very well.

Expect programs to continue crashing on divide by zero errors: in many cases crashing is preferable to continuing on and potentially doing the wrong thing.

By Andrew Wade (not verified) on 08 Dec 2006 #permalink

D'oh, I thought my earlier comment was lost.

By Andrew Wade (not verified) on 08 Dec 2006 #permalink

"Nitpick: you actually just append one point, not two."

LOL. Yes, I know. I deleted the sentence after the last one about constructing the quotient space from S1-(0,0,1)/(0,0,1) as I thought it was getting too esoteric, but I guess I should have included it to protect myself.

AW: "In fact his idea is not new: I vaguely recall that the 8087 math co-processor could be configured to propagate NaN (not a number) values through computations rather then raising an interrupt (which would typically crash the program."

This feature is present in modern x86 CPU's. It is useful, IMHO, because it allows the programmer to handle the infinities by himself. For example, if I am dealing with a function which diverges for x = 0, I want to be able to move near this point without crashing the program. One can check if the number is NaN or not (in C this is isnan() function) and proceed accordingly.

By Roman Werpachowski (not verified) on 09 Dec 2006 #permalink

"Yeah. It's not impossible to work with a "number system" that includes "+infinity" and "-infinity" (I've seen it done properly, once), but many of the usual properties of numbers don't apply, and it's easy to make a mistake. It's generally not worth it."

The funny thing is that what seems to me (I know next to nothing about abstract algebra) very complicated in algebra, is quite simple in topology: plus and minus infinity are simply the completion of the space of real numbers.

By Roman Werpachowski (not verified) on 09 Dec 2006 #permalink

Here's what I (vaguely) remember about the topic from college. It's not anything fancy, just standard pre-calculus.

Take the ratio x/y where x is any positive integer which will remain constant. We're going to let y get smaller and smaller and what you see is the limit as y approaches zero causes the ratio itself to get larger and larger and eventually approach infinity. If x is negative, you approach negative infinity... no big deal.

My quick explanation is that division by zero isn't mysterious, it just gives an undefined result.

We hit this going over slope for linear functions... a zero in the numerator means you have a pancake-flat parking lot; zero slope... no fun for you Sk8trs out there. On the other hand, put a zero in the denominator and you have a vertical cliff face -Wile E. coyote style - which would give you the ultimate slope: infinite slope... perfect for skaters looking to get into those P0wnage videos on Youtube. Conceptually, most high school kids can dig it.

Have a good one,

S. Smith