<!-- ------------------------------------------------------------------- -->
<!--                                                                     -->
<!--  gp2ind.xml            XMod documentation            Chris Wensley  -->
<!--                                                        & Murat Alp  -->
<!--  version 2.32, 13/02/2015                                           --> 
<!--                                                                     --> 
<!--  Copyright (C) 2001-2015, Murat Alp and Chris Wensley,              --> 
<!--  School of Computer Science, Bangor University, U.K.                --> 
<!--                                                                     -->
<!-- ------------------------------------------------------------------- -->

<?xml version="1.0" encoding="UTF-8"?>

<Chapter Label="chap-gp2ind">
<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 Key="BH1" />, <Cite Key="BW1" />, <Cite Key="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 Key="BH1" />).
When <M>\iota</M> is an inclusion the induced crossed module may be
calculated using a copower construction <Cite Key="BW1" /> or,
in the case when <M>R</M> is normal in <M>Q</M>, 
as a coproduct of crossed modules 
(<Cite Key="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> Display( indX4 );

Crossed module [a4/ker->s3] :- 
: Source group a4/ker has generators:
  [ (1,3,2), (1,2,3) ]
: Range group s3 has generators:
  [ (5,6), (6,7) ]
: Boundary homomorphism maps source generators to:
  [ (5,6,7), (5,7,6) ]
: Action homomorphism maps range generators to automorphisms:
  (5,6) --> { source gens --> [ (1,2,3), (1,3,2) ] }
  (6,7) --> { source gens --> [ (1,2,3), (1,3,2) ] }
  These 2 automorphisms generate the group of automorphisms.

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.
(The groups in <C>indX8</C> vary from run to run due to random methods.) 

<Example>
<![CDATA[
gap> incd8 := RangeHom( inc8 );;
gap> [ Source(incd8), Range(incd8), IsInjective(incd8) ];
[ d8, d16, true ]
gap> indX8 := InducedXMod( X8, incd8 );
#I induced group has Size: 16
#I factor 2 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) ] );;  
gap> SetName( s3b, "s3b" );
gap> indX3 := InducedXMod( s4, s3b, s3b );
#I induced group has Size: 48
i*([s3b->s3b])
gap> isoX3 := IsomorphismGroups( Source( indX3 ), GeneralLinearGroup(2,3) );
[ (2,3)(4,7)(5,6), (1,2,3)(4,8,7), (2,4,5)(3,6,7) ] -> 
[ [ [ 0*Z(3), Z(3)^0 ], [ Z(3)^0, 0*Z(3) ] ], 
  [ [ Z(3), Z(3) ], [ Z(3)^0, 0*Z(3) ] ], 
  [ [ Z(3), Z(3)^0 ], [ Z(3), 0*Z(3) ] ] ]
]]>
</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>
