Before describing general functions for computing induced structures, we consider coproducts of crossed modules which provide induced crossed modules in certain cases.
Need to add here a reference (or two) for coproducts.
‣ CoproductXMod ( X1, X2 ) | ( operation ) |
‣ CoproductInfo ( X0 ) | ( attribute ) |
This function calculates the coproduct crossed module of two or more crossed modules which have a common range R. The standard method applies to calX_1 = (∂_1 : S_1 -> R) and calX_2 = (∂_2 : S_2 -> R). See below for the case of three or more crossed modules.
The source S_2 of calX_2 acts on S_1 via ∂_2 and the action of calX_1, so we can form a precrossed module (∂' : S_1 ⋉ S_2 -> R) where ∂'(s_1,s_2) = (∂_1 s_1)(∂_2 s_2). The action of this precrossed module is the diagonal action (s_1,s_2)^r = (s_1^r,s_2^r). Factoring out by the Peiffer subgroup, we obtain the coproduct crossed module calX_1 ∘ calX_2.
In the example the structure descriptions of the precrossed module, the Peiffer subgroup, and the resulting coproduct are printed out when InfoLevel(InfoXMod)
is at least 1. The coproduct comes supplied with attribute CoproductInfo
, which includes the embedding morphisms of the two factors.
gap> q8 := Group( (1,2,3,4)(5,8,7,6), (1,5,3,7)(2,6,4,8) );; gap> XAq8 := XModByAutomorphismGroup( q8 );; gap> s4b := Range( XAq8 );; gap> SetName( q8, "q8" ); SetName( s4b, "s4b" ); gap> a := q8.1;; b := q8.2;; gap> alpha := GroupHomomorphismByImages( q8, q8, [a,b], [a^-1,b] );; gap> beta := GroupHomomorphismByImages( q8, q8, [a,b], [a,b^-1] );; gap> k4b := Subgroup( s4b, [ alpha, beta ] );; SetName( k4b, "k4b" ); gap> Z8 := XModByNormalSubgroup( s4b, k4b );; gap> SetName( XAq8, "XAq8" ); SetName( Z8, "Z8" ); gap> SetInfoLevel( InfoXMod, 1 ); gap> XZ8 := CoproductXMod( XAq8, Z8 ); #I prexmod is [ [ 32, 47 ], [ 24, 12 ] ] #I peiffer subgroup is C2, [ 2, 1 ] #I the coproduct is [ "C2 x C2 x C2 x C2", "S4" ], [ [ 16, 14 ], [ 24, 12 ] ] [Group( [ f1, f2, f3, f4 ] )->s4b] gap> SetName( XZ8, "XZ8" ); gap> info := CoproductInfo( XZ8 ); rec( embeddings := [ [XAq8 => XZ8], [Z8 => XZ8] ], xmods := [ XAq8, Z8 ] ) gap> SetInfoLevel( InfoXMod, 0 );
Given a list of more than two crossed modules with a common range R, then an iterated coproduct is formed:
\bigcirc~\left[ \calX_1,\calX_2,\ldots,\calX_n\right] ~=~ \calX_1 \circ (\calX_2 \circ ( \ldots (\calX_{n-1} \circ \calX_n) \ldots ) ).
The embeddings
field of the CoproductInfo
of the resulting crossed module calY contains the n morphisms ϵ_i : calX_i -> calY (1 leqslant i leqslant n).
gap> Y := CoproductXMod( [ XAq8, XAq8, Z8, Z8 ] ); [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] )->s4b] gap> StructureDescription( Y ); [ "C2 x C2 x C2 x C2 x C2 x C2 x C2 x C2", "S4" ] gap> CoproductInfo( Y ); rec( embeddings := [ [XAq8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]], [XAq8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]], [Z8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]], [Z8 => [Group( [ f1, f2, f3, f4, f5, f6, f7, f8 ] ) -> s4b]] ], xmods := [ XAq8, XAq8, Z8, Z8 ] )
‣ InducedXMod ( args ) | ( function ) |
‣ IsInducedXMod ( xmod ) | ( property ) |
‣ InducedXModBySurjection ( xmod, hom ) | ( operation ) |
‣ InducedXModByCopower ( xmod, hom, list ) | ( operation ) |
‣ MorphismOfInducedXMod ( xmod ) | ( attribute ) |
A morphism of crossed modules (σ, ρ) : calX_1 -> calX_2 factors uniquely through an induced crossed module ρ_∗ calX_1 = (δ : ρ_∗ S_1 -> R_2). Similarly, a morphism of cat^1-groups factors through an induced cat^1-group. Calculation of induced crossed modules of calX also provides an algebraic means of determining the homotopy 2-type of homotopy pushouts of the classifying space of calX. For more background from algebraic topology see references in [BH78], [BW95], [BW96]. Induced crossed modules and induced cat^1-groups also provide the building blocks for constructing pushouts in the categories XMod and Cat1.
Data for the cases of algebraic interest is provided by a crossed module calX = (∂ : S -> R) and a homomorphism ι : R -> Q. The output from the calculation is a crossed module ι_∗calX = (δ : ι_∗S -> Q) together with a morphism of crossed modules calX -> ι_∗calX. When ι is a surjection with kernel K then ι_∗S = S/[K,S] where [K,S] is the subgroup of S generated by elements of the form s^-1s^k, s ∈ S, k ∈ K (see [BH78], Prop.9). (For many years, up until June 2018, this manual has stated the result to be [K,S], though the correct quotient had been calculated.) When ι is an inclusion the induced crossed module may be calculated using a copower construction [BW95] or, in the case when R is normal in Q, as a coproduct of crossed modules ([BW96], but not yet implemented). When ι is neither a surjection nor an inclusion, ι is factored as the composite of the surjection onto the image and the inclusion of the image in Q, and then the composite induced crossed module is constructed. These constructions use Tietze transformation routines in the library file tietze.gi
.
As a first, surjective example, we take for calX a central extension crossed module of dihedral groups, (d_24 -> d_12), and for ι a surjection d_12 -> s_3 with kernel c_2. The induced crossed module is isomorphic to (d_12 -> s_3).
gap> a := (6,7,8,9)(10,11,12);; b := (7,9)(11,12);; gap> d24 := Group( [ a, b ] );; gap> SetName( d24, "d24" ); gap> c := (1,2)(3,4,5);; d := (4,5);; gap> d12 := Group( [ c, d ] );; gap> SetName( d12, "d12" ); gap> bdy := GroupHomomorphismByImages( d24, d12, [a,b], [c,d] );; gap> X24 := XModByCentralExtension( bdy ); [d24->d12] gap> e := (13,14,15);; f := (14,15);; gap> s3 := Group( [ e, f ] );; gap> SetName( s3, "s3" );; gap> epi := GroupHomomorphismByImages( d12, s3, [c,d], [e,f] );; gap> iX24 := InducedXModBySurjection( X24, epi ); [d24/ker->s3] gap> Display( iX24 ); Crossed module [d24/ker->s3] :- : Source group d24/ker has generators: [ ( 1,11, 5, 4,10, 8)( 2,12, 6, 3, 9, 7), ( 1, 2)( 3, 4)( 5, 9)( 6,10)( 7,11)( 8,12) ] : Range group s3 has generators: [ (13,14,15), (14,15) ] : Boundary homomorphism maps source generators to: [ (13,14,15), (14,15) ] : Action homomorphism maps range generators to automorphisms: (13,14,15) --> { source gens --> [ ( 1,11, 5, 4,10, 8)( 2,12, 6, 3, 9, 7), ( 1, 6)( 2, 5)( 3, 8)( 4, 7)( 9,10)(11,12) ] } (14,15) --> { source gens --> [ ( 1, 8,10, 4, 5,11)( 2, 7, 9, 3, 6,12), ( 1, 2)( 3, 4)( 5, 9)( 6,10)( 7,11)( 8,12) ] } These 2 automorphisms generate the group of automorphisms. gap> morX24 := MorphismOfInducedXMod( iX24 ); [[d24->d12] => [d24/ker->s3]]
For a second, injective example we take for calX the result iX24
of the previous example and for ι an inclusion of s_3 in s_4. The resulting source group has size 96.
gap> g := (16,17,18);; h := (16,17,18,19);; gap> s4 := Group( [ g, h ] );; gap> SetName( s4, "s4" );; gap> iota := GroupHomomorphismByImages( s3, s4, [e,f], [g^2*h^2,g*h^-1] ); [ (13,14,15), (14,15) ] -> [ (17,18,19), (18,19) ] gap> iiX24 := InducedXModByCopower( iX24, iota, [ ] ); i*([d24/ker->s3]) gap> Size2d( iiX24 ); [ 96, 24 ] gap> StructureDescription( iiX24 ); [ "C2 x GL(2,3)", "S4" ]
For a third example we combine the previous two examples by taking for ι the more general case alpha = theta*iota
. The resulting jX24
is isomorphic to, but not identical to, iiX24
.
gap> alpha := CompositionMapping( iota, epi ); [ (1,2)(3,4,5), (4,5) ] -> [ (17,18,19), (18,19) ] gap> jX24 := InducedXMod( X24, alpha );; gap> StructureDescription( jX24 ); [ "C2 x GL(2,3)", "S4" ]
For a fourth example we use the version InducedXMod(Q,R,S)
of this global function, with a normal inclusion crossed module (S -> R) and an inclusion mapping R -> Q. We take (c_6 -> d_12) as calX and the inclusion of d_12 in d_24 as ι.
## Section 7.2.1 : Example 4 gap> d12b := Subgroup( d24, [ a^2, b ] );; gap> SetName( d12b, "d12b" ); gap> c6b := Subgroup( d12b, [ a^2 ] );; gap> SetName( c6b, "c6b" ); gap> X12 := InducedXMod( d24, d12b, c6b ); i*([c6b->d12b]) gap> StructureDescription( X12 ); [ "C6 x C6", "D24" ] gap> Display( MorphismOfInducedXMod( X12 ) ); Morphism of crossed modules :- : Source = [c6b->d12b] with generating sets: [ ( 6, 8)( 7, 9)(10,12,11) ] [ ( 6, 8)( 7, 9)(10,12,11), ( 7, 9)(11,12) ] : Range = i*([c6b->d12b]) with generating sets: [ ( 4, 5)( 6, 7)( 8, 9)(10,11)(12,13)(14,15), ( 4, 6, 8)( 5, 7, 9)(10,12,14)(11,13,15), ( 4,10)( 5,11)( 6,12)( 7,13)( 8,14)( 9,15), (1,2,3) ] [ ( 6, 7, 8, 9)(10,11,12), ( 7, 9)(11,12) ] : Source Homomorphism maps source generators to: [ ( 4, 9, 6, 5, 8, 7)(10,15,12,11,14,13) ] : Range Homomorphism maps range generators to: [ ( 6, 8)( 7, 9)(10,12,11), ( 7, 9)(11,12) ] #
‣ AllInducedXMods ( Q ) | ( operation ) |
This function calculates all the induced crossed modules InducedXMod(Q,R,S)
, where R
runs over all conjugacy classes of subgroups of Q
and S
runs over all non-trivial normal subgroups of R
.
gap> all := AllInducedXMods( q8 );; gap> L := List( all, x -> Source( x ) );; gap> Sort( L, function(g,h) return Size(g) < Size(h); end );; gap> List( L, x -> StructureDescription( x ) ); [ "1", "1", "1", "1", "C2 x C2", "C2 x C2", "C2 x C2", "C4 x C4", "C4 x C4", "C4 x C4", "C2 x C2 x C2 x C2" ]
‣ InducedCat1Group ( args ) | ( function ) |
‣ InducedCat1GroupByFreeProduct ( grp, hom ) | ( property ) |
This area awaits development.
generated by GAPDoc2HTML