In this section we present an algorithm to compute, for a reduced affine ring , the normalization, that is, the integral closure of in its total ring of fractions. This algorithm can be used to describe an algorithm for computing the integral closure of an ideal in .
The normalization of a ring is an important construction in commutative algebra and algebraic geometry, as well as the integral closure of an ideal. Both have many applications in commutative algebra, algebraic geometry and singularity theory, e.g., in the theory of equisingularity and for resolution of singularities. Hence it is desirable to have a sufficiently good implementation of the algorithms which can compute interesting examples. Such an implementation is distributed with SINGULAR, version 2.0, [17].
The algorithm for the normalization is based on a criterion of Grauert and Remmert and was first described in [6], see also [5]. The Grauert-Remmert criterion provides an algorithm to compute the non-normal locus of an affine ring, which we also describe. Both seem to be the only known general algorithms. To compute the integral closure of an ideal , we use the normalization of the Rees algebra of together with several extra procedures, which make this basically a new algorithm.
A good reference for computational aspects in connection with integral closure is found in the textbooks [44,45] and in the articles [43,4]. Other references are [39] and [10] or can be found in [44,45].
Let denote the total ring of fractions of and the integral closure of in . There have been many attempts to construct a bigger ring , , which is finite over and then continuing with , in order to approximate . The problem of this approach is to know when to stop, that is, to have an effective criterion for a ring to be normal. It had escaped the computer algebra community that such a criterion has been known for more than thirty years, having been discovered by Grauert and Remmert [12]. It was rediscovered by De Jong [6] and says that is normal if and only if the natural embedding , where denotes the ideal of the singular locus, is an isomorphism. To be able to continue with we must present as a polynomial ring modulo some ideal, together with the embedding , which is not difficult. By the theorem of Grauert and Remmert, we know when to stop to reach the normalization of (for affine rings the algorithm stops by a classical theorem of E. Noether).
If is an ideal, then it is well-known that the Rees algebra
Unfortunately, this algorithm computes too much, namely all and, therefore, its application is restricted only to examples of moderate size. However, already a first implementation in SINGULAR, cf. [22,23], shows that we can compute interesting examples (and it is the only existing implementation). It is still an open problem to find a better algorithm, not using the Rees algebra.