# multUpperBound -- determine whether an ideal satisfies the upper bound of the multiplicity conjecture

## Synopsis

• Usage:
B=multUpperBound I
• Inputs:
• I, an ideal, a homogeneous ideal in a polynomial ring
• Outputs:
• B, , true if I satisfies the upper bound and false otherwise

## Description

Let I be a homogeneous ideal of codimension c in a polynomial ring R. Huneke and Srinivasan (and later Herzog and Srinivasan in the non-Cohen-Macaulay case) conjectured that

e(R/I) <= M_1 ... M_c / c!,

where M_i is the maximum shift in the minimal graded free resolution of R/I at step i, and e(R/I) is the multiplicity of R/I. multUpperBound tests this inequality for the given ideal, returning true if the inequality holds and false otherwise, and it prints the upper bound and the multiplicity (listed as the degree).

This conjecture was proven in 2008 work of Eisenbud-Schreyer and Boij-Soderberg.

 i1 : R=ZZ/32003[a..c]; i2 : multUpperBound ideal(a^4,b^4,c^4) degree = 64 upper bound = 64 o2 = true i3 : multUpperBound ideal(a^3,b^5,c^6,a^2*b,a*b*c) degree = 46 upper bound = 132 o3 = true

## See also

• cancelAll -- make all potentially possible cancellations in the graded free resolution of an ideal
• multUpperHF -- test a sufficient condition for the upper bound of the multiplicity conjecture
• multLowerBound -- determine whether an ideal satisfies the lower bound of the multiplicity conjecture
• multBounds -- determine whether an ideal satisfies the upper and lower bounds of the multiplicity conjecture

## Ways to use multUpperBound :

• "multUpperBound(Ideal)"

## For the programmer

The object multUpperBound is .