Root enumerations #
Let f be a polynomial over a commutative ring R and let L be an R-algebra that is a domain.
A family x : ι → L indexed by a finite type is a root enumeration of f when it lists the
roots of f in L with multiplicity: the multiset of roots of the image of f in L[X] is the
image of x.
Resolvents, discriminants and the elementary symmetric functions of the roots are all computed from such a listing, and two facts are implicit whenever the roots are indexed by a finite set of the size of the degree. Both are stated here.
- Splitting. If
ιhas at least as many elements as the degree of the image offinL(in particular, if it has at leastf.natDegreeelements), thenfsplits inL. The finite indexing is not available before this: a listing of all roots of a polynomial that does not split inLhas fewer entries than its degree. - Separability. When
Lis a field and the image offinLis nonzero, such an enumeration is injective if and only if the image offinLis separable; over a base fieldK, for a nonzerof, this is the separability offitself. Without separability a listing repeats a root, and a permutation of the indices is then no longer determined by the permutation of the roots that it induces.
Conversely, a polynomial that splits in L has a root enumeration indexed by any finite type
whose size is the degree of the image of f in L. Reading Vieta's formulas through an
enumeration expresses the elementary symmetric polynomials evaluated at x through the
coefficients of f.
Main definitions #
Polynomial.IsRootEnumeration f x:xlists the roots offinL, with multiplicity.
Main results #
Polynomial.IsRootEnumeration.splits: an enumeration with at least as many entries as the degree of the image offinLmakesfsplit inL.Polynomial.exists_isRootEnumeration_iff_splits: a polynomial has an enumeration indexed by a type whose size is the degree of its image inLif and only if it splits inL.Polynomial.IsRootEnumeration.injective_iff_separable_map: an enumeration in a fieldEwith as many entries as the degree of the nonzero image offinEis injective if and only if that image is separable.Polynomial.IsRootEnumeration.injective_iff_separable: over a base field, an enumeration of the roots of a nonzerogwithg.natDegreeentries is injective if and only ifgis separable.Polynomial.IsRootEnumeration.range_eq_rootSet: the entries of an enumeration are the roots.Polynomial.IsRootEnumeration.aeval_esymm_eq_coeff: Vieta's formulas, read through an enumeration of the roots of a monic polynomial.
x is a root enumeration of f in L: it lists the roots of f in L with
multiplicity, so that the multiset of roots of the image of f in L[X] is the image of x.
Equations
- f.IsRootEnumeration x = ((Polynomial.map (algebraMap R L) f).roots = Multiset.map x Finset.univ.val)
Instances For
The defining property of a root enumeration.
Reindexing an enumeration along a bijection gives an enumeration.
The number of entries of an enumeration is the number of roots of f in L.
An enumeration has at most f.natDegree entries.
The entries of an enumeration are exactly the roots of f in L.
An enumeration with at least as many entries as the degree of the image of f in L has
exactly that many entries, since the number of roots never exceeds the degree. This applies in
particular when the enumeration has at least f.natDegree entries, by natDegree_map_le.
An enumeration forces splitting. If x enumerates the roots of f in L and has at
least as many entries as the degree of the image of f in L (for instance, at least
f.natDegree entries), then f splits in L.
An enumeration with at least as many entries as the degree of the image of f in L is
carried by an injective algebra morphism to an enumeration in the target.
Root enumerations exist exactly for split polynomials. If the image of f in L has
degree Fintype.card ι, then f has a root enumeration in L indexed by ι if and only if f
splits in L.
Vieta's formulas, read through a root enumeration. If x enumerates the roots in L of
the monic polynomial f of degree Fintype.card ι, then for every k ≤ Fintype.card ι the
k-th elementary symmetric polynomial evaluated at x is (-1) ^ k times the coefficient of f
in degree Fintype.card ι - k.
An enumeration is injective exactly when the polynomial is separable. If y enumerates
the roots in the field E of a polynomial f whose image in E is nonzero, and has at least as
many entries as the degree of that image, then y is injective if and only if the image of f in
E is separable.
An enumeration is injective exactly when the polynomial is separable, over a base field:
if y enumerates the roots of the nonzero polynomial g over K and has at least g.natDegree
entries, then y is injective if and only if g is separable.