# How to find and verify relationships between functions?

MMa gave me a complicated result involving Hypergeometric0F1's. It was much less complicated after I discovered this identity:

Hypergeometric0F1[1, -x^2] = BesselJ[0, 2 x]


1) Is there a way to get MMa to validate relationships between functions, for example if I wasn't sure the identity above was true?

FullSimplify[Hypergeometric0F1[1, -x^2] - BesselJ[0, 2 x]]


does return 0, so that worked for the example, but FullSimplify failing to simplify something to 0 is not a solid proof.

2) Is there a way to tell MMa to convert (for example) all the Hypergeometric functions into whatever Bessel function form it can?

• For your example you can also use FunctionExpand[Hypergeometric0F1[1, -x^2]]. – b.gates.you.know.what Feb 27 '15 at 21:15
• The second question is possibly a duplicate of: (4281) – Mr.Wizard Feb 28 '15 at 18:53

In response to your second question, "Is there a way to tell MMa to convert (for example) all the Hypergeometric functions into whatever Bessel function form it can?", execute

$Post = FunctionExpand[#] &  at the beginning of a Notebook to cause FunctionExpand to be applied to the output of each Cell after it is executed. However, be aware that $Post = FunctionExpand[#] & will do other things that you may not have in mind, such as converting Log[Sqrt[1 - x^2]] to (Log[1 - x] + Log[1 + x])/2. Also, be aware that $Post = FunctionExpand[#] & in one notebook may affect evaluations in other notebooks sharing the same Kernel. You also can use $Post = FullSimplify[#] &


which automatically calls FunctionExpand and does other simplifications besides. In this case even greater wariness may be warranted.

Mr.Wizard kindly pointed out in a Comment that $Post = FunctionExpand has the same effect as $Post = FunctionExpand[#] &. (Thanks!)
If the goal is to replace only Hypergeometric0F1 with simpler expressions when possible without changing other functions, then
$Post = (# /. Hypergeometric0F1[z1_, z2_] :> FunctionExpand[Hypergeometric0F1[z1, z2]]) &  can be used. • Sorry, I did not understand this answer. How does this help? What of should I be wary? – Jerry Guern Feb 28 '15 at 6:53 • @JerryGuern Please see edit to my Answer. – bbgodfrey Feb 28 '15 at 11:49 • There is no need to introduce Function here. Simply $Post = FunctionExpand will do! – Mr.Wizard Feb 28 '15 at 18:47