next up previous
Next: Integral closure algorithm Up: Normalization algorithm Previous: Computing the non-normal locus

Computing the normalization

The idea for computing the normalization of $ A = S/I$ is as follows:

For performance reasons we do not look for a non-zerodivisor in $ J_i$ but choose any non-zero element $ u$. If $ u$ is a zerodivisor then it gives a splitting of the ring which makes the subsequent computations easier.


We obtain the following (highly recursive) algorithm for computing the normalization:

Input
$ f_1, \dots, f_k \in S=K[x_1, \dots, x_n]$, $ I =
\langle f_1, \dots, f_k\rangle$
We assume that $ I$ is a radical ideal.
Output
Polynomial rings $ S_1, \dots, S_\ell$, ideals $ I_j
\subset S_j$, and maps $ \pi_j : S \to S_j$ such that $ S/I \to S_1/I_1 \oplus \dots \oplus S_\ell/I_\ell$, induced by $ (\pi_1,\dots,\pi_\ell)$ is the normalization map of $ S/I$.

  1. Compute an ideal $ I_{Sing}$ describing the singular locus.
  2. Compute the radical $ J=\sqrt{I_{Sing}}$.
  3. Choose $ u \in J\setminus\{0\}$ and compute $ I : u$. If $ I : u = I$ go to 4 (then $ u$ is a non-zerodivisor of $ S/I$). Otherwise, set $ R = A/\langle u \rangle \oplus A/(I :
u)$ and go to 6.
  4. Compute $ R := Hom_A(J,J)$ and $ \pi : A \to R$.
  5. If $ A = R$ then return $ (R, \pi)$, otherwise go to 1.
  6. Suppose $ R = R_1/I_1 \oplus \dots \oplus
R_\ell/I_\ell$. Then, for each $ i=1,\dots,\ell$, set $ A=R_i/I_i$ and go to 1.


next up previous
Next: Integral closure algorithm Up: Normalization algorithm Previous: Computing the non-normal locus
Christoph Lossen
2001-03-21