One of my tweeps sent me a link to a delightful pile of rubbish: a self-published "paper" by a gentleman named Robbert van Dalen that purports to solve the "problem" of zero. It's an amusing pseudo-technical paper that defines a new kind of number which doesn't work without the old numbers, and which gets rid of zero.

Before we start, why does Mr. van Dalen want to get rid of zero?

So what is the real problem with zeros? Zeros destroy information.

That is why they don’t have a multiplicative inverse: because it is impossible to rebuilt something you have just destroyed.

Hopefully this short paper will make the reader consider the author’s firm believe that: One should never destroy anything, if one can help it.

We practically abolished zeros. Should we also abolish simplifications? Not if we want to stay practical.

There's nothing I can say to that.

So what does he do? He defines a new version of both integers and rational numbers. The new integers are called accounts, and the new rationals are called super-rationals. According to him, these new numbers get rid of that naughty information-destroying zero. (He doesn't bother to define real numbers in his system; I assume that either he doesn't know or doesn't care about them.)

Before we can get to his definition of accounts, he starts with something more basic, which he calls "accounting naturals".

He doesn't bother to actually define them - he handwaves his way through, and sort-of defines addition and multiplication, with:

*Addition*- a + b == a concat b
*Multiplication*- a * b = a concat a concat a ... (with b repetitions of a)

So... a sloppy definition of positive integer addition, and a handwave for multiplication.

What can we take from this introduction? Well, our author can't be bothered to define basic arithmetic properly. What he really wants to say is, roughly, Peano arithmetic, with 0 removed. But my guess is that he has no idea what Peano arithmetic actually is, so he handwaves. The real question is, why did he bother to include this at all? My guess is that he wanted to pretend that he was writing a serious math paper, and he thinks that real math papers define things like this, so he threw it in, even though it's pointless drivel.

With that rubbish out of the way, he defines an "Account" as his new magical integer, as a pair of "account naturals". The first member of the pair is called a the *credit*, and the second part is the *debit*. If the credit is a and the debit is b, then the account is written (a%b). (He used backslash instead of percent; but that caused trouble for my wordpress config, so I switched to percent-sign.)

- Addition:
- a%b ++ c%d = (a+c)%(b+d)
- Multiplication
- a%b ** c%d = ((a*c)+(b*d))%((a*d)+(b*c))
- Negation
- - a%b = b%a

So... for example, consider 5*6. We need an "account" for each: We'll use (7%2) for 5, and (9%3) for 6, just to keep things interesting. That gives us: 5*6 = (7%2)*(9%3) = (63+6)%(21+18) = 69%39, or 30 in regular numbers.

Yippee, we've just redefined multiplication in a way that makes us use good old natural number multiplication, only now we need to do it four times, plus 2 additions to multiply two numbers! Wow, progress! (Of a sort. I suppose that if you're a cloud computing provider, where you're renting CPUs, then this would be progress.

Oh, but that's not all. See, each of these "accounts" isn't really a number. The numbers are equivalence classes of accounts. So once you get the result, you "simplify" it, to make it easier to work with.

So make that 4 multiplications, 2 additions, and one subtraction. Yeah, this is looking nice, huh?

So... what does it give us?

As far as I can tell, absolutely nothing. The author promises that we're getting rid of zero, but it sure likes like this has zeros: 1%1 is zero, isn't it? (And even if we pretend that there is no zero, Mr. van Dalen specifically doesn't define division on accounts, we don't even get anything nice like closure.)

But here's where it gets really rich. See, this is great, cuz there's no zero. But as I just said, it looks like 1%1 is 0, right? Well it isn't. Why not? Because *he says so*, that's why! Really. Here's a verbatim quote:

An Account is

balancedwhen Debit and Credit are equal. Such a balanced Account can be interpreted as (being in the equivalence class of) a zero but we won’t.

Yeah.

But, according to him, we don't actually get to see these glorious benefits of no zero until we add rationals. But not just any rationals, dum-ta-da-dum-ta-da! *super-rationals*. Why super-rationals, instead of account rationals? I don't know. (I'm imagining a fraction with blue tights and a red cape, flying over a building. That would be a lot more fun than this little "paper".)

So let's look as the glory that is super-rationals. Suppose we have two accounts, e = a%b, and f = c%d. Then a "super-rational" is a ratio like e/f.

So... we can now define arithmetic on the super-rationals:

- Addition
- e/f +++ g/h = ((e**h)++(g**f))/(f**h); or in other words, pretty much exactly what we normally do to add two fractions. Only now those multiplications are much more laborious.
- Multiplication
- e/f *** g/h = (e**g)/(f**h); again, standard rational mechanics.
- Multiplication Inverse (aka Reciprocal)
- `e/f = f/e; (he introduces this hideous notation for no apparent reason - backquote is reciprocal. Why? I guess for the same reason that he did ++ and +++ - aka, no particularly good reason.

So, how does this actually help *anything*?

It doesn't.

See, zero is now not really properly defined anymore, and that's what he wants to accomplish. We've got the simplified integer 0 (aka "balance"), defined as 1%1. We've got a whole universe of rational pseudo-zeros - 0/1, 0/2, 0/3, 0/4, *all of which are distinct*. In this system, (1%1)/(4%2) (aka 0/2) is not the same thing as (1%1)/(5%2) (aka 0/3)!

The "advantage" of this is that if you work through this stupid arithmetic, you essentially get something sort-of close to 0/0 = 0. Kind-of. (There's no rule for converting a super-rational to an account; assuming that if the denominator is 1, you can eliminate it, you get 1/0 = 0:

I'm guessing that he intends identities to apply, so: (4%1)/(1%1) = ((4%1)/(2%1)) *** `((2%1)/(1%1)) = ((4%1)/(2%1)) *** ((1%1)/(2%1)) = (1%1)/(2%1). So 1/0 = 0/1 = 0... If you do the same process with 2/0, you end up getting the result being 0/2. And so on. So we've gotten closure over division and reciprocal by getting rid of zero, and replacing it with an infinite number of non-equal pseudo-zeros.

What's his answer to that? Of course, more hand-waving!

Note that we also can decide to simplify a Super- Rational as we would a Rational by calculating the Greatest Common Divisor (GCD) between Numerator and Denominator (and then divide them by their GCD). There is a catch, but we leave that for further research.

The catch that he just waved away? Exactly what I just pointed out - an infinite number of pseudo-0s, unless, of course, you admit that there *is* a zero, in which case they all collapse down to be zero... in which case this is all pointless.

Essentially, this is all a stupidly overcomplicated way of saying something simple, but dumb: "I don't like the fact that you can't divide by zero, and so I want to define x/0=0."

Why is that stupid? Because dividing by zero is undefined *for a reason*: it doesn't mean anything! The nonsense of it becomes obvious when you really think about identities. If 4/2 = 2, then 2*2=4; if x/y=z, then x=z*y. But mix zero in to that: if 4/0 = 0, then 0*0=4. That's nonsense.

You can also see it by rephrasing division in english. Asking "what is four divided by two" is asking "If I have 4 apples, and I want to distribute them into 2 equal piles, how many apples will be in each pile?". If I say that with zero, "I want to distribute 4 apples into 0 piles, how many apples will there be in each pile?": you're *not* distributing the apples into piles. You can't, because there's no piles to distribute them to. That's exactly the point: you *can't* divide by zero.

If you do as Mr. van Dalen did, and basically define x/0 = 0, you end up with a mess. You can handwave your way around it in a variety of ways - but they all end up breaking things. In the case of this account nonsense, you end up replacing zero with an infinite number of pseudo-zeros which aren't equal to each other. (Or, if you define the pseudo-zeros as all being equal, then you end up with a different mess, where (2/0)/(4/0) = 2/4, or other weirdness, depending on exactly how you defie things.)

The other main approach is another pile of nonsense I wrote about a while ago, called nullity. Zero is an inevitable necessity to make numbers work. You can hate the fact that division by zero is undefined all you want, but the fact is, it's both necessary and *right*. Division by zero doesn't mean anything, so mathematically, division by zero is undefined.

Mr van Dalen seems to have rediscovered the construction of the integers from the natural numbers in the most roundabout and notationally grotesque way possible, modulo refusing to identify the equivalence class corresponding to the integer 0 for reasons of pure superstition. Now that is an achievement!

I wouldn't call this all *completely* pointless... In fact, except for the "leaving out zero" part, this is the standard approach for building up the definitions of various sets of numbers from pure set theory: start by defining the natural numbers as Von Neumann ordinals, then define the integers as equivalence classes of ordered pairs of naturals, then define the rationals as equivalence classes of ordered pairs of integers, etc.

I'm sure, though, that in order for addition and multiplication on integers to be well defined, his "balanced accounts" will all have to be in the same equivalence class. He can call that class whatever he wants, but I'll keep calling it zero...

Not that I disagree, but I hope the stroke to your ego was worth the time you put into this.

its not about ego. If you derived your self worth from comparing yourself to people like that in terms of math that would be extremely ridiculous.

Let me just add one more thing. I have no idea how old this author is, but from your post it seems you don't know either.

Suppose this is an audacious 14-year-old. You have just replied with "Why is that stupid?". Why can't you reply instead (if you really have to reply at all) with "Let me tell you we don't do this"? Again, I have no idea who you are critiquing (and you have provided no background), but it seems a bit aloof and out-of-touch to call them "stupid" when they might just be playing with ideas at this point in their development. Even if this wasn't written by a 14-year-old, would you send this same signal to a 14-year-old who thought such thoughts? If so, I think you are slowly destroying mathematics.

We ought to give people the space and time to think wrong thoughts, because the right ones don't come easy.

I suppose you are new to this blog? Because for anyone who has paid any sort of attention to Good Math/Bad Math, this is sort of what Mark does: he discusses various degrees of Wrong Thoughts, and points out what the problem with this particular brand of Wrong Thought actually is.

And if you seriously believe mathematics can be so easily destroyed that a single dedicated layman can pull the entire edifice down — merely by heckling Things That Are Wrong — then I'm worried about the chances your mathematics stands overall...

Wow, a 14 year old boy who works at a bank as a developer. That would be something!

Do you realize that this post is not criticizing the paper for being wrong, but for being elementarily wrong while erroneously claiming a great accomplishment (abolishing zero) in an absurdly convoluted (yet trivial) way? If the paper were called "playing with the concept of zero" and didn't claim to have solved anything, nobody would be mocking it.

In our discussion on reddit, where Mr. van Dalen shows up and participates, it turns out that _equality_ is defined in the standard way for constructing integers and rationals. How his construction is supposed to be different at this stage is becoming somewhat unclear -- although he is invoking “wheels” as the saving algebraic structure he aims for...

The discussion is at http://www.reddit.com/r/math/comments/13vvx8/division_by_zero_is_undefined_so_we_have_decided/ btw.

Even without wanting to listen anyone telling him that his zero is a zero, "his system" "destroys information" in the very same way than zero.

If I tell you that I multiplied a number x by zero and it gave me zero, you can't tell me what my number x was. Which is the way it should be. I assume this is what he calls "destruction of information".

In the same sense, if I tell you I multiplied an "account" (x%y) by (1%1) and the result was (3%3), you still can't tell me what the account (x%y) was, nor even the class of equivalence. (2%1)**(1%1) = (3%3) = (1%2)**(1%1).

You'll not only have to erase zero from books, obfuscate computations for no reason and forbid people to speak about multiplicative inverses. You'll also have to kill anyone asking quantitative questions of this kind.

Author here. Thank you for your in-depth review. The article is not an academic paper so I can say whatever I want. It may have helped to google my name, showing that I'm not 14 years old and that I do now what reals are (but I am finitist so I don't like them). Why not leave a message on my blog?

Anyway, I do think you missed a subtle point. This has to do with lazy evaluation (of number expressions) versus strict evaluation ('simplification' of number expressions).

For example the expression 8%6 is in the same equivalence class as expression 10%8 but that doesn't make them equal. Same for expression 12%12 and 8%8.

Lastly, the system I propose has similarities with the wheels and meadows algebras. Do you also consider those to be the works of pseudo scientists?

The system you "propose" is isomorphic to the standard construction for models of the integers and rationals from models of the Peano axioms. Just because you don't understand what you've written doesn't mean it's anything new.

So you know what I understand and don't understand; great mind reading!. And do two isomorphic things make them equal? Same fallacy of equality.

Also, I've already done some (previous) work that might make reconsider your last statement. Check out http://www.enchiladacode.nl and http://github.com/rapido/spread/tree/master/src/spread

But I guess my work is not interesting for mathematicians: that's ok - you weren't the target audience to begin with.

There is definitely something interesting about making arithmetic lazy (in the sense of functional programming). If only you had written about that instead…

Fair enough. I understand that my article was incomplete.

But I do think that it does contain all the goods (implicitly).

In my defense: the article was a kind of a (serious) satire that has not been picked up as such.

I mean, can you take this statement seriously without LOL?

'Note that the actual choice of the tally symbol is insignificant: we could even choose to use the zero symbol, but we will not.'

Also the property of (T)-Accounts is that they always should be balanced to be valuable: another jest.

Nevertheless, zeros do destroy information. Still, I agree that I've may have pushed the research idea of 'non-destructive' computation to far without properly introducing the concepts.

Is that a crime? I guess if you are an academic: yes.

Anyway, I do enjoy discussions such as these, even if they appear to be a bit aggressive at the start: it sharpens the mind.

I don't like personal attacks though.

You guys are missing a bit of context here.

Suppose you want to build a computer that solves Newtonian physics problems. Well, we know that Newtonian physics is completely reversible... so if you simply swap time to work in the opposite direction then you can run any Newtonian physics in reverse to get back where you started. Because it is reversible the information content remains constant at all times.

However, Thermodynamics is not reversible, because entropy always increases, and in real physics we have the somewhat strange rule that information CANNOT be destroyed. You might be thinking that your computer contains AND gates and OR gates and those very fundamental binary arithmetic operations are destroying information all the time. Yes, that is correct, but your computer is attached by wires to a massive coal fire and steam turbine that pumps out entropy at such a massive rate, the tiny amount in information destroyed on your desktop is nothing in comparison.

By the way, physics does not have a concept of a zero (as far as I've ever heard). You can of course plug zero into an equation, but you can't find it in the real world.

That's the background problem getting people thinking about number systems that can solve problems without destroying information. I agree that van Dalen's effort probably isn't going to be the next big breakthrough in this particular reconciliation between maths and physics.

I think you're the one that's missing the point.

Zero, in both multiplication and division, does destroy information in some sense. But that's not a problem, that's a reality.

In physics, when you have a reversible system, you don't ever multiply or divide by zero. That doesn't mean that zero doesn't exist. Rather, it just continues to reinforce the fact that division by zero

doesn't make sense. We don't make up equations randomly; we write them to fit observations of nature. Since division by zero doesn't mean anything, then nothing in nature makes our equations divide by zero - because if it did, the equations would be wrong. Nothing in nature makes our equations multiply by 0 in places where it would destroy information, because if it did, the equations would be wrong.None of that says anything about why division by zero is a problem: it isn't. Division by zero doesn't work because it's meaningless. You can spackle over that in all sorts of ways - the infinite zeros of van Dalen, IEEE's NaN, the despicable nullity, projected geometry, inner infinities - but they're all limited by the fact that it really doesn't mean anything. That's just a fact.

I'm not a mathematician, but I'm aware that division by zero is undefined because you want the axioms of a field to hold.

But what about the meadow algebra, which is a commutative ring (not a field) extended with a slightly different definition of multiplicative inverse? Do you guys think such algebra is useful?

My construction is a variant of the wheel algebra but I'm not sure what kind of algebra class the wheel algebra is in. Do any of you know?

I'm asking because I'm designing a total functional programming language and I want to use meadow or wheel numbers.

> I'm aware that division by zero is undefined because you want the axioms of a field to hold

Noooo, division by zero is undefined because if you defined it you would end up getting an algebraic structure we very seldom have any concrete use for.

By all means, you can create a wheel, and that's one of the sanest possibilities if you insist on having a well-defined division by zero. Not that using a wheel gets you away from any of the special case handling you need otherwise, nor will it make anything we already do any easier to do. But sure, if total definitions of all algebraic operations are THAT important to you, go for it.

As for meadows, I hadn't heard of them until you brought them up here -- but I will notice that the original meadows paper itself points out that the authors do not trust the construction works for rationals or reals. Since the construction you propose is (with the equality definitions you gave over on reddit) is the classical construction of the rationals, this is a problem for your approach.

If you WANT to complete the rationals to a wheel, why not just do that? Instead of this approximation to the classical constructions?

But my construction IS already a wheel, but I did not need the invention of two special symbols to show that. The equality definitions I gave on reddit will tell you that.

After agreeing that these proposed systems to avoid zeros make little sense (especially this one since it was a joke).

> Division by zero doesn't work because it's meaningless. [...] That's just a fact.

I think Bertrand Russell explained why there are no "facts" in mathematics, just axioms and implications.

I'm used to another interpretation of a/b, that is, how many times does 'b' fit into 'a'. Under that interpretation, it makes intuitively a lot of sense to say that a/0 with a != 0 is infinite. And that works quite well both in physics class and with IEEE doubles (which return signed infinities, not NaN in this case - your reference above seems naive, but I still assume you know better).

In most cases you can talk about the limit of a/x for x -> 0 to make these discourses rigorous; but at least at an intuitive level, just taking a/0 = infinity (with a single infinity) is quite simple. I'd dare say that it's even elegant, since for instance f(x) = a/x is continuous when x = 0 - I think this has the same elegance as projective geometry (where you in fact use no infinitesimals, but have similar intuitions).

I'm in fact curious to understand what non-standard analysis would have to say on this fact. What I read is that this discipline justifies the intuitive reasonings with infinitesimals and infinities used by the founders of analysis — where dividing nonzero by zero gives infinity. As I just learned, though, in fact that's only true for division by infinitesimals (http://en.wikipedia.org/wiki/Hyperreal_number), so the above is not formally correct in nonstandard analysis because I'd need to distinguish zero from infinitesimals. I wonder where do problems arise with a different approach where zero and infinitesimals are not distinguished.

In case you wonder whether I get math at all, I'm not a mathematician, but I was selected to participate at the 2004 International Mathematical Olympiad (http://www.imo-official.org/year_info.aspx?year=2004).

Yeah, I know that mentioning NaN is a simplification combined with a bit of wishful thinking.

I really hate the idea that 1/0 = infinity. There's some amount of sense to it - but I think that it's a patch over the real problem - and like most patches, it just makes the problem worse.

You can't divide by zero, because dividing by zero doesn't work. Saying that the answer is infinity makes it *seem* like you've defined it. But you still haven't, really, because division is a function from a number to a number, and infinity isn't a number. So patching division to say that 1/0=infinity doesn't really fix it.

You can patch that, and say, yeah, infinity is a number. But then you lose some essential mathematical identities. For example:

All that "defining" division by 0 does is defer the problem. It doesn't eliminate it. Division by zero isn't defined in the standard number field, and you can't fix that without breaking the field. Breaking the field of real numbers breaks almost everything that we do with numbers.

Ahem, didn't we already see that "accounts" destroy information in these sense, too? (x%y) * (1%1) = (3%3) does not let you know what (x%y) are, exactly as it happen with 0. Because (1%1) is a zero!

Second, what the hell does "physics does not have a concept of zero" mean? Is that one of those cool sentences nobody knows what it means?

When I say a neutrino have zero rest mass,is that not physics? If I say "the net force acting over a body is zero", is that not a physical statement? "The pressure field at that point is null, so zero pressure". Hell, even a simple statement as "how many neutrons are in a hydrogen atom? Zero".

What the hell does "physics does not have a concept of zero" mean?

Apart, you'd better not mix physics here. Because then you'll have to tell me how do you measure things in "accounts". If the net acceleration of a body is zero, I can build a gadget telling you that on a scale. But, what would an "account" gadget return? 1%1? 2%2? 3%3? Because they're not equal, remember XD

A: What's our speed (wrt the floor)?

B: Zero

A: Arrrghhh, that's unphysical!

Here is a lazy example of not throwing away information as per your example:

a = 2%1 * 1%1 => ((2*1)+(1*1))((2*1)+(1*1))

b = 1%1 * 1%2 => ((1*1)+(2*1))((1*1)+(2*1))

Note that a and b are not equal (expressions), but are in the same equivalence class.

The idea is that you always keep the expressions in the background, not replacing them with their simpler versions (that are in the same equivalence class).

Can this be made practical (keeping the expressions)? Yes, I think so.

Oh, I hate this formatting stuff. Isn't there an option to preview what I did?

Next try:

a = 2%1 * 1%1 => ((2*1)+(1*1))%(1*1)+(2*1))

b = 1%1 * 2%1 => ((1*1)+(2*1))%((1*1)+(2*1))

Note that a and b are not equal (expressions), but are in the same equivalence class.

The idea is that you always keep the expressions in the background, not replacing them with their simpler versions (that are in the same equivalence class).

Can this be made practical (keeping the expressions)? Yes, I think

I already show you how your "math" loss the same information in the sense that a result does not keep track of the information required to generate it.

If you're now arguing that you can retain information by writing every step in a notebook, you can do that with classic math, too. And writing a lot less, of course XD You're just trolling, I bet.

Last system I work was a system involving 10000x10000 matrices (nothing uncommon these days), which I had to optimize. Try bookkeeping every operation there XD (and finding a reason to do that, and then finding a reason to do that in your add-nothing approach).

And this is what went through my mind halfway through this post:

"I can't blab such blibber blubber!

My tongue isn't make of rubber."

(c) Dr. Seuss by way of Mr Knox.

Where do they bring this from?

I'm going to apply the most generous interpretation that I can think of. This is not mathematics, but programming.

Mathematicians have the luxury of being able to imagine equivalence classes with infinitely many members, prove that they obey the desired rules, and then work directly with the rules, ignoring the details of any particular representation.

Programmers, however, need to find concrete representations. Preferably ones that use little memory and are quick to process. Programmers with little mathematical background don't care much whether a representation obeys the mathematician's rules, and don't worry about the fact that the familiar theorems won't necessarily apply. If the users don't complain about too many bugs, it's good enough.

So what we have here is a redundant representation of the integers and rationals. We already have perfectly good representations that are smaller and faster to work with, so this one is going to have to offer something that they don't.

There are infinitely many representations of zero. If we divide a number by one of the zeroes, then multiply the result by the same one, do we get the original number back? Hasn't everyone wanted to be able to cancel the zeroes in a fraction? Let's try (using Mark's % because I don't know what will happen to a backslash).

Say a = 5%3 / 1%0 and b = 1%1 / 1%0 (if I'm doing it right, these are the equivalents of 2 and 0). `b = 1%0 / 1%1 and a *** `b = (5%3 ** 1%0) / (1%0 ** 1%1) = (5+0)%(0+3) / (1+0)%(1+0) = 5%3 / 1%1.

Then (5%3 / 1%1) *** b = (5%3 ** 1%1) / (1%1 ** 1%0) = (5+3)%(5+3) / (1+0)%(0+1) = 8%8 / 1%1. Oh dear.

What if we first multiply by a zero, then divide by it? Sadly, that gives the same result.

So what we really have is a redundant representation of the integers and rationals that's harder to work with and doesn't present any advantage on the simplest application I could think of. It's no good defining (by whatever means) what happens when you divide by zero if the result isn't useful for anything.

The outcome of your example equivalent to what happens when you apply the wheels algebra.

In the wheels algebra there are two 'attractors' from which you cannot escape: 1/0 and 0/0. My construction follows the wheels algebra, except that there are more members of the 'attractor' equivalence classes 1/0 and 0/0.

Normally, division by zero inescapably throws an error in a regular computing system. Alternatively, when applying the wheels algebra you also cannot escape the equivalent of such error (because of the attractors).

So you could argue there is no difference. But there will be a subtle difference when you lazily evaluate (expressions) of numbers.

Is the difference you are referring to related to the fact that lazy computations can terminate even if they contain nonterminating expressions (so expressions that would cause errors would not be computed)? I don't see the value here if these "attractors" absorb in all cases, but perhaps there are ways out of that?

Curious, "Zeros destroy information." I thought it was irreversible operators acting on any set of mathematical objects that destroyed information. Or more succintly, information is not conserved for these operators. Take for instance the AND operator. 4 input states -> 2 output states. So it follows, information is "lost" in merging these paths. Or worse yet. Someone hands you the output 10 and says it came from subtracting two numbers, x and y. Now we have an infinite number of input states from which to choose, e.g. any -(x,y) -> 10.

You can have gates that are reversible. See reversible computing.

It does come at a cost though.

I read Van Dalen's article much more lightly, as a fairly tongue-in-cheek abstraction of the accounting practice of keeping a 'credit side' and 'debit side' in the general ledger, booking debits and credits on the respective sides and adding up, requiring the totals to be equal when the books close - a practice that does indeed avoid the destruction of information and the need for the number 0 or negative numbers, but clearly produces the same net results.

I might be wrong, but I think the "paper" was meant to be a joke, and wasn't really intended to be serious.

a = 1 * 0

b = 0 * 1

Notice how a and b are different expressions XD

See? If this is what you're calling "no information loss", it has no relation to your "accounts" at all.

You are correct that using accounts per se does not prevent us from losing information.

And yes, bookkeeping any expression in the background would do the same trick, so indeed my argument was bogus.

So let's forget about accounts and concentrate on not destroying information.

Here is analogy with spreadsheets: let's say we have a spreadsheet that holds two 10000x10000 matrices, a and b.

You can express the multiplication of a and b in the same spreadsheet. And the matrices a and b will still be there after multiplication: nothing is destroyed.

Ok, one thing cleared.

About the second, why should we concentrate on "not destroying information"? What's the reason? I mean, when there is a reason, we already have the tool (it's called "writting what you're doing").

But there is no reason in most cases. Why should we spend resources (memory, etc.) keeping information we don't need?

In any case, all this have nothing to do with zero.

... nor with math, of course. It's just a question of bookkeeping.

Ignoring the paper, destroying no information is required for quantum computation. Logical gates in quantum computers should not destroy information; so if your gate has two inputs, it will need to have two outputs.

Another potentially interesting property is that thermodynamics requires that since information is entropy and entropy cannot decrease, destroying information requires releasing a certain amount of energy to increase entropy elsewhere. If you want your computations to consume less energy than that, you need them to be reversible. Luckily (or sadly) our computations consume much more energy than this theoretical lower bound, so reversible computations won't help increasing the battery life of your laptop. At least not today, and I guess not for the next 10-20 years.

I still do believe there is some merit in my construction (although the paper was meant as a serious joke).

Yes, accounts do not prohibit the destruction of information, but they do destroy less information.

Also, my “paper” didn't say anything about equality (which was kind of unfortunate).

Equality is more problematic with Rationals that allow 0 as denominators, as you need to distinguish 1/0 and 0/0 as separate equivalent classes.

If you don't have 1/0 and 0/0 separated, everything will equal everything: that is certainly not something I would suggest as being useful.

I'm following the wheel algebra where 0x = 0 does not hold in general.

This is something I didn't mention in my paper, but that was my intention.

Here are some examples, taken from Jesper Carlstom's paper 'Wheels On Division by Zero':

0*x + 0*y = 0*x*y

(0/0)*x = 0/0

x/x = 1 + 0*x/x

So with wheels, you cannot replace 0*x with 0.

I SHALL CALL THIS METHMATH