# topMinimalPrimesIP -- compute the minimal primes of maximum dimension using integer programming

## Synopsis

• Usage:
topMinimalPrimesIP(I)
topMinimalPrimesIP(I, KnownDim => k)
topMinimalPrimesIP(I, IgnorePrimes => P)
• Inputs:
• I, ,
• Optional inputs:
• KnownDim => an integer, default value -1, the dimension, k, of the ideal
• IgnorePrimes => a list, default value {}, a list of primes to not include the the result. See IgnorePrimes.
• Outputs:
• L, a list, all minimal associated primes of dimension $k$

## Description

If a KnownDim is not provided, topMinimalPrimesIP will first call {dimensionIP}($I$) to compute the dimension.

The IP for this function is similar to the degreeIP formulation, except that rather than count the number of solutions, SCIP uses a sparse data structure to enumerate all feasible solutions.

The location of input/output files for SCIP solving is printed to the screen by default. To change this, see ScipPrintLevel.

 i1 : R = QQ[x,y,z,w,v]; i2 : I = monomialIdeal(y^12, x*y^3, z*w^3, z*v*y^10, z*x^10, v*z^10, w*v^10, y*v*x*z*w); o2 : MonomialIdeal of R i3 : ScipPrintLevel = 0; i4 : minimalPrimes(I) o4 = {monomialIdeal (y, z, w), monomialIdeal (y, z, v), monomialIdeal (x, y, ------------------------------------------------------------------------ w, v)} o4 : List i5 : apply(oo, p -> dim p) o5 = {2, 2, 1} o5 : List i6 : topMinimalPrimesIP(I) o6 = {monomialIdeal (y, z, v), monomialIdeal (y, z, w)} o6 : List

Notice that if the dimension of a monomial ideal is $k$, each of the top minimal primes is generated by $n-k$ variables, where $n$ is the number of variables in the polynomial ring.

## Caveat

topMinimalPrimesIP does not verify that a provided KnownDim is correct. Providing the wrong dimension will result in an incorrect answer or an error.