In the study of permutability, the usage of local characterisations has become a useful tool to describe the classes of T-groups, PT-groups, and PST-groups. In this chapter we present some local characterisations of these classes and some functions which allow to check whether or not a group given in **GAP** satisfies these conditions.

A *local* description of group-theoretical property consists of expressing it as the conjunction of some properties depending on a prime p, usually related to the behaviour of p-elements, p-subgroups, or p-chief factors, for all primes p.

The **GAP** library does not contain methods to check whether a group G is p-supersoluble, where p is a prime number. We include such a function in the **PERMUT** package.

`‣ IsPSupersolvable` ( G, p ) | ( function ) |

`‣ IsPSupersoluble` ( G, p ) | ( function ) |

This function returns `true`

if the group `G` is p-supersoluble, and `false`

otherwise, where `p` is a prime number. This function is not defined in **GAP**. The method we have implemented for finite groups includes checking whether the group is supersoluble (in this case, it must return `true`

). If the group is not soluble, it computes a chief series and checks whether all chief factors have order p or have order not divisible by p.

gap> g:=Group((1,2,3,4,5,6,7), (8,9,10,11,12,13,14), (15,16,17,18,19,20,21), > (22,23,24,25,26,27,28), (29,30,31,32,33,34,35), > (1,8,15,22,29)(2,9,16,23,30)(3,10,17,24,31)(4,11,18,25,32)(5,12,19,26, > 33)(6,13,20,27,34)(7,14,21,28,35), > (1,8)(2,9)(3,10)(4,11)(5,12)(6,13)(7,14)); #C7 wr S5 <permutation group with 7 generators> gap> IsPSupersolvable(g,7); false gap> IsPSupersolvable(g,11); true

gap> g:=DirectProduct(PSL(2,7), > Group((1,2,3,4,5,6,7,8,9,10,11), (2,5,6,10,4)(3,9,11,8,7))); Group([ (3,7,5)(4,8,6), (1,2,6)(3,4,8), (9,10,11,12,13,14,15,16,17,18,19), (10,13,14,18,12)(11,17,19,16,15) ]) gap> IsPNilpotent(g,5); true gap> IsPNilpotent(g,11); false gap> IsPSupersolvable(g,11); true gap> IsPNilpotent(g,3); false

The following functions correspond to local description of the classes of soluble T-groups, PT-groups, and PST-groups. Most of the known useful local characterisations of these classes of groups can be seen to be equivalent to one of them, either in the universe or all finite groups or in the universe of all finite p-soluble groups. By a local characterisation of a group-theoretical property R we mean a group-theoretical property R_p for each prime p such that a group satisfies R if and only if it satisfies R_p for all primes p.

`‣ IsCp` ( G, p ) | ( function ) |

This function returns `true`

if the group `G` satisfies the property C_p, where p is a prime number, and `false`

otherwise.

A group G satisfies C_p when every subgroup H of a Sylow p-subgroup P of G is normal in the corresponding Sylow normaliser N_G(P). This property was introduced by Robinson in [Rob68]. A group G is a soluble PST-group if and only if it satisfies C_p for all primes p.

gap> g:=AlternatingGroup(5); Alt( [ 1 .. 5 ] ) gap> IsCp(g,3); true gap> IsCp(g,5); true gap> IsCp(g,7); true gap> IsCp(g,2); false gap> g:=SmallGroup(200,44); # semidirect product of Q8 with C5xC5 <pc group of size 200 with 5 generators> gap> IsCp(g,5); false gap> IsCp(g,2); true

`‣ IsXp` ( G, p ) | ( function ) |

This function returns `true`

if `G` satisfies X_p, where p is a prime, and `false`

otherwise.

A group G satisfies X_p when for every subgroup H of a Sylow p-subgroup P of G, H is permutable in N_G(P). This property was introduced by Beidleman, Brewster, and Robinson in [BBR99]. A group G is a soluble PT-group if and only if G satisfies X_p for all primes p.

gap> g:=SmallGroup(189,7); <pc group of size 189 with 4 generators> gap> IsXp(g,3); true gap> IsXp(g,7); true gap> IsPTGroup(g); true gap> IsCp(g,3); false gap> IsTGroup(g); false

`‣ IsYp` ( G, p ) | ( function ) |

This function returns `true`

if `G` satisfies Y_p, where p is a prime, and `false`

otherwise.

A group G satisfies Y_p when for every two subgroups H and K with H≤ K, H is S-permutable in N_G(P). This property was introduced by Ballester-Bolinches and Esteban-Romero in [BE02]. A group G is a soluble PST-group if and only if G satisfies Y_p for all primes p.

gap> g:=SmallGroup(200,43); # semidirect product of D8 with C5xC5 <pc group of size 200 with 5 generators> gap> IsCp(g,2); false gap> IsXp(g,2); false gap> IsYp(g,2); true gap> g:=Group((1,2,3)(4,5,6),(1,2)); Group([ (1,2,3)(4,5,6), (1,2) ]) gap> IsYp(g,3); false gap> IsYp(g,2); true

The following functions are used to check whether or not a group is a soluble T-group, PT-group, or PST-group.

`‣ IsAbCp` ( G, p ) | ( function ) |

This function returns `true`

if `G` has an abelian Sylow `p`-subgroup `p` such that every subgroup of P is normal in the Sylow normaliser N_G(P), and `false`

otherwise.

This function is used to characterise soluble PST-groups: a group G is a soluble PST-group if and only if G satisfies Y_p for all primes p, and a group G satisfies Y_p if and only if G is p-nilpotent or G has an abelian Sylow p-subgroup and satisfies C_p. A group G satisfies C_p if and only if every subgroup of a Sylow p-subgroup P of G is normal in the Sylow normaliser N_G(P). Therefore this function checks whether G has an abelian Sylow p-subgroup and G satisfies C_p.

gap> g:=AlternatingGroup(5); Alt( [ 1 .. 5 ] ) gap> IsAbCp(g,5); true

`‣ IsDedekindSylow` ( G, p ) | ( function ) |

This function returns `true`

if a Sylow `p`-subgroup of `G` is Dedekind, else it returns `false`

.

A group G is Dedekind when every subgroup of G is normal. If p is a prime, a Dedekind p-group (see for example 2.3.12 in [Sch94]) is abelian or a direct product of a quaternion group of order 8 and an elementary abelian 2-group. Obviously, a p-group is Dedekind if and only if it is a T-group.

The algorithm used in this function to test whether a non-abelian 2-group satisfies this condition checks that the Frattini subgroup of a Sylow 2-subgroup P of G has order 2 and that the centre of P has exponent 2 and index 4. In this case, it computes the natural epimorphism from P to P/Z(P) and it checks that the preimages of the generators of P/Z(P) under the natural epimorphism have order 4. If all these conditions hold, then the Sylow 2-subgroup is Dedekind, otherwise it is not.

This function tries to set the property `IsTGroup`

(4.2-1) to `true`

or `false`

for the Sylow p-subgroup.

gap> g:=DirectProduct(SmallGroup(8,4),CyclicGroup(5)); <pc group of size 40 with 4 generators> gap> IsDedekindSylow(g,2); true

`‣ IwasawaTripleWithSubgroup` ( G, X, p ) | ( function ) |

This function returns an Iwasawa triple for a `p`-group `G` such that `X` is a member of it, if such a triple exists, and `fail`

otherwise. This function is used as an auxiliary function to compute an Iwasawa triple for a group `G`.

An Iwasawa triple for a p-group G is a triple (X,b,s) such that X is an abelian normal subgroup of G with cyclic quotient, b is a generator of a supplement to X in G, and b induces a power automorphism in X of the form x-> x^1+p^s. A theorem of Iwasawa states that a p-group G has a modular subgroup lattice (or, equivalently, G has all subgroups permutable) if and only if G is a direct product of a quaternion group of order 8 and an elementary abelian 2-group or G has an Iwasawa triple (X,b,s) with s ≥ 2.

The construction of the Iwasawa triple takes a generator b of a cyclic supplement to X in G. Then we consider a generator a of X of the largest possible order and find an element c of ⟨ b ⟩ and an element s such that a^c = a^1+p^s. If such an element does not exist, the function returns `fail`

. For this element, it checks whether for all generators t of X, the equality t^c = t^1+p^s holds. If this holds, it returns the triple (X, c, s); otherwise it returns `fail`

.

gap> e:=ExtraspecialGroup(27,9); <pc group of size 27 with 3 generators> gap> IwasawaTripleWithSubgroup(e,Subgroup(e,[e.1,e.3]),3); [ Group([ f1, f3 ]), f2, 1 ]

`‣ IwasawaTriple` ( G ) | ( attribute ) |

This function computes an Iwasawa triple for the p-group `G`, if it exists. If `G` is not Iwasawa, the function returns `fail`

. If `G` is a direct product of an elementary abelian 2-group and a quaternion group of order 8, it returns an empty list. If `G` is Iwasawa, then the function returns an Iwasawa triple for `G`. An Iwasawa triple for a group `G` is a triple (X, b, s) where X is an abelian normal subgroup of G such that G/X is cyclic, b is a generator of a cyclic supplement to X in G, and s is an integer such that for all x ∈ X, x^b = x^1+p^s. A theorem of Iwasawa states that a p-group G has a modular subgroup lattice (or, equivalently, G has all subgroups permutable) if and only if G is a direct product of an elementary abelian 2-group and a quaternion group of order 8 or G has an Iwasawa triple (X,b,s) with s ≥ 2 if p = 2.

The method followed to find an Iwasawa triple for non-abelian non-Dedekind groups begins with the whole group G. If the group is abelian, it returns the Iwasawa triple (G,1,log_pexp(G)). If it is not abelian, it constructs a list l formed by G. For every element N of l, it takes the maximal subgroups of N which are normal in G and give cyclic quotient. If any of these subgroups is a member of an Iwasawa triple, it is computed with the function `IwasawaTripleWithSubgroup`

(5.3-3) and the value is returned. If not, N is removed from the l and these maximal subgroups of N are added to l. This follows until an Iwasawa triple is found or the list l is empty. Since normal subgroups with cyclic quotient are contained in a unique maximal chain, no subgroup appears twice in this algorithm.

The algorithm also takes into account the fact that a Iwasawa group of exponent 4 must be abelian or a direct product of a quaternion group of order 8 and an elementary abelian 2-group.

For the trivial group, it returns the triple composed by the trivial group, its identity element, and the prime 3.

gap> e:=ExtraspecialGroup(27,3); <pc group of size 27 with 3 generators> gap> IwasawaTriple(e); fail gap> e:=ExtraspecialGroup(27,9); <pc group of size 27 with 3 generators> gap> IwasawaTriple(e); [ Group([ f1, f3 ]), f2, 1 ]

`‣ IsIwasawaSylow` ( G, p ) | ( function ) |

This function returns `true`

if `G` has an Iwasawa (modular) Sylow `p`-subgroup, and `false`

otherwise.

Recall that a p-group P has a modular subgroup lattice, or is an Iwasawa group, when all subgroups of P are permutable. It is clear that a p-group has a modular subgroup lattice if and only if it is a T-group.

The implementation of this function begins by searching for a pair of subgroups that do not permute. In this case, the function returns `false`

. The maximum number of pairs to be checked here is controlled by the variable `PermutMaxTries`

(3.2-1), which is assigned to 10 by default. If no such pair is found, the algorithm looks for an Iwasawa triple for a Sylow p-subgroup P of G. If there exists one such triple (X,b,s) with s ≥ 2 when p = 2 or the group is a direct product of a quaternion group of order 8 and an elementary abelian 2-group, then it returns `true`

; else it returns `false`

.

The values of the attributes `IsPTGroup`

(4.2-2) and `IsTGroup`

(4.2-1) for P are set by the function.

gap> e:=ExtraspecialGroup(27,9); <pc group of size 27 with 3 generators> gap> IsIwasawaSylow(e,3); true

generated by GAPDoc2HTML