# 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