Re: FullSimplify and HypergeometricPFQ

*To*: mathgroup at smc.vnet.net*Subject*: [mg72053] Re: FullSimplify and HypergeometricPFQ*From*: "dimitris" <dimmechan at yahoo.com>*Date*: Sun, 10 Dec 2006 04:49:00 -0500 (EST)*References*: <ele6ht$rlg$1@smc.vnet.net>

CAS like Mathematica have implementated algorithms which usually don't follow human's solution by hand; quite the opposite. The intermediate evaluated expressions may be interesting for someone with deeper knowledge in Computer Science but for the common user of Mathematica. Consider for example the following example of definite integration Integrate[1/Sqrt[1 - x^2], {x, 0, 1}] Pi/2 A trivial solution by hand provided by the substitution x=sinu. We let Mathematica do this for us. Reduce[Sin[u] == 0 && 0 <= u <= Pi/2, u] && Reduce[Sin[u] == 1 && 0 <= u <= Pi/2, u] integrand = Simplify[(1/Sqrt[1 - x^2])*dx /. x -> Sin[u] /. dx -> D[Sin[u], u], 0 <= u <= Pi/2] Integrate[integrand, {u, 0, Pi/2}] u == 0 && u == Pi/2 1 Pi/2 If you want to take a look of the intermediate expressions in the direct evaluation of the integral by Mathematica execute the following command (and be impressed!) Trace[Integrate[1/Sqrt[1 - x^2], {x, 0, 1}], TraceInternal -> True] The output is big and I avoid to display it. But watch that even this quite simple integral involves the calling of "exotic" functions like PolyLog Cases[Trace[ Integrate[1/Sqrt[1-x^2],{x,0,1}],TraceInternal\[Rule]True],_PolyLog,{-3}] {PolyLog[Integrate`ImproperDump`v, Integrate`NLtheoremDump`w], PolyLog[2, 1 + I], PolyLog[3, -I], PolyLog[3, 1 + I], PolyLog[Integrate`ImproperDump`v, Integrate`NLtheoremDump`w], PolyLog[2, 1 + I], PolyLog[3, -I], PolyLog[3, 1 + I], PolyLog[Integrate`ImproperDump`v, Integrate`NLtheoremDump`w], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(1/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(3/4)], PolyLog[2, (-1)^(1/4)]} Look in the implementation notes of Integrate for more details. As regards your particular question: Consider an example from the Help Browser HypergeometricPFQ[{a, b, c}, {1 + a - b, 1 + a - c}, 1] (Pochhammer[1 + a, -b]*Pochhammer[1 + a/2 - c, -b])/(Pochhammer[1 + a/2, -b]*Pochhammer[1 + a - c, -b]) Then FunctionExpand[HypergeometricPFQ[{a, b, c}, {1 + a - b, 1 + a - c}, 1]] (Sqrt[Pi]*Gamma[1 + a - b]*Gamma[1 + a - c]*Gamma[1 + a/2 - b - c])/ (2^a*(Gamma[1/2 + a/2]*Gamma[1 + a/2 - b]*Gamma[1 + a/2 - c]*Gamma[1 + a - b - c])) Use above setting of Trace and be impressed again! Trace[FullSimplify[HypergeometricPFQ[{a, b, c}, {1 + a - b, 1 + a - c}, 1]], TraceInternal -> True] Note that Information["TraceInternal", LongForm -> True] "TraceInternal is an option for Trace and related functions which, if True or False, specifies whether to trace evaluations of \ expressions generated internally by Mathematica. The intermediate Automatic setting traces a selected set of internal \ evaluations including Messages and sets or unsets of visible symbols." Attributes[TraceInternal] = {Protected} Also I suggest you reading the following relevant post http://groups.google.com/group/comp.soft-sys.math.mathematica/browse_thread/thread/5635952c601a11fa/4e336bf5a551dc79?lnk=gst&q=father&rnum=1&hl=en#4e336bf5a551dc79 Best Regards Dimitris guy.verhofstadt at gmail.com wrote: > Hi, > I have a question regarding something that Mathematica can do via the > command FullSimplify. > I use it to prove an identity between HypergeometricPFQ's. However it > would be helpful to me to see how Mathematica proves it. How can I get > access to the intermediate expressions and the transformations applied? > Also, is there a definite list of all the things FullSimplify will try > in Automatic setting? > Thank you very much