I am trying to prove that the word problem is solvable for residually finite, finitely presented groups. It is known that one runs two algorithms in parallel. One algorithm stops when the word $w$ is trivial and the other when it is not. I am trying to reconstuct the second algorithm. Literature says that the algorithm works as follows:
- Enumerate all finite index normal subgroups $N$ / all homomorphism to finite groups $\phi:G\to Q$;
- For every normal subgroup, check whether $w$ lies in $N$, or check whether $w$ becomes trivial under the homomorphism $\phi$;
- If $w$ does not lie in $N$ or $\phi(w)\neq 1$ then $w$ is not trivial in $G$. (End the algorithm.)
My question is as follows: How does one enumerate all the normal subgroups or all homomorphism to all finite groups? So far I succeeded in doing these things:
- I can algorithmically enumerate all subgroups of index $n$ as $\text{Stab}_G(1)$ for homomorphism $G\to S_n$, where $G$ transitively on $\{1,2,\dots n\}$.
How does one decide whether the subgroup is normal in $G$? It would suffice to find generators of $\text{Stab}_G(1)$, but how does one do so? Or is there another method?
It is quite important for my work that the enumeration goes from small to larger indices.