Sylow Subgroups#

We present here the functionality which allows to compute the Sylow subgroups of finite groups of Lie type.

PrintSylowSubgroupStructure(G): GrpLie#

This procedure prints out a list of all primes \(p\) dividing the order of the group of Lie type \(G\) along with the “goodness” of \(p\), the exponent of \(p\) in the factorisation of \(|G|\) and a sequence of integers. The positive integers give the orders of the decomposition of a torus \(T_w\) into cyclic groups such that the Sylow subgroup is contained in \(\langle T_w, C_W(w) \rangle\). The negative number indicates the \(p\)-part coming from \(C_W(w)\). If more than one such torus exists, then one line is printed for each of them.

A prime is said to be “GOOD” if it is equal to the characteristic of the base field \(k\) of \(G\), “good” if the Sylow subgroup is abelian, thus contained in a torus, and “bad” if it is not abelian and thus not contained in a torus. See [Haller, 2005] for the algorithm used.

SylowSubgroup(G, p): GrpLie, RngIntElt List#

Compute a \(p\)-Sylow subgroup \(S\) of the group of Lie type \(G\). Returned is a list of a two sequences. The second sequence contains generators of \(S\). The first one is a sequence of integers giving the orders of the respective generator if the generator is a torus element and the negative of the order of \(\langle g \rangle/(\langle g \rangle \cap T_w)\) in case the generator \(g\) is not a torus element. See [Haller, 2005] for the algorithm used.

Example: Grp Lie Sylow#

Compute note that the orders of the non-toral elements is not necessarily the corresponding integer in the first sequence: but, in this example, their squares are contained in the torus:

> G := GroupOfLieType("G2", 5);
> PrintSylowSubgroupStructure(G);
G: Group of Lie type G2 over Finite field of size 5
Order(G) is  2^6 * 3^3 * 5^6 * 7^1 * 31^1
Order(W) is  2^2 * 3^1
...compute tori...
...compute sylows...
   2 (bad)  : 6 [ 4, 4, -4 ]
   3 (bad)  : 3 [ 6, 6, -3 ]
   5 (GOOD) : The unipotent subgroup of G
   7 (good) : 1 [ 21 ]
   31 (good) : 1 [ 31 ]
> SylowSubgroup(G,2);
[*
    [ 4, 4, -2, -2 ],
    [ (2 1) , (1 2) , n2 , n1 n2 n1 n2 n1 n2  ]
*]
> gens := $1[2];
> [ Order(g) : g in gens ];
[ 4, 4, 4, 4 ]
> gens[3]^2 eq gens[2]^2, gens[4]^2 eq gens[2]^2;
true true