B=multUpperHF(R,hilb)
This function uses cancelAll to test a sufficient condition for the upper bound of the HerzogHunekeSrinivasan conjecture to hold for all quotients of polynomial rings with Hilbert function hilb. The conjecture, proven in 2008 work of EisenbudSchreyer and BoijSoderberg, asserts that if R is a polynomial ring, and I is a homogeneous ideal in R, then
e(R/I) <= M_1 ... M_c / c!,
where M_i is the largest shift at step i of the minimal graded free resolution of R/I, c is the codimension of I, and e(R/I) is the multiplicity of R/I.
multUpperHF forms the lex ideal corresponding to the Hilbert function the user inputs. Then it calls cancelAll to make all potentially possible cancellations in the resolution of the lex ideal (as described in the cancelAll documentation). cancelAll prints the diagram with the cancellations. In addition, multUpperHF compares the multiplicity associated to the given Hilbert function to the conjectured upper bound from the Betti diagram with the cancellations. If the conjectured inequality holds, the function returns true, and the conjectured upper bound is true for all modules R/I with the given Hilbert function. If the inequality fails, then the function returns false, and the sufficient condition does not hold. (However, this of course does not mean that the conjecture is false for the given Hilbert function; it may be that the Betti diagram with the cancellations cannot exist.) Note that since hilb is a finite list, all modules with that Hilbert function are Artinian and hence CohenMacaulay.
See C. Francisco, New approaches to bounding the multiplicity of an ideal, J. Algebra 299 (2006), no. 1, 309328.



The object multUpperHF is a method function.