Well, why not? The usual answers boil down to either an appeal to
arithmetic intuition (e.g. treating division as repeated
subtraction, you can never subtract zero to get anywhere) or
definition (you can't divide by zero because zero is defined not to
have a multiplicative inverse, i.e. “because I said
so”). But the former is mathematically naïve and the latter is
unsatisfyingly circular. So let's dig in to *why* we want to
define zero out of division.

It is entirely possible to coherently define a system in which you
can divide by zero. Let's do it! Let's define “the reals but
you can divide by zero” (which we'll go ahead and notate
“𝔻”, for “division”) as: the real
numbers, except for all `x`, `x / 0 = 0`.

You can divide by zero in 𝔻!

Let's go ahead and try it:Neat!5 / 0 = 0

But, from this we can gather there's probably a *reason* we
had to amend ℝ to allow this. And indeed, there is. The real
numbers form a
*field*,
a mathematical structure about which a great many very general
properties are known, which makes them automatically well-understood
and reasonable to manipulate. (Note that this relationship is
ahistorical: understanding of the reals predates the definition of
a field, with the latter defined around the properties of arithmetic
on the reals. But we're not living through history here, so if it's
pedagogically convenient to start with fields, I can do that.) Now,
while there are a handful of different ways to define a field, the
properties we're interested in boil down to the following:

- A field is a set of elements, with two operations:
- the first, conventionally called “addition”
(because on the reals it's, well, addition), with an
identity element conventionally called “zero”
such that
`x + 0 = x`, and an inverse for every element such that`x + (-x) = 0`; and - the second, conventionally called
“multiplication” (for exactly the reason you
think), with an identity element conventionally called
“one” such that
`x * 1 = x`and an inverse for every element*other than zero*such that`x * x`.^{-1}= 1 - And crucially,
*multiplication distributes over addition*: that is,`x * (y + z) = (x * y) + (x * z)`.

Well… nothing good, unfortunately. Distribution actually
*requires* that `x * 0 = 0` for all `x`:

And ifx * 0 = a

0 + 0 = 0by definition of additive identity

x * (0 + 0) = a

(x * 0) + (x * 0) = aby distribution

(x * 0) = a - (x * 0)

Buta = x * 0, soa - (x * 0) = 0by definition of additive inverse

Sox * 0 = 0

And thereforea = 0for allx.

`x * 0 = 0`for all

`x`, then we can't have a multiplicative inverse for

`0`, because

This can only possibly be true if there's only one element in your field. For fairly sophisticated reasons, there's no such thing as a field with one element, but ℝ and 𝔻 both havex * 0 = 0

x * 0 * 0by definition of multiplicative inverse^{-1}= x * 1 = x

Butx * 0 = 0, so0 * 0^{-1}= xfor all.x

*significantly*more; so they lack a multiplicative inverse for zero with distribution. (𝔻 turns out to lack

*both*, because

`0 / 0 ≠ 1`, but there's no possible workaround.)

So there's the answer. Division by zero is undefined because if you
define it, you can't distribute multiplication over addition; and
distribution turns out to be *far* more useful than division
being total.