  
  [1X34 [33X[0;0YCommutative diagrams and abstract categories[133X[101X
  
  [33X[0;0Y[12XCOMMUTATIVE DIAGRAMS[112X[133X
  
  
  [1X34.1 [33X[0;0Y [133X[101X
  
  [1X34.1-1 HomomorphismChainToCommutativeDiagram[101X
  
  [33X[1;0Y[29X[2XHomomorphismChainToCommutativeDiagram[102X( [3XH[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  list  [22XH=[h_1,h_2,...,h_n][122X  of  mappings  such  that the composite
  [22Xh_1h_2...h_n[122X is defined. It returns the list of composable homomorphism as a
  commutative diagram.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X34.1-2 NormalSeriesToQuotientDiagram[101X
  
  [33X[1;0Y[29X[2XNormalSeriesToQuotientDiagram[102X( [3XL[103X ) [32X function[133X
  [33X[1;0Y[29X[2XNormalSeriesToQuotientDiagram[102X( [3XL[103X, [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  increasing  (or  decreasing)  list [22XL=[L_1,L_2,...,L_n][122X of normal
  subgroups  of  a  group  [22XG[122X  with  [22XG=L_n[122X.  It  returns  the chain of quotient
  homomorphisms [22XG/L_i → G/L_i+1[122X as a commutative diagram.[133X
  
  [33X[0;0YOptionally  a subseries [22XM[122X of [22XL[122X can be entered as a second variable. Then the
  resulting  diagram  of quotient groups has two rows of horizontal arrows and
  one row of vertical arrows.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X34.1-3 NerveOfCommutativeDiagram[101X
  
  [33X[1;0Y[29X[2XNerveOfCommutativeDiagram[102X( [3XD[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  commutative  diagram  [22XD[122X  and  returns  the commutative diagram [22XND[122X
  consisting of all possible composites of the arrows in [22XD[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X34.1-4 GroupHomologyOfCommutativeDiagram[101X
  
  [33X[1;0Y[29X[2XGroupHomologyOfCommutativeDiagram[102X( [3XD[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XGroupHomologyOfCommutativeDiagram[102X( [3XD[103X, [3Xn[103X, [3Xprime[103X ) [32X function[133X
  [33X[1;0Y[29X[2XGroupHomologyOfCommutativeDiagram[102X( [3XD[103X, [3Xn[103X, [3Xprime[103X, [3XResolution_Algorithm[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  commutative  diagram  [22XD[122X  of  [22Xp[122X-groups  and positive integer [22Xn[122X. It
  returns  the commutative diagram of vector spaces obtained by applying mod p
  homology.[133X
  
  [33X[0;0YNon-prime  power  groups  can also be handled if a prime [22Xp[122X is entered as the
  third  argument.  Integral  homology can be obtained by setting [22Xp=0[122X. For [22Xp=0[122X
  the result is a diagram of groups.[133X
  
  [33X[0;0YA  particular resolution algorithm, such as ResolutionNilpotentGroup, can be
  entered   as   a   fourth   argument.   For   positive   [22Xp[122X  the  default  is
  ResolutionPrimePowerGroup. For [22Xp=0[122X the default is ResolutionFiniteGroup.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X34.1-5 PersistentHomologyOfCommutativeDiagramOfPGroups[101X
  
  [33X[1;0Y[29X[2XPersistentHomologyOfCommutativeDiagramOfPGroups[102X( [3XD[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs  a commutative diagram [22XD[122X of finite [22Xp[122X-groups and a positive integer [22Xn[122X.
  It  returns  a  list  containing, for each homomorphism in the nerve of [22XD[122X, a
  triple  [22X[k,l,m][122X  where [22Xk[122X is the dimension of the source of the induced mod [22Xp[122X
  homology  map  in  degree  [22Xn[122X,  [22Xl[122X is the dimension of the image, and [22Xm[122X is the
  dimension of the cokernel.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [33X[0;0Y[12XABSTRACT CATEGORIES[112X[133X
  
  
  [1X34.2 [33X[0;0Y [133X[101X
  
  [1X34.2-1 CategoricalEnrichment[101X
  
  [33X[1;0Y[29X[2XCategoricalEnrichment[102X( [3XX[103X, [3XName[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  structure  [22XX[122X such as a group or group homomorphism, together with
  the  name  of  some  existing  category  such as Name:=Category_of_Groups or
  Category_of_Abelian_Groups.  It  returns, as appropriate, an object or arrow
  in the named category.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) [133X
  
  [1X34.2-2 IdentityArrow[101X
  
  [33X[1;0Y[29X[2XIdentityArrow[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  object [22XX[122X in some category, and returns the identity arrow on the
  object [22XX[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) [133X
  
  [1X34.2-3 InitialArrow[101X
  
  [33X[1;0Y[29X[2XInitialArrow[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs  an object [22XX[122X in some category, and returns the arrow from the initial
  object in the category to [22XX[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) [133X
  
  [1X34.2-4 TerminalArrow[101X
  
  [33X[1;0Y[29X[2XTerminalArrow[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  object  [22XX[122X  in some category, and returns the arrow from [22XX[122X to the
  terminal object in the category.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) [133X
  
  [1X34.2-5 HasInitialObject[101X
  
  [33X[1;0Y[29X[2XHasInitialObject[102X( [3XName[103X ) [32X function[133X
  
  [33X[0;0YInputs the name of a category and returns true or false depending on whether
  the category has an initial object.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) [133X
  
  [1X34.2-6 HasTerminalObject[101X
  
  [33X[1;0Y[29X[2XHasTerminalObject[102X( [3XName[103X ) [32X function[133X
  
  [33X[0;0YInputs the name of a category and returns true or false depending on whether
  the category has a terminal object.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X34.2-7 Source[101X
  
  [33X[1;0Y[29X[2XSource[102X( [3Xf[103X ) [32X function[133X
  
  [33X[0;0YInputs an arrow [22Xf[122X in some category, and returns its source.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap2.html[107X) ,  2  ([7X../tutorial/chap4.html[107X) ,  3
  ([7X../tutorial/chap7.html[107X) ,        4       ([7X../tutorial/chap8.html[107X) ,       5
  ([7X../tutorial/chap13.html[107X) ,                                                6
  ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) ,                     7
  ([7X../www/SideLinks/About/aboutNonabelian.html[107X) ,                            8
  ([7X../www/SideLinks/About/aboutCoefficientSequence.html[107X) ,                   9
  ([7X../www/SideLinks/About/aboutCoveringSpaces.html[107X) ,                       10
  ([7X../www/SideLinks/About/aboutCoverinSpaces.html[107X) ,                        11
  ([7X../www/SideLinks/About/aboutFunctorial.html[107X) ,                           12
  ([7X../www/SideLinks/About/aboutLieCovers.html[107X) [133X
  
  [1X34.2-8 Target[101X
  
  [33X[1;0Y[29X[2XTarget[102X( [3Xf[103X ) [32X function[133X
  
  [33X[0;0YInputs an arrow [22Xf[122X in some category, and returns its target.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap1.html[107X) ,  2  ([7X../tutorial/chap2.html[107X) ,  3
  ([7X../tutorial/chap7.html[107X) ,        4       ([7X../tutorial/chap8.html[107X) ,       5
  ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) ,                     6
  ([7X../www/SideLinks/About/aboutCoefficientSequence.html[107X) ,                   7
  ([7X../www/SideLinks/About/aboutCoveringSpaces.html[107X) ,                        8
  ([7X../www/SideLinks/About/aboutCoverinSpaces.html[107X) [133X
  
  [1X34.2-9 CategoryName[101X
  
  [33X[1;0Y[29X[2XCategoryName[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  object  or arrow [22XX[122X in some category, and returns the name of the
  category.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) [133X
  
  [1X34.2-10 CompositionEqualityAdditionMinus[101X
  
  [33X[1;0Y[29X[2XCompositionEqualityAdditionMinus[102X [32X global variable[133X
  
  [33X[0;0YComposition  of  suitable  arrows  [22Xf,g[122X  is given by [22Xf*g[122X when the source of [22Xf[122X
  equals  the  target  of  [22Xg[122X.  (Warning:  this  differes  to  the standard GAP
  convention.)[133X
  
  [33X[0;0YEquality is tested using [22Xf=g[122X.[133X
  
  [33X[0;0YIn  an  additive category the sum and difference of suitable arrows is given
  by [22Xf+g[122X and [22Xf-g[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X34.2-11 Object[101X
  
  [33X[1;0Y[29X[2XObject[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  object  [22XX[122X in some category, and returns the GAP structure [22XY[122X such
  that [22XX=CategoricalEnrichment(Y,CategoryName(X))[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap10.html[107X) ,            2
  ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) [133X
  
  [1X34.2-12 Mapping[101X
  
  [33X[1;0Y[29X[2XMapping[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  arrow  [22Xf[122X  in some category, and returns the GAP structure [22XY[122X such
  that [22Xf=CategoricalEnrichment(Y,CategoryName(X))[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap6.html[107X) ,  2  ([7X../tutorial/chap7.html[107X) ,  3
  ([7X../www/SideLinks/About/aboutAbelianCategories.html[107X) ,                     4
  ([7X../www/SideLinks/About/aboutCoefficientSequence.html[107X) ,                   5
  ([7X../www/SideLinks/About/aboutGouter.html[107X) [133X
  
  [1X34.2-13 IsCategoryObject[101X
  
  [33X[1;0Y[29X[2XIsCategoryObject[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs [22XX[122X and returns true if [22XX[122X is an object in some category.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X34.2-14 IsCategoryArrow[101X
  
  [33X[1;0Y[29X[2XIsCategoryArrow[102X( [3XX[103X ) [32X function[133X
  
  [33X[0;0YInputs [22XX[122X and returns true if [22XX[122X is an arrow in some category.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
