Transfer Functions Between Group Categories

Since certain group computations are possible or feasible only for particular group representations, it is often useful to transfer a group from one category to another. The functions in this section take a group and return a group isomorphic to it (or isomorphic to some related group) in another category.

The function works quickly on almost all of the groups in the small groups library of groups of order less than 2000, but it can be slow on a few such examples, particularly large p-groups. These might be suitable candidates for effective use of the Accept parameter.

It generally performs well with groups of type GrpMat, provided that a reasonably small degree faithful permutation representation exists. For example, for the group SpinPlus(8,3), it finds the optimal representation of degree 4320 reasonably quickly (about 20 seconds), whereas for SpinMinus(8,3), it takes longer (about 180 seconds) to find the representation of degree 183680 and prove that it has minimal degree.

As another example, with input the representation of the non-split extension 25 .L5(2) of L5(2) by its natural module as a subgroup of (GL)(69, 2) (from the ATLAS database in Magma ), the minimal degree function takes about 10 seconds to find the optimal faithful permutation representation of degree 3968, which is less than the degree of the permutation representations in the ATLAS database.

The new function cannot be used directly on finite groups of type GrpFP, but the user can try using coset enumeration with CosetAction or CosetImage to find an isomorphic group of type GrpPerm, and then use \ MinimalDegreePermutationRepresentation on that. For example, with the group G = < x, y | x2, y3, (xy)7, [x, y]8 >, which has order 10752, we could first use CosetAction to compute a permutation representation of degree 1344 on the cosets of the subgroup < [x, y] >, and then use the resulting image as input to MinimalDegreePermutationRepresentation to find the minimal degree representation, which is of degree 28.

pQuotient(F, p, c: parameters) : GrpFP, RngIntElt, RngIntElt -> GrpPC, Map
Given a group F in category FINITELY PRESENTED GROUPS, a prime p and a positive integer c, construct the largest p-quotient G of F having lower exponent-p class at most c (or 127, if c is given as 0) as group in the category GrpPC. The function also returns the homomorphism from F to G.

The parameters are:

     Exponent: RngIntElt                 Default: 0
If Exponent := m, enforce the exponent law, xm = 1, on the group.
     Metabelian: BoolElt                 Default: false
If Metabelian := true, then a consistent pcp is constructed for the largest metabelian p-quotient of F having lower exponent-p class at most c.
     Print: RngIntElt                    Default: 0
This parameter controls the volume of printing. By default its value is that returned by GetVerbose("pQuotient"), which is 0 unless it has been changed through use of SetVerbose. The effect is the following:

Print := 0 : No output.

Print := 1 : Report order of p-quotient at each class.

Print := 2 : Report statistics and redundancy information about tails, consistency, collection of relations and exponent enforcement components of calculation.

Print := 3 : Report in detail on the construction of each class.

Note that the presentation displayed is a power-commutator presentation (since this is the version stored by the p-quotient).

     Workspace: RngIntElt                Default: 5000000
The amount of space requested for the p-quotient computation.
CosetAction(G, H) : Grp, Grp -> Hom(Grp), GrpPerm, Grp
RegularRepresentation(G, H) : Grp, Grp -> Hom(Grp), GrpPerm, Grp
Given a subgroup H of the group G, construct the permutation representation of G given by the action of G on the set of (right) cosets of H in G. The function returns:
(a)
The natural homomorphism f: G -> L;
(b)
The induced permutation group L (the image of f);
(c)
(if possible) The kernel K of the action (a subgroup of G).

If G is a finitely presented group, then K may be returned undefined.

The permutation representation is obtained by using the Todd-Coxeter procedure to construct the coset table for H in G. Note that G may be an infinite group: it is only necessary that the index of H in G be finite.

CosetImage(G, H) : Grp, Grp -> GrpPerm
Given a subgroup H of the group G, construct the image of G given by its action on the (right) coset space of H in G, returning it as a permutation group. (This is also the second return value of CosetAction(G, H).)
CosetKernel(G, H) : Grp, Grp -> Grp
Given a subgroup H of the group G, construct the kernel of G in its action on the (right) coset space of H in G. (This is also the third return value of CosetAction(G, H).) This function may fail if G is a finitely presented group; it is only available when the index of H in G is very small.
MinimalDegreePermutationRepresentation(G: parameters) : Grp -> Hom(Grp), GrpPerm
Given a finite group G in category GrpPerm, GrpMat, or GrpPC, construct a faithful permutation representation φ of G of smallest possible degree. The homomorphism φ and its image P are returned.

Warning: This function can take a very long time on difficult examples.

The parameters are:

     Print: RngIntElt                    Default: 0
This controls the level of diagnostic printing, the default being none.
     Accept: RngIntElt                   Default: 0
If Accept is set to an integer n > 0, then the function will stop if it finds a faithful permutation representation of degree at most n, and return that. Of course this means that the representation returned is not guaranteed to have minimal degree.
     UseAutGrp: BoolElt                  Default: true
When UsAutGrp is true, the function might compute the automorphism group of G to help reduce its search space.

Example Grp_MinimalDegreePermutationRepresentation (H63E12)

> G := OmegaPlus(8,3);
> phi, P := MinimalDegreePermutationRepresentation(G);
> P;
Permutation group P acting on a set of cardinality 2160
Order = 2^13 * 3^12 * 5^2 * 7 * 13
GPCGroup(G) : Grp -> GrpGPC, Hom(Grp)
Given a soluble group G, in the category GrpPerm, GrpMat, GrpAb or GrpPC, construct a polycyclic group P isomorphic to G. Currently G must be finite, if it is in the category GrpMat. In addition to returning P, the function returns an isomorphism φ: G -> P.
PCGroup(G) : Grp -> GrpPC, Hom(Grp)
Given a finite soluble group G, in the category GrpPerm, GrpMat, GrpAb or GrpGPC, construct a group S given by a power-conjugate presentation, which is isomorphic to G. In addition to returning S, the function returns an isomorphism φ: G -> S.
FPGroup(G: parameters) : GrpPerm :-> GrpFP, Hom(Grp)
    StrongGenerators: BoolElt           Default: false
    Random: BoolElt                     Default: true
    Max: RngIntElt                      Default: 100
    Run: RngIntElt                      Default: 20
Given a group G, in the category GrpPerm, GrpMat, GrpGPC or GrpPC, construct a finitely presented group F isomorphic to G, by presenting the group on its given generators. For groups in the category GrpPerm and GrpMat, the Todd-Coxeter Schreier algorithm is used to construct the presentation and a choice of a presentation on the given generators or on the strong generators is available. In addition to returning F, the function returns an isomorphism φ: F -> G, such that φ(F.i)=G.i for all i.

If the parameter StrongGenerators is set to true ( GrpPerm and GrpMat only), the presentation will be constructed on the strong generators of G instead of the given generators. If strong generators are not already known for G, they will be constructed; in this case, the other parameters are also meaningful. The parameter Random with its associated parameters Max and Run may be used to apply the Random Schreier algorithm to construct a probable BSGS before commencing the construction of the presentation.

Example Grp_CosetAction (H63E13)

We construct a finitely presented group G and a subgroup H, then find the permutation representation of G given by its action on the cosets of H. Since the induced permutation group L has the same order as G, the representation is faithful, and the homomorphism f: G -> L is an isomorphism.
> G<a, b> := Group< a, b | a^3, b^3, (b * a)^4,
>     ((b^-1)^a * b^-1)^2 * b^a * b >;
> Order(G);
168
> H := sub< G | a^2 * b^2, (a * b)^2 >;
> Index(G, H);
7
> f, L := CosetAction(G, H);
> f;
Mapping from: GrpFP: G to GrpPerm: L
> L;
Permutation group L acting on a set of cardinality 7
    (1, 2, 3)(4, 7, 5)
    (1, 3, 4)(2, 5, 6)
> Order(L);
168

Example Grp_CosetAction-2 (H63E14)

A permutation representation of Sp(2, 4).
> M := SymplecticGroup(2, 4);
> #M;
60
> Ms := sub< M | M.1 * M.2 >;
> Index(M, Ms);
12
> PG := CosetImage(M, Ms);
> PG;
Permutation group PG acting on a set of cardinality 12
    (1, 2, 4)(3, 5, 7)(6, 8, 10)(9, 11, 12)
    (1, 3, 2)(4, 6, 8)(5, 7, 9)(10, 12, 11)
> #PG;
60

Example Grp_FPGroup (H63E15)

A finitely presented group isomorphic to PSU(3, 3):
> G := PSU(3, 3);
> F<a, b>, phi := FPGroup(G);
> F;
Finitely presented group F on 2 generators
Relations
    a^8 = Id(F)
    b^8 = Id(F)
    (b * a^-1 * b)^3 = Id(F)
    b * a^-1 * b^-1 * a^-1 * b^-1 * a^-1 * b * a^-1 * b * a^-1 = Id(F)
    b^-1 * a^-2 * b^-1 * a^-2 * b^-1 * a^-1 * b^-2 * a^-1 = Id(F)
> phi(a) eq G.1 and phi(b) eq G.2;
true
V2.28, 13 July 2023