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

D.15.18.1 nchilb

Procedure from library ncHilb.lib (see ncHilb_lib).

Usage:
nchilb(list of relations, an integer, optional);
L is a list of modules (each module represents a free-polynomial), d is an integer for the degree bound,
# != NULL for non-finitely generated ideals;

Note :
The input ideal needs to be given in special form. It is a list of modules, where each generator of every module represents a monomial times a coefficient in the free associative algebra. The first entry, in each generator, represents a coefficient and every next entry is a variable.
Ex. module p1=[1,y,z],[-1,z,y] represents the poly y*z-z*y; module p2=[1,x,z,x],[-1,z,x,z] represents the poly x*z*x-z*x*z for more details about the input, see examples.

Example:
 
LIB "ncHilb.lib";
ring r=0,(x,y,z),dp;
module p1=[1,y,z],[-1,z,y];           //represents the poly y*z-z*y
module p2=[1,x,z,x],[-1,z,x,z];    //represents the poly x*z*x-z*x*z
list l1=list(p1,p2);
nchilb(l1,6,1); //third argument is for non-finitely generated case
==> 
==> 1/(t3+t2-3t+1)
==> 
==> Orbit size = 6
ring r=0,(x,y,z,w),dp;
==> // ** redefining r (ring r=0,(x,y,z,w),dp;)
module p1=[1,y,x],[-1,x,y];            //represents the poly y*x-x*y
module p2=[1,z,x],[-1,x,z];
module p3=[1,w,x],[-1,x,w];
module p4=[1,z,y],[-1,y,z];
module p5=[1,w,y],[-1,y,w];
module p6=[1,w,z],[-1,z,w];
list l2=list(p1,p2,p3,p4,p5,p6);
nchilb(l2,5);
==> 
==> 1/(t4-4t3+6t2-4t+1)
==> 
==> Orbit size = 5
ring r=0,(X,Y,Z),dp;
==> // ** redefining r (ring r=0,(X,Y,Z),dp;)
module p1 =[1,Y,Z];                //represents the poly Y*Z
module p2 =[1,Y,Z,X];
module p3 =[1,Y,Z,Z,X,Z];
module p4 =[1,Y,Z,Z,Z,X,Z];
module p5 =[1,Y,Z,Z,Z,Z,X,Z];
module p6 =[1,Y,Z,Z,Z,Z,Z,X,Z];
module p7 =[1,Y,Z,Z,Z,Z,Z,Z,X,Z];
module p8 =[1,Y,Z,Z,Z,Z,Z,Z,Z,X,Z];
list l3=list(p1,p2,p3,p4,p5,p6,p7,p8);
nchilb(l3,10);
==> 
==> 1/(t2-3t+1)
==> 
==> Orbit size = 3
ring r=0,U(1..3),dp;
==> // ** redefining r (ring r=0,U(1..3),dp;)
module p1=[1,U(2),U(3),U(3)];
module p2=[1,U(2),U(2),U(3)];
module p3=[1,U(1),U(3),U(3)];
module p4=[1,U(1),U(3),U(2)];
module p5=[1,U(1),U(2),U(3)];
module p6=[1,U(1),U(2),U(2)];
module p7=[1,U(1),U(1),U(3)];
module p8=[1,U(1),U(1),U(2)];
module p9=[1,U(2),U(3),U(2),U(3)];
module p10=[1,U(2),U(3),U(1),U(3)];
module p11=[1,U(2),U(3),U(1),U(2)];
module p12=[1,U(1),U(3),U(1),U(3)];
module p13=[1,U(1),U(3),U(1),U(2)];
module p14=[1,U(1),U(2),U(1),U(3)];
module p15=[1,U(1),U(2),U(1),U(2)];
module p16=[1,U(2),U(3),U(2),U(1),U(3)];
module p17=[1,U(2),U(3),U(2),U(1),U(2)];
module p18=[1,U(2),U(3),U(2),U(2),U(1),U(3)];
module p19=[1,U(2),U(3),U(2),U(2),U(1),U(2)];
module p20=[1,U(2),U(3),U(2),U(2),U(2),U(1),U(3)];
module p21=[1,U(2),U(3),U(2),U(2),U(2),U(1),U(2)];
list ll=list(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,
p14,p15,p16,p17,p18,p19,p20,p21);
nchilb(ll,7,1);
==> 
==> (-3t2-1)/(t3-3t2+3t-1)
==> 
==> Orbit size = 7
ring r=0,(x,y,z),dp;
==> // ** redefining r (ring r=0,(x,y,z),dp;)
module p1=[1,x,z,y,z,x,z];
module p2=[1,x,z,x];
module p3=[1,x,z,y,z,z,x,z];
module p4=[1,y,z];
module p5=[1,x,z,z,x,z];
list l1=list(p1,p2,p3,p4,p5);
nchilb(l1,7);
==> 
==> (t3+t2+1)/(2t5-2t4-t3+2t2-3t+1)
==> 
==> Orbit size = 6