Home Online Manual
Top
Back: ringlist
Forward: rvar
FastBack:
FastForward:
Up: Singular Manual
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

5.1.131 ring_list

Syntax:
ring_list ( ring_expression )
Type:
list
Purpose:
decomposes a ring/qring into a list of 4 (or 6 in the non-commutative case, see ringlist (plural)) 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 contructed fron 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);
 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;
==> //   characteristic : 32003
==> //   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.