CoCoA:Toric

From ApCoCoAWiki
Revision as of 10:02, 24 October 2007 by XMLBot (talk | contribs) (pushing XML rev. 1.46, again)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

Toric.CheckInput

   <type>ideal</type>
   <type>matrix</type>
   <type>list</type>
   <type>toric</type>