I was slightly surprised by the following result:
PossibleZeroQ[Gamma[a + b]/Gamma[a] - Pochhammer[a, b]]
(* Out: False *)
versus
PossibleZeroQ[Gamma[a + b]/Gamma[a] - Pochhammer[a, b] // FunctionExpand]
(* Out: True *)
I had the wrong impression (maybe from the name) that PossibleZeroQ would be more likely to err by giving false positives than false negatives. I would think that numerical tests would indeed confirm that these expressions are the same. I guess the problem comes from the poles/zero's of the Gamma function. Or should I really be careful with FunctionExpand and does it really give possibly false results?
P.S. I came across this in a more practical situation where the equality of two expressions was not easy to see by hand, but simplified it to this core oddity.
Gamma[a + b]/Gamma[a] - Pochhammer[a, b] // FunctionExpandevaluates to0before being passed toPossibleZeroQ. So we can probably infer thatPossibleZeroQdoes not useFunctionExpand(orFullSimplify, which also gives0but is mentioned in the docs as being more rigorous). -- It would be nice to get an answer to howPossibleZeroQworks, but it might be that its internal workings are known only to WRI. – Michael E2 Jun 14 '17 at 14:10#[Gamma[a + b]/Gamma[a] - Pochhammer[a, b]] & /@ {FullSimplify, FunctionExpand}evaluates to{0, 0}. Note that thePossible Issuessection of the documentation forFullSimplifystates "Some of the transformations used by FullSimplify are only generically correct". Similarly, thePossible Issuessection of the documentation forFunctionExpandstates "Some transformations used by FunctionExpand are only generically valid". In this case the transformations are not valid whenais a nonpositive integer. – Bob Hanlon Jun 14 '17 at 15:05FindInstance--it doesn't seem like it should be that hard forFindInstanceto find values at which the two are not the same. E.g.,{Gamma[a + b]/Gamma[a], Pochhammer[a, b]} /. {a -> -2, b -> -3} => {Indeterminate,-(1/60)}. Yet even if I tell it to just search the integers (FindInstance[Gamma[a + b]/Gamma[a] != Pochhammer[a, b], {a, b}, Integers]), it comes up empty: "The methods available toFindInstanceare insufficient to find the requested instances or prove they do not exist." [continued....] – theorist Aug 07 '18 at 03:48FunctionExpand(which makes the two expressions the same:FunctionExpand[Pochhammer[a, b]] => Gamma[a + b]/Gamma[a]) was also operating within the uses of FindInstance in the previous comment, it could explain those results as well. – theorist Aug 07 '18 at 04:43