#### D.4.2.3 inSubring

Procedure from library `algebra.lib` (see algebra_lib).

Usage:
  inSubring(p,i); p poly, i ideal

Return:

               a list l of size 2, l[1] integer, l[2] string
               l[1]=1 if and only if p is in the subring generated by i=i[1],...,i[k],
                      and then l[2] = y(0)-h(y(1),...,y(k)) if p = h(i[1],...,i[k])
               l[1]=0 if and only if p is in not the subring generated by i,
                      and then l[2] = h(y(0),y(1),...,y(k)) where p satisfies the
                      nonlinear relation h(p,i[1],...,i[k])=0.

Note:
  the proc algebra_containment tests the same using a different algorithm, which is often faster
  if l[1] == 0 then l[2] may contain more than one relation h(y(0),y(1),...,y(k)), separated by comma

Example:

    LIB "algebra.lib";
    ring q=0,(x,y,z,u,v,w),dp;
    poly p=xyzu2w-1yzu2w2+u4w2-1xu2vw+u2vw2+xyz-1yzw+2u2w-1xv+vw+2;
    ideal I =x-w,u2w+1,yz-v;
    inSubring(p,I);
    ==> [1]:
    ==>    1
    ==> [2]:
    ==>    y(0)-y(1)*y(2)*y(3)-y(2)^2-1

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