  
  [1X3 [33X[0;0Y4ti2 functions[133X[101X
  
  
  [1X3.1 [33X[0;0YGroebner[133X[101X
  
  [33X[0;0YThese are wrappers of some use cases of 4ti2s groebner command.[133X
  
  [1X3.1-1 4ti2Interface_groebner_matrix[101X
  
  [33X[1;0Y[29X[2X4ti2Interface_groebner_matrix[102X( [3Xmatrix[103X[, [3Xordering[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA list of vectors[133X
  
  [33X[0;0YThis  launches  the 4ti2 groebner command with the argument as matrix input.
  The output will be the the Groebner basis of the binomial ideal generated by
  the left kernel of the input matrix. Note that this is different from 4ti2's
  convention  which  takes  the  right  kernel.  It  returns the output of the
  groebner  command as a list of lists. The second argument can be a vector to
  specify  a  monomial  ordering,  in  the  way that x^m > x^n if ordering*m >
  ordering*n[133X
  
  [1X3.1-2 4ti2Interface_groebner_basis[101X
  
  [33X[1;0Y[29X[2X4ti2Interface_groebner_basis[102X( [3Xbasis[103X[, [3Xordering[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA list of vectors[133X
  
  [33X[0;0YThis  launches  the 4ti2 groebner command with the argument as matrix input.
  The outpur will be the Groebner basis of the binomial ideal generated by the
  rows of the input matrix. It returns the output of the groebner command as a
  list of lists. The second argument is like before.[133X
  
  
  [1X3.1-3 [33X[0;0YDefining ideal of toric variety[133X[101X
  
  [33X[0;0YWe want to compute the groebner basis of the ideal defining the affine toric
  variety  associated to the cone generated by the inequalities [ [ 7, -1 ], [
  0, 1 ] ], i.e. a rational normal curve.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xcone := [ [ 7, -1 ], [ 0, 1 ] ];[127X[104X
    [4X[28X[ [ 7, -1 ], [ 0, 1 ] ][128X[104X
    [4X[25Xgap>[125X [27Xbasis := 4ti2Interface_hilbert_inequalities( cone );;[127X[104X
    [4X[25Xgap>[125X [27XSort( basis );[127X[104X
    [4X[25Xgap>[125X [27Xbasis;[127X[104X
    [4X[28X[ [ 1, 0 ], [ 1, 1 ], [ 1, 2 ], [ 1, 3 ],[128X[104X
    [4X[28X  [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 1, 7 ] ][128X[104X
    [4X[25Xgap>[125X [27Xgroebner := 4ti2Interface_groebner_matrix( basis );;[127X[104X
    [4X[25Xgap>[125X [27XSort( groebner );[127X[104X
    [4X[25Xgap>[125X [27Xgroebner;[127X[104X
    [4X[28X[ [ -1, 0, 0, 1, 1, 0, 0, -1 ], [ -1, 0, 0, 2, 0, 0, -1, 0 ],[128X[104X
    [4X[28X  [ -1, 0, 1, 0, 0, 1, 0, -1 ], [ -1, 0, 1, 0, 1, 0, -1, 0 ],[128X[104X
    [4X[28X  [ -1, 0, 1, 1, 0, -1, 0, 0 ], [ -1, 0, 2, 0, -1, 0, 0, 0 ],[128X[104X
    [4X[28X  [ -1, 1, 0, 0, 0, 0, 1, -1 ], [ -1, 1, 0, 0, 0, 1, -1, 0 ],[128X[104X
    [4X[28X  [ -1, 1, 0, 0, 1, -1, 0, 0 ], [ -1, 1, 0, 1, -1, 0, 0, 0 ],[128X[104X
    [4X[28X  [ -1, 1, 1, -1, 0, 0, 0, 0 ], [ -1, 2, -1, 0, 0, 0, 0, 0 ],[128X[104X
    [4X[28X  [ 0, -1, 0, 0, 2, 0, 0, -1 ], [ 0, -1, 0, 1, 0, 1, 0, -1 ],[128X[104X
    [4X[28X  [ 0, -1, 1, 0, 0, 0, 1, -1 ], [ 0, 0, -1, 0, 1, 1, 0, -1 ],[128X[104X
    [4X[28X  [ 0, 0, -1, 1, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 2, 0, -1 ],[128X[104X
    [4X[28X  [ 0, 0, 0, -1, 1, 0, 1, -1 ], [ 0, 0, 0, 0, -1, 1, 1, -1 ],[128X[104X
    [4X[28X  [ 0, 0, 0, 0, 0, -1, 2, -1 ] ][128X[104X
    [4X[25Xgap>[125X [27XLength( groebner );[127X[104X
    [4X[28X21[128X[104X
  [4X[32X[104X
  
  
  [1X3.2 [33X[0;0YHilbert[133X[101X
  
  [33X[0;0YThese are wrappers of some use cases of 4ti2s hilbert command.[133X
  
  [1X3.2-1 4ti2Interface_hilbert_inequalities[101X
  
  [33X[1;0Y[29X[2X4ti2Interface_hilbert_inequalities[102X( [3XA[103X ) [32X function[133X
  [33X[1;0Y[29X[2X4ti2Interface_hilbert_inequalities_in_positive_orthant[102X( [3XA[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of vectors[133X
  
  [33X[0;0YThis  function produces the hilbert basis of the cone C given by [3XA[103Xx >= 0 for
  all x in C. For the second function also x >= 0 is assumed.[133X
  
  [1X3.2-2 4ti2Interface_hilbert_equalities_in_positive_orthant[101X
  
  [33X[1;0Y[29X[2X4ti2Interface_hilbert_equalities_in_positive_orthant[102X( [3XA[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of vectors[133X
  
  [33X[0;0YThis  function  produces  the  hilbert  basis  of  the  cone  C given by the
  equations [3XA[103Xx = 0 in the positive orthant of the coordinate system.[133X
  
  [1X3.2-3 4ti2Interface_hilbert_equalities_and_inequalities[101X
  
  [33X[1;0Y[29X[2X4ti2Interface_hilbert_equalities_and_inequalities[102X( [3XA[103X, [3XB[103X ) [32X function[133X
  [33X[1;0Y[29X[2X4ti2Interface_hilbert_equalities_and_inequalities_in_positive_orthant[102X( [3XA[103X, [3XB[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of vectors[133X
  
  [33X[0;0YThis  function  produces  the  hilbert  basis  of  the  cone  C given by the
  equations  [3XA[103Xx  = 0 and the inequations [3XB[103Xx >= 0. For the second function x>=0
  is assumed.[133X
  
  
  [1X3.2-4 [33X[0;0YGenerators of semigroup[133X[101X
  
  [33X[0;0YWe  want  to  compute the Hilbert basis of the cone obtained by intersecting
  the positive orthant with the hyperplane given by the equation below.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgens := [ 23, 25, 37, 49 ];[127X[104X
    [4X[28X[ 23, 25, 37, 49 ][128X[104X
    [4X[25Xgap>[125X [27Xequation := [ Concatenation( gens, -gens ) ];[127X[104X
    [4X[28X[ [ 23, 25, 37, 49, -23, -25, -37, -49 ] ][128X[104X
    [4X[25Xgap>[125X [27Xbasis := 4ti2Interface_hilbert_equalities_in_positive_orthant( equation );;[127X[104X
    [4X[25Xgap>[125X [27XLength( basis );[127X[104X
    [4X[28X436[128X[104X
  [4X[32X[104X
  
  
  [1X3.2-5 [33X[0;0YHilbert basis of dual cone[133X[101X
  
  [33X[0;0YWe want to compute the Hilbert basis of the cone which faces are represented
  by  the  inequalities  below.  This  example is taken from the toric and the
  ToricVarieties  package  manual.  In  both packages it is very slow with the
  internal algorithms.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xinequalities := [ [1,2,3,4], [0,1,0,7], [3,1,0,2], [0,0,1,0] ];[127X[104X
    [4X[28X[ [ 1, 2, 3, 4 ], [ 0, 1, 0, 7 ], [ 3, 1, 0, 2 ], [ 0, 0, 1, 0 ] ][128X[104X
    [4X[25Xgap>[125X [27Xbasis := 4ti2Interface_hilbert_inequalities( inequalities );;[127X[104X
    [4X[25Xgap>[125X [27XLength( basis );[127X[104X
    [4X[28X29[128X[104X
  [4X[32X[104X
  
  
  [1X3.3 [33X[0;0YZSolve[133X[101X
  
  [1X3.3-1 4ti2Interface_zsolve_equalities_and_inequalities[101X
  
  [33X[1;0Y[29X[2X4ti2Interface_zsolve_equalities_and_inequalities[102X( [3Xeqs[103X, [3Xeqs_rhs[103X, [3Xineqs[103X, [3Xineqs_rhs[103X[, [3Xsigns[103X] ) [32X function[133X
  [33X[1;0Y[29X[2X4ti2Interface_zsolve_equalities_and_inequalities_in_positive_orthant[102X( [3Xeqs[103X, [3Xeqs_rhs[103X, [3Xineqs[103X, [3Xineqs_rhs[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of three matrices[133X
  
  [33X[0;0YThis  function  produces  a  basis  of the system [3Xeqs[103X = [3Xeqs_rhs[103X and [3Xineqs[103X >=
  [3Xineqs_rhs[103X.  It  outputs a list containing three matrices. The first one is a
  list of points in a polytope, the second is the hilbert basis of a cone. The
  set  of solutions is then the minkowski sum of the polytope generated by the
  points  in the first list and the cone generated by the hilbert basis in the
  second  matrix.  The  third one is the free part of the solution polyhedron.
  The optional argument [3Xsigns[103X must be a list of zeros and ones which length is
  the  number  of variables. If the ith entry is one, the ith variable must be
  >= 0. If the entry is 0, the number is arbitraty. Default is all zero. It is
  also  possible to set the option precision to 32, 64 or gmp. The default, if
  no option is given, 32 is used. Please note that a higher precision leads to
  slower  computation.  For  the  second function xi >= 0 for all variables is
  assumed.[133X
  
  
  [1X3.4 [33X[0;0YGraver[133X[101X
  
  [1X3.4-1 4ti2Interface_graver_equalities[101X
  
  [33X[1;0Y[29X[2X4ti2Interface_graver_equalities[102X( [3Xeqs[103X[, [3Xsigns[103X] ) [32X function[133X
  [33X[1;0Y[29X[2X4ti2Interface_graver_equalities_in_positive_orthant[102X( [3Xeqs[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya matrix[133X
  
  [33X[0;0YThis  calls  the function graver with the equalities [3Xeqs[103X = 0. It outputs one
  list  containing the graver basis of the system. the optional argument [3Xsigns[103X
  is used like in zsolve. The second command assumes [22Xx_i ≥ 0[122X.[133X
  
