Theory of univariate polynomials #
This file starts looking like the ring theory of $R[X]$
Main definitions #
Polynomial.roots p
: The multiset containing all the roots ofp
, including their multiplicities.Polynomial.rootSet p E
: The set of distinct roots ofp
in an algebraE
.
Main statements #
Polynomial.C_leadingCoeff_mul_prod_multiset_X_sub_C
: If a polynomial has as many roots as its degree, it can be written as the product of its leading coefficient with∏ (X - a)
wherea
ranges through its roots.
_ %ₘ q
as an R
-linear map.
Equations
- Polynomial.modByMonicHom q = { toAddHom := { toFun := fun (p : Polynomial R) => p %ₘ q, map_add' := ⋯ }, map_smul' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
This lemma is useful for working with the intDegree
of a rational function.
Characterization of a unit of a polynomial ring over an integral domain R
.
See Polynomial.isUnit_iff_coeff_isUnit_isNilpotent
when R
is a commutative ring.
Alternate phrasing of Polynomial.Monic.irreducible_iff_natDegree'
where we only have to check
one divisor at a time.
Equations
- ⋯ = ⋯
The multiplicity of a
as root of a nonzero polynomial p
is at least n
iff
(X - a) ^ n
divides p
.
The multiplicity of a
as root of (X - a) ^ n
is n
.
The multiplicity of p + q
is at least the minimum of the multiplicities.
roots p
noncomputably gives a multiset containing all the roots of p
,
including their multiplicities.
Equations
- Polynomial.roots p = if h : p = 0 then ∅ else Classical.choose ⋯
Instances For
nthRoots n a
noncomputably returns the solutions to x ^ n = a
Equations
- Polynomial.nthRoots n a = Polynomial.roots (Polynomial.X ^ n - Polynomial.C a)
Instances For
Given a polynomial p
with coefficients in a ring T
and a T
-algebra S
, aroots p S
is
the multiset of roots of p
regarded as a polynomial over S
.
Equations
- Polynomial.aroots p S = Polynomial.roots (Polynomial.map (algebraMap T S) p)
Instances For
The set of distinct roots of p
in S
.
If you have a non-separable polynomial, use Polynomial.aroots
for the multiset
where multiple roots have the appropriate multiplicity.
Equations
- Polynomial.rootSet p S = ↑(Multiset.toFinset (Polynomial.aroots p S))
Instances For
Equations
The set of roots of all polynomials of bounded degree and having coefficients in a finite set is finite.
Division by a monic polynomial doesn't change the leading coefficient.
The product ∏ (X - a)
for a
inside the multiset p.roots
divides p
.
A Galois connection.
A polynomial p
that has as many roots as its degree
can be written p = p.leadingCoeff * ∏(X - a)
, for a
in p.roots
.
A monic polynomial p
that has as many roots as its degree
can be written p = ∏(X - a)
, for a
in p.roots
.
To check a monic polynomial is irreducible, it suffices to check only for divisors that have smaller degree.
See also: Polynomial.Monic.irreducible_iff_natDegree
.
A polynomial over an integral domain R
is irreducible if it is monic and
irreducible after mapping into an integral domain S
.
A special case of this lemma is that a polynomial over ℤ
is irreducible if
it is monic and irreducible over ℤ/pℤ
for some prime p
.