|  |  7.5.19.0. preimageNC Procedure from libraryncpreim.lib(see  ncpreim_lib).
 
Example:Usage:
preimageNC(A,f,J[,P,eng]); A ring, f map or ideal, J ideal,
P optional string, eng optional int
Assume:
f defines a map from A to the basering.
Return:
nothing, instead exports an object `preim' of type ideal to ring A,
being the preimage of J under f.
Note:
If P is given and not equal to the empty string, the preimage is
exported to A under the name specified by P.
Otherwise (and by default), P is set to `preim'.
 If eng<>0,
 stdis used for Groebner basis computations,
otherwise (and by default)slimgbis used.If printlevel=1, progress debug messages will be printed,
if printlevel>=2, all the debug messages will be printed.
 
Remark:
Reference: (Lev)
 See also:
 preimage (plural).|  | LIB "ncpreim.lib";
def A = makeUgl(3); setring A; A; // universal enveloping algebra of gl_3
==> // coefficients: QQ considered as a field
==> // number of vars : 9
==> //        block   1 : ordering dp
==> //                  : names    e_1_1 e_1_2 e_1_3 e_2_1 e_2_2 e_2_3 e_3_1 \
   e_3_2 e_3_3
==> //        block   2 : ordering C
==> // noncommutative relations:
==> //    e_1_2e_1_1=e_1_1*e_1_2-e_1_2
==> //    e_1_3e_1_1=e_1_1*e_1_3-e_1_3
==> //    e_2_1e_1_1=e_1_1*e_2_1+e_2_1
==> //    e_3_1e_1_1=e_1_1*e_3_1+e_3_1
==> //    e_2_1e_1_2=e_1_2*e_2_1-e_1_1+e_2_2
==> //    e_2_2e_1_2=e_1_2*e_2_2-e_1_2
==> //    e_2_3e_1_2=e_1_2*e_2_3-e_1_3
==> //    e_3_1e_1_2=e_1_2*e_3_1+e_3_2
==> //    e_2_1e_1_3=e_1_3*e_2_1+e_2_3
==> //    e_3_1e_1_3=e_1_3*e_3_1-e_1_1+e_3_3
==> //    e_3_2e_1_3=e_1_3*e_3_2-e_1_2
==> //    e_3_3e_1_3=e_1_3*e_3_3-e_1_3
==> //    e_2_2e_2_1=e_2_1*e_2_2+e_2_1
==> //    e_3_2e_2_1=e_2_1*e_3_2+e_3_1
==> //    e_2_3e_2_2=e_2_2*e_2_3-e_2_3
==> //    e_3_2e_2_2=e_2_2*e_3_2+e_3_2
==> //    e_3_1e_2_3=e_2_3*e_3_1-e_2_1
==> //    e_3_2e_2_3=e_2_3*e_3_2-e_2_2+e_3_3
==> //    e_3_3e_2_3=e_2_3*e_3_3-e_2_3
==> //    e_3_3e_3_1=e_3_1*e_3_3+e_3_1
==> //    e_3_3e_3_2=e_3_2*e_3_3+e_3_2
ring r3 = 0,(x,y,z,Dx,Dy,Dz),dp;
def B = Weyl(); setring B; B;     // third Weyl algebra
==> // coefficients: QQ considered as a field
==> // number of vars : 6
==> //        block   1 : ordering dp
==> //                  : names    x y z Dx Dy Dz
==> //        block   2 : ordering C
==> // noncommutative relations:
==> //    Dxx=x*Dx+1
==> //    Dyy=y*Dy+1
==> //    Dzz=z*Dz+1
ideal ff = x*Dx,x*Dy,x*Dz,y*Dx,y*Dy,y*Dz,z*Dx,z*Dy,z*Dz;
map f = A,ff;                     // f: A -> B, e(i,j) |-> x(i)D(j)
ideal J = 0;
preimageNC(A,f,J,"K");            // compute K := ker(f)
setring A;
K;
==> K[1]=e_2_3*e_3_2-e_2_2*e_3_3-e_2_2
==> K[2]=e_1_3*e_3_2-e_1_2*e_3_3-e_1_2
==> K[3]=e_2_3*e_3_1-e_2_1*e_3_3-e_2_1
==> K[4]=e_2_2*e_3_1-e_2_1*e_3_2
==> K[5]=e_1_3*e_3_1-e_1_1*e_3_3-e_1_1
==> K[6]=e_1_2*e_3_1-e_1_1*e_3_2
==> K[7]=e_1_3*e_2_2-e_1_2*e_2_3+e_1_3
==> K[8]=e_1_3*e_2_1-e_1_1*e_2_3
==> K[9]=e_1_2*e_2_1-e_1_1*e_2_2-e_1_1
 | 
 
 |