up previous next
HilbertBasisKer

Hilbert basis for a monoid

Syntax
HilbertBasisKer(M: MAT): LIST

where M is a matrix over ZZ.

Description
This function returns a list whose components are lists (of non-negative integers) representing the Hilbert basis for the monoid of elements with non-negative coordinates in the kernel of M.

Example
/**/  M := mat([[1,-2,3,4], [1, 0, 0, -1]]);
/**/  HilbertBasisKer(M);
[[0, 3, 2, 0], [1, 4, 1, 1], [2, 5, 0, 2]]

/**/  M * transposed(mat(It));
matrix(QQ,
 [[0, 0, 0],
  [0, 0, 0]])

See Also