  
  [1X4 [33X[0;0YHomogeneous Matrices[133X[101X
  
  [33X[0;0YThe  package  [5XGradedRingForHomalg[105X  defines the classes of graded rings, ring
  elements  and  homogeneous 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;0YHomogeneous Matrices: Category and Representations[133X[101X
  
  [1X4.1-1 IsHomalgMatrixOverGradedRingRep[101X
  
  [33X[1;0Y[29X[2XIsHomalgMatrixOverGradedRingRep[102X( [3XA[103X ) [32X Representation[133X
  [6XReturns:[106X  [33X[0;10Ytrue or false[133X
  
  [33X[0;0YThe representation of [5Xhomalg[105X matrices with entries in a [5Xhomalg[105X graded ring.[133X
  
  [33X[0;0Y(It is a representation of the [5XGAP[105X category [10XIsMatrixOverGradedRing[110X.)[133X
  
  [4X[32X  Code  [32X[104X
    [4XDeclareRepresentation( "IsHomalgMatrixOverGradedRingRep",[104X
    [4X        IsMatrixOverGradedRing,[104X
    [4X        [ ] );[104X
  [4X[32X[104X
  
  
  [1X4.2 [33X[0;0YHomogeneous Matrices: Constructors[133X[101X
  
  [1X4.2-1 MatrixOverGradedRing[101X
  
  [33X[1;0Y[29X[2XMatrixOverGradedRing[102X( [3Xmat[103X, [3XS[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya matrix over a graded ring[133X
  
  [33X[0;0YCreates  a  matrix  for  the  graded  ring  [3XS[103X,  where  [3Xmat[103X  is a matrix over
  [10XUnderlyingNonGradedRing[110X([3XS[103X).[133X
  
  
  [1X4.3 [33X[0;0YHomogeneous Matrices: Attributes[133X[101X
  
  [1X4.3-1 DegreesOfEntries[101X
  
  [33X[1;0Y[29X[2XDegreesOfEntries[102X( [3XA[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya listlist of degrees/multi-degrees[133X
  
  [33X[0;0YThe matrix of degrees of the matrix [3XA[103X.[133X
  
  [1X4.3-2 NonTrivialDegreePerRow[101X
  
  [33X[1;0Y[29X[2XNonTrivialDegreePerRow[102X( [3XA[103X[, [3Xcol_degrees[103X] ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of degrees/multi-degrees[133X
  
  [33X[0;0YThe list of first nontrivial degree per row of the matrix [3XA[103X.[133X
  
  [1X4.3-3 NonTrivialDegreePerColumn[101X
  
  [33X[1;0Y[29X[2XNonTrivialDegreePerColumn[102X( [3XA[103X[, [3Xrow_degrees[103X] ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of degrees/multi-degrees[133X
  
  [33X[0;0YThe list of first nontrivial degree per column of the matrix [3XA[103X.[133X
  
  [1X4.3-4 HomogeneousPartOfMatrix[101X
  
  [33X[1;0Y[29X[2XHomogeneousPartOfMatrix[102X( [3XA[103X, [3Xdegrees[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Ya homalg matrix over graded ring[133X
  
  [33X[0;0YThe output is the homogeneous part of the matrix [3XA[103X with respect to the given
  degrees [3Xdegrees[103X. See [3XHomogeneousPartOfRingElement[103X.[133X
  
  [1X4.3-5 IsMatrixOverGradedRingWithHomogeneousEntries[101X
  
  [33X[1;0Y[29X[2XIsMatrixOverGradedRingWithHomogeneousEntries[102X( [3XA[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YChecks if every entry in a given matrix [3XA[103X over a graded ring is homogeneous.[133X
  
  
  [1X4.4 [33X[0;0YHomogeneous Matrices: Operations and Functions[133X[101X
  
  [1X4.4-1 UnderlyingNonGradedRing[101X
  
  [33X[1;0Y[29X[2XUnderlyingNonGradedRing[102X( [3Xmat[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya [5Xhomalg[105X ring[133X
  
  [33X[0;0YThe nongraded ring underlying [10XHomalgRing[110X([3Xmat[103X).[133X
  
  [1X4.4-2 SetMatElm[101X
  
  [33X[1;0Y[29X[2XSetMatElm[102X( [3Xmat[103X, [3Xi[103X, [3Xj[103X, [3Xr[103X, [3XR[103X ) [32X operation[133X
  
  [33X[0;0YChanges  the  entry  ([3Xi,j[103X)  of  the matrix [3Xmat[103X to the value [3Xr[103X. Here [3XR[103X is the
  graded [5Xhomalg[105X ring involved in these computations.[133X
  
  [1X4.4-3 AddToMatElm[101X
  
  [33X[1;0Y[29X[2XAddToMatElm[102X( [3Xmat[103X, [3Xi[103X, [3Xj[103X, [3Xr[103X, [3XR[103X ) [32X operation[133X
  
  [33X[0;0YChanges  the entry ([3Xi,j[103X) of the matrix [3Xmat[103X by adding the value [3Xr[103X to it. Here
  [3XR[103X is the (graded) [5Xhomalg[105X ring involved in these computations.[133X
  
  [1X4.4-4 MatElmAsString[101X
  
  [33X[1;0Y[29X[2XMatElmAsString[102X( [3Xmat[103X, [3Xi[103X, [3Xj[103X, [3XR[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya string[133X
  
  [33X[0;0YReturns  the  entry  ([3Xi,j[103X)  of  the  matrix  [3Xmat[103X  as a string. Here [3XR[103X is the
  (graded) [5Xhomalg[105X ring involved in these computations.[133X
  
  [1X4.4-5 MatElm[101X
  
  [33X[1;0Y[29X[2XMatElm[102X( [3Xmat[103X, [3Xi[103X, [3Xj[103X, [3XR[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya graded ring element[133X
  
  [33X[0;0YReturns  the  entry  ([3Xi,j[103X)  of the matrix [3Xmat[103X. Here [3XR[103X is the (graded) [5Xhomalg[105X
  ring involved in these computations.[133X
  
