|
D.4.15.1 normal
Procedure from library normal.lib (see normal_lib).
- Usage:
- normal(id [,choose]); id = radical ideal, choose = list of options.
Optional parameters in list choose (can be entered in any order):
Decomposition:
- "equidim" -> computes first an equidimensional decomposition of the
input ideal, and then the normalization of each component (default).
- "prim" -> computes first the minimal associated primes of the input
ideal, and then the normalization of each prime. (When the input ideal
is not prime and the minimal associated primes are easy to compute,
this method is usually faster than "equidim".)
- "noDeco" -> no preliminary decomposition is done. If the ideal is
not equidimensional radical, output might be wrong.
- "isPrim" -> assumes that the ideal is prime. If this assumption
does not hold, the output might be wrong.
- "noFac" -> factorization is avoided in the computation of the
minimal associated primes;
Other:
- "useRing" -> uses the original ring ordering.
If this option is set and if the ring ordering is not global, normal
will change to a global ordering only for computing radicals and prime
or equidimensional decompositions.
If this option is not set, normal changes to dp ordering and performs
all computations with respect to this ordering.
- "withDelta" (or "wd") -> returns also the delta invariants.
If the optional parameter choose is not given or empty, only
"equidim" but no other option is used.
- list("inputJ", ideal inputJ) -> takes as initial test ideal the
ideal inputJ. This option is only for use in other procedures. Using
this option, the result might not be the normalization.
(Option only valid for global algorithm.)
- list("inputC", ideal inputC) -> takes as initial conductor the
ideal inputC. This option is only for use in other procedures. Using
this option, the result might not be the normalization.
(Option only valid for global algorithm.)
Options used for computing integral basis (over rings of two
variables):
- "var1" -> uses a polynomial in the first variable as
universal denominator.
- "var2" -> uses a polynomial in the second variable as universal
denominator.
If the optional parameter choose is not given or empty, only
"equidim" but no other option is used.
- Assume:
- The ideal must be radical, for non-radical ideals the output may
be wrong (id=radical(id); makes id radical). However, when using the
"prim" option the minimal associated primes of id are computed first
and hence normal computes the normalization of the radical of id.
- Note:
- "isPrim" should only be used if id is known to be prime.
- Return:
- a list, say nor, of size 2 (resp. 3 with option "withDelta").
@format Let R denote the basering and id the input ideal.
* nor[1] is a list of r rings, where r is the number of associated
primes P_i with option "prim" (resp. >= no of equidimenensional
components P_i with option "equidim").
Each ring Ri := nor[1][i], i=1..r, contains two ideals with given
names norid and normap such that:
- Ri/norid is the normalization of the i-th component, i.e. the
integral closure of R/P_i in its field of fractions (as affine ring);
- normap gives the normalization map from R/id to
Ri/norid for each i.
- the direct sum of the rings Ri/norid, i=1,..r, is the normalization
of R/id as affine algebra;
* nor[2] is a list of size r with information on the normalization of
the i-th component as module over the basering R:
nor[2][i] is an ideal, say U, in R such that the integral closure
of basering/P_i is generated as module over R by 1/c * U, with c
the last element U[size(U)] of U.
* nor[3] (if option "withDelta" is set) is a list of an intvec
of size r, the delta invariants of the r components, and an integer,
the total delta invariant of basering/id (-1 means infinite, and 0
that R/P_i resp. R/id is normal).
@end format
- Theory:
- We use here a general algorithm described in [G.-M.Greuel, S.Laplagne,
F.Seelisch: Normalization of Rings (2009)].
The procedure computes the R-module structure, the algebra structure
and the delta invariant of the normalization of R/id:
The normalization of R/id is the integral closure of R/id in its total
ring of fractions. It is a finitely generated R-module and nor[2]
computes R-module generators of it. More precisely: If U:=nor[2][i]
and c:=U[size(U)], then c is a non-zero divisor and U/c is an R-module
in the total ring of fractions, the integral closure of R/P_i. Since
U[size(U)]/c is equal to 1, R/P_i resp. R/id is contained in the
integral closure.
The normalization is also an affine algebra over the ground field
and nor[1] presents it as such. For geometric considerations nor[1] is
relevant since the variety of the ideal norid in Ri is the
normalization of the variety of the ideal P_i in R.
The delta invariant of a reduced ring A is dim_K(normalization(A)/A).
For A=K[x1,...,xn]/id we call this number also the delta invariant of
id. nor[3] returns the delta invariants of the components P_i and of
id.
- Note:
- To use the i-th ring type e.g.:
def R=nor[1][i]; setring R; .
Increasing/decreasing printlevel displays more/less comments
(default: printlevel=0).
Implementation works also for local rings.
Not implemented for quotient rings.
If the input ideal id is weighted homogeneous a weighted ordering may
be used together with the useRing-option (qhweight(id); computes
weights).
Example:
See also:
normalC;
normalP.
|