|
We now describe functions to construct H2(G, U) for a finite soluble
group G and finite abelian group U (a trivial G-module).
We also present functions to construct central extensions of U by G.
Denote by Z2(G, U) the abelian group of all cocycles from G
to U, under pointwise multiplication.
The values ψ(g, h) of ψ ∈Z2(G, U)
may be represented as a "cocyclic matrix" with entries in U.
If φ : G -> U is a set map
with φ (1G) = 1U,
then there is a coboundary
∂φ ∈Z2(G, U) defined by ∂φ(g, h)
= φ(g) φ (h) φ(gh) - 1.
The group of all coboundaries from
G to U is denoted B2(G, U), and we have
H2(G, U) = Z2(G, U)/B2(G, U).
Then H2(G, U)=I x T, where I is the
(faithful) image of Ext(G/G', U)
≤H2(G/G', U) under inflation, and T is the
(faithful) image of Hom(H2(G), U) under a certain
transgression homomorphism. Here we provide functions which construct
representatives for the elements in a generating set for
each of these two factors.
For details of the theory and the algorithm used, see [FO00].
SetVerbose ("Cocycle", 1) will provide additional
information on the calculations in the functions.
Given a soluble group G and an abelian group U (both defined
by pc-presentations) the function returns a sequence of tuples
describing generators for Ext(G/G', U) as cocyclic matrices;
the first entry in each tuple is a representative of a generator,
the second is the order of the coset of the representative in
H2(G, U).
Given a soluble group G and an abelian group U (both defined
by pc-presentations) the function returns a sequence of tuples
describing generators for Hom(H2 (G), U) as cocyclic matrices;
the first entry in each tuple is a representative of a generator,
the second is the order of the coset of the representative
in H2(G, U).
For a soluble group G, the function returns an indexed set
of elements of G listed in the order used by ExtGenerators
and HomGenerators.
Let G be a soluble group G and U be an abelian group both defined
by pc-presentations. Let Ext and Hom be the values returned by
calling ExtGenerators and HomGenerators respectively.
The function RepresentativeCocycles returns a complete and
irredundant set of representatives for the elements of H2(G, U)
as cocyclic matrices.
Let G be a soluble group G and U be an abelian group, both defined
by pc-presentations. Further, let A be a cocyclic matrix (as determined
by the function RepresentativeCocycles). Then, this function returns the
central extension of U by G determined by the cocyclic matrix A.
If G is a soluble group G and U is an abelian group, both defined
by pc-presentations, and Q is a sequence of cocyclic matrices (as
determined by the function RepresentativeCocycles), this function
returns the corresponding sequence of central extension of U by G
determined by the sequence of cocyclic matrices A. Note that the
central extensions thereby constructed need not be mutually non-isomorphic.
Given a soluble group G and an abelian group U (both defined
by pc-presentations) the function creates a process P for central
extensions of U by G. Note that the list of central extensions
constructed by this process will contain all isomorphism types but
the extensions need not be mutually non-isomorphic.
Given a central extension process P, construct the next central
extension determined by P.
Return true if all central extensions determined by the
process P have been constructed; otherwise return false.
We compute the abelian invariants of H 2 (D 4, C 2).
> G := DihedralGroup(GrpPC, 4);
> U := AbelianGroup(GrpPC, [2]);
>
> Ext := ExtGenerators(G, U);
> Ext[1];
<[Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U)]
[Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U)]
[Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U)]
[Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U)]
[Id(U) Id(U) Id(U) Id(U) U.1 U.1 U.1 U.1]
[Id(U) Id(U) Id(U) Id(U) U.1 U.1 U.1 U.1]
[Id(U) Id(U) Id(U) Id(U) U.1 U.1 U.1 U.1]
[Id(U) Id(U) Id(U) Id(U) U.1 U.1 U.1 U.1], 2>,
>
> Hom := HomGenerators(G, U);
> Hom;
[
<[Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U)]
[Id(U) U.1 U.1 Id(U) Id(U) U.1 U.1 Id(U)]
[Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U) Id(U)]
[Id(U) U.1 U.1 Id(U) Id(U) U.1 U.1 Id(U)]
[Id(U) Id(U) Id(U) U.1 Id(U) U.1 U.1 U.1]
[Id(U) U.1 Id(U) Id(U) U.1 U.1 Id(U) U.1]
[Id(U) Id(U) Id(U) U.1 Id(U) U.1 U.1 U.1]
[Id(U) U.1 Id(U) Id(U) U.1 U.1 Id(U) U.1], 2>
]
>
> AbelianInvariants(Ext, Hom);
[ 2, 2, 2 ]
We now compute the central extension of U by G determined by a single
cocyclic matrix.
> A := RepresentativeCocycles(G, U, Ext, Hom);
> E := CentralExtension(G, U, A[2]);
> E;
GrpPC : E of order 16 = 2^4
PC-Relations:
E.1^2 = E.4,
E.2^2 = E.3 * E.4,
E.2^E.1 = E.2 * E.3
Alternatively we can build all central extensions of U by G.
> E := CentralExtensions(G, U, A);
> "Number of extensions is ", #E;
Number of extensions is 8
Next, we provide an example of using the central extension process.
Firstly, we create the groups and initialize the process.
> G := SmallGroup(12, 5);
> U := AbelianGroup(GrpPC, [2, 3]);
> P := CentralExtensionProcess(G, U);
Now we run over the central extensions and count conjugacy classes.
> C := [];
> while IsEmpty(P) eq false do
> NextExtension(~P, ~E);
> Append(~C, #Classes (E));
> end while;
> "# conjugacy classes is ", C;
# conjugacy classes is [ 45, 72, 45, 72, 45, 72, 45, 72, 45, 72, 45,
72, 45, 72, 45, 72, 45, 72, 45, 72, 45, 72, 45, 72 ]
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|