Home Online Manual
Top
Back: isLocalizationRegular
Forward: resolutionInLocalization
FastBack:
FastForward:
Up: graal_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.17.5 warkedPreimageStd

Procedure from library graal.lib (see graal_lib).

Usage:
warkedPreimageStd(wM); M warkedModule

Return:
given wM consisting of:
- wM.Gr a graalBearer containing all relevant global structures - wM.modQ0y generating set G of a module M over Q0y - wM.stdmodQ0y empty
- wM.qQ0y empty
- wM.modKy corresponding generating set H of M_in over Ky - wM.stdmodKy empty
- wM.qKy empty
- wM.w weights on M
returns the same warkedModule, except following differences: - wM.stdmodQ0y contains a subset G such that for any standard basis L of the kernel G + L is a standard basis of modQ0y + kernel
- wM.qQ0y contains a transformation matrix such that stdmodAy = QAy*modQ0y
- wM.stdmodKy contains a standardbasis of modKy
- wM.qKy contains a transformation matrix such that stdmodKy = QKy*modKy

Note:
the standard basis of modAy is computed by lifting a corresponding Groebner basis of modKy

Example:
 
LIB "graal.lib";
ring Q = 0,(x,y,z),dp;
ideal H = y2-xz;
qring A = std(H);
ideal L = x3-yz,x2y-z2;
graalBearer Gr = graalMixed(L);
def Q0y = Gr.Q0y; setring Q0y;
module M = (Y(1)*y+y^2-1)*gen(1)+(Y(2)*z+z^2-1)*gen(2), Y(1)*y*gen(1)+Y(2)*z*gen(2);
/* This is M: */
print(matrix(M));
==> y^2-1+Y(1)*y,    Y(1)*y, 
==> (z^2-1)+(z)*Y(2),(z)*Y(2)
intvec w = 1,1,1;
warkedModule wM;
wM.Gr = Gr;
wM.modQ0y = M;
wM.w = w;
def Ky = Gr.Ky; setring Ky;
module Min = (y^2-1)*gen(1)+(z^2-1)*gen(2),Y(1)*y*gen(1)+Y(2)*z*gen(2);
/* This is M_in: */
print(matrix(Min));
==> y^2-1,  Y(1)*y, 
==> (z^2-1),(z)*Y(2)
wM.modKy = Min;
/* warkedPreimageStd yields the same standard basis as std: */
warkedModule wN = warkedPreimageStd(wM); wN;
==> // ** redefining scriptIin (  ideal scriptIin = Gr.scriptIin;) graal.lib:\
   :warkedPreimageStd:889
==> // ** redefining scriptI (  ideal scriptI = Gr.scriptI;) graal.lib::warke\
   dPreimageStd:918
==> // ** redefining a (  poly a = L[1][1,1];) graal.lib::normalizeInY:807
==> module over Q^0[Y] = (0,z),(Y(1),Y(2),x,y),(ds(2),c,dp(2)) / <0>:
==> y^2-1+Y(1)*y,    Y(1)*y, 
==> (z^2-1)+(z)*Y(2),(z)*Y(2)
==> standard basis:
==> _[1,1],_[1,2],0,              0,                0,         0,             
==> _[2,1],_[2,2],x^3+(-z)*y-Y(1),x^2*y+(-z^2)-Y(2),y^2+(-z)*x,(z)*Y(1)-Y(2)*\
   y
==> module over K[Y] = (0,z),(Y(1),Y(2),y),(c,dp(2),dp(1)) / <y^5+(-z^4)>:
==> y^2-1,  Y(1)*y, 
==> (z^2-1),(z)*Y(2)
==> weights on the unit vectors: 1,1,1
==> 
setring Q0y;
module stdM = std(M);
print(matrix(stdM));
==> y^2-1+Y(1)*y,    Y(1)-Y(1)^2*y,Y(1)^2*y^2,
==> (z^2-1)+(z)*Y(2),_[2,2],       _[2,3]