Goto Chapter: Top 1 2 3 4 5 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

4 Crossed modules
 4.1 Definition and Examples
 4.2 (Pre-)Crossed Module Morphisms

4 Crossed modules

In this chapter we will present the notion of crossed modules of commutative algebras and their implementation in this package.

4.1 Definition and Examples

A crossed module is a k-algebra morphism \(\mathcal{X}:=(\partial:S\rightarrow R)\) with a left action of \(R\) on \(S\) satisfying

\[ {\bf XModAlg\ 1} ~:~ \partial(r \cdot s) = r(\partial s), \qquad {\bf XModAlg\ 2} ~:~ (\partial s) \cdot s^{\prime} = ss^{\prime}, \]

for all \(s,s^{\prime }\in S, \ r\in R\). The morphism \(\partial\) is called the boundary map of \(\mathcal{X}\)

Note that, although in this definition we have used a left action, in the category of commutative algebras left and right actions coincide.

4.1-1 XModAlgebra
‣ XModAlgebra( args )( function )

This global function calls one of the following six operations, depending on the arguments supplied.

4.1-2 XModAlgebraByIdeal
‣ XModAlgebraByIdeal( A, I )( operation )

Let \(A\) be an algebra and \(I\) an ideal of \(A\). Then \(\mathcal{X} = (inc:I\rightarrow A)\) is a crossed module whose action is left multiplication of \(A\) on \(I\). Conversely, given a crossed module \(\mathcal{X} = (\partial : S \rightarrow R)\), it is the case that \({\partial(S)}\) is an ideal of \(R\).


gap> F := GF(5);;
gap> one := One(F);;
gap> two := Z(5);; 
gap> z := Zero( F );; 
gap> l := [ [one,z,z], [z,one,z], [z,z,one] ];; 
gap> m := [ [z,one,two^3], [z,z,one], [z,z,z] ];;
gap> n := [ [z,z,one], [z,z,z], [z,z,z] ];; 
gap> A := Algebra( F, [l,m] );; 
gap> SetName( A, "A(l,m)" ); 
gap> B := Subalgebra( A, [m] );; 
gap> SetName( B, "A(m)" ); 
gap> IsIdeal( A, B ); 
true
gap> act := AlgebraActionByMultipliers( A, B );; 
gap> XAB := XModAlgebraByIdeal( A, B ); 
[ A(m) -> A(l,m) ]
gap> SetName( XAB, "XAB" ); 

4.1-3 AugmentationXMod
‣ AugmentationXMod( A )( attribute )

As a special case of the previous operation, the attribute AugmentationXMod(A) of a group algebra \(A\) is the XModAlgebraByIdeal formed using the AugmentationIdeal of the group algebra.


gap> Ak4 := GroupRing( GF(5), DihedralGroup(4) );
<algebra-with-one over GF(5), with 2 generators>
gap> Size( Ak4 );
625
gap> SetName( Ak4, "GF5[k4]" );
gap> IAk4 := AugmentationIdeal( Ak4 );
<two-sided ideal in GF5[k4], (2 generators)>
gap> Size( IAk4 );
125
gap> SetName( IAk4, "I(GF5[k4])" );
gap> XIAk4 := XModAlgebraByIdeal( Ak4, IAk4 );
[ I(GF5[k4]) -> GF5[k4] ]
gap> Display( XIAk4 );

Crossed module [I(GF5[k4])->GF5[k4]] :- 
: Source algebra I(GF5[k4]) has generators:
  [ (Z(5)^2)*<identity> of ...+(Z(5)^0)*f1, (Z(5)^2)*<identity> of ...+(Z(5)^
    0)*f2 ]
: Range algebra GF5[k4] has generators:
  [ (Z(5)^0)*<identity> of ..., (Z(5)^0)*f1, (Z(5)^0)*f2 ]
: Boundary homomorphism maps source generators to:
  [ (Z(5)^2)*<identity> of ...+(Z(5)^0)*f1, (Z(5)^2)*<identity> of ...+(Z(5)^
    0)*f2 ]

gap> Size2d( XIAk4 );
[ 125, 625 ]

4.1-4 XModAlgebraByMultiplierAlgebra
‣ XModAlgebraByMultiplierAlgebra( A )( operation )

When \(A\) is an algebra with multiplier algebra \(M\), then the map \(A \to M, ~ a \mapsto \mu_a\) is the boundary of a crossed module in which the action is the identity map on \(M\).


gap> XA := XModAlgebraByMultiplierAlgebra( A );
[ A(l,m) -> <algebra of dimension 3 over GF(5)> ]
gap> XModAlgebraAction( XA );
IdentityMapping( <algebra of dimension 3 over GF(5)> )

4.1-5 XModAlgebraBySurjection
‣ XModAlgebraBySurjection( f )( operation )

Let \(\partial : S\rightarrow R\) be a surjective algebra homomorphism whose kernel lise in the annihilator of \(S\). Define the action of \(R\) on \(S\) by \(r\cdot s = \widetilde{r}s\) where \(\widetilde{r} \in \partial^{-1}(r)\), as described in section AlgebraActionBySurjection (2.2-2) Then \(\mathcal{X}=(\partial : S\rightarrow R)\) is a crossed module with the defined action.

Continuing with the example in that section,


gap> X3 := XModAlgebraBySurjection( nat3 );; 
gap> Display( X3 ); 

Crossed module [..->..] :- 
: Source algebra has generators:
  [ [ [ 0, 1, 2, 3 ], [ 0, 0, 1, 2 ], [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ] ] ]
: Range algebra has generators:
  [ v.1, v.2 ]
: Boundary homomorphism maps source generators to:
  [ v.1 ]

4.1-6 XModAlgebraByBoundaryAndAction
‣ XModAlgebraByBoundaryAndAction( bdy, act )( operation )
‣ PreXModAlgebraByBoundaryAndAction( bdy, act )( operation )
‣ IsPreXModAlgebra( X0 )( property )

An \(R\)-algebra homomorphism \(\mathcal{X} := (\partial : S \rightarrow R)\) which satisfies the condition \({\bf XModAlg\ 1}\) is called a precrossed module. The details of these implementations can be found in [Oda09].


gap> G := SmallGroup( 4, 2 );
<pc group of size 4 with 2 generators>
gap> F := GaloisField( 4 );
GF(2^2)
gap> R := GroupRing( F, G );
<algebra-with-one over GF(2^2), with 2 generators>
gap> Size( R );
256
gap> SetName( R, "GF(2^2)[k4]" ); 
gap> e5 := Elements( R )[5]; 
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
gap> S := Subalgebra( R, [e5] );;
gap> SetName( S, "<e5>" );
gap> RS := Cartesian( R, S );; 
gap> SetName( RS, "GF(2^2)[k4] x <e5>" ); 
gap> act := AlgebraAction( R, RS, S );;
gap> bdy := AlgebraHomomorphismByFunction( S, R, r->r );
MappingByFunction( <e5>, GF(2^2)[k4], function( r ) ... end )
gap> IsAlgebraAction( act ); 
true
gap> IsAlgebraHomomorphism( bdy );
true
gap> XM := PreXModAlgebraByBoundaryAndAction( bdy, act );
[<e5>->GF(2^2)[k4]]
gap> IsXModAlgebra( XM );
true
gap> Display( XM );

Crossed module [<e5>->GF(2^2)[k4]] :- 
: Source algebra has generators:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]
: Range algebra GF(2^2)[k4] has generators:
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ]
: Boundary homomorphism maps source generators to:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]


4.1-7 XModAlgebraByModule
‣ XModAlgebraByModule( M, R )( operation )

Let \(M\) be a \(R\)-module. Then \(\mathcal{X} = (0:M\rightarrow R)\) is a crossed module. Conversely, given a crossed module \(\mathcal{X} = (\partial :M\rightarrow R)\), one can get that \(\ker\partial\) is a \((R/\partial M)\)-module.


gap> ## example needed 

4.1-8 Source
‣ Source( X0 )( attribute )
‣ Range( X0 )( attribute )
‣ Boundary( X0 )( attribute )
‣ XModAlgebraAction( X0 )( attribute )

These four attributes are used in the construction of a crossed module \(\mathcal{X}\) where:

The following standard GAP operations have special XModAlg implementations:

In the following example, we construct a crossed module by using the algebra \(GF_{5}D_{4}\) and its augmentation ideal. We also show usage of the attributes listed above.


gap> f := Boundary( XIAk4 );
MappingByFunction( I(GF5[k4]), GF5[k4], function( i ) ... end )
gap> Print( RepresentationsOfObject(XIAk4), "\n" ); 
[ "IsComponentObjectRep", "IsAttributeStoringRep", "IsPreXModAlgebraObj" ]
gap> props := [ "CanEasilyCompareElements", "CanEasilySortElements", 
>  "IsDuplicateFree", "IsLeftActedOnByDivisionRing", "IsAdditivelyCommutative", 
>  "IsLDistributive", "IsRDistributive", "IsPreXModDomain", "Is2dAlgebraObject", 
>  "IsPreXModAlgebra", "IsXModAlgebra" ];;
gap> known := KnownPropertiesOfObject( XIAk4 );;
gap> ForAll( props, p -> (p in known) );
true
gap> Print( KnownAttributesOfObject(XIAk4), "\n" ); 
[ "Name", "Range", "Source", "Boundary", "Size2d", "XModAlgebraAction" ]

4.1-9 SubXModAlgebra
‣ SubXModAlgebra( X0 )( operation )
‣ IsSubXModAlgebra( X0 )( operation )

A crossed module \(\mathcal{X}^{\prime } = (\partial ^{\prime }:S^{\prime}\rightarrow R^{\prime })\) is a subcrossed module of the crossed module \(\mathcal{X} = (\partial :S\rightarrow R)\) if \(S^{\prime }\leq S\), \(R^{\prime}\leq R\), \(\partial^{\prime } = \partial|_{S^{\prime }}\), and the action of \(S^{\prime }\) on \(R^{\prime }\) is induced by the action of \(R\) on \(S\). The operation SubXModAlgebra is used to construct a subcrossed module of a given crossed module.


gap> e4 := Elements( IAk4 )[4];
(Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2
gap> Je4 := Ideal( IAk4, [e4] );;
gap> Size( Je4 );
5
gap> SetName( Je4, "<e4>" ); 
gap> XJe4 := XModAlgebraByIdeal( Ak4, Je4 );
[ <e4> -> GF5[k4] ]
gap> Display( XJe4 );        

Crossed module [<e4>->GF5[k4]] :- 
: Source algebra <e4> has generators:
  [ (Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2 ]
: Range algebra GF5[k4] has generators:
  [ (Z(5)^0)*<identity> of ..., (Z(5)^0)*f1, (Z(5)^0)*f2 ]
: Boundary homomorphism maps source generators to:
  [ (Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2 ]

gap> IsSubXModAlgebra( XIAk4, XJe4 );
true

4.2 (Pre-)Crossed Module Morphisms

Let \(\mathcal{X} = (\partial:S\rightarrow R)\), \(\mathcal{X}^{\prime} = (\partial^{\prime }:S^{\prime }\rightarrow R^{\prime })\) be (pre)crossed modules and \(\theta :S\rightarrow S^{\prime }\), \(\varphi : R\rightarrow R^{\prime }\) be algebra homomorphisms. If

\[ \varphi \circ \partial = \partial ^{\prime } \circ \theta, \qquad \theta (r\cdot s)=\varphi(r) \cdot \theta (s), \]

for all \(r\in R\), \(s\in S,\) then the pair \((\theta ,\varphi )\) is called a morphism between \(\mathcal{X}\) and \(\mathcal{X}^{\prime } \)

The conditions can be thought as the commutativity of the following diagrams:

\[ \xymatrix@R=40pt@C=40pt{ S \ar[d]_{\partial} \ar[r]^{\theta} & S^{\prime } \ar[d]^{\partial^{\prime }} \\ R \ar[r]_{\varphi} & R^{\prime } } \ \ \ \ \xymatrix@R=40pt@C=40pt{ R \times S \ar[d] \ar[r]^{ \varphi \times \theta } & R^{\prime } \times S^{\prime } \ar[d] \\ S \ar[r]_{ \theta } & S^{\prime }. } \]

In GAP we define the morphisms between algebraic structures such as cat\(^{1}\)-algebras and crossed modules and they are investigated by the function Make2dAlgebraMorphism.

4.2-1 XModAlgebraMorphism
‣ XModAlgebraMorphism( arg )( function )
‣ IdentityMapping( X0 )( method )
‣ PreXModAlgebraMorphismByHoms( f, g )( operation )
‣ XModAlgebraMorphismByHoms( f, g )( operation )
‣ IsPreXModAlgebraMorphism( f )( property )
‣ IsXModAlgebraMorphism( f )( property )
‣ Source( m )( attribute )
‣ Range( m )( attribute )
‣ IsTotal( m )( method )
‣ IsSingleValued( m )( method )
‣ Name( m )( method )

These operations construct crossed module homomorphisms, which may have the attributes listed.


gap> c4 := CyclicGroup( 4 );;
gap> Ac4 := GroupRing( GF(2), c4 );
<algebra-with-one over GF(2), with 2 generators>
gap> SetName( Ac4, "GF2[c4]" );
gap> IAc4 := AugmentationIdeal( Ac4 );
<two-sided ideal in GF2[c4], (dimension 3)>
gap> SetName( IAc4, "I(GF2[c4])" );
gap> XIAc4 := XModAlgebra( Ac4, IAc4 );
[ I(GF2[c4]) -> GF2[c4] ]
gap> Bk4 := GroupRing( GF(2), SmallGroup( 4, 2 ) );
<algebra-with-one over GF(2), with 2 generators>
gap> SetName( Bk4, "GF2[k4]" );
gap> IBk4 := AugmentationIdeal( Bk4 );
<two-sided ideal in GF2[k4], (dimension 3)>
gap> SetName( IBk4, "I(GF2[k4])" );
gap> XIBk4 := XModAlgebra( Bk4, IBk4 );
[ I(GF2[k4]) -> GF2[k4] ]
gap> IAc4 = IBk4;
false
gap> homIAIB := AllHomsOfAlgebras( IAc4, IBk4 );; 
gap> theta := homIAIB[3];; 
gap> homAB := AllHomsOfAlgebras( Ac4, Bk4 );;
gap> phi := homAB[7];; 
gap> mor := XModAlgebraMorphism( XIAc4, XIBk4, theta, phi );
[[I(GF2[c4])->GF2[c4]] => [I(GF2[k4])->GF2[k4]]]
gap> Display( mor );

Morphism of crossed modules :- 
: Source = [I(GF2[c4])->GF2[c4]]
:  Range = [I(GF2[k4])->GF2[k4]]
: Source Homomorphism maps source generators to:
  [ <zero> of ..., (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^
    0)*f1*f2, (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^
    0)*f1*f2 ]
: Range Homomorphism maps range generators to:
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2, 
  (Z(2)^0)*<identity> of ... ]

gap> IsTotal( mor );
true
gap> IsSingleValued( mor );
true

4.2-2 Kernel
‣ Kernel( X0 )( method )

Let \((\theta,\varphi) : \mathcal{X} = (\partial : S \rightarrow R) \rightarrow \mathcal{X}^{\prime} = (\partial^{\prime} : S^{\prime} \rightarrow R^{\prime})\) be a crossed module homomorphism. Then the crossed module

\[ \ker(\theta,\varphi) = (\partial| : \ker\theta \rightarrow \ker\varphi ) \]

is called the kernel of \((\theta,\varphi)\). Also, \(\ker(\theta ,\varphi )\) is an ideal of \(\mathcal{X}\). An example is given below.


gap> Xmor := Kernel( mor );
[ <algebra of dimension 2 over GF(2)> -> <algebra of dimension 2 over GF(2)> ]
gap> IsXModAlgebra( Xmor );
true
gap> Size2d( Xmor );
[ 4, 4 ]
gap> IsSubXModAlgebra( XIAc4, Xmor );
true

4.2-3 Image
‣ Image( X0 )( operation )

Let \((\theta,\varphi) : \mathcal{X} = (\partial : S \rightarrow R) \rightarrow \mathcal{X}^{\prime} = (\partial^{\prime} : S^{\prime} \rightarrow R^{\prime})\) be a crossed module homomorphism. Then the crossed module

\[ \Im(\theta,\varphi) = (\partial^{\prime}| : \Im\theta \rightarrow \Im\varphi) \]

is called the image of \((\theta,\varphi)\). Further, \(\Im(\theta,\varphi)\) is a subcrossed module of \((S^{\prime},R^{\prime},\partial^{\prime})\).

In this package, the image of a crossed module homomorphism can be obtained by the command ImagesSource. The operation Sub2dAlgObject is effectively used for finding the kernel and image crossed modules induced from a given crossed module homomorphism.

4.2-4 SourceHom
‣ SourceHom( m )( attribute )
‣ RangeHom( m )( attribute )
‣ IsInjective( m )( property )
‣ IsSurjective( m )( property )
‣ IsBijjective( m )( property )

Let \((\theta,\varphi)\) be a homomorphism of crossed modules. If the homomorphisms \(\theta\) and \(\varphi\) are injective (surjective) then \((\theta,\varphi)\) is injective (surjective).

The attributes SourceHom and RangeHom store the two algebra homomorphisms \(\theta\) and \(\varphi\).


gap> ic4 := One( Ac4 );;                                      
gap> e1 := ic4*c4.1 + ic4*c4.2;
(Z(2)^0)*f1+(Z(2)^0)*f2
gap> ImageElm( theta, e1 );  
(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
gap> e2 := ic4*c4.1;
(Z(2)^0)*f1
gap> ImageElm( phi, e2 );
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2
gap> IsInjective( mor );
false
gap> IsSurjective( mor );
false
gap> immor := ImagesSource2DimensionalMapping( mor );;
gap> Display( immor );

Crossed module [..->..] :- 
: Source algebra has generators:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]
: Range algebra has generators:
  [ (Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2, (Z(2)^0)*<identity> of ... ]
: Boundary homomorphism maps source generators to:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]


 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 Bib Ind

generated by GAPDoc2HTML