Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add functors for GradedModules by Freyd category #360

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
#############################################################################
##
## GradedModulePresentationsbyFreyd
##
## Copyright 2019, Martin Bies, ULB Brussels
##
#! @Chapter Functors in the CAP category of graded module presentations by use of Freyd categories
##
#############################################################################


# an attribute for homalg_matrices, that allows to represent that matrix 'smaller'
DeclareAttribute( "LessGradedGeneratorsTransformationTripleLeft",
IsHomalgMatrix );
DeclareAttribute( "LessGradedGeneratorsTransformationTripleRight",
IsHomalgMatrix );


#######################################################
##
#! @Section Functor less_generators for FpGradedModules
##
#######################################################

#! @Description
#! The argument is a graded left or right module presentation $M$. We then return a presentation of this
#! module which uses less generators.
#! @Returns a graded left or right module presentation
#! @Arguments M
DeclareOperation( "LessGradedGenerators",
[ IsFpGradedLeftOrRightModulesObject ] );

#! @Description
#! The argument is a graded left or right module presentation morphism $a$. We then return a presentation of this
#! morphism which uses less generators.
#! @Returns a graded left or right module presentation morphism
#! @Arguments a
DeclareOperation( "LessGradedGenerators",
[ IsFpGradedLeftOrRightModulesMorphism ] );

# a function that computes the functor 'LessGenerators' for both left and right presentations
DeclareGlobalFunction( "FunctorLessGradedGenerators" );

#! @Description
#! The argument is a homalg graded ring $R$. The output is functor which takes a left
#! presentation in FpGradedLeftModules as input and computes a presentation having less generators.
#! @Returns a functor
#! @Arguments R
DeclareAttribute( "FunctorLessGradedGeneratorsLeft",
IsHomalgGradedRing );

#! @Description
#! The argument is a homalg graded ring $R$. The output is functor which takes a right
#! presentation in FpGradedRightModules as input and computes a presentation having less generators.
#! @Returns a functor
#! @Arguments R
DeclareAttribute( "FunctorLessGradedGeneratorsRight",
IsHomalgGradedRing );




######################################################
##
#! @Section Functor StandardModule for FpGradedModules
##
######################################################

#! @Description
#! The argument is a graded left or right module presentation $M$. We then try to reduce the relations and
#! thereby return a new presentation - the Standard module.
#! @Returns a graded left or right module presentation
#! @Arguments M
DeclareOperation( "GradedStandardModule",
[ IsFpGradedLeftOrRightModulesObject ] );

#! @Description
#! The argument is a graded left or right module presentation morphism $a$. We then try to reduce the relations
#! and thereby return a new presentation, which we term the Standard module morphism.
#! @Returns a graded left or right module presentation morphism
#! @Arguments a
DeclareOperation( "GradedStandardModule",
[ IsFpGradedLeftOrRightModulesMorphism ] );

# a function that computes the functor 'StandardModule' for both left and right presentations
DeclareGlobalFunction( "FunctorGradedStandardModule" );

#! @Description
#! The argument is a homalg graded ring $R$. The output is functor which takes a left
#! presentation in FpGradedLeftModules as input and computes its standard presentation.
#! @Returns a functor
#! @Arguments R
DeclareAttribute( "FunctorGradedStandardModuleLeft",
IsHomalgGradedRing );

#! @Description
#! The argument is a homalg graded ring $R$. The output is functor which takes a right
#! presentation in FpGradedRightModules as input and computes its standard presentation.
#! @Returns a functor
#! @Arguments R
DeclareAttribute( "FunctorGradedStandardModuleRight",
IsHomalgGradedRing );



##############################################################
##
#! @Section Functor ByASmallerPresentation for FpGradedModules
##
##############################################################

#! @Description
#! The argument is a graded left or right module presentation $M$. We then return a smaller presentation of this
#! module. This is obtained by first applying 'LessGenerators' and then 'StandardModule'.
#! @Returns a graded left or right module presentation
#! @Arguments M
DeclareOperation( "ByASmallerPresentation",
[ IsFpGradedLeftOrRightModulesObject ] );

#! @Description
#! The argument is a graded left or right module presentation morphism $a$. We then return a smaller presentation of this
#! morphism. This is obtained by first applying 'LessGenerators' and then 'StandardModule'.
#! @Returns a graded left or right module presentation morphism
#! @Arguments a
DeclareOperation( "ByASmallerPresentation",
[ IsFpGradedLeftOrRightModulesMorphism ] );

# a function that computes the functor 'LessGenerators' for both left and right presentations
DeclareGlobalFunction( "FunctorByASmallerPresentation" );

#! @Description
#! The argument is a homalg graded ring $R$. The output is functor which takes a left
#! presentation in FpGradedLeftModules as input and computes a smaller presentation. The latter is achieved by
#! first applying 'LessGenerators' and then acting with 'StandardModule'.
#! @Returns a functor
#! @Arguments R
DeclareAttribute( "FunctorByASmallerPresentationLeft",
IsHomalgGradedRing );

#! @Description
#! The argument is a homalg graded ring $R$. The output is functor which takes a right
#! presentation in FpGradedRightModules as input and computes a smaller presentation. The latter is achieved by
#! first applying 'LessGenerators' and then acting with 'StandardModule'.
#! @Returns a functor
#! @Arguments R
DeclareAttribute( "FunctorByASmallerPresentationRight",
IsHomalgGradedRing );
Loading