|
7.7.14.0. preimageNC
Procedure from library ncpreim.lib (see ncpreim_lib).
- 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, std is used for Groebner basis computations,
otherwise (and by default) slimgb is used.
If printlevel=1, progress debug messages will be printed,
if printlevel>=2, all the debug messages will be printed.
- Remark:
- Reference: (Lev)
Example:
| LIB "ncpreim.lib";
def A = makeUgl(3); setring A; A; // universal enveloping algebra of gl_3
==> // characteristic : 0
==> // 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
==> // characteristic : 0
==> // 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
| See also:
preimage (plural).
|