R = buildERing(X,I,F,n)
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 nonnegative 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 n1. The same ring with a different index bound n can be produced by buildERing(Ring,ZZ).





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.
The object buildERing is a method function with options.