Alternate between applying the integral to each element and closing the set with respect to the elementary operations. Let's call the smallest number of such compound iterations necessary to construct a function its "rank". So exp has rank 0, but erf, erf(exp), and erf + exp all have rank 1.
The integral of a function with rank R may have rank R or R+1. The derivative of a function with rank R may have rank R or R-1, and the rank of the derivative of a function with rank 0 is always 0. If the derivative of a function with rank R has rank R-1, let's call that function "primitive" to distinguish between the two phases of the iteration. A non-primitive function can by definition be written in terms of primitive functions of the same rank (and possibly other functions of smaller rank). For example, erf is primitive, but erf(erf) is not, although they are of the same rank 1.
Suppose R is the largest rank. Then the integral f of any rank-R function f' is a non-primitive rank-R function. It is possible to express f in terms of functions that have a rank smaller than R or are primitive and have rank equal to R, and at least one function of the latter type is required. The sum of any two primitive functions remains primitive, so in the general case we have such a function appearing in a non-additive expression. For the same reason we can find a case where it is not the root of the expression tree. Now we can write f as a composition of a product:
f = g(h * j)
where j is a primitive function of rank R and g and h are some other functions.
The derivatives of f are:
f' = (h * j)' * g'(h * j)
f'' = (h * j)'' * g'(h * j) + (h * j)' * g''(h * j)
f'' contains the same terms that define f' and is therefore also of rank R, so f' is not primitive. But there must be at least one such primitive function f', so the hypothesis of a largest rank is contradicted.