qring inside qring
hsuess · Fri Apr 18, 2008 1:25 pm
Hello,
a call of qring inside a qring results in a quotient of a polynomial ring by the new ideal, but the old one gets lost:
> ring r=0,(x,y),dp;
> qring qr=std(x^2);
> basering;
// characteristic : 0
// number of vars : 2
// block 1 : ordering dp
// : names x y
// block 2 : ordering C
// quotient ring from ideal
_[1]=x2
> qring qqr=std(y^2);
> basering;
// characteristic : 0
// number of vars : 2
// block 1 : ordering dp
// : names x y
// block 2 : ordering C
// quotient ring from ideal
_[1]=y2
as a solution I suggest a improved version of qring:
proc quotientRing(ideal I){
def @r=basering;
list rl=ringlist(@r);
list rl2=rl;
rl2[4]=ideal(0);
def @rr=ring(rl2);
setring @rr;
ideal I=imap(@r,I);
list rl=imap(@r,rl);
I=I+rl[4];
I=std(I);
rl[4]=I;
def @rrr=ring(rl);
return(@rrr);
}
best regards
Hendrik Suess
a call of qring inside a qring results in a quotient of a polynomial ring by the new ideal, but the old one gets lost:
> ring r=0,(x,y),dp;
> qring qr=std(x^2);
> basering;
// characteristic : 0
// number of vars : 2
// block 1 : ordering dp
// : names x y
// block 2 : ordering C
// quotient ring from ideal
_[1]=x2
> qring qqr=std(y^2);
> basering;
// characteristic : 0
// number of vars : 2
// block 1 : ordering dp
// : names x y
// block 2 : ordering C
// quotient ring from ideal
_[1]=y2
as a solution I suggest a improved version of qring:
proc quotientRing(ideal I){
def @r=basering;
list rl=ringlist(@r);
list rl2=rl;
rl2[4]=ideal(0);
def @rr=ring(rl2);
setring @rr;
ideal I=imap(@r,I);
list rl=imap(@r,rl);
I=I+rl[4];
I=std(I);
rl[4]=I;
def @rrr=ring(rl);
return(@rrr);
}
best regards
Hendrik Suess