Eisenstein polynomials #
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. 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 primitivefsatisfiesf.is_eisenstein_at π, whereπ.is_prime, thenfis 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).
- mem : β {n : β}, n < f.nat_degree β f.coeff n β Β«πΒ»
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.