Documentation

LeanPool.IsTranscendentalPi.SymmetricPolynomials

Symmetric polynomials #

Multisets {b₀, …, bₙ₋₁} attached to maps b : Fin n → α and symmetric-function machinery feeding the algebraic estimates of Niven's proof.

def valuesFin {α : Type u_1} {n : } (b : Fin nα) :

The multiset {b₀, …, bₙ₋₁} attached to b : Fin n → α.

Equations
Instances For
    theorem exists_valuesFin_eq_multiset {α : Type u_1} (s : Multiset α) :
    ∃ (n : ) (a : Fin nα), s = valuesFin a

    Every multiset can be indexed by a map a : Fin n → α.

    theorem exists_valuesFin_eq_aroots (P : Polynomial ) :
    ∃ (n : ) (a : Fin n), P.aroots = valuesFin a

    The roots of a polynomial can be listed as a valuesFin a₀, …, aₙ₋₁.

    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 nS) (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 nS) (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 nS) (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.