Multivariate polynomials over commutative rings #
This file contains basic facts about multivariate polynomials over commutative rings, for example that the monomials form a basis.
Main definitions #
restrictTotalDegree σ R m
: the subspace of multivariate polynomials indexed byσ
over the commutative ringR
of total degree at mostm
.restrictDegree σ R m
: the subspace of multivariate polynomials indexed byσ
over the commutative ringR
such that the degree in each individual variable is at mostm
.
Main statements #
- The multivariate polynomial ring over a commutative semiring of characteristic
p
has characteristicp
, and similarly forCharZero
. basisMonomials
: shows that the monomials form a basis of the vector space of multivariate polynomials.
TODO #
Generalise to noncommutative (semi)rings
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The submodule of polynomials that are sum of monomials in the set s
.
Equations
- MvPolynomial.restrictSupport R s = Finsupp.supported R R s
Instances For
restrictSupport R s
has a canonical R
-basis indexed by s
.
Equations
- MvPolynomial.basisRestrictSupport R s = { repr := Finsupp.supportedEquivFinsupp s }
Instances For
The submodule of polynomials of total degree less than or equal to m
.
Equations
- MvPolynomial.restrictTotalDegree σ R m = MvPolynomial.restrictSupport R {n : σ →₀ ℕ | (n.sum fun (x : σ) (e : ℕ) => e) ≤ m}
Instances For
The submodule of polynomials such that the degree with respect to each individual variable is
less than or equal to m
.
Equations
- MvPolynomial.restrictDegree σ R m = MvPolynomial.restrictSupport R {n : σ →₀ ℕ | ∀ (i : σ), n i ≤ m}
Instances For
The monomials form a basis on MvPolynomial σ R
.
Equations
- MvPolynomial.basisMonomials σ R = Finsupp.basisSingleOne
Instances For
The R
-module MvPolynomial σ R
is free.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
If S
is an R
-algebra, then MvPolynomial σ S
is a MvPolynomial σ R
algebra.
Warning: This produces a diamond for
Algebra (MvPolynomial σ R) (MvPolynomial σ (MvPolynomial σ S))
. That's why it is not a
global instance.
Equations
- MvPolynomial.algebraMvPolynomial = (MvPolynomial.map (algebraMap R S)).toAlgebra
Instances For
Equations
- ⋯ = ⋯
The monomials form a basis on R[X]
.
Equations
- Polynomial.basisMonomials R = { repr := (Polynomial.toFinsuppIsoAlg R).toLinearEquiv }