|
7.2.5.1 qring declaration (plural)
- Syntax:
qring name = ideal_expression ;
- Default:
- none
- Purpose:
- declares a quotient ring as the basering modulo an
ideal_expression and sets
it as current basering.
- Note:
- reports error if an ideal is not a two-sided Groebner basis.
- Example:
| ring r=0,(z,u,v,w),dp;
def R=nc_algebra(-1,0); // an anticommutative algebra
setring R;
option(redSB);
option(redTail);
ideal i=z^2,u^2,v^2,w^2, zuv-w;
qring Q = i; // incorrect call produces error
==> // ** i is no standard basis
==> // ** i is no twosided standard basis
kill Q;
setring R; // go back to the ring R
qring q=twostd(i); // now it is an exterior algebra modulo <zuv-w>
q;
==> // characteristic : 0
==> // number of vars : 4
==> // block 1 : ordering dp
==> // : names z u v w
==> // block 2 : ordering C
==> // noncommutative relations:
==> // uz=-zu
==> // vz=-zv
==> // wz=-zw
==> // vu=-uv
==> // wu=-uw
==> // wv=-vw
==> // quotient ring from ideal
==> _[1]=w2
==> _[2]=vw
==> _[3]=uw
==> _[4]=zw
==> _[5]=v2
==> _[6]=u2
==> _[7]=z2
==> _[8]=zuv-w
poly k = (v-u)*(zv+u-w);
k; // the output is not yet totally reduced
==> zuv-uv+uw-vw
poly ek=reduce(k,std(0));
ek; // the reduced form
==> -uv+w
|
|