1 Module Presentations 1.1 Functors 1.1-1 FunctorStandardModuleLeft FunctorStandardModuleLeft( R )  attribute Returns: a functor The argument is a homalg ring R. The output is a functor which takes a left presentation as input and computes its standard presentation. 1.1-2 FunctorStandardModuleRight FunctorStandardModuleRight( R )  attribute Returns: a functor The argument is a homalg ring R. The output is a functor which takes a right presentation as input and computes its standard presentation. 1.1-3 FunctorGetRidOfZeroGeneratorsLeft FunctorGetRidOfZeroGeneratorsLeft( R )  attribute Returns: a functor The argument is a homalg ring R. The output is a functor which takes a left presentation as input and gets rid of the zero generators. 1.1-4 FunctorGetRidOfZeroGeneratorsRight FunctorGetRidOfZeroGeneratorsRight( R )  attribute Returns: a functor The argument is a homalg ring R. The output is a functor which takes a right presentation as input and gets rid of the zero generators. 1.1-5 FunctorLessGeneratorsLeft FunctorLessGeneratorsLeft( R )  attribute Returns: a functor The argument is a homalg ring R. The output is functor which takes a left presentation as input and computes a presentation having less generators. 1.1-6 FunctorLessGeneratorsRight FunctorLessGeneratorsRight( R )  attribute Returns: a functor The argument is a homalg ring R. The output is functor which takes a right presentation as input and computes a presentation having less generators. 1.1-7 FunctorDualLeft FunctorDualLeft( R )  attribute Returns: a functor The argument is a homalg ring R that has an involution function. The output is functor which takes a left presentation M as input and computes its Hom(M, R) as a left presentation. 1.1-8 FunctorDualRight FunctorDualRight( R )  attribute Returns: a functor The argument is a homalg ring R that has an involution function. The output is functor which takes a right presentation M as input and computes its Hom(M, R) as a right presentation. 1.1-9 FunctorDoubleDualLeft FunctorDoubleDualLeft( R )  attribute Returns: a functor The argument is a homalg ring R that has an involution function. The output is functor which takes a left presentation M as input and computes its Hom( Hom(M, R), R ) as a left presentation. 1.1-10 FunctorDoubleDualRight FunctorDoubleDualRight( R )  attribute Returns: a functor The argument is a homalg ring R that has an involution function. The output is functor which takes a right presentation M as input and computes its Hom( Hom(M, R), R ) as a right presentation. 1.2 GAP Categories 1.2-1 IsLeftOrRightPresentationMorphism IsLeftOrRightPresentationMorphism( object )  filter Returns: true or false The GAP category of morphisms in the category of left or right presentations. 1.2-2 IsLeftPresentationMorphism IsLeftPresentationMorphism( object )  filter Returns: true or false The GAP category of morphisms in the category of left presentations. 1.2-3 IsRightPresentationMorphism IsRightPresentationMorphism( object )  filter Returns: true or false The GAP category of morphisms in the category of right presentations. 1.2-4 IsLeftOrRightPresentation IsLeftOrRightPresentation( object )  filter Returns: true or false The GAP category of objects in the category of left presentations or right presentations. 1.2-5 IsLeftPresentation IsLeftPresentation( object )  filter Returns: true or false The GAP category of objects in the category of left presentations. 1.2-6 IsRightPresentation IsRightPresentation( object )  filter Returns: true or false The GAP category of objects in the category of right presentations. 1.3 Constructors 1.3-1 PresentationMorphism PresentationMorphism( A, M, B )  operation Returns: a morphism in \mathrm{Hom}(A,B) The arguments are an object A, a homalg matrix M, and another object B. A and B shall either both be objects in the category of left presentations or both be objects in the category of right presentations. The output is a morphism A \rightarrow B in the the category of left or right presentations whose underlying matrix is given by M. 1.3-2 AsMorphismBetweenFreeLeftPresentations AsMorphismBetweenFreeLeftPresentations( m )  attribute Returns: a morphism in \mathrm{Hom}(F^r,F^c) The argument is a homalg matrix m. The output is a morphism F^r \rightarrow F^c in the the category of left presentations whose underlying matrix is given by m, where F^r and F^c are free left presentations of ranks given by the number of rows and columns of m. 1.3-3 AsMorphismBetweenFreeRightPresentations AsMorphismBetweenFreeRightPresentations( m )  attribute Returns: a morphism in \mathrm{Hom}(F^c,F^r) The argument is a homalg matrix m. The output is a morphism F^c \rightarrow F^r in the the category of right presentations whose underlying matrix is given by m, where F^r and F^c are free right presentations of ranks given by the number of rows and columns of m. 1.3-4 AsLeftPresentation AsLeftPresentation( M )  operation Returns: an object The argument is a homalg matrix M over a ring R. The output is an object in the category of left presentations over R. This object has M as its underlying matrix. 1.3-5 AsRightPresentation AsRightPresentation( M )  operation Returns: an object The argument is a homalg matrix M over a ring R. The output is an object in the category of right presentations over R. This object has M as its underlying matrix. 1.3-6 AsLeftOrRightPresentation AsLeftOrRightPresentation( M, l )  function Returns: an object The arguments are a homalg matrix M and a boolean l. If l is true, the output is an object in the category of left presentations. If l is false, the output is an object in the category of right presentations. In both cases, the underlying matrix of the result is M. 1.3-7 FreeLeftPresentation FreeLeftPresentation( r, R )  operation Returns: an object The arguments are a non-negative integer r and a homalg ring R. The output is an object in the category of left presentations over R. It is represented by the 0 \times r matrix and thus it is free of rank r. 1.3-8 FreeRightPresentation FreeRightPresentation( r, R )  operation Returns: an object The arguments are a non-negative integer r and a homalg ring R. The output is an object in the category of right presentations over R. It is represented by the r \times 0 matrix and thus it is free of rank r. 1.3-9 UnderlyingMatrix UnderlyingMatrix( A )  attribute Returns: a homalg matrix The argument is an object A in the category of left or right presentations over a homalg ring R. The output is the underlying matrix which presents A. 1.3-10 UnderlyingHomalgRing UnderlyingHomalgRing( A )  attribute Returns: a homalg ring The argument is an object A in the category of left or right presentations over a homalg ring R. The output is R. 1.3-11 Annihilator Annihilator( A )  attribute Returns: a morphism in \mathrm{Hom}(I, F) The argument is an object A in the category of left or right presentations. The output is the embedding of the annihilator I of A into the free module F of rank 1. In particular, the annihilator itself is seen as a left or right presentation. 1.3-12 LeftPresentations LeftPresentations( R )  attribute Returns: a category The argument is a homalg ring R. The output is the category of free left presentations over R. 1.3-13 RightPresentations RightPresentations( R )  attribute Returns: a category The argument is a homalg ring R. The output is the category of free right presentations over R. 1.4 Attributes 1.4-1 UnderlyingHomalgRing UnderlyingHomalgRing( R )  attribute Returns: a homalg ring The argument is a morphism \alpha in the category of left or right presentations over a homalg ring R. The output is R. 1.4-2 UnderlyingMatrix UnderlyingMatrix( alpha )  attribute Returns: a homalg matrix The argument is a morphism \alpha in the category of left or right presentations. The output is its underlying homalg matrix. 1.5 Non-Categorical Operations 1.5-1 StandardGeneratorMorphism StandardGeneratorMorphism( A, i )  operation Returns: a morphism in \mathrm{Hom}(F, A) The argument is an object A in the category of left or right presentations over a homalg ring R with underlying matrix M and an integer i. The output is a morphism F \rightarrow A given by the i-th row or column of M, where F is a free left or right presentation of rank 1. 1.5-2 CoverByFreeModule CoverByFreeModule( A )  attribute Returns: a morphism in \mathrm{Hom}(F,A) The argument is an object A in the category of left or right presentations. The output is a morphism from a free module F to A, which maps the standard generators of the free module to the generators of A. 1.6 Natural Transformations 1.6-1 NaturalIsomorphismFromIdentityToStandardModuleLeft NaturalIsomorphismFromIdentityToStandardModuleLeft( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{StandardModuleLeft} The argument is a homalg ring R. The output is the natural isomorphism from the identity functor to the left standard module functor. 1.6-2 NaturalIsomorphismFromIdentityToStandardModuleRight NaturalIsomorphismFromIdentityToStandardModuleRight( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{StandardModuleRight} The argument is a homalg ring R. The output is the natural isomorphism from the identity functor to the right standard module functor. 1.6-3 NaturalIsomorphismFromIdentityToGetRidOfZeroGeneratorsLeft NaturalIsomorphismFromIdentityToGetRidOfZeroGeneratorsLeft( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{GetRidOfZeroGeneratorsLeft} The argument is a homalg ring R. The output is the natural isomorphism from the identity functor to the functor that gets rid of zero generators of left modules. 1.6-4 NaturalIsomorphismFromIdentityToGetRidOfZeroGeneratorsRight NaturalIsomorphismFromIdentityToGetRidOfZeroGeneratorsRight( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{GetRidOfZeroGeneratorsRight} The argument is a homalg ring R. The output is the natural isomorphism from the identity functor to the functor that gets rid of zero generators of right modules. 1.6-5 NaturalIsomorphismFromIdentityToLessGeneratorsLeft NaturalIsomorphismFromIdentityToLessGeneratorsLeft( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{LessGeneratorsLeft} The argument is a homalg ring R. The output is the natural morphism from the identity functor to the left less generators functor. 1.6-6 NaturalIsomorphismFromIdentityToLessGeneratorsRight NaturalIsomorphismFromIdentityToLessGeneratorsRight( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{LessGeneratorsRight} The argument is a homalg ring R. The output is the natural morphism from the identity functor to the right less generator functor. 1.6-7 NaturalTransformationFromIdentityToDoubleDualLeft NaturalTransformationFromIdentityToDoubleDualLeft( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{FunctorDoubleDualLeft} The argument is a homalg ring R. The output is the natural morphism from the identity functor to the double dual functor in left Presentations category. 1.6-8 NaturalTransformationFromIdentityToDoubleDualRight NaturalTransformationFromIdentityToDoubleDualRight( R )  attribute Returns: a natural transformation \mathrm{Id} \rightarrow \mathrm{FunctorDoubleDualRight} The argument is a homalg ring R. The output is the natural morphism from the identity functor to the double dual functor in right Presentations category.