|
D.4.15.2 normalP
Procedure from library normal.lib (see normal_lib).
- Usage:
- normalP(id [,choose]); id = radical ideal, choose = optional list of
strings.
Optional parameters in list choose (can be entered in any order):
"withRing", "isPrim", "noFac", "noRed", where
- "noFac" -> factorization is avoided during the computation
of the minimal associated primes.
- "isPrim" -> assumes that the ideal is prime. If the assumption
does not hold, output might be wrong.
- "withRing" -> the ring structure of the normalization is
computed. The number of variables in the new ring is reduced as much
as possible.
- "noRed" -> when computing the ring structure, no reduction on the
number of variables is done, it creates one new variable for every
new module generator of the integral closure in the quotient field.
- Assume:
- The characteristic of the ground field must be positive. If the
option "isPrim" is not set, the minimal associated primes of id
are computed first and hence normalP computes the normalization of
the radical of id. If option "isPrim" is set, the ideal must be
a prime ideal otherwise the result may be wrong.
- Return:
- a list, say 'nor' of size 2 (resp. 3 if "withRing" is set).
** If option "withRing" is not set:
Only the module structure is computed:
* nor[1] is a list of ideals Ii, i=1..r, in the basering R where r
is the number of minimal associated prime ideals P_i of the input
ideal id, describing the module structure:
If Ii is given by polynomials g_1,...,g_k in R, then c:=g_k is
non-zero in the ring R/P_i and g_1/c,...,g_k/c generate the integral
closure of R/P_i as R-module in the quotient field of R/P_i.
* nor[2] shows the delta invariants: it is a list of an intvec
of size r, the delta invariants of the r components, and an integer,
the total delta invariant of R/id
(-1 means infinite, and 0 that R/P_i resp. R/id is normal).
** If option "withRing" is set:
The ring structure is also computed, and in this case:
* nor[1] is a list of r rings.
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 R/P_i, i.e. isomorphic as
K-algebra (K the ground field) to the integral closure of R/P_i in
the field of fractions of R/P_i;
- the direct sum of the rings Ri/norid is the normalization
of R/id;
- normap gives the normalization map from R to Ri/norid.
* nor[2] gives the module generators of the normalization of R/P_i,
it is the same as nor[1] if "withRing" is not set.
* nor[3] shows the delta invariants, it is the same as nor[2] if
"withRing" is not set.
- Theory:
- normalP uses the Leonard-Pellikaan-Singh-Swanson algorithm (using the
Frobenius) cf. [A. K. Singh, I. Swanson: An algorithm for computing
the integral closure, arXiv:0901.0871].
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. The procedure returns the delta invariants of the components P_i
and of id.
- Note:
- To use the i-th ring type:
def R=nor[1][i]; setring R; .
Increasing/decreasing printlevel displays more/less comments
(default: printlevel = 0).
Not implemented for local or mixed orderings or quotient rings.
For local or mixed orderings use proc 'normal'.
If the input ideal id is weighted homogeneous a weighted ordering may
be used (qhweight(id); computes weights).
Works only in characteristic p > 0; use proc normal in char 0.
Example:
See also:
normal;
normalC.
|