Eisenstein polynomials #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4. Given an ideal
π
of a commutative semiringR
, we say that a polynomialf : R[X]
is Eisenstein atπ
iff.leading_coeff β π
,β n, n < f.nat_degree β f.coeff n β π
andf.coeff 0 β π ^ 2
. In this file we gather miscellaneous results about Eisenstein polynomials.
Main definitions #
polynomial.is_eisenstein_at f π
: the property of being Eisenstein atπ
.
Main results #
polynomial.is_eisenstein_at.irreducible
: if a primitivef
satisfiesf.is_eisenstein_at π
, whereπ.is_prime
, thenf
is irreducible.
Implementation details #
We also define a notion is_weakly_eisenstein_at
requiring only that
β n < f.nat_degree β f.coeff n β π
. This makes certain results slightly more general and it is
useful since it is sometimes better behaved (for example it is stable under polynomial.map
).
Given an ideal π
of a commutative semiring R
, we say that a polynomial f : R[X]
is weakly Eisenstein at π
if β n, n < f.nat_degree β f.coeff n β π
.
- leading : f.leading_coeff β π
- mem : β {n : β}, n < f.nat_degree β f.coeff n β π
- not_mem : f.coeff 0 β π ^ 2
Given an ideal π
of a commutative semiring R
, we say that a polynomial f : R[X]
is Eisenstein at π
if f.leading_coeff β π
, β n, n < f.nat_degree β f.coeff n β π
and
f.coeff 0 β π ^ 2
.
If a primitive f
satisfies f.is_eisenstein_at π
, where π.is_prime
, then f
is
irreducible.