## Synopsis

• Usage:
multigradedPolynomialRing L
multigradedPolynomialRing n
• Inputs:
• L, a list, entries 1 less than the desired number of variables for each multidegree
• n, an integer, the rank of the grading, in the case with 2 variables for each multidegree
• Optional inputs:
• CoefficientField => a ring, default value ZZ/32003, the coefficient field
• Variables => , default value "x", name to use for indexed variables
• Standard => , default value true
• Outputs:
• , a multigraded polynomial ring

## Description

Given a list L, this function gives a $\ZZ^r$-graded polynomial ring (where $r$ is the length of L) containing L_i+1 variables of multidegree equal to the i-th basis vector of $\ZZ^r$, i.e. the coordinate ring of the product of projective spaces with dimensions the entries of L. Given an integer n it returns the coordinate ring of a product of n copies of $\PP^1$.

 i1 : S = multigradedPolynomialRing({1,3,4}) o1 = S o1 : PolynomialRing i2 : gens S o2 = {x , x , x , x , x , x , x , x , x , x , x } 0,0 0,1 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 2,4 o2 : List i3 : degrees S o3 = {{1, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, 1, 0}, {0, ------------------------------------------------------------------------ 0, 1}, {0, 0, 1}, {0, 0, 1}, {0, 0, 1}, {0, 0, 1}} o3 : List i4 : gens multigradedPolynomialRing 4 o4 = {x , x , x , x , x , x , x , x } 0,0 0,1 1,0 1,1 2,0 2,1 3,0 3,1 o4 : List

By default the output will be a ring over ZZ/32003 in variables of the form x_(i,j). The coefficients can be changed using the option CoefficientField and the variable name with Variables (which takes a string). Setting the option Standard to false will produce variables with no indices, starting at a.

 i5 : multigradedPolynomialRing({1,2},CoefficientField => ZZ/5,Variables=>"y") ZZ o5 = --[y ..y , y ..y ] 5 0,0 0,1 1,0 1,2 o5 : PolynomialRing i6 : multigradedPolynomialRing(3,Standard=>false) ZZ o6 = -----[a..f] 32003 o6 : PolynomialRing

## Caveat

The output of multigradedPolynomialRing is not compatible with some functions from the package TateOnProducts, such as cohomologyHashTable. Use productOfProjectiveSpaces instead.