The package **GradedRingForHomalg** 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 **MatricesForHomalg** on which the **homalg** project can rely to do homological computations over graded rings.

The graded rings most prominently can be used with methods known from general **homalg** rings. The methods for doing the computations are presented in the appendix (B), since they are not for external use. The new attributes and operations are documented here.

Since the objects inplemented here are representations from objects elsewhere in the **homalg** project (i.e. **MatricesForHomalg**), we want to stress that there are many other operations in **MatricesForHomalg**, 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.

Operations within **MatricesForHomalg** 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 **Singular**, and the called operation is one of the following listed below:

`SyzygiesGeneratorsOfRows`

`SyzygiesGeneratorsOfColumns`

`ReducedSyzygiesGeneratorsOfRows`

`ReducedSyzygiesGeneratorsOfColumns`

`BasisOfRowModule`

`BasisOfColumnModule`

`ReducedBasisOfRowModule`

`ReducedBasisOfColumnModule`

`DecideZeroRows`

`DecideZeroColumns`

`LeftDivide`

`RightDivide`

These operation trigger Gröbner bases computations in **Singular**, which are always forced to be performed with a tail reduction by **homalg**. In particular, the resulting elements of the Gröbner bases have to be homogeneous.

`‣ IsHomalgMatrixOverGradedRingRep` ( A ) | ( representation ) |

Returns: true or false

The representation of **homalg** matrices with entries in a **homalg** graded ring.

(It is a representation of the **GAP** category `IsMatrixOverGradedRing`

.)

DeclareRepresentation( "IsHomalgMatrixOverGradedRingRep", IsMatrixOverGradedRing, [ ] );

`‣ MatrixOverGradedRing` ( mat, S ) | ( function ) |

Returns: a matrix over a graded ring

Creates a matrix for the graded ring `S`, where `mat` is a matrix over `UnderlyingNonGradedRing`

(`S`).

`‣ DegreesOfEntries` ( A ) | ( attribute ) |

Returns: a listlist of degrees/multi-degrees

The matrix of degrees of the matrix `A`.

`‣ NonTrivialDegreePerRow` ( A[, col_degrees] ) | ( attribute ) |

Returns: a list of degrees/multi-degrees

The list of first nontrivial degree per row of the matrix `A`.

`‣ NonTrivialDegreePerColumn` ( A[, row_degrees] ) | ( attribute ) |

Returns: a list of degrees/multi-degrees

The list of first nontrivial degree per column of the matrix `A`.

`‣ HomogeneousPartOfMatrix` ( A, degrees ) | ( property ) |

Returns: a homalg matrix over graded ring

The output is the homogeneous part of the matrix `A` with respect to the given degrees `degrees`. See `HomogeneousPartOfRingElement`.

`‣ IsMatrixOverGradedRingWithHomogeneousEntries` ( A ) | ( property ) |

Returns: `true`

or `false`

Checks if every entry in a given matrix `A` over a graded ring is homogeneous.

`‣ UnderlyingNonGradedRing` ( mat ) | ( operation ) |

Returns: a **homalg** ring

The nongraded ring underlying `HomalgRing`

(`mat`).

`‣ SetMatElm` ( mat, i, j, r, R ) | ( operation ) |

Changes the entry (`i,j`) of the matrix `mat` to the value `r`. Here `R` is the graded **homalg** ring involved in these computations.

`‣ AddToMatElm` ( mat, i, j, r, R ) | ( operation ) |

Changes the entry (`i,j`) of the matrix `mat` by adding the value `r` to it. Here `R` is the (graded) **homalg** ring involved in these computations.

`‣ MatElmAsString` ( mat, i, j, R ) | ( operation ) |

Returns: a string

Returns the entry (`i,j`) of the matrix `mat` as a string. Here `R` is the (graded) **homalg** ring involved in these computations.

`‣ MatElm` ( mat, i, j, R ) | ( operation ) |

Returns: a graded ring element

Returns the entry (`i,j`) of the matrix `mat`. Here `R` is the (graded) **homalg** ring involved in these computations.

generated by GAPDoc2HTML