On Sun, 16 Oct 2005, Per Bothner wrote:
>Your argument hinges on the term "addition", which you don't define,
>so it's meaningless.
Well, I thought most of us learned what addition was in kindergarten,
got negative numbers somewhere in second or third grade, and then got
complex numbers somewhere in junior high. Seriously, I mean plain,
ordinary, linear addition, the same as anyone who uses the term
unqualified outside of computer science.
Addition, as per the generally accepted definition, is not a modular
operation. It is transitive, commutative, and reversible. Modular
addition is transitive and commutative, but it is not reversible;
every modular addition loses information.
> What it really boils down to:
> * Is it wise/useful/desirable to overload operations so
> that different (but in-some-way-related) operations are named
> by the same operation name?
I believe that it is not.
> * Is it wise/useful/desirable overload the operation names for
> standard arithmetic to objects that don't obey all the rules
> of complex number arithmetic?
I believe that it is not.
> * A slightly different question: what is a number? Is a quantity
> with a dimension a number? Is a 32-bit unsigned machine integer
> a number? Is a complex a number?
Both of the first two cases are examples of numbers plus additional
information. A number with a dimension (such as "42 sunburned pigs")
is a number plus additional information. A 32-bit machine word is
a bit field which may be interpreted as a particular way of
representing a member of a particular subset of numbers, but it is
not itself a number. In this case the additional information is
the width including leading zero bits, which is implied by the size
of the representable subset, not by the number represented.
A complex number is more debatable; I think I am willing to call it
a number, but doing so often weirds math in the same way that verbing
nouns weirds language.
> I have no problem with you saying that you don't think my idea
> is a good idea. (I'm not sure it is myself - probably not for R6RS.)
> But I don't think you have basis for calling t "dead wrong".
Well, I think that any operation that can take two positive arguments
and produce a negative result is not addition.
It fails to follow at least one of the basic properties of addition,
reversibility.
For example, if I know that I added something to 27 and got -32,
reversibility means I should be able to uniquely determine what was
added to 27; under the rules of linear addition, it would have to be
-59, not any positive number. But with modular addition, it could be
either of two numbers, -59 and ($MODULUS - 59), so modular addition
isn't reversible like linear additon.
There are several other properties of linear addition that fail for
modular addition, too, but I won't go into them just now, because any
one of them is actually enough for me to consider something to be a
different operation. I think that calling a nonreversible operation
"addition" without further qualifiers, is, in fact, dead wrong.
Sorry, but I truly believe that's just a statement of the mathematical
facts. And yes, there are similar objections to overloading
multiplication, etc, with modular analogues.
Bear