# IntegralClosure -- routines for integral closure of affine domains and ideals

## Description

This package contains several algorithms for computing the integral closure (i.e. normalization) of an affine domain, and also of an ideal.

The basic use of this package is shown in the following example.

 i1 : R = QQ[x,y,z]/(x^3-x^2*z^5-z^2*y^5) o1 = R o1 : QuotientRing i2 : S = integralClosure R o2 = S o2 : QuotientRing i3 : describe S QQ[w , x..z] 1,0 o3 = ----------------------------------------------------- 3 2 5 2 2 5 (w x - y z, w y z + x*z - x , w + y*z - x*y) 1,0 1,0 1,0

Use icFractions to see what fractions have been added.

 i4 : icFractions R 3 y z o4 = {---, x, y, z} x o4 : List

Look at the ideal of S or the generators of S to see the structure of the integral closure.

 i5 : gens S o5 = {w , x, y, z} 1,0 o5 : List i6 : trim ideal S 3 2 5 2 2 5 o6 = ideal (w x - y z, w y z + x*z - x , w + y*z - x*y) 1,0 1,0 1,0 o6 : Ideal of QQ[w , x..z] 1,0

The integral closure of an ideal can be computed as follows.

 i7 : use R o7 = R o7 : QuotientRing i8 : I = ideal(y,z) o8 = ideal (y, z) o8 : Ideal of R i9 : integralClosure I o9 = ideal (z, y, x) o9 : Ideal of R

Integral closures of powers of ideals can be computed in a more efficient manner than using e.g. integralClosure(I^d), by using e.g. integralClosure(I,d).

 i10 : integralClosure(I^2) 2 2 o10 = ideal (x, z , y*z, y ) o10 : Ideal of R i11 : integralClosure(I, 2) 2 2 o11 = ideal (x, z , y*z, y ) o11 : Ideal of R i12 : integralClosure(I, 3) == integralClosure(I^3) o12 = true

If the characteristic is positive, yet small compared to the degree, but the fraction ring is still separable over a subring, then use icFracP, which is an implementation of an algorithm due to Leonard-Pellikaan, and modified by Singh-Swanson (see arXiv:0901.0871). However, the interface to this routine is likely to change in future releases to more closely match the functions above.

The method used by integralClosure is a modification of the basic algorithm explained in Theo De Jong's paper An Algorithm for Computing the Integral Closure, J. Symbolic Computation, (1998) 26, 273-277.

## Version

This documentation describes version 1.10 of IntegralClosure.

## Source code

The source code from which this documentation is derived is in the file IntegralClosure.m2. The auxiliary files accompanying it are in the directory IntegralClosure/.

## Exports

• Functions and commands
• conductor -- the conductor of a finite ring map
• icFracP -- compute the integral closure in prime characteristic
• icFractions -- fractions integral over an affine domain
• icMap -- natural map from an affine domain into its integral closure
• icPIdeal -- compute the integral closure in prime characteristic of a principal ideal
• idealizer -- compute Hom(I,I) as a quotient ring
• integralClosure -- integral closure of an ideal or a domain
• isNormal -- determine if a reduced ring is normal
• makeS2 -- compute the S2ification of a reduced ring
• ringFromFractions -- find presentation for f.g. ring
• testHunekeQuestion -- tests a conjecture on integral closures strengthening the Eisenbud-Mazur conjecture
• Methods
• "conductor(Ring)" -- see conductor -- the conductor of a finite ring map
• "conductor(RingMap)" -- see conductor -- the conductor of a finite ring map
• "icFracP(Ring)" -- see icFracP -- compute the integral closure in prime characteristic
• "icFractions(Ring)" -- see icFractions -- fractions integral over an affine domain
• "icMap(Ring)" -- see icMap -- natural map from an affine domain into its integral closure
• "icPIdeal(RingElement,RingElement,ZZ)" -- see icPIdeal -- compute the integral closure in prime characteristic of a principal ideal
• "idealizer(Ideal,RingElement)" -- see idealizer -- compute Hom(I,I) as a quotient ring
• "integralClosure(Ideal)" -- see integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• "integralClosure(Ideal,RingElement)" -- see integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• "integralClosure(Ideal,ZZ)" -- see integralClosure(Ideal,RingElement,ZZ) -- integral closure of an ideal in an affine domain
• integralClosure(Ring) -- compute the integral closure (normalization) of an affine domain
• integralClosure(Ring,Ring) -- compute the integral closure (normalization) of an affine reduced ring over a base ring
• "isNormal(Ring)" -- see isNormal -- determine if a reduced ring is normal
• "makeS2(Ring)" -- see makeS2 -- compute the S2ification of a reduced ring
• "ringFromFractions(Matrix,RingElement)" -- see ringFromFractions -- find presentation for f.g. ring
• "testHunekeQuestion(RingElement)" -- see testHunekeQuestion -- tests a conjecture on integral closures strengthening the Eisenbud-Mazur conjecture
• Symbols
• AllCodimensions -- a symbol denoting a strategy element usable with integralClosure(...,Strategy=>...)
• ConductorElement -- Specifies a particular non-zerodivisor in the conductor.
• Index -- Optional input for idealizer
• Keep -- an optional argument for various functions
• Radical -- a symbol denoting a strategy element usable with integralClosure(...,Strategy=>...)
• RadicalCodim1 -- a symbol denoting a strategy element usable with integralClosure(...,Strategy=>...)
• SimplifyFractions -- a symbol denoting a strategy element usable with integralClosure(...,Strategy=>...)
• StartWithOneMinor -- a symbol denoting a strategy element usable with integralClosure(...,Strategy=>...)
• Vasconcelos -- a symbol denoting a strategy element usable with integralClosure(...,Strategy=>...)

## For the programmer

The object IntegralClosure is .