Given a congruence subgroup $\Gamma<SL_2(\mathbb{Z})$, and a weight $k$, we have the space $M_k(\Gamma)$ of modular forms for $\Gamma$ of weight $k$. In every example I've seen, one is able to produce a basis of this space via known constructions, pushing/pulling from other modular curves, Eisenstein series, taking products, etc.
My question is whether there is a precise theorem stating that one is guaranteed to find generators of $M_k(\Gamma)$ via these processes (or other, explicit methods), or whether there may be forms which can't be found in this way?
If there is a cleaner statement, I'm happy to restrict to $\Gamma_0(N)$, $\Gamma(N)$ and $\Gamma_1(N)$ rather than an arbitrary congruence subgroup. Any references would also be much appreciated.
The method of modular symbols (described in William Stein's book) typically works very well in practice.
Another technique that one can use is the Eichler-Selberg trace formula (and variants for generic level), which can be used to explicitly compute a single "trace form" of given weight, level, and nebentypus. Applying various Hecke operators to the trace form will give a spanning basis for the space of modular forms, which can then be diagonalized by the Hecke algebra (but not, interestingly just using the Hecke operators) to get an eigenbasis.
More generally, when we computed classical modular forms for the LMDFB, we used techniques described in our paper Computing classical modular forms. This paper also summarizes various useful theorems in both the modular symbol approach and the trace formula approach.