Symmetric powers of a finset #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines the symmetric powers of a finset as finset (sym α n) and finset (sym2 α).
Main declarations #
finset.sym: The symmetric power of a finset.s.sym nis all the multisets of cardinalitynwhose elements are ins.finset.sym2: The symmetric square of a finset.s.sym2is all the pairs whose elements are ins.
TODO #
finset.sym forms a Galois connection between finset α and finset (sym α n). Similar for
finset.sym2.
theorem
finset.is_diag_mk_of_mem_diag
{α : Type u_1}
[decidable_eq α]
{s : finset α}
{a : α × α}
(h : a ∈ s.diag) :
theorem
finset.not_is_diag_mk_of_mem_off_diag
{α : Type u_1}
[decidable_eq α]
{s : finset α}
{a : α × α}
(h : a ∈ s.off_diag) :
@[protected]
Lifts a finset to sym2 α. s.sym2 is the finset of all pairs with elements in s.
Equations
- s.sym2 = finset.image quotient.mk (s ×ˢ s)
@[simp]
@[protected]
Alias of the reverse direction of finset.sym2_nonempty.
@[simp]
@[simp]
@[simp]
@[simp]
@[protected]
Lifts a finset to sym α n. s.sym n is the finset of all unordered tuples of cardinality n
with elements in s.
@[simp]
@[simp]
theorem
finset.replicate_mem_sym
{α : Type u_1}
[decidable_eq α]
{s : finset α}
{a : α}
(ha : a ∈ s)
(n : ℕ) :
sym.replicate n a ∈ s.sym n
@[protected]
theorem
finset.nonempty.sym
{α : Type u_1}
[decidable_eq α]
{s : finset α}
(h : s.nonempty)
(n : ℕ) :
@[simp]
theorem
finset.sym_singleton
{α : Type u_1}
[decidable_eq α]
(a : α)
(n : ℕ) :
{a}.sym n = {sym.replicate n a}
@[simp]
@[simp]
theorem
finset.sym_filter_ne_mem
{α : Type u_1}
[decidable_eq α]
{s : finset α}
{n : ℕ}
{m : sym α n}
(a : α)
(h : m ∈ s.sym n) :
(sym.filter_ne a m).snd ∈ (s.erase a).sym (n - ↑((sym.filter_ne a m).fst))
def
finset.sym_insert_equiv
{α : Type u_1}
[decidable_eq α]
{s : finset α}
{a : α}
{n : ℕ}
(h : a ∉ s) :
If a does not belong to the finset s, then the nth symmetric power of {a} ∪ s is
in 1-1 correspondence with the disjoint union of the n - ith symmetric powers of s,
for 0 ≤ i ≤ n.
@[simp]
theorem
finset.sym_insert_equiv_apply_fst
{α : Type u_1}
[decidable_eq α]
{s : finset α}
{a : α}
{n : ℕ}
(h : a ∉ s)
(m : ↥((has_insert.insert a s).sym n)) :
(⇑(finset.sym_insert_equiv h) m).fst = (sym.filter_ne a m.val).fst
@[simp]
theorem
finset.sym_insert_equiv_apply_snd_coe
{α : Type u_1}
[decidable_eq α]
{s : finset α}
{a : α}
{n : ℕ}
(h : a ∉ s)
(m : ↥((has_insert.insert a s).sym n)) :
↑((⇑(finset.sym_insert_equiv h) m).snd) = (sym.filter_ne a m.val).snd