Re: Transformation rule problem

• To: mathgroup at smc.vnet.net
• Subject: [mg58201] Re: Transformation rule problem
• From: "Peltio" <peltio at trilight.zone>
• Date: Wed, 22 Jun 2005 01:55:44 -0400 (EDT)
• References: <d90slm\$8tt\$1@smc.vnet.net> <d98p6t\$efu\$1@smc.vnet.net>
• Reply-to: "Peltio" <peltioNOSPAM at despammed.com.invalid>
• Sender: owner-wri-mathgroup at wolfram.com

```"Oliver Buerschaper" wrote

>>     rulen[a_, b_][d_] = a^n_*b^m_ :> d*(a^(n - 1)*b^(m - 1));
>>     rulea[a_, b_][d_] = a*b^m_ :> d*b^(m - 1);
>>     ruleb[a_, b_][d_] = a^n_*b :> d*a^(n - 1);
>>
>>     mySimplify[expr_, a_ b_ -> d_] :=
>>         (expr //. rulen[a, b][d]) /. {rulea[a, b][d], ruleb[a, b][d]}
>>
>> This only works when a and b are not "mixable", i.e. they are immediately
>> identifiable by sheer pattern matching.
>
>What do you mean by this?

I gather you want the simplification to work with a and b being functions.
So, take for example a=Sin[x] and b=1/Cos[x], and you want a b -> d
first of all
the call to the function mySimplify[expr,Sin[x]*1/Cos[x]->d]
will be automaticall evaluated to mySimplify[expr, Tan[x]->d]
and this will not be evaluated further since the signature is not
the same as that of mySimplify
moreover
even if you define a signature for mySimplify to accept separate
arguments, such as mySimplify[expr_, a_,b_,d_], the product of
the two functions can turn into something that has little to do with
them ("patternwise"). This again is the case for Sin[x] and 1/Cos[x]
and, last but not least,
suppose you also add a signature to take care of the transformation
of the product of a and b into c,  you should then add at least a rule
to make c->d as in
mySimplify[expr_, c_, { a_, b_ } -> d_] :=
(expr //. rulen[a, b][d])
/. {rulea[a, b][d], ruleb[a, b][d]}
/. c -> d

with symbols and radicals. The substitution Sqrt[a] Sqrt[b] -> Sqrt[d]
won't work. For example:
a=Sqrt[Sin[x]], b=Sqrt[1/Cos[x] and d=Sqrt[Tan[x]]
will have mySimplify return expr unaffected.
The square root is a well known pattern matching trap : ). So, more
rules are needed, at least with my approach.

I haven't checked the other posters' solutions but, having learnt to
appreciate their skills,  I'm confident that you will find a brilliant
solution to these shortcomings.

cheers,
Peltio