Extending Integrate[]

*To*: mathgroup at smc.vnet.net*Subject*: [mg87754] Extending Integrate[]*From*: Szabolcs Horvát <szhorvat at gmail.com>*Date*: Wed, 16 Apr 2008 06:51:42 -0400 (EDT)*Organization*: University of Bergen

According to the documentation it is possible to extend Integrate[] with new rules: http://reference.wolfram.com/mathematica/tutorial/IntegralsThatCanAndCannotBeDone.html The specific example that is given is: Unprotect[Integrate] Integrate[Sin[Sin[a_. + b_. x_]], x_] := Jones[a, x]/b Now Integrate[Sin[Sin[3x]], x] will return Jones[0, x]/3 But if I try an integrand that is just slightly more complicated, Mathematica returns it unevaluated: In[21]:= Integrate[a + Sin[Sin[x]], x] Out[21]= Integrate[a + Sin[Sin[x]], x] My question is: Is it really possible to extend Integrate in an intelligent way? The above example seems to be just simple pattern matching. It would work with any function, not just Integrate[]. There is nothing new or surprising about it. But is it *really* possible to extend Integrate[] with new definitions in a way that Mathematica will use these rules when calculating more complicated Integrals? If (as I suspect) it is not possible to do this, then the documentation is a bit misleading ...