The code for this function allows users to retrieve certain information if desired. The information of largest interest is the fractions that correspond to the added variables in this description of the integral closure. Unfortunately, all of the added features currently only work on affine domains. The map and the corresponding fractions are obtained as a matrix using the function
icFractions where R is an affine domain. This function can be run without first using
integralClosure. The natural map from
R into its integral closure is obtained using the function
icMap and the conductor of the integral closure of R into R is found using
conductor (icMap R). Note that both
icFractions and
icMap take the input ring
R as input rather than the output of
integralClosure. In this way you can use these functions without running
integralClosure. The function
integralClosure is based on Theo De Jong's paper, An Algorithm for Computing the Integral Closure, J. Symbolic Computation, (1998) 26, 273-277. This implementation is written and maintained by Amelia Taylor,
<amelia.taylor@coloradocollege.edu>.
A domain example.
i1 : R = QQ[x,y,z]/ideal(x^6-z^6-y^2*z^4);
|
i2 : integralClosure R
QQ[w , w , x, y, z]
7 6
o2 = ---------------------------------------------
2 2 2 2 2
(w z - x , w z - w x, w x - w , w - y - z )
6 7 6 7 6 7
o2 : QuotientRing
|
In the case that the input ring
R is reduced, but not a domain, the direct sum of the rings returned is isomporphic to the integral closure of
R, but the rings returned are not necessarily all domains.
i3 : S=ZZ/101[a..d]/ideal(a*(b-c),c*(b-d),b*(c-d));
|
i4 : integralClosure S
ZZ
---[w , a, d]
ZZ 101 0
o4 = {---[c], -------------}
101 2
w - w
0 0
o4 : List
|
The algorithm can correctly proceed without decomposing a reduced ring if it finds a non-zero divisor
f with which to compute 1/f(fJ:J), where
J is the ideal defining the non-normal locus at that stage.
A package implementing product rings is in development. When this package is complete, the interface for the integralClosure code will change. In particular, in the case of a non-domain, a quotient ring of a polynomial ring isomorphic to the direct product of the factors formed during the computation will be returned. The individual factors will be available either as a part of the ring, or via a function and in this case, all the rings returned will be domains. This provides two advantages: first access to all the factors as domains and the ability to use other functions described below in the reduced case.
The code for this function allows users to retrieve certain information if desired. The information of largest interest is the fractions that correspond to the added variables in this description of the integral closure. Unfortunately, all of the added features currently only work on affine domains. The map and the corresponding fractions are obtained as a matrix using the function where R is an affine domain. This function can be run without first using
integralClosure. The natural map from
R into its integral closure is obtained using the function
icMap and the conductor of the integral closure of R into R is found using
conductor (icMap R). Note that both
icFractions and
icMap take the input ring
R as input rather than the output of
integralClosure. In this way you can use these functions without running
integralClosure.