1############################################################################## 2## 3#W gp2map.gd GAP4 package `XMod' Chris Wensley 4#W & Murat Alp 5#Y Copyright (C) 2001-2019, Chris Wensley et al, 6#Y School of Computer Science, Bangor University, U.K. 7## 8## This file contains implementations of 2DimensionalMappings 9## for crossed modules and cat1-groups. 10## 11 12############################################################################# 13## 14#F PreXModMorphism( <args> ) 15#O PreXModMorphismByGroupHomomorphisms( <src>, <rng>, <srchom>, <rnghom> ) 16#F PreCat1GroupMorphism( <args> ) 17#O PreCat1GroupMorphismByGroupHomomorphisms( <src>, <rng>, <srchom>, <rnghom> ) 18## 19DeclareGlobalFunction( "PreXModMorphism" ); 20DeclareOperation( "PreXModMorphismByGroupHomomorphisms", 21 [ IsPreXMod, IsPreXMod, IsGroupHomomorphism, IsGroupHomomorphism ] ); 22DeclareGlobalFunction( "PreCat1GroupMorphism" ); 23DeclareOperation( "PreCat1GroupMorphismByGroupHomomorphisms", 24 [ IsPreCat1Group, IsPreCat1Group, IsGroupHomomorphism, 25 IsGroupHomomorphism ] ); 26 27############################################################################# 28## 29#O Is2DimensionalGroupMorphismData( <list> ) 30#O Make2DimensionalGroupMorphism( <list> ) 31## 32## A pre-crossed module or pre-cat1-group morphism is a pair of commuting 33## group homomorphisms: at this stage actions not checked 34## 35DeclareOperation( "Is2DimensionalGroupMorphismData", [ IsList ] ); 36DeclareOperation( "Make2DimensionalGroupMorphism", [ IsList ] ); 37 38############################################################################# 39## 40#F XModMorphism( <args> ) 41#O XModMorphismByGroupHomomorphisms( <src>, <rng>, <srchom>, <rnghom> ) 42#F Cat1GroupMorphism( <args> ) 43#O Cat1GroupMorphismByGroupHomomorphisms( <src>, <rng>, <srchom>, <rnghom> ) 44#O InclusionMorphism2DimensionalDomains( <obj>, <sub> ) 45## 46DeclareGlobalFunction( "XModMorphism" ); 47DeclareOperation( "XModMorphismByGroupHomomorphisms", 48 [ IsXMod, IsXMod, IsGroupHomomorphism, IsGroupHomomorphism ] ); 49DeclareGlobalFunction( "Cat1GroupMorphism" ); 50DeclareOperation( "Cat1GroupMorphismByGroupHomomorphisms", 51 [ IsCat1Group, IsCat1Group, IsGroupHomomorphism, IsGroupHomomorphism ] ); 52DeclareOperation( "InclusionMorphism2DimensionalDomains", 53 [ Is2DimensionalDomain, Is2DimensionalDomain ] ); 54 55############################################################################# 56## 57#O InnerAutomorphismXMod( <XM>, <r> ) 58#O InnerAutomorphismCat1Group( <C1G>, <r> ) 59## 60DeclareOperation( "InnerAutomorphismXMod", 61 [ IsPreXMod, IsMultiplicativeElementWithInverse ] ); 62DeclareOperation( "InnerAutomorphismCat1Group", 63 [ IsPreCat1Group, IsMultiplicativeElementWithInverse ] ); 64 65############################################################################# 66## 67#P IsEndomorphism2DimensionalDomain( <mor> ) 68#P IsAutomorphism2DimensionalDomain( <mor> ) 69## 70DeclareProperty( "IsEndomorphism2DimensionalDomain", Is2DimensionalMapping ); 71DeclareProperty( "IsAutomorphism2DimensionalDomain", Is2DimensionalMapping ); 72 73############################################################################# 74## 75#P IsPermPreXModMorphism( <mor> ) 76#P IsPermPreCat1GroupMorphism( <mor> ) 77## 78DeclareProperty( "IsPermPreXModMorphism", IsPreXModMorphism ); 79DeclareProperty( "IsPermPreCat1GroupMorphism", IsPreCat1GroupMorphism ); 80 81############################################################################# 82## 83#A ReverseIsomorphism( <PCG> ) 84#O CompositionMorphism( <mor2>, <mor1> ) 85## 86DeclareAttribute( "ReverseIsomorphism", IsPreCat1Group ); 87DeclareOperation( "CompositionMorphism", [ Is2DimensionalMapping, Is2DimensionalMapping ] ); 88 89############################################################################# 90## 91#P IsSourceMorphism( <mor> ) 92#O PreXModBySourceHom( <mor> ) 93## 94DeclareProperty( "IsSourceMorphism", IsPreXModMorphism ); 95DeclareOperation( "PreXModBySourceHom", [ IsPreXModMorphism ] ); 96 97############################################################################# 98## 99#A XModMorphismOfCat1GroupMorphism( <mor> ) 100#A Cat1GroupMorphismOfXModMorphism( <mor> ) 101## 102DeclareAttribute( "XModMorphismOfCat1GroupMorphism", IsCat1GroupMorphism ); 103DeclareAttribute( "Cat1GroupMorphismOfXModMorphism", IsXModMorphism ); 104 105############################################################################# 106## 107#O IsomorphismByIsomorphisms( <n-dim-obj>, <list> ) 108#A IsomorphismPerm2DimensionalGroup( <obj> ) 109#A IsomorphismFp2DimensionalGroup( <obj> ) 110#A IsomorphismPc2DimensionalGroup( <obj> ) 111## 112DeclareOperation( "IsomorphismByIsomorphisms", [ IsObject, IsList ] ); 113DeclareAttribute( "IsomorphismPerm2DimensionalGroup", Is2DimensionalGroup ); 114DeclareAttribute( "IsomorphismFp2DimensionalGroup", Is2DimensionalGroup ); 115DeclareAttribute( "IsomorphismPc2DimensionalGroup", Is2DimensionalGroup ); 116 117############################################################################# 118## 119#A IsomorphismXModByNormalSubgroup( <xmod> ) 120## 121DeclareAttribute( "IsomorphismXModByNormalSubgroup", IsXMod ); 122 123############################################################################# 124## 125#F SmallerDegreePerm2DimensionalGroup( <args> ) 126#A SmallerDegreePermPreXMod( <XM> ) 127## 128DeclareGlobalFunction( "SmallerDegreePerm2DimensionalGroup" ); 129DeclareAttribute( "SmallerDegreePermPreXMod", IsPreXMod ); 130 131############################################################################# 132## 133#O IsomorphismPreCat1Groups( <precat1>, <precat1> ) 134#O IsomorphismCat1Groups( <cat1>, <cat1> ) 135## 136DeclareOperation( "IsomorphismPreCat1Groups", 137 [ IsPreCat1Group, IsPreCat1Group ] ); 138DeclareOperation( "IsomorphismCat1Groups", [ IsCat1Group, IsCat1Group ] ); 139 140############################################################################# 141## 142#A MorphismOfPullback( <xmod> ) 143## 144DeclareAttribute( "MorphismOfPullback", IsXMod ); 145 146############################################################################# 147## 148#O AllCat1GroupMorphisms( <cat1>, <cat1> ) 149## 150DeclareOperation( "AllCat1GroupMorphisms", [ IsCat1Group, IsCat1Group ] ); 151