MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: More /.{I->-1} craziness

Noqsi wrote:
> It's more that I==-I makes no sense.

That's not what anyone said.  I -> -I  means change the sign of all 
imaginary quantities.

Rules do not necessarily represent value-preserving transformations.

Sometimes people write epsilon^2 -> 0   By which they do NOT mean
epsilon^2==0 and hence epsilon==0.  What they mean is to discard
powers of epsilon greater than one.  This rule, by the way, also
would not work,  but epsilon^N_ ->0  with the condition N>1 might...
A better way might be to compute a Series in epsilon.


>> Well, reporting something as a bug and hoping it will be fixed is
>> another choice.
> But nobody with sense thinks it's a bug.

I'm rubber you're glue. Everything you say sticks to you.
> Remember that nearly all of the expressions evaluated by Mathematica
> are also generated by Mathematica, not by human users. Reading human
> intent into such expressions would be a grave mistake. Fundamental
> facilities like Replace have to perform predictably and regularly to
> make it possible for the developers of Mathematica to avoid creating
> bugs.

You totally miss the point.  If a human writes a rule  I->-I, then the 
system can try to figure it out.  Mathematica itself presumably would 
not automagically write such a rule, and so it would not be an issue.
How to fix it for HumansOnly?  Suggest to humans that they use 
BetterRules[I->-I]   which would perhaps produce a different rule, e.g. 
Complex[a_,b_]->Complex[a,-b].   No big deal.
>> And writing a version of the facility that does the right thing is
>> another choice. (Any takers?)
> You cannot even define with adequate rigor what you mean by the "right
> thing".
I think I can.  I'm just being generous to people like you who might 
have suggestions about what you might like.

  How, *in general*, should Mathematica make *mathematical*
> sense of a command to replace a constant with a different constant?

Instead of protesting, I suggest you think about what someone might 
want, for even 60 seconds. As I pointed out above, rules are not used
solely for value-preserving transformations, and so replacing 1 by 2 can 
make perfect sense. Note that Mathematica is perfectly happy to do 
f[1]/. 1->2.  {by the way, f[1]/.1->2 results in the fairly nonsensical 
10.f[1]->2, but that's a parsing problem.}
>> Either of these could be "productive".
>> Are Mathematica design decisions sacred or something?
> The design of fundamental functionality like Replace is severely
> constrained by the architecture of the system. Balsa wood is a useful
> material, but you cannot use it to make the base structure of a
> skyscraper.

A more apt analogy may be that if a system is built with one size and 
shape of rectangular Lego bricks, you can make large stable rectangular 
structures, but it is impossible to construct (say) a smooth sloping 
ramp.  Introducing another Lego shape can vastly expand the types of 
structures that can be easily built. People who insist on the perfection 
and purity of the original Lego brick can continue to use only those 
bricks, and their buildings will be just fine, as long as they need not 
comply with ADA. (They can't build wheelchair ramps for their disabled 



  • Prev by Date: How to call an external program from Mathematica?
  • Next by Date: Re: Manipulating FinancialData[]
  • Previous by thread: Re: More /.{I->-1} craziness
  • Next by thread: Re: More /.{I->-1} craziness