- Usage:
`S = newRing(R,options)`

- Inputs:
`R`, a polynomial ring or a quotient of a polynomial ring

- Optional inputs:
- Constants => ...,
- DegreeLift => ...,
- DegreeMap => ...,
- DegreeRank => ...,
- Degrees => ...,
- Global => ...,
- Heft => ...,
- Inverses => ...,
- Join => ...,
- Local => ...,
- MonomialOrder => ...,
- MonomialSize => ...,
- SkewCommutative => ...,
- VariableBaseName => ...,
- Variables => ...,
- Weights => ...,
- WeylAlgebra => ...,

- Outputs:
`S`, a ring, a new ring, constructed in the same way`R`was, over the same coefficient ring, but with the newly specified options overriding those used before. See monoid for a description of those options. If`R`was a quotient ring, then the number of variables must be the same, and S will be a quotient ring, too, with defining ideal obtained from the old by substituting the new variables for the old, preserving their order.

If a different number of variables is given with Variables, then the list of degrees in `R` will be ignored. If a new degree rank is specified with DegreeRank then the list of degrees and the heft vector of `R` will be ignored. If a new nonempty list of degrees is specified with Degrees, then the degree rank and and the heft vector of `R` will be ignored.

i1 : R = QQ[x,y,MonomialOrder => Lex,Degrees=>{3,5}]; |

i2 : describe newRing(R,MonomialOrder => GRevLex) o2 = QQ[x..y, Degrees => {3, 5}, Heft => {1}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 1] {GRevLex => {3, 5} } {Position => Up } |

i3 : describe newRing(R,Variables=>4) o3 = QQ[p , p , p , p , Degrees => {4:1}, Heft => {1}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 1] 0 1 2 3 {Lex => 2 } {Position => Up } {GRevLex => {2:1} } |

i4 : describe newRing(R,Heft=>{2}) o4 = QQ[x..y, Degrees => {3, 5}, Heft => {2}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 1] {Lex => 2 } {Position => Up } |

i5 : S = R/(x^2+y^3); |

i6 : describe newRing(R,Variables=>2) o6 = QQ[p , p , Degrees => {3, 5}, Heft => {1}, MonomialOrder => {MonomialSize => 32}, DegreeRank => 1] 0 1 {Lex => 2 } {Position => Up } |

The default values for the options of `newRing` are all set to a non-accessible private symbol whose name is `nothing`.

- newRing(PolynomialRing)
- newRing(QuotientRing)