### 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.
  1. the field description as `cring`
  2. the names of the variables (a list L of strings: L[i] is the name of the i-th variable)
  3. 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] )
  4. 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.