Our EXP functions are made in the following way:

  - Any constant $ \in \Bbb  R$  is a EXP
  - $X \in \Bbb  R$ is a EXP
  - $sin( g(x))$, $cos( g(x))$
  - $tan( g(x))$ are EXP, $g(x)$ is a EXP and $g(x) \neq \frac\pi 2 + k\pi, k \in \Bbb Z $
  - $sqrt( g(x))$ is a EXP, $g(x)$ is a EXP and $g(x) \gt 0$
  - $pow( f(x),g(x))$  is a EXP, $g(x),f(x)$ are EXP
  - $exp(g(x))$ is a EXP
  - $ln(f(x))$ is a EXP, $f(x) \gt 0$ is a EXP
  - $f(x)+g(x)$ is a EXP,  $g(x),f(x)$ are EXP
  - $f(x)-g(x)$ is a EXP,  $g(x),f(x)$ are EXP
  - $f(x)*g(x)$ is a EXP,  $g(x),f(x)$ are EXP
  - $f(x)/g(x)$ is a EXP,  $g(x),f(x)$ are EXP and $g(x) \neq 0$
  - $f'(g(x))$ is a EXP and $g(x)$ is a EXP (derivative)

What I want to know, is if there's an algorithm that, given $f(x) \in EXP$ can say:

 - **Yes:** iff there exist a $g(x)$ such that $g'(x) = f(x)$ and $g(x) \in EXP$
 - **No:** otherwise
 - **Always halt**