# gotzmannDecomposition -- Compute Gotzmann's decomposition of Hilbert polynomial

## Synopsis

• Usage:
gotzmannDecomposition hp
• Inputs:
• hp, , or
• hp, , a Hilbert polynomial.
• Outputs:

## 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 :

• "gotzmannDecomposition(ProjectiveHilbertPolynomial)"
• "gotzmannDecomposition(RingElement)"

## For the programmer

The object gotzmannDecomposition is .