# isHF -- is a finite list a Hilbert function of a polynomial ring mod a homogeneous ideal

## Synopsis

• Usage:
b=isHF L
• Inputs:
• L, a list, a finite list of integers
• Outputs:
• b, , true if L is a Hilbert function of a polynomial ring modulo a homogeneous ideal and false otherwise

## Description

Macaulay's Theorem characterizes the sequences of integers that occur as the Hilbert function of a polynomial ring modulo a homogeneous ideal. isHF checks that the input is a list of integers and that the first entry of the list is 1, and then it checks Macaulay's bound in each degree, using macaulayBound. The function returns true if the sequence of numbers in the list satisfies the conditions of Macaulay's Theorem and false otherwise.

 i1 : isHF({1,3,6,7,5,3}) o1 = true i2 : isHF({2,3,4,3,2}) --doesn't start with a 1 in degree 0 o2 = false i3 : isHF({1,3,6,8,14,3}) --growth from 8 to 14 is too high o3 = false

• macaulayRep -- the Macaulay representation of an integer
• macaulayBound -- the bound on the growth of a Hilbert function from Macaulay's Theorem

• "isHF(List)"

## For the programmer

The object isHF is .