#### 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

User manual for Singular version 4-0-3, 2016, generated by texi2html.