CoCoA:Toric
Toric
saturate toric ideals
Description
These functions return the saturation of an ideal, I, generated by
binomials. In the first two cases, I is the ideal generated by the
binomials in L. To describe the ideal in the last case, let K be the integral elements in the kernel of M. For each k in K, we can write k = k(+) - k(-) where the i-th component of k(+) is the i-th component of k, if positive, otherwise zero. Then I is the ideal generated by the binomials x^k(+) - x^k(-) as k ranges over K. Note: successive calls to this last form of the function may produce different generators for the saturation.
The first and third functions return the saturation of I. For the
second function, if the saturation of I with respect to the variables
in X happens to equal the saturation of I, then the saturation of I is returned. Otherwise, an ideal *containing* the saturation with respect to the given variables is returned. The point is that if one knows, a priori, that the saturation of I can be obtained by saturating with respect to a subset of the variables, the second function may be used to save time.
For more details, see the article: A.M. Bigatti, R. La Scala,
L. Robbiano, Computing Toric Ideals, Preprint (1998). The article
describes three different algorithms; the one implemented in CoCoA is EATI. The first two examples below are motivated by B. Sturmfels, Groebner Bases and Convex Polytopes, Chapter 6, p. 51. They count the number of homogeneous primitive partition identities of degrees 8 and 9.
Example
Use Q[x[1..8],y[1..8]]; HPPI8 := [x[1]^I x[I+2] y[2]^(I+1) - y[1]^I y[I+2] x[2]^(I+1) | I In 1..6]; BL := Toric(HPPI8, [x[1],y[2]]); Len(BL.Gens); 340 ------------------------------- Use Q[x[1..9],y[1..9]]; HPPI9 := [x[1]^I x[I+2] y[2]^(I+1) - y[1]^I y[I+2] x[2]^(I+1) | I In 1..7]; BL := Toric(HPPI9, [x[1],y[2]]); Len(BL.Gens); 798 ------------------------------- Use R ::= Q[x,y,z,w]; Toric(Ideal(xz-y^2, xw-yz)); Ideal(-y^2 + xz, -yz + xw, z^2 - yw) ------------------------------- Toric([xz-y^2, xw-yz]); Ideal(-y^2 + xz, -yz + xw, z^2 - yw) ------------------------------- Toric([xz-y^2, xw-yz], [y]); Ideal(-y^2 + xz, -yz + xw, z^2 - yw) ------------------------------- Use R ::= Q[x,y,z]; Toric([[1,3,2],[3,4,8]]); Ideal(-x^16 + y^2z^5) ------------------------------- Toric(Mat([[1,3,2],[3,4,8]])); Ideal(-x^16 + y^2z^5) -------------------------------
Syntax
Toric(L:LIST of BINOMIAL):IDEAL Toric(L:LIST of BINOMIAL,X:LIST of INDETS):IDEAL Toric(M:MAT or LIST of LIST):IDEAL where M is a matrix of integers with no zero column. Elements of L must be homogeneous (w.r.t. the first row of the weights matrix).
<type>ideal</type> <type>matrix</type> <type>list</type> <type>toric</type>