General lists of techniques to prove whether a set is a generator of a matrix group It seems like a rather common problem in group theory, at least in undergraduate maths, to check whether a set is a generator of a group. The question is usually as follow:
Given a group $G$, and a set $X\subset G$. Is $\langle X\rangle=G$?
For simplicity, and yet is still sufficiently general, we will assume that $G$ is a finitely generated matrix group, and $X$ is finite. I am asking for ideas on how to prove that $\langle X\rangle=G$, or that $\langle X\rangle\not=G$. Please, in your answer, state the following:


*

*What general information about $G$ is needed to even attempt the method? (for example, do you need to know the order of the group)

*What one need to check? What condition, when satisfied, will prove one of the assertion?

*Under which conditions would the techniques be applicable? (for example, do the group have to contains only permutation matrices)
Please be specific. Don't just say "use some invariant" or something, you need to be specific on what invariant that is. Also, feel free to add in techniques even if it is only a specific cases of a more general techniques, as usually specific version of the techniques might be easier to apply, and sometimes to even see that one is a specific version of another is a feast in itself.
Also, as to not making this question too general, please restrict to techniques accessible to 2nd years graduate student. I would prefer techniques that work for undergraduate, but people might have different ideas on what is accessible to undergraduate, so that should give some buffer zone.
Thank you. Let's get this started!
 A: To start with the obvious, to verify that $\langle X \rangle = G$, take a finite generating set $Y$ of $G$, and systematically try to prove that every element of $Y$ is a product of the elements of $X$ and their inverses. That's naive, but it is worth trying before you do anything else, especially if you have a computer to do the matrix multiplications.
It makes a big difference whether $G$ is finite. If $G$ is infinite, the problem is undecidable in general.
For finite $G$ there are computer algorithms that do this, which are used by systems like GAP. The default methods are based on the concepts of base and strong generating sets (BSGS), which were originally used by Sims in the 1970s for permutation groups. You would proceed by finding a BSGS for $\langle X \rangle$ (which would also tell you the order of that group), after which it is straightforward to test whether arbitrary matrices are in $\langle X \rangle$, so you can do that for the elements of $Y$.
There are more advanced methods for larger finite matrix groups that are based on a classification by Aschbacher of types of subgroups of ${\rm GL}(n,q)$ (reducible, imprimitive, etc). You could google "matrix group recognition project" for more information.
For infinite $G$, there is the Tits alternative, according to which $\langle X \rangle$ is either virtually solvable or has a nonabelian free subgroup. In the first case, it might still be possible to solve the problem, but no general techniques are known for the second case, you you would have to revert to the naive method.
