next | previous | forward | backward | up | top | index | toc | Macaulay2 website
StronglyStableIdeals :: gotzmannDecomposition

gotzmannDecomposition -- Compute Gotzmann's decomposition of Hilbert polynomial

Synopsis

Description

Returns the list of projective Hilbert polynomials of linear spaces summing up to the input polynomial:

i1 : QQ[t];
i2 : hp = projectiveHilbertPolynomial(3*t+4)

o2 = P  + 3*P
      0      1

o2 : ProjectiveHilbertPolynomial
i3 : gD = gotzmannDecomposition hp

o3 = {P , - P  + P , - 2*P  + P , P , P , P , P }
       1     0    1       0    1   0   0   0   0

o3 : List
i4 : sum gD

o4 = P  + 3*P
      0      1

o4 : ProjectiveHilbertPolynomial

The decomposition suggests the most degenerate geometric object with the given Hilbert polynomial.

i5 : R = QQ[x,y,z,w];
i6 : completeIntersection22 = ideal(random(2,R),random(2,R));

o6 : Ideal of R
i7 : hp = hilbertPolynomial completeIntersection22

o7 = - 4*P  + 4*P
          0      1

o7 : ProjectiveHilbertPolynomial
i8 : gD = gotzmannDecomposition hp

o8 = {P , - P  + P , - 2*P  + P , - 3*P  + P , P , P }
       1     0    1       0    1       0    1   0   0

o8 : List

The degree of hp is 1, so it is possible to obtain hp as Hilbert polynomial of a scheme in the plane. Gotzmann's decomposition has 4 terms of degree 1 and 2 term of degree 0. This suggests that the generic union of 4 lines and 2 points in a plane should have Hilbert polynomial hp:

i9 : H = random(1,R);
i10 : fourLines = for i from 1 to 4 list ideal(H,random(1,R));
i11 : twoPoints = for i from 1 to 2 list ideal(H,random(1,R),random(1,R));
i12 : unionLinesPoints = intersect(fourLines|twoPoints);

o12 : Ideal of R
i13 : hilbertPolynomial unionLinesPoints == hp

o13 = true

Ways to use gotzmannDecomposition :

For the programmer

The object gotzmannDecomposition is a method function.