I have a question about a "standard" variant of the Reidemeister-Schreier algorithm used by topologists when manipulating manifolds they either know or suspect are fibre-bundles over $S^1$.
Say you have a manifold $M$, and you have computed a finite presentation for $\pi_1 M$, and you also have an onto homomorphism $\pi_1 M \to \mathbb Z$. We want to determine if the kernel is a finitely-presented group, and if it is, to write $\pi_1 M$ explicitly as a semi-direct product of this group with $\mathbb Z$.
One way to attempt this would be to lift a CW-structure for $M$ up to the corresponding covering space, then collapse a maximal tree in the $1$-skeleton. This gives an infinite presentation of the fundamental group of the homotopy fibre of the corresponding map $M \to S^1$. At this point (in practice) people just follow their noses and observe that this infinite presentation reduces to a finite sub-presentation. For example, you could modify your presentation of $\pi_1 M$ so that precisely one of your generators is mapped to a non-trivial element of $\mathbb Z$. Your maximal tree is then just concatenations of the lift of this non-trivial element's 1-cell. Then the game becomes looking at the lift of the 2-cells, and hoping you can find such 2-cells that allow you to do 1-cell cancelling moves. To do this quite literally you need 2-cells whose lift contain unique instances of "highest weight" 1-cells (similarly unique lowest weight). This would allow you to mimic (quite literally) things like Buchburger's algorithm for finding Groebner basis, to inductively remove all but finitely-many 1-cells and get to a finite presentation. Perhaps some of your 1-cells can't be eliminated because your relators do not have them as unique highest/lowest weight instances, but then you could perhaps modify your relators to find new ones that do. So one could make this into a fairly elaborate game.
Are there known more sophisticated algorithms out there, or do you know if people tend to find the above sufficient for most circumstances? Perhaps people know the above is essentially the best one can do? Any references would be helpful.