*For Ted Propp, 1923 − *

When I think about dividing by zero, I usually think about my father and his New York City law firm back when I was young.

Now that I think about it, my father’s practice as an estate planner had a lot to do with division of the ordinary, non-suspect kind. He helped his clients draft wills to posthumously divide up their belongings in the manner they preferred while living. He was happy to talk about his work, although unaware of the ways a seven-year-old might misunderstand such an abstract line of work; I remember I once tried to get my little band of chums to re-brand itself as “Client Friends”, since most of what I knew about “clients” was that my father sometimes got together with them socially. Starting when I was around ten, my father would sometimes enlist me to help proofread wills. My job was to look over what his secretary had typed and compare it to the recording he had made on his Dictaphone. I can still hear the punctuation marks he spoke aloud, especially the most stentorian of the bunch, “Period, paragraph.” (See Endnote #1.) Through proofreading wills I became familiar with two common ways to divide an estate, *per capita* and *per stirpes*. Somehow I don’t think many ten-year-old are taught these terms.

My father infused our home with his love of the law. If one of his four children expressed a moral or political opinion, he would often urge him or her to argue for the other side too. And when conflict arose between two of us children, he would set up an impromptu tribunal, which in extreme cases required the two claimants to submit written briefs. (See Endnote #2.) Just last week, in my own household, the question arose how a certain large cookie should be divided, and I told my children “If you two were Pa’s children 50 years ago, he would be asking you to take turns making arguments for your positions.”

**SHARING COOKIES**

… which brings us back to division. There are two ways to use cookies to think about an expression like 6÷2. The first, called the partitive model of division, asks “If you have six cookies and two children, how many should each child get?” The second, called the quotative (think: quota) model of division, asks “If you have six cookies and want to put them into bags, each containing two cookies, how many bags can you make?” (See Endnote #3.)

With either model, dividing 6 by 0 leads to problems. Under the partitive model, if you have 6 cookies and 0 children, there’s no way to share the cookies equally among your children — you can’t even start the process. On the other hand, under the quotative model, you’re laying out bag after empty bag, each containing 0 cookies, in a vain attempt to use up cookies that aren’t even going into bags. It’s a process you can’t stop, as opposed to a process you can’t start. No matter how many times you subtract zero cookies from your pile of six cookies, the pile never diminishes; you can keep subtracting zero forever and never reach your goal.

The Indian mathematicians who bequeathed us the modern concept of zero were unsure what to do with division by zero. I’ve read that some of them thought that, for every non-zero number *n*, *n* divided by zero should be zero (can anyone provide a source?); others thought *n* divided by zero should be *n* (again, can anyone provide a source?). I’m sympathetic to both ways of thinking, even though neither of them fits in with the modern notion of division.

Consider that every positive number has a reciprocal, and every negative number too; why shouldn’t zero have a reciprocal to call its own? Since no other numbers are available, why not let 0 be its own reciprocal, the way 1 is and the way −1 is? And then, once we’ve allowed 1÷0 = 0, shouldn’t 6÷0 be 6 times that, which is 0?

The alternative proposed formula 6÷0 = 6 could be taken as a way of saying “If you take the number six, and you try to divide it by zero, you’ll find that you can’t, so the operation fails and you’ve got whatever you started with.” I think part of what’s going on here is that when you divide 6 by 0 in the quotient-and-remainder sense, you get a remainder of 6 and a quotient that’s anything you like. But if you don’t *like* the fact that the quotient can be anything you like, because someone told you that in math there’s always supposed to be a unique answer, you might choose to focus on the remainder and call *that* the answer to the question. Putting this in practical terms: if you’ve got six cookies and no kids to split them among, you might as well eat them yourself.

A third way to look at division is as “un-multiplication”. Asking “What is 6 divided by 2?” means “What number, when multiplied by 2, gives 6?” This is less concrete than the partitive and quotative interpretations of division, but it’s the one modern mathematicians prefer. We like it because viewing division as un-multiplication fits in with viewing subtraction as un-addition, and extracting square roots as un-squaring, and a host of other analogous operations that arise from the imperative that once we know how to do something we want to know how to un-do it. Under the un-multiplication interpretation of division, 6÷0 is problematic, because there is no number that when multiplied by 0 gives 6.

Modern mathematicians have decreed that in the domain of real numbers, the expression “6÷0” is undefined. If it bothers us that mathematical language allows expressions that are undefined, perhaps we can draw solace from the fact that natural languages have that feature too. For instance, the phrase “Shakespeare’s hundredth play” is perfectly grammatical, but it doesn’t denote an actual play; in the same way, ”6÷0” is a string of symbols that points to a number that isn’t there. We might dream of a language in which it is impossible to tell lies, or failing that, a language in which it is impossible to speak nonsense, but in practice we have to settle for languages that permit both lies and nonsense. Likewise, one might wish to devise a system for doing math in which strings of symbols that seem meaningful actually are meaningful, but as far as I know, nobody’s found a useful system along these lines. Zero is too useful a thing to give up, as is division; nonsense like ”6÷0” is the price we pay for holding onto both.

0÷0 has its own story. If we interpret this as the answer to the question “What number, when multiplied by 0, gives 0?”, the answer is, every number! But if we were to assert that 0÷0 is simultaneously equal to every number, then by the principle that two things equal to a third thing must be equal to each other, all numbers would be equal to each other. For instance, 2 would have to equal 3, because 0÷0 equals both of them. To avoid such a catastrophic collapse of our number system, it’s been decreed that 0÷0 is “indeterminate”, which is a different flavor of “undefined”.

**THROWING IN NEW NUMBERS**

The Indian mathematician Bhaskara thought one needed new kinds of numbers to handle division by zero. In his system, 6÷0 is “six-divided”, and if you multiply six-divided by zero, you get back six. In Bhaskara’s system, *m*-divided is different from *n*-divided whenever *m* and *n* are two different non-zero real numbers, since (*m*-divided) × (0) = *m* while (*n*-divided) × (0) = *n*. So Bhaskara’s handling of division by zero gives infinitely many new numbers. If anyone knows more about Bhaskara’s approach, or more broadly about zero in Indian mathematics, please let me know in the Comments.

In contrast, there’s a modern number system in which there’s just one extra number, written as ∞, which is equal to *r*÷0 for all nonzero real numbers *r*. It’s called the projectively extended real line and is sometimes denoted by (as opposed to the ordinary real line which is denoted by ). If you’re working in this system, you can write 6,973 ÷ 0 = ∞ and not only will you *not* drop dead, but no mathematician will bat an eye (though some might wonder why you’re using the obelus, ÷, to denote division, since in advanced math it’s more common to write 6973/0 or to use fraction notation.)

To put this number system inside your head, here’s what you need to know about it. (1) When *s* and *t* are ordinary real numbers, *s* + *t* and *s* × *t* take their usual values. (2) When *s* is an ordinary real number, *s* + ∞ and ∞ + *s* both equal ∞. (3) ∞ + ∞ is undefined. (4) When *s* is a non-zero real number, *s* × ∞ and ∞ × *s* both equal ∞. (5) 0 × ∞ and ∞ × 0 are both undefined. (5) ∞ × ∞ = ∞. If you prefer tables:

Here *r* and *s* stand for arbitrary real numbers, and *t* and *u* stand for arbitrary nonzero real numbers.

You weren’t introduced to this number system explicitly in high school, but it was lurking nearby when you learned trigonometry. Regardless of whether you were taught to treat the tangent of 90 degrees as undefined or to write it as ±∞, what’s really going on is that tan 90° is “trying” to equal the element 1 ÷ 0, aka ∞, in the projectively extended real line. You might have caught a glimpse of this forbidden knowledge even earlier, when you learned about the slopes of lines. If one wants to talk about the slopes of all lines including vertical ones, then is the number system to use. (See Endnote #4.)

**MAKING DO WITH OLD NUMBERS**

Interestingly, mathematicians who want to teach computers how to do math with ordinary real numbers (not fancy extensions involving ∞) are finding that for many purposes it’s convenient to assign expressions like 6÷0 an actual numerical value in their implementations of mathematical knowledge and reasoning. I’ve exchanged several emails with mathematician Kevin Buzzard about the work he’s doing on a computer reasoning system called Lean; Lean has been designed to “think” that 6÷0 equals 0, not because assigning a value to 6÷0 is a good way to go but because the alternatives turn out to be worse. I would’ve thought that having an extra honorary number called **undefined** was the way to go, with the property that if you combine any actual number with **undefined **(using addition, subtraction, multiplication, or division) you get **undefined**, but that leads to problems, because Lean doesn’t allow “bare” mathematical objects; every object has to have a type (integer, real number, etc.), so **undefined** is not just one thing but many: **undefined integer**, **undefined real number**, etc. Then each number system (or, as Buzzard would say, each type) has to exist in two versions: the ordinary version, and the doppelgänger in which there’s an **undefined** element. So we start to see how things can get messy.

One feature of Lean that helps me make peace with having 1 ÷ 0 = 0 is the distinction between specification and implementation. (If the distinction is unfamiliar, imagine a Stone Age attorney writing a patent for the wheel. Since a wheel’s function is not affected by its color, the patent would not specify what color the wheel should be; but each implementation of the invention would have to be made of some specific material and hence be some specific, though irrelevant, color.) Buzzard doesn’t think that taking 6÷0 to be 0 has any mathematical meaning; indeed, he’d agree that the truth or falsity of a meaningful mathematical proposition about numbers shouldn’t depend on one’s choice about what value to assign to 6÷0. But for a specific implementation of mathematical knowledge, and for a specific program like Lean that tries to reason about math correctly, having 6÷0 equal 0 (or 17, or some other particular value) is less harmful than the alternative of having it equal “Error! Error! Terminate all currently pending evaluations!” or something like that.

But I still haven’t told you why dividing by zero makes me think of my father’s law firm …

**AN OVERDUE CONFESSION**

Calculators fascinated me as a child. Even 1960s-era odometers (simple adding machines that just keep adding 1 over and over), installed in the dashboards of cars, fascinated me. Back then personal computers didn’t exist, and electronic calculators were rare. My father’s office mostly had electro-mechanical adding machines. Although they were called adding machines, they could also subtract, of course, and most of them could multiply as well. But only one of them could divide.

That one special calculator was kept in a special room. I’m sure my memories here are inaccurate, but when I summon up a mental image of that calculator, I see it as sitting on a table in the middle of a room, announcing itself as the most important and expensive thing in sight, like a Gutenberg Bible under glass in a museum. But that image makes no sense, since the calculator required electricity to function. It would’ve made more sense to put it near a wall outlet. In any case, my father showed it to me one day when I was visiting his workplace (he would often take his kids to work for a day or part of a day, so we could understand how he earned a living). I was supposed to admire the calculator and marvel at it, but not use it.

So *of course* one day I decided to try it out when nobody was likely to catch me. (It was a Saturday, I think, and hardly anyone was there.) I plugged in the master calculator and had it do some calculations. It didn’t just print answers; it showed its work so that a human could audit it and verify that it had done the calculation correctly. It was like an oracular typewriter: you would type in a problem (tap tap tap) and it would respond with a derivation of the answer (ka-chunk ka-chunk ka-chunk).

After putting the calculator through its paces on routine problems for a few minutes, I couldn’t resist the urge to ask it to answer the question that mathematics should not, but does, permit us to ask: “What number when multiplied by 0 gives 1?” That is, I asked it to compute 1÷0.

Ka-CHUNK!

Ka-CHUNK!

Ka-CHUNK!

The master calculator tried to follow the long-division algorithm, subtracting 0 from 1 over and over again, never making the least bit of progress but too feeble-minded to notice the trap it was in. Again and again the keys clattered and the platen turned, and the keys clattered and the platen turned, second by second augmenting the record of the crime I was committing not just against the property of my father’s law firm but against reason itself.

I unplugged the calculator (as I recall it didn’t have an off switch), and it stopped its clanking. Perhaps a period of dormancy would reset its circuits? I plugged it in again, hoping its brief respite from calculation had repaired the injury I had done it.

But no:

Ka-CHUNK!

Ka-CHUNK!

Ka-CHUNK!

Each violent vibration moved the master calculator just a little bit more off-center on the table it rested upon. Over time, it would creep to the edge of the table and fall off. (Maybe when calculators divide 6,973 by 0, they *do* die.)

I unplugged the calculator again. Then I thought about what I had done, what the consequences might be. Several possible near-futures flashed before my eyes.

I turned off the lights, left the room, and shared the incident with no one.

*Thanks to Jeremy Cote, Sandi Gubin, David Jacobi, Henri Picciotto, Evan Romer, and James Tanton.*

**ENDNOTES**

#1. Ironically, this is the very first of my essays to be composed with the aid of transcription software, which I have just obtained so as to reduce stress on my right hand.

#2. Usually the claimants realized that resolving their differences among themselves would be easier than submitting briefs, which I’m sure was the judge’s intention all along.

#3. We can unify the two approaches via the equation 6 = *m ×* *n*, where *m* is the number of children and *n* is the number of cookies each child gets; then the partitive model asks us to solve for *n* in the equation 6 = 2 × *n* and the quotative model asks us to solve for *m* in the equation 6 = *m* × 2. The fact that the same number 3 can do double-duty as the *n* in the first equation and the *m* in the second equation is a consequence of the fact that multiplication satisfies the commutative property: 2 × 3 = 3 × 2, and more generally *m × n* = *n × m* for all numbers *m*, *n*. If you prefer a more concrete link between the partitive and quotative models, go ahead and divide the cookies into as many bags as you can, each containing the desired number of cookies, and then give each child one cookie from each bag.

#4. One thing you can do in this system is add angles by combining the associated slopes. Suppose you have a line of slope *s*_{1} that makes an angle of *θ*_{1} with the rightward horizontal ray from the origin, and a line of slope *s*_{2} that makes an angle of *θ*_{2} with the ray. Then the “projective sum” of *s*_{1} and *s*_{2}, which we might denote by *s*_{1} ⊕ *s*_{2}, can be defined as the slope of the line that makes an angle of *θ*_{1}+*θ*_{2} with the ray. By the geometric definition of the tangent of an angle, we have *s*_{1} = tan *θ*_{1}, *s*_{2} = tan *θ*_{2}, and *s*_{1} ⊕ *s*_{2} = tan (*θ*_{1} + *θ*_{2}); so the tangent addition formula gives us *s*_{1} ⊕ *s*_{2} = tan (*θ*_{1} + *θ*_{2}) = (tan *θ*_{1} + tan *θ*_{2}) / (1 − tan *θ*_{1} tan *θ*_{2}), or

* s*_{1} ⊕ *s*_{2 }= (*s*_{1} + *s*_{2}) / (1 − *s*_{1} *s*_{2}).

For instance, the angle-relation 45° + 45° = 90° turns into the projective sum relation 1 ⊕ 1 = ∞. (Check: 1 ⊕ 1 = (1 + 1) / (1 − 1) = 2 / 0 = ∞.) I urge you to compute *s* ⊕ *s* ⊕ *s* with *s* = sqrt(3); after your surprise has subsided, figure out why you shouldn’t have been surprised.

If you play with this operation on your own, be warned: the formula *s*_{1} ⊕ *s*_{2} = (*s*_{1} + *s*_{2}) / (1 − *s*_{1} *s*_{2}) doesn’t always apply when one or both of *s*_{1}, *s*_{2} is ∞, since the numerator or denominator may be undefined, but the problem can be patched so that *s*_{1} ⊕ *s*_{2} (unlike *s*_{1} + *s*_{2} and *s*_{1} × *s*_{2}) is well-defined for all *s*_{1} and *s*_{2 }belonging to the projectively extended real number system.

nishantchandgotiaI am not sure how many times I have tried dividing by zero on calculator as a kid so I completely identify with the story with your father’s prized calculator.

Could you clarify a little more about Lean? If at some point, Lean was checking a mathematical theorem and it encountered a statement involving division by 0 wouldn’t it run into trouble or give false results? Giving an error message instead would mean that there is something wrong with the argument. Isn’t it?

I have a feeling I don’t exactly understand the distinction between specification and implementation plays in here to justify this.

LikeLiked by 1 person

jamesproppPost authorIf Lean was “proof-reading” (no pun intended) a human-generated proof that involved division by zero, it would report that the proof contained an error. Or if the proof involved division by some quantity but didn’t include a proof that the quantity never vanished, it would report that the proof was incomplete.

If Lean was trying to generate a proof of its own, and it wanted to use the proof-tactic “divide by sides of the equation by a common factor”, it would try to prove as a lemma that the common factor couldn’t vanish; or, if the common factor did sometimes vanish, I’m guessing Lean would divide the problem into two cases (one where the factor is nonzero and one where the factor vanishes). I’m no expert, though.

LikeLike

xenaprojectOne way to think about it is that Lean does not have the “divide” function as used by mathematicians, it has a special “/*” function defined like this: a /* b = a/b if b isn’t 0, and a /* 0 = 0. That’s all. There’s no harm in using the /* function in proofs, it’s just a function like addition is. It doesn’t satisfy quite the same theorems as “/”, for example (a/*b)*b =a is only proved under the extra hypothesis that b isn’t zero. But if you are just looking at the statement of a theorem and it has /* in but you can prove that the denominator isn’t zero then you know you’re just looking at / , and of course you can ask Lean to prove that the denominator isn’t zero anyway.

LikeLike

Marc>We might dream of a language in which it is impossible to tell lies, or failing that, a language in which it is impossible to speak nonsense

Type theory promises us this: any valid, ie typed, expression will be sensible.

In this case, we’d say / is defined on R x R – {0}, so 6 / 0 doesn’t pass the type checker, and isn’t a valid sentence in our language.

Of course complicated enough type checking isn’t decidable, so it’s debatable whether we have such a language or still merely dream of it.

Anyways, thanks for the stories, I enjoyed the post!

LikeLiked by 1 person

Kennis KoldewynYou might appreciate taking a look at the paper “Construction of the Transreal Numbers and Algebraic Transfields” by Tiago S. dos Reis, Walter Gomide, and James A.D.W. Anderson (http://www.iaeng.org/IJAM/issues_v46/issue_1/IJAM_46_1_03.pdf).

LikeLiked by 1 person

jamesproppPost authorThanks! I didn’t know about this work. In the transreals we have three extra elements, respectively written as 1/0, -1/0, and 0/0, and 1 divided by 0 is, naturally enough, the extra element 1/0. So that’s another setting in which we can divide by 0.

LikeLike

Pingback: Thoughts from the Outfield |