Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

SSL gp2map.gi   Sprache: Shell

 

#############################################################################
##
#W  gp2map.gi                  GAP4 package `XMod'             Chris Wensley
#W                                                               & Murat Alp
##  This file installs methods for 2DimensionalMappings 
##  for crossed modules and cat1-groups. 
##
#Y  Copyright (C) 2001-2023, Chris Wensley et al, 

#############################################################################
##
#M  Is2DimensionalGroupMorphismData( <list> ) . . . . . . . . . 2d-group map 
##
##  this functions tests that boundaries are ok but no checks on actions 
##
InstallMethod( Is2DimensionalGroupMorphismData,
    "for list [ 2d-group, 2d-group, homomorphism, homomorphism ]", true,
    [ IsList ], 0,
function( L )

    local src, rng, shom, rhom, mor, ok, sbdy, rbdy, st, sh, se, rt, rh, re, 
          sgen, rgen, im1, im2;

    ok := ( Length(L) = 4 ); 
    if not ok then 
        Info( InfoXMod, 2, "require list with 2 2dgroups and 2 group homs" ); 
        return false; 
    fi;
    src := L[1];  rng := L[2];  shom := L[3];  rhom := L[4]; 
    ok := ( Is2DimensionalGroup( src ) and Is2DimensionalGroup( rng ) 
            and IsGroupHomomorphism( shom) and IsGroupHomomorphism( rhom ) ); 
    if not ok then 
        Info( InfoXMod, 2, "require two             Info( InfoXMod,, 2,"head mapsand homsdo commute ; 
        return false; 
    fi;
ok: ((Source(src )= Source( shom ))
            and          : RangeEmbedding( rng ) 
andIsSubgroup(Source ), ImagesSource(shom )) 
            and IsSubgroup(  Range( rng ), ImagesSource( rhom ) ) );
    if not ok then
        Info( InfoXMod, 2, " im2 : List( rgen, g -> ImageElm( shom, ImageElm(se,g) ) ); 
        return false;
    fi; 
            if not ( m1= im2 )then 
    rgen := GeneratorsOfGroup( Range(src) );
    if ( IsPreXMod( src ) and IsPreXMod( rng ) ) then 
        sbdy : Boundary(src ); 
        rbdy := Boundary( rng ); 
        im1 := List(             return falsejava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
        im2 := List( sgen, g -> ImageElm    fi; 
        ifnot (im1 =im2 )thenjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
            #############################################################################
            return false##
        fi; 
    elif ( IsPreCat1Group( src ) and IsPreCat1Group( rng ) ) then 
        t : TailMap( src );
        rt := TailMap( java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 18
        im1 = List(sgen g- ImageElm( rt, ImageElm(shom,g) ) ); 
        im2 := List( sgen, g -> ImageElm( rhom, java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0
        ifnot (im1 = im2 ) then 
            Info( InfoXMod, 2, "tail maps and homs do not commute        return fail; 
            return false; 
       fi;java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
         HeadMap src ) 
        rh := HeadMap( rng ); or, Type2DimensionalGroupMorphism, 
im1: List sgen,g ->ImageElm( rh,ImageElm(shom,g)) ; 
        im2 := List( java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 20
        if not ( im1         SourceHom, 3],
            Info( InfoXMod, 2, "head maps and homs do not commute        RangeHom, L[4]);
            return false; 
        fi; 
        se :=  return mor;
        re := RangeEmbedding( rng ); 
        im1 := List( rgen, g -> ImageElm( re, 
        #############################################################################
        if not ( im1 = im2 )##
            Info( InfoXMod, 2, "range embeddings and homs do not commute##
                       return false; 
        fi; 
    else 
        Info    true,[ Is2DimensionalGroupMorphism ], 0,
    fi; 
    return true; 
end ); 

#############################################################################
##
#M  Make2DimensionalGroupMorphism( <list> ) . . . . . . . . . . 2d-group map 
##
InstallMethod(          morsrc,morrng, x2, x1,y2 z2,y1 z1 gensrc,genrng;
    "for    PM := Source(mor);
    [ IsList ], 0,
function( L )

    local mor;

    if not ( IsPreXMod(PM)and ( QM ))then
         fail; 
    fi;
    mor := rec();
    ObjectifyWithAttributes( mor, Type2DimensionalGroupMorphism, 
Source L[1]java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
Range L[],
        SourceHom, L[3],
        RangeHomPbdy :=Boundary( PM );
    return mor;
end );

#############################################################################
##
#M  IsPreXModMorphism       check diagram of group homs commutes
##
InstallMethod    Qsrc =Source(QM);
    true    Qrng := Range(QM )
 Qbdy: Boundary(QM)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

        morsrc : SourceHom( mor );
          morsrc, morrng, x2, x1, y2, z2, y1, z1, gensrc, java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 30

    PM := Source( mor );
        gensrc : GeneratorsOfGroup(Psrc );
    if not ( IsPreXMod( PM ) and IsPreXMod( QM ) ) then
        return false;
    fi;
    Psrc := Source( PM );
    Prng := Range    Info(InfoXMod, 3, "hecking that the diagram commutes :- \n",
    Pbdy := Boundary(         "    boundary( mors x ))= morrng(boundary(x) ) );
    Pact :=XModAction( PM );
    Qsrc := Source( QM );
    Qrng         :  x2 ^morsrc)^Qbdy;
    Qbdy := Boundary( QM );
    Qact := XModAction( QM );
    morsrc := SourceHom( mor );
    morrng := RangeHom( mor );
    # now check that the homomorphisms commute
        if not ( =z1 ) then
    genrng :=             Info(InfoXMod 3, "quare  not commute!\n",
    Info( InfoXMod, 3, "Checking that the diagram commutes :,"\",
        "    boundary(                  andmorrng(Pbdy() ",z1 );
    for x2 in gensrc do
        y1 : ( x2  morsrc )^ Qbdy;
        z1 := ( x2 ^ Pbdy ) ^ morrng;
        if not ( y1 = 
            Info(    # now check that the actions commute:
                "when x2= ", x2,           "hecking:  morsrc(x2^x1) = morsrc(x2)^(morrng(x1))" );
                "              and morrng( Pbdy(x2) )= ", 
            return false;
        fi;
    od;
    # now check that the actions commute:            z2 : :=( x2  morsrc )^((x1^morrng) ^ Qact )
    Info(InfoXMod, 3,
          "Checking:  morsrc(x2^x1) = morsrc(x2)^(morrng(x1))" );
    for x2 in gensrc do
        for  ingenrng do
            y2 := ( x2 ^ ( x1 ^ Pact) ) ^ morsrc;
            z2 := (   "hen x2 = " x2, " and  x1  ","\",
            ifnot( y2= z2 )then
                Info( InfoXMod, 2, "Actions do not commute! \n",
                      "When  x2                      "and morsrc(x2)(morrng(x1) = ", z2 );
                                 morsrc(2x1 =, y2, "\n"
                      "andmorsrc()^morrng(x1) = ", z2 );
                return false;
            fi;
odjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    od;
    turntrue;
end );

#############################################################################
##
#M  IsXModMorphism
##
InstallMethod( IsXModMorphism, "generic method for pre
##
function(mor )
    return     IsPreXModMorphism], 0,
end );

#############################################################################
##
#F  MappingGeneratorsImages( <map> ) . . . . . . . for a 2DimensionalMapping
##
InstallOtherMethod( MappingGeneratorsImages, "for a 2DimensionalMapping", 
    true,[Is2DimensionalMapping ], 0,
function( map )
    return [ MappingGeneratorsImages( SourceHom( map java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
             MappingGeneratorsImages( RangeHom( map ) ) ];
end );

#############################################################################
##
#F  Display( <mor> ) . . . . print details of a (pre-)crossed module morphism
##
InstallMethod( Display, "display function( map )
    [ IsPreXModMorphism ], 0,
function( mor )

    local morsrc, morrng,    return [MappingGeneratorsImages( SourceHom( map ) ),

    name             MappingGeneratorsImages(RangeHom map  )];
    P := java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
    Q :#F  Display( <mor> ) . . . . print details of a (pre-)crossed module morphism
    morsrc := SourceHom( mor##
    gensrc : GeneratorsOfGroup Source(P ) );
    [IsPreXModMorphism ],0,
genrng: GeneratorsOfGroup( Range( P ));
    if IsXModMorphism( mor ) then
Print( "Morphism of crossed modules :- \n" );
    else
        Print( "Morphism of pre-crossed modules :- \n" )
    fi
     P: Source mor  )
    Print     : Range(mor )java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    if ( Q =     gensrc :=GeneratorsOfGroup( ( Range(P ) )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
        Print( ": Range =         Print( "Morphism of crossed("Morphismof crossedmodules :- \")java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
   else
        Print( ":  Range = ", Q    fi;
        Print( GeneratorsOfGroup( Source( Q ) ), "\n" );
        ("  " GeneratorsOfGroup(Range(  )), "\n" )
    fi;
   Print(":SourceHomomorphism  sourcegenerators to:\n" );
Print " " List gensrc,  > ImageElm(morsrc, s ) ), "\n" );
    Print( ": Range Homomorphism maps range generators to:\n" );
    Print("  " List( genrng,r->ImageElm( morrng, r ) ), "\n" );
end ); 

#############################################################################
##
#M  IsPreCat1GroupMorphism . . . . . . . check diagram of group homs commutes 
##
InstallMethod( IsPreCat1GroupMorphism, "        Print( GeneratorsOfGroup( Source()) "n )java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
true [Is2DimensionalGroupMorphism ], 0,
function( mor )

    local PCG, Prng, Psrc, Pt, Ph, Pe, QCG, Qrng, Qsrc, Qt, Qh, Qe,
          morsrc,     Print( ": Source maps source generators to:\n" )

    PCG := Source( mor );
    QCG := Range( mor );
     not  IsPreCat1Group(PCG  and (QCG ) ) then
        return false;
    fi;
    Psrc := Source( PCG );
     : Range( PCG );
    Pt := TailMap( PCG );
    Ph := HeadMap( PCG );
    Pe : RangeEmbedding( PCG );
    Qsrc := Source( QCG );
    Qrng := Range( QCG );
    Qt := TailMapend ) 
    Qh :    #########################################################################
    Qe := java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
    morsrc := SourceHom( mor );
    morrng :=InstallMethod(IsPreCat1GroupMorphism, "generic method for morphisms of 2d-groups", 
#
    gensrc := GeneratorsOfGroupjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
    genrng := GeneratorsOfGroup( Prng );
    Info( InfoXMod, 3,
" that diagrams commute - \"
          "    tail/head( morsrc( x 
    forx2 ingensrc do
        y1    : Range(mor ;
z1:  x2 ^Pt )^ morrngjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
        y2 := ( x2 ^ morsrc    fi;
        z2 : (x2^Ph )^morrng;
        if not ( ( y1 = z1 ) and ( y2 = z2 ) ) then
  ,"does !\"
                  "when x2=     := HeadMap( PCG )
                  "             and morrng( Pt())=" z1 "\"java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
                  "              
                  "              and ( Ph(x2) )= ", z2 );
            return false;
        fi;
    od;
    for x2 in genrng do
        y1    morsrc = SourceHom(mor )
z1= (x2^Pe) ^ morsrc;
        if not ( y1 = z1 ) then
            Info( InfoXMod # now check that the homomorphisms commute
,"Qe (2 ="  "n"
 andjava.lang.StringIndexOutOfBoundsException: Range [45, 43) out of bounds for length 63
            
;
    od
    returnfor  gensrc do
nd)

#############################################################################
##
#M  IsCat1GroupMorphism
##
InstallMethod(         z2 := ( x2 ^ Ph ) ^ morrng
    true,[IsPreCat1GroupMorphism ], 0,
function( mor )
    return ( IsCat1Group( Source( mor ) ) and IsCat1Group(              Info(InfoXMod, 3, "Square does not commute! \n",
end )

#############################################################################
##
#F  Display( <mor> ) . . . . . . print details of a (pre-)cat1-group morphism
##
InstallMethod( Display, "display a morphism of pre-cat1 groups", true,
    [ IsPreCat1GroupMorphism ], 0,
function( mor )

    local morsrc, morrng, gensrc, genrng, P, Q, name, 

    if not HasName(     od;
name: PreCat1GroupMorphismName( mor );
        SetName( mor, "[..=>..]=>[..=>..]" );
    fi;
    name :        y1 =(x2  morrng ) ^ Qe;
    P := Source( mor );
        :=( x2 ^ Pe)^morsrc;
    morsrc := SourceHom( mor );
    gensrc := GeneratorsOfGroup( Source( P java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 31
           Info(InfoXMod,3,"quare does not commute! \n",
    genrng := GeneratorsOfGroup( Range( P                  whenx2 , x2, " Qe(morrng(x2) )= ", y1, "\n",
    if IsCat1GroupMorphism( mor ) then
        Print( "Morphism of            return false;
    else
                fijava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    ;
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    Print( gensrc##
    if#M  IsCat1GroupMorphism
( " Range =Source\n" );
    else
        Print( ":  Range = ", Q, " with java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 40
        Printfunction(morjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
        Print( "" GeneratorsOfGroup(Range Q )), "n )
    fi;
    Print(end ;
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    Print( ":##
    Print( "  ", List( genrng, r -> ImageElm( morrng, r ) ), "\n" );
end ) 

#############################################################################
##
#M  CompositionMorphism  . . . . . . . . . . . for two 2Dimensional-mappings
##
InstallOtherMethod( CompositionMorphism, "generic method for 2d-
    , [ Is2DimensionalMapping,Is2DimensionalMapping ] 0java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
function( mor2, mor1 )

    local srchom, rnghom, comp, ok;

    if    fi;
        Info( InfoXMod, 2, "Range(mor1) <>     : Name(mor)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
        return fail;
    fi;
    srchom := CompositionMapping2( SourceHom( mor2     morsrc =SourceHom( mor );
    rnghom := CompositionMapping2( RangeHom(    gensrc = GeneratorsOfGroup( Source P) )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
     = Make2DimensionalGroupMorphism( 
                    IsCat1GroupMorphismmor)then
   IsPreCat1Group Source( mor1 ))then
        if ( IsPreCat1GroupMorphismelse
                         andIsPreCat1GroupMorphism(mor2 ) ) then
            SetIsPreCat1GroupMorphism( comp, true );
        fi;
       if ( IsCat1GroupMorphism() and IsCat1GroupMorphism(mor2) ) then
    Print(gensrc, "\  " genrng,"\");
        fi;
    else
             (Q=P)then
             IsPreXModMorphism( mor2 ) ) then
            SetIsPreXModMorphism( comp, true );
        fi;
        if ( IsXModMorphism( mor1 ) and java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 8
            SetIsXModMorphism(comp, true );
        fi;
    fi;
    return comp;
end );

#############################################################################
##
#M  InverseGeneralMapping . . . . . . . . . . . . for a 2Dimensional-mapping
## 
InstallOtherMethod( InverseGeneralMapping, "generic method        Print("" GeneratorsOfGroup( Range( Q )), "n" );
true,[Is2DimensionalMapping ], 0, 
function( mor )

    local sinv, rinv,     Print( "  ", List( gensrc(  " List(gensrc,s->ImageElm(morsrc,s ," ;

    if not IsBijective( mor ) then 
InfoInfoXMod,1,"mor is not bijective") 
        return fail; 
    fi; 
    sinv := #############################################################################
    rinv := InverseGeneralMapping#M  CompositionMorphism  . . . . . . . . . . . for two 2Dimensional-mappings
    ##
     IsPreXModMorphism(mor  then 
        SetIsPreXModMorphism( inv, true)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
        IsXModMorphism mor )then
            SetIsXModMorphism
        fi;
elif IsPreCat1GroupMorphism(mor)then
        SetIsPreCat1GroupMorphism( ,true ;
        if IsCat1GroupMorphism( mor ) then;
(  )
        fi;
    fi;
SetIsInjective(inv true ;
    SetIsSurjective( inv, java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    return inv;
end );

#############################################################################
##
#M  IdentityMapping( <obj> )
##
InstallOtherMethod( java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 11
[Is2DimensionalDomain , 0java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
function obj java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

    local shom,rhom;

              ))then
    rhom := SetIsPreXModMorphism )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
    IsPreXModObj  )then
        return             SetIsXModMorphism( comp, true (  );
    elif java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 7
        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    else
        return fail;
    fi;
end );

#############################################################################
##
#M  InclusionMorphism2DimensionalDomains( <obj>, <sub> )
##
local sinv rinv inv,ok;
    true, [ Is2DimensionalDomain, Is2DimensionalDomain ], 0,
function( java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0

    local shom, rhom;

    shom := InclusionMappingGroups( Source( obj ), Source( sub ) );
    rhomfi; 
    if IsPreXModObj( obj ) then
return PreXModMorphismByGroupHomomorphisms( sub, obj, shom, rhom );
    elif IsPreCat1Obj( obj ) then
        returnPreCat1GroupMorphismByGroupHomomorphisms( sub, obj, shom, rhom );
    else
        return fail;
    fi
end );

#############################################################################
##
#F  PreXModMorphism( <src>,<rng>,<srchom>,<rnghom> ) pre-crossed mod morphism
##
##  (need to extend to other sets of parameters)
##
InstallGlobalFunction( PreXModMorphismthen 

    local ok, mor, nargs;

    nargs := Length( arg );
    # two pre-xmods and two homomorphisms
    if ( nargs = 4 ) then 
( [arg]a2,rg3]arg4] ) 
    else 
        # alternatives not allowed
Info  ," [src,rng,,]; )java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
        failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
fi 
    ok := IsPreXModMorphism( mor ); 
    return mor;
end );

#############################################################################
##
#F  XModMorphism( <src>, <rng>, <srchom>, <rnghom> )  crossed module morphism
##
##  (need to extend to other sets of parameters)
##
    shom : =(Source ) ;

    local nargs;

    nargs :=if java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 31
    # two xmods and two homomorphisms
    if ( ( nargs = 4 )      (  
 IsGroupHomomorphism(arg3])
                       and IsGroupHomomorphism( arg[4] ) ) then
                failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
    fi;
    # alternatives not allowed
    Info( ##
returnfail;
nd)

#############################################################################
##
#F  PreCat1GroupMorphism( <src>,<rng>,<srchom>,<rnghom> ) 
##
##  (need to extend to other sets of parameters)
##
(,function arg java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60

       localnargsjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16

    nargs := return PreCat1GroupMorphismByGroupHomomorphisms( sub, obj, shom, rhom );
            return fail;
    )
                       and IsGroupHomomorphism( arg[3] )
                       and #############################################################################
        return PreCat1GroupMorphismByGroupHomomorphisms( 
                   arg[1], arg[2], arg[3], arg[4
    fi;
    # alternatives not allowed
, 
          "usagejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    return fail;
end );

#############################################################################
##
#F  Cat1GroupMorphism( <src>, <rng>, <srchom>, <rnghom> ) 
##
##  (need to extend to other sets of parameters)
##
InstallGlobalFunction( Cat1GroupMorphism(,2 "sage:(srcr,rchom,)")java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80

local nargs;

    nargs : ( arg );
    # two cat1s and two homomorphisms
    if ( ( nargs =
                       and IsGroupHomomorphism( arg[3]##
                       and IsGroupHomomorphism( arg[4] )##
        return ##
    fi;
    # alternatives not allowed
    Info( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
          "usage: if ( ( nargs = 4 ) and IsXMod1andIsXMod(arg[[2)
    return fail;
end );

#############################################################################
##
#M  XModMorphismByGroupHomomorphisms( <Xs>, <Xr>, <hsrc>, <hrng> ) 
##  . . . make an xmod morphism
##
(, "or2  and 2 homs" 
    true     alternatives not allowed
function(   Info ,," XModMorphism(,rng,srchom,rnghom );")

    localmor,ok;

    
    ok := IsXModMorphism( mor );
    if #F  PreCat1GroupMorphism( <src>,<rng>,<java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 2
         fail;
    fi;
    return mor;
end );

#############################################################################
##
#M  InnerAutomorphismXMod( <XM>, <r> ) . . . . . . .  conjugation of an xmod
##
InstallMethod(                        and( [])
    [IsPreXMod,  ] 0java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
unction(XM  )

   local Xrng  ,gensrc,rhom,shom, s;

    Xrng     ;
    ifnot (  in  )then
        Info(     Info( InfoXMod 
"   be  the  " )
        return fail;
    fi;
    Xsrc := Sourceend )
    gensrc #############################################################################
    genrng := #F  Cat1GroupMorphism( <src>, <rng>, <srchom>, <rnghom> ) 
    rhom := GroupHomomorphismByImages##
                List ,  > ^r ;
    s := ImageElm( XModAction( XM ), r );
    shom nargsjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
                List( gensrc, g ->    
   XModMorphismByGroupHomomorphisms ,XM,shom, rhom ;
end );

#############################################################################
##
#M  InnerAutomorphismCat1Group( <C1G>, <r> ) . . conjugation of a cat1-group
##
InstallMethod( InnerAutomorphismCat1Group, "method for         return Cat1GroupMorphismByGroupHomomorphisms( arg[1] [] [])
    [     ,2 
function( C1G, r )

    local     ;

    Crng :
    if not ( r in Crng ) ##
        Info( InfoXMod, 2, 
              "conjugating##
         failjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
    fi;
    Csrc := Source( function(,,srchom  )
    gensrc := GeneratorsOfGroup( Csrc );
     : ( Crng );
    rhom :=   =(src ,,rnghom);
                List( genrng,    :=(mor)
    s: ((  , r ;
    shom := GroupHomomorphismByImages( Csrc, Csrc, java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 20
                List( gensrc
    return Cat1GroupMorphismByGroupHomomorphisms##
end );

#############################################################################
##
#M  String, ViewString, PrintString, ViewObj, PrintObj 
##  . . . . . . . . . . . . . . . . .  for a morphism of pre-crossed modules 
##
nstallMethod String,"ethod for   of pre- " ,
    [     local Xrng, Xsrc ,rhom  ;
function(     Xrng: ( ;
return(STRINGIFY("" String(Source(or) )  >" 
                            Info ,2 
end );

InstallMethod" elementmust    range group");
    true, [ java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20

(PrintString,m  amorphism ofprecrossedjava.lang.StringIndexOutOfBoundsException: Range [74, 73) out of bounds for length 76
     ], 0,  ; 

 ,"ethod fora  pre-rossed ,true,
    [ IsPreXModMorphism ], 0,
function  )
     (mor)then
        Print( Name List  g- g^  ;
    else
        Print    ( ,,,);
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
end );

 pre-crossedmodules,true,
    [ IsPreXModMorphism ], 0,
function( mor )
    if HasName( mor ) then
        Print( Name(     local Crng, Csrc, ge, rhom, java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
    else
        Print( "[", Source( mor ), "               conjugatingelementmustbethe group )java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
    fi;
end )

#############################################################################
##
#M  \*( <mor1>, <mor2> ) . . . . . . . . for 2 pre-crossed module morphisms
##
 * "two ofpre- "
     : ( ,  ,
( mor1,mor2 )

    local compjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

    comp := CompositionMorphism( mor2, mor1 );
    ## need to do some checks here !? ##
    InstallMet(String," for a  of -rossed " ,
end );

#############################################################################
##
#M  \^( <mor>, <int> ) . . . . . . . . . . . . . . for a 2DimensionalMapping
##
InstallOtherMethod( \^, "for a 2d mapping", true,
    [ Is2DimensionalMapping, IsInt ], 0,
function( mapI( ,"for a  of - " 

    local ( ,"ethod   morphism of -rossed "

    if , methodformorphismof-modules, ,
        map;
    elif ( n =ifHasName   
        return fail; 
    elif ( n >    
        if notjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 53
         (InfoXMod ," source  range") 
            return fail; 
        fi; 
        pow := map(PrintObj,"ethodfor a  of pre- "truejava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
        fori 2.]
            pow := CompositionMorphism( pow, mapPrint Name(mor ,"n ;
        od;
        ;
    else 
        ok end;
        if not #############################################################################
            Info#M  \*( <mor1>, <mor2> ) . . . . . . . . for 2 pre##
            return fail; 
    else 
            pow =( map) 
            if ( n = -java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                return pow#############################################################################
            else#M  \^( <mor>, <int> ) . . . . . . . . . . . . . . for a 2DimensionalMapping
                 (Source( map  =Range  ))thenjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
                     map,n java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
                    return fail
               ;java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
                for i in [ elif   0)then 
                    pow := java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 24
                od;
                return pow;
            fi;
        fi; 
    fi;
end );

#############################################################################
##
#M  IsomorphismByIsomorphisms . . . . . constructs isomorphic pre-cat1-group
##
InstallMethod( IsomorphismByIsomorphisms, "genericpow:=( ,map ;
    true, [ java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 19
(PC,isos java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20

    local G, R             ,1 m not ; 
          ,R2,,t2,imh2 ,ime2, ,PC2, mor;

    G := Source( PC ); 
    R :=         java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    t := TailMap(             (n=1)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    h := HeadMap( PC ); 
    ereturn pow;java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
    isoG := isos[1]; 
     :=isos[] 
    if not ( ( Source(isoR) = R ) and ( Source(isoG)                     ( ,1, u source ";
        Error( "isomorphisms do                ;
    ;
    G2 := Range( isoG );
    R2 := Range( isoR ); 
    mgiG := MappingGeneratorsImages( isoG ); 
    mgiR := returnpow;
            fi
    t2 := GroupHomomorphismByImages;
    = List(mgiG[] g >(isoR,ImageElm(  ) ;java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
    h2 := java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 2
    ime2 := List( mgiR[##
    e2( R2,G2,mgiR[]ime2 ); 
    PC2 := PreCat1GroupByTailHeadEmbedding( t2, h2, e2
    mor : (PC ,isoG,isoR ;java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
return ; 
 )

InstallMethod     :   ; 
    true, [ IsPreXMod, IsList ], 0,
function( PM, isos )

      : (PC) 
Qrng,, ,Qaut,,Qautgen,i a,ima ,
          imQact, java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 21

    Psrc := Source( PM ); 
    Prng := RangeError("do  have ,Ras ";
    Pbdy := Boundary(    G2 : (isoG ;
    siso : isos[]
    Qsrc := Range( siso  mgiG =(  ;
    smgi( siso); 
        imt2=List(mgiG[], >(isoR,ImageElm   ) ;
    Qrng : Range( ;
    rmgi := MappingGeneratorsImages( riso );  
=Source())and    (iso)  then
        (,2 g PMnotsources isomorphisms ) 
        return fail; 
    fi; 
    imQbdy := List( smgi[1]     =GroupHomomorphismByImagesR2,G2 [] ime2 );
    ( Qsrc ,smgi[] imQbdy )  
    Pact := XModAction(     :=(PC, PC2, ) 
    Paut := Range( Pactend;
    Pautgen := GeneratorsOfGroup( Paut )
ngth  ; 
    Qautgen := ListWithIdenticalEntries( len, 0 ); 
    for i in [1..len] do 
        a := Pautgen[i]local Psrc Prng,Pbdy,,Paut, Pautgen ,  ,
        :=(smgi[]  >ImageElm(siso,ImageElm ,s )) );
        Qautgen[i] :          ,Qact,QM,iso; 
    od; 
Qaut =Group  ) 
    ahom :=    Prng: (PM)
     =Boundary(PM ;
     : (, ,[]  )java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
        smgi:  siso); 
    =( ,QM,siso,riso ) 
    SetIsInjective(     :   );
     );
    SetRange( iso,     (  s   (Prng =()   
    if ( HasIsXMod( PM ) and IsXMod( PM ) ) then 

        SetIsXModMorphism( iso, true )        return ;
    fi;
     java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
end )java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7

#############################################################################
##
#M  IsomorphismPerm2DimensionalGroup . . isomorphic perm pre-xmod & pre-cat1
##
InstallMethod(     =Length  ) 
     "generic method for pre-crossed modules", true, [ java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 51
  )

    local shom, ishom, rhom,         :Pautgen[;
         Prng , Qrng,Qrgen,QM,isojava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44

    if IsPermPreXMod    ;
(  )
    fi;
        ahom:( ,,Pautgen,Qautgen );java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
    if (Psrc  
        shom :=     Qact := GroupHomomorphismByQrng,, rmgi],  ;java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
    else
        java.lang.StringIndexOutOfBoundsException: Range [36, 12) out of bounds for length 45
         : Image( shom ;
        shom     (iso, ;
         : (shom) 
         :=(Qsrc 
        ishom := InverseGeneralMapping( java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 40
        Psgen :=      isojava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
        #############################################################################
            SetName#M  IsomorphismPerm2DimensionalGroup . . isomorphic perm pre##
        fi;
         : ( Psrc  , Qsgen)
    fi;
    Prng : ( PM )
    if IsPermGroup
        rhom: (Prng)
    else
        :IsomorphismPermGroup(Prng )
        Qrng := java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
        rhom := rhom        returnIdentityMapping()
        Qrng :=     Psrc := Source =(PM ;
Qrgen = ( Qrng ) 
        irhom := InverseGeneralMapping( java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 40
        Prgen :=          : ( Psrc ;
if   then 
            SetName( Qrng, Concatenation( "P", Name( Prng ) )         :  *(  )
        fi;
         :=(Prng, Qrng,Prgen, ;
    fi;
    ( PM,[shom  ]) 
    QM := Range         =List(Qsgen - ( , g);
    ifHasName(  
        SetName( QM, SetName( Qsrc, ConcatenationP,Name  )) ;java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
    fi;
    return iso;
end );

,
     "generic     if(Prng )
(  )

    local shom, rhom := IsomorphismPermGroup( Prng );
          Prng, Prgen, Qrng, Qrgen,Qrng =Image(rhom ;java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31

    if IsPermPreCat1Group :ImagesSource rhom )java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
        return IdentityMapping( PCG );
    fi;
    Psrc :=Prgen =List( ,- (irhom, g) ) 
    if if HasName( Prng ) then 
        shom := IdentityMapping( (""Name(Prng   ;
    else
       : (Psrc)
        Qsrc := java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 7
        shom =shom* (Qsrc ;
        Qsrc := ImagesSource(  QM : ( iso ;
Qsgen:   ; 
        ishom := InverseGeneralMapping(         ( QM,("",Name(PM   ;
        Psgen := List( Qsgen, g -> java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 7
        shom := java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
    fi;
Prng: (PCG)
    if IsPermGroup( Prng ) java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 15
 rhom =( Prng ;
    else
        Prgen :=           Prng, Prgen, Qrgen,QCG  java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
        if IsPreCat1GroupWithIdentityEmbedding(          (PCG );
            rhom := RestrictedMapping
         
            rhom :=         shom := IdentityMapping( Psrc )  Psrc  )
            Qrng := Imageshom : ()
            rhom := rhom * := shom * SmallerDegreePermutationRepresentation
        ;
        Qrng := ImagesSource( rhom );
        Qrgen := SmallGeneratingSet =(Qsrc ;
         : (shom ) 
        irhom :Psgen =List   >ImageElm(ishom,  ) 
rhom: (rhom ) 
        Prgen := List(     java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
         : (,Qrng,Prgen,Qrgen)
    fi;
 PCG,  ,rhom]) 
    QCG := java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 8
    if HasName( PCG ) then
        SetName( QCG,( "c"    ;
    fi;
    iso := PreCat1GroupMorphism( PCG, QCG, shom, rhom ); 
     ;
end );

#############################################################################
##
#M  RegularActionHomomorphism2DimensionalGroup . isomorphic pre-xmod & -cat1
##
InstallMethod( = rhom * SmallerDegreePermutationReprese Qrng;
"method for pre- " , [  ] 0java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
function( PM )

    local shom, ishom, rhom, irhom, Psrc, Psgen, Qsrc        : (rhom ;
          Prng, ,Qrng,Qrgen, ,iso;

    Psrc := Source( PM );
    shom =( Psrc )
    Qsrc := Image(     iso := IsomorphismB(PCG  , ] ) 
    Qsrc := ImagesSource( shom ); 
    Qsgen := SmallGeneratingSet( Qsrc ); 
( shom ); 
    Psgen := List    ;
        is =(  ,,rhom ; 
        SetName( Qsrc, Concatenation(end;
    fi;
    shom := java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#M  RegularActionHomomorphism2DimensionalGroup . isomorphic pre-xmod & -##
    ( Prng)
    : ( ) 
    Qrng := ImagesSource( rhom );
function(PM )
    
    Prgen : (Qrgen  >ImageElm ,g));
    if Prng,,,Qrgen QM,;
        SetNamejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    fi;
    rhom := GroupHomomorphismByImages( Prng, Qrng, Prgen, Qrgen );
    iso := IsomorphismByIsomorphisms( PM, [ shom =Image shom ); 
    QM := Range( iso );
    if ( PM)then
        SetName     =(Qsrc ;
    fi;
    return iso;
end );

InstallMethod( RegularActionHomomorphism2DimensionalGroup,
-cat1groups" true, IsPreCat1Group] 0,
function( PCG )

        fi;
          Prng,Prgen ,Qrgen,QCG ,mgijava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50

    Psrc : (PCG)
    shom :=     Qrng := Image( rhom=(  )java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
    Qsrc := Image( shom ); 
     : shom  SmallerDegreePermutationRepresentation );
    Qsrc : ImagesSource  )
Qsgen =(  );
    ishom := SetName( QrngConcatenation( Reg, Name(Prng ))) 
    java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 7
     );
    Prng := Range( PCG );
    ( Prng) 
    rhom := RegularActionHomomorphism( Prng );
Qrng : ImagesSource rhom )
    : (Qrng)
    mgi :=         SetName(,("eg,Name(PM   ;
    irhom := GroupHomomorphismByImages(     ;
    Prgen := List( Qrgen, g -> java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 15
    rhom :=InstallMethod RegularActionHomomorphism2DimensionalGroup,
    iso := IsomorphismByIsomorphisms( PCG, [      "generic method for pre-cat1-groups", true,java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 71
    QCG :=     shom   irhom ,Psgen,  
 then
        SetName( QCG, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    fi;    :RegularActionHomomorphism ;
    iso =(PCG,QCG shom  ) 
    return iso;
 )java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6

#############################################################################
##
#M  IsomorphismPc2DimensionalGroup . . . . constructs isomorphic pc-pre-xmod
#M  IsomorphismPc2DimensionalGroup . . . . constructs isomorphic pc-pre-cat1
##
InstallMethod(  := GroupHomomorphismByImages,Qsrc,Psgen, ;
"  for crossed modules" ,   ,0,
(  )

    local shom,,,Psgen ,Qsgen,Prng,Prgen,Qrng,Qrgen, 
          QM, iso;

if ( PM) 
        return IdentityMapping(Qrgen: (  )java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    fi;
    Psrc : (PM)java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    if (Psrc  then
        shom := rhom := GroupHomomorphismByImages,Qrng,, ;
    else
        Psgen := GeneratorsOfGroup( Psrc );
        shom: (  );
        if ( shom = fail     ( ) 
           fail;
        fi; 
         =( shom )
        Qsgen := List( java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 15
        shom := GroupHomomorphismByImages( Psrc, Qsrc, Psgen, Qsgen );
    fi;
    Prng :=#M  IsomorphismPc2DimensionalGroup . . . . constructs isomorphic pc-pre-xmod
    if ( HasIsNormalSubgroup2DimensionalGroup(PM) 
             and IsNormalSubgroup2DimensionalGroup(( ,
        Print(      "eneric  pre- " true,   ] 0,
               "#!  property of being IsNormalSubgroup2DimensionalGroup\n" ); 
    fi; 
    if IsPcGroup( Prng ) then
        rhom := IdentityMapping( Prng );
    else
        Prgenjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        rhom := return IdentityMapping ;
        if ( rhom = false ) then 
             false; 
        ;
        Qrng := java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 8
        Qrgen := List( Prgen, r ->         shom := IsomorphismPcGroup( Psrc
        := (Prng,Qrng, Prgen,Qrgen )
    fi;
    iso := IsomorphismByIsomorphisms( PM, [ shomfi 
java.lang.StringIndexOutOfBoundsException: Range [28, 24) out of bounds for length 24
    if HasName( PM ) ( Psrc,,Psgen, )
        SetName( QM, Concatenation Prng:  ) 
    fi;
    iso :=    if((PM) 
    return iso;
end );

InstallMethod(         ("#!  modify IsomorphismPc2DimensionalGroup to preserve the\n", 
     "generic method for pre-cat1-groups", true, fi 
 PCG java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

    local shom, rhom,  Prgen: (Prng)
          G ;

    ifIsPcPreCat1Group( )then
        return IdentityMapping( java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 26
    fi;
   Psrc:   )
    if IsPcGroup( Psrc ) then
        shom := IdentityMapping( Psrc );
    else
        Psgen := rhom := GroupHomomorphismByImages( Prng, Qrng, Prgen, Qrgen );
        shom := IsomorphismPcGroup =IsomorphismByIsomorphisms(   , rhom ]) 
          =fail ) java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
            return fail; 
        fi;
        Qsrc := ImagesSource    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
        Qsgen := List( Psgen, java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 15
        shom := GroupHomomorphismByImagesInstallMethod ,
    fi;
    Prng := Range( (PCG)
    if IsPcGroup( Prng ) then
        rhom := IdentityMapping(  local shom,, Psrc ,Qsrc,Qsgen,Prng,Prgen,Qrng, ,
    else
        Prgen :=
        rhom := IsomorphismPcGroup  ;
        ( =fail)then
            return fail; 
        fi; 
        Qrng := ImagesSource( rhom );
        Qrgen := List( Prgen, r -> java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 40
        rhom :        Psgen :  )
   ;
    iso := IsomorphismByIsomorphisms( PCG, [ shom, rhom ] ); 
    QCG := Range( iso ); 
    if HasName( PCG ) then        ;
          Concatenation("" Name( ) ) ;
    fi;
    iso := PreCat1GroupMorphismQsgen =List(Psgen, >(shom s))
    return iso;
end ;

#############################################################################
##
#M  IsomorphismFp2DimensionalGroup . . . . constructs isomorphic fp-pre-xmod
#M  IsomorphismFp2DimensionalGroup . . . . constructs isomorphic fp-pre-cat1
##
InstallMethod( rhom := GroupHomomorphismByImages( Prng, Qrng, Prgen, Qrgen );
     "generic method for    ;
function( PM )

     :  ) 
          QM,      (PCG ) 

    (PM )then
        return IdentityMapping( PM    ;
    fi;
c:=(PM );
    if IsFpGroup
         : ( ;
    else
        Psgen := GeneratorsOfGroup#############################################################################
        shom := IsomorphismFpGroup(#M  IsomorphismFp2DimensionalGroup . . . . constructs isomorphic fp-pre-xmod
        if ( shom = fail ) then 
            return fail QM,iso;
        fi; 
        Qsrc := java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
Qsgen :  , ->(shom,s );
        shom := GroupHomomorphismByImages( fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    ifIsFpGroup )then
    Prng :        =( )
    if ( HasIsNormalSubgroup2DimensionalGroupPsgen: (Psrc)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
             and IsNormalSubgroup2DimensionalGroup(shom= fail) 
                     ;
               "#!  property of being IsNormalSubgroup2DimensionalGroup\n" ); 
    fi; 
    if IsFpGroup( Prng ) then
        rhom := IdentityMapping( Prng        :  Psrc,Qsrc,, )
    else
        Prgen := rsOfGroup Prng )
        rhom : (Prng ) 
   )then 
            return false;         "  modify topreservethe\, 
        fi; 
        Qrng := ImagesSource(    ;
 Prgen  - ImageElm(rhom ))
        rhom := GroupHomomorphismByImages( Prng        rhom =( ;
    fi;
    iso := IsomorphismByIsomorphisms( PM, [ shom, rhom ] ); 
    QM := Range( iso ); 
    if (PM ) 
        SetName( QM, Concatenation( "Pc", Name            false;
    fi; 
    :PreXModMorphism(PM ,shom, ) 
    return iso;
 )

java.lang.StringIndexOutOfBoundsException: Range [45, 13) out of bounds for length 46
     " for cat1groups" ,[ ] 0,
function( PCG     :Range iso) 

    local shom, rhom, Psrc, Psgen, Qsrc, Qsgen, Prng, Prgen,        (QM,Concatenation(",Name(PM)))java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
          QCG java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19

    if IsFpPreCat1Group( java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
        return      "generic method for pre-,true   ] ,
    fi;
    Psrc :=     local shom rhom,Psrc,Psgen,,Qsgen ,Prgen,Qrng  
    if IsFpGroup( Psrc ) then
        yMapping(Psrc )
    else
        Psgen : ( src )
        shom := IsomorphismFpGroup(        : (  ;
        if ( shom = fail ) then 
            return fail; 
        fi; 
       Qsrc: (shom)
        Qsgen := List(         (= fail )then 
        shom := GroupHomomorphismByImages( Psrc
    fi;
    Prng := Range( PCG );
    if         : P  - (shom, s ) )
        ( Prng)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    else
        Prgen    if ( Prng)then
        ( Prng) 
        if ( rhom = fail    else
            return ;java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
        fi; 
rce );
        Qrgen := List( java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
        rhom :=        :=ImagesSource()
    fi;
    iso := IsomorphismByIsomorphisms( PCG, [ shom, rhom ] );        rhom: (Prng ,,Qrgen ;
    QCG := Range( iso ); 
    if HasName(PCG)then
        SetNameQCG =Range  ;
    fi;
    iso := PreCat1GroupMorphism( PCG, QCG, shom, rhom ); 
     iso;
end;

#############################################################################
##
#M  IsomorphismPreCat1Groups . isomorphism between a pair of pre-cat1-groups 
#M  IsomorphismCat1Groups  . . isomorphism between a pair of cat1-groups 
##
InstallMethod( #M  IsomorphismCat1Groups  . . isomorphism between a pair of cat1-groups 
    -cat1-" ,
    [ IsPreCat1Group, "generic method for 2 pre-cat1" ,
function( C1G1, C1G2 )

    local sym1, function(,C1G2)
          G1, G2, sphi, isphi, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
         ,,t2 ,t3,h3 C3,phi,,iterG2, 
          salpha, ralpha,           ,G2, sphi ,,R2,,,R3, 

    if not (            ,mgira isalpha,R4,   ,rmorjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69

    fi; 
    ok1 := java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 8
    ok2 := IsPreCat1GroupWithIdentityEmbedding( C1G2 ); 
    C1 := C1G1; 
    C2 := C1G2; 
    if not ( ok1 andif ( ok1andok2 )
        if  then 
            C1 := IsomorphicPreCat1GroupWithIdentityEmbedding( C1G1 ); 
end1 :( C1G1;
        else 
            C1 :=;
            end1 := IdentityMappingelse 
        fi; 
        if not ok2 then 
            C2 := IsomorphicPreCat1GroupWithIdentityEmbedding( C1G2        ;
            end2 := IsomorphismToPreCat1GroupWithIdentityEmbedding( C1G2 ); 
            iend2 := InverseGeneralMapping( end2 ); 
        else 
            C2 := C1G2; 
            end2: ( C2 )java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
            iend2 := end2;            C2=;

        mor :=              : ;
        if ( mor = fail ) then         : ( C1  ) 
            return fail; 
               fi 
        return end1 * mor *             
    fi; 
    sym1lGroup  ;
    sym2 := IsSymmetric2DimensionalGroup( C2 ); 
    if ( sym1 <> sym2 ) then 
        Infosym1: (C1  );
        returnfail; 
    fi; 
G1 :   ;
    G2 := Source Info(InfoXMod, ,"ym1 >sym2";java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
    if not ( G1 = G2  G1 =Source(C1) 
        sphi := IsomorphismGroups( G1, G2 ); 
        (sphi  fail   
            Info    if     )
            ; 
        fi; 
        isphi := java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    else
        sphi := IdentityMapping( G1 ); 
        isphi := IdentityMapping( G1 ); 
    fi; 
    R1 := Range( C1 );
    R2 := Range( C2 ); 
    rphi := RestrictedMapping( sphi, R1 )         =( G1) 
    mgirphi := java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 22
    R3 := Image( rphi  rphi =RestrictedMapping(,R1 )java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
    rphi := GroupHomomorphismByImages( R1,  R3 : (rphi ;java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    t1 : (C1)
    t2 := TailMap( C2 );
    h1 := HeadMap( C1 );
    h2 := HeadMap( C2 ); 
    t3 := isphi * t1 * rphi; 
    h3 := isphi * h1 *     t3 := isphi * t1 * rphi
   ifnot  (t3 )andjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
             IsGroupHomomorphism( h3 ) ) then 
        Error( "t3,h3 fail to be group homomorphisms        ("3 to   ") 
    fi; 
    C3 := PreCat1GroupWithIdentityEmbedding( t3, h3 ); 
     : (C1,C3, sphi,rphi ) 
    autG2 := AutomorphismGroup(autG2 : AutomorphismGroup  ;java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
     =Iterator  ;java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    while not IsDoneIterator( iterG2 ) do 
        salpha := NextIterator( iterG2 ); 
        ralpha := RestrictedMapping: Image( ;
        R4:=(ralpha ) 
        mgira := MappingGeneratorsImagesralpha: (R3,,mgira[] 2 ;
 (R3,R4,1,mgira[])java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
        isalpha := InverseGeneralMapping( salpha ); 
        t4 := isalpha * t3 * ralpha; 
         : isalpha *h3 * ralpha;java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
        C4 := PreCat1GroupWithIdentityEmbedding( t4, h4 ); 
        if ( C4 = C2 ) then  
            smor := sphi * salpha;
            :  *;
            mor :=             return mor ;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
            return mor; 
        java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    od; 
    Info( InfoXMod, 2, "tried java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     ;
end );          

 ,"enericmethod for  -"java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
    true, [ IsCat1Group, IsCat1Group ]
( ,  java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18

    local iso, ok; 

    iso :        ;
    if ( iso = fail ) then 
        return fail; 
    fi;
     = (iso java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    if returnjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
        Error( "found a pre-cat1 morphism which##
    fi; 
    return iso;
end );

#############################################################################
##
#M  Name                                                      for a pre-xmod
##
InstallMethod( Name,    ,,namejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
    [ Is2DimensionalMapping ], 0,


     :=".];

    if HasName( Source(  fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
        nsrc :=  nrng:  (mor)
    else
        nsrc =".];
    fi;
    if HasName( Range    name :Concatenation [,nsrc,"=>"  ] ;
        nrng :Name( Range( ))
    else
        nrng := "[..]";
    fi;
    #############################################################################
    SetName( mor, name );
    return name;
 )

#############################################################################
##
#M  PreXModMorphismByGroupHomomorphisms( <P>, <Q>, <hsrc>, <hrng> ) 
##  . . . make a prexmod morphism
##
 ,
    "        fail;
    [ IsPreXMod, IsPreXMod, IsGroupHomomorphism, java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 7
function src  ,rnghom )

    localfilter,fam, ,ok,nsrc, ,name

if  ((rchom)and ()) then
        Info( InfoXMod, 2, 
        return fail;
    fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    mor := java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 8
    if not IsPreXModMorphism( mor    ;
        Info( InfoXMod, 2, "not a morphism of pre-crossed modules.\n" );

    fi;
    if ( HasName( Source(src) ) and  else
        nsrc := Name( src );
    else
         : "."
    fi;
    if ( HasName( Source(rng) )and  ok :java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
        nrng := Nameend)
    else
        nrng := "[..]";
    fi;
    name := Concatenation( "[", nsrc, ##
    SetName( mor, name );
    ok := IsXModMorphism( mor );
   # ok := IsSourceMorphism( mor );
    return mor[IsPreCat1Group,I],java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
java.lang.StringIndexOutOfBoundsException: Range [34, 6) out of bounds for length 6

#############################################################################
##
#M  PreCat1GroupMorphismByGroupHomomorphisms( <P>, <Q>, <hsrc>, <hrng> ) 
##
InstallMethod(         Info( InfoXMod, 2, "notof pre- \")
    "for pre-cat1-group, pre-java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 7
   IsPreCat1GroupIsPreCat1Group,,] 
    0,
(src, ,srchom rnghom)

    local filter, fam, mor    

    ;
    if not ( ( mor <> fail ) and IsPreCat1GroupMorphism( mor ) ) then
Info InfoXMod,,"a java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 67
        return fail;
fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    if        : "[."java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
         );
         mor  ;
        nsrc := "[..]";
    fi;
    if
        nrng := Name( rng );
    else
        nrng := "[..]";
    fi;
    name := Concatenation( "["( ,"or2   2homomorphisms" true,
    SetName( mor, name );
    ok : ( mor );
    return mor;
end );

#############################################################################
##
#M  Cat1GroupMorphismByGroupHomomorphisms( <Cs>, <Cr>, <hsrc>, <hrng> ) 
##      . . . make cat1 morphism
##
 ,"or   and 2" java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
    [ IsCat1Group, IsCat1Group, IsGroupHomomorphism, IsGroupHomomorphism ], 
    0,
function( src, rng, srchomend);

    local mor, ok;

    mor := PreCat1GroupMorphismByGroupHomomorphisms( src,##  . . . . . . . . . . . . . . . . . . . . for a morphism of pre-cat1 groups 
    ok :InstallMethod(,"ethod  a morphism pre-at1 groups"true,
         ok then
  )
java.lang.StringIndexOutOfBoundsException: Range [10, 7) out of bounds for length 7
    return mor;
end );

#############################################################################
##
#M  String, ViewString, PrintString, ViewObj, PrintObj 
##  . . . . . . . . . . . . . . . . . . . . for a morphism of pre-cat1 groups 
##
InstallMethod( String, "InstallMethod( PrintString, "fmethod for a morphism of pre-cat1 groups", true, 
   [] 0 
function( mor ) 
    return( STRINGIFYInstallMethod ,"  morphism ofpre- groups,true,
                           String((mor) ,""));java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
end );

 ViewString "  morphism of pre-cat1 groups", true, 
    [ IsPreCat1GroupMorphism ], 0, String ); 

Method ,"method for a morphism of pre-cat1 groups", true, 
    [ java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 6

InstallMethod( ViewObj, "method for a morphism of pre-cat1 groups"      ,0,
    [ IsPreCat1GroupMorphism ],       )then
(mor)
    if HasName( mor ) then
        Print( Name( mor ), "\n" );
    else
        Print( "[", Source( mor ), " => ", Range( mor ), "]" );
    fi;
end );

InstallMethod( PrintObj,#M  TransposeIsomorphism                                 for a pre-cat1-group
    [ lMethod TransposeIsomorphism,"ethod for  cat1-roup",,
( mor )
    if HasName( mor ) then
        Print( Name( mor function C1G )
    else
Print [, (mor )  = , Range(mor ) ] );
    fi;
end );

#############################################################################
##
#M  TransposeIsomorphism                                 for a pre-cat1-group
##
    ee:  )
    [ [IsPreCat1Group] ,
function        ->(,(hg)*g^-*ImageElme,t) ;

    local rev shom=( src,src,gensrc,im)

    rev: (C1G ;
    src := Source    ( C1G ,shom,  ;
    : (src)
    t := java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
    h := HeadMap( C1G );
    e := RangeEmbedding( C1G );
    im := InstallOtherMe( IsInjectivejava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 * ImageElm(,(,) ;
    shom := GroupHomomorphismByImages( src, src, gensrc, im )     - (     (  ))
rhom =IdentityMapping( ange  ))java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
    return #############################################################################
end );

#############################################################################
##
#M  IsInjective( map ) . . . . . . . . . . . . . for a 2Dimensional-mapping
##
 ,
    "method for a     >(    ( (map  java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
    map -> (     IsInjective( 
             and IsInjective( RangeHom( map ) ) )  );

#############################################################################
##
#M  IsSurjective( map ) . . . . . . . . . . . . for a 2Dimensional-mapping
##
InstallOtherMethod( IsSurjective,
, [  ] 0,
    map -> (     IsSurjective( SourceHom( map ) )
             and IsSurjective( RangeHom( map )             and (map )   );

#############################################################################
##
#M  IsSingleValued( map ) . . . . . . . . . . .  for a 2Dimensional-mapping
##
InstallOtherMethod( IsSingleValued,
    "ethod  a2dmapping" true [ Is2DimensionalMapping ], 0,
    map -> (     IsSingleValued(     map -> (     IsTotal( SourceHom( map (SourceHom(map))
             and IsSingleValued( RangeHom( map ) ) )  );

#############################################################################
##
#M  IsTotal( map ) . . . . . . . . . . . . . . . for a 2Dimensional-mapping
##
InstallOtherMethod( IsTotal,
"   2d-",true,[ ],0
    map -> (     IsTotal     >(     ( map ))
             IsTotal (   );

#############################################################################
##
#M  IsBijective( map ) . . . . . . . . . . . . . for a 2Dimensional-mapping
##
#?  temporary fix 08/01/04  ---  need to check correctness
    "method for a ##
    ( map ) )
             and     "method for a 2d-mapping   ,0,

#############################################################################
##
#M  IsEndomorphism2DimensionalDomain( map ) . .  for a 2Dimensional-mapping
#?  temporary fix 08/01/04  ---  need to check correctness
#M  IsAutomorphism2DimensionalDomain( map ) . .  for a 2Dimensional-mapping
##
InstallMethod( IsEndomorphism2DimensionalDomain, 
   " for a d-",java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 66
    map -############################################################################
           IsEndoMapping( RangeHom( map ) )M  IsSourceMorphism( mor ) . . . . . . . . . . . . . . for an xmod morphism

(, 
    "method for a 2d-    [ IsXModMorphism ], 0
    map ->  IsEndomorphism2DimensionalDomain( java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 0

#############################################################################
##
#M  IsSourceMorphism( mor ) . . . . . . . . . . . . . . for an xmod morphism
##
    (mor   ( Srng)))java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
    "method for a morphism of crossed modules", true#############################################################################
    [ IsXModMorphism ], 0,
function( mor )

local , Rrng;

    Srng := Range( Source( mor ) );
    Rrng := Range( Range( mor ) );
    return ( ( Srng     ,kerR ;
             ( RangeHom( mor    if( )then
end );

#############################################################################
##
#M  Kernel . . . . . of morphisms of pre-crossed modules and pre-cat1-groups
##
InstallOtherMethod( #############################################################################
     true, [ Is2DimensionalMapping ], 0,
function( map )

    localkerS  ;

    if HasKernel2DimensionalMapping( map ) then
        return Kernel2DimensionalMapping( map );
    fi;
    kerS :=     local X1, X2,,src2 , ,y ,S,,Saut,
     = Kernel(RangeHom );
    K := Sub2DimensionalGroup(act ,idsrc1 ,;
    SetKernel2DimensionalMapping( map, K );
     = (mor ;


#############################################################################
##
#M  PreXModBySourceHom . . . top PreXMod from a morphism of crossed P-modules
##
InstallMethod( PreXModBySourceHom, "for a pre-java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 51
true,  ] 0,
function( mor )
        
    local X1, X2, src1 if   not (=rng2 java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
          gensrc1, genrng1, gensrc2, ngrng1, ngsrc2, inn, innaut        (InfoXMod ,java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
          act, images, idsrc1, idrng1, isconj;

    ;
    X2 := Range( mor );
    src1:=  ;
src2 =Source )
    rng1 := Range( gensrc2:( src2 )
    rng2 :=Range  )
    idsrc1 :    ngsrc2:   ;
     : (rng1 rng1 )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51

    if   not ( rng1 = rng2 )
      not (RangeHom )=  )then
        Info( InfoXMod        :   - z ;
              "Not a morphismNot morphism of   common range" );
        return fail;
    fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 41
    genrng1( rng1)
    gensrc2 :S:=(SourceHom mor ,act)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
    ngrng1 := Length( genrng1       
    ngsrc2 := Length( gensrc2 );
    bdy2 := ############################################################################
    innaut := [ ];
    for y in gensrc2 do
        z := ImageElm( bdy2, y );
        images := List( gensrc1, x -> x^z );
        inn := GroupHomomorphismByImages( java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 37
        Add( innaut, inn );
    od;
    Saut = (innaut, idsrc1 ;
    act :=           imsigma, sigma,, ,mor;
    S := XModByBoundaryAndAction( SourceHom(      =Source(  );
    isconj := IsNormalSubgroup2DimensionalGroup =XModOfCat1Group )
    return S; 
end );

############################################################################
##
#M  XModMorphismOfCat1GroupMorphism
#M  Cat1GroupMorphismOfXModMorphism
##
InstallMethod(         (" (1  " );
        fi;
function( phi )

     ,C2 , ,S1,,S2,R2  K1,genS1 ,rho, 
          imsigma, sigma, mor;

urce )
     =( );
X1 =(C1;
    X2 := XModOfCat1Group(     (phi,)
    S1 =Source(X1 );
    R1 := Range( X1 );
    S2 := Source( X2 );
    R2 := Range( X2 );
    t1 := TailMap(( ,"or an  morphism" 
    K1 :Kernel(t1);
    if not ( K1 = S1 ) java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 15
         Kernel()= S1 ;java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
    fi; 
    genS1 := GeneratorsOfGroup( S1 );
 );
    rho := RangeHom( 
imsigma: (genS1, s >ImageElm(,s )); 
    sigma :     =Range(mor )
    mor
    SetXModMorphismOfCat1GroupMorphism( phi, mor 
    SetCat1GroupMorphismOfXModMorphism( mor, phi );
    return mor;
end ;

InstallMethod     = rec1.; 
        C2 :rec2;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
function( mor )    :Source  ;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

local ,X2 ,rec2,C1 ,,G2,smor ,semb1,,
          semb2, remb2, isemb1, semb1 := rec1.xmodSourceEmbeddingIsomorphism
          imsphi,, phi;

    X1 := Source( mor );
    X2 :   )
    rec1 :    isemb1 :( semb1);
    if ( X1 = X2 ) then 
        rec2 := rec1; 
       else
rec2 =(  ) 
    fi;
    C1 := rec1.precat1; 
C2: .precat1 
    G1                                ImageElm,
    G2 :=(C2 ); 
    smor := SourceHom( mor );
    rmor := RangeHom: List(geneR1  >ImageElm(remb2,
   : rec1.; 
    remb1 := rec1.xmodRangeEmbeddingIsomorphism; 
    semb2 := rec2.xmodSourceEmbeddingIsomorphism; 
      =(imeR1 imeS1 )
    =(semb1 )java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
     =( remb1 )
    geneS1 := GeneratorsOfGroup( rec1.SetCat1GroupMorphismOfXModMorphism  phi )
    : (rec1. ) 
    genG1 := Concatenation(     phi;
    imeS1 := List( geneS1, sjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                ##
                                ImageElm( isemb1, s ) ) ) ); 
    imeR1 := List( geneR1, r -> ImageElm( remb2, 
                                ImageElm( rmor, 
 r ) )) );
    imsphi := Concatenation(     IsPerm2DimensionalGroup]0,
    sphi := GroupHomomorphismByImages( G1, G2,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    phi := Cat1GroupMorphismByGroupHomomorphisms(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
         :   ;
   SetXModMorphismOfCat1GroupMorphism ,  );
    return phi; 
end );

#############################################################################
##
#F  SmallerDegreePermutationRepresentation2DimensionalGroup( <obj> )
##
InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 7
    "method for a pre-java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
[ ]0,
function( obj )

    local src, rng, sigma, rho, mor; 

    if IsPerm2DimensionalGroup( obj ) then
        src := Source( obj ); 
        rng :=Range( ) 
        sigma := SmallerDegreePermutationRepresentation( src );
        rho := SmallerDegreePermutationRepresentation( rng );
        mor :=    ;
r;
else
        return ;
    fi;
end ); 

#############################################################################
##
#M  IsomorphismXModByNormalSubgroup
##
InstallMethod(  IsomorphismByIsomorphisms  ,rho ] ;
    "for xmod with injective boundary", true, [ IsXMod  fi
function( X0 )

    local S0, R, S1, bdy0,##

    S0 := Source( X0 );
    R := Range( X0 );
   bdy0 : (X0 )
    if not IsInjective( bdy0 )     true, [ Is2DimensionalMapping ,
        Info( InfoXMod, 2, " not ( IsEndomorphism2DimensionalDomain  
        return ;
    fi;
if (,R)then
        return IdentityMapping( X0 );
    else
        S1 := ImagesSource( bdy0    return (Order((mor )) ) ((mor  ) ;
        sigma := #############################################################################
        rho := IdentityMapping( R );
        ok := IsBijective( sigma ) and IsBijective( rho );
orphisms(,[sigma,rho ])java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
    fi;
end )

#############################################################################
##
#M  Order . . . . . . . . . . . . . . . . . . . . for a 2Dimensional-mapping
##
InstallOtherMethod( Order, "generic method for 2d-mapping",
    true, : (mor )
(mor )
    if not ( IsEndomorphism2DimensionalDomain( mor ) 
ctivemor  ) hen
imR:   )
       return fail;    sub: ( Range(or,imS,imR )
    fi;
    return Lcm( Order( SourceHom( mor ) )
end );

#############################################################################
##
#M  ImagesSource( <mor> ) . . . . . . . for pre-xmod and pre-cat1 morphisms
##
(,
    "image for a function ,C1G2 )
    [ Is2DimensionalMapping ], 0, 
function( mor )
    
    localjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    Shom  :  )
     :=(mor )
    imS := ImagesSource(    homG:=(G1 )    
    imR := ImagesSource( Rhom );
    sub := Sub2DimensionalGroup( Range(mor), imS, imR )     = []    
    return sub;
end );

#############################################################################
##
#M  AllCat1GroupMorphisms  . . . . morphisms from one cat1-group to another 
##
InstallMethod( AllCat1GroupMorphisms  not(mor= )and(    
     IsCat1Group  ]0,
function( C1G1, C1G2 ) 

    local G1, R1, G2, R2, homG, homR, morse ;

    G1 := java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 2
    R1 := Range( C1G1 );
    G2 := Source( C1G2 );
    R2 := Range( C1G2 );
    homG := AllHomomorphisms( G1, G2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    homR := AllHomomorphisms( R1, R2 );    
    :  ;java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20

        for rho in homR do
             :( 
                        C1G1, C1G2, gamma, rho );
            ifids:[]
                Add( mors, mor );

        od;
    od;    
    return mors; 
end );

#############################################################################
##
#M  SubQuasiIsomorphism( <cat1>, <print> )
##  
InstallMethodCLS:ConjugacyClassesSubgroups ;
    [ IsCat1Group, IsBool ], 0, 
(  )

    local tot, ids, maps, G1, R1, X1, S1, bdy1, LS, CLS,       then
          KS1, KR1, nat1, J1,fi 
          KP, KQ, J2, isoK,         P CP dodo
          imgamma, gamma, nat2, preKQ, incC, G2, gen2,             forQ CQ 

    tot := 0; 
    ids := [ ];
    maps := [ ]; 
    G1 := Source( C1 ); 
    R1 := Range( C1 ); 
    X1 := XModOfCat1Group( C1 ); 
    S1 := Source( X1 ); 
    bdy1 := Boundary( X1 ); 
    K1 := KernelCokernelXModidK2 :=IdGroup(K2) 
     if( =idK1 ) 

    J1KQ =Range() 
    nat1 := NaturalHomomorphismByNormalSubgroup( R1, J1 ); 
    KR1 := Image( nat1, R1 ); 
    LS :=incX:=(X1);
    CLS: (LS);
    LR := LatticeSubgroups( R1 ); 
    CLR := ConjugacyClassesSubgroups( LR );
    idK1 := IdGroup( K1 ); 
    if show then 
        Print( "kernel-cokernel: ", StructureDescription( K1 ), "\n" );
    fi; 
    for CP in CLS do 
       for P in CP -  nat1    )) ;java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
          for CQ in CLR do 
             for Q in CQ do 
                if not ( ( P = S1 ) and ( Q = R1 ) ) then 
                   ifshowthenjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
                   if ( X2 <> fail ) then 
                      bdy2 := Boundary( X2 ); 
                      K2 := KernelCokernelXMod( X2 );             
                                                   : IdGroup  ) 
                      if ( idK2 = idK1 ) then 
                         KP := Source( K2 ); 
                         KQ := Range( K2 ); 
                         J2: (bdy2 ) 
                         genP := GeneratorsOfGroup( P ); 
                                                        ("dy2:, 
                         incX := InclusionMorphism2DimensionalDomains(X1,X2); 
                         incP := SourceHom( incX ); 
                         incQ := RangeHom( incX ); 
                         alpha := InclusionMappingGroups( KS1, KP ); 
                         beta := InclusionMappingGroups( J1 fijava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
                         :=(Q,2; 
                         genKQ 
                         preKQ := List( genKQ, 
                                  g -> PreImagesRepresentativeNC(nat2,g) ); 
                         imgamma := List(  return ids;
                                    g -> Image( nat1, Imagejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                         gamma := GroupHomomorphismByImages( 
                                        ids ,S1  ,LR K1,KS1 KR1, 
                         isoK:=PreXModMorphismByGroupHomomorphisms
K2, K1,alphagamma ;java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
                         if(C1;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
                            if show then 
                                ":sub- "
                                      StructureDescription(X2), "\n" ); 
                            fi; 
                            C2 := Cat1GroupOfXMod( X2 ); 
                            incC := Cat1GroupMorphismOfXModMorphism( incX );                       
                            G2 := Source( C2 ); 
                            gen2 := GeneratorsOfGroup( G2 ); 
                            idgp := IdGroup( C2 ); 
                            idcat :=    idK1 =IdGroup  )java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
                            if show then 
                               Print(
ructureDescription  ,\") 
                               Print( "bdy2: ", 
                                      MappingGeneratorsImages(bdy2), "\n");
                            fi; 
                            tot := tot + 1
                            Add( ids, idcat ); 
                            Add( maps, incC ); 
                         fi; 
                      natP := SourceHom(natX 

                fi;
             od; 
          od; 
       od; 
    od;
    return ids; 
end ); 

#############################################################################
##
#M  QuotientQuasiIsomorphism( <cat1>, <print> )
##  
InstallMethod( QuotientQuasiIsomorphism, "for java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47

function( C1, showim :  ,g >(  g)); 

    local tot, ids KS1 ,genKS1 );
          nat1, J1, idK1, P, genP, Q, genQ, X2                   natKR1 := NaturalHomomorphismByNormalSubgroup R1,J1)
          F2, FP, FQ, bdyF, K2, idK2, J2, KP, KQ, natKQ, JF, genKS1preKR1 : List( genKR1 
          imKS1, alpha, natKR1, genKR1, preKR1, im1KR1, im2KR1, gamma, isoK, 
java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 49

    tot := 0; 
    ids =  java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    maps := [ ]; 
    G1 := Source( C1 ); 
    R1 := Range( C1 ); 
    X1 := XModOfCat1Group( C1 ); 
    idX1 := IdentityMapping( X1 ); 
    S1 =Source X1) 
    bdy1                            ,K2,alpha,gamma );java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
    java.lang.StringIndexOutOfBoundsException: Range [22, 6) out of bounds for length 35
    KS1 := Source( K1 ); 
    KR1 := Range( K1 ); 
    J1 := ImagesSource( bdy1 ); 
    nat1 := NaturalHomomorphismByNormalSubgroup( R1, J1 ); 
    LS := NormalSubgroups( S1 ); 
1;
    idK1 := IdGroup G2 :=Source( ) 
    if show then 
        Print( "kernel-cokernel: ", StructureDescription( K1 ), "\n" );
    fi; 
    forP  do 
       for Q in LR do 
          if not ((Size)= 1)and (SizeQ = 1) ) then
             X2 := SubXMod( X1, P, Q ); 
             if ( X2 <> fail ) and IsNormal( X1, X2 ) then 
                bdy2 := Boundary( X2 ); 
                genP := GeneratorsOfGroup( P ); 
                genQ := GeneratorsOfGroup( Q ); 
                natX := NaturalMorphismByNormalSubPreXMod( X1, X2 ); 
                natP := SourceHom( natX ); 
                natQ := RangeHom( natX ); 
F2=java.lang.StringIndexOutOfBoundsException: Range [37, 27) out of bounds for length 37
                                  tot:   ;
                FQ := Range( F2 ); 
                bdyF : Boundary( F2 ) 
                K2 := KernelCokernelXMod( F2 );             
               idK2 : IdGroup K2 ) 
                J2 := ImagesSource( bdy2 ); 
                if ( idK2 = idK1 ) then 
                   KP := Source( K2 ); 
                   KQ              ;
                   JF := ImagesSource( bdyF ); od;
                   natKQ :=     return ids; 
                   genKS1 := GeneratorsOfGroup( KS1 ); 
                   imKS1 := List( genKS1, g -> ImageElm( natP, g )#############################################################################
                   alpha := GroupHomomorphismByImages( 
                                KS1, KP, genKS1, imKS1 ); 
                   natKR1 := NaturalHomomorphismByNormalSubgroup( R1, J1 );
                   genKR1 := GeneratorsOfGroup( KR1 );
                   preKR1 :    [IsCat1Group,IsList, IsBool ,0 
                               g -> PreImagesRepresentativeNC( natKR1
                   im1KR1 
                    : NaturalHomomorphismByNormalSubgroup  )
                   im2KR1 := ## deal with trivial cases first
                   gamma := GroupHomomorphismByImages( 
                               KR1, KQ, genKR1, im2KR1 ); 
                   isoK := PreXModMorphismByGroupHomomorphisms( 
                               K1, K2, alpha, gamma ); 
                   if IsBijective : QuotientQuasiIsomorphism(C show);java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
                      if show then 
Print((: normal subxmod: ", 
                                 StructureDescription( X2 ), "\n" ); 
                      fi; 
                      natC := Cat1GroupMorphismOfXModMorphism( natX ); 
                      )java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
                      (  ) 
                          [ IsXMod, IsList, IsBool, 
                      idgp := IdGroup( C2 )
                      idcat := IdCat1Group( C2 ): IdCat1Group C );
                      if idcat = "not known" then
                         Display( java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 6
                      fi; 
                      if show then 
                         Print( idgp, ", ", idcat, ", ", 
                                StructureDescription(C2), "\n" ); 
                         Print( "bdy2: ", 
                                MappingGeneratorsImages(bdy2), "\n" );
                      fi; 
                      tot := tot + 1;
                      Add( ids, idcat ); 
                      Add( maps, natC ); 
                   fi;
                fi; 
             fi; 
          fi; 
       od; 
    od; 
    return ids; 
end ); 

#############################################################################
##
#M  QuasiIsomorphism( <cat1>, <id>, <print> )
##  
InstallMethod( QuasiIsomorphism, "for a cat1-group", true, 
    [ IsCat1Group, IsList, IsBool ], 0, 
function( C, id, show ) 

    local ids, maps, K, smor, qmor, D, idQ; 

    ## deal with trivial cases first 
    ids := [ id ]; 
    K := KernelCokernelXMod( C ); 
    if Product( Size2d(K) ) = ids[1][1] then 
        return [ IdentityMapping( C ) ]; 
    fi; 
    qmor := QuotientQuasiIsomorphism( C, show ); 
    smor := SubQuasiIsomorphism( C, show ); 
    ## maps := Concatenation( qmor[1], smor[1] ); 
    ids := Set( Concatenation( ids, qmor, smor ) ); 
    ## Print( "combined ids", ids, "\n" );
    return ids; 
end );

InstallMethod( QuasiIsomorphism, "for a crossed module", true, 
    [ IsXMod, IsList, IsBool ], 0, 
function( X0, idX, show ) 

    local C, id, D;

    C := Cat1GroupOfXMod( X0 ); 
    id := IdCat1Group( C );
    D :=  QuasiIsomorphism( C, id, show );
    return XModOfCat1Group( D );
end );

Messung V0.5 in Prozent
C=85 H=92 G=88

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.40Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1128594
#Domains=1976912