The content ideal of a polynomial #
In this file we introduce the content ideal of a polynomial p : R[X] as the ideal generated by its
coefficients, and we prove some basic properties about it.
Main Definitions #
Let p : R[X].
p.contentIdealis theIdeal Rgenerated by the coefficients ofp.
Main Results #
Polynomial.contentIdeal_mul_le_mul_contentIdeal: the content ideal of the product of two polynomials is contained in the product of their content ideals.Polynomial.isPrimitive_of_contentIdeal_eq_top: if the content ideal ofpis the whole ring, thenpis primitive.Submodule.IsPrincipal.isPrimitive_iff_contentIdeal_eq_top: in case the content ideal ofpis principal,pis primitive if and only if its content ideal is the whole ring.Polynomial.mul_contentIdeal_le_radical_contentIdeal_mul: the product of the content ideals of two polynomials is contained in the radical of the content ideal of their product.Submodule.IsPrincipal.contentIdeal_eq_span_content_of_isPrincipal: if the content ideal ofpis principal, then it is equal to the ideal generated by the content ofp.contentIdeal_mul_eq_top_of_contentIdeal_eq_top: if the content ideals of two polynomials are the whole ring, then the content ideal of their product is the whole ring. This is also often called Gauss' Lemma.
TODO #
- Prove the Dedekind-Mertens lemma, see https://www.cse.chalmers.se/~coquand/mertens.pdf
The content ideal of a polynomial p is the ideal generated by its coefficients.
Equations
- p.contentIdeal = Ideal.span ↑p.coeffs
Instances For
@[simp]
@[simp]
@[simp]
theorem Polynomial.contentIdeal_map_eq_map_contentIdeal {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (p : Polynomial R) (f : R →+* S) :
theorem Polynomial.contentIdeal_mul_le_mul_contentIdeal {R : Type u_1} [Semiring R] (p q : Polynomial R) :
theorem Polynomial.contentIdeal_le_contentIdeal_of_dvd {R : Type u_3} [CommSemiring R] {p q : Polynomial R} (hpq : p ∣ q) :
theorem Submodule.IsPrincipal.contentIdeal_generator_dvd_coeff {R : Type u_3} [CommSemiring R] {p : Polynomial R} (h_prin : IsPrincipal p.contentIdeal) (n : ℕ) :
theorem Submodule.IsPrincipal.contentIdeal_generator_dvd {R : Type u_3} [CommSemiring R] {p : Polynomial R} (h_prin : IsPrincipal p.contentIdeal) :
theorem Submodule.IsPrincipal.contentIdeal_le_span_iff_dvd {R : Type u_3} [CommSemiring R] {p : Polynomial R} (h_prin : IsPrincipal p.contentIdeal) (r : R) :
theorem Polynomial.isPrimitive_of_contentIdeal_eq_top {R : Type u_3} [CommSemiring R] {p : Polynomial R} (h : p.contentIdeal = ⊤) :
If the coefficients of p generate the whole ring, then p is primitive.
theorem Submodule.IsPrincipal.isPrimitive_iff_contentIdeal_eq_top {R : Type u_3} [CommSemiring R] {p : Polynomial R} (h_prin : IsPrincipal p.contentIdeal) :
theorem Polynomial.contentIdeal_eq_top_of_contentIdeal_mul_eq_top {R : Type u_3} [CommSemiring R] {p q : Polynomial R} (h : (p * q).contentIdeal = ⊤) :
theorem Polynomial.mul_contentIdeal_le_radical_contentIdeal_mul {R : Type u_3} [CommRing R] {p q : Polynomial R} :
theorem Polynomial.contentIdeal_mul_eq_top_of_contentIdeal_eq_top {R : Type u_3} [CommRing R] {p q : Polynomial R} (hp : p.contentIdeal = ⊤) (hq : q.contentIdeal = ⊤) :
theorem Polynomial.contentIdeal_le_span_content {R : Type u_3} [CommRing R] [NormalizedGCDMonoid R] {p : Polynomial R} :
theorem Submodule.IsPrincipal.contentIdeal_eq_span_content_of_isPrincipal {R : Type u_3} [CommRing R] [NormalizedGCDMonoid R] {p : Polynomial R} (h_prin : IsPrincipal p.contentIdeal) :
theorem Polynomial.isPrimitive_iff_contentIdeal_eq_top {R : Type u_3} [CommSemiring R] [IsBezout R] (p : Polynomial R) :
The polynomial p is primitive if and only if the coefficients of p generate the whole ring.