mathlib documentation

topology.algebra.infinite_sum

Infinite sum over a topological monoid

This sum is known as unconditionally convergent, as it sums to the same value under all possible permutations. For Euclidean spaces (finite dimensional Banach spaces) this is equivalent to absolute convergence.

Note: There are summable sequences which are not unconditionally convergent! The other way holds generally, see has_sum.tendsto_sum_nat.

References

def has_sum {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] :
(β → α)α → Prop

Infinite sum on a topological monoid The at_top filter on finset α is the limit of all finite sets towards the entire type. So we sum up bigger and bigger sets. This sum operation is still invariant under reordering, and a absolute sum operator.

This is based on Mario Carneiro's infinite sum in Metamath.

For the definition or many statements, α does not need to be a topological monoid. We only add this assumption later, for the lemmas where it is relevant.

Equations
def summable {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] :
(β → α) → Prop

summable f means that f has some (infinite) sum. Use tsum to get the value.

Equations
def tsum {α : Type u_1} [add_comm_monoid α] [topological_space α] {β : Type u_2} :
(β → α) → α

∑' i, f i is the sum of f it exists, or 0 otherwise

Equations
theorem summable.has_sum {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} :
summable fhas_sum f (∑' (b : β), f b)

theorem has_sum.summable {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} :
has_sum f asummable f

theorem has_sum_zero {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] :
has_sum (λ (b : β), 0) 0

Constant zero function has sum 0

theorem summable_zero {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] :
summable (λ (b : β), 0)

theorem tsum_eq_zero_of_not_summable {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} :
¬summable f(∑' (b : β), f b) = 0

theorem has_sum.has_sum_of_sum_eq {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} {g : γ → α} :
(∀ (u : finset γ), ∃ (v : finset β), ∀ (v' : finset β), v v'(∃ (u' : finset γ), u u' ∑ (x : γ) in u', g x = ∑ (b : β) in v', f b))has_sum g ahas_sum f a

theorem has_sum_iff_has_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} {g : γ → α} :
(∀ (u : finset γ), ∃ (v : finset β), ∀ (v' : finset β), v v'(∃ (u' : finset γ), u u' ∑ (x : γ) in u', g x = ∑ (b : β) in v', f b))(∀ (v : finset β), ∃ (u : finset γ), ∀ (u' : finset γ), u u'(∃ (v' : finset β), v v' ∑ (b : β) in v', f b = ∑ (x : γ) in u', g x))(has_sum f a has_sum g a)

theorem function.injective.has_sum_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} {g : γ → β} :
function.injective g(∀ (x : β), x set.range gf x = 0)(has_sum (f g) a has_sum f a)

theorem function.injective.summable_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {g : γ → β} :
function.injective g(∀ (x : β), x set.range gf x = 0)(summable (f g) summable f)

theorem has_sum_subtype_iff_of_support_subset {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} {s : set β} :

theorem has_sum_subtype_iff_indicator {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} {s : set β} :

@[simp]
theorem has_sum_subtype_support {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} :

theorem has_sum_fintype {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [fintype β] (f : β → α) :
has_sum f (∑ (b : β), f b)

theorem finset.has_sum {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] (s : finset β) (f : β → α) :
has_sum (f coe) (∑ (b : β) in s, f b)

theorem finset.summable {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] (s : finset β) (f : β → α) :

theorem set.finite.summable {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {s : set β} (hs : s.finite) (f : β → α) :

theorem has_sum_sum_of_ne_finset_zero {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {s : finset β} :
(∀ (b : β), b sf b = 0)has_sum f (∑ (b : β) in s, f b)

If a function f vanishes outside of a finite set s, then it has_sum ∑ b in s, f b.

theorem summable_of_ne_finset_zero {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {s : finset β} :
(∀ (b : β), b sf b = 0)summable f

theorem has_sum_single {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} (b : β) :
(∀ (b' : β), b' bf b' = 0)has_sum f (f b)

theorem has_sum_ite_eq {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] (b : β) (a : α) :
has_sum (λ (b' : β), ite (b' = b) a 0) a

theorem equiv.has_sum_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} (e : γ β) :

theorem equiv.summable_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} (e : γ β) :

theorem summable.prod_symm {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β × γ → α} :
summable fsummable (λ (p : γ × β), f p.swap)

theorem equiv.has_sum_iff_of_support {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} {g : γ → α} (e : (function.support f) (function.support g)) :
(∀ (x : (function.support f)), g (e x) = f x)(has_sum f a has_sum g a)

theorem has_sum_iff_has_sum_of_ne_zero_bij {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} {g : γ → α} (i : (function.support g) → β) :
(∀ ⦃x y : (function.support g)⦄, i x = i yx = y)function.support f set.range i(∀ (x : (function.support g)), f (i x) = g x)(has_sum f a has_sum g a)

theorem equiv.summable_iff_of_support {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {g : γ → α} (e : (function.support f) (function.support g)) :
(∀ (x : (function.support f)), g (e x) = f x)(summable f summable g)

theorem has_sum.map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} {a : α} [add_comm_monoid γ] [topological_space γ] (hf : has_sum f a) (g : α →+ γ) :
continuous ghas_sum (g f) (g a)

theorem summable.map {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {f : β → α} [add_comm_monoid γ] [topological_space γ] (hf : summable f) (g : α →+ γ) :

theorem has_sum.tendsto_sum_nat {α : Type u_1} [add_comm_monoid α] [topological_space α] {a : α} {f : → α} :
has_sum f afilter.tendsto (λ (n : ), ∑ (i : ) in finset.range n, f i) filter.at_top (𝓝 a)

If f : ℕ → α has sum a, then the partial sums ∑_{i=0}^{n-1} f i converge to a.

theorem has_sum.unique {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {a₁ a₂ : α} [t2_space α] :
has_sum f a₁has_sum f a₂a₁ = a₂

theorem summable.has_sum_iff_tendsto_nat {α : Type u_1} [add_comm_monoid α] [topological_space α] [t2_space α] {f : → α} {a : α} :
summable f(has_sum f a filter.tendsto (λ (n : ), ∑ (i : ) in finset.range n, f i) filter.at_top (𝓝 a))

theorem equiv.summable_iff_of_has_sum_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] {α' : Type u_4} [add_comm_monoid α'] [topological_space α'] (e : α' α) {f : β → α} {g : γ → α'} :
(∀ {a : α'}, has_sum f (e a) has_sum g a)(summable f summable g)

theorem has_sum.add {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f g : β → α} {a b : α} [has_continuous_add α] :
has_sum f ahas_sum g bhas_sum (λ (b : β), f b + g b) (a + b)

theorem summable.add {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f g : β → α} [has_continuous_add α] :
summable fsummable gsummable (λ (b : β), f b + g b)

theorem has_sum_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [has_continuous_add α] {f : γ → β → α} {a : γ → α} {s : finset γ} :
(∀ (i : γ), i shas_sum (f i) (a i))has_sum (λ (b : β), ∑ (i : γ) in s, f i b) (∑ (i : γ) in s, a i)

theorem summable_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [has_continuous_add α] {f : γ → β → α} {s : finset γ} :
(∀ (i : γ), i ssummable (f i))summable (λ (b : β), ∑ (i : γ) in s, f i b)

theorem has_sum.add_compl {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {a b : α} [has_continuous_add α] {s : set β} :
has_sum (f coe) ahas_sum (f coe) bhas_sum f (a + b)

theorem summable.add_compl {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} [has_continuous_add α] {s : set β} :
summable (f coe)summable (f coe)summable f

theorem has_sum.compl_add {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} {a b : α} [has_continuous_add α] {s : set β} :
has_sum (f coe) ahas_sum (f coe) bhas_sum f (a + b)

theorem summable.compl_add {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] {f : β → α} [has_continuous_add α] {s : set β} :
summable (f coe)summable (f coe)summable f

theorem has_sum.sigma {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [has_continuous_add α] [regular_space α] {γ : β → Type u_3} {f : (Σ (b : β), γ b) → α} {g : β → α} {a : α} :
has_sum f a(∀ (b : β), has_sum (λ (c : γ b), f b, c⟩) (g b))has_sum g a

theorem has_sum.prod_fiberwise {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [has_continuous_add α] [regular_space α] {f : β × γ → α} {g : β → α} {a : α} :
has_sum f a(∀ (b : β), has_sum (λ (c : γ), f (b, c)) (g b))has_sum g a

If a series f on β × γ has sum a and for each b the restriction of f to {b} × γ has sum g b, then the series g has sum a.

theorem summable.sigma' {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [has_continuous_add α] [regular_space α] {γ : β → Type u_3} {f : (Σ (b : β), γ b) → α} :
summable f(∀ (b : β), summable (λ (c : γ b), f b, c⟩))summable (λ (b : β), ∑' (c : γ b), f b, c⟩)

theorem has_sum.sigma_of_has_sum {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [has_continuous_add α] [regular_space α] {γ : β → Type u_3} {f : (Σ (b : β), γ b) → α} {g : β → α} {a : α} :
has_sum g a(∀ (b : β), has_sum (λ (c : γ b), f b, c⟩) (g b))summable fhas_sum f a

theorem has_sum.tsum_eq {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] {f : β → α} {a : α} :
has_sum f a(∑' (b : β), f b) = a

theorem summable.has_sum_iff {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] {f : β → α} {a : α} :
summable f(has_sum f a (∑' (b : β), f b) = a)

@[simp]
theorem tsum_zero {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] :
(∑' (b : β), 0) = 0

theorem tsum_eq_sum {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] {f : β → α} {s : finset β} :
(∀ (b : β), b sf b = 0)(∑' (b : β), f b) = ∑ (b : β) in s, f b

theorem tsum_fintype {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] [fintype β] (f : β → α) :
(∑' (b : β), f b) = ∑ (b : β), f b

@[simp]
theorem finset.tsum_subtype {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] (s : finset β) (f : β → α) :
(∑' (x : {x // x s}), f x) = ∑ (x : β) in s, f x

theorem tsum_eq_single {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] {f : β → α} (b : β) :
(∀ (b' : β), b' bf b' = 0)(∑' (b : β), f b) = f b

@[simp]
theorem tsum_ite_eq {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] (b : β) (a : α) :
(∑' (b' : β), ite (b' = b) a 0) = a

theorem equiv.tsum_eq_tsum_of_has_sum_iff_has_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] {α' : Type u_4} [add_comm_monoid α'] [topological_space α'] (e : α' α) (h0 : e 0 = 0) {f : β → α} {g : γ → α'} :
(∀ {a : α'}, has_sum f (e a) has_sum g a)(∑' (b : β), f b) = e (∑' (c : γ), g c)

theorem tsum_eq_tsum_of_has_sum_iff_has_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] {f : β → α} {g : γ → α} :
(∀ {a : α}, has_sum f a has_sum g a)((∑' (b : β), f b) = ∑' (c : γ), g c)

theorem equiv.tsum_eq {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] (j : γ β) (f : β → α) :
(∑' (c : γ), f (j c)) = ∑' (b : β), f b

theorem equiv.tsum_eq_tsum_of_support {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] {f : β → α} {g : γ → α} (e : (function.support f) (function.support g)) :
(∀ (x : (function.support f)), g (e x) = f x)((∑' (x : β), f x) = ∑' (y : γ), g y)

theorem tsum_eq_tsum_of_ne_zero_bij {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] {f : β → α} {g : γ → α} (i : (function.support g) → β) :
(∀ ⦃x y : (function.support g)⦄, i x = i yx = y)function.support f set.range i(∀ (x : (function.support g)), f (i x) = g x)((∑' (x : β), f x) = ∑' (y : γ), g y)

theorem tsum_subtype {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] (s : set β) (f : β → α) :
(∑' (x : s), f x) = ∑' (x : β), s.indicator f x

theorem tsum_add {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] {f g : β → α} [has_continuous_add α] :
summable fsummable g((∑' (b : β), f b + g b) = (∑' (b : β), f b) + ∑' (b : β), g b)

theorem tsum_sum {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] [has_continuous_add α] {f : γ → β → α} {s : finset γ} :
(∀ (i : γ), i ssummable (f i))((∑' (b : β), ∑ (i : γ) in s, f i b) = ∑ (i : γ) in s, ∑' (b : β), f i b)

theorem tsum_sigma' {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] [has_continuous_add α] [regular_space α] {γ : β → Type u_3} {f : (Σ (b : β), γ b) → α} :
(∀ (b : β), summable (λ (c : γ b), f b, c⟩))summable f((∑' (p : Σ (b : β), γ b), f p) = ∑' (b : β) (c : γ b), f b, c⟩)

theorem tsum_prod' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] [has_continuous_add α] [regular_space α] {f : β × γ → α} :
summable f(∀ (b : β), summable (λ (c : γ), f (b, c)))((∑' (p : β × γ), f p) = ∑' (b : β) (c : γ), f (b, c))

theorem tsum_comm' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] [has_continuous_add α] [regular_space α] {f : β → γ → α} :
summable (function.uncurry f)(∀ (b : β), summable (f b))(∀ (c : γ), summable (λ (b : β), f b c))((∑' (c : γ) (b : β), f b c) = ∑' (b : β) (c : γ), f b c)

theorem tsum_supr_decode2 {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] [encodable γ] [complete_lattice β] (m : β → α) (m0 : m = 0) (s : γ → β) :
(∑' (i : ), m (⨆ (b : γ) (H : b encodable.decode2 γ i), s b)) = ∑' (b : γ), m (s b)

You can compute a sum over an encodably type by summing over the natural numbers and taking a supremum. This is useful for outer measures.

theorem tsum_Union_decode2 {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] [encodable γ] (m : set β → α) (m0 : m = 0) (s : γ → set β) :
(∑' (i : ), m (⋃ (b : γ) (H : b encodable.decode2 γ i), s b)) = ∑' (b : γ), m (s b)

tsum_supr_decode2 specialized to the complete lattice of sets.

Some properties about measure-like functions. These could also be functions defined on complete sublattices of sets, with the property that they are countably sub-additive. R will probably be instantiated with (≤) in all applications.

theorem rel_supr_tsum {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_monoid α] [topological_space α] [t2_space α] [encodable γ] [complete_lattice β] (m : β → α) (m0 : m = 0) (R : α → α → Prop) (m_supr : ∀ (s : → β), R (m (⨆ (i : ), s i)) (∑' (i : ), m (s i))) (s : γ → β) :
R (m (⨆ (b : γ), s b)) (∑' (b : γ), m (s b))

If a function is countably sub-additive then it is sub-additive on encodable types

theorem rel_supr_sum {α : Type u_1} {β : Type u_2} {δ : Type u_4} [add_comm_monoid α] [topological_space α] [t2_space α] [complete_lattice β] (m : β → α) (m0 : m = 0) (R : α → α → Prop) (m_supr : ∀ (s : → β), R (m (⨆ (i : ), s i)) (∑' (i : ), m (s i))) (s : δ → β) (t : finset δ) :
R (m (⨆ (d : δ) (H : d t), s d)) (∑ (d : δ) in t, m (s d))

If a function is countably sub-additive then it is sub-additive on finite sets

theorem rel_sup_add {α : Type u_1} {β : Type u_2} [add_comm_monoid α] [topological_space α] [t2_space α] [complete_lattice β] (m : β → α) (m0 : m = 0) (R : α → α → Prop) (m_supr : ∀ (s : → β), R (m (⨆ (i : ), s i)) (∑' (i : ), m (s i))) (s₁ s₂ : β) :
R (m (s₁ s₂)) (m s₁ + m s₂)

If a function is countably sub-additive then it is binary sub-additive

theorem pi.has_sum {α : Type u_1} {ι : Type u_5} {π : α → Type u_6} [Π (x : α), add_comm_monoid («π» x)] [Π (x : α), topological_space («π» x)] {f : ι → Π (x : α), «π» x} {g : Π (x : α), «π» x} :
has_sum f g ∀ (x : α), has_sum (λ (i : ι), f i x) (g x)

theorem pi.summable {α : Type u_1} {ι : Type u_5} {π : α → Type u_6} [Π (x : α), add_comm_monoid («π» x)] [Π (x : α), topological_space («π» x)] {f : ι → Π (x : α), «π» x} :
summable f ∀ (x : α), summable (λ (i : ι), f i x)

theorem tsum_apply {α : Type u_1} {ι : Type u_5} {π : α → Type u_6} [Π (x : α), add_comm_monoid («π» x)] [Π (x : α), topological_space («π» x)] [∀ (x : α), t2_space («π» x)] {f : ι → Π (x : α), «π» x} {x : α} :
summable f((∑' (i : ι), f i) x = ∑' (i : ι), f i x)

theorem has_sum.neg {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} {a : α} :
has_sum f ahas_sum (λ (b : β), -f b) (-a)

theorem summable.neg {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} :
summable fsummable (λ (b : β), -f b)

theorem summable.of_neg {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} :
summable (λ (b : β), -f b)summable f

theorem summable_neg_iff {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} :
summable (λ (b : β), -f b) summable f

theorem has_sum.sub {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f g : β → α} {a₁ a₂ : α} :
has_sum f a₁has_sum g a₂has_sum (λ (b : β), f b - g b) (a₁ - a₂)

theorem summable.sub {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f g : β → α} :
summable fsummable gsummable (λ (b : β), f b - g b)

theorem has_sum.has_sum_compl_iff {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} {a₁ a₂ : α} {s : set β} :
has_sum (f coe) a₁(has_sum (f coe) a₂ has_sum f (a₁ + a₂))

theorem has_sum.has_sum_iff_compl {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} {a₁ a₂ : α} {s : set β} :
has_sum (f coe) a₁(has_sum f a₂ has_sum (f coe) (a₂ - a₁))

theorem summable.summable_compl_iff {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} {s : set β} :

theorem finset.has_sum_compl_iff {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} {a : α} (s : finset β) :
has_sum (λ (x : {x // x s}), f x) a has_sum f (a + ∑ (i : β) in s, f i)

theorem finset.has_sum_iff_compl {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} {a : α} (s : finset β) :
has_sum f a has_sum (λ (x : {x // x s}), f x) (a - ∑ (i : β) in s, f i)

theorem finset.summable_compl_iff {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} (s : finset β) :
summable (λ (x : {x // x s}), f x) summable f

theorem set.finite.summable_compl_iff {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} {s : set β} :

theorem tsum_neg {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} [t2_space α] :
summable f((∑' (b : β), -f b) = -∑' (b : β), f b)

theorem tsum_sub {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f g : β → α} [t2_space α] :
summable fsummable g((∑' (b : β), f b - g b) = (∑' (b : β), f b) - ∑' (b : β), g b)

theorem tsum_add_tsum_compl {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} [t2_space α] {s : set β} :
summable (f coe)summable (f coe)(((∑' (x : s), f x) + ∑' (x : s), f x) = ∑' (x : β), f x)

theorem sum_add_tsum_compl {α : Type u_1} {β : Type u_2} [add_comm_group α] [topological_space α] [topological_add_group α] {f : β → α} [t2_space α] {s : finset β} :
summable f((∑ (x : β) in s, f x + ∑' (x : (s)), f x) = ∑' (x : β), f x)

Sums on subtypes

If s is a finset of α, we show that the summability of f in the whole space and on the subtype univ - s are equivalent, and relate their sums. For a function defined on , we deduce the formula (∑ i in range k, f i) + (∑' i, f (i + k)) = (∑' i, f i), in sum_add_tsum_nat_add.

theorem has_sum_nat_add_iff {α : Type u_1} [add_comm_group α] [topological_space α] [topological_add_group α] {f : → α} (k : ) {a : α} :
has_sum (λ (n : ), f (n + k)) a has_sum f (a + ∑ (i : ) in finset.range k, f i)

theorem summable_nat_add_iff {α : Type u_1} [add_comm_group α] [topological_space α] [topological_add_group α] {f : → α} (k : ) :
summable (λ (n : ), f (n + k)) summable f

theorem has_sum_nat_add_iff' {α : Type u_1} [add_comm_group α] [topological_space α] [topological_add_group α] {f : → α} (k : ) {a : α} :
has_sum (λ (n : ), f (n + k)) (a - ∑ (i : ) in finset.range k, f i) has_sum f a

theorem sum_add_tsum_nat_add {α : Type u_1} [add_comm_group α] [topological_space α] [topological_add_group α] [t2_space α] {f : → α} (k : ) :
summable f((∑ (i : ) in finset.range k, f i + ∑' (i : ), f (i + k)) = ∑' (i : ), f i)

theorem tsum_eq_zero_add {α : Type u_1} [add_comm_group α] [topological_space α] [topological_add_group α] [t2_space α] {f : → α} :
summable f((∑' (b : ), f b) = f 0 + ∑' (b : ), f (b + 1))

theorem has_sum.mul_left {α : Type u_1} {β : Type u_2} [semiring α] [topological_space α] [topological_semiring α] {f : β → α} {a₁ : α} (a₂ : α) :
has_sum f a₁has_sum (λ (b : β), a₂ * f b) (a₂ * a₁)

theorem has_sum.mul_right {α : Type u_1} {β : Type u_2} [semiring α] [topological_space α] [topological_semiring α] {f : β → α} {a₁ : α} (a₂ : α) :
has_sum f a₁has_sum (λ (b : β), (f b) * a₂) (a₁ * a₂)

theorem summable.mul_left {α : Type u_1} {β : Type u_2} [semiring α] [topological_space α] [topological_semiring α] {f : β → α} (a : α) :
summable fsummable (λ (b : β), a * f b)

theorem summable.mul_right {α : Type u_1} {β : Type u_2} [semiring α] [topological_space α] [topological_semiring α] {f : β → α} (a : α) :
summable fsummable (λ (b : β), (f b) * a)

theorem tsum_mul_left {α : Type u_1} {β : Type u_2} [semiring α] [topological_space α] [topological_semiring α] {f : β → α} [t2_space α] (a : α) :
summable f((∑' (b : β), a * f b) = a * ∑' (b : β), f b)

theorem tsum_mul_right {α : Type u_1} {β : Type u_2} [semiring α] [topological_space α] [topological_semiring α] {f : β → α} [t2_space α] (a : α) :
summable f(∑' (b : β), (f b) * a) = (∑' (b : β), f b) * a

theorem has_sum_mul_left_iff {α : Type u_1} {β : Type u_2} [division_ring α] [topological_space α] [topological_semiring α] {f : β → α} {a₁ a₂ : α} :
a₂ 0(has_sum f a₁ has_sum (λ (b : β), a₂ * f b) (a₂ * a₁))

theorem has_sum_mul_right_iff {α : Type u_1} {β : Type u_2} [division_ring α] [topological_space α] [topological_semiring α] {f : β → α} {a₁ a₂ : α} :
a₂ 0(has_sum f a₁ has_sum (λ (b : β), (f b) * a₂) (a₁ * a₂))

theorem summable_mul_left_iff {α : Type u_1} {β : Type u_2} [division_ring α] [topological_space α] [topological_semiring α] {f : β → α} {a : α} :
a 0(summable f summable (λ (b : β), a * f b))

theorem summable_mul_right_iff {α : Type u_1} {β : Type u_2} [division_ring α] [topological_space α] [topological_semiring α] {f : β → α} {a : α} :
a 0(summable f summable (λ (b : β), (f b) * a))

theorem has_sum_le {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f g : β → α} {a₁ a₂ : α} :
(∀ (b : β), f b g b)has_sum f a₁has_sum g a₂a₁ a₂

theorem has_sum_le_inj {α : Type u_1} {β : Type u_2} {γ : Type u_3} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} {a₁ a₂ : α} {g : γ → α} (i : β → γ) :
function.injective i(∀ (c : γ), c set.range i0 g c)(∀ (b : β), f b g (i b))has_sum f a₁has_sum g a₂a₁ a₂

theorem tsum_le_tsum_of_inj {α : Type u_1} {β : Type u_2} {γ : Type u_3} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} {g : γ → α} (i : β → γ) :
function.injective i(∀ (c : γ), c set.range i0 g c)(∀ (b : β), f b g (i b))summable fsummable gtsum f tsum g

theorem sum_le_has_sum {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {a : α} {f : β → α} (s : finset β) :
(∀ (b : β), b s0 f b)has_sum f a∑ (b : β) in s, f b a

theorem le_has_sum {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} {a : α} (hf : has_sum f a) (b : β) :
(∀ (b' : β), b' b0 f b')f b a

theorem sum_le_tsum {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} (s : finset β) :
(∀ (b : β), b s0 f b)summable f∑ (b : β) in s, f b tsum f

theorem le_tsum {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} (hf : summable f) (b : β) :
(∀ (b' : β), b' b0 f b')(f b ∑' (b : β), f b)

theorem tsum_le_tsum {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f g : β → α} :
(∀ (b : β), f b g b)summable fsummable g((∑' (b : β), f b) ∑' (b : β), g b)

theorem tsum_nonneg {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {g : β → α} :
(∀ (b : β), 0 g b)(0 ∑' (b : β), g b)

theorem tsum_nonpos {α : Type u_1} {β : Type u_2} [ordered_add_comm_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} :
(∀ (b : β), f b 0)(∑' (b : β), f b) 0

theorem le_has_sum' {α : Type u_1} {β : Type u_2} [canonically_ordered_add_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} {a : α} (hf : has_sum f a) (b : β) :
f b a

theorem le_tsum' {α : Type u_1} {β : Type u_2} [canonically_ordered_add_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} (hf : summable f) (b : β) :
f b ∑' (b : β), f b

theorem has_sum_zero_iff {α : Type u_1} {β : Type u_2} [canonically_ordered_add_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} :
has_sum f 0 ∀ (x : β), f x = 0

theorem tsum_eq_zero_iff {α : Type u_1} {β : Type u_2} [canonically_ordered_add_monoid α] [topological_space α] [order_closed_topology α] {f : β → α} :
summable f((∑' (i : β), f i) = 0 ∀ (x : β), f x = 0)

theorem summable_iff_cauchy_seq_finset {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [complete_space α] {f : β → α} :
summable f cauchy_seq (λ (s : finset β), ∑ (b : β) in s, f b)

theorem cauchy_seq_finset_iff_vanishing {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] {f : β → α} :
cauchy_seq (λ (s : finset β), ∑ (b : β) in s, f b) ∀ (e : set α), e 𝓝 0(∃ (s : finset β), ∀ (t : finset β), disjoint t s∑ (b : β) in t, f b e)

theorem summable_iff_vanishing {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] {f : β → α} [complete_space α] :
summable f ∀ (e : set α), e 𝓝 0(∃ (s : finset β), ∀ (t : finset β), disjoint t s∑ (b : β) in t, f b e)

theorem summable.summable_of_eq_zero_or_self {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] {f g : β → α} [complete_space α] :
summable f(∀ (b : β), g b = 0 g b = f b)summable g

theorem summable.indicator {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] {f : β → α} [complete_space α] (hf : summable f) (s : set β) :

theorem summable.comp_injective {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_group α] [uniform_space α] [uniform_add_group α] {f : β → α} [complete_space α] {i : γ → β} :

theorem summable.subtype {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] {f : β → α} [complete_space α] (hf : summable f) (s : set β) :

theorem summable_subtype_and_compl {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] {f : β → α} [complete_space α] {s : set β} :
summable (λ (x : s), f x) summable (λ (x : s), f x) summable f

theorem summable.sigma_factor {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] [complete_space α] {γ : β → Type u_3} {f : (Σ (b : β), γ b) → α} (ha : summable f) (b : β) :
summable (λ (c : γ b), f b, c⟩)

theorem summable.sigma {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] [complete_space α] [regular_space α] {γ : β → Type u_3} {f : (Σ (b : β), γ b) → α} :
summable fsummable (λ (b : β), ∑' (c : γ b), f b, c⟩)

theorem summable.prod_factor {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_group α] [uniform_space α] [uniform_add_group α] [complete_space α] {f : β × γ → α} (h : summable f) (b : β) :
summable (λ (c : γ), f (b, c))

theorem tsum_sigma {α : Type u_1} {β : Type u_2} [add_comm_group α] [uniform_space α] [uniform_add_group α] [complete_space α] [regular_space α] {γ : β → Type u_3} {f : (Σ (b : β), γ b) → α} :
summable f((∑' (p : Σ (b : β), γ b), f p) = ∑' (b : β) (c : γ b), f b, c⟩)

theorem tsum_prod {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_group α] [uniform_space α] [uniform_add_group α] [complete_space α] [regular_space α] {f : β × γ → α} :
summable f((∑' (p : β × γ), f p) = ∑' (b : β) (c : γ), f (b, c))

theorem tsum_comm {α : Type u_1} {β : Type u_2} {γ : Type u_3} [add_comm_group α] [uniform_space α] [uniform_add_group α] [complete_space α] [regular_space α] {f : β → γ → α} :
summable (function.uncurry f)((∑' (c : γ) (b : β), f b c) = ∑' (b : β) (c : γ), f b c)

theorem summable.vanishing {α : Type u_1} {G : Type u_5} [topological_space G] [add_comm_group G] [topological_add_group G] {f : α → G} (hf : summable f) ⦃e : set G⦄ :
e 𝓝 0(∃ (s : finset α), ∀ (t : finset α), disjoint t s∑ (k : α) in t, f k e)

theorem summable.tendsto_cofinite_zero {α : Type u_1} {G : Type u_5} [topological_space G] [add_comm_group G] [topological_add_group G] {f : α → G} :

Series divergence test: if f is a convergent series, then f x tends to zero along cofinite.

theorem summable_abs_iff {α : Type u_1} {β : Type u_2} [decidable_linear_ordered_add_comm_group β] [uniform_space β] [uniform_add_group β] [complete_space β] {f : α → β} :
summable (λ (x : α), abs (f x)) summable f

theorem cauchy_seq_of_edist_le_of_summable {α : Type u_1} [emetric_space α] {f : → α} (d : ℝ≥0) :
(∀ (n : ), edist (f n) (f n.succ) (d n))summable dcauchy_seq f

If the extended distance between consequent points of a sequence is estimated by a summable series of nnreals, then the original sequence is a Cauchy sequence.

theorem cauchy_seq_of_dist_le_of_summable {α : Type u_1} [metric_space α] {f : → α} (d : ) :
(∀ (n : ), dist (f n) (f n.succ) d n)summable dcauchy_seq f

If the distance between consequent points of a sequence is estimated by a summable series, then the original sequence is a Cauchy sequence.

theorem cauchy_seq_of_summable_dist {α : Type u_1} [metric_space α] {f : → α} :
summable (λ (n : ), dist (f n) (f n.succ))cauchy_seq f

theorem dist_le_tsum_of_dist_le_of_tendsto {α : Type u_1} [metric_space α] {f : → α} (d : ) (hf : ∀ (n : ), dist (f n) (f n.succ) d n) (hd : summable d) {a : α} (ha : filter.tendsto f filter.at_top (𝓝 a)) (n : ) :
dist (f n) a ∑' (m : ), d (n + m)

theorem dist_le_tsum_of_dist_le_of_tendsto₀ {α : Type u_1} [metric_space α] {f : → α} (d : ) (hf : ∀ (n : ), dist (f n) (f n.succ) d n) (hd : summable d) {a : α} :

theorem dist_le_tsum_dist_of_tendsto {α : Type u_1} [metric_space α] {f : → α} (h : summable (λ (n : ), dist (f n) (f n.succ))) {a : α} (ha : filter.tendsto f filter.at_top (𝓝 a)) (n : ) :
dist (f n) a ∑' (m : ), dist (f (n + m)) (f (n + m).succ)

theorem dist_le_tsum_dist_of_tendsto₀ {α : Type u_1} [metric_space α] {f : → α} (h : summable (λ (n : ), dist (f n) (f n.succ))) {a : α} :
filter.tendsto f filter.at_top (𝓝 a)(dist (f 0) a ∑' (n : ), dist (f n) (f n.succ))