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 n
is all the multisets of cardinalityn
whose elements are ins
.finset.sym2
: The symmetric square of a finset.s.sym2
is 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 n
th symmetric power of {a} ∪ s
is
in 1-1 correspondence with the disjoint union of the n - i
th 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