6 ms·
At this point I've written a number of comments throughout this thread which explain why division by zero is not possible in a field - specifically, a field whi
by throwawaymath 8y ago
At this point I've written a number of comments throughout this thread which explain why division by zero is not possible in a field - specifically, a field which contains nonzero elements. You are asking me to show you an axiom or theorem proving this, but I don't know how else to explain this to you since I've already explained it in a number of different ways. In a sibling comment I even write out the formal proof, and in others I've explained why the author's refutation is incorrect.
I'm not sure what else to say. The author is wrong - it is not at all controversial among mathematicians that the algebraic structure of a field cannot support division by zero. Perhaps I'm simply a poor teacher - in that case I would refer you to [1], [2] and [3] for a better explanation. As I've said elsewhere, you can make a coherent algebra by extending a field - then division by 0 or infinity is possible. But it stops being a field - just as it cannot be many other algebraic structures. Therefore I feel very confident stating that 1) the author is wrong, 2) I've sufficiently explained why in these comments and 3) the burden isn't really on anyone to disprove that division by 0 works at this point.
In any case, this entire discourse is ridiculous because the author should not be trying to defend programming language decisions using abstract mathematics. This kind of nuance and ambiguity is neither necessary nor relevant for justifying an implementation of defined behavior for division by zero. The whole exercise is a farcical distraction, to put it bluntly. Mathematics is pedantic by design, but this sort of definitional rigor is laughably unneeded and for defining integer and float-based arithmetic. The author does a disservice to what is an otherwise reasonable point by (incorrectly) justifying it with axiomatic field theory.
It's self-indulgent over-engineering to try to prove division by zero in fields "works, no really!" from first principles for a programming language blog post; especially when mathematics is essentially united in saying, "no actually, it doesn't."
__________________
1. https://www.reddit.com/r/math/comments/3b5i6p/can_you_divide.. https://www.reddit.com/r/math/comments/3b5i6p/can_you_divide....
2. http://mathworld.wolfram.com/DivisionbyZero.html http://mathworld.wolfram.com/DivisionbyZero.html
3. https://en.m.wikipedia.org/wiki/Division_by_zero https://en.m.wikipedia.org/wiki/Division_by_zero
- deleted 8y ago[deleted]
- pron 8y agoIf you mean this, https://news.ycombinator.com/item?id=17737661 https://news.ycombinator.com/item?id=17737661, then it contains a mistake, which I pointed out in a reply. The references you linked to are irrelevant as they refer to informal mathematics. Of course you can't meaningfully divide by zero (in the sense that the value of division corresponds with our intuitive understanding of what division is). But when it comes to formalization you must assign some meaning to 1/0 or work out a complex system where it becomes ill-formed (i.e. a "syntax error"). The only question is whether that meaning -- that must exist in formal mathematics even though it should not in informal mathematics -- causes an actual contradiction or not, even though it doesn't "make (an informal) sense" either way.
- throwawaymath 8y agoI don't know what to tell you. You're continuing to argue but you seem to not be following my point. I've already long since told you we're in agreement that you need to account for syntactically possible but theoretically impossible algebras for computation. In so doing I have gone further and repeatedly stated that because division by zero is not actually possible in fields, the author should not have tried to use such a rigorous system to justify the practical, syntactical requirements of a programming language. It doesn't make sense to try and refute mathematical theory as the preamble of a programming language manifesto. What exactly are you looking for me to say here?
- pron 8y ago> What exactly are you looking for me to say here? Very simple. Here is a theory of a field in FOL: ∀ x . x + 0 = x ∀ x . ∃ -x . x + (-x) = 0 ∀ x, y . x + y = y + x ∀ x, y, z . (x + y) + z = x + (y + z) ∀ x, y . x – y = x + (-y) ∀ x . 1x = x ∀ x . x ≠ 0 ⇒ ∃ x⁻¹ . xx⁻¹ = 1 ∀ x, y . xy = yx ∀ x, y, z . (xy)z = x(yz) ∀ x, y . y ≠ 0 ⇒ x/y = xy⁻¹ ∀ x, y, z . x(y + z) = xy + xz Do you claim that this formalization is unacceptable (i.e. it does not precisely and fully define what a field is)? If so, why? If not, can you write a single theorem in this theory that would be falsified if I added the axiom, ∀ x . x/0 = 0 ? If your answer to both questions is no, then your only point may be that the extended definition of the symbol / does not deserve the name "division" because it does not conform to our intuitive, informal notion. That's fine but is a long way from claiming that there is no acceptable formalization of fields or that division by zero introduces a mathematical contradiction or breaks equational laws. Note that you cannot say that the original theory defines a field while the extended one doesn't, because the latter's models are a subset of the former's. This then leaves open the matter of whether such a philosophical, aesthetic consideration trumps pragmatic ones or vice-versa, to which I don't think anyone has a universal answer, and it is not the issue, anyway.