|
7.5.20.0. leftOre
Procedure from library olga.lib (see olga_lib).
- Usage:
- leftOre(s, r, locType, locData), poly s, r, int locType,
list/vector/intvec locData
- Purpose:
- compute left Ore data for a given tuple (s,r)
- Assume:
- s is in the denominator set determined via locType and locData
- Return:
- list
- Note:
- - the first entry of the list is a vector [ts,tr] such that ts*r=tr*s
- the second entry of the list is a description of all choices for ts
Example:
| LIB "olga.lib";
ring R = 0,(x,y,Dx,Dy),dp;
def S = Weyl();
setring S; S;
==> // coefficients: QQ
==> // number of vars : 4
==> // block 1 : ordering dp
==> // : names x y Dx Dy
==> // block 2 : ordering C
==> // noncommutative relations:
==> // Dxx=x*Dx+1
==> // Dyy=y*Dy+1
// left Ore
// monoidal localization
poly g1 = x+3;
poly g2 = x*y;
list L = g1,g2;
poly g = g1^2*g2;
poly f = Dx;
list rm = leftOre(g, f, 0, L);
print(rm[1]);
==> [x^8*y^4+12*x^7*y^4+54*x^6*y^4+108*x^5*y^4+81*x^4*y^4,x^5*y^3*Dx+6*x^4*y^\
3*Dx-3*x^4*y^3+9*x^3*y^3*Dx-12*x^3*y^3-9*x^2*y^3]
rm[2];
==> _[1]=x^8*y^4+12*x^7*y^4+54*x^6*y^4+108*x^5*y^4+81*x^4*y^4
rm[1][2]*g-rm[1][1]*f;
==> 0
// geometric localization
ideal p = x-1, y-3;
f = Dx;
g = x^2+y;
list rg = leftOre(g, f, 1, p);
print(rg[1]);
==> [x^4+2*x^2*y+y^2,x^2*Dx+y*Dx-2*x]
rg[2];
==> _[1]=x^4+2*x^2*y+y^2
rg[1][2]*g-rg[1][1]*f;
==> 0
// rational localization
intvec rat = 1;
f = Dx+Dy;
g = x;
list rr = leftOre(g, f, 2, rat);
print(rr[1]);
==> [x^2,x*Dx+x*Dy-1]
rr[2];
==> _[1]=x^2
rr[1][2]*g-rr[1][1]*f;
==> 0
|
|