  
  [1X3 [33X[0;0YMaximal Subgroups of Classical Groups[133X[101X
  
  
  [1X3.1 [33X[0;0YThe Main function[133X[101X
  
  [1X3.1-1 ClassicalMaximalsGeneric[101X
  
  [33X[1;0Y[29X[2XClassicalMaximalsGeneric[102X( [3Xtype[103X, [3Xn[103X, [3Xq[103X[, [3Xclasses[103X] ) [32X function[133X
  
  [33X[0;0YReturns  a  list  of  representatives  of  the  conjugacy classes of maximal
  subgroups  of  the  quasisimple  classical  group  of  the specified type in
  dimension [3Xn[103X over the finite field [23X\mathbb{F}_q[123X.[133X
  
  [33X[0;0YThe  parameter  [3Xtype[103X  must  be one of the strings [10X"L"[110X, [10X"U"[110X, [10X"O"[110X, [10X"O+"[110X, [10X"O-"[110X,
  corresponding  to  the quasisimple groups [23X{\rm SL}_n(q)[123X, [23X{\rm SU}_n(q)[123X, [23X{\rm
  Sp}_n(q)[123X,  [23X\Omega_n(q)[123X,  [23X\Omega^+_n(q)[123X  and [23X\Omega^-_n(q)[123X, respectively (see
  Chapter [14X2[114X).[133X
  
  [33X[0;0YThe  returned  subgroups are realized as subgroups of the standard classical
  group  (as  returned  by  the corresponding [5XGAP[105X functions), so in particular
  they preserve our standard classical form (see [14X2.2-6[114X).[133X
  
  [33X[0;0YThe optional argument [3Xclasses[103X must be a subset of [10X[1..9][110X and specifies which
  Aschbacher  classes  are to be computed. If omitted, all classes [23X{\cal C}_1,
  \dots, {\cal C}_9[123X are considered.[133X
  
  [33X[0;0YThe  lists are complete for [23Xn \leq 12[123X. For [23Xn > 12[123X, no completeness guarantee
  is  given.  In  particular,  maximal  subgroups  in class [23X{\cal C}_9[123X are not
  included in these cases.[133X
  
  [33X[0;0YThe  orders  of  the  returned subgroups are precomputed and stored with the
  groups.[133X
  
  [33X[0;0YSection [14X4[114X provides some illustrations of this function's usage.[133X
  
  
  [1X3.2 [33X[0;0YConjugating elements in the ambient classical group[133X[101X
  
  [33X[0;0YIn  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.[133X
  
  [1X3.2-1 GLMinusSL[101X
  
  [33X[1;0Y[29X[2XGLMinusSL[102X( [3Xn[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan element of [23X{\rm GL}_n(q) \setminus {\rm SL}_n(q)[123X.[133X
  
  [1X3.2-2 GUMinusSU[101X
  
  [33X[1;0Y[29X[2XGUMinusSU[102X( [3Xn[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan element of [23X{\rm GU}_n(q) \setminus {\rm SU}_n(q)[123X.[133X
  
  [1X3.2-3 NormSpMinusSp[101X
  
  [33X[1;0Y[29X[2XNormSpMinusSp[102X( [3Xn[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan  element  of  [23X{\rm  N}_{{\rm GL}_n(q)}({\rm Sp}_n(q)) \setminus
            {\rm  Sp}_n(q)[123X which preserves our standard symplectic form modulo
            a scalar.[133X
  
  [1X3.2-4 SOMinusOmega[101X
  
  [33X[1;0Y[29X[2XSOMinusOmega[102X( [3Xepsilon[103X, [3Xn[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan     element     of    [23X{\rm    SO}^\varepsilon_n(q)    \setminus
            \Omega^\varepsilon_n(q)[123X  which  preserves  our standard orthogonal
            form (see [14X2.2-6[114X).[133X
  
  [1X3.2-5 GOMinusSO[101X
  
  [33X[1;0Y[29X[2XGOMinusSO[102X( [3Xepsilon[103X, [3Xn[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan   element   of   [23X{\rm   GO}^\varepsilon_n(q)   \setminus   {\rm
            SO}^\varepsilon_n(q)[123X  which preserves our standard orthogonal form
            (see [14X2.2-6[114X).[133X
  
  [1X3.2-6 NormGOMinusGO[101X
  
  [33X[1;0Y[29X[2XNormGOMinusGO[102X( [3Xepsilon[103X, [3Xn[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan  element  of [23X{\rm N}_{{\rm GL}_n(q)}({\rm GO}^\varepsilon_n(q))
            \setminus  {\rm  GO}^\varepsilon_n(q)[123X which preserves our standard
            orthogonal form (see [14X2.2-6[114X) modulo a scalar.[133X
  
  
  [1X3.2-7 [33X[0;0YWarning concerning orthogonal groups of minus type[133X[101X
  
  [33X[0;0Y[2XSOMinusOmega[102X  ([14X3.2-4[114X),  [2XGOMinusSO[102X  ([14X3.2-5[114X)  and  [2XNormGOMinusGO[102X  ([14X3.2-6[114X)  are
  affected  by  a  historical  inconsistency  in [5XGAP[105X's choice of the invariant
  bilinear  form for orthogonal groups of minus type: For [23X\varepsilon = -1[123X the
  forms kept invariant by [10XOmega(-1,n,q)[110X and [10XSO(-1,n,q)[110X need not coincide.[133X
  
  [33X[0;0YConsequently  the  element  returned by [10XGOMinusSO(-1,n,q)[110X preserves the form
  associated  with [10XOmega(-1,n,q)[110X (our standard orthogonal form, see [14X2.2-6[114X) but
  does  [13Xnot[113X  necessarily  preserve the form associated with [10XSO(-1,n,q)[110X (as one
  would expect from the name).[133X
  
  [33X[0;0YThe  element  returned by [10XNormGOMinusGO(-1,n,q)[110X is guaranteed to normalise a
  group preserving the [10XOmega[110X form (our standard orthogonal form).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xq := 5;;[127X[104X
    [4X[25Xgap>[125X [27XG := Omega(-1, 8, q);;[127X[104X
    [4X[25Xgap>[125X [27XH := SO(-1, 8, q);;[127X[104X
    [4X[25Xgap>[125X [27XDisplay(InvariantBilinearForm(G).matrix);[127X[104X
    [4X[28X . . . . . . . 1[128X[104X
    [4X[28X . . . . . . 1 .[128X[104X
    [4X[28X . . . . . 1 . .[128X[104X
    [4X[28X . . . 3 4 . . .[128X[104X
    [4X[28X . . . 4 1 . . .[128X[104X
    [4X[28X . . 1 . . . . .[128X[104X
    [4X[28X . 1 . . . . . .[128X[104X
    [4X[28X 1 . . . . . . .[128X[104X
    [4X[25Xgap>[125X [27XDisplay(InvariantBilinearForm(H).matrix);[127X[104X
    [4X[28X . 1 . . . . . .[128X[104X
    [4X[28X 1 . . . . . . .[128X[104X
    [4X[28X . . 4 . . . . .[128X[104X
    [4X[28X . . . 2 . . . .[128X[104X
    [4X[28X . . . . 2 . . .[128X[104X
    [4X[28X . . . . . 2 . .[128X[104X
    [4X[28X . . . . . . 2 .[128X[104X
    [4X[28X . . . . . . . 2[128X[104X
    [4X[25Xgap>[125X [27XMG := InvariantBilinearForm(G).matrix;;[127X[104X
    [4X[25Xgap>[125X [27XMH := InvariantBilinearForm(H).matrix;;[127X[104X
    [4X[25Xgap>[125X [27Xa := GOMinusSO(-1, 8, q);;[127X[104X
    [4X[25Xgap>[125X [27Xb := NormGOMinusGO(-1, 8, q);[127X[104X
    [4X[25Xgap>[125X [27Xa*MG*TransposedMat(a) = MG;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xa*MH*TransposedMat(a) = MH;[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27X(G.1^b)*MG*TransposedMat(G.1^b) = MG;[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27X(G.2^b)*MG*TransposedMat(G.2^b) = MG;[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
