how to correctly check that integration evaluated?
What is the correct way in sage to check that the result of integration has evaluated? I.e. the result has no unevaluated integrate remaining in it?
The way I am checking fail in some cases. For example
sage: var('x')
sage: anti=integrate((4*x - sqrt(-x^2 + 1))/(sqrt(-x^2 + 1) + 5), x)
sage: anti
-x - 4*sqrt(-x^2 + 1) + 5*integrate(1/(sqrt(x + 1)*sqrt(-x + 1) + 5), x) + 20*log(sqrt(-x^2 + 1) + 5)
The above did not fully evaluate, since there is an integrate inside the result returned. But when I do
sage: isinstance(anti.operator(), sage.symbolic.integration.integral.IndefiniteIntegral)
False
I was expecting to get True. It failed the check, because integrate was not the first operator. This one works
sage: anti=integrate(1/(sqrt(x + 1)*sqrt(-x + 1) + 5), x)
sage: isinstance(anti.operator(), sage.symbolic.integration.integral.IndefiniteIntegral)
True
So what is the correct way to tell sage to scan the whole expression and if there is an instance of integrate any where, to return True
Thank you
--Nasser