
D.4.2.11 finitenessTest
Procedure from library algebra.lib (see algebra_lib).
 Usage:
 finitenessTest(J[,v]); J ideal, v intvec (say v1,...,vr with vi>0)
 Return:
 a list l with l[1] integer, l[2], l[3], l[4] ideals
 l[1] = 1 if var(v1),...,var(vr) are in l[2] and 0 else
 l[2] (resp. l[3]) contains those variables which occur,
(resp. do not occur) as pure power in the leading term of one of the
generators of J,
 l[4] contains those J[i] for which the leading term is a pure power
of a variable (which is then in l[2])
(default: v = [1,2,..,nvars(basering)])

 Theory:
 If J is a standard basis of an ideal generated by x_1  f_1(y),...,
x_n  f_n with y_j ordered lexicographically and y_j >> x_i, then,
if y_i appears as pure power in the leading term of J[k], J[k] defines
an integral relation for y_i over the y_(i+1),... and the f's.
Moreover, in this situation, if l[2] = y_1,...,y_r, then K[y_1,...y_r]
is finite over K[f_1..f_n]. If J contains furthermore polynomials
h_j(y), then K[y_1,...y_z]/<h_j> is finite over K[f_1..f_n].
For a proof cf. Prop. 3.1.5, p. 214. in [G.M. Greuel, G. Pfister:
A SINGULAR Introduction to Commutative Algebra, 2nd Edition,
Springer Verlag (2007)]
Example:
 LIB "algebra.lib";
ring s = 0,(x,y,z,a,b,c),(lp(3),dp);
ideal i= a (xy)^3+x2z, b y21, c z3;
ideal j = a (xy)^3+x2z, b y21, c z3, xy;
finitenessTest(std(i),1..3);
==> [1]:
==> 0
==> [2]:
==> _[1]=y
==> _[2]=z
==> [3]:
==> _[1]=x
==> _[2]=a
==> _[3]=b
==> _[4]=c
==> [4]:
==> _[1]=z3c
==> _[2]=y2b+1
finitenessTest(std(j),1..3);
==> [1]:
==> 1
==> [2]:
==> _[1]=x
==> _[2]=y
==> _[3]=z
==> [3]:
==> _[1]=a
==> _[2]=b
==> _[3]=c
==> [4]:
==> _[1]=z3c
==> _[2]=y2b+1
==> _[3]=x2z+a

