# Multivariate Polynomials and Polynomial Rings¶

Sage implements multivariate polynomial rings through several
backends. The most generic implementation uses the classes
`sage.rings.polynomial.polydict.PolyDict`

and
`sage.rings.polynomial.polydict.ETuple`

to construct a dictionary with
exponent tuples as keys and coefficients as values.

Additionally, specialized and optimized implementations over many specific coefficient rings are implemented via a shared library interface to SINGULAR; and polynomials in the boolean polynomial ring

\[\GF{2}[x_1,...,x_n]/ \langle x_1^2+x_1,...,x_n^2+x_n \rangle.\]

are implemented using the PolyBoRi library (cf. `sage.rings.polynomial.pbori`

).

- Term orders
- Base class for multivariate polynomial rings
- Base class for elements of multivariate polynomial rings
- Multivariate Polynomial Rings over Generic Rings
- Generic Multivariate Polynomials
- Ideals in multivariate polynomial rings.
- Polynomial Sequences
- Multivariate Polynomials via libSINGULAR
- Direct low-level access to SINGULAR’s Groebner basis engine via libSINGULAR.
- PolyDict engine for generic multivariate polynomial rings
- Compute Hilbert series of monomial ideals
- Class to flatten polynomial rings over polynomial ring
- Monomials