up previous next
GroebnerFanIdeals    --    all reduced Groebner bases of an ideal


Syntax
GroebnerFanIdeals(I: IDEAL): LIST of IDEAL

Description
Returns a LIST of ideals, one for each possible distinct reduced Groebner basis of I; each ideal is in a different ring (one ring for each term-ordering), and has as its generators the corresponding GBasis.

See also CallOnGroebnerFanIdeals for a way of computing with each ideal in succession (but without storing the whole list).

Verbosity:

* with verbosity >=10 (recursive, CallOnRecursive)

. with verbosity >=20 (GetFlippableInequalities)

maxdeg with verbosity >=80 (GetFlippableInequalities)

timings with verbosity >=90 (GroebnerFanIdeals, CallOnGroebnerFanIdeals)

This function used to be called AllReducedGroebnerBases up to version CoCoA-5.1.4, and used to return the ideals encoded with the same set of generators as I (now generated by GBasis).

Example
/**/  use R ::= QQ[a,b,c];
/**/  I := ideal(b^3+c^2-1, b^2+a^2+c-1, a^2+b^3-1);
/**/  GF := GroebnerFanIdeals(I);
/**/  [ len(GBasis(I)) | I in GF];
[4, 4, 6, 6, 5, 6, 4, 4, 4, 3, 4, 3, 3, 3, 4, 3, 3]
/**/  OrdMat(RingOf(GF[1])); --> matrix of the term-ordering
matrix(ZZ,
 [[1, 1, 1],
  [0, 0, -1],
  [0, -1, 0]])

-- The ideal in [Sturmfels, Example 3.9] has 360 marked reduced Groebner bases
/**/  use R ::= QQ[a,b,c];
/**/  I := ideal(a^5+b^3+c^2-1, b^2+a^2+c-1, c^3+a^6+b^5-1);
/**/  GF := GroebnerFanIdeals(I);
/**/  len(GF);
360

See Also