  
  [1X2 [33X[0;0YCrossed modules[133X[101X
  
  [33X[0;0YIn this chapter we will present the notion of crossed modules of commutative
  algebras and their implementation in this package.[133X
  
  
  [1X2.1 [33X[0;0YDefinition and Examples[133X[101X
  
  [33X[0;0YLet  [12Xk[112X  be  a fixed commutative ring with [22X1 ≠ 0[122X. From now on, all [12Xk[112X-algebras
  will be associative and commutative.[133X
  
  [33X[0;0YA  [13Xcrossed  module[113X is a [12Xk[112X-algebra morphism [22XmathcalX:=(∂:S→ R)[122X with an action
  of [22XR[122X on [22XS[122X satisfying[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y{\bf XModAlg\ 1} ~:~ \partial(r \cdot s) = r(\partial s), \qquad {\bf
        XModAlg\ 2} ~:~ (\partial s) \cdot s^{\prime} = ss^{\prime},[133X [124X[133X
  
  
  [33X[0;0Yfor  all  [22Xs,s^'  ∈  S,  r∈  R[122X.  The morphism [22X∂[122X is called the [13Xboundary map[113X of
  [22XmathcalX[122X[133X
  
  [33X[0;0YIn  this  definition  we  used  the left action notation. In the category of
  commutative algebras the right and the left actions coincide.[133X
  
  [33X[0;0YWe can produce crossed modules by using the following methods.[133X
  
  [1X2.1-1 XModAlgebra[101X
  
  [29X[2XXModAlgebra[102X( [3Xargs[103X ) [32X function
  [29X[2XXModAlgebraByBoundaryAndAction[102X( [3Xbdy[103X, [3Xact[103X ) [32X operation
  [29X[2XXModAlgebraByIdeal[102X( [3XA[103X, [3XI[103X ) [32X operation
  [29X[2XXModAlgebraByModule[102X( [3XM[103X, [3XR[103X ) [32X operation
  [29X[2XXModAlgebraByCentralExtension[102X( [3Xf[103X ) [32X operation
  [29X[2XXModAlgebraByMultipleAlgebra[102X( [3XA[103X ) [32X operation
  
  [33X[0;0YHere are the standard constructions which these operations implement:[133X
  
  [30X    [33X[0;6YLet [22XA[122X be an algebra and [22XI[122X an ideal of [22XA[122X. Then [22XmathcalX = (inc:I→ A)[122X is
        a crossed module with the multiplication action of [22XA[122X on [22XI[122X. Conversely,
        given  a  crossed  module  [22XmathcalX = (∂ : S → R)[122X, it is the case that
        [22X∂(S)[122X is an ideal of [22XR[122X.[133X
  
  [30X    [33X[0;6YLet  [22XM[122X  be  a  [22XR[122X-module. Then [22XmathcalX = (0:M→ R)[122X is a crossed module.
        Conversely,  given  a crossed module [22XmathcalX = (∂ :M→ R)[122X, one can get
        that [22Xker∂[122X is a [22X(R/∂ M)[122X-module.[133X
  
  [30X    [33X[0;6YLet  [22X∂  : S→ R[122X be a surjective algebra homomorphism. Define the action
        of  [22XR[122X  on  [22XS[122X  by  [22Xr⋅  s = widetilders[122X where [22Xwidetilder ∈ ∂^-1(r)[122X. Then
        [22XmathcalX=(∂ : S→ R)[122X is a crossed module with the defined action.[133X
  
  [30X    [33X[0;6YLet  [22XS[122X  be a [12Xk[112X-algebra such that [22XAnn(S)=0[122X or [22XS^2 = S[122X. Then [22X∂ : S→ M(S)[122X
        is a crossed module, where [22XM(S)[122X is the algebra of multipliers of [22XS[122X and
        [22X∂[122X is the canonical homomorphism, [AE03].[133X
  
  [1X2.1-2 Source[101X
  
  [29X[2XSource[102X( [3XX0[103X ) [32X attribute
  [29X[2XRange[102X( [3XX0[103X ) [32X attribute
  [29X[2XBoundary[102X( [3XX0[103X ) [32X attribute
  [29X[2XXModAlgebraAction[102X( [3XX0[103X ) [32X attribute
  
  [33X[0;0YThese  four  attributes  are  used  in  the construction of a crossed module
  [22XmathcalX[122X where:[133X
  
  [30X    [33X[0;6Y[10XSource(X)[110X  and  [10XRange(X)[110X  are the [13Xsource[113X and the [13Xrange[113X of the boundary
        map respectively;[133X
  
  [30X    [33X[0;6Y[10XBoundary(X)[110X is the boundary map of the crossed module [22XmathcalX[122X;[133X
  
  [30X    [33X[0;6Y[10XXModAlgebraAction(X)[110X is the action used in the crossed module.[133X
  
  [33X[0;0YThe following standard [5XGAP[105X operations have special [5XXModAlg[105X implementations:[133X
  
  [30X    [33X[0;6Y[10XDisplay(X)[110X is used to list the components of [22XmathcalX[122X;[133X
  
  [30X    [33X[0;6Y[10XSize(X)[110X  is  used  for  calculating  the  order  of the crossed module
        [22XmathcalX[122X;[133X
  
  [30X    [33X[0;6Y[10XName(X)[110X  is  used  for giving a name to the crossed module [22XmathcalX[122X by
        associating the names of source and range algebras.[133X
  
  [33X[0;0YIn the following example, we construct a crossed module by using the algebra
  [22XGF_5D_4[122X  and  its  augmentation  ideal. We also show usage of the attributes
  listed above.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA := GroupRing(GF(5),DihedralGroup(4));[127X[104X
    [4X[28X<algebra-with-one over GF(5), with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(A);[127X[104X
    [4X[28X625[128X[104X
    [4X[25Xgap>[125X [27XSetName(A,"GF5[D4]");[127X[104X
    [4X[25Xgap>[125X [27XI := AugmentationIdeal(A);[127X[104X
    [4X[28X<two-sided ideal in GF5[D4], (2 generators)>[128X[104X
    [4X[25Xgap>[125X [27XSize(I);[127X[104X
    [4X[28X125[128X[104X
    [4X[25Xgap>[125X [27XSetName(I,"Aug");[127X[104X
    [4X[25Xgap>[125X [27XCM := XModAlgebraByIdeal(A,I);[127X[104X
    [4X[28X[Aug->GF5[D4]][128X[104X
    [4X[25Xgap>[125X [27XDisplay(CM);[127X[104X
    [4X[28X[128X[104X
    [4X[28XCrossed module [Aug->GF5[D4]] :- [128X[104X
    [4X[28X: Source algebra Aug has generators:[128X[104X
    [4X[28X  [ (Z(5)^2)*<identity> of ...+(Z(5)^0)*f1, (Z(5)^2)*<identity> of ...[128X[104X
    [4X[28X  +(Z(5)^0)*f2 ][128X[104X
    [4X[28X: Range algebra GF5[D4] has generators:[128X[104X
    [4X[28X  [ (Z(5)^0)*<identity> of ..., (Z(5)^0)*f1, (Z(5)^0)*f2 ][128X[104X
    [4X[28X: Boundary homomorphism maps source generators to:[128X[104X
    [4X[28X  [ (Z(5)^2)*<identity> of ...+(Z(5)^0)*f1, (Z(5)^2)*<identity> of ...[128X[104X
    [4X[28X  +(Z(5)^0)*f2 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(CM);[127X[104X
    [4X[28X[ 125, 625 ][128X[104X
    [4X[25Xgap>[125X [27Xf := Boundary(CM);[127X[104X
    [4X[28XMappingByFunction( Aug, GF5[D4], function( i ) ... end )[128X[104X
    [4X[25Xgap>[125X [27XPrint( RepresentationsOfObject(CM), "\n" ); [127X[104X
    [4X[28X[ "IsComponentObjectRep", "IsAttributeStoringRep", "IsPreXModAlgebraObj" ][128X[104X
    [4X[25Xgap>[125X [27Xprops := [ "CanEasilyCompareElements", "CanEasilySortElements", [127X[104X
    [4X[25X>[125X [27X "IsDuplicateFree", "IsLeftActedOnByDivisionRing", "IsAdditivelyCommutative", [127X[104X
    [4X[25X>[125X [27X "IsLDistributive", "IsRDistributive", "IsPreXModDomain", "Is2dAlgebraObject", [127X[104X
    [4X[25X>[125X [27X "IsPreXModAlgebra", "IsXModAlgebra" ];;[127X[104X
    [4X[25Xgap>[125X [27Xknown := KnownPropertiesOfObject(CM);;[127X[104X
    [4X[25Xgap>[125X [27XForAll( props, p -> (p in known) );[127X[104X
    [4X[28Xtrue [128X[104X
    [4X[25Xgap>[125X [27XPrint( KnownAttributesOfObject(CM), "\n" ); [127X[104X
    [4X[28X[ "Name", "Size", "Range", "Source", "Boundary", "XModAlgebraAction" ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X2.1-3 SubXModAlgebra[101X
  
  [29X[2XSubXModAlgebra[102X( [3XX0[103X ) [32X operation
  [29X[2XIsSubXModAlgebra[102X( [3XX0[103X ) [32X operation
  
  [33X[0;0YA  crossed  module  [22XmathcalX^' = (∂ ^' :S^'→ R^' )[122X is a subcrossed module of
  the  crossed module [22XmathcalX = (∂ :S→ R)[122X if [22XS^' ≤ S[122X, [22XR^'≤ R[122X, [22X∂^' = ∂|_S^' }[122X,
  and  the  action  of  [22XS^'[122X  on  [22XR^'[122X  is  induced by the action of [22XR[122X on [22XS[122X. The
  operation [10XSubXModAlgebra[110X is used to construct a subcrossed module of a given
  crossed module.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xe4 := Elements(I)[4];[127X[104X
    [4X[28X(Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2[128X[104X
    [4X[25Xgap>[125X [27XJ := Ideal( I, [e4] );[127X[104X
    [4X[28X<two-sided ideal in Aug, (1 generators)>[128X[104X
    [4X[25Xgap>[125X [27XSize(J);[127X[104X
    [4X[28X5[128X[104X
    [4X[25Xgap>[125X [27XSetName( J, "<e4>" ); [127X[104X
    [4X[25Xgap>[125X [27XPM := XModAlgebraByIdeal( A, J );[127X[104X
    [4X[28X[<e4>->GF5[D4]][128X[104X
    [4X[25Xgap>[125X [27XDisplay( PM );        [127X[104X
    [4X[28X[128X[104X
    [4X[28XCrossed module [<e4>->GF5[D4]] :- [128X[104X
    [4X[28X: Source algebra <e4> has generators:[128X[104X
    [4X[28X  [ (Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2 ][128X[104X
    [4X[28X: Range algebra GF5[D(4)] has generators:[128X[104X
    [4X[28X  [ (Z(5)^0)*<identity> of ..., (Z(5)^0)*f1, (Z(5)^0)*f2 ][128X[104X
    [4X[28X: Boundary homomorphism maps source generators to:[128X[104X
    [4X[28X  [ (Z(5)^0)*<identity> of ...+(Z(5)^0)*f1+(Z(5)^2)*f2+(Z(5)^2)*f1*f2 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XIsSubXModAlgebra( CM, PM );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X2.1-4 PreXModAlgebraByBoundaryAndAction[101X
  
  [29X[2XPreXModAlgebraByBoundaryAndAction[102X( [3Xbdy[103X, [3Xact[103X ) [32X operation
  [29X[2XIsPreXModAlgebra[102X( [3XX0[103X ) [32X property
  
  [33X[0;0YAn  [22XR[122X-algebra  homomorphism  [22XmathcalX  :=  (∂  :  S  →  R)[122X which satisfy the
  condition  [22XXModAlg  1[122X  is  called  a [13Xprecrossed module[113X. The details of these
  implementations can be found in [Oda09].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG := SmallGroup(4,2);[127X[104X
    [4X[28X<pc group of size 4 with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XF := GaloisField(4);[127X[104X
    [4X[28XGF(2^2)[128X[104X
    [4X[25Xgap>[125X [27XR := GroupRing( F, G );[127X[104X
    [4X[28X<algebra-with-one over GF(2^2), with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XSize(R);[127X[104X
    [4X[28X256[128X[104X
    [4X[25Xgap>[125X [27XSetName( R, "GF(2^2)[k4]" ); [127X[104X
    [4X[25Xgap>[125X [27Xe5 := Elements(R)[5]; [127X[104X
    [4X[28X(Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2[128X[104X
    [4X[25Xgap>[125X [27XS := Subalgebra( R, [e5] ); [127X[104X
    [4X[28X<algebra over GF(2^2), with 1 generators>[128X[104X
    [4X[25Xgap>[125X [27XSetName( S, "<e5>" );[127X[104X
    [4X[25Xgap>[125X [27XRS := Cartesian( R, S );; [127X[104X
    [4X[25Xgap>[125X [27XSetName( RS, "GF(2^2)[k4] x <e5>" ); [127X[104X
    [4X[25Xgap>[125X [27Xact := AlgebraAction( R, RS, S );;[127X[104X
    [4X[25Xgap>[125X [27Xbdy := AlgebraHomomorphismByFunction( S, R, r->r );[127X[104X
    [4X[28XMappingByFunction( <e5>, GF(2^2)[k4], function( r ) ... end )[128X[104X
    [4X[25Xgap>[125X [27XIsAlgebraAction( act ); [127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsAlgebraHomomorphism( bdy );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XXM := PreXModAlgebraByBoundaryAndAction( bdy, act );[127X[104X
    [4X[28X[<e5>->GF(2^2)[k4]][128X[104X
    [4X[25Xgap>[125X [27XIsXModAlgebra( XM );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XDisplay( XM );[127X[104X
    [4X[28X[128X[104X
    [4X[28XCrossed module [<e5>->GF(2^2)[k4]] :- [128X[104X
    [4X[28X: Source algebra has generators:[128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ][128X[104X
    [4X[28X: Range algebra GF(2^2)[k4] has generators:[128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ][128X[104X
    [4X[28X: Boundary homomorphism maps source generators to:[128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X2.2 [33X[0;0Y(Pre-)Crossed Module Morphisms[133X[101X
  
  [33X[0;0YLet  [22XmathcalX  =  (∂:S→  R)[122X,  [22XmathcalX^' = (∂^' :S^' → R^' )[122X be (pre)crossed
  modules and [22Xθ :S→ S^'[122X, [22Xφ : R→ R^'[122X be algebra homomorphisms. If[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y\varphi \circ \partial = \partial ^{\prime } \circ \theta, \qquad
        \theta (r\cdot s)=\varphi(r) \cdot \theta (s),[133X [124X[133X
  
  
  [33X[0;0Yfor  all  [22Xr∈  R[122X,  [22Xs∈  S,[122X  then the pair [22X(θ ,φ )[122X is called a morphism between
  [22XmathcalX[122X and [22XmathcalX^'[122X[133X
  
  [33X[0;0YThe  conditions  can  be  thought  as  the  commutativity  of  the following
  diagrams:[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y\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 }. }[133X [124X[133X
  
  
  [33X[0;0YIn  [5XGAP[105X  we  define  the  morphisms  between  algebraic  structures  such as
  cat[22X^1[122X-algebras and crossed modules and they are investigated by the function
  [10XMake2AlgMorphism[110X.[133X
  
  [1X2.2-1 XModAlgebraMorphism[101X
  
  [29X[2XXModAlgebraMorphism[102X( [3Xarg[103X ) [32X function
  [29X[2XIdentityMapping[102X( [3XX0[103X ) [32X operation
  [29X[2XPreXModAlgebraMorphismByHoms[102X( [3Xf[103X, [3Xg[103X ) [32X operation
  [29X[2XXModAlgebraMorphismByHoms[102X( [3Xf[103X, [3Xg[103X ) [32X operation
  [29X[2XIsPreXModAlgebraMorphism[102X( [3Xf[103X ) [32X property
  [29X[2XIsXModAlgebraMorphism[102X( [3Xf[103X ) [32X property
  [29X[2XSource[102X( [3Xm[103X ) [32X attribute
  [29X[2XRange[102X( [3Xm[103X ) [32X attribute
  [29X[2XIsTotal[102X( [3Xm[103X ) [32X property
  [29X[2XIsSingleValued[102X( [3Xm[103X ) [32X property
  [29X[2XName[102X( [3Xm[103X ) [32X attribute
  
  [33X[0;0YThese  operations construct crossed module homomorphisms, which may have the
  attributes listed.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XA:=GroupRing(GF(2),CyclicGroup(4));[127X[104X
    [4X[28X<algebra-with-one over GF(2), with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XB:=AugmentationIdeal(A);[127X[104X
    [4X[28X<two-sided ideal in <algebra-with-one over GF(2), with 2 generators>, [128X[104X
    [4X[28X(dimension 3)>[128X[104X
    [4X[25Xgap>[125X [27XX1:=XModAlgebra(A,B);[127X[104X
    [4X[28X[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, [128X[104X
    [4X[28X(Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2[128X[104X
    [4X[28X ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )][128X[104X
    [4X[25Xgap>[125X [27XC:=GroupRing(GF(2),SmallGroup(4,2));[127X[104X
    [4X[28X<algebra-with-one over GF(2), with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XD:=AugmentationIdeal(C);[127X[104X
    [4X[28X<two-sided ideal in <algebra-with-one over GF(2), with 2 generators>, [128X[104X
    [4X[28X(dimension 3)>[128X[104X
    [4X[25Xgap>[125X [27XX2:=XModAlgebra(C,D);[127X[104X
    [4X[28X[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, [128X[104X
    [4X[28X(Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2[128X[104X
    [4X[28X ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )][128X[104X
    [4X[25Xgap>[125X [27XB = D;[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27Xall_f := AllHomsOfAlgebras(A,C);;[127X[104X
    [4X[25Xgap>[125X [27Xall_g := AllHomsOfAlgebras(B,D);;[127X[104X
    [4X[25Xgap>[125X [27Xmor := XModAlgebraMorphism(X1,X2,all_g[1],all_f[2]);[127X[104X
    [4X[28X[[..] => [..]][128X[104X
    [4X[25Xgap>[125X [27XDisplay(mor);[127X[104X
    [4X[28X[128X[104X
    [4X[28XMorphism of crossed modules :-[128X[104X
    [4X[28X: Source = [Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, [128X[104X
    [4X[28X  (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ] )->AlgebraWithOne( GF(2), [128X[104X
    [4X[28X  [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )] with generating sets:[128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f2, [128X[104X
    [4X[28X  (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ][128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ][128X[104X
    [4X[28X:  Range = [Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, [128X[104X
    [4X[28X  (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ] )->AlgebraWithOne( GF(2), [128X[104X
    [4X[28X  [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )] with generating sets:[128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f2, [128X[104X
    [4X[28X  (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ] [128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ][128X[104X
    [4X[28X: Source Homomorphism maps source generators to:[128X[104X
    [4X[28X  [ <zero> of ..., <zero> of ..., <zero> of ... ][128X[104X
    [4X[28X: Range Homomorphism maps range generators to:[128X[104X
    [4X[28X  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*<identity> of ..., [128X[104X
    [4X[28X  (Z(2)^0)*<identity> of ... ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XIsTotal(mor);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsSingleValued(mor);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X2.2-2 Kernel[101X
  
  [29X[2XKernel[102X( [3XX0[103X ) [32X operation
  
  [33X[0;0YLet  [22X(θ,φ)  :  mathcalX  = (∂ : S → R) → mathcalX^' = (∂^' : S^' → R^')[122X be a
  crossed module homomorphism. Then the crossed module[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y\ker(\theta,\varphi) = (\partial| : \ker\theta \rightarrow \ker\varphi
        )[133X [124X[133X
  
  
  [33X[0;0Yis  called the [13Xkernel[113X of [22X(θ,φ)[122X. Also, [22Xker(θ ,φ )[122X is an ideal of [22XmathcalX[122X. An
  example is given below.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XX3 := Kernel(mor);[127X[104X
    [4X[28X[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, [128X[104X
    [4X[28X(Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2[128X[104X
    [4X[28X ] )->Algebra( GF(2), [ (Z(2)^0)*f1+(Z(2)^0)*f2, [128X[104X
    [4X[28X (Z(2)^0)*f1+(Z(2)^0)*f1*f2, (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1[128X[104X
    [4X[28X ] )][128X[104X
    [4X[25Xgap>[125X [27XIsXModAlgebra(X3);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSize(X3);[127X[104X
    [4X[28X[ 8, 8 ][128X[104X
    [4X[25Xgap>[125X [27XIsSubXModAlgebra(X1,X3);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X2.2-3 Image[101X
  
  [29X[2XImage[102X( [3XX0[103X ) [32X operation
  
  [33X[0;0YLet  [22X(θ,φ)  :  mathcalX  = (∂ : S → R) → mathcalX^' = (∂^' : S^' → R^')[122X be a
  crossed module homomorphism. Then the crossed module[133X
  
  
        [33X[1;6Y[24X[33X[0;0Y\mathop{\textrm{Im}\rm}(\theta,\varphi) = (\partial^{\prime}| :
        \mathop{\textrm{Im}\rm}\theta \rightarrow
        \mathop{\textrm{Im}\rm}\varphi)[133X [124X[133X
  
  
  [33X[0;0Yis  called  the  image  of [22X(θ,φ)[122X. Further, [22XIm(θ,φ)[122X is a subcrossed module of
  [22X(S^',R^',∂^')[122X.[133X
  
  [33X[0;0YIn  our  package, the image of a crossed module homomorphism can be obtained
  by   the   command   [10XImage2dAlgMapping[110X.   The  operation  [10XSub2dAlgObject[110X  is
  effectively  used  for  finding the kernel and image crossed modules induced
  from a given crossed module homomorphism.[133X
  
  [1X2.2-4 SourceHom[101X
  
  [29X[2XSourceHom[102X( [3Xm[103X ) [32X attribute
  [29X[2XRangeHom[102X( [3Xm[103X ) [32X attribute
  [29X[2XIsInjective[102X( [3Xm[103X ) [32X property
  [29X[2XIsSurjective[102X( [3Xm[103X ) [32X property
  [29X[2XIsBijjective[102X( [3Xm[103X ) [32X property
  
  [33X[0;0YLet [22X(θ,φ)[122X be a homomorphism of crossed modules. If the homomorphisms [22Xθ[122X and [22Xφ[122X
  are injective (surjective) then [22X(θ,φ)[122X is injective (surjective).[133X
  
  [33X[0;0YThe  attributes [10XSourceHom[110X and [10XRangeHom[110X store the two algebra homomorphisms [22Xθ[122X
  and [22Xφ[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xtheta := SourceHom(mor);[127X[104X
    [4X[28X[ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f2, [128X[104X
    [4X[28X(Z(2)^0)*f2+(Z(2)^0)*f1*f2 ] ->[128X[104X
    [4X[28X[ <zero> of ..., <zero> of ..., <zero> of ... ][128X[104X
    [4X[25Xgap>[125X [27Xphi := RangeHom(mor);[127X[104X
    [4X[28X[ (Z(2)^0)*f1 ] -> [ (Z(2)^0)*<identity> of ... ][128X[104X
    [4X[25Xgap>[125X [27XIsInjective(mor);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XIsSurjective(mor);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
