This package provides functionality for presentations of classical groups as given in lgo20. It is a translation (with permission of the authors) of the corresponding code in the system Magma, and should -- short of arbitrary choices depending on internal ordering of finite field elements -- return the same data.
Work on the translation was started at the Summer School Matrix Group Recognition at RWTH Aachen in July 2019.
The work was supported in part by NSF Grant DMS-1720146, which is gratefully acknowledged.
There are only two user functions:
ClassicalStandardPresentation(
type,
d,
q )
Given the specification type, d, q of a quasisimple group G, this
operation constructs a presentation on the standard generators for G.
The string type must be one of "SL"
, "Sp"
, "SU"
, "Omega"
,
"Omega-"
, or "Omega+"
, while d is the dimension and q is the
cardinality of the finite field. The presentations are described in
LGO20.
The presentation is returned as a finitely presented group, the relations
being stored as its RelatorsOfFpGroup
If the option Projective
is set to true, the operation constructs a
presentation for the corresponding projective group (on the images of the
same generators).
gap> pres:=ClassicalStandardPresentation( "SL" , 4, 3); <fp group on the generators [ f1, f2, f3, f4 ]> gap> RelatorsOfFpGroup(pres); [ f4*f1^-1*f3*f1*f3^2*f1^-1*f3*f1*f3^-1, f3^-1*f2^-6*f1^-1*f2^6*f3*f2^-6*f1*f2^6, f3^-1*f2^-3*f3^-1*f2^3*f3*f2^-3*f3*f1^-1*f2^3*f3^-1*f2^-3*f1*f2^3, f3^-1*f2^-3*f1^-1*f2^3*f3^-1*f2^-3*f1*f2^3*f3*f2^-3*f1^-1*f2^3*f3*f2^-3*f1*f\ 2^3, f3^-1*f2^-3*f1^-1*f3^-1*f1*f2^3*f3*f2^-3*f1^-1*f3*f1*f2^3, f3^-1*f2^-6*f3^-1*f2^6*f3*f2^-6*f3*f2^6, f1^4, f1^-1*f2^-3*f1^2*f2^3*f1^3*f2^-3*f1^2*f2^3, (f1*f2^-3*f1*f2^3)^3, f1^-1*f2^-6*f1^-1*f2^6*f1*f2^-6*f1*f2^6, f2^9*(f1^-1*f2^-3)^2*f1^-1, f2^-12*f1^-1*f2^12*f1, f2^24, f1*(f3*f1^-1)^2*f3, (f1^-1*f3^4*f1^-1*f3^2)^2*f3^3*f1^-2, f2^8 ] gap> s:=Subgroup(pres,[pres.1,pres.2,pres.4]); Group([ f1, f2, f4 ]) gap> Index(pres,s); 63180 gap> DisplayCompositionSeries(Image(FactorCosetAction(pres,s))); G (4 gens, size 6065280) | A(3,3) = L(4,3) ~ D(3,3) = O+(6,3) 1 (0 gens, size 1)
ClassicalStandardGenerators(
type,
d,
q)
This operation produces the standard generators of Leedham-Green and O'Brien
for the quasisimple classical group of specified type in dimension d over a
field of size q. The type is designated by the argument type which must be
one of the strings "SL"
, "Sp"
, "SU"
, "Omega"
, "Omega-"
, or
"Omega+"
. The
standard generators generate a specific copy of a classical group and are
defined in LGO09 and DLLGO13.
gap> gens:=ClassicalStandardGenerators( "SL" , 4, 3);; [ < immutable compressed matrix 4x4 over GF(3) >, < immutable compressed matrix 4x4 over GF(3) >, < immutable compressed matrix 4x4 over GF(3) >, < immutable compressed matrix 6x4 over GF(3) > ] gap> List(gens,Order); [ 4, 8, 3, 2 ] gap> Size(Group(gens)); 12130560 gap> List(RelatorsOfFpGroup(pres),x->Order(MappedWord(x, > FreeGeneratorsOfFpGroup(pres),gens))); [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
If the option Projective
is set to true, the operation constructs a
presentation for the corresponding projective group (on the images of the
same generators).
gap> pres:=ClassicalStandardPresentation( "SL" , 4, 3:Projective); <fp group on the generators [ f1, f2, f3, f4 ]> gap> List(RelatorsOfFpGroup(pres),x->Order(MappedWord(x, > FreeGeneratorsOfFpGroup(pres),gens))); [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1 ]
In GAP, the canonical way of obtaining a presentation of (say) a
permutation group is the operation IsomorphismFpGroup
. This package thus
also installs a method for IsomorphismFpGroup
for groups that know that
they are simple, and tests whether the groups are classical. If so, an
isomorphism between the given group, and the permutation action of the
classical groups on vectors is computed (this should be improved with
constructive recognition in the future) and the presentation of
ClassicalStandardPresentation
is used.
Non-simple groups that construct a presentation through their composition factors will then automatically use these presentations for the simple factors when combining to a presentation of the group.
However be aware that the isomorphisms returned will use the generic permutation group mechanism for decomposition, and thus will not result in good or short words.
The generating sequences chosen (and on which the presentations are written) use the standard generators of classical groups as defined in LGO09 and DLLGO13, since these generators also are used in the constructive recognition process.
The presentations in LGO20 initially use slightly different generating
sets, and a translation between these two generating sets is provided. If one
of the two functions ClassicalStandardGenerators
or
ClassicalStandardPresentation
is called with the option
PresentationGenerators
, this different generating set is used. (Its use
could be to obtain a slightly shorter presentation in situations in which
adherence to the standard generaors is not required.)
The method provided for IsomorphismFpGroup
currently uses these
PresentationGenerators
, but this is not a guaranteed property.
classicpres manual