R and S must be rings created by buildERing. Each orbit of variables in S consists of variables of the form x_{(i_1,...,i_k)} for some width k. L is a list that for each such orbit gives the desired image of x_{(0,...,k-1)}. The rest of the map is extrapolated from these value.
i1 : R = buildERing({symbol x, symbol y}, {1,1}, QQ, 3);
|
i2 : vars R
o2 = | x_2 x_1 x_0 y_2 y_1 y_0 |
1 6
o2 : Matrix R <--- R
|
i3 : n = buildEMonomialMap(R,R,{x_0,x_0^3})
3 3 3
o3 = map(R,R,{x , x , x , x , x , x })
2 1 0 2 1 0
o3 : RingMap R <--- R
|
i4 : n(x_1^3*y_0)
3 3
o4 = x x
1 0
o4 : R
|
i5 : S = buildERing({symbol z}, {2}, QQ, 3);
|
i6 : vars S
o6 = | z_(2,2) z_(2,1) z_(2,0) z_(1,2) z_(1,1) z_(1,0) z_(0,2) z_(0,1) z_(0,0) |
1 9
o6 : Matrix S <--- S
|
i7 : m = buildEMonomialMap(R,S,{x_0^2*y_1})
2 2 2 2 2 2 2 2 2
o7 = map(R,S,{x y , x y , x y , x y , x y , x y , x y , x y , x y })
2 2 2 1 2 0 1 2 1 1 1 0 0 2 0 1 0 0
o7 : RingMap R <--- S
|
i8 : m(z_(1,2))
2
o8 = x y
1 2
o8 : R
|
If a given variable orbit of S has k indices, then the target monomial list in L should only use indices between 0 and k-1.
The object buildEMonomialMap is a method function.