<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!--                                                                     -->
<!--  induce2.xml          XMOD documentation             Chris Wensley  -->
<!--                                                        & Murat Alp  -->
<!--                                                                     -->
<!--  $Id: induce2.xml,v 2.007 2006/02/15 gap Exp $                      -->
<!--                                                                     -->
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->

<?xml version="1.0" encoding="ISO-8859-15"?>
  <!-- <M>Id: induce2.xml,v 2.07  Exp <M> -->

<Chapter Label="chap-induce2">
<Heading>Induced Constructions</Heading>

<Section><Heading>Induced crossed modules</Heading>
<Index>induced crossed module</Index>

<ManSection>
   <Func Name="InducedXMod"
         Arg="args" />
   <Func Name="InducedCat1"
         Arg="args" />
   <Prop Name="IsInducedXMod"
         Arg="xmod" />
   <Prop Name="IsInducedCat1"
         Arg="cat1" />
   <Attr Name="MorphismOfInducedXMod"
         Arg="xmod" />
<Description>
A morphism of crossed modules
<M>(\sigma, \rho) : {\cal X}_1 \to {\cal X}_2</M>
factors uniquely through an induced crossed module
<M>\rho_{\ast} {\cal X}_1 = (\delta ~:~ \rho_{\ast} S_1 \to R_2)</M>.
Similarly, a morphism of cat1-groups factors through an induced cat1-group.
Calculation of induced crossed modules of <M>{\cal X}</M> also
provides an algebraic means of determining the homotopy <M>2</M>-type
of homotopy pushouts of the classifying space of <M>{\cal X}</M>.
For more background from algebraic topology see references in
\cite{BH1}, \cite{BW1}, \cite{BW2}.
Induced crossed modules and induced cat1-groups also provide the
building blocks for constructing pushouts in the categories
<E>XMod</E> and <E>Cat1</E>.
<P/>
Data for the cases of algebraic interest is provided by a conjugation
crossed module  <M>{\cal X} = (\partial ~:~ S \to R)</M>
and a homomorphism  <M>\iota</M>  from  <M>R</M>  to a third group  <M>Q</M>.
The output from the calculation is a crossed module
<M>\iota_{\ast}{\cal X} = (\delta ~:~ \iota_{\ast}S \to Q)</M>
together with a morphism of crossed modules
<M>{\cal X} \to \iota_{\ast}{\cal X}</M>.
When <M>\iota</M> is a surjection with kernel <M>K</M> then
<M>\iota_{\ast}S = [S,K]</M> (see \cite{BH1}).
When <M>\iota</M> is an inclusion the induced crossed module may be
calculated using a copower construction \cite{BW1} or,
in the case when <M>R</M> is normal in <M>Q</M>, 
as a coproduct of crossed modules 
(\cite{BW2}, but not yet implemented).
When <M>\iota</M> is neither a surjection nor an inclusion, <M>\iota</M>
is written as the composite of the surjection onto the image
and the inclusion of the image in <M>Q</M>, and then the composite induced
crossed module is constructed.
These constructions use Tietze transformation routines in 
the library file <C>tietze.gi</C>.
<P/>
As a first, surjective example, we take for <M>{\cal X}</M> 
the normal inclusion crossed module of <C>a4</C> in <C>s4</C>,
and for <M>\iota</M> the surjection from <C>s4</C> to <C>s3</C> 
with kernel <C>k4</C>.  
The induced crossed module is isomorphic to <C>X3</C>.
</Description>
</ManSection>

<Example>
<![CDATA[
gap> s4gens := [ (1,2), (2,3), (3,4) ];;
gap> s4 := Group( s4gens );; SetName(s4,"s4");
gap> a4gens := [ (1,2,3), (2,3,4) ];;
gap> a4 := Subgroup( s4, a4gens );;  SetName( a4, "a4" );
gap> s3 := Group( (5,6),(6,7) );;  SetName( s3, "s3" );
gap> epi := GroupHomomorphismByImages( s4, s3, s4gens, [(5,6),(6,7),(5,6)] );;
gap> X4 := XModByNormalSubgroup( s4, a4 );;
gap> indX4 := SurjectiveInducedXMod( X4, epi );
[a4/ker->s3]
gap> morX4 := MorphismOfInducedXMod( indX4 );
[[a4->s4] => [a4/ker->s3]]
]]>
</Example>

For a second, injective example we take for <M>{\cal X}</M> 
the conjugation crossed module <M>(\partial ~:~ c4 \to d8)</M> of Chapter 3, 
and for <M>\iota</M> the inclusion <C>incd8</C> of <C>d8</C> in <C>d16</C>.  
The induced crossed module has <M>c4 \times c4</M> as source.

<Example>
<![CDATA[
gap> incd8 := RangeHom( inc8 );;
gap> [ Source(incd8), Range(incd8), IsInjective(incd8) ];
[ d8, d16, true ]
gap> indX8 := InducedXMod( X8, incd8 );
#I Simplified presentation for induced group :-
<presentation with 2 gens and 3 rels of total length 12>
#I  generators: [ f11, f14 ]
#I  relators:
#I  1.  4  [ 1, 1, 1, 1 ]
#I  2.  4  [ 2, 2, 2, 2 ]
#I  3.  4  [ 2, -1, -2, 1 ]
#I induced group has Size: 16
#I factor 1 is abelian  with invariants: [ 4, 4 ]
i*([c4->d8])
gap> Display( indX8 );
Crossed module i*([c4->d8]) :-
: Source group has generators:
  [ ( 1, 2, 6, 3)( 4, 7,12, 9)( 5, 8,13,10)(11,14,16,15),
  ( 1, 4,11, 5)( 2, 7,14, 8)( 3, 9,15,10)( 6,12,16,13) ]
: Range group d16 has generators:
  [ (11,12,13,14,15,16,17,18), (12,18)(13,17)(14,16) ]
: Boundary homomorphism maps source generators to:
  [ (11,13,15,17)(12,14,16,18), (11,17,15,13)(12,18,16,14) ]
: Action homomorphism maps range generators to automorphisms:
  (11,12,13,14,15,16,17,18) --> { source gens -->
[ ( 1, 5,11, 4)( 2, 8,14, 7)( 3,10,15, 9)( 6,13,16,12),
  ( 1, 3, 6, 2)( 4, 9,12, 7)( 5,10,13, 8)(11,15,16,14) ] }
  (12,18)(13,17)(14,16) --> { source gens -->
[ ( 1, 3, 6, 2)( 4, 9,12, 7)( 5,10,13, 8)(11,15,16,14),
  ( 1, 5,11, 4)( 2, 8,14, 7)( 3,10,15, 9)( 6,13,16,12) ] }
  These 2 automorphisms generate the group of automorphisms.
gap> morX8 := MorphismOfInducedXMod( indX8 );
[[c4->d8] => i*([c4->d8])]
gap> Display( morX8 );
Morphism of crossed modules :-
: Source = [c4->d8] with generating sets:
  [ (11,13,15,17)(12,14,16,18) ]
  [ (11,13,15,17)(12,14,16,18), (12,18)(13,17)(14,16) ]
:  Range = i*([c4->d8]) with generating sets:
  [ ( 1, 2, 6, 3)( 4, 7,12, 9)( 5, 8,13,10)(11,14,16,15),
  ( 1, 4,11, 5)( 2, 7,14, 8)( 3, 9,15,10)( 6,12,16,13) ]
  [ (11,12,13,14,15,16,17,18), (12,18)(13,17)(14,16) ]
: Source Homomorphism maps source generators to:
  [ ( 1, 2, 6, 3)( 4, 7,12, 9)( 5, 8,13,10)(11,14,16,15) ]
: Range Homomorphism maps range generators to:
  [ (11,13,15,17)(12,14,16,18), (12,18)(13,17)(14,16) ]
]]>
</Example>

For a third example we take the identity mapping on <C>s3</C> as boundary,
and the inclusion of <C>s3</C> in <C>s4</C> as <C>iota</C>.
The induced group is a general linear group <C>GL(2,3)</C>.

<Example>
<![CDATA[
gap> s3b := Subgroup( s4, [ (2,3), (3,4) ] );;  SetName( s3b, "s3b" );
gap> indX3 := InducedXMod( s4, s3b, s3b );
#I Simplified presentation for induced group :-
<presentation with 2 gens and 4 rels of total length 33>
#I  generators: [ f11, f112 ]
#I  relators:
#I  1.  2  [ 1, 1 ]
#I  2.  3  [ 2, 2, 2 ]
#I  3.  12  [ 1, -2, 1, 2, 1, 2, 1, -2, 1, 2, 1, 2 ]
#I  4.  16  [ -2, 1, -2, 1, -2, 1, -2, 1, -2, 1, -2, 1, -2, 1, -2, 1 ]
#I induced group has Size: 48
#I IdGroup = [ [  48,  29 ] ]
i*([s3b->s3b])
gap> isoX3 := IsomorphismGroups( Source( indX3 ), GeneralLinearGroup(2,3) );
[ (1,2)(4,5)(6,8), (2,3,4)(5,6,7) ] ->
[ [ [ Z(3)^0, 0*Z(3) ], [ Z(3), Z(3) ] ],
  [ [ Z(3)^0, Z(3)^0 ], [ 0*Z(3), Z(3)^0 ] ] ]
]]>
</Example>

<ManSection>
   <Oper Name="AllInducedXMods"
         Arg="Q" />
<Description>
This function calculates all the induced crossed modules 
<C>InducedXMod( Q, P, M )</C>, 
where <C>P</C> runs over all conjugacy classes of subgroups of <C>Q</C> 
and <C>M</C> runs over all non-trivial subgroups of <C>P</C>.
</Description>
</ManSection>

</Section>

</Chapter>
