m should be a monomial map between rings created by buildERing. Such a map can be constructed with buildEMonomialMap but this is not required.
For a map to ring R from ring S, the algorithm infers the entire equivariant map from where m sends the variable orbit generators of S. In particular for each orbit of variables of the form x(i1,...,ik), the image of x(0,...,k-1) is used.
egbToric uses an incremental strategy, computing Gröbner bases for truncations using FourTiTwo. Because of FourTiTwo’s efficiency, this strategy tends to be much faster than general equivariant Gröbner basis algorithms such as egb.
In the following example we compute an equivariant Gröbner basis for the vanishing equations of the second Veronese of Pn, i.e. the variety of n x n rank 1 symmetric matrices.
i1 : R = buildERing({symbol x}, {1}, QQ, 2); |
i2 : S = buildERing({symbol y}, {2}, QQ, 2); |
i3 : m = buildEMonomialMap(R,S,{x_0*x_1}) 2 2 o3 = map(R,S,{x , x x , x x , x }) 1 1 0 1 0 0 o3 : RingMap R <--- S |
i4 : G = egbToric(m, OutFile=>stdio) 3 -- used .00210887 seconds -- used .000302934 seconds (9, 9) new stuff found 4 -- used .00461755 seconds -- used .00209968 seconds (16, 26) new stuff found 5 -- used .0112155 seconds -- used .00765948 seconds (25, 60) 6 -- used .0268764 seconds -- used .0207489 seconds (36, 120) 7 -- used .0597395 seconds -- used .0587082 seconds (49, 217) 2 o4 = {- y + y , - y y + y , - y y + y y , - y y + 1,0 0,1 1,1 0,0 1,0 2,1 0,0 2,0 1,0 2,1 1,0 ------------------------------------------------------------------------ y y , - y y + y y , - y y + y y , - y y + 2,0 1,1 2,2 1,0 2,1 2,0 3,2 1,0 3,0 2,1 3,2 1,0 ------------------------------------------------------------------------ y y } 3,1 2,0 o4 : List |
It is not checked if m is equivariant. Only the images of the orbit generators of the source ring are examined and the rest of the map ignored.