Documentation

Mathlib.Data.ENNReal.Operations

Properties of big operators extended non-negative real numbers #

In this file we prove elementary properties of sums and products on ℝ≥0∞, as well as how these interact with the order structure on ℝ≥0∞.

@[simp]
theorem ENNReal.coe_finset_sum {α : Type u_1} {s : Finset α} {f : αNNReal} :
(∑ as, f a) = as, (f a)
@[simp]
theorem ENNReal.coe_finset_prod {α : Type u_1} {s : Finset α} {f : αNNReal} :
(∏ as, f a) = as, (f a)
@[simp]
theorem ENNReal.toNNReal_prod {ι : Type u_2} {s : Finset ι} {f : ιENNReal} :
(∏ is, f i).toNNReal = is, (f i).toNNReal
@[simp]
theorem ENNReal.toReal_prod {ι : Type u_2} {s : Finset ι} {f : ιENNReal} :
(∏ is, f i).toReal = is, (f i).toReal
theorem ENNReal.ofReal_prod_of_nonneg {α : Type u_2} {s : Finset α} {f : α} (hf : is, 0 f i) :
ENNReal.ofReal (∏ is, f i) = is, ENNReal.ofReal (f i)
theorem ENNReal.iInf_sum {ι : Type u_2} {α : Type u_3} {f : ιαENNReal} {s : Finset α} [Nonempty ι] (h : ∀ (t : Finset α) (i j : ι), ∃ (k : ι), at, f k a f i a f k a f j a) :
⨅ (i : ι), as, f i a = as, ⨅ (i : ι), f i a
theorem ENNReal.prod_ne_top {α : Type u_1} {s : Finset α} {f : αENNReal} (h : as, f a ) :
as, f a

A product of finite numbers is still finite.

theorem ENNReal.prod_lt_top {α : Type u_1} {s : Finset α} {f : αENNReal} (h : as, f a < ) :
as, f a <

A product of finite numbers is still finite.

@[simp]
theorem ENNReal.sum_eq_top {α : Type u_1} {s : Finset α} {f : αENNReal} :
xs, f x = as, f a =

A sum is infinite iff one of the summands is infinite.

theorem ENNReal.sum_ne_top {α : Type u_1} {s : Finset α} {f : αENNReal} :
as, f a as, f a

A sum is finite iff all summands are finite.

@[simp]
theorem ENNReal.sum_lt_top {α : Type u_1} {s : Finset α} {f : αENNReal} :
as, f a < as, f a <

A sum is finite iff all summands are finite.

@[deprecated ENNReal.sum_lt_top (since := "2024-08-25")]
theorem ENNReal.sum_lt_top_iff {α : Type u_1} {s : Finset α} {f : αENNReal} :
as, f a < as, f a <

Alias of ENNReal.sum_lt_top.


A sum is finite iff all summands are finite.

theorem ENNReal.lt_top_of_sum_ne_top {α : Type u_1} {s : Finset α} {f : αENNReal} (h : xs, f x ) {a : α} (ha : a s) :
f a <
theorem ENNReal.toNNReal_sum {α : Type u_1} {s : Finset α} {f : αENNReal} (hf : as, f a ) :
(∑ as, f a).toNNReal = as, (f a).toNNReal

Seeing ℝ≥0∞ as ℝ≥0 does not change their sum, unless one of the ℝ≥0∞ is infinity

theorem ENNReal.toReal_sum {α : Type u_1} {s : Finset α} {f : αENNReal} (hf : as, f a ) :
(∑ as, f a).toReal = as, (f a).toReal

seeing ℝ≥0∞ as Real does not change their sum, unless one of the ℝ≥0∞ is infinity

theorem ENNReal.ofReal_sum_of_nonneg {α : Type u_1} {s : Finset α} {f : α} (hf : is, 0 f i) :
ENNReal.ofReal (∑ is, f i) = is, ENNReal.ofReal (f i)
theorem ENNReal.sum_lt_sum_of_nonempty {α : Type u_1} {s : Finset α} (hs : s.Nonempty) {f g : αENNReal} (Hlt : is, f i < g i) :
is, f i < is, g i
theorem ENNReal.exists_le_of_sum_le {α : Type u_1} {s : Finset α} (hs : s.Nonempty) {f g : αENNReal} (Hle : is, f i is, g i) :
is, f i g i
theorem ENNReal.prod_inv_distrib {ι : Type u_1} {f : ιENNReal} {s : Finset ι} (hf : (↑s).Pairwise fun (i j : ι) => f i 0 f j ) :
(∏ is, f i)⁻¹ = is, (f i)⁻¹
theorem ENNReal.finsetSum_iSup {α : Type u_1} {ι : Type u_2} {s : Finset α} {f : αιENNReal} (hf : ∀ (i j : ι), ∃ (k : ι), ∀ (a : α), f a i f a k f a j f a k) :
as, ⨆ (i : ι), f a i = ⨆ (i : ι), as, f a i
theorem ENNReal.finsetSum_iSup_of_monotone {α : Type u_1} {ι : Type u_2} [Preorder ι] [IsDirected ι fun (x1 x2 : ι) => x1 x2] {s : Finset α} {f : αιENNReal} (hf : ∀ (a : α), Monotone (f a)) :
as, iSup (f a) = ⨆ (n : ι), as, f a n