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

7.10.5.1 nchilb

Procedure from library ncHilb.lib (see ncHilb_lib).

Usage:
nchilb(I, d[, L]), list I, int d, optional list L

Purpose:
compute Hilbert series of a non-commutative algebra

Assume:

Note:
d is an integer for the degree bound (maximal total degree of polynomials of the generating set of the input ideal),
#[]=1, computation for non-finitely generated regular ideals, #[]=2, computation of multi-graded Hilbert series,
#[]=tdeg, for obtaining the truncated Hilbert series up to the total degree tdeg-1 (tdeg should be > 2), and #[]=string(p), to print the details about the orbit and system of equations. Let the orbit is O_I = {T_{w_1}(I),...,T_{w_r}(I)} ($w_i\in W$), where we assume that if T_{w_i}(I)=T_{w_i'}(I)$ for some $w'_i\in W$, then $deg(w_i)\leq deg(w'_i)$.
Then, it prints words description of orbit: w_1,...,w_r. It also prints the maximal degree and the cardinality of \sum_j R(w_i, b_j) corresponding to each w_i, where {b_j} is a basis of I.
Moreover, it also prints the linear system (for the information about adjacency matrix) and its solving time.

Note :
A Groebner basis of two-sided ideal of the input should be given in a special form. This form 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];             //represents the poly Y*Z
module p2 =[1,Y,Z,X];          //represents the poly 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 l1=list(p1,p2,p3,p4,p5,p6,p7,p8);
nchilb(l1,10);
==> 
==> maximal length of words = 2
==> 
==> length of the Orbit = 3
==> 
==> 
==> Hilbert series:
==> 1/(t2-3t+1)
ring r2=0,(x,y,z),dp;
module p1=[1,y,z],[-1,z,y];               //y*z-z*y
module p2=[1,x,z,x],[-1,z,x,z];           // x*z*x-z*x*z
module p3=[1,x,z,z,x,z],[-1,z,x,z,z,x];   // x*z^2*x*z-z*x*z^2*x
module p4=[1,x,z,z,z,x,z],[-1,z,x,z,z,x,x]; // x*z^3*x*z-z*x*z^2*x^2
list l2=list(p1,p2,p3,p4);
nchilb(l2,6,1); //third argument '1' is for non-finitely generated case
==> 
==> maximal length of words = 3
==> 
==> length of the Orbit = 7
==> 
==> 
==> Hilbert series:
==> (t3+t2+1)/(2t5-2t4-t3+2t2-3t+1)
ring r3=0,(a,b),dp;
module p1=[1,a,a,a];
module p2=[1,a,b,b];
module p3=[1,a,a,b];
list l3=list(p1,p2,p3);
nchilb(l3,5,2);//third argument '2' is to compute multi-graded HS
==> 
==> maximal length of words = 3
==> 
==> length of the Orbit = 5
==> 
==> 
==> Hilbert series:
==> (t1^2+t1+1)/(t1*t2^2-t1*t2-t2+1)
ring r4=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 l4=list(p1,p2,p3,p4,p5);
nchilb(l4,7,"p"); //third argument "p" is to print the details
==> 
==> maximal length of words = 3
==> 
==> length of the Orbit = 6
==> words description of the Orbit: 
==> 1    x    y    x*z    y*z    x*z*z    
==> 
==> maximal degree,  #(sum_j R(w,w_j))
==> NULL
==> 6,  4 
==> 1,  1 
==> 5,  4 
==> 0,  1 
==> 2,  1 
==> 
==> linear system:
==> H(1) = (t)*H(2) + (t)*H(3) + (t)*H(1) +  1
==> H(2) = (t)*H(2) + (t)*H(3) + (t)*H(4) +  1
==> H(3) = (t)*H(2) + (t)*H(3) + (t)*H(5) +  1
==> H(4) = (t)*H(5) + (t)*H(3) + (t)*H(6) +  1
==> H(5) = (t)*H(5) + (t)*H(5) + (t)*H(5) +  0
==> H(6) = (t)*H(3) + (t)*H(3) + (t)*H(1) +  1
==> where H(1) represents the series corresp. to input ideal
==> and i^th summand in the rhs of an eqn. is according
==> to the right colon map corresp. to the i^th variable
==> 
==> 
==> Hilbert series:
==> (t3+t2+1)/(2t5-2t4-t3+2t2-3t+1)
// of the orbit and system