# British computer scientist’s new “nullity” idea provokes reaction from mathematicians

**Monday, December 11, 2006**

On December 7, BBC News reported a story about Dr James Anderson, a teacher in the Computer Science department at the University of Reading in the United Kingdom. In the report it was stated that Anderson had “solved a very important problem” that was 1200 years old, the problem of division by zero. According to the BBC, Anderson had created a new number, that he had named “nullity”, that lay outside of the real number line. Anderson terms this number a “transreal number”, and denotes it with the Greek letter ? {\displaystyle \Phi } . He had taught this number to pupils at Highdown School, in Emmer Green, Reading.

The BBC report provoked many reactions from mathematicians and others.

In reaction to the story, Mark C. Chu-Carroll, a computer scientist and researcher, posted a web log entry describing Anderson as an “idiot math teacher”, and describing the BBC’s story as “absolutely infuriating” and a story that “does an excellent job of demonstrating what total innumerate idiots reporters are”. Chu-Carroll stated that there was, in fact, no actual problem to be solved in the first place. “There is no number that meaningfully expresses the concept of what it means to divide by zero.”, he wrote, stating that all that Anderson had done was “assign a name to the concept of ‘not a number'”, something which was “not new” in that the IEEE floating-point standard, which describes how computers represent floating-point numbers, had included a concept of “not a number”, termed “NaN“, since 1985. Chu-Carroll further continued:

- “Basically, he’s defined a non-solution to a non-problem. And by teaching it to his students, he’s doing them a great disservice. They’re going to leave his class believing that he’s a great genius who’s solved a supposed fundamental problem of math, and believing in this silly nullity thing as a valid mathematical concept.
- “It’s not like there isn’t already enough stuff in basic math for kids to learn; there’s no excuse for taking advantage of a passive audience to shove this nonsense down their throats as an exercise in self-aggrandizement.
- “To make matters worse, this idiot is a computer science professor! No one who’s studied CS should be able to get away with believing that re-inventing the concept of NaN is something noteworthy or profound; and no one who’s studied CS should think that defining meaningless values can somehow magically make invalid computations produce meaningful results. I’m ashamed for my field.”

There have been a wide range of other reactions from other people to the BBC news story. Comments range from the humorous and the ironic, such as the B1FF-style observation that “DIVIDION^{[sic]} BY ZERO IS IMPOSSIBLE BECAUSE MY CALCULATOR SAYS SO AND IT IS THE TRUTH” and the Chuck Norris Fact that “Only Chuck Norris can divide by zero.” (to which another reader replied “Chuck Norris just *looks* at zero, and it divides itself.”); through vigourous defences of Dr Anderson, with several people quoting the lyrics to Ira Gershwin‘s song “They All Laughed (At Christopher Columbus)”; to detailed mathematical discussions of Anderson’s proposed axioms of transfinite numbers.

Several readers have commented that they consider this to have damaged the reputation of the Computer Science department, and even the reputation of the University of Reading as a whole. “By publishing his childish nonsense the BBC actively harms the reputation of Reading University.” wrote one reader. “Looking forward to seeing Reading University maths application plummit.” wrote another. “Ignore all research papers from the University of Reading.” wrote a third. “I’m not sure why you refer to Reading as a ‘university’. This is a place the BBC reports as closing down its physics department because it’s too hard. Lecturers at Reading should stick to folk dancing and knitting, leaving academic subjects to grown ups.” wrote a fourth. Steve Kramarsky lamented that Dr Anderson is not from the “University of ‘Rithmetic“.

Several readers criticised the journalists at the BBC who ran the story for not apparently contacting any mathematicians about Dr Anderson’s idea. “Journalists are meant to check facts, not just accept whatever they are told by a self-interested third party and publish it without question.” wrote one reader on the BBC’s web site. However, on Slashdot another reader countered “The report is from Berkshire local news. Berkshire! Do you really expect a local news team to have a maths specialist? Finding a newsworthy story in Berkshire probably isn’t that easy, so local journalists have to cover any piece of fluff that comes up. Your attitude to the journalist should be sympathy, not scorn.”

Ben Goldacre, author of the *Bad Science* column in *The Guardian*, wrote on his web log that “what is odd is a reporter, editor, producer, newsroom, team, cameraman, soundman, TV channel, web editor, web copy writer, and so on, all thinking it’s a good idea to cover a brilliant new scientific breakthrough whilst clearly knowing nothing about the context. Maths isn’t that hard, you could even make a call to a mathematician about it.”, continuing that “it’s all very well for the BBC to think they’re being balanced and clever getting Dr Anderson back in to answer queries about his theory on Tuesday, but that rather skips the issue, and shines the spotlight quite unfairly on him (he looks like a very alright bloke to me).”.

From reading comments on his own web log as well as elsewhere, Goldacre concluded that he thought that “a lot of people might feel it’s reporter Ben Moore, and the rest of his doubtless extensive team, the people who drove the story, who we’d want to see answering the questions from the mathematicians.”.

Andrej Bauer, a professional mathematician from Slovenia writing on the *Bad Science* web log, stated that “whoever reported on this failed to call a university professor to check whether it was really new. Any university professor would have told this reporter that there are many ways of dealing with division by zero, and that Mr. Anderson’s was just one of known ones.”

Ollie Williams, one of the BBC Radio Berkshire reporters who wrote the BBC story, initially stated that “It seems odd to me that his theory would get as far as television if it’s so easily blown out of the water by visitors to our site, so there must be something more to it.” and directly responded to criticisms of BBC journalism on several points on his web log.

He pointed out that people should remember that his target audience was local people in Berkshire with no mathematical knowledge, and that he was “not writing for a global audience of mathematicians”. “Some people have had a go at Dr Anderson for using simplified terminology too,” he continued, “but he knows we’re playing to a mainstream audience, and at the time we filmed him, he was showing his theory to a class of schoolchildren. Those circumstances were never going to breed an in-depth half-hour scientific discussion, and none of our regular readers would want that.”.

On the matter of fact checking, he replied that “if you only want us to report scientific news once it’s appeared, peer-reviewed, in a recognised journal, it’s going to be very dry, and it probably won’t be news.”, adding that “It’s not for the BBC to become a journal of mathematics — that’s the job of journals of mathematics. It’s for the BBC to provide lively science reporting that engages and involves people. And if you look at the original page, you’ll find a list as long as your arm of engaged and involved people.”.

Williams pointed out that “We did not present Dr Anderson’s theory as gospel, although with hindsight it could have been made clearer that this is very much a theory and by no means universally accepted. But we certainly weren’t shouting a mathematical revolution from the rooftops. Dr Anderson has, in one or two places, been chastised for coming to the media with his theory instead of his peers — a sure sign of a quack, boffin and/or crank according to one blogger. Actually, one of our reporters happened to meet him during a demonstration against the closure of the university’s physics department a couple of weeks ago, got chatting, and discovered Dr Anderson reckoned he was onto something. He certainly didn’t break the door down looking for media coverage.”.

Some commentators, at the BBC web page and at Slashdot, have attempted serious mathematical descriptions of what Anderson has done, and subjected it to analysis. One description was that Anderson has taken the field of real numbers and given it complete closure so that all six of the common arithmetic operators were surjective functions, resulting in “an object which is barely a commutative ring (with operators with tons of funky corner cases)” and no actual gain “in terms of new theorems or strong relation statements from the extra axioms he has to tack on”.

Jamie Sawyer, a mathematics undergraduate at the University of Warwick writing in the Warwick Maths Society discussion forum, describes what Anderson has done as deciding that R ? { ? ? , + ? } {\displaystyle \mathbb {R} \cup \lbrace -\infty ,+\infty \rbrace } , the so-called extended real number line, is “not good enough […] because of the wonderful issue of what 0 0 {\displaystyle {\frac {0}{0}}} is equal to” and therefore creating a number system R ? { ? ? , ? , + ? } {\displaystyle \mathbb {R} \cup \lbrace -\infty ,\Phi ,+\infty \rbrace } .

Andrej Bauer stated that Anderson’s axioms of transreal arithmetic “are far from being original. First, you can adjoin + ? {\displaystyle +\infty } and ? ? {\displaystyle -\infty } to obtain something called the extended real line. Then you can adjoin a bottom element to represent an undefined value. This is all standard and quite old. In fact, it is well known in domain theory, which deals with how to represent things we compute with, that adjoining just bottom to the reals is not a good idea. It is better to adjoin many so-called partial elements, which denote approximations to reals. Bottom is then just the trivial approximation which means something like ‘any real’ or ‘undefined real’.”

Commentators have pointed out that in the field of mathematical analysis, 0 0 {\displaystyle {\frac {0}{0}}} (which Anderson has defined axiomatically to be ? {\displaystyle \Phi } ) is the limit of several functions, each of which tends to a different value at its limit:

- lim x ? 0 x 0 {\displaystyle \lim _{x\to 0}{\frac {x}{0}}} has two different limits, depending from whether x {\displaystyle x} approaches zero from a positive or from a negative direction.
- lim x ? 0 0 x {\displaystyle \lim _{x\to 0}{\frac {0}{x}}} also has two different limits. (This is the argument that commentators gave. In fact, 0 x {\displaystyle {\frac {0}{x}}} has the value 0 {\displaystyle 0} for all x ? 0 {\displaystyle x\neq 0} , and thus only one limit. It is simply discontinuous for x = 0 {\displaystyle x=0} . However, that limit is different to the two limits for lim x ? 0 x 0 {\displaystyle \lim _{x\to 0}{\frac {x}{0}}} , supporting the commentators’ main point that the values of the various limits are all different.)
- Whilst sin ? 0 = 0 {\displaystyle \sin 0=0} , the limit lim x ? 0 sin ? x x {\displaystyle \lim _{x\to 0}{\frac {\sin x}{x}}} can be shown to be 1, by expanding the sine function as an infinite Taylor series, dividing the series by x {\displaystyle x} , and then taking the limit of the result, which is 1.
- Whilst 1 ? cos ? 0 = 0 {\displaystyle 1-\cos 0=0} , the limit lim x ? 0 1 ? cos ? x x {\displaystyle \lim _{x\to 0}{\frac {1-\cos x}{x}}} can be shown to be 0, by expanding the cosine function as an infinite Taylor series, dividing the series subtracted from 1 by x {\displaystyle x} , and then taking the limit of the result, which is 0.

Commentators have also noted l’Hôpital’s rule.

It has been pointed out that Anderson’s set of transreal numbers is not, unlike the set of real numbers, a mathematical field. Simon Tatham, author of PuTTY, stated that Anderson’s system “doesn’t even *think* about the field axioms: addition is no longer invertible, multiplication isn’t invertible on nullity or infinity (or zero, but that’s expected!). So if you’re working in the transreals or transrationals, you can’t do simple algebraic transformations such as cancelling x {\displaystyle x} and ? x {\displaystyle -x} when both occur in the same expression, because that transformation becomes invalid if x {\displaystyle x} is nullity or infinity. So even the simplest exercises of ordinary algebra spew off a constant stream of ‘unless x is nullity’ special cases which you have to deal with separately — in much the same way that the occasional division spews off an ‘unless x is zero’ special case, only much more often.”

Tatham stated that “It’s telling that this monstrosity has been dreamed up by a computer scientist: persistent error indicators and universal absorbing states can often be good computer science, but he’s stepped way outside his field of competence if he thinks that that also makes them good maths.”, continuing that Anderson has “also totally missed the point when he tries to compute things like 0 0 {\displaystyle 0^{0}} using his arithmetic. The reason why things like that are generally considered to be ill-defined is not because of a *lack* of facile ‘proofs’ showing them to have one value or another; it’s because of a *surfeit* of such ‘proofs’ all of which disagree! Adding another one does not (as he appears to believe) solve any problem at all.” (In other words: 0 0 {\displaystyle 0^{0}} is what is known in mathematical analysis as an indeterminate form.)

To many observers, it appears that Anderson has done nothing more than re-invent the idea of “NaN“, a special value that computers have been using in floating-point calculations to represent undefined results for over two decades. In the various international standards for computing, including the IEEE floating-point standard and IBM’s standard for decimal arithmetic, a division of any non-zero number by zero results in one of two special infinity values, “+Inf” or “-Inf”, the sign of the infinity determined by the signs of the two operands (Negative zero exists in floating-point representations.); and a division of zero by zero results in NaN.

Anderson himself denies that he has re-invented NaN, and in fact claims that there are problems with NaN that are not shared by nullity. According to Anderson, “mathematical arithmetic is sociologically invalid” and IEEE floating-point arithmetic, with NaN, is also faulty. In one of his papers on a “perspex machine” dealing with “The Axioms of Transreal Arithmetic” (Jamie Sawyer writes that he has “worries about something which appears to be named after a plastic” — “Perspex” being a trade name for polymethyl methacrylate in the U.K..) Anderson writes:

- We cannot accept an arithmetic in which a number is not equal to itself (NaN != NaN), or in which there are three kinds of numbers: plain numbers, silent numbers, and signalling numbers; because, on writing such a number down, in daily discourse, we can not always distinguish which kind of number it is and, even if we adopt some notational convention to make the distinction clear, we cannot know how the signalling numbers are to be used in the absence of having the whole program and computer that computed them available. So whilst IEEE floating-point arithmetic is an improvement on real arithmetic, in so far as it is total, not partial, both arithmetics are invalid models of arithmetic.

In fact, the standard convention for distinguishing the two types of NaNs when writing them down can be seen in ISO/IEC 10967, another international standard for how computers deal with numbers, which uses “qNaN” for non-signalling (“quiet”) NaNs and “sNaN” for signalling NaNs. Anderson continues:

- [NaN’s] semantics are not defined, except by a long list of special cases in the IEEE standard.

“In other words,” writes Scott Lamb, a BSc. in Computer Science from the University of Idaho, “they are defined, but he doesn’t like the definition.”.

The main difference between nullity and NaN, according to both Anderson and commentators, is that nullity compares equal to nullity, whereas NaN does not compare equal to NaN. Commentators have pointed out that in very short order this difference leads to contradictory results. They stated that it requires only a few lines of proof, for example, to demonstrate that in Anderson’s system of “transreal arithmetic” both 1 = 2 {\displaystyle 1=2} and 1 ? 2 {\displaystyle 1\neq 2} , after which, in one commentator’s words, one can “prove anything that you like”. In aiming to provide a complete system of arithmetic, by adding extra axioms defining the results of the division of zero by zero and of the consequent operations on that result, half as many again as the number of axioms of real-number arithmetic, Anderson has produced a self-contradictory system of arithmetic, in accordance with Gödel’s incompleteness theorems.

One reader-submitted comment appended to the BBC news article read “Step 1. Create solution 2. Create problem 3. PROFIT!”, an allusion to the business plan employed by the underpants gnomes of the comedy television series *South Park*. In fact, Anderson does plan to profit from nullity, having registered on the 27th of July, 2006 a private limited company named Transreal Computing Ltd, whose mission statement is “to develop hardware and software to bring you fast and safe computation that does not fail on division by zero” and to “promote education and training in transreal computing”. The company is currently “in the research and development phase prior to trading in hardware and software”.

In a presentation given to potential investors in his company at the ANGLE plc showcase on the 28th of November, 2006, held at the University of Reading, Anderson stated his aims for the company as being:

- To build a transreal computer.
- To derive Maxwell’s equations and classical gravitation in transreal numbers so that they have no naked singularities (infinities affecting a neighbourhood of space).
- To collaborate with anyone who wants to unify Quantum Electro-Dynamics with gravitation.

To investors, Anderson makes the following promises:

- “I will help you develop a curriculum for transreal arithmetic if you want me to.”
- “I will help you unify QED and gravitation if you want me to.”
- “I will build a transreal supercomputer.”

He asks potential investors:

- “How much would you pay to know that the engine in your ship, car, aeroplane, or heart pacemaker won’t just stop dead?”
- “How much would you pay to know that your Government’s computer controlled military hardware won’t just stop or misfire?”

The current models of computer arithmetic are, in fact, *already* designed to allow programmers to write programs that will continue in the event of a division by zero. The IEEE’s Frequently Asked Questions document for the floating-point standard gives this reply to the question “Why doesn’t division by zero (or overflow, or underflow) stop the program or trigger an error?”:

- “The [IEEE] 754 model encourages robust programs. It is intended not only for numerical analysts but also for spreadsheet users, database systems, or even coffee pots. The propagation rules for NaNs and infinities allow inconsequential exceptions to vanish. Similarly, gradual underflow maintains error properties over a precision’s range.
- “When exceptional situations need attention, they can be examined immediately via traps or at a convenient time via status flags. Traps can be used to stop a program, but unrecoverable situations are extremely rare. Simply stopping a program is not an option for embedded systems or network agents. More often, traps log diagnostic information or substitute valid results.”

Simon Tatham stated that there is a basic problem with Anderson’s ideas, and thus with the idea of building a transreal supercomputer: “It’s a category error. The Anderson transrationals and transreals are theoretical algebraic structures, capable of representing arbitrarily big and arbitrarily precise numbers. So the question of their error-propagation semantics is totally meaningless: you don’t use them for down-and-dirty error-prone real computation, you use them for proving theorems. If you want to use this sort of thing in a computer, you have to think up some concrete representation of Anderson transfoos in bits and bytes, which will (if only by the limits of available memory) be unable to encompass the entire range of the structure. And the point at which you make this transition from theoretical abstract algebra to concrete bits and bytes is precisely where you should also be putting in error handling, because it’s where errors start to become possible. We define our theoretical algebraic structures to obey lots of axioms (like the field axioms, and total ordering) which make it possible to reason about them efficiently in the proving of theorems. We define our practical number representations in a computer to make it easy to detect errors. The Anderson transfoos are a consequence of fundamentally confusing the one with the other, and that by itself ought to be sufficient reason to hurl them aside with great force.”

Geomerics, a start-up company specializing in simulation software for physics and lighting and funded by ANGLE plc, had been asked to look into Anderson’s work by an unnamed client. Rich Wareham, a Senior Research and Development Engineer at Geomerics and a MEng. from the University of Cambridge, stated that Anderson’s system “might be a more interesting set of axioms for dealing with arithmetic exceptions but it isn’t the first attempt at just defining away the problem. Indeed it doesn’t fundamentally change anything. The reason computer programs crash when they divide by zero is not that the hardware can produce no result, merely that the programmer has not dealt with NaNs as they propagate through. Not dealing with nullities will similarly lead to program crashes.”

“Do the Anderson transrational semantics give any advantage over the IEEE ones?”, Wareham asked, answering “Well one assumes they have been thought out to be useful in themselves rather than to just propagate errors but I’m not sure that seeing a nullity pop out of your code would lead you to do anything other than what would happen if a NaN or Inf popped out, namely signal an error.”.

Posted in Uncategorized