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.contentIdeal
is theIdeal R
generated 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 ofp
is the whole ring, thenp
is primitive.Submodule.IsPrincipal.isPrimitive_iff_contentIdeal_eq_top
: in case the content ideal ofp
is principal,p
is 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 ofp
is 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
geneate 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]
[IsDomain R]
[NormalizedGCDMonoid R]
{p : Polynomial R}
:
theorem
Submodule.IsPrincipal.contentIdeal_eq_span_content_of_isPrincipal
{R : Type u_3}
[CommRing R]
[IsDomain 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
geneate the whole ring.