Ring-theoretic supplement of data.polynomial. #
Main results #
mv_polynomial.is_domain
: If a ring is an integral domain, then so is its polynomial ring over finitely many variables.polynomial.is_noetherian_ring
: Hilbert basis theorem, that if a ring is noetherian then so is its polynomial ring.polynomial.wf_dvd_monoid
: If an integral domain is awf_dvd_monoid
, then so is its polynomial ring.polynomial.unique_factorization_monoid
,mv_polynomial.unique_factorization_monoid
: If an integral domain is aunique_factorization_monoid
, then so is its polynomial ring (of any number of variables).
The R
-submodule of R[X]
consisting of polynomials of degree ≤ n
.
Equations
- polynomial.degree_le R n = ⨅ (k : ℕ) (h : ↑k > n), (polynomial.lcoeff R k).ker
The R
-submodule of R[X]
consisting of polynomials of degree < n
.
Equations
- polynomial.degree_lt R n = ⨅ (k : ℕ) (h : k ≥ n), (polynomial.lcoeff R k).ker
The first n
coefficients on degree_lt n
form a linear equivalence with fin n → R
.
Given a polynomial, return the polynomial whose coefficients are in the ring closure of the original coefficients.
Equations
- p.restriction = ∑ (i : ℕ) in p.support, ⇑(polynomial.monomial i) ⟨p.coeff i, _⟩
Given a polynomial p
and a subring T
that contains the coefficients of p
,
return the corresponding polynomial whose coefficients are in `T.
Equations
- p.to_subring T hp = ∑ (i : ℕ) in p.support, ⇑(polynomial.monomial i) ⟨p.coeff i, _⟩
Given a polynomial whose coefficients are in some subring, return the corresponding polynomial whose coefficients are in the ambient ring.
Equations
- polynomial.of_subring T p = ∑ (i : ℕ) in p.support, ⇑(polynomial.monomial i) ↑(p.coeff i)
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 polynomial R
via inclusion
is exactly the set of polynomials whose coefficients are in I
If I
is an ideal of R
, then the ring polynomials over the quotient ring I.quotient
is
isomorphic to the quotient of polynomial R
by the ideal map C I
,
where map C I
contains exactly the polynomials whose coefficients all lie in I
Equations
- I.polynomial_quotient_equiv_quotient_polynomial = {to_fun := ⇑(polynomial.eval₂_ring_hom (ideal.quotient.lift I ((ideal.quotient.mk (ideal.map polynomial.C I)).comp polynomial.C) ideal.quotient_map_C_eq_zero) (⇑(ideal.quotient.mk (ideal.map polynomial.C I)) polynomial.X)), inv_fun := ⇑(ideal.quotient.lift (ideal.map polynomial.C I) (polynomial.eval₂_ring_hom (polynomial.C.comp (ideal.quotient.mk I)) polynomial.X) ideal.eval₂_C_mk_eq_zero), left_inv := _, right_inv := _, map_mul' := _, map_add' := _}
If P
is a prime ideal of R
, then R[x]/(P)
is an integral domain.
If P
is a prime ideal of R
, then P.R[x]
is a prime ideal of R[x]
.
Given any ring R
and an ideal I
of polynomial R
, we get a map R → R[x] → R[x]/I
.
If we let R
be the image of R
in R[x]/I
then we also have a map R[x] → R'[x]
.
In particular we can map I
across this map, to get I'
and a new map R' → R'[x] → R'[x]/I
.
This theorem shows I'
will not contain any non-zero constant polynomials
polynomial R
is never a field for any ring R
.
The only constant in a maximal ideal over a field is 0
.
Given an ideal I
of R[X]
, make the R
-submodule of I
consisting of polynomials of degree ≤ n
.
Equations
- I.degree_le n = polynomial.degree_le R n ⊓ I.of_polynomial
Given an ideal I
of R[X]
, make the ideal in R
of
leading coefficients of polynomials in I
with degree ≤ n
.
Equations
- I.leading_coeff_nth n = submodule.map (polynomial.lcoeff R n) (I.degree_le ↑n)
Given an ideal I
in R[X]
, make the ideal in R
of the
leading coefficients in I
.
Equations
- I.leading_coeff = ⨆ (n : ℕ), I.leading_coeff_nth n
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.
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 mv_polynomial.is_domain
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 mv_polynomial.is_domain_fin
,
and then used to prove the general case without finiteness hypotheses.
See mv_polynomial.is_domain
for the general case.
The multivariate polynomial ring over an integral domain is an integral domain.
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 mv_polynomial σ R
via inclusion
is exactly the set of polynomials whose coefficients are in I
If I
is an ideal of R
, then the ring mv_polynomial σ I.quotient
is isomorphic as an
R
-algebra to the quotient of mv_polynomial σ R
by the ideal generated by I
.
Equations
- mv_polynomial.quotient_equiv_quotient_mv_polynomial I = {to_fun := ⇑(mv_polynomial.eval₂_hom (ideal.quotient.lift I ((ideal.quotient.mk (ideal.map mv_polynomial.C I)).comp mv_polynomial.C) _) (λ (i : σ), ⇑(ideal.quotient.mk (ideal.map mv_polynomial.C I)) (mv_polynomial.X i))), inv_fun := ⇑(ideal.quotient.lift (ideal.map mv_polynomial.C I) (mv_polynomial.eval₂_hom (mv_polynomial.C.comp (ideal.quotient.mk I)) mv_polynomial.X) _), left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}