Module docstring
{"# Multivariate polynomials
This file defines functions for evaluating multivariate polynomials. These include generically evaluating a polynomial given a valuation of all its variables, and more advanced evaluations that allow one to map the coefficients to different rings.
Notation
In the definitions below, we use the following notation:
σ : Type*(indexing the variables)R : Type*[CommSemiring R](the coefficients)s : σ →₀ ℕ, a function fromσtoℕwhich is zero away from a finite set. This will give rise to a monomial inMvPolynomial σ Rwhich mathematicians might callX^sa : Ri : σ, with corresponding monomialX i, often denotedX_iby mathematiciansp : MvPolynomial σ R
Definitions
eval₂ (f : R → S₁) (g : σ → S₁) p: given a semiring homomorphism fromRto another semiringS₁, and a mapσ → S₁, evaluatespat this valuation, returning a term of typeS₁. Note thateval₂can be made usingevalandmap(see below), and it has been suggested that sticking toevalandmapmight make the code less brittle.eval (g : σ → R) p: given a mapσ → R, evaluatespat this valuation, returning a term of typeRmap (f : R → S₁) p: returns the multivariate polynomial obtained frompby the change of coefficient semiring corresponding tofaeval (g : σ → S₁) p: evaluates the multivariate polynomial obtained frompby the change of coefficient semiring corresponding tog(astands forAlgebra)
","### The algebra of multivariate polynomials "}