Expressing indefinite integrals in terms of a predefined set of functions. It is well known that some integrals of elementary functions cannot be expressed as elementary functions.
I was wondering if it was possible to extend the set of elementary operators by some additional set, so that all integrals of elementary functions can be expressed in terms of the new enlarged set. Of course the additional members would have to be defined as certain integrals or more generally as certain solutions to given differential equations.
It is interesting if such an extension set exists which is finite. If not finite, does it at least have some structure?
 A: The closure under integration of the set of the elementary functions is the set of the Liouvillian functions.
[Wikipedia: Nonelementary integral]
And here different sets of functions are possible based on other differential fields. The definition of this classes of functions is given e.g. in section 1 of Davenport, J. H.: What Might "Understand a Function" Mean. In: Kauers, M.; Kerber, M., Miner, R.;  Windsteiger, W.: Towards Mechanized Mathematical Assistants. Springer, Berlin/Heidelberg, 2007, page 55-65.
There is an uncountably infinite number of elementary functions non-integrable in the elementary functions. See my answer here.
A: You actually only need to add one function to the set, but it's a very weird function. Define a function $f(R, x)$ such that $R$ is an integer encoding of any formula you like involving elementary functions, integrals, $x$ as a symbol, and $f$ itself (it is trivial to encode most parts of an elementary function, and any real number constants in the function's formula can then be encoded as an index, and each of the real number constants' digits can then be alternated in fractional part of $R$; for instance, if you need to encode $a = a_1a_2a_3\ldots$ and $b = b_1b_2b_3\ldots$, the part of $R$ after the decimal point will look like $.a_1b_1a_2b_2a_3b_3\ldots$, and $a$ can be encoded as the index 1 and $b$ as the index 2), and $f(R, x)$ is defined as the result of evaluating the formula represented by $R$ on the input $x$.
This can also be done with two one-argument functions $f_1$ and $\textrm{spaceout}$, where $f_1$ behaves like $f$ except it takes its input with the digits alternating between the representations of $R$ and $X$, and the other, $\textrm{spaceout}(x)$, spaces the digits, so that for instance $13.12$ becomes $1030.102$; then, you can simply do the conversion as if you were using the two-argument form, and replace each $f(R, x)$ with $f_1(\textrm{spaceout}(R) + \textrm{spaceout}(x)/10)$
