Let H be a subgroup of finite index in the finitely presented group G. It frequently happens that it is desirable to construct a set of defining relations for H from those of G. In principle, such a presentation can be obtained either on a set of Schreier generators for H using the Reidemeister-Schreier rewriting technique [W. Magnus, A. Karrass and D. Solitar, Combinatorial Group Theory, Second Revised Edition, Dover, 1976.] or on the given generators of H [G. Arrell and E.F. Robertson, A modified Todd-Coxeter algorithm, in: M.D. Atkinson (ed) Computational Group Theory, Academic Press, 1984, pp. 27--32; G. Havas, P.E. Kenne, J.S. Richardson and E.F. Robertson, A Tietze transformation program, in: M.D. Atkinson (ed) Computational Group Theory, Academic Press, 1984, pp. 69--73 (and the references therein)].
If the user wishes only to determine the structure of the derived
quotient group of H, then the function AbelianQuotientInvariants,
described above, should be used. In this
case there is no need to first construct a presentation for H using the
Rewrite function described below, since AbelianQuotientInvariants
employs a special form of the Reidemeister-Schreier rewriting process which
abelianizes each relator as soon as it is constructed. Thus
AbelianQuotientInvariants may be applied to subgroups H of much larger
index in G than may be the function Rewrite.
Rewriting
Rewrite(G, H : parameters) : GrpFP, GrpFP -> GrpFP
Given a finitely presented group G and a subgroup H having finite index in G, construct a presentation for H by rewriting the presentation given for G.
Simplify: BoolElt Default: trueIf this Boolean-valued parameter is given the value true, then the resulting presentation for H will be simplified (default). The function Rewrite returns a finitely presented group that is isomorphic to H. If simplification is requested (Simplify := true) then the simplification procedures are invoked (see next section). These procedures perform a sequence of Tietze transformations which typically result in a considerable simplification of the presentation produced by the rewriting process. Alternatively, the user can set Simplify := false and then perform the simplification directly if desired. (See next section). If simplification is not requested as part of Rewrite, a small amount of simplification is performed on the presentation before it is returned.
Iterations: RngIntElt Default: 10000Perform at most n iterations (default: 10000) of the main elimination loop.
EliminationLimit: RngIntElt Default: 100Eliminate at most n generators (default: 100) in each iteration of the main elimination loop.
LengthLimit: RngIntElt Default: InfinityDo not perform eliminations that make the total length of the current relations become larger than n (default: no limit).
> G<x, y> := Group< x, y | x^2, y^3, (x*y)^12, (x*y)^6*(x*y^-1)^6 >; > G;Finitely presented group G on 2 generators Relations x^2 = Id(G) y^3 = Id(G) (x * y)^12 = Id(G) x * y * x * y * x * y * x * y * x * y * x * y * x * y^-1 * x * y^-1 * x * y^-1 * x * y^-1 * x * y^-1 * x * y^-1 = Id(G)
> K := sub< G | x, y*x*y^-1, y*x*y^-1*x*y^-1*x*y >; > K; Finitely presented group K on 3 generators Generators as words in group G K.1 = x K.2 = y * x * y^-1 K.3 = y * x * y^-1 * x * y^-1 * x * y > Index(G, K); 3 > T := Rewrite(G, K); > T; Finitely presented group T on 3 generators Generators as words in group G T.1 = x T.2 = y * x * y^-1 T.3 = y^3 Relations T.1^2 = Id(T) T.2^2 = Id(T) T.3^2 = Id(T) (T.3 * T.2 * T.1 * T.3 * T.2)^2 = Id(T) (T.1 * T.3 * T.2 * T.1 * T.3)^2 = Id(T) (T.1 * T.2 * T.1 * T.3 * T.2)^2 = Id(T) (T.3 * T.2 * T.3 * T.1 * T.2)^2 = Id(T) > AbelianQuotientInvariants(T); [ 2, 2, 2 ]
> Q2 := pQuotient(T, 2, 30); > FactoredOrder(Q2); [ <2, 62> ]