  
  [1XB [33X[0;0YOverview of the [5XGradedRingForHomalg[105X[101X[1X Package Source Code[133X[101X
  
  [33X[0;0YThis  appendix  is  included in the documentation to shine some light on the
  mathematical  backgrounds of this Package. Neither is it needed to work with
  this  package  nor should the methods presented here be called directly. The
  functions documented here are entries of the so called ring table and not to
  be called directly. There are higher level methods in declared and installed
  in  [5XMatricesForHomalg[105X, which call this functions (--> [10X?MatricesForHomalg:The
  Basic Matrix Operations[110X).[133X
  
  
  [1XB.1 [33X[0;0YThe generic Methods[133X[101X
  
  [33X[0;0YWe will present some methods as an example, to show the idea:[133X
  
  [1XB.1-1 BasisOfRowModule[101X
  
  [29X[2XBasisOfRowModule[102X( [3XM[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ya distinguished basis (i.e. a distinguished generating set) of the
            module generated by M[133X
  
  [4X[32X  Code  [32X[104X
    [4XBasisOfRowModule :=[104X
    [4X  function( M )[104X
    [4X     return MatrixOverGradedRing([104X
    [4X                    BasisOfRowModule( UnderlyingMatrixOverNonGradedRing( M ) ),[104X
    [4X                    HomalgRing( M ) );[104X
    [4X  end,[104X
  [4X[32X[104X
  
  [1XB.1-2 DecideZeroRows[101X
  
  [29X[2XDecideZeroRows[102X( [3XA[103X, [3XB[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ya reduced form of [3XA[103X with respect to [3XB[103X[133X
  
  [4X[32X  Code  [32X[104X
    [4XDecideZeroRows :=[104X
    [4X  function( A, B )[104X
    [4X    return MatrixOverGradedRing([104X
    [4X                   DecideZeroRows( UnderlyingMatrixOverNonGradedRing( A ),[104X
    [4X                           UnderlyingMatrixOverNonGradedRing( B ) ),[104X
    [4X                   HomalgRing( A ) );[104X
    [4X  end,[104X
  [4X[32X[104X
  
  [1XB.1-3 SyzygiesGeneratorsOfRows[101X
  
  [29X[2XSyzygiesGeneratorsOfRows[102X( [3XM[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ya distinguished basis of the syzygies of the argument[133X
  
  [4X[32X  Code  [32X[104X
    [4XSyzygiesGeneratorsOfRows :=[104X
    [4X  function( M )[104X
    [4X    return MatrixOverGradedRing([104X
    [4X                   SyzygiesGeneratorsOfRows( UnderlyingMatrixOverNonGradedRing( M ) ),[104X
    [4X                   HomalgRing( M ) );[104X
    [4X  end,[104X
  [4X[32X[104X
  
  
  [1XB.2 [33X[0;0YTools[133X[101X
  
  [33X[0;0YThe  package  [5XGradedRingForHomalg[105X  also implements tool functions. These are
  referred  to  from  [5XMatricesForHomalg[105X automatically. We list the implemented
  methods  here  are  and  refer  to  the [5XMatricesForHomalg[105X documentation (-->
  [10X?MatricesForHomalg:       The      Matrix      Tool      Operations[110X      and
  [10X?MatricesForHomalg:RingElement[110X)   for  details.  All  tools  functions  from
  [5XMatricesForHomalg[105X not listed here are also supported by fallback tools.[133X
  
  [30X    [33X[0;6YIsZero[133X
  
  [30X    [33X[0;6YIsOne[133X
  
  [30X    [33X[0;6YMinus[133X
  
  [30X    [33X[0;6YDivideByUnit[133X
  
  [30X    [33X[0;6YIsUnit[133X
  
  [30X    [33X[0;6YSum[133X
  
  [30X    [33X[0;6YProduct[133X
  
  [30X    [33X[0;6YShallowCopy[133X
  
  [30X    [33X[0;6YZeroMatrix[133X
  
  [30X    [33X[0;6YIdentityMatrix[133X
  
  [30X    [33X[0;6YAreEqualMatrices[133X
  
  [30X    [33X[0;6YInvolution[133X
  
  [30X    [33X[0;6YCertainRows[133X
  
  [30X    [33X[0;6YCertainColumns[133X
  
  [30X    [33X[0;6YUnionOfRows[133X
  
  [30X    [33X[0;6YUnionOfColumns[133X
  
  [30X    [33X[0;6YDiagMat[133X
  
  [30X    [33X[0;6YKroneckerMat[133X
  
  [30X    [33X[0;6YMulMat[133X
  
  [30X    [33X[0;6YAddMat[133X
  
  [30X    [33X[0;6YSubMat[133X
  
  [30X    [33X[0;6YCompose[133X
  
  [30X    [33X[0;6YNrRows[133X
  
  [30X    [33X[0;6YNrColumns[133X
  
  [30X    [33X[0;6YIsZeroMatrix[133X
  
  [30X    [33X[0;6YIsDiagonalMatrix[133X
  
  [30X    [33X[0;6YZeroRows[133X
  
  [30X    [33X[0;6YZeroColumns[133X
  
