next | previous | forward | backward | up | top | index | toc | Macaulay2 website
FourTiTwo :: toricCircuits

toricCircuits -- calculates the circuits of the toric ideal; invokes "circuits" from 4ti2

Synopsis

Description

The circuits are contained in the Graver basis of $I_A$. In fact, they are precisely the primitive binomials in the ideal with minimal support.

i1 : A = matrix "1,1,1,1; 1,2,3,4"

o1 = | 1 1 1 1 |
     | 1 2 3 4 |

              2        4
o1 : Matrix ZZ  <--- ZZ
i2 : C = toricCircuits A

o2 = | 0 1  -2 1 |
     | 1 -2 1  0 |
     | 1 0  -3 2 |
     | 2 -3 0  1 |

              4        4
o2 : Matrix ZZ  <--- ZZ

The ideal generated by the circuits of A in general differs from the toric ideal of A. For example:

i3 : R = QQ[a..d]

o3 = R

o3 : PolynomialRing
i4 : Icircuit = toBinomial(toricCircuits(A), R) -- this is the circuit ideal of A

               2           2           3      2     3    2
o4 = ideal (- c  + b*d, - b  + a*c, - c  + a*d , - b  + a d)

o4 : Ideal of R
i5 : I = toBinomial(toricMarkov(A), R)

               2           2
o5 = ideal (- c  + b*d, - b  + a*c, - b*c + a*d)

o5 : Ideal of R
i6 : I==Icircuit

o6 = false

The two ideals are not the same. There is a minimal generator of I which is not a circuit:

i7 : a*d-b*c % I -- this binomial is in I:

o7 = 0

o7 : R
i8 : a*d-b*c % Icircuit -- but not in Icircuit:

o8 = - b*c + a*d

o8 : R

Ways to use toricCircuits :

For the programmer

The object toricCircuits is a method function.