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), linear_map.ker (polynomial.lcoeff R k)
The R-submodule of R[X] consisting of polynomials of degree < n.
Equations
- polynomial.degree_lt R n = ⨅ (k : ℕ) (h : k ≥ n), linear_map.ker (polynomial.lcoeff R k)
The first n coefficients on degree_lt n form a linear equivalence with fin n → R.
The finset of nonzero coefficients of a polynomial.
Given a polynomial, return the polynomial whose coefficients are in the ring closure of the original coefficients.
Equations
- p.restriction = p.support.sum (λ (i : ℕ), ⇑(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 = p.support.sum (λ (i : ℕ), ⇑(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 = p.support.sum (λ (i : ℕ), ⇑(polynomial.monomial i) ↑(p.coeff i))
Transport an ideal of R[X] to an R-submodule of R[X].
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
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, 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ᵢ.
polynomial R is never a field for any ring R.
The only constant in a maximal ideal over a field is 0.
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
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.no_zero_divisors 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.no_zero_divisors_fin,
and then used to prove the general case without finiteness hypotheses.
See mv_polynomial.no_zero_divisors 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' := _}