  
  [1X7 [33X[0;0YInduced constructions[133X[101X
  
  [33X[0;0YBefore  describing  general  functions  for computing induced structures, we
  consider coproducts of crossed modules which provide induced crossed modules
  in certain cases.[133X
  
  
  [1X7.1 [33X[0;0YCoproducts of crossed modules[133X[101X
  
  [33X[0;0YNeed to add here a reference (or two) for coproducts.[133X
  
  [1X7.1-1 CoproductXMod[101X
  
  [33X[1;0Y[29X[2XCoproductXMod[102X( [3XX1[103X, [3XX2[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XCoproductInfo[102X( [3XX0[103X ) [32X attribute[133X
  
  [33X[0;0YThis function calculates the coproduct crossed module of two or more crossed
  modules which have a common range [22XR[122X. The standard method applies to [22XcalX_1 =
  (∂_1  :  S_1  -> R)[122X and [22XcalX_2 = (∂_2 : S_2 -> R)[122X. See below for the case of
  three or more crossed modules.[133X
  
  [33X[0;0YThe source [22XS_2[122X of [22XcalX_2[122X acts on [22XS_1[122X via [22X∂_2[122X and the action of [22XcalX_1[122X, so we
  can  form a precrossed module [22X(∂' : S_1 ⋉ S_2 -> R)[122X where [22X∂'(s_1,s_2) = (∂_1
  s_1)(∂_2  s_2)[122X.  The action of this precrossed module is the diagonal action
  [22X(s_1,s_2)^r  =  (s_1^r,s_2^r)[122X.  Factoring  out  by  the Peiffer subgroup, we
  obtain the coproduct crossed module [22XcalX_1 ∘ calX_2[122X.[133X
  
  [33X[0;0YIn  the  example  the  structure  descriptions of the precrossed module, the
  Peiffer   subgroup,  and  the  resulting  coproduct  are  printed  out  when
  [10XInfoLevel(InfoXMod)[110X  is  at  least  [22X1[122X.  The  coproduct  comes  supplied with
  attribute  [10XCoproductInfo[110X,  which includes the embedding morphisms of the two
  factors.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xq8 := Group( (1,2,3,4)(5,8,7,6), (1,5,3,7)(2,6,4,8) );;[127X[104X
    [4X[25Xgap>[125X [27XXAq8 := XModByAutomorphismGroup( q8 );;[127X[104X
    [4X[25Xgap>[125X [27Xs4b := Range( XAq8 );; [127X[104X
    [4X[25Xgap>[125X [27XSetName( q8, "q8" );  SetName( s4b, "s4b" ); [127X[104X
    [4X[25Xgap>[125X [27Xa := q8.1;;  b := q8.2;; [127X[104X
    [4X[25Xgap>[125X [27Xalpha := GroupHomomorphismByImages( q8, q8, [a,b], [a^-1,b] );;[127X[104X
    [4X[25Xgap>[125X [27Xbeta := GroupHomomorphismByImages( q8, q8, [a,b], [a,b^-1] );;[127X[104X
    [4X[25Xgap>[125X [27Xk4b := Subgroup( s4b, [ alpha, beta ] );;  SetName( k4b, "k4b" );[127X[104X
    [4X[25Xgap>[125X [27XZ8 := XModByNormalSubgroup( s4b, k4b );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( XAq8, "XAq8" );  SetName( Z8, "Z8" );  [127X[104X
    [4X[25Xgap>[125X [27XSetInfoLevel( InfoXMod, 1 ); [127X[104X
    [4X[25Xgap>[125X [27XXZ8 := CoproductXMod( XAq8, Z8 );[127X[104X
    [4X[28X#I  prexmod is [ [ 32, 47 ], [ 24, 12 ] ][128X[104X
    [4X[28X#I  peiffer subgroup is C2, [ 2, 1 ][128X[104X
    [4X[28X#I  the coproduct is [ "C2 x C2 x C2 x C2", "S4" ], [ [ 16, 14 ], [ 24, 12 ] ][128X[104X
    [4X[28X[Group( [ f1, f2, f3, f4 ] )->s4b][128X[104X
    [4X[25Xgap>[125X [27XSetName( XZ8, "XZ8" ); [127X[104X
    [4X[25Xgap>[125X [27Xinfo := CoproductInfo( XZ8 );[127X[104X
    [4X[28Xrec( embeddings := [ [XAq8 => XZ8], [Z8 => XZ8] ], xmods := [ XAq8, Z8 ] )[128X[104X
    [4X[25Xgap>[125X [27XSetInfoLevel( InfoXMod, 0 ); [127X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YGiven a list of more than two crossed modules with a common range [22XR[122X, then an
  iterated coproduct is formed:[133X
  
  
  [24X[33X[0;6Y\bigcirc~\left[   \calX_1,\calX_2,\ldots,\calX_n\right]  ~=~  \calX_1  \circ
  (\calX_2 \circ ( \ldots (\calX_{n-1} \circ \calX_n) \ldots ) ).[133X
  
  [124X
  
  [33X[0;0YThe  [10Xembeddings[110X  field  of the [10XCoproductInfo[110X of the resulting crossed module
  [22XcalY[122X  contains  the  [22Xn[122X morphisms [22Xϵ_i : calX_i -> calY (1 leqslant i leqslant
  n)[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XY := CoproductXMod( [ XAq8, XAq8, Z8, Z8 ] );[127X[104X
    [4X[28X[Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] )->s4b][128X[104X
    [4X[25Xgap>[125X [27XStructureDescription( Y );          [127X[104X
    [4X[28X[ "C2 x C2 x C2 x C2 x C2 x C2 x C2 x C2", "S4" ][128X[104X
    [4X[25Xgap>[125X [27XCoproductInfo( Y );[127X[104X
    [4X[28Xrec( [128X[104X
    [4X[28X  embeddings := [128X[104X
    [4X[28X    [ [XAq8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]], [128X[104X
    [4X[28X      [XAq8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]], [128X[104X
    [4X[28X      [Z8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]], [128X[104X
    [4X[28X      [Z8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]] ], [128X[104X
    [4X[28X  xmods := [ XAq8, XAq8, Z8, Z8 ] )[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X7.2 [33X[0;0YInduced crossed modules[133X[101X
  
  [1X7.2-1 InducedXMod[101X
  
  [33X[1;0Y[29X[2XInducedXMod[102X( [3Xargs[103X ) [32X function[133X
  [33X[1;0Y[29X[2XIsInducedXMod[102X( [3Xxmod[103X ) [32X property[133X
  [33X[1;0Y[29X[2XInducedXModBySurjection[102X( [3Xxmod[103X, [3Xhom[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XInducedXModByCopower[102X( [3Xxmod[103X, [3Xhom[103X, [3Xlist[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XMorphismOfInducedXMod[102X( [3Xxmod[103X ) [32X attribute[133X
  
  [33X[0;0YA  morphism  of  crossed  modules [22X(σ, ρ) : calX_1 -> calX_2[122X factors uniquely
  through  an  induced  crossed  module  [22Xρ_∗  calX_1  =  (δ : ρ_∗ S_1 -> R_2)[122X.
  Similarly,   a   morphism   of   cat[22X^1[122X-groups  factors  through  an  induced
  cat[22X^1[122X-group. Calculation of induced crossed modules of [22XcalX[122X also provides an
  algebraic  means  of determining the homotopy [22X2[122X-type of homotopy pushouts of
  the  classifying  space of [22XcalX[122X. For more background from algebraic topology
  see  references  in  [BH78],  [BW95],  [BW96].  Induced  crossed modules and
  induced  cat[22X^1[122X-groups  also  provide  the  building  blocks for constructing
  pushouts in the categories [13XXMod[113X and [13XCat1[113X.[133X
  
  [33X[0;0YData  for  the  cases  of algebraic interest is provided by a crossed module
  [22XcalX  =  (∂  :  S  ->  R)[122X and a homomorphism [22Xι : R -> Q[122X. The output from the
  calculation  is  a  crossed module [22Xι_∗calX = (δ : ι_∗S -> Q)[122X together with a
  morphism  of  crossed  modules  [22XcalX -> ι_∗calX[122X. When [22Xι[122X is a surjection with
  kernel  [22XK[122X  then [22Xι_∗S = S/[K,S][122X where [22X[K,S][122X is the subgroup of [22XS[122X generated by
  elements  of  the form [22Xs^-1s^k, s ∈ S, k ∈ K[122X (see [BH78], Prop.9). (For many
  years,  up  until  June 2018, this manual has stated the result to be [22X[K,S][122X,
  though the correct quotient had been calculated.) When [22Xι[122X is an inclusion the
  induced crossed module may be calculated using a copower construction [BW95]
  or,  in  the  case  when [22XR[122X is normal in [22XQ[122X, as a coproduct of crossed modules
  ([BW96],  but  not  yet  implemented). When [22Xι[122X is neither a surjection nor an
  inclusion,  [22Xι[122X  is factored as the composite of the surjection onto the image
  and  the inclusion of the image in [22XQ[122X, and then the composite induced crossed
  module   is  constructed.  These  constructions  use  Tietze  transformation
  routines in the library file [10Xtietze.gi[110X.[133X
  
  [33X[0;0YAs a first, surjective example, we take for [22XcalX[122X a central extension crossed
  module  of  dihedral  groups, [22X(d_24 -> d_12)[122X, and for [22Xι[122X a surjection [22Xd_12 ->
  s_3[122X  with  kernel  [22Xc_2[122X. The induced crossed module is isomorphic to [22X(d_12 ->
  s_3)[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xa := (6,7,8,9)(10,11,12);;  b := (7,9)(11,12);;[127X[104X
    [4X[25Xgap>[125X [27Xd24 := Group( [ a, b ] );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( d24, "d24" );[127X[104X
    [4X[25Xgap>[125X [27Xc := (1,2)(3,4,5);;  d := (4,5);;[127X[104X
    [4X[25Xgap>[125X [27Xd12 := Group( [ c, d ] );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( d12, "d12" );[127X[104X
    [4X[25Xgap>[125X [27Xbdy := GroupHomomorphismByImages( d24, d12, [a,b], [c,d] );;[127X[104X
    [4X[25Xgap>[125X [27XX24 := XModByCentralExtension( bdy );[127X[104X
    [4X[28X[d24->d12][128X[104X
    [4X[25Xgap>[125X [27Xe := (13,14,15);;  f := (14,15);;[127X[104X
    [4X[25Xgap>[125X [27Xs3 := Group( [ e, f ] );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( s3, "s3" );;[127X[104X
    [4X[25Xgap>[125X [27Xepi := GroupHomomorphismByImages( d12, s3, [c,d], [e,f] );;[127X[104X
    [4X[25Xgap>[125X [27XiX24 := InducedXModBySurjection( X24, epi );[127X[104X
    [4X[28X[d24/ker->s3][128X[104X
    [4X[25Xgap>[125X [27XDisplay( iX24 );               [127X[104X
    [4X[28XCrossed module [d24/ker->s3] :- [128X[104X
    [4X[28X: Source group d24/ker has generators:[128X[104X
    [4X[28X  [ ( 1,11, 5, 4,10, 8)( 2,12, 6, 3, 9, 7), [128X[104X
    [4X[28X  ( 1, 2)( 3, 4)( 5, 9)( 6,10)( 7,11)( 8,12) ][128X[104X
    [4X[28X: Range group s3 has generators:[128X[104X
    [4X[28X  [ (13,14,15), (14,15) ][128X[104X
    [4X[28X: Boundary homomorphism maps source generators to:[128X[104X
    [4X[28X  [ (13,14,15), (14,15) ][128X[104X
    [4X[28X: Action homomorphism maps range generators to automorphisms:[128X[104X
    [4X[28X  (13,14,15) --> { source gens --> [ ( 1,11, 5, 4,10, 8)( 2,12, 6, 3, 9, 7), [128X[104X
    [4X[28X  ( 1, 6)( 2, 5)( 3, 8)( 4, 7)( 9,10)(11,12) ] }[128X[104X
    [4X[28X  (14,15) --> { source gens --> [ ( 1, 8,10, 4, 5,11)( 2, 7, 9, 3, 6,12), [128X[104X
    [4X[28X  ( 1, 2)( 3, 4)( 5, 9)( 6,10)( 7,11)( 8,12) ] }[128X[104X
    [4X[28X  These 2 automorphisms generate the group of automorphisms.[128X[104X
    [4X[25Xgap>[125X [27XmorX24 := MorphismOfInducedXMod( iX24 );[127X[104X
    [4X[28X[[d24->d12] => [d24/ker->s3]][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YFor  a  second,  injective  example  we take for [22XcalX[122X the result [10XiX24[110X of the
  previous  example and for [22Xι[122X an inclusion of [22Xs_3[122X in [22Xs_4[122X. The resulting source
  group has size [22X96[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xg := (16,17,18);;  h := (16,17,18,19);;[127X[104X
    [4X[25Xgap>[125X [27Xs4 := Group( [ g, h ] );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( s4, "s4" );;[127X[104X
    [4X[25Xgap>[125X [27Xiota := GroupHomomorphismByImages( s3, s4, [e,f], [g^2*h^2,g*h^-1] );[127X[104X
    [4X[28X[ (13,14,15), (14,15) ] -> [ (17,18,19), (18,19) ][128X[104X
    [4X[25Xgap>[125X [27XiiX24 := InducedXModByCopower( iX24, iota, [ ] );[127X[104X
    [4X[28Xi*([d24/ker->s3])[128X[104X
    [4X[25Xgap>[125X [27XSize2d( iiX24 );               [127X[104X
    [4X[28X[ 96, 24 ][128X[104X
    [4X[25Xgap>[125X [27XStructureDescription( iiX24 );[127X[104X
    [4X[28X[ "C2 x GL(2,3)", "S4" ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YFor a third example we combine the previous two examples by taking for [22Xι[122X the
  more  general  case [10Xalpha = theta*iota[110X. The resulting [10XjX24[110X is isomorphic to,
  but not identical to, [10XiiX24[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xalpha := CompositionMapping( iota, epi );[127X[104X
    [4X[28X[ (1,2)(3,4,5), (4,5) ] -> [ (17,18,19), (18,19) ][128X[104X
    [4X[25Xgap>[125X [27XjX24 := InducedXMod( X24, alpha );;[127X[104X
    [4X[25Xgap>[125X [27XStructureDescription( jX24 );[127X[104X
    [4X[28X[ "C2 x GL(2,3)", "S4" ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YFor  a  fourth  example we use the version [10XInducedXMod(Q,R,S)[110X of this global
  function,  with  a normal inclusion crossed module [22X(S -> R)[122X and an inclusion
  mapping  [22XR  -> Q[122X. We take [22X(c_6 -> d_12)[122X as [22XcalX[122X and the inclusion of [22Xd_12[122X in
  [22Xd_24[122X as [22Xι[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[28X## Section 7.2.1 : Example 4 [128X[104X
    [4X[25Xgap>[125X [27Xd12b := Subgroup( d24, [ a^2, b ] );;[127X[104X
    [4X[25Xgap>[125X [27XSetName( d12b, "d12b" ); [127X[104X
    [4X[25Xgap>[125X [27Xc6b := Subgroup( d12b, [ a^2 ] );; [127X[104X
    [4X[25Xgap>[125X [27XSetName( c6b, "c6b" );  [127X[104X
    [4X[25Xgap>[125X [27XX12 := InducedXMod( d24, d12b, c6b );[127X[104X
    [4X[28Xi*([c6b->d12b])[128X[104X
    [4X[25Xgap>[125X [27XStructureDescription( X12 );[127X[104X
    [4X[28X[ "C6 x C6", "D24" ][128X[104X
    [4X[25Xgap>[125X [27XDisplay( MorphismOfInducedXMod( X12 ) );[127X[104X
    [4X[28XMorphism of crossed modules :- [128X[104X
    [4X[28X: Source = [c6b->d12b] with generating sets:[128X[104X
    [4X[28X  [ ( 6, 8)( 7, 9)(10,12,11) ][128X[104X
    [4X[28X  [ ( 6, 8)( 7, 9)(10,12,11), ( 7, 9)(11,12) ][128X[104X
    [4X[28X:  Range = i*([c6b->d12b]) with generating sets:[128X[104X
    [4X[28X  [ ( 4, 5)( 6, 7)( 8, 9)(10,11)(12,13)(14,15), [128X[104X
    [4X[28X  ( 4, 6, 8)( 5, 7, 9)(10,12,14)(11,13,15), [128X[104X
    [4X[28X  ( 4,10)( 5,11)( 6,12)( 7,13)( 8,14)( 9,15), (1,2,3) ][128X[104X
    [4X[28X  [ ( 6, 7, 8, 9)(10,11,12), ( 7, 9)(11,12) ][128X[104X
    [4X[28X: Source Homomorphism maps source generators to:[128X[104X
    [4X[28X  [ ( 4, 9, 6, 5, 8, 7)(10,15,12,11,14,13) ][128X[104X
    [4X[28X: Range Homomorphism maps range generators to:[128X[104X
    [4X[28X  [ ( 6, 8)( 7, 9)(10,12,11), ( 7, 9)(11,12) ][128X[104X
    [4X[28X#[128X[104X
  [4X[32X[104X
  
  [1X7.2-2 AllInducedXMods[101X
  
  [33X[1;0Y[29X[2XAllInducedXMods[102X( [3XQ[103X ) [32X operation[133X
  
  [33X[0;0YThis function calculates all the induced crossed modules [10XInducedXMod(Q,R,S)[110X,
  where  [10XR[110X  runs  over all conjugacy classes of subgroups of [10XQ[110X and [10XS[110X runs over
  all non-trivial normal subgroups of [10XR[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xall := AllInducedXMods( q8 );;[127X[104X
    [4X[25Xgap>[125X [27XL := List( all, x -> Source( x ) );;[127X[104X
    [4X[25Xgap>[125X [27XSort( L, function(g,h) return Size(g) < Size(h); end );;[127X[104X
    [4X[25Xgap>[125X [27XList( L, x -> StructureDescription( x ) );[127X[104X
    [4X[28X[ "1", "1", "1", "1", "C2 x C2", "C2 x C2", "C2 x C2", "C4 x C4", "C4 x C4", [128X[104X
    [4X[28X  "C4 x C4", "C2 x C2 x C2 x C2" ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X7.3 [33X[0;0YInduced cat[22X^1[122X[101X[1X-groups[133X[101X
  
  [1X7.3-1 InducedCat1Group[101X
  
  [33X[1;0Y[29X[2XInducedCat1Group[102X( [3Xargs[103X ) [32X function[133X
  [33X[1;0Y[29X[2XInducedCat1GroupByFreeProduct[102X( [3Xgrp[103X, [3Xhom[103X ) [32X property[133X
  
  [33X[0;0YThis area awaits development.[133X
  
