Re: algebraic ReplaceAll?

• To: mathgroup at smc.vnet.net
• Subject: [mg122320] Re: algebraic ReplaceAll?
• From: Dushan Mitrovich <dushanm at nnips.net>
• Date: Tue, 25 Oct 2011 06:16:38 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <j7u4qc\$t5h\$1@smc.vnet.net> <j83alr\$k6n\$1@smc.vnet.net>

Richard Fateman wrote:
> On 10/22/2011 3:10 AM, Dushan Mitrovich wrote:
>> Is there a way to get ReplaceAll to act algebraically, so it recognizes
>> the negative of a replaced quantity as well as the positive?  For
>> example, this works
>>        In:   x-w /. x-w->y
>>        Out: y
>>
>> but these don't
>>        In:   -x+w /. x-w->y
>>              w-x  /. x-w->y
>>        Out: w-x
>>              w-x
>>
>> - Dushan
>>
>>
>>
> How would you wish the replacement to work on this:
>
>    -x  /. x-w->y   ??
>
> would -y-w    be ok with you?
>
No, it would not be OK: I was only asking about the _negative_ of a
quantity being recognized, and I meant only when that negative quantity
is a match for the pattern specified.  Your example is too complicated,
I think, to be practical.

> If so, try
>
> -x /.  x->  y+w.
>
> x-w /.  x->  y+w
>
> w-x /.  x->  y+w
>
> etc.
>
> You can make the pattern work from  w->  x-y    alternatively.
>
>
> Or if you want to know if some expression e can be expressed as
> Q*(x-w)+R, you can do this by polynomial division.
>
> Three points:
> 1. Your request is ambiguous.
> 2. The pattern matcher basically sucks for this, as Andrzej observes.
> 3. Alternatives (e.g. semantica, or
> http://www.cs.berkeley.edu/~fateman/papers/better-rules.pdf )
> exist, but item 1. above needs some thought either way.