If R is an Artinian Gorenstein k-algebra, then the Macaulay inverse system of R is generated by a single polynomial (in dual/differential variables), called the cogenerator (or dual socle generator) of R. By a result of Adiprasito, Katz, and Huh, the Chow ring of a matroid M is always Gorenstein. This function computes the cogenerator of the Chow ring of M, which is also called the volume polynomial of M. Note that this is a very fine invariant of M - indeed, this single polynomial can recover the entire Chow ring of M, and thus most of the lattice of flats of M.
i1 : M = matroid completeGraph 4 o1 = a matroid of rank 3 on 6 elements o1 : Matroid |
i2 : I = idealChowRing M;
o2 : Ideal of QQ[x , x , x , x , x , x , x , x , x , x , x , x , x ]
{5} {4} {3} {2} {1} {0} {0, 5} {1, 4} {2, 3} {3, 4, 5} {1, 2, 5} {0, 2, 4} {0, 1, 3}
|
i3 : betti I
0 1
o3 = total: 1 65
0: 1 5
1: . 60
o3 : BettiTally
|
i4 : F = cogeneratorChowRing M
2 2 2 2 2 2 2 2
o4 = 2t + 2t + 2t + 2t + 2t + 2t - 2t t - 2t t + t - 2t t - 2t t + t
{5} {4} {3} {2} {1} {0} {5} {0, 5} {0} {0, 5} {0, 5} {4} {1, 4} {1} {1, 4} {1,
----------------------------------------------------------------------------------------------------------------------------
2 2
- 2t t - 2t t + t - 2t t - 2t t - 2t t + t - 2t t
4} {3} {2, 3} {2} {2, 3} {2, 3} {5} {3, 4, 5} {4} {3, 4, 5} {3} {3, 4, 5} {3, 4, 5} {5} {1, 2,
----------------------------------------------------------------------------------------------------------------------------
2 2
- 2t t - 2t t + t - 2t t - 2t t - 2t t + t -
5} {2} {1, 2, 5} {1} {1, 2, 5} {1, 2, 5} {4} {0, 2, 4} {2} {0, 2, 4} {0} {0, 2, 4} {0, 2, 4}
----------------------------------------------------------------------------------------------------------------------------
2
2t t - 2t t - 2t t + t
{3} {0, 1, 3} {1} {0, 1, 3} {0} {0, 1, 3} {0, 1, 3}
o4 : QQ[t , t , t , t , t , t , t , t , t , t , t , t , t ]
{5} {4} {3} {2} {1} {0} {0, 5} {1, 4} {2, 3} {3, 4, 5} {1, 2, 5} {0, 2, 4} {0, 1, 3}
|
i5 : T = ring F o5 = T o5 : PolynomialRing |
i6 : diff(gens((map(T, ring I, gens T)) I), F)
o6 = 0
1 65
o6 : Matrix T <--- T
|
The object cogeneratorChowRing is a method function.