The LMG (large matrix group) functions are designed to provide a user-friendly interface to the CompositionTree package, and thereby enable the user to carry out a limited range of structural calculations in a matrix group that is too large for the use of BSGS methods.
By default, these methods have a small probability of failing or even of returning incorrect results. For most examples, at the cost of some extra time, the user can ensure that the computed results are verified as correct by calling LMGInitialise with the Verify flag on the group G before calling any of the other functions. (Once CompositionTree or any of the LMG functions has been called on a group, further calls of LMGInitialise will have no effect.)
Let G be a matrix group over a finite field. On the first call of any of the LMG functions on G, Magma decides whether it will use BSGS or Composition Tree based methods on G. It does this by carrying out a quick calculation to decide whether any of the basic orbit lengths would be larger than a constant LMGSchreierBound, which is set to 40000 by default, but can be changed by the user. If all basic orbit lengths are at most LMGSchreierBound, then BSGS methods are used on G, and the LMG functions are executed using the corresponding standard Magma functions. Otherwise, Composition Tree methods are used, starting with a call of CompositionTree(G).
Composition Tree methods are also used if the user calls CompositionTree on the group before using th LMG functions, or if the user calls LMGInitialize with the Al option set to "CompositionTree".
SetVerbose("LMG", n) with n=1, 2 or 3 will provide increasing levels of information on the progress of the functions.
The remaining functions in this section will work only if a permutation representation can be computed for G/L, where L is the soluble radical of G. Apart from LMGRadicalQuotient itself, they all operate by solving the problem first in G/L and then lifting the solution through elementary abelian layers of L. Results are returned using the same formats as for other types of finite groups.
Set the constant LMGSchreierBound to n.
Al: MonStgElt Default: ""
Verify: BoolElt Default: false
RandomSchreierBound: RngIntElt Default: LMGSchreierBound
It is not normally necessary to call this function but, by setting the optional parameters, it can be used to initialise G for LMG computations with a different value of LMGSchreierBound or, by setting Al to be "CompositionTree" (or "CT" or "RandomSchreier" (or "RS"), to force the use of either Composition Tree or BSGS methods on G.If the Verify flag is set, then an attempt will be made to verify the correctness of the computed BSGS or Composition Tree. This will make the initialisation process slower, and for some groups the increased memory requirements will make verification impractical. In that case, a warning message is displayed.
Given a matrix group G defined over a finite field, this intrinsic returns the order of G.
Given a matrix group G defined over a finite field, this intrinsic returns the factored order of G.
Given a matrix group G defined over a finite field Fq, and an element x of the generic overgroup GL(n, q) of G; if x ∈G then the intrinsic returns true and the corresponding element of WordGroup(G); and false otherwise.
Given a matrix group G defined over a finite field Fq, and a subgroup H of the generic overgroup GL(n, q) of G, the intrinsic returns true if H ≤G and false otherwise.
Given a matrix groups G and H belonging to a common overgroup GL(n, q), the intrinsic returns true if G and H are equal and false otherwise.
Given a matrix group G defined over a finite field, and a subgroup H of G, the intrinsic returns the index of H in G.
Given a matrix group G defined over a finite field, and a subgroup H of G, the intrinsic returns true if H is normal in G and false otherwise.
Given a matrix group G defined over a finite field, and a subgroup H of G, the intrinsic returns the normal closure of H in G.
Given a matrix group G defined over a finite field, the intrinsic returns the derived subgroup of G.
Let g and H be subgroups of GL(n, q). This intrinsic returns the commutator subgroup of G and H as a subgroup of GL(n, q).
Given a matrix group G defined over a finite field, the intrinsic returns true if G is soluble and false otherwise.
Given a matrix group G defined over a finite field, the intrinsic returns true if G is nilpotent and false otherwise.
Given a matrix group G defined over a finite field, the intrinsic returns a composition series for G.
Given a matrix group G defined over a finite field, the intrinsic returns the composition factors of G. The Handbook entry for CompositionFactors(G) of a finite group gives a detailed description of how to interpret the returned sequence.
Given a matrix group G defined over a finite field, the intrinsic returns a chief series for G.
Given a matrix group G defined over a finite field, the intrinsic returns the chief factors G. The Handbook entry for ChiefFactors(G) of a finite group gives a detailed description of how to interpret the returned sequence.
Given a matrix group G defined over a finite field, the intrinsic returns the unipotent radical U of the matrix group G. A group P of type GrpPC and an isomorphism U -> P are also returned.
Given a matrix group G defined over a finite field, the intrinsic returns the soluble radical S of G. A group P of type GrpPC and an isomorphism S -> P are also returned.
Given a matrix group G defined over a finite field, the intrinsic returns the Fitting subgroup S of G. A group P of type GrpPC and an isomorphism S -> P are also returned.
Given a matrix group G defined over a finite field, the intrinsic returns the centre of G.
Given a matrix group G defined over a finite field, the intrinsic returns a Sylow p-subgroup of G.
Given a matrix group G defined over a finite field, the intrinsic returns the inverse image in G of the socle of G/S, where S is the soluble radical of G.
Given a matrix group G defined over a finite field, the intrinsic returns the simple direct factors of LMGSocleStar(G)/LMGSolubleRadical(G), which may be represented projectively for large classical groups. A list of maps from the factors to G is also returned.
Given a matrix group G defined over a finite field, the intrinsic returns the map φ representing the conjugation action of G on the simple direct factors of LMGSocleStar(G)/LMGSolubleRadical(G). The image and kernel of φ are also returned.
Given a matrix group G defined over a finite field, this intrinsic returns three values. The first is the kernel of the conjugation action of G on the simple direct factors of LMGSocleStar(G)/LMGSolubleRadical(G). A group P of type GrpPC isomorphic to LMGSocleStarActionKernel(G)/LMGSocleStar(G) and the epimorphism G -> P are also returned.
Given a matrix group G defined over a finite field, the intrinsic returns the quotient group G/LMGSocleStar(G) represented as a permutation group, with associated epimorphism and kernel.
We apply the LMG functions to a maximal subgroup of SL(12, 5).
> SetVerbose("LMG", 1); > C := ClassicalMaximals("L", 12, 5); > G := C[4]; > LMGFactoredOrder(G); RandomSchreierBound is 40000 Using CompositionTree on this group Composition tree computed Composition series has length 40 Order of group is: 27845944957511377275508129969239234924316406250000000000000\ 0000000000000000000 [ <2, 32>, <3, 7>, <5, 66>, <7, 1>, <11, 1>, <13, 3>, <31, 3>, <71, 1>, <313, 1>, <19531, 1> ] > LMGChiefFactors(G); Classifying composition factors Defined PCGroup of solvable radical Computed PCGroup of SocleKernel/SocleStar G | Cyclic(2) * | Cyclic(2) * | A(3, 5) = L(4, 5) * | A(7, 5) = L(8, 5) * | Cyclic(2) * | Cyclic(2) * | Cyclic(2) * | Cyclic(2) * | Cyclic(5) (32 copies) 1 > D := LMGDerivedGroup(G); RandomSchreierBound is 40000 Using CompositionTree on this group Composition tree computed Composition series has length 38 Order of group is: 69614862393778443188770324923098087310791015625000000000000\ 000000000000000000 > LMGIndex(G, D); 4 > SetVerbose("LMG", 0); > LMGEqual( LMGDerivedGroup(D), D ); true > S := LMGSolubleRadical(G); > LMGFactoredOrder(S); [ <2, 4>, <5, 32> ] > LMGIsSoluble(G); false > LMGIsSoluble(S); true > LMGIsNilpotent(S); false > #LMGCentre(G); 4 > #LMGCentre(S); 4We carelessly used the standard Magma Order function in the above two commands, but it did not matter, because it was small. We will be more careful next time!
> F := LMGFittingSubgroup(G); > LMGFactoredOrder( LMGCentre(F) ); [ <2, 2>, <5, 32> ] > P := LMGSylow(G, 5); > LMGFactoredOrder(P); [ <5, 66> ] > LMGEqual( D, LMGNormalClosure(G,P) ); true > facs, maps := LMGSocleStarFactors(G); > #facs; 2 > LMGChiefFactors(facs[1]); G | A(7, 5) = L(8, 5) * | Cyclic(2) * | Cyclic(2) 1Note that, for large classical groups, the socle-star factors are represented projectively.
> I := sub< Generic(G) | [ facs[2].i @ maps[2] : i in [1..Ngens(facs[2])] ] >; > LMGChiefFactors( LMGNormalClosure(G, I) ); G | A(3, 5) = L(4, 5) * | Cyclic(2) * | Cyclic(2) * | Cyclic(2) * | Cyclic(2) * | Cyclic(5) (4 copies) * | Cyclic(5) (4 copies) * | Cyclic(5) (4 copies) * | Cyclic(5) (4 copies) * | Cyclic(5) (4 copies) * | Cyclic(5) (4 copies) * | Cyclic(5) (4 copies) * | Cyclic(5) (4 copies) 1
Given a matrix group G defined over a finite field, the intrinsic returns a permutation group P isomorphic to G/L, where L is the soluble radical of G. An epimorphism G to P and its kernel L are also returned.Of course, this will only work if G/L has such a representation of sufficiently small degree. This function is called implicitly as a first step in all of the remaining functions in this section.
Given a matrix group G defined over a finite field, the intrinsic returns the centraliser in the matrix group G of g ∈G.
Given a matrix group G defined over a finite field, the intrinsic returns true if the elements g, h in G are conjugate. If so, a conjugating element will also be returned.
Given a matrix group G defined over a finite field, the intrinsic returns the conjugacy classes of G.
Given a matrix group G defined over a finite field, and a subgroup H of G, the intrinsic returns the normaliser of H in G.
Given a matrix group G defined over a finite field, and subgroups H and K of G, the intrinsic returns true if the subgroups H and K are conjugate in G. If so, a conjugating element will also be returned.
Given a matrix group G defined over a finite field, and subgroups H and K of G, the intrinsic returns their intersection.
Given a matrix group G defined over a finite field, the intrinsic returns a list of subgroup records defining representatives of the conjugacy classes of maximal subgroups of G.
Given a matrix group G defined over a finite field, the intrinsic returns a list of subgroup records defining the normal subgroups of G.
Given a matrix group G defined over a finite field, the intrinsic returns a list of representatives of the conjugacy classes of subgroups of index at most n in G.
ker: BoolElt Default: true
Given a subgroup H of a matrix group G defined over a finite field, return the homomorphism f:G to P defining the action of G by multiplication on the right cosets of H in G. The image P (a permutation group) and the kernel of f are also returned.If the optional parameter ker is set to false then the kernel of f is not computed.
A right transversal of H in G, in which the ordering corresponds to the order on the points permuted by P, is computed at the same time, and this can be accessed by calling LMGRightTransversal(G,H : ca:=f).
Given a subgroup H of a matrix group G defined over a finite field, return the image P of the homomorphism f:G to P defining the action of G by multiplication on the right cosets of H in G.
The map f should be the result of a call of LMGCosetAction on some subgroup of the matrix group G. An element of g ∈G for which 1f(g) = i is returned.
ca: Map Default:
Given a subgroup H of a matrix group G defined over a finite field, return a right transversal of H in G. The optional parameter ca should be the map returned by LMGCosetAction(G,H), and if this option is used then the elements in the transversal will be ordered in the same way as the points permuted by the image of ca.
Decide whether matrix group G defined over a finite field is primitive.
Compute the character table of the matrix group G, using LMG functions for the calculations within the group. The overall method is as for the standard CharacterTable command.
We apply the LMG classes and character table functions to the Dempwolff Group. We will use LMGInitialize to force use of the composition tree methods.
> G := MatrixGroup(ATLASGroup("25L52")); > G:Minimal; MatrixGroup(69, GF(2)) of order 2^15 * 3^2 * 5 * 7 * 31 > LMGInitialize(G:Al := "CT"); > LMGChiefFactors(G); G | A(4, 2) = L(5, 2) * | Cyclic(2) (5 copies) 1 > time cl := LMGClasses(G); #Warning: we will need to find a perm rep of the radical quotient! #Found perm rep of the radical quotient of degree 31 Time: 0.750 > #cl; 41 > time X := LMGCharacterTable(G); Time: 4.510 > {* Degree(x): x in X *}; {* 1, 30, 124, 155, 217, 248, 280, 315^^6, 465^^4, 496, 651^^3, 744^^2, 868, 930^^3, 960, 1024, 1240, 1488, 1736^^4, 1984, 3720^^3, 11160^^2 *} > &+[d^2 : d in $1] eq #G; true