‣ ClassicalMaximalsGeneric( type, n, q[, classes] ) | ( function ) |
Returns a list of representatives of the conjugacy classes of maximal subgroups of the quasisimple classical group of the specified type in dimension n over the finite field \(\mathbb{F}_q\).
The parameter type must be one of the strings "L", "U", "O", "O+", "O-", corresponding to the quasisimple groups \({\rm SL}_n(q)\), \({\rm SU}_n(q)\), \({\rm Sp}_n(q)\), \(\Omega_n(q)\), \(\Omega^+_n(q)\) and \(\Omega^-_n(q)\), respectively (see Chapter 2).
The returned subgroups are realized as subgroups of the standard classical group (as returned by the corresponding GAP functions), so in particular they preserve our standard classical form (see 2.2-6).
The optional argument classes must be a subset of [1..9] and specifies which Aschbacher classes are to be computed. If omitted, all classes \({\cal C}_1, \dots, {\cal C}_9\) are considered.
The lists are complete for \(n \leq 12\). For \(n > 12\), no completeness guarantee is given. In particular, maximal subgroups in class \({\cal C}_9\) are not included in these cases.
The orders of the returned subgroups are precomputed and stored with the groups.
Section 4 provides some illustrations of this function's usage.
In several constructions it is necessary to pass between a classical group and larger groups in which it is naturally embedded, such as the corresponding general linear, unitary, or orthogonal groups, or their normalisers in the general linear group. In particular, one often needs explicit elements that lie outside a given subgroup but still preserve the relevant form (possibly up to scalars). Such elements can be used to conjugate subgroups and to obtain representatives from different conjugacy classes inside the ambient group. The following functions provide explicit elements in the various overgroups of the classical groups considered in this package.
‣ GLMinusSL( n, q ) | ( function ) |
Returns: an element of \({\rm GL}_n(q) \setminus {\rm SL}_n(q)\).
‣ GUMinusSU( n, q ) | ( function ) |
Returns: an element of \({\rm GU}_n(q) \setminus {\rm SU}_n(q)\).
‣ NormSpMinusSp( n, q ) | ( function ) |
Returns: an element of \({\rm N}_{{\rm GL}_n(q)}({\rm Sp}_n(q)) \setminus {\rm Sp}_n(q)\) which preserves our standard symplectic form modulo a scalar.
‣ SOMinusOmega( epsilon, n, q ) | ( function ) |
Returns: an element of \({\rm SO}^\varepsilon_n(q) \setminus \Omega^\varepsilon_n(q)\) which preserves our standard orthogonal form (see 2.2-6).
‣ GOMinusSO( epsilon, n, q ) | ( function ) |
Returns: an element of \({\rm GO}^\varepsilon_n(q) \setminus {\rm SO}^\varepsilon_n(q)\) which preserves our standard orthogonal form (see 2.2-6).
‣ NormGOMinusGO( epsilon, n, q ) | ( function ) |
Returns: an element of \({\rm N}_{{\rm GL}_n(q)}({\rm GO}^\varepsilon_n(q)) \setminus {\rm GO}^\varepsilon_n(q)\) which preserves our standard orthogonal form (see 2.2-6) modulo a scalar.
SOMinusOmega (3.2-4), GOMinusSO (3.2-5) and NormGOMinusGO (3.2-6) are affected by a historical inconsistency in GAP's choice of the invariant bilinear form for orthogonal groups of minus type: For \(\varepsilon = -1\) the forms kept invariant by Omega(-1,n,q) and SO(-1,n,q) need not coincide.
Consequently the element returned by GOMinusSO(-1,n,q) preserves the form associated with Omega(-1,n,q) (our standard orthogonal form, see 2.2-6) but does not necessarily preserve the form associated with SO(-1,n,q) (as one would expect from the name).
The element returned by NormGOMinusGO(-1,n,q) is guaranteed to normalise a group preserving the Omega form (our standard orthogonal form).
gap> q := 5;; gap> G := Omega(-1, 8, q);; gap> H := SO(-1, 8, q);; gap> Display(InvariantBilinearForm(G).matrix); . . . . . . . 1 . . . . . . 1 . . . . . . 1 . . . . . 3 4 . . . . . . 4 1 . . . . . 1 . . . . . . 1 . . . . . . 1 . . . . . . . gap> Display(InvariantBilinearForm(H).matrix); . 1 . . . . . . 1 . . . . . . . . . 4 . . . . . . . . 2 . . . . . . . . 2 . . . . . . . . 2 . . . . . . . . 2 . . . . . . . . 2 gap> MG := InvariantBilinearForm(G).matrix;; gap> MH := InvariantBilinearForm(H).matrix;; gap> a := GOMinusSO(-1, 8, q);; gap> b := NormGOMinusGO(-1, 8, q); gap> a*MG*TransposedMat(a) = MG; true gap> a*MH*TransposedMat(a) = MH; false gap> (G.1^b)*MG*TransposedMat(G.1^b) = MG; true gap> (G.2^b)*MG*TransposedMat(G.2^b) = MG; true
generated by GAPDoc2HTML