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

full_name: HasProd.inv
code: @[to_additive]
theorem HasProd.inv (h : HasProd f a) : HasProd (fun b ↦ (f b)⁻¹) a⁻¹ 
goal: HasProd (fun b => (f b)⁻¹) a⁻¹

full_name: HasSum.neg
code: @[to_additive]
theorem HasProd.inv (h : HasProd f a) : HasProd (fun b ↦ (f b)⁻¹) a⁻¹ 
goal: HasSum (fun b => -f b) (-a)

full_name: Summable.neg
code: @[to_additive]
theorem Multipliable.inv (hf : Multipliable f) : Multipliable fun b ↦ (f b)⁻¹ 
goal: Summable fun b => -f b

full_name: Multipliable.inv
code: @[to_additive]
theorem Multipliable.inv (hf : Multipliable f) : Multipliable fun b ↦ (f b)⁻¹ 
goal: Multipliable fun b => (f b)⁻¹

full_name: Summable.of_neg
code: @[to_additive]
theorem Multipliable.of_inv (hf : Multipliable fun b ↦ (f b)⁻¹) : Multipliable f 
goal: Summable f

full_name: Multipliable.of_inv
code: @[to_additive]
theorem Multipliable.of_inv (hf : Multipliable fun b ↦ (f b)⁻¹) : Multipliable f 
goal: Multipliable f

full_name: summable_neg_iff
code: @[to_additive]
theorem multipliable_inv_iff : (Multipliable fun b ↦ (f b)⁻¹) ↔ Multipliable f 
goal: (Summable fun b => -f b) ↔ Summable f

full_name: multipliable_inv_iff
code: @[to_additive]
theorem multipliable_inv_iff : (Multipliable fun b ↦ (f b)⁻¹) ↔ Multipliable f 
goal: (Multipliable fun b => (f b)⁻¹) ↔ Multipliable f

full_name: HasProd.div
code: @[to_additive]
theorem HasProd.div (hf : HasProd f a₁) (hg : HasProd g a₂) :
    HasProd (fun b ↦ f b / g b) (a₁ / a₂) 
goal: HasProd (fun b => f b / g b) (a₁ / a₂)

full_name: HasSum.sub
code: @[to_additive]
theorem HasProd.div (hf : HasProd f a₁) (hg : HasProd g a₂) :
    HasProd (fun b ↦ f b / g b) (a₁ / a₂) 
goal: HasSum (fun b => f b - g b) (a₁ - a₂)

full_name: Multipliable.div
code: @[to_additive]
theorem Multipliable.div (hf : Multipliable f) (hg : Multipliable g) :
    Multipliable fun b ↦ f b / g b 
goal: Multipliable fun b => f b / g b

full_name: Summable.sub
code: @[to_additive]
theorem Multipliable.div (hf : Multipliable f) (hg : Multipliable g) :
    Multipliable fun b ↦ f b / g b 
goal: Summable fun b => f b - g b

full_name: Summable.trans_sub
code: @[to_additive]
theorem Multipliable.trans_div (hg : Multipliable g) (hfg : Multipliable fun b ↦ f b / g b) :
    Multipliable f 
goal: Summable f

full_name: Multipliable.trans_div
code: @[to_additive]
theorem Multipliable.trans_div (hg : Multipliable g) (hfg : Multipliable fun b ↦ f b / g b) :
    Multipliable f 
goal: Multipliable f

full_name: multipliable_iff_of_multipliable_div
code: @[to_additive]
theorem multipliable_iff_of_multipliable_div (hfg : Multipliable fun b ↦ f b / g b) :
    Multipliable f ↔ Multipliable g 
goal: Multipliable f ↔ Multipliable g

full_name: summable_iff_of_summable_sub
code: @[to_additive]
theorem multipliable_iff_of_multipliable_div (hfg : Multipliable fun b ↦ f b / g b) :
    Multipliable f ↔ Multipliable g 
goal: Summable f ↔ Summable g

full_name: HasSum.update
code: @[to_additive]
theorem HasProd.update (hf : HasProd f a₁) (b : β) [DecidableEq β] (a : α) :
    HasProd (update f b a) (a / f b * a₁) 
goal: HasSum (Function.update f b a) (a - f b + a₁)

full_name: HasProd.update
code: @[to_additive]
theorem HasProd.update (hf : HasProd f a₁) (b : β) [DecidableEq β] (a : α) :
    HasProd (update f b a) (a / f b * a₁) 
goal: HasProd (Function.update f b a) (a / f b * a₁)

full_name: Multipliable.update
code: @[to_additive]
theorem Multipliable.update (hf : Multipliable f) (b : β) [DecidableEq β] (a : α) :
    Multipliable (update f b a) 
goal: Multipliable (Function.update f b a)

full_name: Summable.update
code: @[to_additive]
theorem Multipliable.update (hf : Multipliable f) (b : β) [DecidableEq β] (a : α) :
    Multipliable (update f b a) 
goal: Summable (Function.update f b a)

full_name: HasSum.hasSum_compl_iff
code: @[to_additive]
theorem HasProd.hasProd_compl_iff {s : Set β} (hf : HasProd (f ∘ (↑) : s → α) a₁) :
    HasProd (f ∘ (↑) : ↑sᶜ → α) a₂ ↔ HasProd f (a₁ * a₂) 
goal: HasSum (f ∘ Subtype.val) a₂ ↔ HasSum f (a₁ + a₂)

full_name: HasProd.hasProd_compl_iff
code: @[to_additive]
theorem HasProd.hasProd_compl_iff {s : Set β} (hf : HasProd (f ∘ (↑) : s → α) a₁) :
    HasProd (f ∘ (↑) : ↑sᶜ → α) a₂ ↔ HasProd f (a₁ * a₂) 
goal: HasProd (f ∘ Subtype.val) a₂ ↔ HasProd f (a₁ * a₂)

full_name: HasSum.hasSum_iff_compl
code: @[to_additive]
theorem HasProd.hasProd_iff_compl {s : Set β} (hf : HasProd (f ∘ (↑) : s → α) a₁) :
    HasProd f a₂ ↔ HasProd (f ∘ (↑) : ↑sᶜ → α) (a₂ / a₁) 
goal: HasSum f a₂ ↔ HasSum (f ∘ Subtype.val) (a₂ - a₁)

full_name: HasProd.hasProd_iff_compl
code: @[to_additive]
theorem HasProd.hasProd_iff_compl {s : Set β} (hf : HasProd (f ∘ (↑) : s → α) a₁) :
    HasProd f a₂ ↔ HasProd (f ∘ (↑) : ↑sᶜ → α) (a₂ / a₁) 
goal: HasProd f a₂ ↔ HasProd (f ∘ Subtype.val) (a₂ / a₁)

full_name: Multipliable.multipliable_compl_iff
code: @[to_additive]
theorem Multipliable.multipliable_compl_iff {s : Set β} (hf : Multipliable (f ∘ (↑) : s → α)) :
    Multipliable (f ∘ (↑) : ↑sᶜ → α) ↔ Multipliable f 
goal: Multipliable (f ∘ Subtype.val) ↔ Multipliable f

full_name: Summable.summable_compl_iff
code: @[to_additive]
theorem Multipliable.multipliable_compl_iff {s : Set β} (hf : Multipliable (f ∘ (↑) : s → α)) :
    Multipliable (f ∘ (↑) : ↑sᶜ → α) ↔ Multipliable f 
goal: Summable (f ∘ Subtype.val) ↔ Summable f

full_name: Finset.hasProd_compl_iff
code: @[to_additive]
protected theorem Finset.hasProd_compl_iff (s : Finset β) :
    HasProd (fun x : { x // x ∉ s } ↦ f x) a ↔ HasProd f (a * ∏ i ∈ s, f i) 
goal: HasProd (fun x => f ↑x) a ↔ HasProd f (a * ∏ i ∈ s, f i)

full_name: Finset.hasSum_compl_iff
code: @[to_additive]
protected theorem Finset.hasProd_compl_iff (s : Finset β) :
    HasProd (fun x : { x // x ∉ s } ↦ f x) a ↔ HasProd f (a * ∏ i ∈ s, f i) 
goal: HasSum (fun x => f ↑x) a ↔ HasSum f (a + ∑ i ∈ s, f i)

full_name: Finset.hasProd_iff_compl
code: @[to_additive]
protected theorem Finset.hasProd_iff_compl (s : Finset β) :
    HasProd f a ↔ HasProd (fun x : { x // x ∉ s } ↦ f x) (a / ∏ i ∈ s, f i) 
goal: HasProd f a ↔ HasProd (fun x => f ↑x) (a / ∏ i ∈ s, f i)

full_name: Finset.hasSum_iff_compl
code: @[to_additive]
protected theorem Finset.hasProd_iff_compl (s : Finset β) :
    HasProd f a ↔ HasProd (fun x : { x // x ∉ s } ↦ f x) (a / ∏ i ∈ s, f i) 
goal: HasSum f a ↔ HasSum (fun x => f ↑x) (a - ∑ i ∈ s, f i)

full_name: Finset.summable_compl_iff
code: @[to_additive]
protected theorem Finset.multipliable_compl_iff (s : Finset β) :
    (Multipliable fun x : { x // x ∉ s } ↦ f x) ↔ Multipliable f 
goal: (Summable fun x => f ↑x) ↔ Summable f

full_name: Finset.multipliable_compl_iff
code: @[to_additive]
protected theorem Finset.multipliable_compl_iff (s : Finset β) :
    (Multipliable fun x : { x // x ∉ s } ↦ f x) ↔ Multipliable f 
goal: (Multipliable fun x => f ↑x) ↔ Multipliable f

full_name: Set.Finite.multipliable_compl_iff
code: @[to_additive]
theorem Set.Finite.multipliable_compl_iff {s : Set β} (hs : s.Finite) :
    Multipliable (f ∘ (↑) : ↑sᶜ → α) ↔ Multipliable f 
goal: Multipliable (f ∘ Subtype.val) ↔ Multipliable f

full_name: Set.Finite.summable_compl_iff
code: @[to_additive]
theorem Set.Finite.multipliable_compl_iff {s : Set β} (hs : s.Finite) :
    Multipliable (f ∘ (↑) : ↑sᶜ → α) ↔ Multipliable f 
goal: Summable (f ∘ Subtype.val) ↔ Summable f

full_name: hasProd_ite_div_hasProd
code: @[to_additive]
theorem hasProd_ite_div_hasProd [DecidableEq β] (hf : HasProd f a) (b : β) :
    HasProd (fun n ↦ ite (n = b) 1 (f n)) (a / f b) 
goal: HasProd (fun n => if n = b then 1 else f n) (a / f b)

full_name: hasSum_ite_sub_hasSum
code: @[to_additive]
theorem hasProd_ite_div_hasProd [DecidableEq β] (hf : HasProd f a) (b : β) :
    HasProd (fun n ↦ ite (n = b) 1 (f n)) (a / f b) 
goal: HasSum (fun n => if n = b then 0 else f n) (a - f b)

full_name: tsum_neg
code: @[to_additive]
theorem tprod_inv : ∏' b, (f b)⁻¹ = (∏' b, f b)⁻¹ 
goal: ∑' (b : β), -f b = -∑' (b : β), f b

full_name: tprod_inv
code: @[to_additive]
theorem tprod_inv : ∏' b, (f b)⁻¹ = (∏' b, f b)⁻¹ 
goal: ∏' (b : β), (f b)⁻¹ = (∏' (b : β), f b)⁻¹

full_name: tprod_div
code: @[to_additive]
theorem tprod_div (hf : Multipliable f) (hg : Multipliable g) :
    ∏' b, (f b / g b) = (∏' b, f b) / ∏' b, g b 
goal: ∏' (b : β), f b / g b = (∏' (b : β), f b) / ∏' (b : β), g b

full_name: tsum_sub
code: @[to_additive]
theorem tprod_div (hf : Multipliable f) (hg : Multipliable g) :
    ∏' b, (f b / g b) = (∏' b, f b) / ∏' b, g b 
goal: ∑' (b : β), (f b - g b) = ∑' (b : β), f b - ∑' (b : β), g b

full_name: sum_add_tsum_compl
code: @[to_additive]
theorem prod_mul_tprod_compl {s : Finset β} (hf : Multipliable f) :
    (∏ x ∈ s, f x) * ∏' x : ↑(s : Set β)ᶜ, f x = ∏' x, f x 
goal: ∑ x ∈ s, f x + ∑' (x : ↑(↑s)ᶜ), f ↑x = ∑' (x : β), f x

full_name: prod_mul_tprod_compl
code: @[to_additive]
theorem prod_mul_tprod_compl {s : Finset β} (hf : Multipliable f) :
    (∏ x ∈ s, f x) * ∏' x : ↑(s : Set β)ᶜ, f x = ∏' x, f x 
goal: (∏ x ∈ s, f x) * ∏' (x : ↑(↑s)ᶜ), f ↑x = ∏' (x : β), f x

full_name: tsum_eq_add_tsum_ite
code: /-- Let `f : β → α` be a multipliable function and let `b ∈ β` be an index.
Lemma `tprod_eq_mul_tprod_ite` writes `∏ n, f n` as `f b` times the product of the
remaining terms. -/
@[to_additive "Let `f : β → α` be a summable function and let `b ∈ β` be an index.
Lemma `tsum_eq_add_tsum_ite` writes `Σ' n, f n` as `f b` plus the sum of the
remaining terms."]
theorem tprod_eq_mul_tprod_ite [DecidableEq β] (hf : Multipliable f) (b : β) :
    ∏' n, f n = f b * ∏' n, ite (n = b) 1 (f n) 
goal: ∑' (n : β), f n = f b + ∑' (n : β), if n = b then 0 else f n

full_name: tprod_eq_mul_tprod_ite
code: /-- Let `f : β → α` be a multipliable function and let `b ∈ β` be an index.
Lemma `tprod_eq_mul_tprod_ite` writes `∏ n, f n` as `f b` times the product of the
remaining terms. -/
@[to_additive "Let `f : β → α` be a summable function and let `b ∈ β` be an index.
Lemma `tsum_eq_add_tsum_ite` writes `Σ' n, f n` as `f b` plus the sum of the
remaining terms."]
theorem tprod_eq_mul_tprod_ite [DecidableEq β] (hf : Multipliable f) (b : β) :
    ∏' n, f n = f b * ∏' n, ite (n = b) 1 (f n) 
goal: ∏' (n : β), f n = f b * ∏' (n : β), if n = b then 1 else f n

full_name: multipliable_iff_cauchySeq_finset
code: /-- The **Cauchy criterion** for infinite products, also known as the **Cauchy convergence test** -/
@[to_additive "The **Cauchy criterion** for infinite sums, also known as the
**Cauchy convergence test**"]
theorem multipliable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
    Multipliable f ↔ CauchySeq fun s : Finset β ↦ ∏ b ∈ s, f b 
goal: Multipliable f ↔ CauchySeq fun s => ∏ b ∈ s, f b

full_name: summable_iff_cauchySeq_finset
code: /-- The **Cauchy criterion** for infinite products, also known as the **Cauchy convergence test** -/
@[to_additive "The **Cauchy criterion** for infinite sums, also known as the
**Cauchy convergence test**"]
theorem multipliable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
    Multipliable f ↔ CauchySeq fun s : Finset β ↦ ∏ b ∈ s, f b 
goal: Summable f ↔ CauchySeq fun s => ∑ b ∈ s, f b

full_name: cauchySeq_finset_iff_sum_vanishing
code: @[to_additive]
theorem cauchySeq_finset_iff_prod_vanishing :
    (CauchySeq fun s : Finset β ↦ ∏ b ∈ s, f b) ↔
      ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∏ b ∈ t, f b) ∈ e 
goal: (CauchySeq fun s => ∑ b ∈ s, f b) ↔ ∀ e ∈ 𝓝 0, ∃ s, ∀ (t : Finset β), Disjoint t s → ∑ b ∈ t, f b ∈ e

full_name: cauchySeq_finset_iff_prod_vanishing
code: @[to_additive]
theorem cauchySeq_finset_iff_prod_vanishing :
    (CauchySeq fun s : Finset β ↦ ∏ b ∈ s, f b) ↔
      ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∏ b ∈ t, f b) ∈ e 
goal: (CauchySeq fun s => ∏ b ∈ s, f b) ↔ ∀ e ∈ 𝓝 1, ∃ s, ∀ (t : Finset β), Disjoint t s → ∏ b ∈ t, f b ∈ e

full_name: cauchySeq_finset_iff_tsum_vanishing
code: @[to_additive]
theorem cauchySeq_finset_iff_tprod_vanishing :
    (CauchySeq fun s : Finset β ↦ ∏ b ∈ s, f b) ↔
      ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∏' b : t, f b) ∈ e 
goal: (CauchySeq fun s => ∑ b ∈ s, f b) ↔ ∀ e ∈ 𝓝 0, ∃ s, ∀ (t : Set β), Disjoint t ↑s → ∑' (b : ↑t), f ↑b ∈ e

full_name: cauchySeq_finset_iff_tprod_vanishing
code: @[to_additive]
theorem cauchySeq_finset_iff_tprod_vanishing :
    (CauchySeq fun s : Finset β ↦ ∏ b ∈ s, f b) ↔
      ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∏' b : t, f b) ∈ e 
goal: (CauchySeq fun s => ∏ b ∈ s, f b) ↔ ∀ e ∈ 𝓝 1, ∃ s, ∀ (t : Set β), Disjoint t ↑s → ∏' (b : ↑t), f ↑b ∈ e

full_name: multipliable_iff_vanishing
code: @[to_additive]
theorem multipliable_iff_vanishing :
    Multipliable f ↔
    ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∏ b ∈ t, f b) ∈ e 
goal: Multipliable f ↔ ∀ e ∈ 𝓝 1, ∃ s, ∀ (t : Finset β), Disjoint t s → ∏ b ∈ t, f b ∈ e

full_name: summable_iff_vanishing
code: @[to_additive]
theorem multipliable_iff_vanishing :
    Multipliable f ↔
    ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∏ b ∈ t, f b) ∈ e 
goal: Summable f ↔ ∀ e ∈ 𝓝 0, ∃ s, ∀ (t : Finset β), Disjoint t s → ∑ b ∈ t, f b ∈ e

full_name: multipliable_iff_tprod_vanishing
code: @[to_additive]
theorem multipliable_iff_tprod_vanishing : Multipliable f ↔
    ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∏' b : t, f b) ∈ e 
goal: Multipliable f ↔ ∀ e ∈ 𝓝 1, ∃ s, ∀ (t : Set β), Disjoint t ↑s → ∏' (b : ↑t), f ↑b ∈ e

full_name: summable_iff_tsum_vanishing
code: @[to_additive]
theorem multipliable_iff_tprod_vanishing : Multipliable f ↔
    ∀ e ∈ 𝓝 (1 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∏' b : t, f b) ∈ e 
goal: Summable f ↔ ∀ e ∈ 𝓝 0, ∃ s, ∀ (t : Set β), Disjoint t ↑s → ∑' (b : ↑t), f ↑b ∈ e

full_name: Multipliable.multipliable_of_eq_one_or_self
code: @[to_additive]
theorem Multipliable.multipliable_of_eq_one_or_self (hf : Multipliable f)
    (h : ∀ b, g b = 1 ∨ g b = f b) : Multipliable g 
goal: Multipliable g

full_name: Summable.summable_of_eq_zero_or_self
code: @[to_additive]
theorem Multipliable.multipliable_of_eq_one_or_self (hf : Multipliable f)
    (h : ∀ b, g b = 1 ∨ g b = f b) : Multipliable g 
goal: Summable g

full_name: Summable.indicator
code: @[to_additive]
protected theorem Multipliable.mulIndicator (hf : Multipliable f) (s : Set β) :
    Multipliable (s.mulIndicator f) 
goal: Summable (s.indicator f)

full_name: Multipliable.mulIndicator
code: @[to_additive]
protected theorem Multipliable.mulIndicator (hf : Multipliable f) (s : Set β) :
    Multipliable (s.mulIndicator f) 
goal: Multipliable (s.mulIndicator f)

full_name: Summable.comp_injective
code: @[to_additive]
theorem Multipliable.comp_injective {i : γ → β} (hf : Multipliable f) (hi : Injective i) :
    Multipliable (f ∘ i) 
goal: Summable (f ∘ i)

full_name: Multipliable.comp_injective
code: @[to_additive]
theorem Multipliable.comp_injective {i : γ → β} (hf : Multipliable f) (hi : Injective i) :
    Multipliable (f ∘ i) 
goal: Multipliable (f ∘ i)

full_name: Multipliable.subtype
code: @[to_additive]
theorem Multipliable.subtype (hf : Multipliable f) (s : Set β) : Multipliable (f ∘ (↑) : s → α) 
goal: Multipliable (f ∘ Subtype.val)

full_name: Summable.subtype
code: @[to_additive]
theorem Multipliable.subtype (hf : Multipliable f) (s : Set β) : Multipliable (f ∘ (↑) : s → α) 
goal: Summable (f ∘ Subtype.val)

full_name: summable_subtype_and_compl
code: @[to_additive]
theorem multipliable_subtype_and_compl {s : Set β} :
    ((Multipliable fun x : s ↦ f x) ∧ Multipliable fun x : ↑sᶜ ↦ f x) ↔ Multipliable f 
goal: ((Summable fun x => f ↑x) ∧ Summable fun x => f ↑x) ↔ Summable f

full_name: multipliable_subtype_and_compl
code: @[to_additive]
theorem multipliable_subtype_and_compl {s : Set β} :
    ((Multipliable fun x : s ↦ f x) ∧ Multipliable fun x : ↑sᶜ ↦ f x) ↔ Multipliable f 
goal: ((Multipliable fun x => f ↑x) ∧ Multipliable fun x => f ↑x) ↔ Multipliable f

full_name: tsum_subtype_add_tsum_subtype_compl
code: @[to_additive]
theorem tprod_subtype_mul_tprod_subtype_compl [T2Space α] {f : β → α} (hf : Multipliable f)
    (s : Set β) : (∏' x : s, f x) * ∏' x : ↑sᶜ, f x = ∏' x, f x 
goal: ∑' (x : ↑s), f ↑x + ∑' (x : ↑sᶜ), f ↑x = ∑' (x : β), f x

full_name: tprod_subtype_mul_tprod_subtype_compl
code: @[to_additive]
theorem tprod_subtype_mul_tprod_subtype_compl [T2Space α] {f : β → α} (hf : Multipliable f)
    (s : Set β) : (∏' x : s, f x) * ∏' x : ↑sᶜ, f x = ∏' x, f x 
goal: (∏' (x : ↑s), f ↑x) * ∏' (x : ↑sᶜ), f ↑x = ∏' (x : β), f x

full_name: sum_add_tsum_subtype_compl
code: @[to_additive]
theorem prod_mul_tprod_subtype_compl [T2Space α] {f : β → α} (hf : Multipliable f) (s : Finset β) :
    (∏ x ∈ s, f x) * ∏' x : { x // x ∉ s }, f x = ∏' x, f x 
goal: ∑ x ∈ s, f x + ∑' (x : { x // x ∉ s }), f ↑x = ∑' (x : β), f x

full_name: prod_mul_tprod_subtype_compl
code: @[to_additive]
theorem prod_mul_tprod_subtype_compl [T2Space α] {f : β → α} (hf : Multipliable f) (s : Finset β) :
    (∏ x ∈ s, f x) * ∏' x : { x // x ∉ s }, f x = ∏' x, f x 
goal: (∏ x ∈ s, f x) * ∏' (x : { x // x ∉ s }), f ↑x = ∏' (x : β), f x

full_name: Summable.vanishing
code: @[to_additive]
theorem Multipliable.vanishing (hf : Multipliable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (1 : G)) :
    ∃ s : Finset α, ∀ t, Disjoint t s → (∏ k ∈ t, f k) ∈ e 
goal: ∃ s, ∀ (t : Finset α), Disjoint t s → ∑ k ∈ t, f k ∈ e

full_name: Multipliable.vanishing
code: @[to_additive]
theorem Multipliable.vanishing (hf : Multipliable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (1 : G)) :
    ∃ s : Finset α, ∀ t, Disjoint t s → (∏ k ∈ t, f k) ∈ e 
goal: ∃ s, ∀ (t : Finset α), Disjoint t s → ∏ k ∈ t, f k ∈ e

full_name: Multipliable.tprod_vanishing
code: @[to_additive]
theorem Multipliable.tprod_vanishing (hf : Multipliable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 1) :
    ∃ s : Finset α, ∀ t : Set α, Disjoint t s → (∏' b : t, f b) ∈ e 
goal: ∃ s, ∀ (t : Set α), Disjoint t ↑s → ∏' (b : ↑t), f ↑b ∈ e

full_name: Summable.tsum_vanishing
code: @[to_additive]
theorem Multipliable.tprod_vanishing (hf : Multipliable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 1) :
    ∃ s : Finset α, ∀ t : Set α, Disjoint t s → (∏' b : t, f b) ∈ e 
goal: ∃ s, ∀ (t : Set α), Disjoint t ↑s → ∑' (b : ↑t), f ↑b ∈ e

full_name: tendsto_tprod_compl_atTop_one
code: /-- The product over the complement of a finset tends to `1` when the finset grows to cover the
whole space. This does not need a multipliability assumption, as otherwise all such products are
one. -/
@[to_additive "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 such sums are zero."]
theorem tendsto_tprod_compl_atTop_one (f : α → G) :
    Tendsto (fun s : Finset α ↦ ∏' a : { x // x ∉ s }, f a) atTop (𝓝 1) 
goal: Filter.Tendsto (fun s => ∏' (a : { x // x ∉ s }), f ↑a) Filter.atTop (𝓝 1)

full_name: tendsto_tsum_compl_atTop_zero
code: /-- The product over the complement of a finset tends to `1` when the finset grows to cover the
whole space. This does not need a multipliability assumption, as otherwise all such products are
one. -/
@[to_additive "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 such sums are zero."]
theorem tendsto_tprod_compl_atTop_one (f : α → G) :
    Tendsto (fun s : Finset α ↦ ∏' a : { x // x ∉ s }, f a) atTop (𝓝 1) 
goal: Filter.Tendsto (fun s => ∑' (a : { x // x ∉ s }), f ↑a) Filter.atTop (𝓝 0)

full_name: Summable.tendsto_cofinite_zero
code: /-- Product divergence test: if `f` is unconditionally multipliable, then `f x` tends to one along
`cofinite`. -/
@[to_additive "Series divergence test: if `f` is unconditionally summable, then `f x` tends to zero
along `cofinite`."]
theorem Multipliable.tendsto_cofinite_one (hf : Multipliable f) : Tendsto f cofinite (𝓝 1) 
goal: Filter.Tendsto f Filter.cofinite (𝓝 0)

full_name: Multipliable.tendsto_cofinite_one
code: /-- Product divergence test: if `f` is unconditionally multipliable, then `f x` tends to one along
`cofinite`. -/
@[to_additive "Series divergence test: if `f` is unconditionally summable, then `f x` tends to zero
along `cofinite`."]
theorem Multipliable.tendsto_cofinite_one (hf : Multipliable f) : Tendsto f cofinite (𝓝 1) 
goal: Filter.Tendsto f Filter.cofinite (𝓝 1)

full_name: Multipliable.countable_mulSupport
code: @[to_additive]
theorem Multipliable.countable_mulSupport [FirstCountableTopology G] [T1Space G]
    (hf : Multipliable f) : f.mulSupport.Countable 
goal: (Function.mulSupport f).Countable

full_name: Summable.countable_support
code: @[to_additive]
theorem Multipliable.countable_mulSupport [FirstCountableTopology G] [T1Space G]
    (hf : Multipliable f) : f.mulSupport.Countable 
goal: (Function.support f).Countable

full_name: multipliable_const_iff
code: @[to_additive]
theorem multipliable_const_iff [Infinite β] [T2Space G] (a : G) :
    Multipliable (fun _ : β ↦ a) ↔ a = 1 
goal: (Multipliable fun x => a) ↔ a = 1

full_name: summable_const_iff
code: @[to_additive]
theorem multipliable_const_iff [Infinite β] [T2Space G] (a : G) :
    Multipliable (fun _ : β ↦ a) ↔ a = 1 
goal: (Summable fun x => a) ↔ a = 0

full_name: tsum_const
code: @[to_additive (attr := simp)]
theorem tprod_const [T2Space G] (a : G) : ∏' _ : β, a = a ^ (Nat.card β) 
goal: ∑' (x : β), a = Nat.card β • a

full_name: tprod_const
code: @[to_additive (attr := simp)]
theorem tprod_const [T2Space G] (a : G) : ∏' _ : β, a = a ^ (Nat.card β) 
goal: ∏' (x : β), a = a ^ Nat.card β