Symmetric polynomials #
Multisets {b₀, …, bₙ₋₁} attached to maps b : Fin n → α and symmetric-function
machinery feeding the algebraic estimates of Niven's proof.
theorem
coeff_eq_esymm_of_roots
{R : Type u_1}
{S : Type u_2}
[CommRing R]
[Field S]
[Algebra R S]
[IsAlgClosed S]
{n : ℕ}
(B : Polynomial R)
(b : Fin n → S)
(hmonic : B.Monic)
(hroots : B.aroots S = valuesFin b)
{k : ℕ}
(hk : k ≤ n)
:
(algebraMap R S) (B.coeff k) = (MvPolynomial.aeval b) ((-1) ^ (n - k) * MvPolynomial.esymm (Fin n) ℤ (n - k))
For a monic polynomial with roots b₀, …, bₙ₋₁, its k-th coefficient is written
with an elementary symmetric polynomial in the roots.
theorem
symmetric_poly_at_roots_eq_poly_of_esymm
{R : Type u_1}
{S : Type u_2}
[CommRing R]
[Field S]
[Algebra R S]
[IsAlgClosed S]
{n : ℕ}
(B : Polynomial R)
(a : Fin n → S)
(hmonic : B.Monic)
(hroots : B.aroots S = valuesFin a)
(P : MvPolynomial (Fin n) ℤ)
(hP : P.IsSymmetric)
:
∃ (Q : MvPolynomial (Fin n) ℤ),
(MvPolynomial.aeval a) P = (algebraMap R S) ((MvPolynomial.aeval fun (i : Fin n) => (-1) ^ (↑i + 1) * B.coeff (n - (↑i + 1))) Q)
If P is symmetric, then P(b₀, …, bₙ₋₁) can be rewritten as a polynomial expression in
the coefficients of the monic polynomial with roots b₀, …, bₙ₋₁.
theorem
symmetric_poly_at_roots
{R : Type u_1}
{S : Type u_2}
[CommRing R]
[Field S]
[Algebra R S]
[IsAlgClosed S]
{n : ℕ}
(B : Polynomial R)
(a : Fin n → S)
(hmonic : B.Monic)
(hroots : B.aroots S = valuesFin a)
(P : MvPolynomial (Fin n) ℤ)
(hP : P.IsSymmetric)
:
∃ (z : R), (MvPolynomial.aeval a) P = (algebraMap R S) z
If P is symmetric, then P(b₀, …, bₙ₋₁) ∈ R if b₀, …, bₙ₋₁ are
the roots of a monic polynomial over R.