mathlib documentation

topology.instances.ennreal

Extended non-negative reals #

@[instance]

Topology on ℝ≥0∞.

Note: this is different from the emetric_space topology. The emetric_space topology has is_open {⊤}, while this topology doesn't have singleton elements.

Equations
theorem ennreal.tendsto_coe {α : Type u_1} {f : filter α} {m : α → ℝ≥0} {a : ℝ≥0} :
filter.tendsto (λ (a : α), (m a)) f (𝓝 a) filter.tendsto m f (𝓝 a)
theorem ennreal.continuous_coe_iff {α : Type u_1} [topological_space α] {f : α → ℝ≥0} :
continuous (λ (a : α), (f a)) continuous f
theorem ennreal.tendsto_nhds_coe_iff {α : Type u_1} {l : filter α} {x : ℝ≥0} {f : ℝ≥0∞ → α} :
theorem ennreal.continuous_at_coe_iff {α : Type u_1} [topological_space α] {x : ℝ≥0} {f : ℝ≥0∞ → α} :
theorem ennreal.nhds_coe_coe {r p : ℝ≥0} :
𝓝 (r, p) = filter.map (λ (p : ℝ≥0 × ℝ≥0), ((p.fst), (p.snd))) (𝓝 (r, p))
theorem ennreal.tendsto_of_real {α : Type u_1} {f : filter α} {m : α → } {a : } (h : filter.tendsto m f (𝓝 a)) :
filter.tendsto (λ (a : α), ennreal.of_real (m a)) f (𝓝 (ennreal.of_real a))
theorem ennreal.eventually_eq_of_to_real_eventually_eq {α : Type u_1} {l : filter α} {f g : α → ℝ≥0∞} (hfi : ∀ᶠ (x : α) in l, f x ) (hgi : ∀ᶠ (x : α) in l, g x ) (hfg : (λ (x : α), (f x).to_real) =ᶠ[l] λ (x : α), (g x).to_real) :
f =ᶠ[l] g

The set of finite ℝ≥0∞ numbers is homeomorphic to ℝ≥0.

Equations

The set of finite ℝ≥0∞ numbers is homeomorphic to ℝ≥0.

Equations
theorem ennreal.nhds_top  :
𝓝 = ⨅ (a : ℝ≥0∞) (H : a ), 𝓟 (set.Ioi a)
theorem ennreal.nhds_top'  :
𝓝 = ⨅ (r : ℝ≥0), 𝓟 (set.Ioi r)
theorem ennreal.nhds_top_basis  :
(𝓝 ).has_basis (λ (a : ℝ≥0∞), a < ) (λ (a : ℝ≥0∞), set.Ioi a)
theorem ennreal.tendsto_nhds_top_iff_nnreal {α : Type u_1} {m : α → ℝ≥0∞} {f : filter α} :
filter.tendsto m f (𝓝 ) ∀ (x : ℝ≥0), ∀ᶠ (a : α) in f, x < m a
theorem ennreal.tendsto_nhds_top_iff_nat {α : Type u_1} {m : α → ℝ≥0∞} {f : filter α} :
filter.tendsto m f (𝓝 ) ∀ (n : ), ∀ᶠ (a : α) in f, n < m a
theorem ennreal.tendsto_nhds_top {α : Type u_1} {m : α → ℝ≥0∞} {f : filter α} (h : ∀ (n : ), ∀ᶠ (a : α) in f, n < m a) :
@[simp]
theorem ennreal.tendsto_coe_nhds_top {α : Type u_1} {f : α → ℝ≥0} {l : filter α} :
theorem ennreal.nhds_zero  :
𝓝 0 = ⨅ (a : ℝ≥0∞) (H : a 0), 𝓟 (set.Iio a)
theorem ennreal.nhds_zero_basis  :
(𝓝 0).has_basis (λ (a : ℝ≥0∞), 0 < a) (λ (a : ℝ≥0∞), set.Iio a)
theorem ennreal.Icc_mem_nhds {x ε : ℝ≥0∞} (xt : x ) (ε0 : ε 0) :
set.Icc (x - ε) (x + ε) 𝓝 x
theorem ennreal.nhds_of_ne_top {x : ℝ≥0∞} (xt : x ) :
𝓝 x = ⨅ (ε : ℝ≥0∞) (H : ε > 0), 𝓟 (set.Icc (x - ε) (x + ε))
theorem ennreal.tendsto_nhds {α : Type u_1} {f : filter α} {u : α → ℝ≥0∞} {a : ℝ≥0∞} (ha : a ) :
filter.tendsto u f (𝓝 a) ∀ (ε : ℝ≥0∞), ε > 0(∀ᶠ (x : α) in f, u x set.Icc (a - ε) (a + ε))

Characterization of neighborhoods for ℝ≥0∞ numbers. See also tendsto_order for a version with strict inequalities.

theorem ennreal.tendsto_at_top {β : Type u_2} [nonempty β] [semilattice_sup β] {f : β → ℝ≥0∞} {a : ℝ≥0∞} (ha : a ) :
filter.tendsto f filter.at_top (𝓝 a) ∀ (ε : ℝ≥0∞), ε > 0(∃ (N : β), ∀ (n : β), n Nf n set.Icc (a - ε) (a + ε))
theorem ennreal.tendsto_at_top_zero {β : Type u_2} [hβ : nonempty β] [semilattice_sup β] {f : β → ℝ≥0∞} :
filter.tendsto f filter.at_top (𝓝 0) ∀ (ε : ℝ≥0∞), ε > 0(∃ (N : β), ∀ (n : β), n Nf n ε)
theorem ennreal.tendsto_mul {a b : ℝ≥0∞} (ha : a 0 b ) (hb : b 0 a ) :
filter.tendsto (λ (p : ℝ≥0∞ × ℝ≥0∞), (p.fst) * p.snd) (𝓝 (a, b)) (𝓝 (a * b))
theorem ennreal.tendsto.mul {α : Type u_1} {f : filter α} {ma mb : α → ℝ≥0∞} {a b : ℝ≥0∞} (hma : filter.tendsto ma f (𝓝 a)) (ha : a 0 b ) (hmb : filter.tendsto mb f (𝓝 b)) (hb : b 0 a ) :
filter.tendsto (λ (a : α), (ma a) * mb a) f (𝓝 (a * b))
theorem ennreal.tendsto.const_mul {α : Type u_1} {f : filter α} {m : α → ℝ≥0∞} {a b : ℝ≥0∞} (hm : filter.tendsto m f (𝓝 b)) (hb : b 0 a ) :
filter.tendsto (λ (b : α), a * m b) f (𝓝 (a * b))
theorem ennreal.tendsto.mul_const {α : Type u_1} {f : filter α} {m : α → ℝ≥0∞} {a b : ℝ≥0∞} (hm : filter.tendsto m f (𝓝 a)) (ha : a 0 b ) :
filter.tendsto (λ (x : α), (m x) * b) f (𝓝 (a * b))
theorem ennreal.tendsto_finset_prod_of_ne_top {α : Type u_1} {ι : Type u_2} {f : ι → α → ℝ≥0∞} {x : filter α} {a : ι → ℝ≥0∞} (s : finset ι) (h : ∀ (i : ι), i sfilter.tendsto (f i) x (𝓝 (a i))) (h' : ∀ (i : ι), i sa i ) :
filter.tendsto (λ (b : α), ∏ (c : ι) in s, f c b) x (𝓝 (∏ (c : ι) in s, a c))
theorem ennreal.continuous_at_mul_const {a b : ℝ≥0∞} (h : a b 0) :
continuous_at (λ (x : ℝ≥0∞), x * a) b
theorem ennreal.continuous_mul_const {a : ℝ≥0∞} (ha : a ) :
continuous (λ (x : ℝ≥0∞), x * a)
theorem ennreal.le_of_forall_lt_one_mul_le {x y : ℝ≥0∞} (h : ∀ (a : ℝ≥0∞), a < 1a * x y) :
x y
theorem ennreal.infi_mul_left' {ι : Sort u_1} {f : ι → ℝ≥0∞} {a : ℝ≥0∞} (h : a = (⨅ (i : ι), f i) = 0(∃ (i : ι), f i = 0)) (h0 : a = 0nonempty ι) :
(⨅ (i : ι), a * f i) = a * ⨅ (i : ι), f i
theorem ennreal.infi_mul_left {ι : Sort u_1} [nonempty ι] {f : ι → ℝ≥0∞} {a : ℝ≥0∞} (h : a = (⨅ (i : ι), f i) = 0(∃ (i : ι), f i = 0)) :
(⨅ (i : ι), a * f i) = a * ⨅ (i : ι), f i
theorem ennreal.infi_mul_right' {ι : Sort u_1} {f : ι → ℝ≥0∞} {a : ℝ≥0∞} (h : a = (⨅ (i : ι), f i) = 0(∃ (i : ι), f i = 0)) (h0 : a = 0nonempty ι) :
(⨅ (i : ι), (f i) * a) = (⨅ (i : ι), f i) * a
theorem ennreal.infi_mul_right {ι : Sort u_1} [nonempty ι] {f : ι → ℝ≥0∞} {a : ℝ≥0∞} (h : a = (⨅ (i : ι), f i) = 0(∃ (i : ι), f i = 0)) :
(⨅ (i : ι), (f i) * a) = (⨅ (i : ι), f i) * a
@[simp]
theorem ennreal.tendsto_inv_iff {α : Type u_1} {f : filter α} {m : α → ℝ≥0∞} {a : ℝ≥0∞} :
filter.tendsto (λ (x : α), (m x)⁻¹) f (𝓝 a⁻¹) filter.tendsto m f (𝓝 a)
theorem ennreal.tendsto.div {α : Type u_1} {f : filter α} {ma mb : α → ℝ≥0∞} {a b : ℝ≥0∞} (hma : filter.tendsto ma f (𝓝 a)) (ha : a 0 b 0) (hmb : filter.tendsto mb f (𝓝 b)) (hb : b a ) :
filter.tendsto (λ (a : α), ma a / mb a) f (𝓝 (a / b))
theorem ennreal.tendsto.const_div {α : Type u_1} {f : filter α} {m : α → ℝ≥0∞} {a b : ℝ≥0∞} (hm : filter.tendsto m f (𝓝 b)) (hb : b a ) :
filter.tendsto (λ (b : α), a / m b) f (𝓝 (a / b))
theorem ennreal.tendsto.div_const {α : Type u_1} {f : filter α} {m : α → ℝ≥0∞} {a b : ℝ≥0∞} (hm : filter.tendsto m f (𝓝 a)) (ha : a 0 b 0) :
filter.tendsto (λ (x : α), m x / b) f (𝓝 (a / b))
theorem ennreal.bsupr_add {a : ℝ≥0∞} {ι : Type u_1} {s : set ι} (hs : s.nonempty) {f : ι → ℝ≥0∞} :
(⨆ (i : ι) (H : i s), f i) + a = ⨆ (i : ι) (H : i s), f i + a
theorem ennreal.Sup_add {a : ℝ≥0∞} {s : set ℝ≥0∞} (hs : s.nonempty) :
Sup s + a = ⨆ (b : ℝ≥0∞) (H : b s), b + a
theorem ennreal.supr_add {a : ℝ≥0∞} {ι : Sort u_1} {s : ι → ℝ≥0∞} [h : nonempty ι] :
supr s + a = ⨆ (b : ι), s b + a
theorem ennreal.add_supr {a : ℝ≥0∞} {ι : Sort u_1} {s : ι → ℝ≥0∞} [h : nonempty ι] :
a + supr s = ⨆ (b : ι), a + s b
theorem ennreal.supr_add_supr {ι : Sort u_1} {f g : ι → ℝ≥0∞} (h : ∀ (i j : ι), ∃ (k : ι), f i + g j f k + g k) :
supr f + supr g = ⨆ (a : ι), f a + g a
theorem ennreal.supr_add_supr_of_monotone {ι : Type u_1} [semilattice_sup ι] {f g : ι → ℝ≥0∞} (hf : monotone f) (hg : monotone g) :
supr f + supr g = ⨆ (a : ι), f a + g a
theorem ennreal.finset_sum_supr_nat {α : Type u_1} {ι : Type u_2} [semilattice_sup ι] {s : finset α} {f : α → ι → ℝ≥0∞} (hf : ∀ (a : α), monotone (f a)) :
∑ (a : α) in s, supr (f a) = ⨆ (n : ι), ∑ (a : α) in s, f a n
theorem ennreal.mul_Sup {s : set ℝ≥0∞} {a : ℝ≥0∞} :
a * Sup s = ⨆ (i : ℝ≥0∞) (H : i s), a * i
theorem ennreal.mul_supr {ι : Sort u_1} {f : ι → ℝ≥0∞} {a : ℝ≥0∞} :
a * supr f = ⨆ (i : ι), a * f i
theorem ennreal.supr_mul {ι : Sort u_1} {f : ι → ℝ≥0∞} {a : ℝ≥0∞} :
(supr f) * a = ⨆ (i : ι), (f i) * a
theorem ennreal.supr_div {ι : Sort u_1} {f : ι → ℝ≥0∞} {a : ℝ≥0∞} :
supr f / a = ⨆ (i : ι), f i / a
theorem ennreal.tendsto_coe_sub {r : ℝ≥0} {b : ℝ≥0∞} :
filter.tendsto (λ (b : ℝ≥0∞), r - b) (𝓝 b) (𝓝 (r - b))
theorem ennreal.sub_supr {a : ℝ≥0∞} {ι : Sort u_1} [nonempty ι] {b : ι → ℝ≥0∞} (hr : a < ) :
(a - ⨆ (i : ι), b i) = ⨅ (i : ι), a - b i
theorem ennreal.has_sum_coe {α : Type u_1} {f : α → ℝ≥0} {r : ℝ≥0} :
has_sum (λ (a : α), (f a)) r has_sum f r
theorem ennreal.tsum_coe_eq {α : Type u_1} {r : ℝ≥0} {f : α → ℝ≥0} (h : has_sum f r) :
∑' (a : α), (f a) = r
theorem ennreal.coe_tsum {α : Type u_1} {f : α → ℝ≥0} :
summable f(tsum f) = ∑' (a : α), (f a)
theorem ennreal.has_sum {α : Type u_1} {f : α → ℝ≥0∞} :
has_sum f (⨆ (s : finset α), ∑ (a : α) in s, f a)
@[simp]
theorem ennreal.summable {α : Type u_1} {f : α → ℝ≥0∞} :
theorem ennreal.tsum_coe_ne_top_iff_summable {β : Type u_2} {f : β → ℝ≥0} :
∑' (b : β), (f b) summable f
theorem ennreal.tsum_eq_supr_sum {α : Type u_1} {f : α → ℝ≥0∞} :
∑' (a : α), f a = ⨆ (s : finset α), ∑ (a : α) in s, f a
theorem ennreal.tsum_eq_supr_sum' {α : Type u_1} {f : α → ℝ≥0∞} {ι : Type u_2} (s : ι → finset α) (hs : ∀ (t : finset α), ∃ (i : ι), t s i) :
∑' (a : α), f a = ⨆ (i : ι), ∑ (a : α) in s i, f a
theorem ennreal.tsum_sigma {α : Type u_1} {β : α → Type u_2} (f : Π (a : α), β aℝ≥0∞) :
∑' (p : Σ (a : α), β a), f p.fst p.snd = ∑' (a : α) (b : β a), f a b
theorem ennreal.tsum_sigma' {α : Type u_1} {β : α → Type u_2} (f : (Σ (a : α), β a)ℝ≥0∞) :
∑' (p : Σ (a : α), β a), f p = ∑' (a : α) (b : β a), f a, b⟩
theorem ennreal.tsum_prod {α : Type u_1} {β : Type u_2} {f : α → β → ℝ≥0∞} :
∑' (p : α × β), f p.fst p.snd = ∑' (a : α) (b : β), f a b
theorem ennreal.tsum_comm {α : Type u_1} {β : Type u_2} {f : α → β → ℝ≥0∞} :
∑' (a : α) (b : β), f a b = ∑' (b : β) (a : α), f a b
theorem ennreal.tsum_add {α : Type u_1} {f g : α → ℝ≥0∞} :
∑' (a : α), (f a + g a) = ∑' (a : α), f a + ∑' (a : α), g a
theorem ennreal.tsum_le_tsum {α : Type u_1} {f g : α → ℝ≥0∞} (h : ∀ (a : α), f a g a) :
∑' (a : α), f a ∑' (a : α), g a
theorem ennreal.sum_le_tsum {α : Type u_1} {f : α → ℝ≥0∞} (s : finset α) :
∑ (x : α) in s, f x ∑' (x : α), f x
theorem ennreal.tsum_eq_supr_nat' {f : ℝ≥0∞} {N : } (hN : filter.tendsto N filter.at_top filter.at_top) :
∑' (i : ), f i = ⨆ (i : ), ∑ (a : ) in finset.range (N i), f a
theorem ennreal.tsum_eq_supr_nat {f : ℝ≥0∞} :
∑' (i : ), f i = ⨆ (i : ), ∑ (a : ) in finset.range i, f a
theorem ennreal.tsum_eq_liminf_sum_nat {f : ℝ≥0∞} :
∑' (i : ), f i = filter.at_top.liminf (λ (n : ), ∑ (i : ) in finset.range n, f i)
theorem ennreal.le_tsum {α : Type u_1} {f : α → ℝ≥0∞} (a : α) :
f a ∑' (a : α), f a
theorem ennreal.tsum_eq_top_of_eq_top {α : Type u_1} {f : α → ℝ≥0∞} :
(∃ (a : α), f a = )∑' (a : α), f a =
@[simp]
theorem ennreal.tsum_top {α : Type u_1} [nonempty α] :
∑' (a : α), =
theorem ennreal.tsum_const_eq_top_of_ne_zero {α : Type u_1} [infinite α] {c : ℝ≥0∞} (hc : c 0) :
∑' (a : α), c =
theorem ennreal.ne_top_of_tsum_ne_top {α : Type u_1} {f : α → ℝ≥0∞} (h : ∑' (a : α), f a ) (a : α) :
f a
theorem ennreal.tsum_mul_left {α : Type u_1} {a : ℝ≥0∞} {f : α → ℝ≥0∞} :
∑' (i : α), a * f i = a * ∑' (i : α), f i
theorem ennreal.tsum_mul_right {α : Type u_1} {a : ℝ≥0∞} {f : α → ℝ≥0∞} :
∑' (i : α), (f i) * a = (∑' (i : α), f i) * a
@[simp]
theorem ennreal.tsum_supr_eq {α : Type u_1} (a : α) {f : α → ℝ≥0∞} :
(∑' (b : α), ⨆ (h : a = b), f b) = f a
theorem ennreal.has_sum_iff_tendsto_nat {f : ℝ≥0∞} (r : ℝ≥0∞) :
has_sum f r filter.tendsto (λ (n : ), ∑ (i : ) in finset.range n, f i) filter.at_top (𝓝 r)
theorem ennreal.tendsto_nat_tsum (f : ℝ≥0∞) :
filter.tendsto (λ (n : ), ∑ (i : ) in finset.range n, f i) filter.at_top (𝓝 (∑' (n : ), f n))
theorem ennreal.to_nnreal_apply_of_tsum_ne_top {α : Type u_1} {f : α → ℝ≥0∞} (hf : ∑' (i : α), f i ) (x : α) :
theorem ennreal.summable_to_nnreal_of_tsum_ne_top {α : Type u_1} {f : α → ℝ≥0∞} (hf : ∑' (i : α), f i ) :
theorem ennreal.tendsto_cofinite_zero_of_tsum_ne_top {α : Type u_1} {f : α → ℝ≥0∞} (hf : ∑' (x : α), f x ) :
theorem ennreal.tendsto_tsum_compl_at_top_zero {α : Type u_1} {f : α → ℝ≥0∞} (hf : ∑' (x : α), f x ) :
filter.tendsto (λ (s : finset α), ∑' (b : {x // x s}), f b) filter.at_top (𝓝 0)

The sum over the complement of a finset tends to 0 when the finset grows to cover the whole space. This does not need a summability assumption, as otherwise all sums are zero.

theorem ennreal.tsum_apply {ι : Type u_1} {α : Type u_2} {f : ι → α → ℝ≥0∞} {x : α} :
(∑' (i : ι), f i) x = ∑' (i : ι), f i x
theorem ennreal.tsum_sub {f g : ℝ≥0∞} (h₁ : ∑' (i : ), g i ) (h₂ : g f) :
∑' (i : ), (f i - g i) = ∑' (i : ), f i - ∑' (i : ), g i
theorem ennreal.tendsto_to_real_iff {ι : Type u_1} {fi : filter ι} {f : ι → ℝ≥0∞} (hf : ∀ (i : ι), f i ) {x : ℝ≥0∞} (hx : x ) :
filter.tendsto (λ (n : ι), (f n).to_real) fi (𝓝 x.to_real) filter.tendsto f fi (𝓝 x)
theorem ennreal.tsum_coe_ne_top_iff_summable_coe {α : Type u_1} {f : α → ℝ≥0} :
∑' (a : α), (f a) summable (λ (a : α), (f a))
theorem ennreal.tsum_coe_eq_top_iff_not_summable_coe {α : Type u_1} {f : α → ℝ≥0} :
∑' (a : α), (f a) = ¬summable (λ (a : α), (f a))
theorem ennreal.summable_to_real {α : Type u_1} {f : α → ℝ≥0∞} (hsum : ∑' (x : α), f x ) :
summable (λ (x : α), (f x).to_real)
theorem nnreal.tsum_eq_to_nnreal_tsum {β : Type u_2} {f : β → ℝ≥0} :
∑' (b : β), f b = (∑' (b : β), (f b)).to_nnreal
theorem nnreal.exists_le_has_sum_of_le {β : Type u_2} {f g : β → ℝ≥0} {r : ℝ≥0} (hgf : ∀ (b : β), g b f b) (hfr : has_sum f r) :
∃ (p : ℝ≥0) (H : p r), has_sum g p

Comparison test of convergence of ℝ≥0-valued series.

theorem nnreal.summable_of_le {β : Type u_2} {f g : β → ℝ≥0} (hgf : ∀ (b : β), g b f b) :

Comparison test of convergence of ℝ≥0-valued series.

theorem nnreal.has_sum_iff_tendsto_nat {f : ℝ≥0} {r : ℝ≥0} :
has_sum f r filter.tendsto (λ (n : ), ∑ (i : ) in finset.range n, f i) filter.at_top (𝓝 r)

A series of non-negative real numbers converges to r in the sense of has_sum if and only if the sequence of partial sum converges to r.

theorem nnreal.summable_of_sum_range_le {f : ℝ≥0} {c : ℝ≥0} (h : ∀ (n : ), ∑ (i : ) in finset.range n, f i c) :
theorem nnreal.tsum_le_of_sum_range_le {f : ℝ≥0} {c : ℝ≥0} (h : ∀ (n : ), ∑ (i : ) in finset.range n, f i c) :
∑' (n : ), f n c
theorem nnreal.tsum_comp_le_tsum_of_inj {α : Type u_1} {β : Type u_2} {f : α → ℝ≥0} (hf : summable f) {i : β → α} (hi : function.injective i) :
∑' (x : β), f (i x) ∑' (x : α), f x
theorem nnreal.summable_sigma {α : Type u_1} {β : α → Type u_2} {f : (Σ (x : α), β x)ℝ≥0} :
summable f (∀ (x : α), summable (λ (y : β x), f x, y⟩)) summable (λ (x : α), ∑' (y : β x), f x, y⟩)
theorem nnreal.indicator_summable {α : Type u_1} {f : α → ℝ≥0} (hf : summable f) (s : set α) :
theorem nnreal.tsum_indicator_ne_zero {α : Type u_1} {f : α → ℝ≥0} (hf : summable f) {s : set α} (h : ∃ (a : α) (H : a s), f a 0) :
∑' (x : α), s.indicator f x 0
theorem nnreal.tendsto_sum_nat_add (f : ℝ≥0) :
filter.tendsto (λ (i : ), ∑' (k : ), f (k + i)) filter.at_top (𝓝 0)

For f : ℕ → ℝ≥0, then ∑' k, f (k + i) tends to zero. This does not require a summability assumption on f, as otherwise all sums are zero.

theorem nnreal.has_sum_lt {α : Type u_1} {f g : α → ℝ≥0} {sf sg : ℝ≥0} {i : α} (h : ∀ (a : α), f a g a) (hi : f i < g i) (hf : has_sum f sf) (hg : has_sum g sg) :
sf < sg
theorem nnreal.has_sum_strict_mono {α : Type u_1} {f g : α → ℝ≥0} {sf sg : ℝ≥0} (hf : has_sum f sf) (hg : has_sum g sg) (h : f < g) :
sf < sg
theorem nnreal.tsum_lt_tsum {α : Type u_1} {f g : α → ℝ≥0} {i : α} (h : ∀ (a : α), f a g a) (hi : f i < g i) (hg : summable g) :
∑' (n : α), f n < ∑' (n : α), g n
theorem nnreal.tsum_strict_mono {α : Type u_1} {f g : α → ℝ≥0} (hg : summable g) (h : f < g) :
∑' (n : α), f n < ∑' (n : α), g n
theorem nnreal.tsum_pos {α : Type u_1} {g : α → ℝ≥0} (hg : summable g) (i : α) (hi : 0 < g i) :
0 < ∑' (b : α), g b
theorem ennreal.tsum_to_real_eq {α : Type u_1} {f : α → ℝ≥0∞} (hf : ∀ (a : α), f a ) :
(∑' (a : α), f a).to_real = ∑' (a : α), (f a).to_real
theorem ennreal.tendsto_sum_nat_add (f : ℝ≥0∞) (hf : ∑' (i : ), f i ) :
filter.tendsto (λ (i : ), ∑' (k : ), f (k + i)) filter.at_top (𝓝 0)
theorem tsum_comp_le_tsum_of_inj {α : Type u_1} {β : Type u_2} {f : α → } (hf : summable f) (hn : ∀ (a : α), 0 f a) {i : β → α} (hi : function.injective i) :
tsum (f i) tsum f
theorem summable_of_nonneg_of_le {β : Type u_2} {f g : β → } (hg : ∀ (b : β), 0 g b) (hgf : ∀ (b : β), g b f b) (hf : summable f) :

Comparison test of convergence of series of non-negative real numbers.

theorem has_sum_iff_tendsto_nat_of_nonneg {f : } (hf : ∀ (i : ), 0 f i) (r : ) :
has_sum f r filter.tendsto (λ (n : ), ∑ (i : ) in finset.range n, f i) filter.at_top (𝓝 r)

A series of non-negative real numbers converges to r in the sense of has_sum if and only if the sequence of partial sum converges to r.

theorem ennreal.of_real_tsum_of_nonneg {α : Type u_1} {f : α → } (hf_nonneg : ∀ (n : α), 0 f n) (hf : summable f) :
ennreal.of_real (∑' (n : α), f n) = ∑' (n : α), ennreal.of_real (f n)
theorem not_summable_iff_tendsto_nat_at_top_of_nonneg {f : } (hf : ∀ (n : ), 0 f n) :
theorem summable_iff_not_tendsto_nat_at_top_of_nonneg {f : } (hf : ∀ (n : ), 0 f n) :
theorem summable_sigma_of_nonneg {α : Type u_1} {β : α → Type u_2} {f : (Σ (x : α), β x)} (hf : ∀ (x : Σ (x : α), β x), 0 f x) :
summable f (∀ (x : α), summable (λ (y : β x), f x, y⟩)) summable (λ (x : α), ∑' (y : β x), f x, y⟩)
theorem summable_of_sum_le {ι : Type u_1} {f : ι → } {c : } (hf : 0 f) (h : ∀ (u : finset ι), ∑ (x : ι) in u, f x c) :
theorem summable_of_sum_range_le {f : } {c : } (hf : ∀ (n : ), 0 f n) (h : ∀ (n : ), ∑ (i : ) in finset.range n, f i c) :
theorem tsum_le_of_sum_range_le {f : } {c : } (hf : ∀ (n : ), 0 f n) (h : ∀ (n : ), ∑ (i : ) in finset.range n, f i c) :
∑' (n : ), f n c
theorem tsum_lt_tsum_of_nonneg {i : } {f g : } (h0 : ∀ (b : ), 0 f b) (h : ∀ (b : ), f b g b) (hi : f i < g i) (hg : summable g) :
∑' (n : ), f n < ∑' (n : ), g n

If a sequence f with non-negative terms is dominated by a sequence g with summable series and at least one term of f is strictly smaller than the corresponding term in g, then the series of f is strictly smaller than the series of g.

theorem edist_ne_top_of_mem_ball {β : Type u_2} [emetric_space β] {a : β} {r : ℝ≥0∞} (x y : (emetric.ball a r)) :

In an emetric ball, the distance between points is everywhere finite

def metric_space_emetric_ball {β : Type u_2} [emetric_space β] (a : β) (r : ℝ≥0∞) :

Each ball in an extended metric space gives us a metric space, as the edist is everywhere finite.

Equations
theorem nhds_eq_nhds_emetric_ball {β : Type u_2} [emetric_space β] (a x : β) (r : ℝ≥0∞) (h : x emetric.ball a r) :
theorem tendsto_iff_edist_tendsto_0 {α : Type u_1} {β : Type u_2} [pseudo_emetric_space α] {l : filter β} {f : β → α} {y : α} :
filter.tendsto f l (𝓝 y) filter.tendsto (λ (x : β), edist (f x) y) l (𝓝 0)
theorem emetric.cauchy_seq_iff_le_tendsto_0 {α : Type u_1} {β : Type u_2} [pseudo_emetric_space α] [nonempty β] [semilattice_sup β] {s : β → α} :
cauchy_seq s ∃ (b : β → ℝ≥0∞), (∀ (n m N : β), N nN medist (s n) (s m) b N) filter.tendsto b filter.at_top (𝓝 0)

Yet another metric characterization of Cauchy sequences on integers. This one is often the most efficient.

theorem continuous_of_le_add_edist {α : Type u_1} [pseudo_emetric_space α] {f : α → ℝ≥0∞} (C : ℝ≥0∞) (hC : C ) (h : ∀ (x y : α), f x f y + C * edist x y) :
theorem continuous_edist {α : Type u_1} [pseudo_emetric_space α] :
continuous (λ (p : α × α), edist p.fst p.snd)
theorem continuous.edist {α : Type u_1} {β : Type u_2} [pseudo_emetric_space α] [topological_space β] {f g : β → α} (hf : continuous f) (hg : continuous g) :
continuous (λ (b : β), edist (f b) (g b))
theorem filter.tendsto.edist {α : Type u_1} {β : Type u_2} [pseudo_emetric_space α] {f g : β → α} {x : filter β} {a b : α} (hf : filter.tendsto f x (𝓝 a)) (hg : filter.tendsto g x (𝓝 b)) :
filter.tendsto (λ (x : β), edist (f x) (g x)) x (𝓝 (edist a b))
theorem cauchy_seq_of_edist_le_of_tsum_ne_top {α : Type u_1} [pseudo_emetric_space α] {f : → α} (d : ℝ≥0∞) (hf : ∀ (n : ), edist (f n) (f n.succ) d n) (hd : tsum d ) :
theorem emetric.is_closed_ball {α : Type u_1} [pseudo_emetric_space α] {a : α} {r : ℝ≥0∞} :
@[simp]
theorem emetric.diam_closure {α : Type u_1} [pseudo_emetric_space α] (s : set α) :
@[simp]
theorem metric.diam_closure {α : Type u_1} [pseudo_metric_space α] (s : set α) :

For a bounded set s : set, its emetric.diam is equal to Sup s - Inf s reinterpreted as ℝ≥0∞.

theorem real.diam_eq {s : set } (h : metric.bounded s) :

For a bounded set s : set, its metric.diam is equal to Sup s - Inf s.

@[simp]
theorem real.ediam_Ioo (a b : ) :
@[simp]
theorem real.ediam_Icc (a b : ) :
@[simp]
theorem real.ediam_Ico (a b : ) :
@[simp]
theorem real.ediam_Ioc (a b : ) :
theorem edist_le_tsum_of_edist_le_of_tendsto {α : Type u_1} [pseudo_emetric_space α] {f : → α} (d : ℝ≥0∞) (hf : ∀ (n : ), edist (f n) (f n.succ) d n) {a : α} (ha : filter.tendsto f filter.at_top (𝓝 a)) (n : ) :
edist (f n) a ∑' (m : ), d (n + m)

If edist (f n) (f (n+1)) is bounded above by a function d : ℕ → ℝ≥0∞, then the distance from f n to the limit is bounded by ∑'_{k=n}^∞ d k.

theorem edist_le_tsum_of_edist_le_of_tendsto₀ {α : Type u_1} [pseudo_emetric_space α] {f : → α} (d : ℝ≥0∞) (hf : ∀ (n : ), edist (f n) (f n.succ) d n) {a : α} (ha : filter.tendsto f filter.at_top (𝓝 a)) :
edist (f 0) a ∑' (m : ), d m

If edist (f n) (f (n+1)) is bounded above by a function d : ℕ → ℝ≥0∞, then the distance from f 0 to the limit is bounded by ∑'_{k=0}^∞ d k.