Equivalence between Finset.finsuppAntidiag and Sym #
This file collects further results about equivalence and cardinality related to
Finset.finsuppAntidiag. This file is separated from Mathlib.Algebra.Order.Antidiag.Finsupp to
reduce imports.
Main declarations #
Finset.finsuppAntidiagEquivSubtype:Finset.finsuppAntidiag s nis equivalent to subtype ofs →₀ μwhose sum isn.Finset.finsuppAntidiagEquiv:Finset.finsuppAntidiag s nis equivalent toSym s nfor natural numbern.Finset.card_finsuppAntidiag_nat_eq_chooseandFinset.card_finsuppAntidiag_nat_eq_multichoose: cardinality formula forFinset.finsuppAntidiag s nfor natural numbern.
noncomputable def
Finset.finsuppAntidiagEquivSubtype
{ι : Type u_1}
{μ : Type u_2}
[DecidableEq ι]
[AddCommMonoid μ]
[HasAntidiagonal μ]
[DecidableEq μ]
(s : Finset ι)
(n : μ)
:
The equivalence between Finset.finsuppAntidiag s n and the subtype of s →₀ μ whose sum is
n.
Instances For
@[simp]
theorem
Finset.finsuppAntidiagEquivSubtype_symm_apply_coe
{ι : Type u_1}
{μ : Type u_2}
[DecidableEq ι]
[AddCommMonoid μ]
[HasAntidiagonal μ]
[DecidableEq μ]
(s : Finset ι)
(n : μ)
(f : { P : ↥s →₀ μ // (P.sum fun (x : ↥s) => id) = n })
:
↑((s.finsuppAntidiagEquivSubtype n).symm f) = (↑f).extendDomain
@[simp]
theorem
Finset.finsuppAntidiagEquivSubtype_apply_coe
{ι : Type u_1}
{μ : Type u_2}
[DecidableEq ι]
[AddCommMonoid μ]
[HasAntidiagonal μ]
[DecidableEq μ]
(s : Finset ι)
(n : μ)
(f : ↥(s.finsuppAntidiag n))
:
↑((s.finsuppAntidiagEquivSubtype n) f) = Finsupp.subtypeDomain (fun (x : ι) => x ∈ s) ↑f
noncomputable def
Finset.finsuppAntidiagEquiv
{ι : Type u_1}
[DecidableEq ι]
(s : Finset ι)
(n : ℕ)
:
The equivalence between Finset.finsuppAntidiag s n and Sym s n.
Instances For
@[simp]
theorem
Finset.finsuppAntidiagEquiv_symm_apply_apply
{ι : Type u_1}
[DecidableEq ι]
{s : Finset ι}
(n : ℕ)
(f : Sym (↥s) n)
(a : ↥s)
:
↑((s.finsuppAntidiagEquiv n).symm f) ↑a = Multiset.count a ↑f
@[simp]
theorem
Finset.count_coe_finsuppAntidiagEquiv_apply
{ι : Type u_1}
[DecidableEq ι]
{s : Finset ι}
(n : ℕ)
(f : ↥(s.finsuppAntidiag n))
(a : ↥s)
:
Multiset.count a ↑((s.finsuppAntidiagEquiv n) f) = ↑f ↑a
theorem
Finset.card_finsuppAntidiag_nat_eq_choose
{ι : Type u_1}
[DecidableEq ι]
{s : Finset ι}
(n : ℕ)
:
(s.finsuppAntidiag n).card = (s.card + n - 1).choose n
theorem
Finset.card_finsuppAntidiag_nat_eq_multichoose
{ι : Type u_1}
[DecidableEq ι]
{s : Finset ι}
(n : ℕ)
:
(s.finsuppAntidiag n).card = s.card.multichoose n