import numberdb.sage
from sage.rings.rational_field import QQ
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
from sage.matroids import database_matroids as catalog

# Initialize Sage's multivariate polynomial implementation.
PolynomialRing(QQ, 2, 'x')
P = PolynomialRing(QQ, 't')
t = P.gen()

def augmented_chow(M):
    """Return H_M(t) for a finite simple matroid M."""
    if not M.is_simple():
        raise ValueError('M must be simple')
    A = M.chow_ring(QQ, True, 'fy')
    return sum((t**b.homogeneous_degree() for b in A.basis()), P.zero())

print(augmented_chow(catalog.Fano()))
