File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

full_name: tsum_le_of_sum_range_le
code: @[to_additive]
theorem tprod_le_of_prod_range_le (hf : Multipliable f) (h : ∀ n, ∏ i ∈ range n, f i ≤ c) :
    ∏' n, f n ≤ c 
goal: ∑' (n : ℕ), f n ≤ c

full_name: tprod_le_of_prod_range_le
code: @[to_additive]
theorem tprod_le_of_prod_range_le (hf : Multipliable f) (h : ∀ n, ∏ i ∈ range n, f i ≤ c) :
    ∏' n, f n ≤ c 
goal: ∏' (n : ℕ), f n ≤ c

full_name: hasSum_le
code: @[to_additive]
theorem hasProd_le (h : ∀ i, f i ≤ g i) (hf : HasProd f a₁) (hg : HasProd g a₂) : a₁ ≤ a₂ 
goal: a₁ ≤ a₂

full_name: hasProd_le
code: @[to_additive]
theorem hasProd_le (h : ∀ i, f i ≤ g i) (hf : HasProd f a₁) (hg : HasProd g a₂) : a₁ ≤ a₂ 
goal: a₁ ≤ a₂

full_name: hasSum_mono
code: @[to_additive (attr := mono)]
theorem hasProd_mono (hf : HasProd f a₁) (hg : HasProd g a₂) (h : f ≤ g) : a₁ ≤ a₂ 
goal: a₁ ≤ a₂

full_name: hasProd_mono
code: @[to_additive (attr := mono)]
theorem hasProd_mono (hf : HasProd f a₁) (hg : HasProd g a₂) (h : f ≤ g) : a₁ ≤ a₂ 
goal: a₁ ≤ a₂

full_name: hasSum_le_of_sum_le
code: @[to_additive]
theorem hasProd_le_of_prod_le (hf : HasProd f a) (h : ∀ s, ∏ i ∈ s, f i ≤ a₂) : a ≤ a₂ 
goal: a ≤ a₂

full_name: hasProd_le_of_prod_le
code: @[to_additive]
theorem hasProd_le_of_prod_le (hf : HasProd f a) (h : ∀ s, ∏ i ∈ s, f i ≤ a₂) : a ≤ a₂ 
goal: a ≤ a₂

full_name: le_hasProd_of_le_prod
code: @[to_additive]
theorem le_hasProd_of_le_prod (hf : HasProd f a) (h : ∀ s, a₂ ≤ ∏ i ∈ s, f i) : a₂ ≤ a 
goal: a₂ ≤ a

full_name: le_hasSum_of_le_sum
code: @[to_additive]
theorem le_hasProd_of_le_prod (hf : HasProd f a) (h : ∀ s, a₂ ≤ ∏ i ∈ s, f i) : a₂ ≤ a 
goal: a₂ ≤ a

full_name: hasProd_le_inj
code: @[to_additive]
theorem hasProd_le_inj {g : κ → α} (e : ι → κ) (he : Injective e)
    (hs : ∀ c, c ∉ Set.range e → 1 ≤ g c) (h : ∀ i, f i ≤ g (e i)) (hf : HasProd f a₁)
    (hg : HasProd g a₂) : a₁ ≤ a₂ 
goal: a₁ ≤ a₂

full_name: hasSum_le_inj
code: @[to_additive]
theorem hasProd_le_inj {g : κ → α} (e : ι → κ) (he : Injective e)
    (hs : ∀ c, c ∉ Set.range e → 1 ≤ g c) (h : ∀ i, f i ≤ g (e i)) (hf : HasProd f a₁)
    (hg : HasProd g a₂) : a₁ ≤ a₂ 
goal: a₁ ≤ a₂

full_name: tprod_le_tprod_of_inj
code: @[to_additive]
theorem tprod_le_tprod_of_inj {g : κ → α} (e : ι → κ) (he : Injective e)
    (hs : ∀ c, c ∉ Set.range e → 1 ≤ g c) (h : ∀ i, f i ≤ g (e i)) (hf : Multipliable f)
    (hg : Multipliable g) : tprod f ≤ tprod g 
goal: tprod f ≤ tprod g

full_name: tsum_le_tsum_of_inj
code: @[to_additive]
theorem tprod_le_tprod_of_inj {g : κ → α} (e : ι → κ) (he : Injective e)
    (hs : ∀ c, c ∉ Set.range e → 1 ≤ g c) (h : ∀ i, f i ≤ g (e i)) (hf : Multipliable f)
    (hg : Multipliable g) : tprod f ≤ tprod g 
goal: tsum f ≤ tsum g

full_name: tprod_subtype_le
code: @[to_additive]
lemma tprod_subtype_le {κ γ : Type*} [OrderedCommGroup γ] [UniformSpace γ] [UniformGroup γ]
    [OrderClosedTopology γ] [CompleteSpace γ] (f : κ → γ) (β : Set κ) (h : ∀ a : κ, 1 ≤ f a)
    (hf : Multipliable f) : (∏' (b : β), f b) ≤ (∏' (a : κ), f a) 
goal: ∏' (b : ↑β), f ↑b ≤ ∏' (a : κ), f a

full_name: tsum_subtype_le
code: @[to_additive]
lemma tprod_subtype_le {κ γ : Type*} [OrderedCommGroup γ] [UniformSpace γ] [UniformGroup γ]
    [OrderClosedTopology γ] [CompleteSpace γ] (f : κ → γ) (β : Set κ) (h : ∀ a : κ, 1 ≤ f a)
    (hf : Multipliable f) : (∏' (b : β), f b) ≤ (∏' (a : κ), f a) 
goal: ∑' (b : ↑β), f ↑b ≤ ∑' (a : κ), f a

full_name: sum_le_hasSum
code: @[to_additive]
theorem prod_le_hasProd (s : Finset ι) (hs : ∀ i, i ∉ s → 1 ≤ f i) (hf : HasProd f a) :
    ∏ i ∈ s, f i ≤ a 
goal: ∑ i ∈ s, f i ≤ a

full_name: prod_le_hasProd
code: @[to_additive]
theorem prod_le_hasProd (s : Finset ι) (hs : ∀ i, i ∉ s → 1 ≤ f i) (hf : HasProd f a) :
    ∏ i ∈ s, f i ≤ a 
goal: ∏ i ∈ s, f i ≤ a

full_name: isLUB_hasSum
code: @[to_additive]
theorem isLUB_hasProd (h : ∀ i, 1 ≤ f i) (hf : HasProd f a) :
    IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) a 
goal: IsLUB (Set.range fun s => ∑ i ∈ s, f i) a

full_name: isLUB_hasProd
code: @[to_additive]
theorem isLUB_hasProd (h : ∀ i, 1 ≤ f i) (hf : HasProd f a) :
    IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) a 
goal: IsLUB (Set.range fun s => ∏ i ∈ s, f i) a

full_name: le_hasSum
code: @[to_additive]
theorem le_hasProd (hf : HasProd f a) (i : ι) (hb : ∀ j, j ≠ i → 1 ≤ f j) : f i ≤ a 
goal: f i ≤ a

full_name: le_hasProd
code: @[to_additive]
theorem le_hasProd (hf : HasProd f a) (i : ι) (hb : ∀ j, j ≠ i → 1 ≤ f j) : f i ≤ a 
goal: f i ≤ a

full_name: sum_le_tsum
code: @[to_additive]
theorem prod_le_tprod {f : ι → α} (s : Finset ι) (hs : ∀ i, i ∉ s → 1 ≤ f i) (hf : Multipliable f) :
    ∏ i ∈ s, f i ≤ ∏' i, f i 
goal: ∑ i ∈ s, f i ≤ ∑' (i : ι), f i

full_name: prod_le_tprod
code: @[to_additive]
theorem prod_le_tprod {f : ι → α} (s : Finset ι) (hs : ∀ i, i ∉ s → 1 ≤ f i) (hf : Multipliable f) :
    ∏ i ∈ s, f i ≤ ∏' i, f i 
goal: ∏ i ∈ s, f i ≤ ∏' (i : ι), f i

full_name: le_tsum
code: @[to_additive]
theorem le_tprod (hf : Multipliable f) (i : ι) (hb : ∀ j, j ≠ i → 1 ≤ f j) : f i ≤ ∏' i, f i 
goal: f i ≤ ∑' (i : ι), f i

full_name: le_tprod
code: @[to_additive]
theorem le_tprod (hf : Multipliable f) (i : ι) (hb : ∀ j, j ≠ i → 1 ≤ f j) : f i ≤ ∏' i, f i 
goal: f i ≤ ∏' (i : ι), f i

full_name: tprod_le_tprod
code: @[to_additive]
theorem tprod_le_tprod (h : ∀ i, f i ≤ g i) (hf : Multipliable f) (hg : Multipliable g) :
    ∏' i, f i ≤ ∏' i, g i 
goal: ∏' (i : ι), f i ≤ ∏' (i : ι), g i

full_name: tsum_le_tsum
code: @[to_additive]
theorem tprod_le_tprod (h : ∀ i, f i ≤ g i) (hf : Multipliable f) (hg : Multipliable g) :
    ∏' i, f i ≤ ∏' i, g i 
goal: ∑' (i : ι), f i ≤ ∑' (i : ι), g i

full_name: tsum_mono
code: @[to_additive (attr := mono)]
theorem tprod_mono (hf : Multipliable f) (hg : Multipliable g) (h : f ≤ g) :
    ∏' n, f n ≤ ∏' n, g n 
goal: ∑' (n : ι), f n ≤ ∑' (n : ι), g n

full_name: tprod_mono
code: @[to_additive (attr := mono)]
theorem tprod_mono (hf : Multipliable f) (hg : Multipliable g) (h : f ≤ g) :
    ∏' n, f n ≤ ∏' n, g n 
goal: ∏' (n : ι), f n ≤ ∏' (n : ι), g n

full_name: tprod_le_of_prod_le
code: @[to_additive]
theorem tprod_le_of_prod_le (hf : Multipliable f) (h : ∀ s, ∏ i ∈ s, f i ≤ a₂) : ∏' i, f i ≤ a₂ 
goal: ∏' (i : ι), f i ≤ a₂

full_name: tsum_le_of_sum_le
code: @[to_additive]
theorem tprod_le_of_prod_le (hf : Multipliable f) (h : ∀ s, ∏ i ∈ s, f i ≤ a₂) : ∏' i, f i ≤ a₂ 
goal: ∑' (i : ι), f i ≤ a₂

full_name: tprod_le_of_prod_le'
code: @[to_additive]
theorem tprod_le_of_prod_le' (ha₂ : 1 ≤ a₂) (h : ∀ s, ∏ i ∈ s, f i ≤ a₂) : ∏' i, f i ≤ a₂ 
goal: ∏' (i : ι), f i ≤ a₂

full_name: tsum_le_of_sum_le'
code: @[to_additive]
theorem tprod_le_of_prod_le' (ha₂ : 1 ≤ a₂) (h : ∀ s, ∏ i ∈ s, f i ≤ a₂) : ∏' i, f i ≤ a₂ 
goal: ∑' (i : ι), f i ≤ a₂

full_name: HasProd.one_le
code: @[to_additive]
theorem HasProd.one_le (h : ∀ i, 1 ≤ g i) (ha : HasProd g a) : 1 ≤ a 
goal: 1 ≤ a

full_name: HasSum.nonneg
code: @[to_additive]
theorem HasProd.one_le (h : ∀ i, 1 ≤ g i) (ha : HasProd g a) : 1 ≤ a 
goal: 0 ≤ a

full_name: HasSum.nonpos
code: @[to_additive]
theorem HasProd.le_one (h : ∀ i, g i ≤ 1) (ha : HasProd g a) : a ≤ 1 
goal: a ≤ 0

full_name: HasProd.le_one
code: @[to_additive]
theorem HasProd.le_one (h : ∀ i, g i ≤ 1) (ha : HasProd g a) : a ≤ 1 
goal: a ≤ 1

full_name: tsum_nonneg
code: @[to_additive tsum_nonneg]
theorem one_le_tprod (h : ∀ i, 1 ≤ g i) : 1 ≤ ∏' i, g i 
goal: 0 ≤ ∑' (i : ι), g i

full_name: one_le_tprod
code: @[to_additive tsum_nonneg]
theorem one_le_tprod (h : ∀ i, 1 ≤ g i) : 1 ≤ ∏' i, g i 
goal: 1 ≤ ∏' (i : ι), g i

full_name: tprod_le_one
code: @[to_additive]
theorem tprod_le_one (h : ∀ i, f i ≤ 1) : ∏' i, f i ≤ 1 
goal: ∏' (i : ι), f i ≤ 1

full_name: tsum_nonpos
code: @[to_additive]
theorem tprod_le_one (h : ∀ i, f i ≤ 1) : ∏' i, f i ≤ 1 
goal: ∑' (i : ι), f i ≤ 0

full_name: hasSum_zero_iff_of_nonneg
code: @[to_additive]
theorem hasProd_one_iff_of_one_le (hf : ∀ i, 1 ≤ f i) : HasProd f 1 ↔ f = 1 
goal: HasSum f 0 ↔ f = 0

full_name: hasProd_one_iff_of_one_le
code: @[to_additive]
theorem hasProd_one_iff_of_one_le (hf : ∀ i, 1 ≤ f i) : HasProd f 1 ↔ f = 1 
goal: HasProd f 1 ↔ f = 1

full_name: hasSum_lt
code: @[to_additive]
theorem hasProd_lt (h : f ≤ g) (hi : f i < g i) (hf : HasProd f a₁) (hg : HasProd g a₂) :
    a₁ < a₂ 
goal: a₁ < a₂

full_name: hasProd_lt
code: @[to_additive]
theorem hasProd_lt (h : f ≤ g) (hi : f i < g i) (hf : HasProd f a₁) (hg : HasProd g a₂) :
    a₁ < a₂ 
goal: a₁ < a₂

full_name: hasProd_strict_mono
code: @[to_additive (attr := mono)]
theorem hasProd_strict_mono (hf : HasProd f a₁) (hg : HasProd g a₂) (h : f < g) : a₁ < a₂ 
goal: a₁ < a₂

full_name: hasSum_strict_mono
code: @[to_additive (attr := mono)]
theorem hasProd_strict_mono (hf : HasProd f a₁) (hg : HasProd g a₂) (h : f < g) : a₁ < a₂ 
goal: a₁ < a₂

full_name: tsum_lt_tsum
code: @[to_additive]
theorem tprod_lt_tprod (h : f ≤ g) (hi : f i < g i) (hf : Multipliable f) (hg : Multipliable g) :
    ∏' n, f n < ∏' n, g n 
goal: ∑' (n : ι), f n < ∑' (n : ι), g n

full_name: tprod_lt_tprod
code: @[to_additive]
theorem tprod_lt_tprod (h : f ≤ g) (hi : f i < g i) (hf : Multipliable f) (hg : Multipliable g) :
    ∏' n, f n < ∏' n, g n 
goal: ∏' (n : ι), f n < ∏' (n : ι), g n

full_name: tprod_strict_mono
code: @[to_additive (attr := mono)]
theorem tprod_strict_mono (hf : Multipliable f) (hg : Multipliable g) (h : f < g) :
    ∏' n, f n < ∏' n, g n 
goal: ∏' (n : ι), f n < ∏' (n : ι), g n

full_name: tsum_strict_mono
code: @[to_additive (attr := mono)]
theorem tprod_strict_mono (hf : Multipliable f) (hg : Multipliable g) (h : f < g) :
    ∏' n, f n < ∏' n, g n 
goal: ∑' (n : ι), f n < ∑' (n : ι), g n

full_name: tsum_pos
code: @[to_additive tsum_pos]
theorem one_lt_tprod (hsum : Multipliable g) (hg : ∀ i, 1 ≤ g i) (i : ι) (hi : 1 < g i) :
    1 < ∏' i, g i 
goal: 0 < ∑' (i : ι), g i

full_name: one_lt_tprod
code: @[to_additive tsum_pos]
theorem one_lt_tprod (hsum : Multipliable g) (hg : ∀ i, 1 ≤ g i) (i : ι) (hi : 1 < g i) :
    1 < ∏' i, g i 
goal: 1 < ∏' (i : ι), g i

full_name: le_hasSum'
code: @[to_additive]
theorem le_hasProd' (hf : HasProd f a) (i : ι) : f i ≤ a 
goal: f i ≤ a

full_name: le_hasProd'
code: @[to_additive]
theorem le_hasProd' (hf : HasProd f a) (i : ι) : f i ≤ a 
goal: f i ≤ a

full_name: le_tsum'
code: @[to_additive]
theorem le_tprod' (hf : Multipliable f) (i : ι) : f i ≤ ∏' i, f i 
goal: f i ≤ ∑' (i : ι), f i

full_name: le_tprod'
code: @[to_additive]
theorem le_tprod' (hf : Multipliable f) (i : ι) : f i ≤ ∏' i, f i 
goal: f i ≤ ∏' (i : ι), f i

full_name: hasSum_zero_iff
code: @[to_additive]
theorem hasProd_one_iff : HasProd f 1 ↔ ∀ x, f x = 1 
goal: HasSum f 0 ↔ ∀ (x : ι), f x = 0

full_name: hasProd_one_iff
code: @[to_additive]
theorem hasProd_one_iff : HasProd f 1 ↔ ∀ x, f x = 1 
goal: HasProd f 1 ↔ ∀ (x : ι), f x = 1

full_name: tsum_eq_zero_iff
code: @[to_additive]
theorem tprod_eq_one_iff (hf : Multipliable f) : ∏' i, f i = 1 ↔ ∀ x, f x = 1 
goal: ∑' (i : ι), f i = 0 ↔ ∀ (x : ι), f x = 0

full_name: tprod_eq_one_iff
code: @[to_additive]
theorem tprod_eq_one_iff (hf : Multipliable f) : ∏' i, f i = 1 ↔ ∀ x, f x = 1 
goal: ∏' (i : ι), f i = 1 ↔ ∀ (x : ι), f x = 1

full_name: tsum_ne_zero_iff
code: @[to_additive]
theorem tprod_ne_one_iff (hf : Multipliable f) : ∏' i, f i ≠ 1 ↔ ∃ x, f x ≠ 1 
goal: ∑' (i : ι), f i ≠ 0 ↔ ∃ x, f x ≠ 0

full_name: tprod_ne_one_iff
code: @[to_additive]
theorem tprod_ne_one_iff (hf : Multipliable f) : ∏' i, f i ≠ 1 ↔ ∃ x, f x ≠ 1 
goal: ∏' (i : ι), f i ≠ 1 ↔ ∃ x, f x ≠ 1

full_name: isLUB_hasSum'
code: @[to_additive]
theorem isLUB_hasProd' (hf : HasProd f a) : IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) a 
goal: IsLUB (Set.range fun s => ∑ i ∈ s, f i) a

full_name: isLUB_hasProd'
code: @[to_additive]
theorem isLUB_hasProd' (hf : HasProd f a) : IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) a 
goal: IsLUB (Set.range fun s => ∏ i ∈ s, f i) a

full_name: hasSum_of_isLUB_of_nonneg
code: @[to_additive]
theorem hasProd_of_isLUB_of_one_le [LinearOrderedCommMonoid α] [TopologicalSpace α]
    [OrderTopology α] {f : ι → α} (i : α) (h : ∀ i, 1 ≤ f i)
    (hf : IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) i) : HasProd f i 
goal: HasSum f i

full_name: hasProd_of_isLUB_of_one_le
code: @[to_additive]
theorem hasProd_of_isLUB_of_one_le [LinearOrderedCommMonoid α] [TopologicalSpace α]
    [OrderTopology α] {f : ι → α} (i : α) (h : ∀ i, 1 ≤ f i)
    (hf : IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) i) : HasProd f i 
goal: HasProd f i

full_name: hasProd_of_isLUB
code: @[to_additive]
theorem hasProd_of_isLUB [CanonicallyLinearOrderedCommMonoid α] [TopologicalSpace α]
    [OrderTopology α] {f : ι → α} (b : α) (hf : IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) b) :
    HasProd f b 
goal: HasProd f b

full_name: hasSum_of_isLUB
code: @[to_additive]
theorem hasProd_of_isLUB [CanonicallyLinearOrderedCommMonoid α] [TopologicalSpace α]
    [OrderTopology α] {f : ι → α} (b : α) (hf : IsLUB (Set.range fun s ↦ ∏ i ∈ s, f i) b) :
    HasProd f b 
goal: HasSum f b

full_name: summable_abs_iff
code: @[to_additive]
theorem multipliable_mabs_iff [LinearOrderedCommGroup α] [UniformSpace α] [UniformGroup α]
    [CompleteSpace α] {f : ι → α} : (Multipliable fun x ↦ mabs (f x)) ↔ Multipliable f 
goal: (Summable fun x => |f x|) ↔ Summable f

full_name: multipliable_mabs_iff
code: @[to_additive]
theorem multipliable_mabs_iff [LinearOrderedCommGroup α] [UniformSpace α] [UniformGroup α]
    [CompleteSpace α] {f : ι → α} : (Multipliable fun x ↦ mabs (f x)) ↔ Multipliable f 
goal: (Multipliable fun x => mabs (f x)) ↔ Multipliable f

full_name: Finite.of_summable_const
code: theorem Finite.of_summable_const [LinearOrderedAddCommGroup α] [TopologicalSpace α] [Archimedean α]
    [OrderClosedTopology α] {b : α} (hb : 0 < b) (hf : Summable fun _ : ι ↦ b) :
    Finite ι 
goal: Finite ι

full_name: Set.Finite.of_summable_const
code: theorem Set.Finite.of_summable_const [LinearOrderedAddCommGroup α] [TopologicalSpace α]
    [Archimedean α] [OrderClosedTopology α] {b : α} (hb : 0 < b) (hf : Summable fun _ : ι ↦ b) :
    (Set.univ : Set ι).Finite 
goal: Set.univ.Finite

full_name: Summable.tendsto_atTop_of_pos
code: theorem Summable.tendsto_atTop_of_pos [LinearOrderedField α] [TopologicalSpace α] [OrderTopology α]
    {f : ℕ → α} (hf : Summable f⁻¹) (hf' : ∀ n, 0 < f n) : Tendsto f atTop atTop 
goal: Filter.Tendsto f Filter.atTop Filter.atTop