# Singular

##### 7.7.7.0. lpDHilbertSickle
Procedure from library `fpadim.lib` (see fpadim_lib).

Usage:
lpDHilbertSickle(G[,degbound,n]); G an ideal, degbound, n optional
integers

Return:
list

Purpose:
Computing K-dimension, Hilbert series and mistletoes at once

Assume:
- basering is a Letterplace ring. G is a Letterplace ideal.
- if you specify a different degree bound degbound,
degbound <= attrib(basering,uptodeg) should hold.

Note:
- If L is the list returned, then L[1] is an integer, the K-dimension,
L[2] is an intvec, the Hilbert series and L[3] is an ideal,
the mistletoes
- If degbound is set, there will be a degree bound added. 0 means no
degree bound. Default: attrib(basering,uptodeg).
- n can be set to a different number of variables.
Default: n = attrib(basering, lV).
- If I = L[1] is the intvec returned, then I[k] is the (k-1)-th
coefficient of the Hilbert series.
- If the K-dimension is known to be infinite, a degree bound is needed

Example:
 ```LIB "fpadim.lib"; ring r = 0,(x,y),dp; def R = makeLetterplaceRing(5); // constructs a Letterplace ring setring R; // sets basering to Letterplace ring ideal G = x(1)*x(2), y(1)*y(2),x(1)*y(2)*x(3); // ideal G contains a //Groebner basis lpDHilbertSickle(G,5,2); //invokes procedure with degree bound 5 and 2 variables ==> [1]: ==> 6 ==> [2]: ==> 1,2,2,1 ==> [3]: ==> _[1]=x(1)*y(2) ==> _[2]=y(1)*x(2)*y(3) // note that the optional parameters are not necessary, due to the finiteness // of the K-dimension of the factor algebra lpDHilbertSickle(G); // procedure with ring parameters ==> [1]: ==> 6 ==> [2]: ==> 1,2,2,1 ==> [3]: ==> _[1]=x(1)*y(2) ==> _[2]=y(1)*x(2)*y(3) lpDHilbertSickle(G,0); // procedure without degreebound ==> [1]: ==> 6 ==> [2]: ==> 1,2,2,1 ==> [3]: ==> _[1]=x(1)*y(2) ==> _[2]=y(1)*x(2)*y(3) ```