Documentation

Mathlib.Algebra.BigOperators.Group.Finset.Indicator

Interaction of big operators with indicator functions #

theorem Finset.prod_mulIndicator_subset_of_eq_one {ι : Type u_1} {α : Type u_3} {β : Type u_4} [CommMonoid β] [One α] (f : ια) (g : ιαβ) {s t : Finset ι} (h : s t) (hg : ∀ (a : ι), g a 1 = 1) :
it, g i ((↑s).mulIndicator f i) = is, g i (f i)

Consider a product of g i (f i) over a finset. Suppose g is a function such as n ↦ (· ^ n), which maps a second argument of 1 to 1. Then if f is replaced by the corresponding multiplicative indicator function, the finset may be replaced by a possibly larger finset without changing the value of the product.

theorem Finset.sum_indicator_subset_of_eq_zero {ι : Type u_1} {α : Type u_3} {β : Type u_4} [AddCommMonoid β] [Zero α] (f : ια) (g : ιαβ) {s t : Finset ι} (h : s t) (hg : ∀ (a : ι), g a 0 = 0) :
it, g i ((↑s).indicator f i) = is, g i (f i)

Consider a sum of g i (f i) over a finset. Suppose g is a function such as n ↦ (n • ·), which maps a second argument of 0 to 0 (or a weighted sum of f i * h i or f i • h i, where f gives the weights that are multiplied by some other function h). Then if f is replaced by the corresponding indicator function, the finset may be replaced by a possibly larger finset without changing the value of the sum.

theorem Finset.prod_mulIndicator_subset {ι : Type u_1} {β : Type u_4} [CommMonoid β] (f : ιβ) {s t : Finset ι} (h : s t) :
it, (↑s).mulIndicator f i = is, f i

Taking the product of an indicator function over a possibly larger finset is the same as taking the original function over the original finset.

theorem Finset.sum_indicator_subset {ι : Type u_1} {β : Type u_4} [AddCommMonoid β] (f : ιβ) {s t : Finset ι} (h : s t) :
it, (↑s).indicator f i = is, f i

Summing an indicator function over a possibly larger Finset is the same as summing the original function over the original finset.

theorem Finset.prod_mulIndicator_eq_prod_filter {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [CommMonoid β] (s : Finset ι) (f : ικβ) (t : ιSet κ) (g : ικ) [DecidablePred fun (i : ι) => g i t i] :
is, (t i).mulIndicator (f i) (g i) = i{is | g i t i}, f i (g i)
theorem Finset.sum_indicator_eq_sum_filter {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [AddCommMonoid β] (s : Finset ι) (f : ικβ) (t : ιSet κ) (g : ικ) [DecidablePred fun (i : ι) => g i t i] :
is, (t i).indicator (f i) (g i) = i{is | g i t i}, f i (g i)
theorem Finset.prod_mulIndicator_eq_prod_inter {ι : Type u_1} {β : Type u_4} [CommMonoid β] [DecidableEq ι] (s t : Finset ι) (f : ιβ) :
is, (↑t).mulIndicator f i = is t, f i
theorem Finset.sum_indicator_eq_sum_inter {ι : Type u_1} {β : Type u_4} [AddCommMonoid β] [DecidableEq ι] (s t : Finset ι) (f : ιβ) :
is, (↑t).indicator f i = is t, f i
theorem Finset.mulIndicator_prod {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [CommMonoid β] (s : Finset ι) (t : Set κ) (f : ικβ) :
t.mulIndicator (∏ is, f i) = is, t.mulIndicator (f i)
theorem Finset.indicator_sum {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [AddCommMonoid β] (s : Finset ι) (t : Set κ) (f : ικβ) :
t.indicator (∑ is, f i) = is, t.indicator (f i)
theorem Finset.mulIndicator_biUnion {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [CommMonoid β] (s : Finset ι) (t : ιSet κ) {f : κβ} (hs : (↑s).PairwiseDisjoint t) :
(⋃ is, t i).mulIndicator f = fun (a : κ) => is, (t i).mulIndicator f a
theorem Finset.indicator_biUnion {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [AddCommMonoid β] (s : Finset ι) (t : ιSet κ) {f : κβ} (hs : (↑s).PairwiseDisjoint t) :
(⋃ is, t i).indicator f = fun (a : κ) => is, (t i).indicator f a
theorem Finset.mulIndicator_biUnion_apply {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [CommMonoid β] (s : Finset ι) (t : ιSet κ) {f : κβ} (h : (↑s).PairwiseDisjoint t) (x : κ) :
(⋃ is, t i).mulIndicator f x = is, (t i).mulIndicator f x
theorem Finset.indicator_biUnion_apply {ι : Type u_1} {κ : Type u_2} {β : Type u_4} [AddCommMonoid β] (s : Finset ι) (t : ιSet κ) {f : κβ} (h : (↑s).PairwiseDisjoint t) (x : κ) :
(⋃ is, t i).indicator f x = is, (t i).indicator f x