Home Online Manual
Top
Back: modnormal_lib
Forward: modstd_lib
FastBack:
FastForward:
Up: modnormal_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.4.13.1 modNormal

Procedure from library modnormal.lib (see modnormal_lib).

Usage:
modNormal(I, n [,options]); I = prime ideal, n = positive integer, options = list of options.
Optional parameters in list options (can be entered in any order):
noVerificication: do not verify the result.
printTimings: print timings.
int ncores: number of cores to be used (default = 1).

Assume:
I is a prime ideal (the algorithm will also work for radical ideals as long as the normal command does not detect that the ideal under consideration is not prime).

Return:
a list of an ideal U and a universal denominator d such that U/d is the normalization.

Remarks:
We use the algorithm given in [1] to compute the normalization of A = R/I where R is the basering. We apply the algorithm for n primes at a time until the result lifted to the rationals is correct modulo one additional prime. Depending on whether the option noVerificication is used or not, the result is returned as a probabilistic result or verified over the rationals.
The normalization of A is represented as an R-module by returning a list of U and d, where U is an ideal of A and d is an element of A such that U/d is the normalization of A. In fact, U and d are returned as an ideal and a polynomial of the base ring R.

Example:
 
LIB "modnormal.lib";
ring R = 0,(x,y,z),dp;
int k = 4;
poly f = (x^(k+1)+y^(k+1)+z^(k+1))^2-4*(x^(k+1)*y^(k+1)+y^(k+1)*z^(k+1)+z^(k+1)*x^(k+1));
f = subst(f,z,3x-2y+1);
ring S = 0,(x,y),dp;
poly f = imap(R,f);
ideal i = f;
list L = modNormal(i,1,"noVerification");
See also: locnormal_lib; normal_lib.