
D.4.2.9 noetherNormal
Procedure from library algebra.lib (see algebra_lib).
 Usage:
 noetherNormal(id[,p]); id ideal, p integer
 Return:
 a list l of two ideals, say I,J:
 I defines a map (coordinate change in the basering), such that:
 J is generated by a subset of the variables with size(J) = dim(id)
if we define map phi=basering,I;
then k[var(1),...,var(n)]/phi(id) is finite over k[J].
If p is given, 0<=p<=100, a sparse coordinate change with p percent
of the matrix entries being 0 (default: p=0 i.e. dense)

 Note:
 Designed for characteristic 0.It works also in char k > 0 if it
terminates,but may result in an infinite loop in small characteristic.
Example:
 LIB "algebra.lib";
ring r=0,(x,y,z),dp;
ideal i= xy,xz;
noetherNormal(i);
==> [1]:
==> _[1]=x
==> _[2]=2x+y
==> _[3]=3x+4y+z
==> [2]:
==> _[1]=y
==> _[2]=z

