  
  [1X4 [33X[0;0YGraded Rings[133X[101X
  
  [33X[0;0YThe  package  [5XGradedRingForHomalg[105X  defines the classes of graded rings, ring
  elements  and  matrices  over such rings. These three objects can be used as
  data structures defined in [5XMatricesForHomalg[105X on which the [5Xhomalg[105X project can
  rely to do homological computations over graded rings.[133X
  
  [33X[0;0YThe  graded  rings  most  prominently  can  be  used with methods known from
  general  [5Xhomalg[105X  rings. The methods for doing the computations are presented
  in the appendix ([14XB[114X), since they are not for external use. The new attributes
  and operations are documented here.[133X
  
  [33X[0;0YSince   the  objects  inplemented  here  are  representations  from  objects
  elsewhere  in the [5Xhomalg[105X project (i.e. [5XMatricesForHomalg[105X), we want to stress
  that there are many other operations in [5XMatricesForHomalg[105X, which can be used
  in  connection  with  the ones presented here. A few of them can be found in
  the examples and the appendix of this documentation.[133X
  
  [33X[0;0YOperations  within [5XMatricesForHomalg[105X that take matrices as input and produce
  a  matrix  as  an output produce homogeneous output for homogeneous input in
  the following cases: the graded ring in question is either a polynomial ring
  or  the  exterior  algebra residing in [5XSingular[105X, and the called operation is
  one of the following listed below:[133X
  
  [30X    [33X[0;6Y[10XSyzygiesGeneratorsOfRows[110X[133X
  
  [30X    [33X[0;6Y[10XSyzygiesGeneratorsOfColumns[110X[133X
  
  [30X    [33X[0;6Y[10XReducedSyzygiesGeneratorsOfRows[110X[133X
  
  [30X    [33X[0;6Y[10XReducedSyzygiesGeneratorsOfColumns[110X[133X
  
  [30X    [33X[0;6Y[10XBasisOfRowModule[110X[133X
  
  [30X    [33X[0;6Y[10XBasisOfColumnModule[110X[133X
  
  [30X    [33X[0;6Y[10XReducedBasisOfRowModule[110X[133X
  
  [30X    [33X[0;6Y[10XReducedBasisOfColumnModule[110X[133X
  
  [30X    [33X[0;6Y[10XDecideZeroRows[110X[133X
  
  [30X    [33X[0;6Y[10XDecideZeroColumns[110X[133X
  
  [30X    [33X[0;6Y[10XLeftDivide[110X[133X
  
  [30X    [33X[0;6Y[10XRightDivide[110X[133X
  
  [33X[0;0YThese  operation  trigger  Gröbner bases computations in [5XSingular[105X, which are
  always  forced  to  be  performed  with  a  tail  reduction  by  [5Xhomalg[105X.  In
  particular,  the  resulting  elements  of  the  Gröbner  bases  have  to  be
  homogeneous.[133X
  
  
  [1X4.1 [33X[0;0YGraded Rings: Category and Representations[133X[101X
  
  [1X4.1-1 IsHomalgGradedRingRep[101X
  
  [33X[1;0Y[29X[2XIsHomalgGradedRingRep[102X( [3XR[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Ytrue or false[133X
  
  [33X[0;0YThe representation of [5Xhomalg[105X graded rings.[133X
  
  [33X[0;0Y(It is a subrepresentation of the [5XGAP[105X representation[133X
  [33X[0;0Y[10XIsHomalgRingOrFinitelyPresentedModuleRep[110X.)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareRepresentation( "IsHomalgGradedRingRep",[104X
    [4X        IsHomalgGradedRing and[104X
    [4X        IsHomalgGradedRingOrGradedModuleRep,[104X
    [4X        [ "ring" ] );[104X
  [4X[32X[104X
  
  [1X4.1-2 IsHomalgGradedRingElementRep[101X
  
  [33X[1;0Y[29X[2XIsHomalgGradedRingElementRep[102X( [3Xr[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Ytrue or false[133X
  
  [33X[0;0YThe representation of elements of [5Xhomalg[105X graded rings.[133X
  
  [33X[0;0Y(It is a representation of the [5XGAP[105X category [10XIsHomalgRingElement[110X.)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareRepresentation( "IsHomalgGradedRingElementRep",[104X
    [4X        IsHomalgGradedRingElement,[104X
    [4X        [ ] );[104X
  [4X[32X[104X
  
  
  [1X4.2 [33X[0;0YGraded Rings: Constructors[133X[101X
  
  [1X4.2-1 HomalgGradedRingElement[101X
  
  [33X[1;0Y[29X[2XHomalgGradedRingElement[102X( [3Xnumer[103X, [3Xdenom[103X, [3XR[103X ) [32X function[133X
  [33X[1;0Y[29X[2XHomalgGradedRingElement[102X( [3Xnumer[103X, [3XR[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya graded ring element[133X
  
  [33X[0;0YCreates  the  graded  ring element [22X[3Xnumer[103X/[3Xdenom[103X[122X or in the second case [22X[3Xnumer[103X/1[122X
  for  the  graded  ring  [3XR[103X.  Both  [3Xnumer[103X  and  [3Xdenom[103X  may  either be a string
  describing  a  valid  global  ring  element  or  from  the  global  ring  or
  computation ring.[133X
  
  
  [1X4.3 [33X[0;0YGraded Rings: Attributes and Properties[133X[101X
  
  [1X4.3-1 DegreeGroup[101X
  
  [33X[1;0Y[29X[2XDegreeGroup[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya left ℤ-module[133X
  
  [33X[0;0YThe degree Abelian group of the commutative graded ring [3XS[103X.[133X
  
  [1X4.3-2 CommonNonTrivialWeightOfIndeterminates[101X
  
  [33X[1;0Y[29X[2XCommonNonTrivialWeightOfIndeterminates[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya degree[133X
  
  [33X[0;0YThe  common  nontrivial weight of the indeterminates of the graded ring [3XS[103X if
  it  exists. Otherwise an error is issued. WARNING: Since the DegreeGroup and
  WeightsOfIndeterminates  are  in some cases bound together, you MUST not set
  the  DegreeGroup  by hand and let the algorithm create the weights. Set both
  by  hand,  set only weights or use the method WeightsOfIndeterminates to set
  both. Never set the DegreeGroup without the WeightsOfIndeterminates, because
  it simply wont work![133X
  
  [1X4.3-3 WeightsOfIndeterminates[101X
  
  [33X[1;0Y[29X[2XWeightsOfIndeterminates[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list or listlist of integers[133X
  
  [33X[0;0YThe list of degrees of the indeterminates of the graded ring [3XS[103X.[133X
  
  [1X4.3-4 MatrixOfWeightsOfIndeterminates[101X
  
  [33X[1;0Y[29X[2XMatrixOfWeightsOfIndeterminates[102X( [3XS[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X matrix[133X
  
  [33X[0;0YA   [5Xhomalg[105X   matrix   where  the  list  (or  listlist)  of  degrees  of  the
  indeterminates of the graded ring [3XS[103X is stored.[133X
  
  [1X4.3-5 IsHomogeneousRingElement[101X
  
  [33X[1;0Y[29X[2XIsHomogeneousRingElement[102X( [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0Yreturns whether the graded ring element [3Xr[103X is homogeneous or not.[133X
  
  
  [1X4.4 [33X[0;0YGraded Rings: Operations and Functions[133X[101X
  
  [1X4.4-1 UnderlyingNonGradedRing[101X
  
  [33X[1;0Y[29X[2XUnderlyingNonGradedRing[102X( [3XR[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring[133X
  
  [33X[0;0YInternally there is a ring, in which computations take place.[133X
  
  [1X4.4-2 UnderlyingNonGradedRing[101X
  
  [33X[1;0Y[29X[2XUnderlyingNonGradedRing[102X( [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring[133X
  
  [33X[0;0YInternally there is a ring, in which computations take place.[133X
  
  [1X4.4-3 Name[101X
  
  [33X[1;0Y[29X[2XName[102X( [3Xr[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya string[133X
  
  [33X[0;0YThe name of the graded ring element [3Xr[103X.[133X
  
  [1X4.4-4 HomogeneousPartOfRingElement[101X
  
  [33X[1;0Y[29X[2XHomogeneousPartOfRingElement[102X( [3Xr[103X, [3Xdegree[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya graded ring element[133X
  
  [33X[0;0Yreturns the summand of [3Xr[103X whose monomials have the given degree [3Xdegree[103X and if
  [3Xr[103X has no such monomials then it returns the zero element of the ring.[133X
  
