next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
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 IA. 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
using temporary file name /tmp/M2-22041-0/0

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
using temporary file name /tmp/M2-22041-0/1

               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)
using temporary file name /tmp/M2-22041-0/2

               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 :