#### 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

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