SubdirectProduct( G1, G2, h1, h2 )
SubdirectProduct
returns the subdirect product of the groups G1 and
G2. h1 and h2 must be homomorphisms from G1 and G2 into a
common group H.
The subdirect product of G_1 and G_2 is the subgroup of the direct product of G_1 and G_2 of those elements (g_1,g_2) with g_1^{h_1} = g_2^{h_2}. This subgroup is generated by the elements (g_1,x_{g_1}), where g_1 loops over the generators of G_1 and x_{g_1} in G_2 is an arbitrary element such that g_1^{h_1} = x_{g_1}^{h_2} together with the element (1_G,k_2) where k_2 loops over the generators of the kernel of h_2.
Projection( S, G1, 1 )
Projection
returns the projection of S onto G1, where (g1,g2)
is mapped to g1.
Projection( S, G2, 2 )
Projection
returns the projection of S onto G2, where (g1,g2)
is mapped to g2.
It is not specified how the elements of the subdirect product are
represented. Therefor Projection
is the only general possibility to
relate G1 and G2 with the subdirect product.
gap> s3 := Group( (1,2,3), (1,2) );; gap> c3 := Subgroup( s3, [ (1,2,3) ] );; gap> x1 := Operation( s3, Cosets( s3, c3 ), OnRight );; gap> h1 := OperationHomomorphism( s3, x1 );; gap> d8 := Group( (1,2,3,4), (2,4) );; gap> c4 := Subgroup( d8, [ (1,2,3,4) ] );; gap> x2 := Operation( d8, Cosets( d8, c4 ), OnRight );; gap> h2 := OperationHomomorphism( d8, x2 );; gap> s := SubdirectProduct( s3, d8, h1, h2 ); Group( (1,2,3), (1,2)(5,7), (4,5,6,7) ) gap> Size( s ); 24
SubdirectProduct
calls the function G1.operations.SubdirectProduct
with the arguments G1, G2, h1, and h2.
The default function called this way is GroupOps.SubdirectProduct
.
This function constructs the subdirect product as a subgroup of the
direct product. The generators for this subgroup are computed as
described above.
GAP 3.4.4