Documentation

Mathlib.Data.Finsupp.BigOperators

Sums of collections of Finsupp, and their support #

This file provides results about the Finsupp.support of sums of collections of Finsupp, including sums of List, Multiset, and Finset.

The support of the sum is a subset of the union of the supports:

The support of the sum of pairwise disjoint finsupps is equal to the union of the supports

Member in the support of the indexed union over a collection iff it is a member of the support of a member of the collection:

theorem List.support_sum_subset {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [AddMonoid M] (l : List (ι →₀ M)) :
(List.sum l).support ⊆ List.foldr (fun (x : ι →₀ M) (x_1 : Finset ι) => x.support ⊔ x_1) ∅ l
theorem Multiset.support_sum_subset {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [AddCommMonoid M] (s : Multiset (ι →₀ M)) :
(Multiset.sum s).support ⊆ Multiset.sup (Multiset.map Finsupp.support s)
theorem Finset.support_sum_subset {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [AddCommMonoid M] (s : Finset (ι →₀ M)) :
(Finset.sum s id).support ⊆ Finset.sup s Finsupp.support
theorem List.mem_foldr_sup_support_iff {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [Zero M] {l : List (ι →₀ M)} {x : ι} :
x ∈ List.foldr (fun (x : ι →₀ M) (x_1 : Finset ι) => x.support ⊔ x_1) ∅ l ↔ ∃ f ∈ l, x ∈ f.support
theorem Multiset.mem_sup_map_support_iff {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [Zero M] {s : Multiset (ι →₀ M)} {x : ι} :
x ∈ Multiset.sup (Multiset.map Finsupp.support s) ↔ ∃ f ∈ s, x ∈ f.support
theorem Finset.mem_sup_support_iff {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [Zero M] {s : Finset (ι →₀ M)} {x : ι} :
x ∈ Finset.sup s Finsupp.support ↔ ∃ f ∈ s, x ∈ f.support
theorem List.support_sum_eq {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [AddMonoid M] (l : List (ι →₀ M)) (hl : List.Pairwise (Disjoint on Finsupp.support) l) :
(List.sum l).support = List.foldr (fun (x : ι →₀ M) (x_1 : Finset ι) => x.support ⊔ x_1) ∅ l
theorem Multiset.support_sum_eq {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [AddCommMonoid M] (s : Multiset (ι →₀ M)) (hs : Multiset.Pairwise (Disjoint on Finsupp.support) s) :
(Multiset.sum s).support = Multiset.sup (Multiset.map Finsupp.support s)
theorem Finset.support_sum_eq {ι : Type u_1} {M : Type u_2} [DecidableEq ι] [AddCommMonoid M] (s : Finset (ι →₀ M)) (hs : Set.PairwiseDisjoint (↑s) Finsupp.support) :
(Finset.sum s id).support = Finset.sup s Finsupp.support