For us, a Gotzmann set will be a set L of monomials of degree d in the variables x_0,\dots,x_r with the property that if m\in L, then x_0 divides m and if x_i divides m, then (x_0m)/x_i\in L. The function gotzmannTest checks if a set of monomials fulfills this property.
i1 : S=ZZ[x,y,z]; |
i2 : L={x^3,x^2*y,x^2*z,x*y*z} 3 2 2 o2 = {x , x y, x z, x*y*z} o2 : List |
i3 : gotzmannTest(L,x) o3 = true |
A non example of a Gotzmann set is L_2=\{x^3,x^2y,xz^2\}.
i4 : L2={x^3,x^2*y,x*z^2} 3 2 2 o4 = {x , x y, x*z } o4 : List |
i5 : gotzmannTest(L2,x) o5 = false |
L_2 is not a Gotzmann set since it does not contain x^2z.
When we consider a free S-module S^p with basis e_1,\dots,e_p, then we generalize our notion of Gotzmann set for x so that a set L is a Gotzmann set if it is a union of Gotzmann sets for x for e_1,\dots,e_p.
As an example in S^2=\mathbb{Z}[x,y,z]^2 we have a Gotzmann set L=\{x^2e_1,xye_1,x^2e_2\}\ as it is a Gotzmann set in each coordinate. We can test this be gotzmannTest(S^p,d,I), where d is the degree of the monomials, and I is the index of the monomials of L listed in the lexicographical order x<y<z<e_1<e_2. In our case we have d=2 and I=\{0,1,6\}\ since:
x^2e_1<xye_1<xze_1<y^2e_1<yze_1<z^2e_1<x^2e_2<xye_2<xze_2<y^2e_2<yze_2<z^2e_2.
i6 : gotzmannTest(S^2,2,{0,1,6}) o6 = true |
The object gotzmannTest is a method function.