next | previous | forward | backward | up | top | index | toc | Macaulay2 website
EquivariantGB > buildERing

buildERing -- creates a ring to be used with other functions in the EquivariantGB package



The object produced by buildERing is a Ring with additional stored information. It is used to represent a polynomial ring F[Y] with an infinite set of variables Y, and an action of the infinite symmetric group on Y such that it is composed of a finite number of orbits. Macaulay2 cannot store a ring with an infinite number of variables, so the ring produced contains only some of the variables.

We assume Y decomposes into a finite number of "blocks", each block consisting of variables of the form x_{(i_1,...,i_k)} for some k and each index i_j ranging over all non-negative integers. The symbol x to be used for each block is listed in X. The value of k for each block is listed in I. The variables in the ring output by buildERing are those with index values ranging from 0 to n-1. The same ring with a different index bound n can be produced by buildERing(Ring,ZZ).

i1 : S = buildERing({symbol z}, {1}, QQ, 4)

o1 = S

o1 : PolynomialRing
i2 : vars S

o2 = | z_3 z_2 z_1 z_0 |

             1       4
o2 : Matrix S  <--- S
i3 : coefficientRing S

o3 = QQ

o3 : Ring
i4 : R = buildERing({symbol y, symbol x}, {2,1}, QQ, 3)

o4 = R

o4 : PolynomialRing
i5 : vars R

o5 = | y_(2,2) y_(2,1) y_(2,0) y_(1,2) y_(1,1) y_(1,0) y_(0,2) y_(0,1)
     y_(0,0) x_2 x_1 x_0 |

             1       12
o5 : Matrix R  <--- R

The monomial order can be chosen with optional argument MonomialOrder. Currently valid choices are Lex, GLex or GRevLex. The variables are always ordered from the last block to the first, with larger indices before smaller indices. For blocks with multiple indices the order of the variables is also lexicographic with first index most significant, followed by the second, etc.

The grading of the ring can be chosen with optional argument Degrees. The grading is specified by listing the degree of each variable block. Because the degree function must be invariant under the symmetric action, every variable in the same block must have the same degree.

Ways to use buildERing :

For the programmer

The object buildERing is a method function with options.