The direct product K of the pc-groups G and H. The second argument returned is a sequence containing the inclusion maps IG: G -> K and IH: H -> K. The third argument returned is a sequence containing the projection maps PG: K -> G and PH: K -> H. Furthermore, the (user-) presentation of K is arranged so that the first pc-generators correspond to those of G and the remaining generators correspond to those of H.
The direct product of pc-groups in the non-empty sequence Q, and the inclusion and projection maps.
The split extension K of the pc-group G by the pc-group H, where the action of H on G is given by the homomorphism φ: H -> Aut(G) specified by f. The extension K will have a normal subgroup G~ isomorphic to G, while the quotient group K/G~ is isomorphic to H.The homomorphism φ is given by the sequence of maps f. Suppose that the pc-generators for H are h1, ..., hs. The i-th entry of f defines the action of hi on G. That is, f[i](x) = hi - 1.x.hi, for x ∈G.
The split extension K of the G-module M by the pc-group H. We use the action of H on M to define the action of H on an elementary abelian p-group of order pd where M is a d-dimensional module over GF(p), p prime.
The non-split extension K of the pc-group G by the pc-group H, where the action of H on G is given by the homomorphism φ: H -> Aut(G) and the tails for H are given as the set of tuples t. The extension K will have a normal subgroup G~ isomorphic to G, while the quotient group K/G~ is isomorphic to H.The homomorphism φ is given by the sequence of maps f. Suppose that the pc-generators for H are h1, ..., hs. The i-th entry of f defines the action of hi on G. That is, f[i](x) = hi - 1.x.hi, for x ∈G.
The specification of t involves giving the relations hj - 1hihj = wij, where wij is a word in K for 1 ≤j < i ≤s. For i = j, we need the relation (hi)pi = wii, where wii is a word in K for 1 ≤i ≤s. Each wij is the RHS of the relation from H with the tail xij. The tails are given by the sequence t in the order t = [x11, x21, x22, x31, ... , xss ]. Alternatively, t can be given as a set of tuples < i, j, xij > for non-trivial xij.
Note that if xij = Id(G), for 1≤i≤s and 1≤j≤i, then K will just be the split extension of G and H.
The non-split extension K of the G-module M by the pc-group H. We use the action of H on M to define the action of H on an elementary abelian p-group of order pd where M is a d-dimensional module over GF(p), p prime.The specification of t is similar to that for t in the preceding description.
For each Extension variation, there is a corresponding function IsExtension which attempts to construct the specified group and returns a boolean value indicating whether or not the construction succeeded. If the construction succeeds, the extension group is also returned.The Extension functions will generate a runtime error if the specified construction is not legal. The IsExtension function allows the user to detect this error condition and continue.
The wreath product of the pc-groups G and H, where the regular permutation representation of H is used to define the action.
The wreath product of the pc-groups G and H where the action of H is given by f, which may be either a homomorphism from H into a permutation group P or a sequence of permutations defining a homomorphism from H into P. If f is a sequence, the homomorphism φ: H -> P is defined by H.i -> f[i] for i = 1, ..., s.
> C4 := CyclicGroup(GrpPC,4);
> E9 := AbelianGroup(GrpPC,[3,3]);
> f1 := hom<E9->E9|[E9.1*E9.2^2, E9.1^2*E9.2^2]>;
> f2 := hom<E9->E9|[E9.1^2,E9.2^2]>;
> G := Extension(E9,C4,[f1,f2]);
> G;
GrpPC : G of order 36 = 2^2 * 3^2
PC-Relations:
G.1^2 = G.2,
G.2^2 = Id(G),
G.3^3 = Id(G),
G.4^3 = Id(G),
G.3^G.1 = G.3 * G.4^2,
G.3^G.2 = G.3^2,
G.4^G.1 = G.3^2 * G.4^2,
G.4^G.2 = G.4^2
Then, we define a module for this group and use it to
build a nonsplit extension.
> MR := MatrixRing(GF(3),2);
> m1 := MR![1,1,1,2];
> m2 := MR![2,0,0,2];
> V := GModule(G,[m1,m2,Id(MR),Id(MR)]);
> IsIrreducible(V);
true
> v0 := V!0;
> tails := [v0,v0,v0,v0,V![1,0],V![2,0],V![1,2],V![0,2],v0,V![0,1]];
> H := Extension(V,G,tails);
> H;
GrpPC : H of order 324 = 2^2 * 3^4
PC-Relations:
H.1^2 = H.2,
H.2^2 = Id(H),
H.3^3 = H.5^2,
H.4^3 = H.6,
H.5^3 = Id(H),
H.6^3 = Id(H),
H.3^H.1 = H.3 * H.4^2,
H.3^H.2 = H.3^2 * H.5,
H.4^H.1 = H.3^2 * H.4^2 * H.5 * H.6^2,
H.4^H.2 = H.4^2 * H.6^2,
H.5^H.1 = H.5 * H.6,
H.5^H.2 = H.5^2,
H.6^H.1 = H.5 * H.6^2,
H.6^H.2 = H.6^2
Notice that the relations of H involving the first four
generators are those of G with the specified tails
appended. We are then ready to compute various properties of H.
> [N`order:N in NormalSubgroups(H)]; [ 1, 9, 81, 162, 324 ]
We start with a dihedral group of order 10 acting on a cyclic group of order 8.
> E := DihedralGroup(GrpPC,5); > A := CyclicGroup(GrpPC,8);Define an action of E on A and create the split extension.
> f1 := hom<A->A|A.1->(A.1)^-1>; > f2 := hom<A->A|A.1->A.1>; > H := Extension(A, E, [f1, f2]);Then construct a certain H-module...
> QH := SylowSubgroup(H,2); > t := TrivialModule(QH, FiniteField(5)); > B := Induction(t, H);...and form the split extension of H acting on that module.
> G := Extension(B, H);
> print G;
GrpPC : G of order 250000 = 2^4 * 5^6
PC-Relations:
G.1^2 = Id(G),
G.2^5 = Id(G),
G.3^2 = G.4,
G.4^2 = G.5,
G.5^2 = Id(G),
G.6^5 = Id(G),
G.7^5 = Id(G),
G.8^5 = Id(G),
G.9^5 = Id(G),
G.10^5 = Id(G),
G.2^G.1 = G.2^4,
G.3^G.1 = G.3 * G.4 * G.5,
G.4^G.1 = G.4 * G.5,
G.6^G.2 = G.10,
G.7^G.1 = G.10,
G.7^G.2 = G.6,
G.8^G.1 = G.9,
G.8^G.2 = G.7,
G.9^G.1 = G.8,
G.9^G.2 = G.8,
G.10^G.1 = G.7,
G.10^G.2 = G.9
> print DerivedLength(G);
3
Now check the relevant class sizes.
> P := SylowSubgroup(G,5);
> Q := SylowSubgroup(G,2);
> print Maximum({x[2]:x in Classes(G)});
1250
> print Maximum({x[2]:x in Classes(P)});
625
> print Maximum({x[2]:x in Classes(Q)});
4
Note that 1250 is less than the product 625*4.