Macaulay2 » Documentation
Packages » MinimalPrimes » radical
next | previous | forward | backward | up | index | toc

# radical -- the radical of an ideal

- Usage:
    `radical I`
- Inputs:
  - I, an ideal,
- Optional inputs:
  - Unmixed => a Boolean value, default value false, whether it is known that the ideal I is unmixed. The ideal $I$ is said to be unmixed if all associated primes of $R/I$ have the same dimension. In this case the algorithm tends to be much faster.
  - Strategy => a symbol, default value null, the strategy to use, either Decompose or Unmixed
  - CompleteIntersection => an ideal, default value null, an ideal J of the same height as I whose generators form a maximal regular sequence contained in I. Providing this option as a hint allows a separate, often faster, algorithm to be used to compute the radical. This option should only be used if J is nice in some way. For example, if J is randomly generated, but I is relatively sparse, then this will most likely run slower than just giving the Unmixed (missing documentation) option.
- Outputs:
  - an ideal, the radical of I

## Description

If I is an ideal in an affine ring (i.e. a quotient of a polynomial ring over a field), and if the characteristic of this field is large enough (see below), then this routine yields the radical of the ideal I. The method used is the Eisenbud-Huneke-Vasconcelos algorithm.

The algorithms used generally require that the characteristic of the ground field is larger than the degree of each primary component. In practice, this means that if the characteristic is something like 32003, rather than, for example, 5, the methods used will produce the radical of I. Of course, you may do the computation over QQ, but it will often run much slower. In general, this routine still needs to be tuned for speed.

    i1 : R = QQ[x, y]

    o1 = R

    o1 : PolynomialRing

    i2 : I = ideal((x^2+1)^2*y, y+1)

                 4      2
    o2 = ideal (x y + 2x y + y, y + 1)

    o2 : Ideal of R

    i3 : radical I

                        2
    o3 = ideal (y + 1, x  + 1)

    o3 : Ideal of R

If I is a monomial ideal, a faster, combinatorial algorithm is used.

    i4 : R = ZZ/101[a..d]

    o4 = R

    o4 : PolynomialRing

    i5 : I = intersect(ideal(a^2,b^2,c), ideal(a,b^3,c^2))

                 2        2   3     2
    o5 = ideal (c , a*c, a , b , a*b )

    o5 : Ideal of R

    i6 : elapsedTime radical(ideal I_*, Strategy => Monomial)
     -- .000421554s elapsed

    o6 = ideal (a, b, c)

    o6 : Ideal of R

    i7 : elapsedTime radical(ideal I_*, Unmixed => true)
     -- .011959s elapsed

    o7 = ideal (c, b, a)

    o7 : Ideal of R

For another example, see PrimaryDecomposition.

## References

Eisenbud, Huneke, Vasconcelos, Invent. Math. 110 207-235 (1992).

## Caveat

The current implementation requires that the characteristic of the ground field is either zero or a large prime (unless I is a monomial ideal).

## See also

- minimalPrimes -- minimal primes of an ideal
- topComponents -- compute top dimensional component of an ideal or module
- removeLowestDimension -- remove components of lowest dimension
- saturate -- saturation of ideal or submodule
- Ideal : Ideal -- ideal or submodule quotient

### Menu

- radicalContainment -- whether an element is contained in the radical of an ideal

## Ways to use radical:

- `radical(Ideal)`

## For the programmer

The object radical is a method function with options.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/MinimalPrimes/doc.m2:310:0.