Skip to content

Commit 2dd08f8

Browse files
committed
feat(Topology/Algebra/InfiniteSum/Real): Add partition lemma (#12446)
We also `summable_partition` (and the required `Set.sigmaEquiv`), needed for #10377. Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk>
1 parent 7e9dce6 commit 2dd08f8

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

Mathlib/Data/Set/Lattice.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2197,6 +2197,15 @@ theorem sigmaToiUnion_bijective (h : Pairwise fun i j => Disjoint (t i) (t j)) :
21972197
⟨sigmaToiUnion_injective t h, sigmaToiUnion_surjective t⟩
21982198
#align set.sigma_to_Union_bijective Set.sigmaToiUnion_bijective
21992199

2200+
/-- Equivalence from the disjoint union of a family of sets forming a partition of `β`, to `β`
2201+
itself. -/
2202+
noncomputable def sigmaEquiv (s : α → Set β) (hs : ∀ b, ∃! i, b ∈ s i) :
2203+
(Σ i, s i) ≃ β where
2204+
toFun | ⟨_, b⟩ => b
2205+
invFun b := ⟨(hs b).choose, b, (hs b).choose_spec.1
2206+
left_inv | ⟨i, b, hb⟩ => Sigma.subtype_ext ((hs b).choose_spec.2 i hb).symm rfl
2207+
right_inv _ := rfl
2208+
22002209
/-- Equivalence between a disjoint union and a dependent sum. -/
22012210
noncomputable def unionEqSigmaOfDisjoint {t : α → Set β}
22022211
(h : Pairwise fun i j => Disjoint (t i) (t j)) :

Mathlib/Topology/Algebra/InfiniteSum/Real.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ theorem summable_sigma_of_nonneg {β : α → Type*} {f : (Σ x, β x) → ℝ}
8181
exact mod_cast NNReal.summable_sigma
8282
#align summable_sigma_of_nonneg summable_sigma_of_nonneg
8383

84+
lemma summable_partition {α β : Type*} {f : β → ℝ} (hf : 0 ≤ f) {s : α → Set β}
85+
(hs : ∀ i, ∃! j, i ∈ s j) : Summable f ↔
86+
(∀ j, Summable fun i : s j ↦ f i) ∧ Summable fun j ↦ ∑' i : s j, f i := by
87+
simpa only [← (Set.sigmaEquiv s hs).summable_iff] using summable_sigma_of_nonneg (fun _ ↦ hf _)
88+
8489
theorem summable_prod_of_nonneg {f : (α × β) → ℝ} (hf : 0 ≤ f) :
8590
Summable f ↔ (∀ x, Summable fun y ↦ f (x, y)) ∧ Summable fun x ↦ ∑' y, f (x, y) :=
8691
(Equiv.sigmaEquivProd _ _).summable_iff.symm.trans <| summable_sigma_of_nonneg fun _ ↦ hf _

0 commit comments

Comments
 (0)