next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
SlackIdeals :: cycleIdeal

cycleIdeal -- constructs the cycle ideal of a realization

Synopsis

Description

A cycle ideal is the toric ideal generated by the cycles of the bipartite non-incidence graph on vertices/elements and facets/hyperplanes. Each cycle binomial has coefficients coming from the entries of a slack matrix of a realization of the given object. This method computes the cycle ideal of the given realization of a polytope or matroid.

i1 : V = {{0, 0}, {1, 0}, {1, 1}, {0, 1}};
i2 : C = cycleIdeal V

Order of vertices is 
{{0, 0}, {1, 0}, {0, 1}, {1, 1}}
Graph computed from symbolic adjacency matrix: | 0   y_1 0   y_2 |
                                               | y_3 0   0   y_4 |
                                               | 0   y_5 y_6 0   |
                                               | y_7 0   y_8 0   |

o2 = ideal(y y y y  - y y y y )
            0 3 5 6    1 2 4 7

o2 : Ideal of QQ[y , y , y , y , y , y , y , y ]
                  0   1   2   3   4   5   6   7

You can create the cycle ideal of any matrix, even if it is not the realization of some matroid or polytope.

i3 : M = matrix{{1, 1, 0}, {0, 1, 2}, {1, 0, 3}};

              3        3
o3 : Matrix ZZ  <--- ZZ
i4 : C = cycleIdeal M
Graph computed from symbolic adjacency matrix: | y_1 y_2 0   |
                                               | 0   y_3 y_4 |
                                               | y_5 0   y_6 |

o4 = ideal(3y y y  - 2y y y )
             1 3 4     0 2 5

o4 : Ideal of QQ[y , y , y , y , y , y ]
                  0   1   2   3   4   5

Caveat

Variables in the cycle ideal C will be labelled according to the labeling assigned by symbolicSlackMatrix, which is in order by rows, so to test equality of C with some precomputed ideal care needs to be taken that variable labels match.

If Object => abstractPolytope is chosen, the graphic ideal will be returned instead.

See also

Ways to use cycleIdeal :