computing the nonnegative part of a $\mathbb{Z}$-graded ring Let $R = \bigoplus_{n \in \mathbb{Z}} R_n$ be a $\mathbb{Z}$-graded commutative ring with nonnegative part $R^+ = \bigoplus_{n \geq 0} R_n$ and nonpositive part $R^- = \bigoplus_{n \geq 0} R_{-n}$. By a well known theorem the following statements are equivalent:


*

*$R$ is Noetherian

*$R_0$ is Noetherian and both $R^+$ and $R^-$ are finitely generated $R_0$-algebras


In particular, the second item holds if $R$ is a finitely generated algebra over some field $k$.
My Question: Are there algorithms for computing $R^+$ in terms of finitely many generators for some special finitely generated $k$-algebras $R$?

I am mainly interested in the case where $R$ is a toric ring and the grading is given by a linear form $\lambda : \mathbb{Z}^n \to \mathbb{Z}$. To be specific, $R$ is a $k$-subalgebra of the ring of Laurent-polynomials $k[X_1^{\pm 1}, \dots, X_n^{\pm n}]$ generated by finitely many monomials $X^v = X_1^{v_1} \dots X_n^{v_n}$ for some vectors $v \in \mathbb{Z}^n$. A monomial $X^v$ is by definition of degree $\deg(X^v) = \lambda(v)$.
Geometrically the monomials of $R$ correspond to the integral points of a rational polyhedral cone in $\mathbb{R}^n$, and computing the nonnegative part with respect to $\lambda$ corresponds to taking the intersection of this cone with the rational half-space given by $\lambda$.
 A: Since you are interested in the case of a toric ring, I will restrict to this case. In particular I will assume that $R$ is a normal subalgebra of $k[X_1^{\pm 1},\ldots,X_n^{\pm1}]=k[\mathbb Z^n]$. Then the monomials of your ring $R$ correspond to the lattice points of the cone $\sigma$ that is generated by the exponent vectors of the ring generators:
$$\sigma=\langle(\nu_1,\ldots,\nu_n)\ |\ X_1^{\nu_1}\cdot\ldots\cdot X_n^{\nu_n}\rangle_{\mathbb Q_{\ge 0}},$$
i.e. we have
$$R=k[\sigma\cap\mathbb Z^n].$$
Taking $R^+$ or $R^-$ now just means to intersect the cone $\sigma$ with the halfspaces on either side of the hyperplane $\{x\in\mathbb Q^n\ |\ \lambda(x)=0\}$. Hence you get two cones
$$\sigma^+=\sigma\cap\{x\in\mathbb Q^n\ |\ \lambda(x)\ge 0\}\mbox{ and }\sigma^-=\sigma\cap\{x\in\mathbb Q^n\ |\ \lambda(x)\le 0\}.$$
The rings $R^+$ and $R^-$ are just the associated semigroup rings $k[\sigma^{\pm}\cap\mathbb Z^n]$. Their generators can be obtained by computing the Hilbert basis of the corresponding cones.
If you are interested in software: 4ti2 and normaliz are programs that both are able to compute Hilbert bases of cones. To obtain a description of the cones $\sigma^{\pm}$ one can use the polymake framework. Additionally polymake also computes Hilbert bases via interfacing other software.
