Ring-theoretic supplement of Data.Polynomial. #
Main results #
MvPolynomial.isDomain
: If a ring is an integral domain, then so is its polynomial ring over finitely many variables.Polynomial.isNoetherianRing
: Hilbert basis theorem, that if a ring is noetherian then so is its polynomial ring.Polynomial.wfDvdMonoid
: If an integral domain is aWFDvdMonoid
, then so is its polynomial ring.Polynomial.uniqueFactorizationMonoid
,MvPolynomial.uniqueFactorizationMonoid
: If an integral domain is aUniqueFactorizationMonoid
, then so is its polynomial ring (of any number of variables).
Equations
- (_ : CharP (Polynomial R) p) = (_ : CharP (Polynomial R) p)
Equations
- (_ : ExpChar (Polynomial R) p) = (_ : ExpChar (Polynomial R) p)
The R
-submodule of R[X]
consisting of polynomials of degree ≤ n
.
Equations
- Polynomial.degreeLE R n = ⨅ (k : ℕ), ⨅ (_ : ↑k > n), LinearMap.ker (Polynomial.lcoeff R k)
Instances For
The R
-submodule of R[X]
consisting of polynomials of degree < n
.
Equations
- Polynomial.degreeLT R n = ⨅ (k : ℕ), ⨅ (_ : k ≥ n), LinearMap.ker (Polynomial.lcoeff R k)
Instances For
For every polynomial p
in the span of a set s : Set R[X]
, there exists a polynomial of
p' ∈ s
with higher degree. See also Polynomial.exists_degree_le_of_mem_span_of_finite
.
A stronger version of Polynomial.exists_degree_le_of_mem_span
under the assumption that the
set s : R[X]
is finite. There exists a polynomial p' ∈ s
whose degree dominates the degree of
every element of p ∈ span R s
The span of every finite set of polynomials is contained in a degreeLE n
for some n
.
The span of every finite set of polynomials is contained in a degreeLT n
for some n
.
If R
is a nontrivial ring, the polynomials R[X]
are not finite as an R
-module. When R
is
a field, this is equivalent to R[X]
being an infinite-dimensional vector space over R
.
The finset of nonzero coefficients of a polynomial.
Equations
- Polynomial.frange p = Finset.image (fun (n : ℕ) => Polynomial.coeff p n) (Polynomial.support p)
Instances For
Given a polynomial, return the polynomial whose coefficients are in the ring closure of the original coefficients.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a polynomial p
and a subring T
that contains the coefficients of p
,
return the corresponding polynomial whose coefficients are in T
.
Equations
- Polynomial.toSubring p T hp = Finset.sum (Polynomial.support p) fun (i : ℕ) => (Polynomial.monomial i) { val := Polynomial.coeff p i, property := (_ : Polynomial.coeff p i ∈ T) }
Instances For
Given a polynomial whose coefficients are in some subring, return the corresponding polynomial whose coefficients are in the ambient ring.
Equations
- Polynomial.ofSubring T p = Finset.sum (Polynomial.support p) fun (i : ℕ) => (Polynomial.monomial i) ↑(Polynomial.coeff p i)
Instances For
Transport an ideal of R[X]
to an R
-submodule of R[X]
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an ideal I
of R[X]
, make the R
-submodule of I
consisting of polynomials of degree ≤ n
.
Equations
- Ideal.degreeLE I n = Polynomial.degreeLE R n ⊓ Ideal.ofPolynomial I
Instances For
Given an ideal I
of R[X]
, make the ideal in R
of
leading coefficients of polynomials in I
with degree ≤ n
.
Equations
- Ideal.leadingCoeffNth I n = Submodule.map (Polynomial.lcoeff R n) (Ideal.degreeLE I ↑n)
Instances For
Given an ideal I
in R[X]
, make the ideal in R
of the
leading coefficients in I
.
Equations
- Ideal.leadingCoeff I = ⨆ (n : ℕ), Ideal.leadingCoeffNth I n
Instances For
If every coefficient of a polynomial is in an ideal I
, then so is the polynomial itself
The push-forward of an ideal I
of R
to R[X]
via inclusion
is exactly the set of polynomials whose coefficients are in I
If I
is an ideal, and pᵢ
is a finite family of polynomials each satisfying
∀ k, (pᵢ)ₖ ∈ Iⁿⁱ⁻ᵏ
for some nᵢ
, then p = ∏ pᵢ
also satisfies ∀ k, pₖ ∈ Iⁿ⁻ᵏ
with n = ∑ nᵢ
.
R[X]
is never a field for any ring R
.
The only constant in a maximal ideal over a field is 0
.
If P
is a prime ideal of R
, then P.R[x]
is a prime ideal of R[x]
.
If P
is a prime ideal of R
, then P.R[x]
is a prime ideal of R[x]
.
Equations
- (_ : WfDvdMonoid (Polynomial R)) = (_ : WfDvdMonoid (Polynomial R))
Hilbert basis theorem: a polynomial ring over a noetherian ring is a noetherian ring.
The multivariate polynomial ring in finitely many variables over a noetherian ring is itself a noetherian ring.
Equations
- (_ : IsNoetherianRing (MvPolynomial σ R)) = (_ : IsNoetherianRing (MvPolynomial σ R))
Auxiliary lemma:
Multivariate polynomials over an integral domain
with variables indexed by Fin n
form an integral domain.
This fact is proven inductively,
and then used to prove the general case without any finiteness hypotheses.
See MvPolynomial.noZeroDivisors
for the general case.
Auxiliary definition:
Multivariate polynomials in finitely many variables over an integral domain form an integral domain.
This fact is proven by transport of structure from the MvPolynomial.noZeroDivisors_fin
,
and then used to prove the general case without finiteness hypotheses.
See MvPolynomial.noZeroDivisors
for the general case.
Equations
- (_ : NoZeroDivisors (MvPolynomial σ R)) = (_ : NoZeroDivisors (MvPolynomial σ R))
The multivariate polynomial ring over an integral domain is an integral domain.
Equations
- (_ : IsDomain (MvPolynomial σ R)) = (_ : IsDomain (MvPolynomial σ R))
If every coefficient of a polynomial is in an ideal I
, then so is the polynomial itself,
multivariate version.
The push-forward of an ideal I
of R
to MvPolynomial σ R
via inclusion
is exactly the set of polynomials whose coefficients are in I
Equations
- (_ : UniqueFactorizationMonoid (Polynomial D)) = (_ : UniqueFactorizationMonoid (Polynomial D))
If D
is a unique factorization domain, f
is a non-zero polynomial in D[X]
, then f
has
only finitely many monic factors.
(Note that its factors up to unit may be more than monic factors.)
See also UniqueFactorizationMonoid.fintypeSubtypeDvd
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : UniqueFactorizationMonoid (MvPolynomial σ D)) = (_ : UniqueFactorizationMonoid (MvPolynomial σ D))