<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!-- %% -->
<!-- %A  grpprod.msk                 GAP documentation            Alexander Hulpke -->
<!-- %% -->
<!-- %A  @(#)<M>Id: grpprod.msk,v 1.34 2006/03/13 11:36:40 sal Exp </M> -->
<!-- %% -->
<!-- %Y  (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland -->
<!-- %Y  Copyright (C) 2002 The GAP Group -->
<!-- %% -->
<Chapter Label="Group Products">
<Heading>Group Products</Heading>

This chapter describes the various group product constructions that are
possible in &GAP;.
<P/>
At the moment for some of the products methods are available only if both
factors are given in the same representation or only for certain types of
groups such as  permutation groups and pc groups when the product can be
naturally represented as a group of the same kind.
<P/>
&GAP; does not guarantee that a product of two groups will be in a
particular representation.
(Exceptions are <Ref Func="WreathProductImprimitiveAction"/>
and <Ref Func="WreathProductProductAction"/>
which are construction that makes sense only for permutation groups,
see&nbsp;<Ref Func="WreathProduct"/>).
<P/>
&GAP; however will try to choose an efficient representation, so products
of permutation groups or pc groups often will be represented as a group of
the same kind again.
<P/>
Therefore the only guaranteed way to relate a product to its factors is via
the embedding and projection homomorphisms,
see&nbsp;<Ref Sect="Embeddings and Projections for Group Products"/>.


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Direct Products">
<Heading>Direct Products</Heading>

The direct product of  groups is the cartesian product of the groups
(considered as element sets) with component-wise multiplication.
<P/>
<#Include Label="DirectProduct">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Semidirect Products">
<Heading>Semidirect Products</Heading>

The semidirect product of a group <M>N</M> with a group <M>G</M>
acting on <M>N</M> via a homomorphism <M>\alpha</M> from <M>G</M> into the
automorphism group of <M>N</M> is the cartesian product
<M>G \times N</M> with the multiplication
<M>(g, n) \cdot (h, m) = (gh, n^{{h^\alpha}}m)</M>.

<#Include Label="SemidirectProduct">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Subdirect Products">
<Heading>Subdirect Products</Heading>

The subdirect product of the groups <M>G</M> and <M>H</M> with respect to
the epimorphisms <M>\varphi\colon G \rightarrow A</M> and
<M>\psi\colon H \rightarrow A</M> (for a common group <M>A</M>)
is the subgroup of the direct product <M>G \times H</M> consisting of
the elements <M>(g,h)</M> for which <M>g^{\varphi} = h^{\psi}</M>.
It is the pull-back of the following diagram.
<P/>
<Alt Not="Text,HTML"><Display>
<![CDATA[
\matrix{
&&G&\cr
&&\Big\downarrow&\varphi\cr
H&\mathop{\longrightarrow}\limits^{\psi}&A&\cr
}
]]>
</Display></Alt>
<Alt Only="Text,HTML"><Verb>
                   G
                   | phi
             psi   V
          H  --->  A
</Verb></Alt>

<#Include Label="SubdirectProduct">
<#Include Label="SubdirectProducts">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Wreath Products">
<Heading>Wreath Products</Heading>

The wreath product of a group <M>G</M> with a permutation group <M>P</M>
acting on <M>n</M> points is the semidirect product of the normal subgroup
<M><A>G</A>^n</M> with the group <M>P</M> which acts on <M><A>G</A>^n</M>
by permuting the components.
<P/>
Note that &GAP; always considers the domain of a permutation group to be the
points moved by elements of the group as returned by
<Ref Func="MovedPoints" Label="for a list or collection of permutations"/>,
i.e. it is not possible to have a domain to include fixed points, I.e.
<M>P = \langle (1,2,3) \rangle</M> and 
<M>P = \langle (1,3,5) \rangle</M> result in isomorphic wreath products.
(If fixed points are desired the wreath product <M>G \wr T</M>
has to be formed with a transitive overgroup <M>T</M> of <M>P</M> and then
the pre-image of <M>P</M> under the projection <M>G \wr T \rightarrow T</M>
has to be taken.)
<P/>
<#Include Label="WreathProduct">
<#Include Label="WreathProductImprimitiveAction">
<#Include Label="WreathProductProductAction">
<#Include Label="KuKGenerators">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Free Products">
<Heading>Free Products</Heading>

Let <M>G</M> and <M>H</M> be groups with presentations
<M>\langle X \mid R \rangle</M> and <M>\langle Y \mid S \rangle</M>,
respectively. Then the free product <M>G*H</M> is
the group with presentation <M>\langle X \cup Y \mid R \cup S \rangle</M>.
This construction can be generalized to an arbitrary number of groups. 

<#Include Label="FreeProduct">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Embeddings and Projections for Group Products">
<Heading>Embeddings and Projections for Group Products</Heading>

The relation between a group product and its factors is provided via
homomorphisms,
the embeddings in the product and the projections from the product.
Depending on the kind of product only some of these are defined.
<P/>
<ManSection>
<Func Name="Embedding" Arg='P, nr' Label="for group products"/>

<Description>
returns the <A>nr</A>-th embedding in the group product <A>P</A>.
The actual meaning of this embedding is described in the
manual section for the appropriate product.
</Description>
</ManSection>

<ManSection>
<Func Name="Projection" Arg='P, nr' Label="for group products"/>

<Description>
returns the (<A>nr</A>-th) projection of the group product <A>P</A>.
The actual meaning of the projection returned is described in the
manual section for the appropriate product.
</Description>
</ManSection>

</Section>
</Chapter>


