Symmetric Polynomials and Elementary Symmetric Polynomials #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines symmetric mv_polynomial
s and elementary symmetric mv_polynomial
s.
We also prove some basic facts about them.
Main declarations #
Notation #
esymm σ R n
, is then
th elementary symmetric polynomial inmv_polynomial σ R
.
As in other polynomial files, we typically use the notation:
-
σ τ : Type*
(indexing the variables) -
R S : Type*
[comm_semiring R]
[comm_semiring S]
(the coefficients) -
r : R
elements of the coefficient ring -
i : σ
, with corresponding monomialX i
, often denotedX_i
by mathematicians -
φ ψ : mv_polynomial σ R
The n
th elementary symmetric function evaluated at the elements of s
Equations
- s.esymm n = (multiset.map multiset.prod (multiset.powerset_len n s)).sum
A mv_polynomial φ
is symmetric if it is invariant under
permutations of its variables by the rename
operation
Equations
- φ.is_symmetric = ∀ (e : equiv.perm σ), ⇑(mv_polynomial.rename ⇑e) φ = φ
The subalgebra of symmetric mv_polynomial
s.
Equations
- mv_polynomial.symmetric_subalgebra σ R = {carrier := set_of mv_polynomial.is_symmetric, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
The n
th elementary symmetric mv_polynomial σ R
.
Equations
- mv_polynomial.esymm σ R n = (finset.powerset_len n finset.univ).sum (λ (t : finset σ), t.prod (λ (i : σ), mv_polynomial.X i))
The n
th elementary symmetric mv_polynomial σ R
is obtained by evaluating the
n
th elementary symmetric at the multiset
of the monomials
We can define esymm σ R n
by summing over a subtype instead of over powerset_len
.
We can define esymm σ R n
as a sum over explicit monomials