On Dec 7, 4:49 am, Andrzej Kozlowski <a... at mimuw.edu.pl> wrote:
> this suggests that the case for a bug is a weak one, I would say rather weaker than
> Hsiang's claim to have proved the Kepler Conjecture (I am not even sure if it is much
> stronger than the claim of Trul's machine).
It is easy to see the kind of chaos the vague and ambiguous "rules
should be interpreted semantically in a way that makes mathematical
sense" would cause. How should
a + b I /. I->-I
be interpreted *semantically*. Is it
a - b I
or
Conjugate[a] - Conjugate[b] I
?
Either one, I think, depending on the (unknown) intention of the
"user". Whatever "user" means here: the main "user" of rules in a
system like this is the system itself, not a human.
Of course, Mathematica has a rich collection of tools for transforming
expressions in ways that make "mathematical sense". In this case,
Conjugate[] and possibly ComplexExpand[] are the tools of choice. But
what transformations make "mathematical sense" for a given expression
cannot generally be deduced from the expression itself. The "user"
must communicate that through other channels, e.g. by using tools like
ComplexExpand[].
Consider the simplicity of the above example, and the complexity of
the manipulations we do with Mathematica. There are very many more
complicated expressions where "mathematical sense" in transformations
is ambiguous. Clearly, the behavior of replacement rules must be
defined rigorously and syntactically: anything else would lead to
endless nonsense.
In a computer algebra system, rules are the raw material from which we
create "mathematical sense". They cannot themselves be interpreted
according to "mathematical sense".