|
D.4.2.4 algDependent
Procedure from library algebra.lib (see algebra_lib).
- Usage:
- algDependent(f[,c]); f ideal (say, f = f1,...,fm), c integer
- Return:
| a list l of size 2, l[1] integer, l[2] ring:
- l[1] = 1 if f1,...,fm are algebraic dependent, 0 if not
- l[2] is a ring with variables x(1),...,x(n),y(1),...,y(m) if the
basering has n variables. It contains the ideal 'ker', depending
only on the y(i) and generating the algebraic relations between the
f[i], i.e. substituting y(i) by fi yields 0. Of course, ker is
nothing but the kernel of the ring map
K[y(1),...,y(m)] ---> basering, y(i) --> fi.
|
- Note:
- Three different algorithms are used depending on c = 1,2,3.
If c is not given or c=0, a heuristically best method is chosen.
The basering may be a quotient ring.
To access to the ring l[2] and see ker you must give the ring a name,
e.g. def S=l[2]; setring S; ker;
- Display:
- The above comment is displayed if printlevel >= 0 (default).
Example:
| LIB "algebra.lib";
int p = printlevel; printlevel = 1;
ring R = 0,(x,y,z,u,v,w),dp;
ideal I = xyzu2w-1yzu2w2+u4w2-1xu2vw+u2vw2+xyz-1yzw+2u2w-1xv+vw+2,
x-w, u2w+1, yz-v;
list l = algDependent(I);
==>
==> // The 2nd element of the list l is a ring with variables x(1),...,x(n),
==> // and y(1),...,y(m) if the basering has n variables and if the ideal
==> // is f[1],...,f[m]. The ring contains the ideal ker which depends only
==> // on the y(i) and generates the relations between the f[i].
==> // I.e. substituting y(i) by f[i] yields 0.
==> // To access to the ring and see ker you must give the ring a name,
==> // e.g.:
==> def S = l[2]; setring S; ker;
==>
l[1];
==> 1
def S = l[2]; setring S;
ker;
==> ker[1]=y(2)*y(3)*y(4)+y(3)^2-y(1)+1
printlevel = p;
|
|