  | ### 5.1.138 ring_list `Syntax:` `ring_list (` ring_expression `)` `ring_list (` cring_expression `)` `Type:` list `Purpose:` decomposes a ring/qring/coefficient ring into a list of 4 (or 6 in the non-commutative case, see ringlist (plural)) or 1/4 (for `cring`) components. It is identical to `ringlist` with the exception of the first list entry. the field description as `cring` the names of the variables (a list L of strings: L[i] is the name of the i-th variable) the monomial ordering (a list L of lists): each block L[i] consists of the name of the ordering ( string ) parameters specifying the ordering and the size of the block ( intvec : typically the weights for the variables [default: 1] ) the quotient ideal. From a list of such structure, a new ring may be defined by the command `ring` ( see the following example ). `Note: All data which depends on a ring belong to the current ring,` not to a ring which can be constructed from a modified list. These data will be mapped via fetch to the ring to be constructed. `Example:`
       ring r = 0,(x(1..3)),dp;
       list l = ring_list(r);
       ring_list(l[1]);
      ==> 0
       l;
      ==> [1]:
      ==> QQ
      ==> [2]:
      ==>    [1]:
      ==>       x(1)
      ==>    [2]:
      ==>       x(2)
      ==>    [3]:
      ==>       x(3)
      ==> [3]:
      ==>    [1]:
      ==>       [1]:
      ==>          dp
      ==>       [2]:
      ==>          1,1,1
      ==>    [2]:
      ==>       [1]:
      ==>          C
      ==>       [2]:
      ==>          0
      ==> [4]:
      ==>    _[1]=0
       //  Now change l and create a new ring, by
       //- changing the base field to ZZ/32003
       //- introducing one extra variable y,
       //- defining the block ordering (dp(2),wp(3,4)).
       //- define the minpoly after creating the function field
       l[1]=ZZ/32003;
       l[2][size(l[2])+1]="y";
       l[3][3]=l[3][2]; // save the module ordering
       l[3][1]=list("dp",intvec(1,1));
       l[3][2]=list("wp",intvec(3,4));
       def ra = ring(l);     //creates the newring
       ra; setring ra;
      ==> // coefficients: ZZ/32003 considered as a field
      ==> // number of vars : 4
      ==> //        block   1 : ordering dp
      ==> //                  : names    x(1) x(2)
      ==> //        block   2 : ordering wp
      ==> //                  : names    x(3) y
      ==> //                  : weights  3 4
      ==> //        block   3 : ordering C
See qring; ring; ringlist.

User manual for Singular version 4.4.1, 2025, generated by texi2html.