Function Repository Resource:

# PolynomialIdealDimension

Compute the dimension of a polynomial ideal

Contributed by: Daniel Lichtblau
 ResourceFunction["PolynomialIdealDimension"][polys,vars] computes the dimension of the ideal defined by polys in the polynomial ring ℚ[vars].

## Details and Options

PolynomialIdealDimension computes the Krull dimension of an ideal.
PolynomialIdealDimension supports a Modulus option (default 0). If nonzero, the modulus p must be prime. It will regard the polynomials as belonging to the ring p[vars].
Unknowns in the input polynomials that are not specified in vars are regarded as parameters, that is, they lie in the coefficient field.
An ideal containing 1 is considered to have dimension -1.

## Examples

### Basic Examples (3)

Find the dimension of an ideal defined by three polynomials in five variables:

 In[1]:=
 Out[3]=

When we remove the first variable and regard it as a coefficient parameter the dimension decreases by 1:

 In[4]:=
 Out[4]=

If instead we remove the first polynomial then the dimension increases by 1:

 In[5]:=
 Out[5]=

### Scope (3)

Find an ideal dimension:

 In[6]:=
 Out[8]=

Provide a nonzero modulus:

 In[9]:=
 Out[9]=

For most prime moduli the dimension is the same as in the case of working over the rationals, but there can be finitely many exceptions:

 In[10]:=
 Out[10]=

### Properties and Relations (4)

Square systems typically have dimension zero; we show this in particular for the Cassou-Nouges benchmark polynomial ideal:

 In[11]:=
 Out[13]=

Adding a polynomial makes the system overdetermined, so the dimension becomes -1:

 In[14]:=
 Out[14]=

Here is a benchmark example from an ISSAC 2001 conference paper with more polynomials than variables; it arose in the context of locating all singular points on a particular algebraic curve:

 In[15]:=

Such a polynomial ideal can still have dimension 0 rather than -1; we use a nonzero modulus for speed:

 In[16]:=
 Out[16]=

### Possible Issues

As with any computation that requires computing a Gröbner basis, this function can be slow.

## Version History

• 1.0.0 – 08 May 2023