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