topology.algebra.infinite_sum.basicMathlib.Topology.Algebra.InfiniteSum.Defs

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

feat(measure_theory/measure/haar_quotient): the Unfolding Trick (#18863)

We prove the "unfolding trick": Given a subgroup Γ of a group G, the integral of a function f on G times the lift to G of a function g on the coset space G ⧸ Γ with respect to a right-invariant measure μ on G, is equal to the integral over the coset space of the automorphization of f times g.

We also prove the following simplified version: Given a subgroup Γ of a group G, the integral of a function f on G with respect to a right-invariant measure μ is equal to the integral over the coset space G ⧸ Γ of the automorphization of f.

A question: is it possible to deduce ae_strongly_measurable (quotient_group.automorphize f) μ_𝓕 from ae_strongly_measurable f μ (as opposed to assuming it as a hypothesis in the main theorem)? It seems quite plausible...

Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com>

Co-authored-by: Alex Kontorovich <58564076+AlexKontorovich@users.noreply.github.com> Co-authored-by: AlexKontorovich <58564076+AlexKontorovich@users.noreply.github.com>

Diff
@@ -1147,9 +1147,46 @@ hf.map (distrib_mul_action.to_add_monoid_hom α _) $ continuous_const_smul _
 lemma summable.const_smul (b : γ) (hf : summable f) : summable (λ i, b • f i) :=
 (hf.has_sum.const_smul _).summable
 
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a `monoid`, but
+  requiring a summability hypothesis. -/
 lemma tsum_const_smul [t2_space α] (b : γ) (hf : summable f) : ∑' i, b • f i = b • ∑' i, f i :=
 (hf.has_sum.const_smul _).tsum_eq
 
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a `group`, but
+  not requiring any summability hypothesis. -/
+lemma tsum_const_smul' {γ : Type*} [group γ] [distrib_mul_action γ α]
+  [has_continuous_const_smul γ α] [t2_space α] (g : γ) :
+  ∑' (i : β), g • f i = g • ∑' (i : β), f i :=
+begin
+  by_cases hf : summable f,
+  { exact tsum_const_smul _ hf, },
+  rw tsum_eq_zero_of_not_summable hf,
+  simp only [smul_zero],
+  let mul_g : α ≃+ α := distrib_mul_action.to_add_equiv α g,
+  apply tsum_eq_zero_of_not_summable,
+  change ¬ summable (mul_g ∘ f),
+  rwa summable.map_iff_of_equiv mul_g; apply continuous_const_smul,
+end
+
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a
+  `division_ring`; no summability hypothesis. This could be made to work for a
+  `[group_with_zero γ]` if there was such a thing as `distrib_mul_action_with_zero`. -/
+lemma tsum_const_smul'' {γ : Type*} [division_ring γ] [module γ α] [has_continuous_const_smul γ α]
+  [t2_space α] (g : γ) :
+  ∑' (i : β), g • f i = g • ∑' (i : β), f i :=
+begin
+  by_cases hf : summable f,
+  { exact tsum_const_smul _ hf, },
+  rw tsum_eq_zero_of_not_summable hf,
+  simp only [smul_zero],
+  by_cases hg : g = 0,
+  { simp [hg], },
+  let mul_g : α ≃+ α := distrib_mul_action.to_add_equiv₀ α g hg,
+  apply tsum_eq_zero_of_not_summable,
+  change ¬ summable (mul_g ∘ f),
+  rwa summable.map_iff_of_equiv mul_g; apply continuous_const_smul,
+end
+
 end const_smul
 
 /-! ### Product and pi types -/
@@ -1256,3 +1293,107 @@ begin
 end
 
 end has_continuous_star
+
+section automorphize
+
+variables {M : Type*} [topological_space M] [add_comm_monoid M] [t2_space M] {R : Type*}
+  [division_ring R] [module R M] [has_continuous_const_smul R M]
+
+/-- Given a group `α` acting on a type `β`, and a function `f : β → M`, we "automorphize" `f` to a
+  function `β ⧸ α → M` by summing over `α` orbits, `b ↦ ∑' (a : α), f(a • b)`. -/
+@[to_additive "Given an additive group `α` acting on a type `β`, and a function `f : β → M`,
+  we automorphize `f` to a function `β ⧸ α → M` by summing over `α` orbits,
+  `b ↦ ∑' (a : α), f(a • b)`."]
+def mul_action.automorphize [group α] [mul_action α β] (f : β → M) :
+  quotient (mul_action.orbit_rel α β) → M :=
+@quotient.lift _ _ (mul_action.orbit_rel α β) (λ b, ∑' (a : α), f(a • b))
+begin
+  rintros b₁ b₂ ⟨a, (rfl : a • b₂ = b₁)⟩,
+  simpa [mul_smul] using (equiv.mul_right a).tsum_eq (λ a', f (a' • b₂)),
+end
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
+  `R`-scalar multiplication. -/
+lemma mul_action.automorphize_smul_left [group α] [mul_action α β]  (f : β → M)
+  (g : quotient (mul_action.orbit_rel α β) → R) :
+  mul_action.automorphize ((g ∘ quotient.mk') • f)
+    = g • (mul_action.automorphize f : quotient (mul_action.orbit_rel α β) → M) :=
+begin
+  ext x,
+  apply quotient.induction_on' x,
+  intro b,
+  simp only [mul_action.automorphize, pi.smul_apply', function.comp_app],
+  set π : β → quotient (mul_action.orbit_rel α β) := quotient.mk',
+  have H₁ : ∀ a : α, π (a • b) = π b,
+  { intro a,
+    rw quotient.eq_rel,
+    fconstructor,
+    exact a,
+    simp, },
+  change ∑' a : α, g (π (a • b)) • f (a • b) = g (π b) • ∑' a : α, f (a • b),
+  simp_rw [H₁],
+  exact tsum_const_smul'' _,
+end
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
+  `R`-scalar multiplication. -/
+lemma add_action.automorphize_smul_left [add_group α] [add_action α β]  (f : β → M)
+  (g : quotient (add_action.orbit_rel α β) → R) :
+  add_action.automorphize ((g ∘ quotient.mk') • f)
+    = g • (add_action.automorphize f : quotient (add_action.orbit_rel α β) → M) :=
+begin
+  ext x,
+  apply quotient.induction_on' x,
+  intro b,
+  simp only [add_action.automorphize, pi.smul_apply', function.comp_app],
+  set π : β → quotient (add_action.orbit_rel α β) := quotient.mk',
+  have H₁ : ∀ a : α, π (a +ᵥ b) = π b,
+  { intro a,
+    rw quotient.eq_rel,
+    fconstructor,
+    exact a,
+    simp, },
+  change ∑' a : α, g (π (a +ᵥ b)) • f (a +ᵥ b) = g (π b) • ∑' a : α, f (a +ᵥ b),
+  simp_rw [H₁],
+  exact tsum_const_smul'' _,
+end
+
+attribute [to_additive mul_action.automorphize_smul_left] add_action.automorphize_smul_left
+
+section
+
+variables {G : Type*} [group G] {Γ : subgroup G}
+
+/-- Given a subgroup `Γ` of a group `G`, and a function `f : G → M`, we "automorphize" `f` to a
+  function `G ⧸ Γ → M` by summing over `Γ` orbits, `g ↦ ∑' (γ : Γ), f(γ • g)`. -/
+@[to_additive "Given a subgroup `Γ` of an additive group `G`, and a function `f : G → M`, we
+  automorphize `f` to a function `G ⧸ Γ → M` by summing over `Γ` orbits,
+  `g ↦ ∑' (γ : Γ), f(γ • g)`."]
+def quotient_group.automorphize  (f : G → M) : G ⧸ Γ → M := mul_action.automorphize f
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
+  `R`-scalar multiplication. -/
+lemma quotient_group.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R) :
+  quotient_group.automorphize ((g ∘ quotient.mk') • f)
+    = g • (quotient_group.automorphize f : G ⧸ Γ → M) :=
+mul_action.automorphize_smul_left f g
+
+end
+
+section
+
+variables {G : Type*} [add_group G] {Γ : add_subgroup G}
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the `R`
+  -scalar multiplication. -/
+lemma quotient_add_group.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R) :
+  quotient_add_group.automorphize ((g ∘ quotient.mk') • f)
+    = g • (quotient_add_group.automorphize f : G ⧸ Γ → M) :=
+add_action.automorphize_smul_left f g
+
+end
+
+attribute [to_additive quotient_group.automorphize_smul_left]
+  quotient_add_group.automorphize_smul_left
+
+end automorphize

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

chore(topology/algebra/group): generalise instances (#15171)

Using the generalisation linter make the following generalisations in topology.algebra.group.basic. Note that topological spaces that are groups with continuous multiplication but noncontinuous inverse do exist at least when the space is noncompact (they are known as paratopological spaces) I do not claim that they are used in mathlib though ;).

In summary we generalise:

  • tendsto_inv_nhds_within_Ioi and all variants to only require continuous inverse rather that topological group
  • the continuous_inv operation on the multiplicative opposite to only require a has_inv, rather than a group
  • topological_group.t1_space from topological groups to only continuous mul
  • topological_group.regular_space (and t2_space) from assuming the base is t1 to just topological group.
  • compact_open_separated_mul_right/left, from topological group to mul_one_class with a continuous mul
  • various quotient_group.has_continuous_const_smul type lemmas to continuous_mul
  • tsum_sigma/tsum_prod from t1 to t0

and their additivised versions.

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -989,8 +989,6 @@ begin
     exact hde _ (h _ finset.sdiff_disjoint) _ (h _ finset.sdiff_disjoint) }
 end
 
-local attribute [instance] topological_add_group.t3_space
-
 /-- 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. -/
 lemma tendsto_tsum_compl_at_top_zero (f : β → α) :
@@ -1075,18 +1073,26 @@ lemma summable.prod_factor {f : β × γ → α} (h : summable f) (b : β) :
   summable (λ c, f (b, c)) :=
 h.comp_injective $ λ c₁ c₂ h, (prod.ext_iff.1 h).2
 
-lemma tsum_sigma [t1_space α] {γ : β → Type*} {f : (Σb:β, γ b) → α}
+section loc_instances
+-- enable inferring a T3-topological space from a topological group
+local attribute [instance] topological_add_group.t3_space
+-- disable getting a T0-space from a T3-space as this causes loops
+local attribute [-instance] t3_space.to_t0_space
+
+lemma tsum_sigma [t0_space α] {γ : β → Type*} {f : (Σb:β, γ b) → α}
   (ha : summable f) : ∑'p, f p = ∑'b c, f ⟨b, c⟩ :=
 tsum_sigma' (λ b, ha.sigma_factor b) ha
 
-lemma tsum_prod [t1_space α] {f : β × γ → α} (h : summable f) :
+lemma tsum_prod [t0_space α] {f : β × γ → α} (h : summable f) :
   ∑'p, f p = ∑'b c, f ⟨b, c⟩ :=
 tsum_prod' h h.prod_factor
 
-lemma tsum_comm [t1_space α] {f : β → γ → α} (h : summable (function.uncurry f)) :
+lemma tsum_comm [t0_space α] {f : β → γ → α} (h : summable (function.uncurry f)) :
   ∑' c b, f b c = ∑' b c, f b c :=
 tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 
+end loc_instances
+
 lemma tsum_subtype_add_tsum_subtype_compl [t2_space α] {f : β → α} (hf : summable f) (s : set β) :
   ∑' x : s, f x + ∑' x : sᶜ, f x = ∑' x, f x :=
 ((hf.subtype s).has_sum.add_compl (hf.subtype {x | x ∉ s}).has_sum).unique hf.has_sum

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -153,7 +153,7 @@ theorem hasSum_iff_hasSum {g : γ → α}
 #align has_sum_iff_has_sum hasSum_iff_hasSum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 #print Function.Injective.hasSum_iff /-
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
@@ -161,7 +161,7 @@ theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 #print Function.Injective.summable_iff /-
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
@@ -225,7 +225,7 @@ protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → 
 #align set.finite.summable Set.Finite.summable
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print hasSum_sum_of_ne_finset_zero /-
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
@@ -233,14 +233,14 @@ theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Has
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print summable_of_ne_finset_zero /-
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 #print hasSum_single /-
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
@@ -634,7 +634,7 @@ theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 :=
 #align tsum_empty tsum_empty
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print tsum_eq_sum /-
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     ∑' b, f b = ∑ b in s, f b :=
@@ -642,7 +642,7 @@ theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s),
 #align tsum_eq_sum tsum_eq_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x «expr ∉ » s) -/
 #print sum_eq_tsum_indicator /-
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
@@ -673,7 +673,7 @@ theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := b
 #align tsum_bool tsum_bool
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 #print tsum_eq_single /-
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : ∑' b, f b = f b :=
   (hasSum_single b hf).tsum_eq
@@ -681,7 +681,7 @@ theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 #print tsum_tsum_eq_single /-
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
@@ -1092,14 +1092,14 @@ theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α)
   refine' ⟨fun h => hf.add_compl h, fun h => _⟩
   rw [hasSum_subtype_iff_indicator] at hf ⊢
   rw [Set.indicator_compl]
-  simpa only [add_sub_cancel'] using h.sub hf
+  simpa only [add_sub_cancel_left] using h.sub hf
 #align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iff
 -/
 
 #print HasSum.hasSum_iff_compl /-
 theorem HasSum.hasSum_iff_compl {s : Set β} (hf : HasSum (f ∘ coe : s → α) a₁) :
     HasSum f a₂ ↔ HasSum (f ∘ coe : sᶜ → α) (a₂ - a₁) :=
-  Iff.symm <| hf.hasSum_compl_iff.trans <| by rw [add_sub_cancel'_right]
+  Iff.symm <| hf.hasSum_compl_iff.trans <| by rw [add_sub_cancel]
 #align has_sum.has_sum_iff_compl HasSum.hasSum_iff_compl
 -/
 
@@ -1183,7 +1183,7 @@ theorem tsum_eq_add_tsum_ite [DecidableEq β] (hf : Summable f) (b : β) :
     ∑' n, f n = f b + ∑' n, ite (n = b) 0 (f n) :=
   by
   rw [(hasSum_ite_sub_hasSum hf.has_sum b).tsum_eq]
-  exact (add_sub_cancel'_right _ _).symm
+  exact (add_sub_cancel _ _).symm
 #align tsum_eq_add_tsum_ite tsum_eq_add_tsum_ite
 -/
 
@@ -1325,12 +1325,12 @@ theorem HasSum.nat_add_neg {α : Type _} [AddCommMonoid α] [TopologicalSpace α
       refine' ⟨Int.natAbs x, hv' _, _⟩
       · simp only [mem_image, exists_prop]
         exact ⟨x, hx, rfl⟩
-      · simp only [h'x, Int.coe_natAbs, abs_eq_self]
+      · simp only [h'x, Int.natCast_natAbs, abs_eq_self]
     · right
       refine' ⟨Int.natAbs x, hv' _, _⟩
       · simp only [mem_image, exists_prop]
         exact ⟨x, hx, rfl⟩
-      · simp only [abs_of_nonpos h'x, Int.coe_natAbs, neg_neg]
+      · simp only [abs_of_nonpos h'x, Int.natCast_natAbs, neg_neg]
   refine' ⟨u1 ∪ u2, A, _⟩
   calc
     ∑ x in u1 ∪ u2, (f x + ite (x = 0) (f 0) 0) = ∑ x in u1 ∪ u2, f x + ∑ x in u1 ∩ u2, f x :=
@@ -1377,8 +1377,8 @@ theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
 
 variable [UniformAddGroup α] {f g : β → α} {a a₁ a₂ : α}
 
-#print cauchySeq_finset_iff_vanishing /-
-theorem cauchySeq_finset_iff_vanishing :
+#print cauchySeq_finset_iff_sum_vanishing /-
+theorem cauchySeq_finset_iff_sum_vanishing :
     (CauchySeq fun s : Finset β => ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → ∑ b in t, f b ∈ e :=
   by
@@ -1391,7 +1391,7 @@ theorem cauchySeq_finset_iff_vanishing :
     use s₁ ∪ s₂
     intro t ht
     specialize h (s₁ ∪ s₂, s₁ ∪ s₂ ∪ t) ⟨le_sup_left, le_sup_of_le_left le_sup_right⟩
-    simpa only [Finset.sum_union ht.symm, add_sub_cancel'] using h
+    simpa only [Finset.sum_union ht.symm, add_sub_cancel_left] using h
   · intro h e he
     rcases exists_nhds_half_neg he with ⟨d, hd, hde⟩
     rcases h d hd with ⟨s, h⟩
@@ -1401,7 +1401,7 @@ theorem cauchySeq_finset_iff_vanishing :
       simp only [(Finset.sum_sdiff ht₁).symm, (Finset.sum_sdiff ht₂).symm, add_sub_add_right_eq_sub]
     simp only [this]
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
-#align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishing
+#align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_sum_vanishing
 -/
 
 #print tendsto_tsum_compl_atTop_zero /-
@@ -1415,7 +1415,7 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
     rcases exists_mem_nhds_isClosed_subset he with ⟨o, ho, o_closed, oe⟩
     simp only [le_eq_subset, Set.mem_preimage, mem_at_top_sets, Filter.mem_map, ge_iff_le]
     obtain ⟨s, hs⟩ : ∃ s : Finset β, ∀ t : Finset β, Disjoint t s → ∑ b : β in t, f b ∈ o :=
-      cauchySeq_finset_iff_vanishing.1 (tendsto.cauchy_seq H.has_sum) o ho
+      cauchySeq_finset_iff_sum_vanishing.1 (tendsto.cauchy_seq H.has_sum) o ho
     refine' ⟨s, fun a sa => oe _⟩
     have A : Summable fun b : { x // x ∉ a } => f b := a.summable_compl_iff.2 H
     apply IsClosed.mem_of_tendsto o_closed A.has_sum (eventually_of_forall fun b => _)
@@ -1440,7 +1440,7 @@ variable [CompleteSpace α]
 #print summable_iff_vanishing /-
 theorem summable_iff_vanishing :
     Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → ∑ b in t, f b ∈ e := by
-  rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
+  rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_sum_vanishing]
 #align summable_iff_vanishing summable_iff_vanishing
 -/
 
@@ -1578,7 +1578,7 @@ theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0
   letI : UniformSpace G := TopologicalAddGroup.toUniformSpace G
   letI : UniformAddGroup G := comm_topologicalAddGroup_is_uniform
   rcases hf with ⟨y, hy⟩
-  exact cauchySeq_finset_iff_vanishing.1 hy.cauchy_seq e he
+  exact cauchySeq_finset_iff_sum_vanishing.1 hy.cauchy_seq e he
 #align summable.vanishing Summable.vanishing
 -/
 
Diff
@@ -487,10 +487,12 @@ theorem Summable.compl_add {s : Set β} (hs : Summable (f ∘ coe : sᶜ → α)
 #align summable.compl_add Summable.compl_add
 -/
 
+#print Summable.even_add_odd /-
 theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) : Summable f :=
   (he.HasSum.even_add_odd ho.HasSum).Summable
 #align summable.even_add_odd Summable.even_add_odd
+-/
 
 #print HasSum.sigma /-
 theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} {g : β → α} {a : α}
@@ -1279,36 +1281,37 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
 #align has_sum.int_rec HasSum.int_rec
 -/
 
-#print HasSum.nonneg_add_neg /-
-theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
+#print HasSum.of_nat_of_neg_add_one /-
+theorem HasSum.of_nat_of_neg_add_one {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + b) :=
   by
   simp_rw [← Int.negSucc_coe] at hneg
   convert hnonneg.int_rec hneg using 1
   ext (i | j) <;> rfl
-#align has_sum.nonneg_add_neg HasSum.nonneg_add_neg
+#align has_sum.nonneg_add_neg HasSum.of_nat_of_neg_add_one
 -/
 
-#print HasSum.pos_add_zero_add_neg /-
-theorem HasSum.pos_add_zero_add_neg {b : α} {f : ℤ → α} (hpos : HasSum (fun n : ℕ => f (n + 1)) a)
-    (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + f 0 + b) :=
+#print HasSum.of_add_one_of_neg_add_one /-
+theorem HasSum.of_add_one_of_neg_add_one {b : α} {f : ℤ → α}
+    (hpos : HasSum (fun n : ℕ => f (n + 1)) a) (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) :
+    HasSum f (a + f 0 + b) :=
   haveI : ∀ g : ℕ → α, HasSum (fun k => g (k + 1)) a → HasSum g (a + g 0) := by intro g hg;
     simpa using (hasSum_nat_add_iff _).mp hg
-  (this (fun n => f n) hpos).nonneg_add_neg hneg
-#align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_neg
+  (this (fun n => f n) hpos).of_nat_of_neg_add_one hneg
+#align has_sum.pos_add_zero_add_neg HasSum.of_add_one_of_neg_add_one
 -/
 
-#print summable_int_of_summable_nat /-
-theorem summable_int_of_summable_nat {f : ℤ → α} (hp : Summable fun n : ℕ => f n)
+#print Summable.of_nat_of_neg /-
+theorem Summable.of_nat_of_neg {f : ℤ → α} (hp : Summable fun n : ℕ => f n)
     (hn : Summable fun n : ℕ => f (-n)) : Summable f :=
-  (HasSum.nonneg_add_neg hp.HasSum <| Summable.hasSum <| (summable_nat_add_iff 1).mpr hn).Summable
-#align summable_int_of_summable_nat summable_int_of_summable_nat
+  (HasSum.of_nat_of_neg_add_one hp.HasSum <|
+      Summable.hasSum <| (summable_nat_add_iff 1).mpr hn).Summable
+#align summable_int_of_summable_nat Summable.of_nat_of_neg
 -/
 
-#print HasSum.sum_nat_of_sum_int /-
-theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalSpace α]
-    [ContinuousAdd α] {a : α} {f : ℤ → α} (hf : HasSum f a) :
-    HasSum (fun n : ℕ => f n + f (-n)) (a + f 0) :=
+#print HasSum.nat_add_neg /-
+theorem HasSum.nat_add_neg {α : Type _} [AddCommMonoid α] [TopologicalSpace α] [ContinuousAdd α]
+    {a : α} {f : ℤ → α} (hf : HasSum f a) : HasSum (fun n : ℕ => f n + f (-n)) (a + f 0) :=
   by
   apply (hf.add (hasSum_ite_eq (0 : ℤ) (f 0))).hasSum_of_sum_eq fun u => _
   refine' ⟨u.image Int.natAbs, fun v' hv' => _⟩
@@ -1353,7 +1356,7 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
     _ = ∑ b in v', f b + ∑ b in v', f (-b) := by
       simp only [sum_image, Nat.cast_inj, imp_self, imp_true_iff, neg_inj]
     _ = ∑ b in v', (f b + f (-b)) := sum_add_distrib.symm
-#align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_int
+#align has_sum.sum_nat_of_sum_int HasSum.nat_add_neg
 -/
 
 end Nat
Diff
@@ -342,7 +342,7 @@ protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [Topologica
     (hg' : Continuous g') (hinv : Function.LeftInverse g' g) : Summable (g ∘ f) ↔ Summable f :=
   ⟨fun h => by
     have := h.map _ hg'
-    rwa [← Function.comp.assoc, hinv.id] at this , fun h => h.map _ hg⟩
+    rwa [← Function.comp.assoc, hinv.id] at this, fun h => h.map _ hg⟩
 #align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverse
 -/
 
@@ -501,7 +501,7 @@ theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ
   rcases mem_at_top_sets.mp (ha hs) with ⟨u, hu⟩
   use u.image Sigma.fst, trivial
   intro bs hbs
-  simp only [Set.mem_preimage, ge_iff_le, Finset.le_iff_subset] at hu 
+  simp only [Set.mem_preimage, ge_iff_le, Finset.le_iff_subset] at hu
   have :
     tendsto (fun t : Finset (Σ b, γ b) => ∑ p in t.filterₓ fun p => p.1 ∈ bs, f p) at_top
       (𝓝 <| ∑ b in bs, g b) :=
@@ -554,7 +554,7 @@ theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α]
     · simpa only [Function.update_apply, hb', eq_self_iff_true] using add_comm (f b) x
     · simp only [Function.update_apply, hb', if_false]
   have h := hf.add (hasSum_ite_eq b x)
-  simp_rw [this] at h 
+  simp_rw [this] at h
   exact HasSum.unique h (hf'.add (hasSum_ite_eq b (f b)))
 #align has_sum.update' HasSum.update'
 -/
@@ -909,7 +909,7 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
   symm; refine' tsum_eq_tsum_of_ne_zero_bij (fun a => Option.get (H a.1 a.2)) _ _ _
   · rintro ⟨m, hm⟩ ⟨n, hn⟩ e
     have := mem_decode₂.1 (Option.get_mem (H n hn))
-    rwa [← e, mem_decode₂.1 (Option.get_mem (H m hm))] at this 
+    rwa [← e, mem_decode₂.1 (Option.get_mem (H m hm))] at this
   · intro b h
     refine' ⟨⟨encode b, _⟩, _⟩
     · simp only [mem_support, encodek₂] at h ⊢; convert h; simp [Set.ext_iff, encodek₂]
@@ -1252,7 +1252,7 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     simpa only [h₀, sub_self] using tendsto.sub h₁ hf.has_sum.tendsto_sum_nat
   · convert tendsto_const_nhds
     ext1 i
-    rw [← summable_nat_add_iff i] at hf 
+    rw [← summable_nat_add_iff i] at hf
     · exact tsum_eq_zero_of_not_summable hf
     · infer_instance
 #align tendsto_sum_nat_add tendsto_sum_nat_add
@@ -1283,7 +1283,7 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
 theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + b) :=
   by
-  simp_rw [← Int.negSucc_coe] at hneg 
+  simp_rw [← Int.negSucc_coe] at hneg
   convert hnonneg.int_rec hneg using 1
   ext (i | j) <;> rfl
 #align has_sum.nonneg_add_neg HasSum.nonneg_add_neg
@@ -1341,7 +1341,7 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
         simpa only [mem_sdiff, mem_union, mem_image, neg_eq_zero, or_self_iff, mem_inter,
           and_self_iff, and_not_self_iff] using hx
       · intro x hx
-        simp only [mem_inter, mem_image, exists_prop] at hx 
+        simp only [mem_inter, mem_image, exists_prop] at hx
         have : x = 0 := by
           apply le_antisymm
           · rcases hx.2 with ⟨a, ha, rfl⟩
@@ -1456,7 +1456,7 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
             by
             refine' Finset.sum_subset (Finset.filter_subset _ _) _
             intro b hbt hb
-            simp only [(· ∉ ·), Finset.mem_filter, and_iff_right hbt] at hb 
+            simp only [(· ∉ ·), Finset.mem_filter, and_iff_right hbt] at hb
             exact (h b).resolve_right hb
       Eq ▸ hs _ <| Finset.disjoint_of_subset_left (Finset.filter_subset _ _) ht⟩
 #align summable.summable_of_eq_zero_or_self Summable.summable_of_eq_zero_or_self
Diff
@@ -487,12 +487,10 @@ theorem Summable.compl_add {s : Set β} (hs : Summable (f ∘ coe : sᶜ → α)
 #align summable.compl_add Summable.compl_add
 -/
 
-#print Summable.even_add_odd /-
 theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) : Summable f :=
   (he.HasSum.even_add_odd ho.HasSum).Summable
 #align summable.even_add_odd Summable.even_add_odd
--/
 
 #print HasSum.sigma /-
 theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} {g : β → α} {a : α}
Diff
@@ -590,7 +590,19 @@ theorem tsum_congr_set_coe (f : β → α) {s t : Set β} (h : s = t) : ∑' x :
 /- warning: tsum_zero' clashes with tsum_zero -> tsum_zero
 Case conversion may be inaccurate. Consider using '#align tsum_zero' tsum_zeroₓ'. -/
 #print tsum_zero /-
-theorem tsum_zero (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by classical
+theorem tsum_zero (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by
+  classical
+  rw [tsum, dif_pos summable_zero]
+  suffices ∀ x : α, HasSum (fun b : β => (0 : α)) x → x = 0 by
+    exact this _ (Classical.choose_spec _)
+  intro x hx
+  contrapose! hx
+  simp only [HasSum, tendsto_nhds, Finset.sum_const_zero, Filter.mem_atTop_sets, ge_iff_le,
+    Finset.le_eq_subset, Set.mem_preimage, Classical.not_forall, not_exists, exists_prop,
+    exists_and_right]
+  refine' ⟨{0}ᶜ, ⟨is_open_compl_iff.mpr hz, _⟩, fun y => ⟨⟨y, subset_refl _⟩, _⟩⟩
+  · simpa using hx
+  · simp
 #align tsum_zero' tsum_zero
 -/
 
Diff
@@ -590,19 +590,7 @@ theorem tsum_congr_set_coe (f : β → α) {s t : Set β} (h : s = t) : ∑' x :
 /- warning: tsum_zero' clashes with tsum_zero -> tsum_zero
 Case conversion may be inaccurate. Consider using '#align tsum_zero' tsum_zeroₓ'. -/
 #print tsum_zero /-
-theorem tsum_zero (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by
-  classical
-  rw [tsum, dif_pos summable_zero]
-  suffices ∀ x : α, HasSum (fun b : β => (0 : α)) x → x = 0 by
-    exact this _ (Classical.choose_spec _)
-  intro x hx
-  contrapose! hx
-  simp only [HasSum, tendsto_nhds, Finset.sum_const_zero, Filter.mem_atTop_sets, ge_iff_le,
-    Finset.le_eq_subset, Set.mem_preimage, Classical.not_forall, not_exists, exists_prop,
-    exists_and_right]
-  refine' ⟨{0}ᶜ, ⟨is_open_compl_iff.mpr hz, _⟩, fun y => ⟨⟨y, subset_refl _⟩, _⟩⟩
-  · simpa using hx
-  · simp
+theorem tsum_zero (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by classical
 #align tsum_zero' tsum_zero
 -/
 
Diff
@@ -581,10 +581,10 @@ section tsum
 
 variable [AddCommMonoid α] [TopologicalSpace α]
 
-#print tsum_congr_subtype /-
-theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) : ∑' x : s, f x = ∑' x : t, f x :=
+#print tsum_congr_set_coe /-
+theorem tsum_congr_set_coe (f : β → α) {s t : Set β} (h : s = t) : ∑' x : s, f x = ∑' x : t, f x :=
   by rw [h]
-#align tsum_congr_subtype tsum_congr_subtype
+#align tsum_congr_subtype tsum_congr_set_coe
 -/
 
 /- warning: tsum_zero' clashes with tsum_zero -> tsum_zero
Diff
@@ -434,7 +434,7 @@ theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι →
     HasSum (f ∘ coe : (⋃ i ∈ s, t i) → α) (∑ i in s, a i) :=
   by
   simp_rw [hasSum_subtype_iff_indicator] at *
-  rw [Set.indicator_finset_biUnion _ _ hs]
+  rw [Finset.indicator_biUnion _ _ hs]
   exact hasSum_sum hf
 #align has_sum_sum_disjoint hasSum_sum_disjoint
 -/
Diff
@@ -598,7 +598,8 @@ theorem tsum_zero (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 :=
   intro x hx
   contrapose! hx
   simp only [HasSum, tendsto_nhds, Finset.sum_const_zero, Filter.mem_atTop_sets, ge_iff_le,
-    Finset.le_eq_subset, Set.mem_preimage, not_forall, not_exists, exists_prop, exists_and_right]
+    Finset.le_eq_subset, Set.mem_preimage, Classical.not_forall, not_exists, exists_prop,
+    exists_and_right]
   refine' ⟨{0}ᶜ, ⟨is_open_compl_iff.mpr hz, _⟩, fun y => ⟨⟨y, subset_refl _⟩, _⟩⟩
   · simpa using hx
   · simp
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl
 -/
-import Mathbin.Data.Nat.Parity
-import Mathbin.Logic.Encodable.Lattice
-import Mathbin.Topology.Algebra.UniformGroup
-import Mathbin.Topology.Algebra.Star
+import Data.Nat.Parity
+import Logic.Encodable.Lattice
+import Topology.Algebra.UniformGroup
+import Topology.Algebra.Star
 
 #align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b52265189f3fb43aa631edffce5d060fafaf82f"
 
@@ -153,7 +153,7 @@ theorem hasSum_iff_hasSum {g : γ → α}
 #align has_sum_iff_has_sum hasSum_iff_hasSum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 #print Function.Injective.hasSum_iff /-
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
@@ -161,7 +161,7 @@ theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 #print Function.Injective.summable_iff /-
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
@@ -225,7 +225,7 @@ protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → 
 #align set.finite.summable Set.Finite.summable
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print hasSum_sum_of_ne_finset_zero /-
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
@@ -233,14 +233,14 @@ theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Has
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print summable_of_ne_finset_zero /-
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 #print hasSum_single /-
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
@@ -633,7 +633,7 @@ theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 :=
 #align tsum_empty tsum_empty
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print tsum_eq_sum /-
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     ∑' b, f b = ∑ b in s, f b :=
@@ -641,7 +641,7 @@ theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s),
 #align tsum_eq_sum tsum_eq_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x «expr ∉ » s) -/
 #print sum_eq_tsum_indicator /-
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
@@ -672,7 +672,7 @@ theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := b
 #align tsum_bool tsum_bool
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 #print tsum_eq_single /-
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : ∑' b, f b = f b :=
   (hasSum_single b hf).tsum_eq
@@ -680,7 +680,7 @@ theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 #print tsum_tsum_eq_single /-
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
Diff
@@ -1626,6 +1626,7 @@ theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : ∑' i, b •
 #align tsum_const_smul tsum_const_smul
 -/
 
+#print tsum_const_smul' /-
 /-- Infinite sums commute with scalar multiplication. Version for scalars living in a `group`, but
   not requiring any summability hypothesis. -/
 theorem tsum_const_smul' {γ : Type _} [Group γ] [DistribMulAction γ α] [ContinuousConstSMul γ α]
@@ -1640,7 +1641,9 @@ theorem tsum_const_smul' {γ : Type _} [Group γ] [DistribMulAction γ α] [Cont
   change ¬Summable (mul_g ∘ f)
   rwa [Summable.map_iff_of_equiv mul_g] <;> apply continuous_const_smul
 #align tsum_const_smul' tsum_const_smul'
+-/
 
+#print tsum_const_smul'' /-
 /-- Infinite sums commute with scalar multiplication. Version for scalars living in a
   `division_ring`; no summability hypothesis. This could be made to work for a
   `[group_with_zero γ]` if there was such a thing as `distrib_mul_action_with_zero`. -/
@@ -1658,6 +1661,7 @@ theorem tsum_const_smul'' {γ : Type _} [DivisionRing γ] [Module γ α] [Contin
   change ¬Summable (mul_g ∘ f)
   rwa [Summable.map_iff_of_equiv mul_g] <;> apply continuous_const_smul
 #align tsum_const_smul'' tsum_const_smul''
+-/
 
 end ConstSmul
 
@@ -1846,6 +1850,7 @@ section Automorphize
 variable {M : Type _} [TopologicalSpace M] [AddCommMonoid M] [T2Space M] {R : Type _}
   [DivisionRing R] [Module R M] [ContinuousConstSMul R M]
 
+#print MulAction.automorphize /-
 /-- Given a group `α` acting on a type `β`, and a function `f : β → M`, we "automorphize" `f` to a
   function `β ⧸ α → M` by summing over `α` orbits, `b ↦ ∑' (a : α), f(a • b)`. -/
 @[to_additive
@@ -1858,7 +1863,9 @@ def MulAction.automorphize [Group α] [MulAction α β] (f : β → M) :
       simpa [mul_smul] using (Equiv.mulRight a).tsum_eq fun a' => f (a' • b₂))
 #align mul_action.automorphize MulAction.automorphize
 #align add_action.automorphize AddAction.automorphize
+-/
 
+#print MulAction.automorphize_smul_left /-
 /-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
   `R`-scalar multiplication. -/
 theorem MulAction.automorphize_smul_left [Group α] [MulAction α β] (f : β → M)
@@ -1881,7 +1888,9 @@ theorem MulAction.automorphize_smul_left [Group α] [MulAction α β] (f : β 
   simp_rw [H₁]
   exact tsum_const_smul'' _
 #align mul_action.automorphize_smul_left MulAction.automorphize_smul_left
+-/
 
+#print AddAction.automorphize_smul_left /-
 /-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
   `R`-scalar multiplication. -/
 theorem AddAction.automorphize_smul_left [AddGroup α] [AddAction α β] (f : β → M)
@@ -1904,6 +1913,7 @@ theorem AddAction.automorphize_smul_left [AddGroup α] [AddAction α β] (f : β
   simp_rw [H₁]
   exact tsum_const_smul'' _
 #align add_action.automorphize_smul_left AddAction.automorphize_smul_left
+-/
 
 attribute [to_additive MulAction.automorphize_smul_left] AddAction.automorphize_smul_left
 
@@ -1911,6 +1921,7 @@ section
 
 variable {G : Type _} [Group G] {Γ : Subgroup G}
 
+#print QuotientGroup.automorphize /-
 /-- Given a subgroup `Γ` of a group `G`, and a function `f : G → M`, we "automorphize" `f` to a
   function `G ⧸ Γ → M` by summing over `Γ` orbits, `g ↦ ∑' (γ : Γ), f(γ • g)`. -/
 @[to_additive
@@ -1918,8 +1929,9 @@ variable {G : Type _} [Group G] {Γ : Subgroup G}
 def QuotientGroup.automorphize (f : G → M) : G ⧸ Γ → M :=
   MulAction.automorphize f
 #align quotient_group.automorphize QuotientGroup.automorphize
-#align quotient_add_group.automorphize quotientAddGroup.automorphize
+-/
 
+#print QuotientGroup.automorphize_smul_left /-
 /-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
   `R`-scalar multiplication. -/
 theorem QuotientGroup.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R) :
@@ -1927,6 +1939,7 @@ theorem QuotientGroup.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R)
       g • (QuotientGroup.automorphize f : G ⧸ Γ → M) :=
   MulAction.automorphize_smul_left f g
 #align quotient_group.automorphize_smul_left QuotientGroup.automorphize_smul_left
+-/
 
 end
 
Diff
@@ -1515,7 +1515,7 @@ theorem Summable.prod_factor {f : β × γ → α} (h : Summable f) (b : β) :
 section LocInstances
 
 -- enable inferring a T3-topological space from a topological group
-attribute [local instance] TopologicalAddGroup.t3Space
+attribute [local instance] inferInstance
 
 -- disable getting a T0-space from a T3-space as this causes loops
 attribute [-instance] T3Space.to_t0Space
Diff
@@ -8,7 +8,7 @@ import Mathbin.Logic.Encodable.Lattice
 import Mathbin.Topology.Algebra.UniformGroup
 import Mathbin.Topology.Algebra.Star
 
-#align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b1890e71632be9e3b2086ab512c3259a7e9a3ef"
+#align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b52265189f3fb43aa631edffce5d060fafaf82f"
 
 /-!
 # Infinite sum over a topological monoid
@@ -1393,7 +1393,7 @@ theorem cauchySeq_finset_iff_vanishing :
   · intro h e he
     rcases exists_nhds_half_neg he with ⟨d, hd, hde⟩
     rcases h d hd with ⟨s, h⟩
-    use (s, s)
+    use(s, s)
     rintro ⟨t₁, t₂⟩ ⟨ht₁, ht₂⟩
     have : ∑ b in t₂, f b - ∑ b in t₁, f b = ∑ b in t₂ \ s, f b - ∑ b in t₁ \ s, f b := by
       simp only [(Finset.sum_sdiff ht₁).symm, (Finset.sum_sdiff ht₂).symm, add_sub_add_right_eq_sub]
@@ -1619,11 +1619,46 @@ theorem Summable.const_smul (b : γ) (hf : Summable f) : Summable fun i => b •
 -/
 
 #print tsum_const_smul /-
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a `monoid`, but
+  requiring a summability hypothesis. -/
 theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : ∑' i, b • f i = b • ∑' i, f i :=
   (hf.HasSum.const_smul _).tsum_eq
 #align tsum_const_smul tsum_const_smul
 -/
 
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a `group`, but
+  not requiring any summability hypothesis. -/
+theorem tsum_const_smul' {γ : Type _} [Group γ] [DistribMulAction γ α] [ContinuousConstSMul γ α]
+    [T2Space α] (g : γ) : ∑' i : β, g • f i = g • ∑' i : β, f i :=
+  by
+  by_cases hf : Summable f
+  · exact tsum_const_smul _ hf
+  rw [tsum_eq_zero_of_not_summable hf]
+  simp only [smul_zero]
+  let mul_g : α ≃+ α := DistribMulAction.toAddEquiv α g
+  apply tsum_eq_zero_of_not_summable
+  change ¬Summable (mul_g ∘ f)
+  rwa [Summable.map_iff_of_equiv mul_g] <;> apply continuous_const_smul
+#align tsum_const_smul' tsum_const_smul'
+
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a
+  `division_ring`; no summability hypothesis. This could be made to work for a
+  `[group_with_zero γ]` if there was such a thing as `distrib_mul_action_with_zero`. -/
+theorem tsum_const_smul'' {γ : Type _} [DivisionRing γ] [Module γ α] [ContinuousConstSMul γ α]
+    [T2Space α] (g : γ) : ∑' i : β, g • f i = g • ∑' i : β, f i :=
+  by
+  by_cases hf : Summable f
+  · exact tsum_const_smul _ hf
+  rw [tsum_eq_zero_of_not_summable hf]
+  simp only [smul_zero]
+  by_cases hg : g = 0
+  · simp [hg]
+  let mul_g : α ≃+ α := DistribMulAction.toAddEquiv₀ α g hg
+  apply tsum_eq_zero_of_not_summable
+  change ¬Summable (mul_g ∘ f)
+  rwa [Summable.map_iff_of_equiv mul_g] <;> apply continuous_const_smul
+#align tsum_const_smul'' tsum_const_smul''
+
 end ConstSmul
 
 /-! ### Product and pi types -/
@@ -1806,3 +1841,110 @@ theorem tsum_star : star (∑' b, f b) = ∑' b, star (f b) :=
 
 end ContinuousStar
 
+section Automorphize
+
+variable {M : Type _} [TopologicalSpace M] [AddCommMonoid M] [T2Space M] {R : Type _}
+  [DivisionRing R] [Module R M] [ContinuousConstSMul R M]
+
+/-- Given a group `α` acting on a type `β`, and a function `f : β → M`, we "automorphize" `f` to a
+  function `β ⧸ α → M` by summing over `α` orbits, `b ↦ ∑' (a : α), f(a • b)`. -/
+@[to_additive
+      "Given an additive group `α` acting on a type `β`, and a function `f : β → M`,\n  we automorphize `f` to a function `β ⧸ α → M` by summing over `α` orbits,\n  `b ↦ ∑' (a : α), f(a • b)`."]
+def MulAction.automorphize [Group α] [MulAction α β] (f : β → M) :
+    Quotient (MulAction.orbitRel α β) → M :=
+  @Quotient.lift _ _ (MulAction.orbitRel α β) (fun b => ∑' a : α, f (a • b))
+    (by
+      rintro b₁ b₂ ⟨a, rfl : a • b₂ = b₁⟩
+      simpa [mul_smul] using (Equiv.mulRight a).tsum_eq fun a' => f (a' • b₂))
+#align mul_action.automorphize MulAction.automorphize
+#align add_action.automorphize AddAction.automorphize
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
+  `R`-scalar multiplication. -/
+theorem MulAction.automorphize_smul_left [Group α] [MulAction α β] (f : β → M)
+    (g : Quotient (MulAction.orbitRel α β) → R) :
+    MulAction.automorphize (g ∘ Quotient.mk'' • f) =
+      g • (MulAction.automorphize f : Quotient (MulAction.orbitRel α β) → M) :=
+  by
+  ext x
+  apply Quotient.inductionOn' x
+  intro b
+  simp only [MulAction.automorphize, Pi.smul_apply', Function.comp_apply]
+  set π : β → Quotient (MulAction.orbitRel α β) := Quotient.mk''
+  have H₁ : ∀ a : α, π (a • b) = π b := by
+    intro a
+    rw [Quotient.eq_rel]
+    fconstructor
+    exact a
+    simp
+  change ∑' a : α, g (π (a • b)) • f (a • b) = g (π b) • ∑' a : α, f (a • b)
+  simp_rw [H₁]
+  exact tsum_const_smul'' _
+#align mul_action.automorphize_smul_left MulAction.automorphize_smul_left
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
+  `R`-scalar multiplication. -/
+theorem AddAction.automorphize_smul_left [AddGroup α] [AddAction α β] (f : β → M)
+    (g : Quotient (AddAction.orbitRel α β) → R) :
+    AddAction.automorphize (g ∘ Quotient.mk'' • f) =
+      g • (AddAction.automorphize f : Quotient (AddAction.orbitRel α β) → M) :=
+  by
+  ext x
+  apply Quotient.inductionOn' x
+  intro b
+  simp only [AddAction.automorphize, Pi.smul_apply', Function.comp_apply]
+  set π : β → Quotient (AddAction.orbitRel α β) := Quotient.mk''
+  have H₁ : ∀ a : α, π (a +ᵥ b) = π b := by
+    intro a
+    rw [Quotient.eq_rel]
+    fconstructor
+    exact a
+    simp
+  change ∑' a : α, g (π (a +ᵥ b)) • f (a +ᵥ b) = g (π b) • ∑' a : α, f (a +ᵥ b)
+  simp_rw [H₁]
+  exact tsum_const_smul'' _
+#align add_action.automorphize_smul_left AddAction.automorphize_smul_left
+
+attribute [to_additive MulAction.automorphize_smul_left] AddAction.automorphize_smul_left
+
+section
+
+variable {G : Type _} [Group G] {Γ : Subgroup G}
+
+/-- Given a subgroup `Γ` of a group `G`, and a function `f : G → M`, we "automorphize" `f` to a
+  function `G ⧸ Γ → M` by summing over `Γ` orbits, `g ↦ ∑' (γ : Γ), f(γ • g)`. -/
+@[to_additive
+      "Given a subgroup `Γ` of an additive group `G`, and a function `f : G → M`, we\n  automorphize `f` to a function `G ⧸ Γ → M` by summing over `Γ` orbits,\n  `g ↦ ∑' (γ : Γ), f(γ • g)`."]
+def QuotientGroup.automorphize (f : G → M) : G ⧸ Γ → M :=
+  MulAction.automorphize f
+#align quotient_group.automorphize QuotientGroup.automorphize
+#align quotient_add_group.automorphize quotientAddGroup.automorphize
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the 
+  `R`-scalar multiplication. -/
+theorem QuotientGroup.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R) :
+    QuotientGroup.automorphize (g ∘ Quotient.mk'' • f) =
+      g • (QuotientGroup.automorphize f : G ⧸ Γ → M) :=
+  MulAction.automorphize_smul_left f g
+#align quotient_group.automorphize_smul_left QuotientGroup.automorphize_smul_left
+
+end
+
+section
+
+variable {G : Type _} [AddGroup G] {Γ : AddSubgroup G}
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the `R`
+  -scalar multiplication. -/
+theorem quotientAddGroup.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R) :
+    quotientAddGroup.automorphize (g ∘ Quotient.mk'' • f) =
+      g • (quotientAddGroup.automorphize f : G ⧸ Γ → M) :=
+  AddAction.automorphize_smul_left f g
+#align quotient_add_group.automorphize_smul_left quotientAddGroup.automorphize_smul_left
+
+end
+
+attribute [to_additive QuotientGroup.automorphize_smul_left] quotientAddGroup.automorphize_smul_left
+
+end Automorphize
+
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl
-
-! This file was ported from Lean 3 source module topology.algebra.infinite_sum.basic
-! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Nat.Parity
 import Mathbin.Logic.Encodable.Lattice
 import Mathbin.Topology.Algebra.UniformGroup
 import Mathbin.Topology.Algebra.Star
 
+#align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b1890e71632be9e3b2086ab512c3259a7e9a3ef"
+
 /-!
 # Infinite sum over a topological monoid
 
@@ -156,7 +153,7 @@ theorem hasSum_iff_hasSum {g : γ → α}
 #align has_sum_iff_has_sum hasSum_iff_hasSum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 #print Function.Injective.hasSum_iff /-
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
@@ -164,7 +161,7 @@ theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 #print Function.Injective.summable_iff /-
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
@@ -228,7 +225,7 @@ protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → 
 #align set.finite.summable Set.Finite.summable
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print hasSum_sum_of_ne_finset_zero /-
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
@@ -236,14 +233,14 @@ theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Has
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print summable_of_ne_finset_zero /-
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 #print hasSum_single /-
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
@@ -636,7 +633,7 @@ theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 :=
 #align tsum_empty tsum_empty
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 #print tsum_eq_sum /-
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     ∑' b, f b = ∑ b in s, f b :=
@@ -644,7 +641,7 @@ theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s),
 #align tsum_eq_sum tsum_eq_sum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » s) -/
 #print sum_eq_tsum_indicator /-
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
@@ -675,7 +672,7 @@ theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := b
 #align tsum_bool tsum_bool
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 #print tsum_eq_single /-
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : ∑' b, f b = f b :=
   (hasSum_single b hf).tsum_eq
@@ -683,7 +680,7 @@ theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 #print tsum_tsum_eq_single /-
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
Diff
@@ -590,8 +590,10 @@ theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) : ∑' x :
 #align tsum_congr_subtype tsum_congr_subtype
 -/
 
-#print tsum_zero' /-
-theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by
+/- warning: tsum_zero' clashes with tsum_zero -> tsum_zero
+Case conversion may be inaccurate. Consider using '#align tsum_zero' tsum_zeroₓ'. -/
+#print tsum_zero /-
+theorem tsum_zero (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by
   classical
   rw [tsum, dif_pos summable_zero]
   suffices ∀ x : α, HasSum (fun b : β => (0 : α)) x → x = 0 by
@@ -603,13 +605,13 @@ theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 :=
   refine' ⟨{0}ᶜ, ⟨is_open_compl_iff.mpr hz, _⟩, fun y => ⟨⟨y, subset_refl _⟩, _⟩⟩
   · simpa using hx
   · simp
-#align tsum_zero' tsum_zero'
+#align tsum_zero' tsum_zero
 -/
 
 #print tsum_zero /-
 @[simp]
 theorem tsum_zero [T1Space α] : ∑' b : β, (0 : α) = 0 :=
-  tsum_zero' isClosed_singleton
+  tsum_zero isClosed_singleton
 #align tsum_zero tsum_zero
 -/
 
Diff
@@ -78,30 +78,39 @@ irreducible_def tsum {β} (f : β → α) :=
 #align tsum tsum
 -/
 
--- mathport name: «expr∑' , »
 notation3"∑' "-- see Note [operator precedence of big operators]
 (...)", "r:67:(scoped f => tsum f) => r
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
+#print Summable.hasSum /-
 theorem Summable.hasSum (ha : Summable f) : HasSum f (∑' b, f b) := by
   simp [ha, tsum] <;> exact some_spec ha
 #align summable.has_sum Summable.hasSum
+-/
 
+#print HasSum.summable /-
 theorem HasSum.summable (h : HasSum f a) : Summable f :=
   ⟨a, h⟩
 #align has_sum.summable HasSum.summable
+-/
 
+#print hasSum_zero /-
 /-- Constant zero function has sum `0` -/
 theorem hasSum_zero : HasSum (fun b => 0 : β → α) 0 := by simp [HasSum, tendsto_const_nhds]
 #align has_sum_zero hasSum_zero
+-/
 
+#print hasSum_empty /-
 theorem hasSum_empty [IsEmpty β] : HasSum f 0 := by convert hasSum_zero
 #align has_sum_empty hasSum_empty
+-/
 
+#print summable_zero /-
 theorem summable_zero : Summable (fun b => 0 : β → α) :=
   hasSum_zero.Summable
 #align summable_zero summable_zero
+-/
 
 #print summable_empty /-
 theorem summable_empty [IsEmpty β] : Summable f :=
@@ -109,16 +118,22 @@ theorem summable_empty [IsEmpty β] : Summable f :=
 #align summable_empty summable_empty
 -/
 
+#print tsum_eq_zero_of_not_summable /-
 theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : ∑' b, f b = 0 := by simp [tsum, h]
 #align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summable
+-/
 
+#print summable_congr /-
 theorem summable_congr (hfg : ∀ b, f b = g b) : Summable f ↔ Summable g :=
   iff_of_eq (congr_arg Summable <| funext hfg)
 #align summable_congr summable_congr
+-/
 
+#print Summable.congr /-
 theorem Summable.congr (hf : Summable f) (hfg : ∀ b, f b = g b) : Summable g :=
   (summable_congr hfg).mp hf
 #align summable.congr Summable.congr
+-/
 
 #print HasSum.hasSum_of_sum_eq /-
 theorem HasSum.hasSum_of_sum_eq {g : γ → α}
@@ -142,37 +157,49 @@ theorem hasSum_iff_hasSum {g : γ → α}
 -/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+#print Function.Injective.hasSum_iff /-
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
   simp only [HasSum, tendsto, hg.map_at_top_finset_sum_eq hf]
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+#print Function.Injective.summable_iff /-
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
   exists_congr fun _ => hg.hasSum_iff hf
 #align function.injective.summable_iff Function.Injective.summable_iff
+-/
 
+#print hasSum_subtype_iff_of_support_subset /-
 theorem hasSum_subtype_iff_of_support_subset {s : Set β} (hf : support f ⊆ s) :
     HasSum (f ∘ coe : s → α) a ↔ HasSum f a :=
   Subtype.coe_injective.hasSum_iff <| by simpa using support_subset_iff'.1 hf
 #align has_sum_subtype_iff_of_support_subset hasSum_subtype_iff_of_support_subset
+-/
 
+#print hasSum_subtype_iff_indicator /-
 theorem hasSum_subtype_iff_indicator {s : Set β} :
     HasSum (f ∘ coe : s → α) a ↔ HasSum (s.indicator f) a := by
   rw [← Set.indicator_range_comp, Subtype.range_coe,
     hasSum_subtype_iff_of_support_subset Set.support_indicator_subset]
 #align has_sum_subtype_iff_indicator hasSum_subtype_iff_indicator
+-/
 
+#print summable_subtype_iff_indicator /-
 theorem summable_subtype_iff_indicator {s : Set β} :
     Summable (f ∘ coe : s → α) ↔ Summable (s.indicator f) :=
   exists_congr fun _ => hasSum_subtype_iff_indicator
 #align summable_subtype_iff_indicator summable_subtype_iff_indicator
+-/
 
+#print hasSum_subtype_support /-
 @[simp]
 theorem hasSum_subtype_support : HasSum (f ∘ coe : support f → α) a ↔ HasSum f a :=
   hasSum_subtype_iff_of_support_subset <| Set.Subset.refl _
 #align has_sum_subtype_support hasSum_subtype_support
+-/
 
 #print hasSum_fintype /-
 theorem hasSum_fintype [Fintype β] (f : β → α) : HasSum f (∑ b, f b) :=
@@ -202,22 +229,29 @@ protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → 
 -/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
+#print hasSum_sum_of_ne_finset_zero /-
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
   (hasSum_subtype_iff_of_support_subset <| support_subset_iff'.2 hf).1 <| s.HasSum f
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
+#print summable_of_ne_finset_zero /-
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+#print hasSum_single /-
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
   hasSum_sum_of_ne_finset_zero <| by simpa [hf]
 #align has_sum_single hasSum_single
+-/
 
+#print hasSum_ite_eq /-
 theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
     HasSum (fun b' => if b' = b then a else 0) a :=
   by
@@ -226,10 +260,13 @@ theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
   intro b' hb'
   exact if_neg hb'
 #align has_sum_ite_eq hasSum_ite_eq
+-/
 
+#print hasSum_pi_single /-
 theorem hasSum_pi_single [DecidableEq β] (b : β) (a : α) : HasSum (Pi.single b a) a :=
   show HasSum (fun x => Pi.single b a x) a by simpa only [Pi.single_apply] using hasSum_ite_eq b a
 #align has_sum_pi_single hasSum_pi_single
+-/
 
 #print Equiv.hasSum_iff /-
 theorem Equiv.hasSum_iff (e : γ ≃ β) : HasSum (f ∘ e) a ↔ HasSum f a :=
@@ -250,17 +287,22 @@ theorem Equiv.summable_iff (e : γ ≃ β) : Summable (f ∘ e) ↔ Summable f :
 #align equiv.summable_iff Equiv.summable_iff
 -/
 
+#print Summable.prod_symm /-
 theorem Summable.prod_symm {f : β × γ → α} (hf : Summable f) : Summable fun p : γ × β => f p.symm :=
   (Equiv.prodComm γ β).summable_iff.2 hf
 #align summable.prod_symm Summable.prod_symm
+-/
 
+#print Equiv.hasSum_iff_of_support /-
 theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : HasSum f a ↔ HasSum g a :=
   by
   have : (g ∘ coe) ∘ e = f ∘ coe := funext he
   rw [← hasSum_subtype_support, ← this, e.has_sum_iff, hasSum_subtype_support]
 #align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_support
+-/
 
+#print hasSum_iff_hasSum_of_ne_zero_bij /-
 theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
     (hfg : ∀ x, f (i x) = g x) : HasSum f a ↔ HasSum g a :=
@@ -271,12 +313,16 @@ theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
           (hf y.coe_prop).imp fun x hx => Subtype.ext hx⟩)
       hfg
 #align has_sum_iff_has_sum_of_ne_zero_bij hasSum_iff_hasSum_of_ne_zero_bij
+-/
 
+#print Equiv.summable_iff_of_support /-
 theorem Equiv.summable_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : Summable f ↔ Summable g :=
   exists_congr fun _ => e.hasSum_iff_of_support he
 #align equiv.summable_iff_of_support Equiv.summable_iff_of_support
+-/
 
+#print HasSum.map /-
 protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasSum f a) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : HasSum (g ∘ f) (g a) :=
   have : (g ∘ fun s : Finset β => ∑ b in s, f b) = fun s : Finset β => ∑ b in s, g (f b) :=
@@ -284,12 +330,16 @@ protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasS
   show Tendsto (fun s : Finset β => ∑ b in s, g (f b)) atTop (𝓝 (g a)) from
     this ▸ (hg.Tendsto a).comp hf
 #align has_sum.map HasSum.map
+-/
 
+#print Summable.map /-
 protected theorem Summable.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : Summable f) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : Summable (g ∘ f) :=
   (hf.HasSum.map g hg).Summable
 #align summable.map Summable.map
+-/
 
+#print Summable.map_iff_of_leftInverse /-
 protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [TopologicalSpace γ] {G G'}
     [AddMonoidHomClass G α γ] [AddMonoidHomClass G' γ α] (g : G) (g' : G') (hg : Continuous g)
     (hg' : Continuous g') (hinv : Function.LeftInverse g' g) : Summable (g ∘ f) ↔ Summable f :=
@@ -297,13 +347,16 @@ protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [Topologica
     have := h.map _ hg'
     rwa [← Function.comp.assoc, hinv.id] at this , fun h => h.map _ hg⟩
 #align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverse
+-/
 
+#print Summable.map_iff_of_equiv /-
 /-- A special case of `summable.map_iff_of_left_inverse` for convenience -/
 protected theorem Summable.map_iff_of_equiv [AddCommMonoid γ] [TopologicalSpace γ] {G}
     [AddEquivClass G α γ] (g : G) (hg : Continuous g)
     (hg' : Continuous (AddEquivClass.inv g : γ → α)) : Summable (g ∘ f) ↔ Summable f :=
   Summable.map_iff_of_leftInverse g (g : α ≃+ γ).symm hg hg' (AddEquivClass.left_inv g)
 #align summable.map_iff_of_equiv Summable.map_iff_of_equiv
+-/
 
 #print HasSum.tendsto_sum_nat /-
 /-- If `f : ℕ → α` has sum `a`, then the partial sums `∑_{i=0}^{n-1} f i` converge to `a`. -/
@@ -313,9 +366,11 @@ theorem HasSum.tendsto_sum_nat {f : ℕ → α} (h : HasSum f a) :
 #align has_sum.tendsto_sum_nat HasSum.tendsto_sum_nat
 -/
 
+#print HasSum.unique /-
 theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f a₂ → a₁ = a₂ :=
   tendsto_nhds_unique
 #align has_sum.unique HasSum.unique
+-/
 
 #print Summable.hasSum_iff_tendsto_nat /-
 theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (hf : Summable f) :
@@ -327,22 +382,29 @@ theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (
 #align summable.has_sum_iff_tendsto_nat Summable.hasSum_iff_tendsto_nat
 -/
 
+#print Function.Surjective.summable_iff_of_hasSum_iff /-
 theorem Function.Surjective.summable_iff_of_hasSum_iff {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) {f : β → α} {g : γ → α'}
     (he : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : Summable f ↔ Summable g :=
   hes.exists.trans <| exists_congr <| @he
 #align function.surjective.summable_iff_of_has_sum_iff Function.Surjective.summable_iff_of_hasSum_iff
+-/
 
 variable [ContinuousAdd α]
 
+#print HasSum.add /-
 theorem HasSum.add (hf : HasSum f a) (hg : HasSum g b) : HasSum (fun b => f b + g b) (a + b) := by
   simp only [HasSum, sum_add_distrib] <;> exact hf.add hg
 #align has_sum.add HasSum.add
+-/
 
+#print Summable.add /-
 theorem Summable.add (hf : Summable f) (hg : Summable g) : Summable fun b => f b + g b :=
   (hf.HasSum.add hg.HasSum).Summable
 #align summable.add Summable.add
+-/
 
+#print hasSum_sum /-
 theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
     (∀ i ∈ s, HasSum (f i) (a i)) → HasSum (fun b => ∑ i in s, f i b) (∑ i in s, a i) :=
   Finset.induction_on s (by simp only [hasSum_zero, sum_empty, forall_true_iff])
@@ -350,12 +412,16 @@ theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
       simp (config := { contextual := true }) only [HasSum.add, sum_insert, mem_insert,
         forall_eq_or_imp, forall₂_true_iff, not_false_iff, forall_true_iff])
 #align has_sum_sum hasSum_sum
+-/
 
+#print summable_sum /-
 theorem summable_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
     Summable fun b => ∑ i in s, f i b :=
   (hasSum_sum fun i hi => (hf i hi).HasSum).Summable
 #align summable_sum summable_sum
+-/
 
+#print HasSum.add_disjoint /-
 theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : t → α) b) : HasSum (f ∘ coe : s ∪ t → α) (a + b) :=
   by
@@ -363,7 +429,9 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
   rw [Set.indicator_union_of_disjoint hs]
   exact ha.add hb
 #align has_sum.add_disjoint HasSum.add_disjoint
+-/
 
+#print hasSum_sum_disjoint /-
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
     HasSum (f ∘ coe : (⋃ i ∈ s, t i) → α) (∑ i in s, a i) :=
@@ -372,28 +440,38 @@ theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι →
   rw [Set.indicator_finset_biUnion _ _ hs]
   exact hasSum_sum hf
 #align has_sum_sum_disjoint hasSum_sum_disjoint
+-/
 
+#print HasSum.add_isCompl /-
 theorem HasSum.add_isCompl {s t : Set β} (hs : IsCompl s t) (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : t → α) b) : HasSum f (a + b) := by
   simpa [← hs.compl_eq] using
     (hasSum_subtype_iff_indicator.1 ha).add (hasSum_subtype_iff_indicator.1 hb)
 #align has_sum.add_is_compl HasSum.add_isCompl
+-/
 
+#print HasSum.add_compl /-
 theorem HasSum.add_compl {s : Set β} (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : sᶜ → α) b) : HasSum f (a + b) :=
   ha.add_isCompl isCompl_compl hb
 #align has_sum.add_compl HasSum.add_compl
+-/
 
+#print Summable.add_compl /-
 theorem Summable.add_compl {s : Set β} (hs : Summable (f ∘ coe : s → α))
     (hsc : Summable (f ∘ coe : sᶜ → α)) : Summable f :=
   (hs.HasSum.add_compl hsc.HasSum).Summable
 #align summable.add_compl Summable.add_compl
+-/
 
+#print HasSum.compl_add /-
 theorem HasSum.compl_add {s : Set β} (ha : HasSum (f ∘ coe : sᶜ → α) a)
     (hb : HasSum (f ∘ coe : s → α) b) : HasSum f (a + b) :=
   ha.add_isCompl isCompl_compl.symm hb
 #align has_sum.compl_add HasSum.compl_add
+-/
 
+#print HasSum.even_add_odd /-
 theorem HasSum.even_add_odd {f : ℕ → α} (he : HasSum (fun k => f (2 * k)) a)
     (ho : HasSum (fun k => f (2 * k + 1)) b) : HasSum f (a + b) :=
   by
@@ -403,17 +481,23 @@ theorem HasSum.even_add_odd {f : ℕ → α} (he : HasSum (fun k => f (2 * k)) a
   refine' he.add_is_compl _ ho
   simpa [(· ∘ ·)] using Nat.isCompl_even_odd
 #align has_sum.even_add_odd HasSum.even_add_odd
+-/
 
+#print Summable.compl_add /-
 theorem Summable.compl_add {s : Set β} (hs : Summable (f ∘ coe : sᶜ → α))
     (hsc : Summable (f ∘ coe : s → α)) : Summable f :=
   (hs.HasSum.compl_add hsc.HasSum).Summable
 #align summable.compl_add Summable.compl_add
+-/
 
+#print Summable.even_add_odd /-
 theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) : Summable f :=
   (he.HasSum.even_add_odd ho.HasSum).Summable
 #align summable.even_add_odd Summable.even_add_odd
+-/
 
+#print HasSum.sigma /-
 theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} {g : β → α} {a : α}
     (ha : HasSum f a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) : HasSum g a :=
   by
@@ -435,24 +519,32 @@ theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ
   refine' hsc.mem_of_tendsto this (eventually_at_top.2 ⟨u, fun t ht => hu _ fun x hx => _⟩)
   exact mem_filter.2 ⟨ht hx, hbs <| mem_image_of_mem _ hx⟩
 #align has_sum.sigma HasSum.sigma
+-/
 
+#print HasSum.prod_fiberwise /-
 /-- 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 HasSum.prod_fiberwise [RegularSpace α] {f : β × γ → α} {g : β → α} {a : α} (ha : HasSum f a)
     (hf : ∀ b, HasSum (fun c => f (b, c)) (g b)) : HasSum g a :=
   HasSum.sigma ((Equiv.sigmaEquivProd β γ).hasSum_iff.2 ha) hf
 #align has_sum.prod_fiberwise HasSum.prod_fiberwise
+-/
 
+#print Summable.sigma' /-
 theorem Summable.sigma' [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f)
     (hf : ∀ b, Summable fun c => f ⟨b, c⟩) : Summable fun b => ∑' c, f ⟨b, c⟩ :=
   (ha.HasSum.Sigma fun b => (hf b).HasSum).Summable
 #align summable.sigma' Summable.sigma'
+-/
 
+#print HasSum.sigma_of_hasSum /-
 theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} {g : β → α}
     {a : α} (ha : HasSum g a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) (hf' : Summable f) :
     HasSum f a := by simpa [(hf'.has_sum.sigma hf).unique ha] using hf'.has_sum
 #align has_sum.sigma_of_has_sum HasSum.sigma_of_hasSum
+-/
 
+#print HasSum.update' /-
 /-- Version of `has_sum.update` for `add_comm_monoid` rather than `add_comm_group`.
 Rather than showing that `f.update` has a specific sum in terms of `has_sum`,
 it gives a relationship between the sums of `f` and `f.update` given that both exist. -/
@@ -470,7 +562,9 @@ theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α]
   simp_rw [this] at h 
   exact HasSum.unique h (hf'.add (hasSum_ite_eq b (f b)))
 #align has_sum.update' HasSum.update'
+-/
 
+#print eq_add_of_hasSum_ite /-
 /-- Version of `has_sum_ite_sub_has_sum` for `add_comm_monoid` rather than `add_comm_group`.
 Rather than showing that the `ite` expression has a specific sum in terms of `has_sum`,
 it gives a relationship between the sums of `f` and `ite (n = b) 0 (f n)` given that both exist. -/
@@ -482,6 +576,7 @@ theorem eq_add_of_hasSum_ite {α β : Type _} [TopologicalSpace α] [AddCommMono
   convert hf'
   exact funext (f.update_apply b 0)
 #align eq_add_of_has_sum_ite eq_add_of_hasSum_ite
+-/
 
 end HasSum
 
@@ -495,6 +590,7 @@ theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) : ∑' x :
 #align tsum_congr_subtype tsum_congr_subtype
 -/
 
+#print tsum_zero' /-
 theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by
   classical
   rw [tsum, dif_pos summable_zero]
@@ -508,34 +604,46 @@ theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 :=
   · simpa using hx
   · simp
 #align tsum_zero' tsum_zero'
+-/
 
+#print tsum_zero /-
 @[simp]
 theorem tsum_zero [T1Space α] : ∑' b : β, (0 : α) = 0 :=
   tsum_zero' isClosed_singleton
 #align tsum_zero tsum_zero
+-/
 
 variable [T2Space α] {f g : β → α} {a a₁ a₂ : α}
 
+#print HasSum.tsum_eq /-
 theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
   (Summable.hasSum ⟨a, ha⟩).unique ha
 #align has_sum.tsum_eq HasSum.tsum_eq
+-/
 
+#print Summable.hasSum_iff /-
 theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
   Iff.intro HasSum.tsum_eq fun eq => Eq ▸ h.HasSum
 #align summable.has_sum_iff Summable.hasSum_iff
+-/
 
+#print tsum_empty /-
 @[simp]
 theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 :=
   hasSum_empty.tsum_eq
 #align tsum_empty tsum_empty
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
+#print tsum_eq_sum /-
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     ∑' b, f b = ∑ b in s, f b :=
   (hasSum_sum_of_ne_finset_zero hf).tsum_eq
 #align tsum_eq_sum tsum_eq_sum
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » s) -/
+#print sum_eq_tsum_indicator /-
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
   have : ∀ (x) (_ : x ∉ s), Set.indicator (↑s) f x = 0 := fun x hx =>
@@ -544,11 +652,14 @@ theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
         (Set.indicator_apply_eq_self.2 fun hx' => (hx' <| Finset.mem_coe.2 hx).elim).symm).trans
     (tsum_eq_sum this).symm
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
+-/
 
+#print tsum_congr /-
 theorem tsum_congr {α β : Type _} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α}
     (hfg : ∀ b, f b = g b) : ∑' b, f b = ∑' b, g b :=
   congr_arg tsum (funext hfg)
 #align tsum_congr tsum_congr
+-/
 
 #print tsum_fintype /-
 theorem tsum_fintype [Fintype β] (f : β → α) : ∑' b, f b = ∑ b, f b :=
@@ -556,46 +667,61 @@ theorem tsum_fintype [Fintype β] (f : β → α) : ∑' b, f b = ∑ b, f b :=
 #align tsum_fintype tsum_fintype
 -/
 
+#print tsum_bool /-
 theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := by
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
+-/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+#print tsum_eq_single /-
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : ∑' b, f b = f b :=
   (hasSum_single b hf).tsum_eq
 #align tsum_eq_single tsum_eq_single
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
+#print tsum_tsum_eq_single /-
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
     (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : ∑' (b') (c'), f b' c' = f b c :=
   calc
     ∑' (b') (c'), f b' c' = ∑' b', f b' c := tsum_congr fun b' => tsum_eq_single _ (hfc b')
     _ = f b c := tsum_eq_single _ hfb
 #align tsum_tsum_eq_single tsum_tsum_eq_single
+-/
 
+#print tsum_ite_eq /-
 @[simp]
 theorem tsum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
     (∑' b', if b' = b then a else 0) = a :=
   (hasSum_ite_eq b a).tsum_eq
 #align tsum_ite_eq tsum_ite_eq
+-/
 
+#print tsum_pi_single /-
 @[simp]
 theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : ∑' b', Pi.single b a b' = a :=
   (hasSum_pi_single b a).tsum_eq
 #align tsum_pi_single tsum_pi_single
+-/
 
+#print tsum_dite_right /-
 theorem tsum_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
     (∑' b : β, if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_right tsum_dite_right
+-/
 
+#print tsum_dite_left /-
 theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
     (∑' b : β, if h : P then x b h else 0) = if h : P then ∑' b : β, x b h else 0 := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_left tsum_dite_left
+-/
 
+#print Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum /-
 theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
     {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : ∑' b, f b = e (∑' c, g c) :=
@@ -604,11 +730,14 @@ theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [Ad
     have hf : ¬Summable f := mt (hes.summable_iff_of_hasSum_iff @h).1 hg
     simp [tsum, hf, hg, h0]
 #align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
+-/
 
+#print tsum_eq_tsum_of_hasSum_iff_hasSum /-
 theorem tsum_eq_tsum_of_hasSum_iff_hasSum {f : β → α} {g : γ → α}
     (h : ∀ {a}, HasSum f a ↔ HasSum g a) : ∑' b, f b = ∑' c, g c :=
   surjective_id.tsum_eq_tsum_of_hasSum_iff_hasSum rfl @h
 #align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSum
+-/
 
 #print Equiv.tsum_eq /-
 theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : ∑' c, f (j c) = ∑' b, f b :=
@@ -616,16 +745,20 @@ theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : ∑' c, f (j c) = ∑' b
 #align equiv.tsum_eq Equiv.tsum_eq
 -/
 
+#print Equiv.tsum_eq_tsum_of_support /-
 theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x, g (e x) = f x) : ∑' x, f x = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => e.hasSum_iff_of_support he
 #align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_support
+-/
 
+#print tsum_eq_tsum_of_ne_zero_bij /-
 theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
     (hfg : ∀ x, f (i x) = g x) : ∑' x, f x = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => hasSum_iff_hasSum_of_ne_zero_bij i hi hf hfg
 #align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bij
+-/
 
 /-! ### `tsum` on subsets -/
 
@@ -645,20 +778,27 @@ theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) : ∑' x : (s : Set
 #align finset.tsum_subtype' Finset.tsum_subtype'
 -/
 
+#print tsum_subtype /-
 theorem tsum_subtype (s : Set β) (f : β → α) : ∑' x : s, f x = ∑' x, s.indicator f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => hasSum_subtype_iff_indicator
 #align tsum_subtype tsum_subtype
+-/
 
+#print tsum_subtype_eq_of_support_subset /-
 theorem tsum_subtype_eq_of_support_subset {f : β → α} {s : Set β} (hs : support f ⊆ s) :
     ∑' x : s, f x = ∑' x, f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun x => hasSum_subtype_iff_of_support_subset hs
 #align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subset
+-/
 
+#print tsum_univ /-
 @[simp]
 theorem tsum_univ (f : β → α) : ∑' x : (Set.univ : Set β), f x = ∑' x, f x :=
   tsum_subtype_eq_of_support_subset <| Set.subset_univ _
 #align tsum_univ tsum_univ
+-/
 
+#print tsum_singleton /-
 @[simp]
 theorem tsum_singleton (b : β) (f : β → α) : ∑' x : ({b} : Set β), f x = f b :=
   by
@@ -669,6 +809,7 @@ theorem tsum_singleton (b : β) (f : β → α) : ∑' x : ({b} : Set β), f x =
     rwa [Set.mem_singleton_iff]
   · infer_instance
 #align tsum_singleton tsum_singleton
+-/
 
 #print tsum_image /-
 theorem tsum_image {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s) :
@@ -688,15 +829,20 @@ section ContinuousAdd
 
 variable [ContinuousAdd α]
 
+#print tsum_add /-
 theorem tsum_add (hf : Summable f) (hg : Summable g) : ∑' b, (f b + g b) = ∑' b, f b + ∑' b, g b :=
   (hf.HasSum.add hg.HasSum).tsum_eq
 #align tsum_add tsum_add
+-/
 
+#print tsum_sum /-
 theorem tsum_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
     ∑' b, ∑ i in s, f i b = ∑ i in s, ∑' b, f i b :=
   (hasSum_sum fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_sum tsum_sum
+-/
 
+#print tsum_eq_add_tsum_ite' /-
 /-- Version of `tsum_eq_add_tsum_ite` for `add_comm_monoid` rather than `add_comm_group`.
 Requires a different convergence assumption involving `function.update`. -/
 theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update b 0)) :
@@ -711,29 +857,36 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
     _ = f b + ∑' x, ite (x = b) 0 (f x) := by
       simp only [Function.update, eq_self_iff_true, if_true, eq_rec_constant, dite_eq_ite]
 #align tsum_eq_add_tsum_ite' tsum_eq_add_tsum_ite'
+-/
 
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
+#print tsum_sigma' /-
 theorem tsum_sigma' {γ : β → Type _} {f : (Σ b : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
     (h₂ : Summable f) : ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   (h₂.HasSum.Sigma fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_sigma' tsum_sigma'
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
+#print tsum_prod' /-
 theorem tsum_prod' {f : β × γ → δ} (h : Summable f) (h₁ : ∀ b, Summable fun c => f (b, c)) :
     ∑' p, f p = ∑' (b) (c), f (b, c) :=
   (h.HasSum.prod_fiberwise fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_prod' tsum_prod'
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
+#print tsum_comm' /-
 theorem tsum_comm' {f : β → γ → δ} (h : Summable (Function.uncurry f)) (h₁ : ∀ b, Summable (f b))
     (h₂ : ∀ c, Summable fun b => f b c) : ∑' (c) (b), f b c = ∑' (b) (c), f b c :=
   by
   erw [← tsum_prod' h h₁, ← tsum_prod' h.prod_symm h₂, ← (Equiv.prodComm γ β).tsum_eq (uncurry f)]
   rfl
 #align tsum_comm' tsum_comm'
+-/
 
 end ContinuousAdd
 
@@ -743,6 +896,7 @@ section Encodable
 
 variable [Encodable γ]
 
+#print tsum_iSup_decode₂ /-
 /-- 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_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
@@ -767,12 +921,15 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
     rw [show decode₂ γ n = _ from Option.get_mem (H n h)]
     congr; simp [ext_iff, -Option.some_get]
 #align tsum_supr_decode₂ tsum_iSup_decode₂
+-/
 
+#print tsum_iUnion_decode₂ /-
 /-- `tsum_supr_decode₂` specialized to the complete lattice of sets. -/
 theorem tsum_iUnion_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
     ∑' i, m (⋃ b ∈ decode₂ γ i, s b) = ∑' b, m (s b) :=
   tsum_iSup_decode₂ m m0 s
 #align tsum_Union_decode₂ tsum_iUnion_decode₂
+-/
 
 end Encodable
 
@@ -787,20 +944,25 @@ section Countable
 
 variable [Countable γ]
 
+#print rel_iSup_tsum /-
 /-- If a function is countably sub-additive then it is sub-additive on countable types -/
 theorem rel_iSup_tsum [CompleteLattice β] (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)) := by cases nonempty_encodable γ;
   rw [← supr_decode₂, ← tsum_iSup_decode₂ _ m0 s]; exact m_supr _
 #align rel_supr_tsum rel_iSup_tsum
+-/
 
+#print rel_iSup_sum /-
 /-- If a function is countably sub-additive then it is sub-additive on finite sets -/
 theorem rel_iSup_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : δ → β) (t : Finset δ) :
     R (m (⨆ d ∈ t, s d)) (∑ d in t, m (s d)) := by rw [iSup_subtype', ← Finset.tsum_subtype];
   exact rel_iSup_tsum m m0 R m_supr _
 #align rel_supr_sum rel_iSup_sum
+-/
 
+#print rel_sup_add /-
 /-- If a function is countably sub-additive then it is binary sub-additive -/
 theorem rel_sup_add [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s₁ s₂ : β) :
@@ -810,31 +972,40 @@ theorem rel_sup_add [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : 
   · simp only [iSup_bool_eq, cond]
   · rw [tsum_fintype, Fintype.sum_bool, cond, cond]
 #align rel_sup_add rel_sup_add
+-/
 
 end Countable
 
 variable [ContinuousAdd α]
 
+#print tsum_add_tsum_compl /-
 theorem tsum_add_tsum_compl {s : Set β} (hs : Summable (f ∘ coe : s → α))
     (hsc : Summable (f ∘ coe : sᶜ → α)) : ∑' x : s, f x + ∑' x : sᶜ, f x = ∑' x, f x :=
   (hs.HasSum.add_compl hsc.HasSum).tsum_eq.symm
 #align tsum_add_tsum_compl tsum_add_tsum_compl
+-/
 
+#print tsum_union_disjoint /-
 theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f ∘ coe : s → α))
     (ht : Summable (f ∘ coe : t → α)) : ∑' x : s ∪ t, f x = ∑' x : s, f x + ∑' x : t, f x :=
   (hs.HasSum.add_disjoint hd ht.HasSum).tsum_eq
 #align tsum_union_disjoint tsum_union_disjoint
+-/
 
+#print tsum_finset_bUnion_disjoint /-
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
     ∑' x : ⋃ i ∈ s, t i, f x = ∑ i in s, ∑' x : t i, f x :=
   (hasSum_sum_disjoint _ hd fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjoint
+-/
 
+#print tsum_even_add_odd /-
 theorem tsum_even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) : ∑' k, f (2 * k) + ∑' k, f (2 * k + 1) = ∑' k, f k :=
   (he.HasSum.even_add_odd ho.HasSum).tsum_eq.symm
 #align tsum_even_add_odd tsum_even_add_odd
+-/
 
 end tsum
 
@@ -844,40 +1015,57 @@ variable [AddCommGroup α] [TopologicalSpace α] [TopologicalAddGroup α]
 
 variable {f g : β → α} {a a₁ a₂ : α}
 
+#print HasSum.neg /-
 -- `by simpa using` speeds up elaboration. Why?
 theorem HasSum.neg (h : HasSum f a) : HasSum (fun b => -f b) (-a) := by
   simpa only using h.map (-AddMonoidHom.id α) continuous_neg
 #align has_sum.neg HasSum.neg
+-/
 
+#print Summable.neg /-
 theorem Summable.neg (hf : Summable f) : Summable fun b => -f b :=
   hf.HasSum.neg.Summable
 #align summable.neg Summable.neg
+-/
 
+#print Summable.of_neg /-
 theorem Summable.of_neg (hf : Summable fun b => -f b) : Summable f := by
   simpa only [neg_neg] using hf.neg
 #align summable.of_neg Summable.of_neg
+-/
 
+#print summable_neg_iff /-
 theorem summable_neg_iff : (Summable fun b => -f b) ↔ Summable f :=
   ⟨Summable.of_neg, Summable.neg⟩
 #align summable_neg_iff summable_neg_iff
+-/
 
+#print HasSum.sub /-
 theorem HasSum.sub (hf : HasSum f a₁) (hg : HasSum g a₂) : HasSum (fun b => f b - g b) (a₁ - a₂) :=
   by simp only [sub_eq_add_neg]; exact hf.add hg.neg
 #align has_sum.sub HasSum.sub
+-/
 
+#print Summable.sub /-
 theorem Summable.sub (hf : Summable f) (hg : Summable g) : Summable fun b => f b - g b :=
   (hf.HasSum.sub hg.HasSum).Summable
 #align summable.sub Summable.sub
+-/
 
+#print Summable.trans_sub /-
 theorem Summable.trans_sub (hg : Summable g) (hfg : Summable fun b => f b - g b) : Summable f := by
   simpa only [sub_add_cancel] using hfg.add hg
 #align summable.trans_sub Summable.trans_sub
+-/
 
+#print summable_iff_of_summable_sub /-
 theorem summable_iff_of_summable_sub (hfg : Summable fun b => f b - g b) :
     Summable f ↔ Summable g :=
   ⟨fun hf => hf.trans_sub <| by simpa only [neg_sub] using hfg.neg, fun hg => hg.trans_sub hfg⟩
 #align summable_iff_of_summable_sub summable_iff_of_summable_sub
+-/
 
+#print HasSum.update /-
 theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
     HasSum (update f b a) (a - f b + a₁) :=
   by
@@ -888,12 +1076,16 @@ theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
     simp only [eq_self_iff_true, if_true, sub_add_cancel]
   simp only [h, update_noteq, if_false, Ne.def, zero_add, not_false_iff]
 #align has_sum.update HasSum.update
+-/
 
+#print Summable.update /-
 theorem Summable.update (hf : Summable f) (b : β) [DecidableEq β] (a : α) :
     Summable (update f b a) :=
   (hf.HasSum.update b a).Summable
 #align summable.update Summable.update
+-/
 
+#print HasSum.hasSum_compl_iff /-
 theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α) a₁) :
     HasSum (f ∘ coe : sᶜ → α) a₂ ↔ HasSum f (a₁ + a₂) :=
   by
@@ -902,27 +1094,36 @@ theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α)
   rw [Set.indicator_compl]
   simpa only [add_sub_cancel'] using h.sub hf
 #align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iff
+-/
 
+#print HasSum.hasSum_iff_compl /-
 theorem HasSum.hasSum_iff_compl {s : Set β} (hf : HasSum (f ∘ coe : s → α) a₁) :
     HasSum f a₂ ↔ HasSum (f ∘ coe : sᶜ → α) (a₂ - a₁) :=
   Iff.symm <| hf.hasSum_compl_iff.trans <| by rw [add_sub_cancel'_right]
 #align has_sum.has_sum_iff_compl HasSum.hasSum_iff_compl
+-/
 
+#print Summable.summable_compl_iff /-
 theorem Summable.summable_compl_iff {s : Set β} (hf : Summable (f ∘ coe : s → α)) :
     Summable (f ∘ coe : sᶜ → α) ↔ Summable f :=
   ⟨fun ⟨a, ha⟩ => (hf.HasSum.hasSum_compl_iff.1 ha).Summable, fun ⟨a, ha⟩ =>
     (hf.HasSum.hasSum_iff_compl.1 ha).Summable⟩
 #align summable.summable_compl_iff Summable.summable_compl_iff
+-/
 
+#print Finset.hasSum_compl_iff /-
 protected theorem Finset.hasSum_compl_iff (s : Finset β) :
     HasSum (fun x : { x // x ∉ s } => f x) a ↔ HasSum f (a + ∑ i in s, f i) :=
   (s.HasSum f).hasSum_compl_iff.trans <| by rw [add_comm]
 #align finset.has_sum_compl_iff Finset.hasSum_compl_iff
+-/
 
+#print Finset.hasSum_iff_compl /-
 protected theorem Finset.hasSum_iff_compl (s : Finset β) :
     HasSum f a ↔ HasSum (fun x : { x // x ∉ s } => f x) (a - ∑ i in s, f i) :=
   (s.HasSum f).hasSum_iff_compl
 #align finset.has_sum_iff_compl Finset.hasSum_iff_compl
+-/
 
 #print Finset.summable_compl_iff /-
 protected theorem Finset.summable_compl_iff (s : Finset β) :
@@ -931,11 +1132,14 @@ protected theorem Finset.summable_compl_iff (s : Finset β) :
 #align finset.summable_compl_iff Finset.summable_compl_iff
 -/
 
+#print Set.Finite.summable_compl_iff /-
 theorem Set.Finite.summable_compl_iff {s : Set β} (hs : s.Finite) :
     Summable (f ∘ coe : sᶜ → α) ↔ Summable f :=
   (hs.Summable f).summable_compl_iff
 #align set.finite.summable_compl_iff Set.Finite.summable_compl_iff
+-/
 
+#print hasSum_ite_sub_hasSum /-
 theorem hasSum_ite_sub_hasSum [DecidableEq β] (hf : HasSum f a) (b : β) :
     HasSum (fun n => ite (n = b) 0 (f n)) (a - f b) :=
   by
@@ -943,27 +1147,35 @@ theorem hasSum_ite_sub_hasSum [DecidableEq β] (hf : HasSum f a) (b : β) :
   · ext n; rw [Function.update_apply]
   · rw [sub_add_eq_add_sub, zero_add]
 #align has_sum_ite_sub_has_sum hasSum_ite_sub_hasSum
+-/
 
 section tsum
 
 variable [T2Space α]
 
+#print tsum_neg /-
 theorem tsum_neg : ∑' b, -f b = -∑' b, f b :=
   by
   by_cases hf : Summable f
   · exact hf.has_sum.neg.tsum_eq
   · simp [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.of_neg hf)]
 #align tsum_neg tsum_neg
+-/
 
+#print tsum_sub /-
 theorem tsum_sub (hf : Summable f) (hg : Summable g) : ∑' b, (f b - g b) = ∑' b, f b - ∑' b, g b :=
   (hf.HasSum.sub hg.HasSum).tsum_eq
 #align tsum_sub tsum_sub
+-/
 
+#print sum_add_tsum_compl /-
 theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
     ∑ x in s, f x + ∑' x : (↑s : Set β)ᶜ, f x = ∑' x, f x :=
   ((s.HasSum f).add_compl (s.summable_compl_iff.2 hf).HasSum).tsum_eq.symm
 #align sum_add_tsum_compl sum_add_tsum_compl
+-/
 
+#print tsum_eq_add_tsum_ite /-
 /-- Let `f : β → α` be a sequence with summable series and let `b ∈ β` be an index.
 Lemma `tsum_eq_add_tsum_ite` writes `Σ f n` as the sum of `f b` plus the series of the
 remaining terms. -/
@@ -973,6 +1185,7 @@ theorem tsum_eq_add_tsum_ite [DecidableEq β] (hf : Summable f) (b : β) :
   rw [(hasSum_ite_sub_hasSum hf.has_sum b).tsum_eq]
   exact (add_sub_cancel'_right _ _).symm
 #align tsum_eq_add_tsum_ite tsum_eq_add_tsum_ite
+-/
 
 end tsum
 
@@ -986,6 +1199,7 @@ We show the formula `(∑ i in range k, f i) + (∑' i, f (i + k)) = (∑' i, f
 
 section Nat
 
+#print hasSum_nat_add_iff /-
 theorem hasSum_nat_add_iff {f : ℕ → α} (k : ℕ) {a : α} :
     HasSum (fun n => f (n + k)) a ↔ HasSum f (a + ∑ i in range k, f i) :=
   by
@@ -993,6 +1207,7 @@ theorem hasSum_nat_add_iff {f : ℕ → α} (k : ℕ) {a : α} :
   rw [← (notMemRangeEquiv k).symm.hasSum_iff]
   rfl
 #align has_sum_nat_add_iff hasSum_nat_add_iff
+-/
 
 #print summable_nat_add_iff /-
 theorem summable_nat_add_iff {f : ℕ → α} (k : ℕ) : (Summable fun n => f (n + k)) ↔ Summable f :=
@@ -1002,22 +1217,29 @@ theorem summable_nat_add_iff {f : ℕ → α} (k : ℕ) : (Summable fun n => f (
 #align summable_nat_add_iff summable_nat_add_iff
 -/
 
+#print hasSum_nat_add_iff' /-
 theorem hasSum_nat_add_iff' {f : ℕ → α} (k : ℕ) {a : α} :
     HasSum (fun n => f (n + k)) (a - ∑ i in range k, f i) ↔ HasSum f a := by
   simp [hasSum_nat_add_iff]
 #align has_sum_nat_add_iff' hasSum_nat_add_iff'
+-/
 
+#print sum_add_tsum_nat_add /-
 theorem sum_add_tsum_nat_add [T2Space α] {f : ℕ → α} (k : ℕ) (h : Summable f) :
     ∑ i in range k, f i + ∑' i, f (i + k) = ∑' i, f i := by
   simpa only [add_comm] using
     ((hasSum_nat_add_iff k).1 ((summable_nat_add_iff k).2 h).HasSum).unique h.has_sum
 #align sum_add_tsum_nat_add sum_add_tsum_nat_add
+-/
 
+#print tsum_eq_zero_add /-
 theorem tsum_eq_zero_add [T2Space α] {f : ℕ → α} (hf : Summable f) :
     ∑' b, f b = f 0 + ∑' b, f (b + 1) := by
   simpa only [sum_range_one] using (sum_add_tsum_nat_add 1 hf).symm
 #align tsum_eq_zero_add tsum_eq_zero_add
+-/
 
+#print tendsto_sum_nat_add /-
 /-- For `f : ℕ → α`, then `∑' k, f (k + i)` tends to zero. This does not require a summability
 assumption on `f`, as otherwise all sums are zero. -/
 theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
@@ -1036,7 +1258,9 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     · exact tsum_eq_zero_of_not_summable hf
     · infer_instance
 #align tendsto_sum_nat_add tendsto_sum_nat_add
+-/
 
+#print HasSum.int_rec /-
 /-- If `f₀, f₁, f₂, ...` and `g₀, g₁, g₂, ...` are both convergent then so is the `ℤ`-indexed
 sequence: `..., g₂, g₁, g₀, f₀, f₁, f₂, ...`. -/
 theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSum g b) :
@@ -1055,7 +1279,9 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
       exacts [Or.inl ⟨_, rfl⟩, Or.inr ⟨_, rfl⟩]
   exact HasSum.add_isCompl this (h₁.has_sum_range_iff.mpr hf) (h₂.has_sum_range_iff.mpr hg)
 #align has_sum.int_rec HasSum.int_rec
+-/
 
+#print HasSum.nonneg_add_neg /-
 theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + b) :=
   by
@@ -1063,13 +1289,16 @@ theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n
   convert hnonneg.int_rec hneg using 1
   ext (i | j) <;> rfl
 #align has_sum.nonneg_add_neg HasSum.nonneg_add_neg
+-/
 
+#print HasSum.pos_add_zero_add_neg /-
 theorem HasSum.pos_add_zero_add_neg {b : α} {f : ℤ → α} (hpos : HasSum (fun n : ℕ => f (n + 1)) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + f 0 + b) :=
   haveI : ∀ g : ℕ → α, HasSum (fun k => g (k + 1)) a → HasSum g (a + g 0) := by intro g hg;
     simpa using (hasSum_nat_add_iff _).mp hg
   (this (fun n => f n) hpos).nonneg_add_neg hneg
 #align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_neg
+-/
 
 #print summable_int_of_summable_nat /-
 theorem summable_int_of_summable_nat {f : ℤ → α} (hp : Summable fun n : ℕ => f n)
@@ -1078,6 +1307,7 @@ theorem summable_int_of_summable_nat {f : ℤ → α} (hp : Summable fun n : ℕ
 #align summable_int_of_summable_nat summable_int_of_summable_nat
 -/
 
+#print HasSum.sum_nat_of_sum_int /-
 theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalSpace α]
     [ContinuousAdd α] {a : α} {f : ℤ → α} (hf : HasSum f a) :
     HasSum (fun n : ℕ => f n + f (-n)) (a + f 0) :=
@@ -1126,6 +1356,7 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
       simp only [sum_image, Nat.cast_inj, imp_self, imp_true_iff, neg_inj]
     _ = ∑ b in v', (f b + f (-b)) := sum_add_distrib.symm
 #align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_int
+-/
 
 end Nat
 
@@ -1135,14 +1366,17 @@ section UniformGroup
 
 variable [AddCommGroup α] [UniformSpace α]
 
+#print summable_iff_cauchySeq_finset /-
 /-- The **Cauchy criterion** for infinite sums, also known as the **Cauchy convergence test** -/
 theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
     Summable f ↔ CauchySeq fun s : Finset β => ∑ b in s, f b :=
   cauchy_map_iff_exists_tendsto.symm
 #align summable_iff_cauchy_seq_finset summable_iff_cauchySeq_finset
+-/
 
 variable [UniformAddGroup α] {f g : β → α} {a a₁ a₂ : α}
 
+#print cauchySeq_finset_iff_vanishing /-
 theorem cauchySeq_finset_iff_vanishing :
     (CauchySeq fun s : Finset β => ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → ∑ b in t, f b ∈ e :=
@@ -1167,7 +1401,9 @@ theorem cauchySeq_finset_iff_vanishing :
     simp only [this]
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
 #align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishing
+-/
 
+#print tendsto_tsum_compl_atTop_zero /-
 /-- 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 tendsto_tsum_compl_atTop_zero (f : β → α) :
@@ -1196,14 +1432,18 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
     apply tsum_eq_zero_of_not_summable
     rwa [Finset.summable_compl_iff]
 #align tendsto_tsum_compl_at_top_zero tendsto_tsum_compl_atTop_zero
+-/
 
 variable [CompleteSpace α]
 
+#print summable_iff_vanishing /-
 theorem summable_iff_vanishing :
     Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → ∑ b in t, f b ∈ e := by
   rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
 #align summable_iff_vanishing summable_iff_vanishing
+-/
 
+#print Summable.summable_of_eq_zero_or_self /-
 -- TODO: generalize to monoid with a uniform continuous subtraction operator: `(a + b) - b = a`
 theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b = 0 ∨ g b = f b) :
     Summable g :=
@@ -1222,26 +1462,35 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
             exact (h b).resolve_right hb
       Eq ▸ hs _ <| Finset.disjoint_of_subset_left (Finset.filter_subset _ _) ht⟩
 #align summable.summable_of_eq_zero_or_self Summable.summable_of_eq_zero_or_self
+-/
 
+#print Summable.indicator /-
 protected theorem Summable.indicator (hf : Summable f) (s : Set β) : Summable (s.indicator f) :=
   hf.summable_of_eq_zero_or_self <| Set.indicator_eq_zero_or_self _ _
 #align summable.indicator Summable.indicator
+-/
 
+#print Summable.comp_injective /-
 theorem Summable.comp_injective {i : γ → β} (hf : Summable f) (hi : Injective i) :
     Summable (f ∘ i) :=
   by
   simpa only [Set.indicator_range_comp] using (hi.summable_iff _).2 (hf.indicator (Set.range i))
   exact fun x hx => Set.indicator_of_not_mem hx _
 #align summable.comp_injective Summable.comp_injective
+-/
 
+#print Summable.subtype /-
 theorem Summable.subtype (hf : Summable f) (s : Set β) : Summable (f ∘ coe : s → α) :=
   hf.comp_injective Subtype.coe_injective
 #align summable.subtype Summable.subtype
+-/
 
+#print summable_subtype_and_compl /-
 theorem summable_subtype_and_compl {s : Set β} :
     ((Summable fun x : s => f x) ∧ Summable fun x : sᶜ => f x) ↔ Summable f :=
   ⟨and_imp.2 Summable.add_compl, fun h => ⟨h.Subtype s, h.Subtype (sᶜ)⟩⟩
 #align summable_subtype_and_compl summable_subtype_and_compl
+-/
 
 #print Summable.sigma_factor /-
 theorem Summable.sigma_factor {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f) (b : β) :
@@ -1257,10 +1506,12 @@ theorem Summable.sigma {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha :
 #align summable.sigma Summable.sigma
 -/
 
+#print Summable.prod_factor /-
 theorem Summable.prod_factor {f : β × γ → α} (h : Summable f) (b : β) :
     Summable fun c => f (b, c) :=
   h.comp_injective fun c₁ c₂ h => (Prod.ext_iff.1 h).2
 #align summable.prod_factor Summable.prod_factor
+-/
 
 section LocInstances
 
@@ -1271,30 +1522,39 @@ attribute [local instance] TopologicalAddGroup.t3Space
 attribute [-instance] T3Space.to_t0Space
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
+#print tsum_sigma /-
 theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f) :
     ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
+#print tsum_prod /-
 theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) : ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_prod' h h.prod_factor
 #align tsum_prod tsum_prod
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
+#print tsum_comm /-
 theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
     ∑' (c) (b), f b c = ∑' (b) (c), f b c :=
   tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 #align tsum_comm tsum_comm
+-/
 
 end LocInstances
 
+#print tsum_subtype_add_tsum_subtype_compl /-
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
     ∑' x : s, f x + ∑' x : sᶜ, f x = ∑' x, f x :=
   ((hf.Subtype s).HasSum.add_compl (hf.Subtype {x | x ∉ s}).HasSum).unique hf.HasSum
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
+-/
 
+#print sum_add_tsum_subtype_compl /-
 theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Finset β) :
     ∑ x in s, f x + ∑' x : { x // x ∉ s }, f x = ∑' x, f x :=
   by
@@ -1302,6 +1562,7 @@ theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f
   simp only [Finset.tsum_subtype', add_right_inj]
   rfl
 #align sum_add_tsum_subtype_compl sum_add_tsum_subtype_compl
+-/
 
 end UniformGroup
 
@@ -1309,6 +1570,7 @@ section TopologicalGroup
 
 variable {G : Type _} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup G] {f : α → G}
 
+#print Summable.vanishing /-
 theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0 : G)) :
     ∃ s : Finset α, ∀ t, Disjoint t s → ∑ k in t, f k ∈ e :=
   by
@@ -1317,7 +1579,9 @@ theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0
   rcases hf with ⟨y, hy⟩
   exact cauchySeq_finset_iff_vanishing.1 hy.cauchy_seq e he
 #align summable.vanishing Summable.vanishing
+-/
 
+#print Summable.tendsto_cofinite_zero /-
 /-- Series divergence test: if `f` is a convergent series, then `f x` tends to zero along
 `cofinite`. -/
 theorem Summable.tendsto_cofinite_zero (hf : Summable f) : Tendsto f cofinite (𝓝 0) :=
@@ -1328,10 +1592,13 @@ theorem Summable.tendsto_cofinite_zero (hf : Summable f) : Tendsto f cofinite (
   refine' s.eventually_cofinite_nmem.mono fun x hx => _
   · simpa using hs {x} (disjoint_singleton_left.2 hx)
 #align summable.tendsto_cofinite_zero Summable.tendsto_cofinite_zero
+-/
 
+#print Summable.tendsto_atTop_zero /-
 theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto f atTop (𝓝 0) := by
   rw [← Nat.cofinite_eq_atTop]; exact hf.tendsto_cofinite_zero
 #align summable.tendsto_at_top_zero Summable.tendsto_atTop_zero
+-/
 
 end TopologicalGroup
 
@@ -1340,17 +1607,23 @@ section ConstSmul
 variable [Monoid γ] [TopologicalSpace α] [AddCommMonoid α] [DistribMulAction γ α]
   [ContinuousConstSMul γ α] {f : β → α}
 
+#print HasSum.const_smul /-
 theorem HasSum.const_smul {a : α} (b : γ) (hf : HasSum f a) : HasSum (fun i => b • f i) (b • a) :=
   hf.map (DistribMulAction.toAddMonoidHom α _) <| continuous_const_smul _
 #align has_sum.const_smul HasSum.const_smul
+-/
 
+#print Summable.const_smul /-
 theorem Summable.const_smul (b : γ) (hf : Summable f) : Summable fun i => b • f i :=
   (hf.HasSum.const_smul _).Summable
 #align summable.const_smul Summable.const_smul
+-/
 
+#print tsum_const_smul /-
 theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : ∑' i, b • f i = b • ∑' i, f i :=
   (hf.HasSum.const_smul _).tsum_eq
 #align tsum_const_smul tsum_const_smul
+-/
 
 end ConstSmul
 
@@ -1361,10 +1634,12 @@ section Prod
 
 variable [AddCommMonoid α] [TopologicalSpace α] [AddCommMonoid γ] [TopologicalSpace γ]
 
+#print HasSum.prod_mk /-
 theorem HasSum.prod_mk {f : β → α} {g : β → γ} {a : α} {b : γ} (hf : HasSum f a) (hg : HasSum g b) :
     HasSum (fun x => (⟨f x, g x⟩ : α × γ)) ⟨a, b⟩ := by
   simp [HasSum, ← prod_mk_sum, Filter.Tendsto.prod_mk_nhds hf hg]
 #align has_sum.prod_mk HasSum.prod_mk
+-/
 
 end Prod
 
@@ -1372,19 +1647,25 @@ section Pi
 
 variable {ι : Type _} {π : α → Type _} [∀ x, AddCommMonoid (π x)] [∀ x, TopologicalSpace (π x)]
 
+#print Pi.hasSum /-
 theorem Pi.hasSum {f : ι → ∀ x, π x} {g : ∀ x, π x} :
     HasSum f g ↔ ∀ x, HasSum (fun i => f i x) (g x) := by
   simp only [HasSum, tendsto_pi_nhds, sum_apply]
 #align pi.has_sum Pi.hasSum
+-/
 
+#print Pi.summable /-
 theorem Pi.summable {f : ι → ∀ x, π x} : Summable f ↔ ∀ x, Summable fun i => f i x := by
   simp only [Summable, Pi.hasSum, skolem]
 #align pi.summable Pi.summable
+-/
 
+#print tsum_apply /-
 theorem tsum_apply [∀ x, T2Space (π x)] {f : ι → ∀ x, π x} {x : α} (hf : Summable f) :
     (∑' i, f i) x = ∑' i, f i x :=
   (Pi.hasSum.mp hf.HasSum x).tsum_eq.symm
 #align tsum_apply tsum_apply
+-/
 
 end Pi
 
@@ -1397,46 +1678,63 @@ open MulOpposite
 
 variable [AddCommMonoid α] [TopologicalSpace α] {f : β → α} {a : α}
 
+#print HasSum.op /-
 theorem HasSum.op (hf : HasSum f a) : HasSum (fun a => op (f a)) (op a) :=
   (hf.map (@opAddEquiv α _) continuous_op : _)
 #align has_sum.op HasSum.op
+-/
 
+#print Summable.op /-
 theorem Summable.op (hf : Summable f) : Summable (op ∘ f) :=
   hf.HasSum.op.Summable
 #align summable.op Summable.op
+-/
 
+#print HasSum.unop /-
 theorem HasSum.unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} (hf : HasSum f a) :
     HasSum (fun a => unop (f a)) (unop a) :=
   (hf.map (@opAddEquiv α _).symm continuous_unop : _)
 #align has_sum.unop HasSum.unop
+-/
 
+#print Summable.unop /-
 theorem Summable.unop {f : β → αᵐᵒᵖ} (hf : Summable f) : Summable (unop ∘ f) :=
   hf.HasSum.unop.Summable
 #align summable.unop Summable.unop
+-/
 
+#print hasSum_op /-
 @[simp]
 theorem hasSum_op : HasSum (fun a => op (f a)) (op a) ↔ HasSum f a :=
   ⟨HasSum.unop, HasSum.op⟩
 #align has_sum_op hasSum_op
+-/
 
+#print hasSum_unop /-
 @[simp]
 theorem hasSum_unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} :
     HasSum (fun a => unop (f a)) (unop a) ↔ HasSum f a :=
   ⟨HasSum.op, HasSum.unop⟩
 #align has_sum_unop hasSum_unop
+-/
 
+#print summable_op /-
 @[simp]
 theorem summable_op : (Summable fun a => op (f a)) ↔ Summable f :=
   ⟨Summable.unop, Summable.op⟩
 #align summable_op summable_op
+-/
 
+#print summable_unop /-
 @[simp]
 theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a)) ↔ Summable f :=
   ⟨Summable.op, Summable.unop⟩
 #align summable_unop summable_unop
+-/
 
 variable [T2Space α]
 
+#print tsum_op /-
 theorem tsum_op : ∑' x, MulOpposite.op (f x) = MulOpposite.op (∑' x, f x) :=
   by
   by_cases h : Summable f
@@ -1444,10 +1742,13 @@ theorem tsum_op : ∑' x, MulOpposite.op (f x) = MulOpposite.op (∑' x, f x) :=
   · have ho := summable_op.not.mpr h
     rw [tsum_eq_zero_of_not_summable h, tsum_eq_zero_of_not_summable ho, MulOpposite.op_zero]
 #align tsum_op tsum_op
+-/
 
+#print tsum_unop /-
 theorem tsum_unop {f : β → αᵐᵒᵖ} : ∑' x, MulOpposite.unop (f x) = MulOpposite.unop (∑' x, f x) :=
   MulOpposite.op_injective tsum_op.symm
 #align tsum_unop tsum_unop
+-/
 
 end MulOpposite
 
@@ -1459,30 +1760,41 @@ section ContinuousStar
 variable [AddCommMonoid α] [TopologicalSpace α] [StarAddMonoid α] [ContinuousStar α] {f : β → α}
   {a : α}
 
+#print HasSum.star /-
 theorem HasSum.star (h : HasSum f a) : HasSum (fun b => star (f b)) (star a) := by
   simpa only using h.map (starAddEquiv : α ≃+ α) continuous_star
 #align has_sum.star HasSum.star
+-/
 
+#print Summable.star /-
 theorem Summable.star (hf : Summable f) : Summable fun b => star (f b) :=
   hf.HasSum.unit.Summable
 #align summable.star Summable.star
+-/
 
+#print Summable.ofStar /-
 theorem Summable.ofStar (hf : Summable fun b => star (f b)) : Summable f := by
   simpa only [star_star] using hf.star
 #align summable.of_star Summable.ofStar
+-/
 
+#print summable_star_iff /-
 @[simp]
 theorem summable_star_iff : (Summable fun b => star (f b)) ↔ Summable f :=
   ⟨Summable.ofStar, Summable.star⟩
 #align summable_star_iff summable_star_iff
+-/
 
+#print summable_star_iff' /-
 @[simp]
 theorem summable_star_iff' : Summable (star f) ↔ Summable f :=
   summable_star_iff
 #align summable_star_iff' summable_star_iff'
+-/
 
 variable [T2Space α]
 
+#print tsum_star /-
 theorem tsum_star : star (∑' b, f b) = ∑' b, star (f b) :=
   by
   by_cases hf : Summable f
@@ -1491,6 +1803,7 @@ theorem tsum_star : star (∑' b, f b) = ∑' b, star (f b) :=
     rw [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.ofStar hf),
       star_zero]
 #align tsum_star tsum_star
+-/
 
 end ContinuousStar
 
Diff
@@ -80,7 +80,7 @@ irreducible_def tsum {β} (f : β → α) :=
 
 -- mathport name: «expr∑' , »
 notation3"∑' "-- see Note [operator precedence of big operators]
-(...)", "r:(scoped f => tsum f) => r
+(...)", "r:67:(scoped f => tsum f) => r
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
@@ -109,7 +109,7 @@ theorem summable_empty [IsEmpty β] : Summable f :=
 #align summable_empty summable_empty
 -/
 
-theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : (∑' b, f b) = 0 := by simp [tsum, h]
+theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : ∑' b, f b = 0 := by simp [tsum, h]
 #align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summable
 
 theorem summable_congr (hfg : ∀ b, f b = g b) : Summable f ↔ Summable g :=
@@ -123,8 +123,7 @@ theorem Summable.congr (hf : Summable f) (hfg : ∀ b, f b = g b) : Summable g :
 #print HasSum.hasSum_of_sum_eq /-
 theorem HasSum.hasSum_of_sum_eq {g : γ → α}
     (h_eq :
-      ∀ u : Finset γ,
-        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ (∑ x in u', g x) = ∑ b in v', f b)
+      ∀ u : Finset γ, ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
     (hf : HasSum g a) : HasSum f a :=
   le_trans (map_atTop_finset_sum_le_of_sum_eq h_eq) hf
 #align has_sum.has_sum_of_sum_eq HasSum.hasSum_of_sum_eq
@@ -133,11 +132,10 @@ theorem HasSum.hasSum_of_sum_eq {g : γ → α}
 #print hasSum_iff_hasSum /-
 theorem hasSum_iff_hasSum {g : γ → α}
     (h₁ :
-      ∀ u : Finset γ,
-        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ (∑ x in u', g x) = ∑ b in v', f b)
+      ∀ u : Finset γ, ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
     (h₂ :
       ∀ v : Finset β,
-        ∃ u : Finset γ, ∀ u', u ⊆ u' → ∃ v', v ⊆ v' ∧ (∑ b in v', f b) = ∑ x in u', g x) :
+        ∃ u : Finset γ, ∀ u', u ⊆ u' → ∃ v', v ⊆ v' ∧ ∑ b in v', f b = ∑ x in u', g x) :
     HasSum f a ↔ HasSum g a :=
   ⟨HasSum.hasSum_of_sum_eq h₂, HasSum.hasSum_of_sum_eq h₁⟩
 #align has_sum_iff_has_sum hasSum_iff_hasSum
@@ -492,12 +490,12 @@ section tsum
 variable [AddCommMonoid α] [TopologicalSpace α]
 
 #print tsum_congr_subtype /-
-theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
-    (∑' x : s, f x) = ∑' x : t, f x := by rw [h]
+theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) : ∑' x : s, f x = ∑' x : t, f x :=
+  by rw [h]
 #align tsum_congr_subtype tsum_congr_subtype
 -/
 
-theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' b : β, (0 : α)) = 0 := by
+theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : ∑' b : β, (0 : α) = 0 := by
   classical
   rw [tsum, dif_pos summable_zero]
   suffices ∀ x : α, HasSum (fun b : β => (0 : α)) x → x = 0 by
@@ -512,34 +510,34 @@ theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' b : β, (0 : α)) = 0
 #align tsum_zero' tsum_zero'
 
 @[simp]
-theorem tsum_zero [T1Space α] : (∑' b : β, (0 : α)) = 0 :=
+theorem tsum_zero [T1Space α] : ∑' b : β, (0 : α) = 0 :=
   tsum_zero' isClosed_singleton
 #align tsum_zero tsum_zero
 
 variable [T2Space α] {f g : β → α} {a a₁ a₂ : α}
 
-theorem HasSum.tsum_eq (ha : HasSum f a) : (∑' b, f b) = a :=
+theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
   (Summable.hasSum ⟨a, ha⟩).unique ha
 #align has_sum.tsum_eq HasSum.tsum_eq
 
-theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ (∑' b, f b) = a :=
+theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
   Iff.intro HasSum.tsum_eq fun eq => Eq ▸ h.HasSum
 #align summable.has_sum_iff Summable.hasSum_iff
 
 @[simp]
-theorem tsum_empty [IsEmpty β] : (∑' b, f b) = 0 :=
+theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 :=
   hasSum_empty.tsum_eq
 #align tsum_empty tsum_empty
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
-    (∑' b, f b) = ∑ b in s, f b :=
+    ∑' b, f b = ∑ b in s, f b :=
   (hasSum_sum_of_ne_finset_zero hf).tsum_eq
 #align tsum_eq_sum tsum_eq_sum
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » s) -/
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
-    (∑ x in s, f x) = ∑' x, Set.indicator (↑s) f x :=
+    ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
   have : ∀ (x) (_ : x ∉ s), Set.indicator (↑s) f x = 0 := fun x hx =>
     Set.indicator_apply_eq_zero.2 fun hx' => (hx <| Finset.mem_coe.1 hx').elim
   (Finset.sum_congr rfl fun x hx =>
@@ -548,23 +546,22 @@ theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
 
 theorem tsum_congr {α β : Type _} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α}
-    (hfg : ∀ b, f b = g b) : (∑' b, f b) = ∑' b, g b :=
+    (hfg : ∀ b, f b = g b) : ∑' b, f b = ∑' b, g b :=
   congr_arg tsum (funext hfg)
 #align tsum_congr tsum_congr
 
 #print tsum_fintype /-
-theorem tsum_fintype [Fintype β] (f : β → α) : (∑' b, f b) = ∑ b, f b :=
+theorem tsum_fintype [Fintype β] (f : β → α) : ∑' b, f b = ∑ b, f b :=
   (hasSum_fintype f).tsum_eq
 #align tsum_fintype tsum_fintype
 -/
 
-theorem tsum_bool (f : Bool → α) : (∑' i : Bool, f i) = f False + f True := by
+theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := by
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
-theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
-    (∑' b, f b) = f b :=
+theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : ∑' b, f b = f b :=
   (hasSum_single b hf).tsum_eq
 #align tsum_eq_single tsum_eq_single
 
@@ -572,9 +569,9 @@ theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
-    (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : (∑' (b') (c'), f b' c') = f b c :=
+    (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : ∑' (b') (c'), f b' c' = f b c :=
   calc
-    (∑' (b') (c'), f b' c') = ∑' b', f b' c := tsum_congr fun b' => tsum_eq_single _ (hfc b')
+    ∑' (b') (c'), f b' c' = ∑' b', f b' c := tsum_congr fun b' => tsum_eq_single _ (hfc b')
     _ = f b c := tsum_eq_single _ hfb
 #align tsum_tsum_eq_single tsum_tsum_eq_single
 
@@ -585,7 +582,7 @@ theorem tsum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
 #align tsum_ite_eq tsum_ite_eq
 
 @[simp]
-theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : (∑' b', Pi.single b a b') = a :=
+theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : ∑' b', Pi.single b a b' = a :=
   (hasSum_pi_single b a).tsum_eq
 #align tsum_pi_single tsum_pi_single
 
@@ -601,7 +598,7 @@ theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
 
 theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
-    {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : (∑' b, f b) = e (∑' c, g c) :=
+    {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : ∑' b, f b = e (∑' c, g c) :=
   by_cases (fun this : Summable g => (h.mpr this.HasSum).tsum_eq) fun hg : ¬Summable g =>
     by
     have hf : ¬Summable f := mt (hes.summable_iff_of_hasSum_iff @h).1 hg
@@ -609,24 +606,24 @@ theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [Ad
 #align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
 
 theorem tsum_eq_tsum_of_hasSum_iff_hasSum {f : β → α} {g : γ → α}
-    (h : ∀ {a}, HasSum f a ↔ HasSum g a) : (∑' b, f b) = ∑' c, g c :=
+    (h : ∀ {a}, HasSum f a ↔ HasSum g a) : ∑' b, f b = ∑' c, g c :=
   surjective_id.tsum_eq_tsum_of_hasSum_iff_hasSum rfl @h
 #align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSum
 
 #print Equiv.tsum_eq /-
-theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : (∑' c, f (j c)) = ∑' b, f b :=
+theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : ∑' c, f (j c) = ∑' b, f b :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun a => j.hasSum_iff
 #align equiv.tsum_eq Equiv.tsum_eq
 -/
 
 theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
-    (he : ∀ x, g (e x) = f x) : (∑' x, f x) = ∑' y, g y :=
+    (he : ∀ x, g (e x) = f x) : ∑' x, f x = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => e.hasSum_iff_of_support he
 #align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_support
 
 theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
-    (hfg : ∀ x, f (i x) = g x) : (∑' x, f x) = ∑' y, g y :=
+    (hfg : ∀ x, f (i x) = g x) : ∑' x, f x = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => hasSum_iff_hasSum_of_ne_zero_bij i hi hf hfg
 #align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bij
 
@@ -636,35 +633,34 @@ theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
 #print Finset.tsum_subtype /-
 @[simp]
 theorem Finset.tsum_subtype (s : Finset β) (f : β → α) :
-    (∑' x : { x // x ∈ s }, f x) = ∑ x in s, f x :=
+    ∑' x : { x // x ∈ s }, f x = ∑ x in s, f x :=
   (s.HasSum f).tsum_eq
 #align finset.tsum_subtype Finset.tsum_subtype
 -/
 
 #print Finset.tsum_subtype' /-
 @[simp]
-theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) :
-    (∑' x : (s : Set β), f x) = ∑ x in s, f x :=
+theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) : ∑' x : (s : Set β), f x = ∑ x in s, f x :=
   s.tsum_subtype f
 #align finset.tsum_subtype' Finset.tsum_subtype'
 -/
 
-theorem tsum_subtype (s : Set β) (f : β → α) : (∑' x : s, f x) = ∑' x, s.indicator f x :=
+theorem tsum_subtype (s : Set β) (f : β → α) : ∑' x : s, f x = ∑' x, s.indicator f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => hasSum_subtype_iff_indicator
 #align tsum_subtype tsum_subtype
 
 theorem tsum_subtype_eq_of_support_subset {f : β → α} {s : Set β} (hs : support f ⊆ s) :
-    (∑' x : s, f x) = ∑' x, f x :=
+    ∑' x : s, f x = ∑' x, f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun x => hasSum_subtype_iff_of_support_subset hs
 #align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subset
 
 @[simp]
-theorem tsum_univ (f : β → α) : (∑' x : (Set.univ : Set β), f x) = ∑' x, f x :=
+theorem tsum_univ (f : β → α) : ∑' x : (Set.univ : Set β), f x = ∑' x, f x :=
   tsum_subtype_eq_of_support_subset <| Set.subset_univ _
 #align tsum_univ tsum_univ
 
 @[simp]
-theorem tsum_singleton (b : β) (f : β → α) : (∑' x : ({b} : Set β), f x) = f b :=
+theorem tsum_singleton (b : β) (f : β → α) : ∑' x : ({b} : Set β), f x = f b :=
   by
   rw [tsum_subtype, tsum_eq_single b]
   · simp
@@ -676,14 +672,14 @@ theorem tsum_singleton (b : β) (f : β → α) : (∑' x : ({b} : Set β), f x)
 
 #print tsum_image /-
 theorem tsum_image {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s) :
-    (∑' x : g '' s, f x) = ∑' x : s, f (g x) :=
+    ∑' x : g '' s, f x = ∑' x : s, f (g x) :=
   ((Equiv.Set.imageOfInjOn _ _ hg).tsum_eq fun x => f x).symm
 #align tsum_image tsum_image
 -/
 
 #print tsum_range /-
 theorem tsum_range {g : γ → β} (f : β → α) (hg : Injective g) :
-    (∑' x : Set.range g, f x) = ∑' x, f (g x) := by
+    ∑' x : Set.range g, f x = ∑' x, f (g x) := by
   rw [← Set.image_univ, tsum_image f (hg.inj_on _), tsum_univ (f ∘ g)]
 #align tsum_range tsum_range
 -/
@@ -692,24 +688,23 @@ section ContinuousAdd
 
 variable [ContinuousAdd α]
 
-theorem tsum_add (hf : Summable f) (hg : Summable g) :
-    (∑' b, f b + g b) = (∑' b, f b) + ∑' b, g b :=
+theorem tsum_add (hf : Summable f) (hg : Summable g) : ∑' b, (f b + g b) = ∑' b, f b + ∑' b, g b :=
   (hf.HasSum.add hg.HasSum).tsum_eq
 #align tsum_add tsum_add
 
 theorem tsum_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
-    (∑' b, ∑ i in s, f i b) = ∑ i in s, ∑' b, f i b :=
+    ∑' b, ∑ i in s, f i b = ∑ i in s, ∑' b, f i b :=
   (hasSum_sum fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_sum tsum_sum
 
 /-- Version of `tsum_eq_add_tsum_ite` for `add_comm_monoid` rather than `add_comm_group`.
 Requires a different convergence assumption involving `function.update`. -/
 theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update b 0)) :
-    (∑' x, f x) = f b + ∑' x, ite (x = b) 0 (f x) :=
+    ∑' x, f x = f b + ∑' x, ite (x = b) 0 (f x) :=
   calc
-    (∑' x, f x) = ∑' x, ite (x = b) (f x) 0 + f.update b 0 x :=
+    ∑' x, f x = ∑' x, (ite (x = b) (f x) 0 + f.update b 0 x) :=
       tsum_congr fun n => by split_ifs <;> simp [Function.update_apply, h]
-    _ = (∑' x, ite (x = b) (f x) 0) + ∑' x, f.update b 0 x :=
+    _ = ∑' x, ite (x = b) (f x) 0 + ∑' x, f.update b 0 x :=
       (tsum_add ⟨ite (b = b) (f b) 0, hasSum_single b fun b hb => if_neg hb⟩ hf)
     _ = ite (b = b) (f b) 0 + ∑' x, f.update b 0 x := by congr;
       exact tsum_eq_single b fun b' hb' => if_neg hb'
@@ -721,20 +716,20 @@ variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_sigma' {γ : β → Type _} {f : (Σ b : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
-    (h₂ : Summable f) : (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
+    (h₂ : Summable f) : ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   (h₂.HasSum.Sigma fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_sigma' tsum_sigma'
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_prod' {f : β × γ → δ} (h : Summable f) (h₁ : ∀ b, Summable fun c => f (b, c)) :
-    (∑' p, f p) = ∑' (b) (c), f (b, c) :=
+    ∑' p, f p = ∑' (b) (c), f (b, c) :=
   (h.HasSum.prod_fiberwise fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_prod' tsum_prod'
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_comm' {f : β → γ → δ} (h : Summable (Function.uncurry f)) (h₁ : ∀ b, Summable (f b))
-    (h₂ : ∀ c, Summable fun b => f b c) : (∑' (c) (b), f b c) = ∑' (b) (c), f b c :=
+    (h₂ : ∀ c, Summable fun b => f b c) : ∑' (c) (b), f b c = ∑' (b) (c), f b c :=
   by
   erw [← tsum_prod' h h₁, ← tsum_prod' h.prod_symm h₂, ← (Equiv.prodComm γ β).tsum_eq (uncurry f)]
   rfl
@@ -751,7 +746,7 @@ variable [Encodable γ]
 /-- 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_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
-    (∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b)) = ∑' b : γ, m (s b) :=
+    ∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b) = ∑' b : γ, m (s b) :=
   by
   have H : ∀ n, m (⨆ b ∈ decode₂ γ n, s b) ≠ 0 → (decode₂ γ n).isSome :=
     by
@@ -775,7 +770,7 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
 
 /-- `tsum_supr_decode₂` specialized to the complete lattice of sets. -/
 theorem tsum_iUnion_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
-    (∑' i, m (⋃ b ∈ decode₂ γ i, s b)) = ∑' b, m (s b) :=
+    ∑' i, m (⋃ b ∈ decode₂ γ i, s b) = ∑' b, m (s b) :=
   tsum_iSup_decode₂ m m0 s
 #align tsum_Union_decode₂ tsum_iUnion_decode₂
 
@@ -821,24 +816,23 @@ end Countable
 variable [ContinuousAdd α]
 
 theorem tsum_add_tsum_compl {s : Set β} (hs : Summable (f ∘ coe : s → α))
-    (hsc : Summable (f ∘ coe : sᶜ → α)) : ((∑' x : s, f x) + ∑' x : sᶜ, f x) = ∑' x, f x :=
+    (hsc : Summable (f ∘ coe : sᶜ → α)) : ∑' x : s, f x + ∑' x : sᶜ, f x = ∑' x, f x :=
   (hs.HasSum.add_compl hsc.HasSum).tsum_eq.symm
 #align tsum_add_tsum_compl tsum_add_tsum_compl
 
 theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f ∘ coe : s → α))
-    (ht : Summable (f ∘ coe : t → α)) : (∑' x : s ∪ t, f x) = (∑' x : s, f x) + ∑' x : t, f x :=
+    (ht : Summable (f ∘ coe : t → α)) : ∑' x : s ∪ t, f x = ∑' x : s, f x + ∑' x : t, f x :=
   (hs.HasSum.add_disjoint hd ht.HasSum).tsum_eq
 #align tsum_union_disjoint tsum_union_disjoint
 
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
-    (∑' x : ⋃ i ∈ s, t i, f x) = ∑ i in s, ∑' x : t i, f x :=
+    ∑' x : ⋃ i ∈ s, t i, f x = ∑ i in s, ∑' x : t i, f x :=
   (hasSum_sum_disjoint _ hd fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjoint
 
 theorem tsum_even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
-    (ho : Summable fun k => f (2 * k + 1)) :
-    ((∑' k, f (2 * k)) + ∑' k, f (2 * k + 1)) = ∑' k, f k :=
+    (ho : Summable fun k => f (2 * k + 1)) : ∑' k, f (2 * k) + ∑' k, f (2 * k + 1) = ∑' k, f k :=
   (he.HasSum.even_add_odd ho.HasSum).tsum_eq.symm
 #align tsum_even_add_odd tsum_even_add_odd
 
@@ -954,20 +948,19 @@ section tsum
 
 variable [T2Space α]
 
-theorem tsum_neg : (∑' b, -f b) = -∑' b, f b :=
+theorem tsum_neg : ∑' b, -f b = -∑' b, f b :=
   by
   by_cases hf : Summable f
   · exact hf.has_sum.neg.tsum_eq
   · simp [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.of_neg hf)]
 #align tsum_neg tsum_neg
 
-theorem tsum_sub (hf : Summable f) (hg : Summable g) :
-    (∑' b, f b - g b) = (∑' b, f b) - ∑' b, g b :=
+theorem tsum_sub (hf : Summable f) (hg : Summable g) : ∑' b, (f b - g b) = ∑' b, f b - ∑' b, g b :=
   (hf.HasSum.sub hg.HasSum).tsum_eq
 #align tsum_sub tsum_sub
 
 theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
-    ((∑ x in s, f x) + ∑' x : (↑s : Set β)ᶜ, f x) = ∑' x, f x :=
+    ∑ x in s, f x + ∑' x : (↑s : Set β)ᶜ, f x = ∑' x, f x :=
   ((s.HasSum f).add_compl (s.summable_compl_iff.2 hf).HasSum).tsum_eq.symm
 #align sum_add_tsum_compl sum_add_tsum_compl
 
@@ -975,7 +968,7 @@ theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
 Lemma `tsum_eq_add_tsum_ite` writes `Σ f n` as the sum of `f b` plus the series of the
 remaining terms. -/
 theorem tsum_eq_add_tsum_ite [DecidableEq β] (hf : Summable f) (b : β) :
-    (∑' n, f n) = f b + ∑' n, ite (n = b) 0 (f n) :=
+    ∑' n, f n = f b + ∑' n, ite (n = b) 0 (f n) :=
   by
   rw [(hasSum_ite_sub_hasSum hf.has_sum b).tsum_eq]
   exact (add_sub_cancel'_right _ _).symm
@@ -1015,13 +1008,13 @@ theorem hasSum_nat_add_iff' {f : ℕ → α} (k : ℕ) {a : α} :
 #align has_sum_nat_add_iff' hasSum_nat_add_iff'
 
 theorem sum_add_tsum_nat_add [T2Space α] {f : ℕ → α} (k : ℕ) (h : Summable f) :
-    ((∑ i in range k, f i) + ∑' i, f (i + k)) = ∑' i, f i := by
+    ∑ i in range k, f i + ∑' i, f (i + k) = ∑' i, f i := by
   simpa only [add_comm] using
     ((hasSum_nat_add_iff k).1 ((summable_nat_add_iff k).2 h).HasSum).unique h.has_sum
 #align sum_add_tsum_nat_add sum_add_tsum_nat_add
 
 theorem tsum_eq_zero_add [T2Space α] {f : ℕ → α} (hf : Summable f) :
-    (∑' b, f b) = f 0 + ∑' b, f (b + 1) := by
+    ∑' b, f b = f 0 + ∑' b, f (b + 1) := by
   simpa only [sum_range_one] using (sum_add_tsum_nat_add 1 hf).symm
 #align tsum_eq_zero_add tsum_eq_zero_add
 
@@ -1031,7 +1024,7 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     Tendsto (fun i => ∑' k, f (k + i)) atTop (𝓝 0) :=
   by
   by_cases hf : Summable f
-  · have h₀ : (fun i => (∑' i, f i) - ∑ j in range i, f j) = fun i => ∑' k : ℕ, f (k + i) :=
+  · have h₀ : (fun i => ∑' i, f i - ∑ j in range i, f j) = fun i => ∑' k : ℕ, f (k + i) :=
       by
       ext1 i
       rw [sub_eq_iff_eq_add, add_comm, sum_add_tsum_nat_add i hf]
@@ -1109,7 +1102,7 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
       · simp only [abs_of_nonpos h'x, Int.coe_natAbs, neg_neg]
   refine' ⟨u1 ∪ u2, A, _⟩
   calc
-    (∑ x in u1 ∪ u2, f x + ite (x = 0) (f 0) 0) = (∑ x in u1 ∪ u2, f x) + ∑ x in u1 ∩ u2, f x :=
+    ∑ x in u1 ∪ u2, (f x + ite (x = 0) (f 0) 0) = ∑ x in u1 ∪ u2, f x + ∑ x in u1 ∩ u2, f x :=
       by
       rw [sum_add_distrib]
       congr 1
@@ -1128,10 +1121,10 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
           · rcases hx.1 with ⟨a, ha, rfl⟩
             simp only [Nat.cast_nonneg]
         simp only [this, eq_self_iff_true, if_true]
-    _ = (∑ x in u1, f x) + ∑ x in u2, f x := sum_union_inter
-    _ = (∑ b in v', f b) + ∑ b in v', f (-b) := by
+    _ = ∑ x in u1, f x + ∑ x in u2, f x := sum_union_inter
+    _ = ∑ b in v', f b + ∑ b in v', f (-b) := by
       simp only [sum_image, Nat.cast_inj, imp_self, imp_true_iff, neg_inj]
-    _ = ∑ b in v', f b + f (-b) := sum_add_distrib.symm
+    _ = ∑ b in v', (f b + f (-b)) := sum_add_distrib.symm
 #align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_int
 
 end Nat
@@ -1152,7 +1145,7 @@ variable [UniformAddGroup α] {f g : β → α} {a a₁ a₂ : α}
 
 theorem cauchySeq_finset_iff_vanishing :
     (CauchySeq fun s : Finset β => ∑ b in s, f b) ↔
-      ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e :=
+      ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → ∑ b in t, f b ∈ e :=
   by
   simp only [CauchySeq, cauchy_map_iff, and_iff_right at_top_ne_bot, prod_at_top_at_top_eq,
     uniformity_eq_comap_nhds_zero α, tendsto_comap_iff, (· ∘ ·)]
@@ -1169,7 +1162,7 @@ theorem cauchySeq_finset_iff_vanishing :
     rcases h d hd with ⟨s, h⟩
     use (s, s)
     rintro ⟨t₁, t₂⟩ ⟨ht₁, ht₂⟩
-    have : ((∑ b in t₂, f b) - ∑ b in t₁, f b) = (∑ b in t₂ \ s, f b) - ∑ b in t₁ \ s, f b := by
+    have : ∑ b in t₂, f b - ∑ b in t₁, f b = ∑ b in t₂ \ s, f b - ∑ b in t₁ \ s, f b := by
       simp only [(Finset.sum_sdiff ht₁).symm, (Finset.sum_sdiff ht₂).symm, add_sub_add_right_eq_sub]
     simp only [this]
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
@@ -1184,7 +1177,7 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
   · intro e he
     rcases exists_mem_nhds_isClosed_subset he with ⟨o, ho, o_closed, oe⟩
     simp only [le_eq_subset, Set.mem_preimage, mem_at_top_sets, Filter.mem_map, ge_iff_le]
-    obtain ⟨s, hs⟩ : ∃ s : Finset β, ∀ t : Finset β, Disjoint t s → (∑ b : β in t, f b) ∈ o :=
+    obtain ⟨s, hs⟩ : ∃ s : Finset β, ∀ t : Finset β, Disjoint t s → ∑ b : β in t, f b ∈ o :=
       cauchySeq_finset_iff_vanishing.1 (tendsto.cauchy_seq H.has_sum) o ho
     refine' ⟨s, fun a sa => oe _⟩
     have A : Summable fun b : { x // x ∉ a } => f b := a.summable_compl_iff.2 H
@@ -1207,7 +1200,7 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
 variable [CompleteSpace α]
 
 theorem summable_iff_vanishing :
-    Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
+    Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → ∑ b in t, f b ∈ e := by
   rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
 #align summable_iff_vanishing summable_iff_vanishing
 
@@ -1217,9 +1210,9 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
   summable_iff_vanishing.2 fun e he =>
     let ⟨s, hs⟩ := summable_iff_vanishing.1 hf e he
     ⟨s, fun t ht =>
-      have eq : (∑ b in t.filterₓ fun b => g b = f b, f b) = ∑ b in t, g b :=
+      have eq : ∑ b in t.filterₓ fun b => g b = f b, f b = ∑ b in t, g b :=
         calc
-          (∑ b in t.filterₓ fun b => g b = f b, f b) = ∑ b in t.filterₓ fun b => g b = f b, g b :=
+          ∑ b in t.filterₓ fun b => g b = f b, f b = ∑ b in t.filterₓ fun b => g b = f b, g b :=
             Finset.sum_congr rfl fun b hb => (Finset.mem_filter.1 hb).2.symm
           _ = ∑ b in t, g b :=
             by
@@ -1279,32 +1272,31 @@ attribute [-instance] T3Space.to_t0Space
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f) :
-    (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
+    ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
-theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) :
-    (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
+theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) : ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_prod' h h.prod_factor
 #align tsum_prod tsum_prod
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
-    (∑' (c) (b), f b c) = ∑' (b) (c), f b c :=
+    ∑' (c) (b), f b c = ∑' (b) (c), f b c :=
   tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 #align tsum_comm tsum_comm
 
 end LocInstances
 
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
-    ((∑' x : s, f x) + ∑' x : sᶜ, f x) = ∑' x, f x :=
+    ∑' x : s, f x + ∑' x : sᶜ, f x = ∑' x, f x :=
   ((hf.Subtype s).HasSum.add_compl (hf.Subtype {x | x ∉ s}).HasSum).unique hf.HasSum
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
 
 theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Finset β) :
-    ((∑ x in s, f x) + ∑' x : { x // x ∉ s }, f x) = ∑' x, f x :=
+    ∑ x in s, f x + ∑' x : { x // x ∉ s }, f x = ∑' x, f x :=
   by
   rw [← tsum_subtype_add_tsum_subtype_compl hf s]
   simp only [Finset.tsum_subtype', add_right_inj]
@@ -1318,7 +1310,7 @@ section TopologicalGroup
 variable {G : Type _} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup G] {f : α → G}
 
 theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0 : G)) :
-    ∃ s : Finset α, ∀ t, Disjoint t s → (∑ k in t, f k) ∈ e :=
+    ∃ s : Finset α, ∀ t, Disjoint t s → ∑ k in t, f k ∈ e :=
   by
   letI : UniformSpace G := TopologicalAddGroup.toUniformSpace G
   letI : UniformAddGroup G := comm_topologicalAddGroup_is_uniform
@@ -1356,7 +1348,7 @@ theorem Summable.const_smul (b : γ) (hf : Summable f) : Summable fun i => b •
   (hf.HasSum.const_smul _).Summable
 #align summable.const_smul Summable.const_smul
 
-theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : (∑' i, b • f i) = b • ∑' i, f i :=
+theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : ∑' i, b • f i = b • ∑' i, f i :=
   (hf.HasSum.const_smul _).tsum_eq
 #align tsum_const_smul tsum_const_smul
 
@@ -1445,7 +1437,7 @@ theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a))
 
 variable [T2Space α]
 
-theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x) :=
+theorem tsum_op : ∑' x, MulOpposite.op (f x) = MulOpposite.op (∑' x, f x) :=
   by
   by_cases h : Summable f
   · exact h.has_sum.op.tsum_eq
@@ -1453,7 +1445,7 @@ theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x)
     rw [tsum_eq_zero_of_not_summable h, tsum_eq_zero_of_not_summable ho, MulOpposite.op_zero]
 #align tsum_op tsum_op
 
-theorem tsum_unop {f : β → αᵐᵒᵖ} : (∑' x, MulOpposite.unop (f x)) = MulOpposite.unop (∑' x, f x) :=
+theorem tsum_unop {f : β → αᵐᵒᵖ} : ∑' x, MulOpposite.unop (f x) = MulOpposite.unop (∑' x, f x) :=
   MulOpposite.op_injective tsum_op.symm
 #align tsum_unop tsum_unop
 
Diff
@@ -576,7 +576,6 @@ theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀
   calc
     (∑' (b') (c'), f b' c') = ∑' b', f b' c := tsum_congr fun b' => tsum_eq_single _ (hfc b')
     _ = f b c := tsum_eq_single _ hfb
-    
 #align tsum_tsum_eq_single tsum_tsum_eq_single
 
 @[simp]
@@ -716,7 +715,6 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
       exact tsum_eq_single b fun b' hb' => if_neg hb'
     _ = f b + ∑' x, ite (x = b) 0 (f x) := by
       simp only [Function.update, eq_self_iff_true, if_true, eq_rec_constant, dite_eq_ite]
-    
 #align tsum_eq_add_tsum_ite' tsum_eq_add_tsum_ite'
 
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
@@ -1134,7 +1132,6 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
     _ = (∑ b in v', f b) + ∑ b in v', f (-b) := by
       simp only [sum_image, Nat.cast_inj, imp_self, imp_true_iff, neg_inj]
     _ = ∑ b in v', f b + f (-b) := sum_add_distrib.symm
-    
 #align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_int
 
 end Nat
@@ -1230,7 +1227,6 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
             intro b hbt hb
             simp only [(· ∉ ·), Finset.mem_filter, and_iff_right hbt] at hb 
             exact (h b).resolve_right hb
-          
       Eq ▸ hs _ <| Finset.disjoint_of_subset_left (Finset.filter_subset _ _) ht⟩
 #align summable.summable_of_eq_zero_or_self Summable.summable_of_eq_zero_or_self
 
Diff
@@ -143,13 +143,13 @@ theorem hasSum_iff_hasSum {g : γ → α}
 #align has_sum_iff_has_sum hasSum_iff_hasSum
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
   simp only [HasSum, tendsto, hg.map_at_top_finset_sum_eq hf]
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
   exists_congr fun _ => hg.hasSum_iff hf
@@ -203,18 +203,18 @@ protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → 
 #align set.finite.summable Set.Finite.summable
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
   (hasSum_subtype_iff_of_support_subset <| support_subset_iff'.2 hf).1 <| s.HasSum f
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
   hasSum_sum_of_ne_finset_zero <| by simpa [hf]
@@ -531,13 +531,13 @@ theorem tsum_empty [IsEmpty β] : (∑' b, f b) = 0 :=
   hasSum_empty.tsum_eq
 #align tsum_empty tsum_empty
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     (∑' b, f b) = ∑ b in s, f b :=
   (hasSum_sum_of_ne_finset_zero hf).tsum_eq
 #align tsum_eq_sum tsum_eq_sum
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x «expr ∉ » s) -/
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (∑ x in s, f x) = ∑' x, Set.indicator (↑s) f x :=
   have : ∀ (x) (_ : x ∉ s), Set.indicator (↑s) f x = 0 := fun x hx =>
@@ -562,14 +562,14 @@ theorem tsum_bool (f : Bool → α) : (∑' i : Bool, f i) = f False + f True :=
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
     (∑' b, f b) = f b :=
   (hasSum_single b hf).tsum_eq
 #align tsum_eq_single tsum_eq_single
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
     (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : (∑' (b') (c'), f b' c') = f b c :=
Diff
@@ -499,16 +499,16 @@ theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
 
 theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' b : β, (0 : α)) = 0 := by
   classical
-    rw [tsum, dif_pos summable_zero]
-    suffices ∀ x : α, HasSum (fun b : β => (0 : α)) x → x = 0 by
-      exact this _ (Classical.choose_spec _)
-    intro x hx
-    contrapose! hx
-    simp only [HasSum, tendsto_nhds, Finset.sum_const_zero, Filter.mem_atTop_sets, ge_iff_le,
-      Finset.le_eq_subset, Set.mem_preimage, not_forall, not_exists, exists_prop, exists_and_right]
-    refine' ⟨{0}ᶜ, ⟨is_open_compl_iff.mpr hz, _⟩, fun y => ⟨⟨y, subset_refl _⟩, _⟩⟩
-    · simpa using hx
-    · simp
+  rw [tsum, dif_pos summable_zero]
+  suffices ∀ x : α, HasSum (fun b : β => (0 : α)) x → x = 0 by
+    exact this _ (Classical.choose_spec _)
+  intro x hx
+  contrapose! hx
+  simp only [HasSum, tendsto_nhds, Finset.sum_const_zero, Filter.mem_atTop_sets, ge_iff_le,
+    Finset.le_eq_subset, Set.mem_preimage, not_forall, not_exists, exists_prop, exists_and_right]
+  refine' ⟨{0}ᶜ, ⟨is_open_compl_iff.mpr hz, _⟩, fun y => ⟨⟨y, subset_refl _⟩, _⟩⟩
+  · simpa using hx
+  · simp
 #align tsum_zero' tsum_zero'
 
 @[simp]
@@ -889,7 +889,7 @@ theorem summable_iff_of_summable_sub (hfg : Summable fun b => f b - g b) :
 theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
     HasSum (update f b a) (a - f b + a₁) :=
   by
-  convert(hasSum_ite_eq b _).add hf
+  convert (hasSum_ite_eq b _).add hf
   ext b'
   by_cases h : b' = b
   · rw [h, update_same]
@@ -1304,7 +1304,7 @@ end LocInstances
 
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
     ((∑' x : s, f x) + ∑' x : sᶜ, f x) = ∑' x, f x :=
-  ((hf.Subtype s).HasSum.add_compl (hf.Subtype { x | x ∉ s }).HasSum).unique hf.HasSum
+  ((hf.Subtype s).HasSum.add_compl (hf.Subtype {x | x ∉ s}).HasSum).unique hf.HasSum
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
 
 theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Finset β) :
Diff
@@ -297,7 +297,7 @@ protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [Topologica
     (hg' : Continuous g') (hinv : Function.LeftInverse g' g) : Summable (g ∘ f) ↔ Summable f :=
   ⟨fun h => by
     have := h.map _ hg'
-    rwa [← Function.comp.assoc, hinv.id] at this, fun h => h.map _ hg⟩
+    rwa [← Function.comp.assoc, hinv.id] at this , fun h => h.map _ hg⟩
 #align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverse
 
 /-- A special case of `summable.map_iff_of_left_inverse` for convenience -/
@@ -416,7 +416,7 @@ theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k)
   (he.HasSum.even_add_odd ho.HasSum).Summable
 #align summable.even_add_odd Summable.even_add_odd
 
-theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b) → α} {g : β → α} {a : α}
+theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} {g : β → α} {a : α}
     (ha : HasSum f a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) : HasSum g a :=
   by
   refine' (at_top_basis.tendsto_iff (closed_nhds_basis a)).mpr _
@@ -424,9 +424,9 @@ theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b
   rcases mem_at_top_sets.mp (ha hs) with ⟨u, hu⟩
   use u.image Sigma.fst, trivial
   intro bs hbs
-  simp only [Set.mem_preimage, ge_iff_le, Finset.le_iff_subset] at hu
+  simp only [Set.mem_preimage, ge_iff_le, Finset.le_iff_subset] at hu 
   have :
-    tendsto (fun t : Finset (Σb, γ b) => ∑ p in t.filterₓ fun p => p.1 ∈ bs, f p) at_top
+    tendsto (fun t : Finset (Σ b, γ b) => ∑ p in t.filterₓ fun p => p.1 ∈ bs, f p) at_top
       (𝓝 <| ∑ b in bs, g b) :=
     by
     simp only [← sigma_preimage_mk, sum_sigma]
@@ -445,12 +445,12 @@ theorem HasSum.prod_fiberwise [RegularSpace α] {f : β × γ → α} {g : β 
   HasSum.sigma ((Equiv.sigmaEquivProd β γ).hasSum_iff.2 ha) hf
 #align has_sum.prod_fiberwise HasSum.prod_fiberwise
 
-theorem Summable.sigma' [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f)
+theorem Summable.sigma' [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f)
     (hf : ∀ b, Summable fun c => f ⟨b, c⟩) : Summable fun b => ∑' c, f ⟨b, c⟩ :=
   (ha.HasSum.Sigma fun b => (hf b).HasSum).Summable
 #align summable.sigma' Summable.sigma'
 
-theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} {g : β → α}
+theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} {g : β → α}
     {a : α} (ha : HasSum g a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) (hf' : Summable f) :
     HasSum f a := by simpa [(hf'.has_sum.sigma hf).unique ha] using hf'.has_sum
 #align has_sum.sigma_of_has_sum HasSum.sigma_of_hasSum
@@ -469,7 +469,7 @@ theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α]
     · simpa only [Function.update_apply, hb', eq_self_iff_true] using add_comm (f b) x
     · simp only [Function.update_apply, hb', if_false]
   have h := hf.add (hasSum_ite_eq b x)
-  simp_rw [this] at h
+  simp_rw [this] at h 
   exact HasSum.unique h (hf'.add (hasSum_ite_eq b (f b)))
 #align has_sum.update' HasSum.update'
 
@@ -712,7 +712,7 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
       tsum_congr fun n => by split_ifs <;> simp [Function.update_apply, h]
     _ = (∑' x, ite (x = b) (f x) 0) + ∑' x, f.update b 0 x :=
       (tsum_add ⟨ite (b = b) (f b) 0, hasSum_single b fun b hb => if_neg hb⟩ hf)
-    _ = ite (b = b) (f b) 0 + ∑' x, f.update b 0 x := by congr ;
+    _ = ite (b = b) (f b) 0 + ∑' x, f.update b 0 x := by congr;
       exact tsum_eq_single b fun b' hb' => if_neg hb'
     _ = f b + ∑' x, ite (x = b) 0 (f x) := by
       simp only [Function.update, eq_self_iff_true, if_true, eq_rec_constant, dite_eq_ite]
@@ -722,7 +722,7 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
-theorem tsum_sigma' {γ : β → Type _} {f : (Σb : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
+theorem tsum_sigma' {γ : β → Type _} {f : (Σ b : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
     (h₂ : Summable f) : (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   (h₂.HasSum.Sigma fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_sigma' tsum_sigma'
@@ -764,15 +764,15 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
   symm; refine' tsum_eq_tsum_of_ne_zero_bij (fun a => Option.get (H a.1 a.2)) _ _ _
   · rintro ⟨m, hm⟩ ⟨n, hn⟩ e
     have := mem_decode₂.1 (Option.get_mem (H n hn))
-    rwa [← e, mem_decode₂.1 (Option.get_mem (H m hm))] at this
+    rwa [← e, mem_decode₂.1 (Option.get_mem (H m hm))] at this 
   · intro b h
     refine' ⟨⟨encode b, _⟩, _⟩
-    · simp only [mem_support, encodek₂] at h⊢; convert h; simp [Set.ext_iff, encodek₂]
+    · simp only [mem_support, encodek₂] at h ⊢; convert h; simp [Set.ext_iff, encodek₂]
     · exact Option.get_of_mem _ (encodek₂ _)
   · rintro ⟨n, h⟩; dsimp only [Subtype.coe_mk]
     trans; swap
     rw [show decode₂ γ n = _ from Option.get_mem (H n h)]
-    congr ; simp [ext_iff, -Option.some_get]
+    congr; simp [ext_iff, -Option.some_get]
 #align tsum_supr_decode₂ tsum_iSup_decode₂
 
 /-- `tsum_supr_decode₂` specialized to the complete lattice of sets. -/
@@ -906,7 +906,7 @@ theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α)
     HasSum (f ∘ coe : sᶜ → α) a₂ ↔ HasSum f (a₁ + a₂) :=
   by
   refine' ⟨fun h => hf.add_compl h, fun h => _⟩
-  rw [hasSum_subtype_iff_indicator] at hf⊢
+  rw [hasSum_subtype_iff_indicator] at hf ⊢
   rw [Set.indicator_compl]
   simpa only [add_sub_cancel'] using h.sub hf
 #align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iff
@@ -1041,7 +1041,7 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     simpa only [h₀, sub_self] using tendsto.sub h₁ hf.has_sum.tendsto_sum_nat
   · convert tendsto_const_nhds
     ext1 i
-    rw [← summable_nat_add_iff i] at hf
+    rw [← summable_nat_add_iff i] at hf 
     · exact tsum_eq_zero_of_not_summable hf
     · infer_instance
 #align tendsto_sum_nat_add tendsto_sum_nat_add
@@ -1061,14 +1061,14 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
       rintro _ ⟨⟨i, rfl⟩, ⟨j, ⟨⟩⟩⟩
     · rw [codisjoint_iff_le_sup]
       rintro (i | j) h
-      exacts[Or.inl ⟨_, rfl⟩, Or.inr ⟨_, rfl⟩]
+      exacts [Or.inl ⟨_, rfl⟩, Or.inr ⟨_, rfl⟩]
   exact HasSum.add_isCompl this (h₁.has_sum_range_iff.mpr hf) (h₂.has_sum_range_iff.mpr hg)
 #align has_sum.int_rec HasSum.int_rec
 
 theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + b) :=
   by
-  simp_rw [← Int.negSucc_coe] at hneg
+  simp_rw [← Int.negSucc_coe] at hneg 
   convert hnonneg.int_rec hneg using 1
   ext (i | j) <;> rfl
 #align has_sum.nonneg_add_neg HasSum.nonneg_add_neg
@@ -1122,7 +1122,7 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
         simpa only [mem_sdiff, mem_union, mem_image, neg_eq_zero, or_self_iff, mem_inter,
           and_self_iff, and_not_self_iff] using hx
       · intro x hx
-        simp only [mem_inter, mem_image, exists_prop] at hx
+        simp only [mem_inter, mem_image, exists_prop] at hx 
         have : x = 0 := by
           apply le_antisymm
           · rcases hx.2 with ⟨a, ha, rfl⟩
@@ -1228,7 +1228,7 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
             by
             refine' Finset.sum_subset (Finset.filter_subset _ _) _
             intro b hbt hb
-            simp only [(· ∉ ·), Finset.mem_filter, and_iff_right hbt] at hb
+            simp only [(· ∉ ·), Finset.mem_filter, and_iff_right hbt] at hb 
             exact (h b).resolve_right hb
           
       Eq ▸ hs _ <| Finset.disjoint_of_subset_left (Finset.filter_subset _ _) ht⟩
@@ -1255,14 +1255,14 @@ theorem summable_subtype_and_compl {s : Set β} :
 #align summable_subtype_and_compl summable_subtype_and_compl
 
 #print Summable.sigma_factor /-
-theorem Summable.sigma_factor {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) (b : β) :
+theorem Summable.sigma_factor {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f) (b : β) :
     Summable fun c => f ⟨b, c⟩ :=
   ha.comp_injective sigma_mk_injective
 #align summable.sigma_factor Summable.sigma_factor
 -/
 
 #print Summable.sigma /-
-theorem Summable.sigma {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
+theorem Summable.sigma {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f) :
     Summable fun b => ∑' c, f ⟨b, c⟩ :=
   ha.sigma' fun b => ha.sigma_factor b
 #align summable.sigma Summable.sigma
@@ -1282,7 +1282,7 @@ attribute [local instance] TopologicalAddGroup.t3Space
 attribute [-instance] T3Space.to_t0Space
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
-theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
+theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} (ha : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
Diff
@@ -37,7 +37,7 @@ noncomputable section
 
 open Classical Filter Finset Function
 
-open BigOperators Classical Topology
+open scoped BigOperators Classical Topology
 
 variable {α : Type _} {β : Type _} {γ : Type _} {δ : Type _}
 
Diff
@@ -84,51 +84,21 @@ notation3"∑' "-- see Note [operator precedence of big operators]
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
-/- warning: summable.has_sum -> Summable.hasSum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 f (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)))
-Case conversion may be inaccurate. Consider using '#align summable.has_sum Summable.hasSumₓ'. -/
 theorem Summable.hasSum (ha : Summable f) : HasSum f (∑' b, f b) := by
   simp [ha, tsum] <;> exact some_spec ha
 #align summable.has_sum Summable.hasSum
 
-/- warning: has_sum.summable -> HasSum.summable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (Summable.{u2, u1} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align has_sum.summable HasSum.summableₓ'. -/
 theorem HasSum.summable (h : HasSum f a) : Summable f :=
   ⟨a, h⟩
 #align has_sum.summable HasSum.summable
 
-/- warning: has_sum_zero -> hasSum_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α], HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α], HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align has_sum_zero hasSum_zeroₓ'. -/
 /-- Constant zero function has sum `0` -/
 theorem hasSum_zero : HasSum (fun b => 0 : β → α) 0 := by simp [HasSum, tendsto_const_nhds]
 #align has_sum_zero hasSum_zero
 
-/- warning: has_sum_empty -> hasSum_empty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : IsEmpty.{succ u2} β], HasSum.{u1, u2} α β _inst_1 _inst_2 f (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : IsEmpty.{succ u2} β], HasSum.{u1, u2} α β _inst_1 _inst_2 f (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align has_sum_empty hasSum_emptyₓ'. -/
 theorem hasSum_empty [IsEmpty β] : HasSum f 0 := by convert hasSum_zero
 #align has_sum_empty hasSum_empty
 
-/- warning: summable_zero -> summable_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α], Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α], Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align summable_zero summable_zeroₓ'. -/
 theorem summable_zero : Summable (fun b => 0 : β → α) :=
   hasSum_zero.Summable
 #align summable_zero summable_zero
@@ -139,31 +109,13 @@ theorem summable_empty [IsEmpty β] : Summable f :=
 #align summable_empty summable_empty
 -/
 
-/- warning: tsum_eq_zero_of_not_summable -> tsum_eq_zero_of_not_summable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, (Not (Summable.{u1, u2} α β _inst_1 _inst_2 f)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Not (Summable.{u2, u1} α β _inst_1 _inst_2 f)) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summableₓ'. -/
 theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : (∑' b, f b) = 0 := by simp [tsum, h]
 #align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summable
 
-/- warning: summable_congr -> summable_congr is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u1} α (f b) (g b)) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α β _inst_1 _inst_2 g))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u2} α (f b) (g b)) -> (Iff (Summable.{u2, u1} α β _inst_1 _inst_2 f) (Summable.{u2, u1} α β _inst_1 _inst_2 g))
-Case conversion may be inaccurate. Consider using '#align summable_congr summable_congrₓ'. -/
 theorem summable_congr (hfg : ∀ b, f b = g b) : Summable f ↔ Summable g :=
   iff_of_eq (congr_arg Summable <| funext hfg)
 #align summable_congr summable_congr
 
-/- warning: summable.congr -> Summable.congr is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (forall (b : β), Eq.{succ u1} α (f b) (g b)) -> (Summable.{u1, u2} α β _inst_1 _inst_2 g)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (forall (b : β), Eq.{succ u2} α (f b) (g b)) -> (Summable.{u2, u1} α β _inst_1 _inst_2 g)
-Case conversion may be inaccurate. Consider using '#align summable.congr Summable.congrₓ'. -/
 theorem Summable.congr (hf : Summable f) (hfg : ∀ b, f b = g b) : Summable g :=
   (summable_congr hfg).mp hf
 #align summable.congr Summable.congr
@@ -191,70 +143,34 @@ theorem hasSum_iff_hasSum {g : γ → α}
 #align has_sum_iff_has_sum hasSum_iff_hasSum
 -/
 
-/- warning: function.injective.has_sum_iff -> Function.Injective.hasSum_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Iff (HasSum.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Iff (HasSum.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
-Case conversion may be inaccurate. Consider using '#align function.injective.has_sum_iff Function.Injective.hasSum_iffₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
   simp only [HasSum, tendsto, hg.map_at_top_finset_sum_eq hf]
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 
-/- warning: function.injective.summable_iff -> Function.Injective.summable_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Iff (Summable.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Iff (Summable.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align function.injective.summable_iff Function.Injective.summable_iffₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
   exists_congr fun _ => hg.hasSum_iff hf
 #align function.injective.summable_iff Function.Injective.summable_iff
 
-/- warning: has_sum_subtype_iff_of_support_subset -> hasSum_subtype_iff_of_support_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) s) -> (Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (Function.support.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f) s) -> (Iff (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
-Case conversion may be inaccurate. Consider using '#align has_sum_subtype_iff_of_support_subset hasSum_subtype_iff_of_support_subsetₓ'. -/
 theorem hasSum_subtype_iff_of_support_subset {s : Set β} (hf : support f ⊆ s) :
     HasSum (f ∘ coe : s → α) a ↔ HasSum f a :=
   Subtype.coe_injective.hasSum_iff <| by simpa using support_subset_iff'.1 hf
 #align has_sum_subtype_iff_of_support_subset hasSum_subtype_iff_of_support_subset
 
-/- warning: has_sum_subtype_iff_indicator -> hasSum_subtype_iff_indicator is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) s f) a)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, Iff (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) s f) a)
-Case conversion may be inaccurate. Consider using '#align has_sum_subtype_iff_indicator hasSum_subtype_iff_indicatorₓ'. -/
 theorem hasSum_subtype_iff_indicator {s : Set β} :
     HasSum (f ∘ coe : s → α) a ↔ HasSum (s.indicator f) a := by
   rw [← Set.indicator_range_comp, Subtype.range_coe,
     hasSum_subtype_iff_of_support_subset Set.support_indicator_subset]
 #align has_sum_subtype_iff_indicator hasSum_subtype_iff_indicator
 
-/- warning: summable_subtype_iff_indicator -> summable_subtype_iff_indicator is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Set.{u2} β}, Iff (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) (Summable.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) s f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Set.{u2} β}, Iff (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) (Summable.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) s f))
-Case conversion may be inaccurate. Consider using '#align summable_subtype_iff_indicator summable_subtype_iff_indicatorₓ'. -/
 theorem summable_subtype_iff_indicator {s : Set β} :
     Summable (f ∘ coe : s → α) ↔ Summable (s.indicator f) :=
   exists_congr fun _ => hasSum_subtype_iff_indicator
 #align summable_subtype_iff_indicator summable_subtype_iff_indicator
 
-/- warning: has_sum_subtype_support -> hasSum_subtype_support is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, Iff (HasSum.{u2, u1} α (Set.Elem.{u1} β (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f)) _inst_1 _inst_2 (Function.comp.{succ u1, succ u1, succ u2} (Set.Elem.{u1} β (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f)) β α f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f)))) a) (HasSum.{u2, u1} α β _inst_1 _inst_2 f a)
-Case conversion may be inaccurate. Consider using '#align has_sum_subtype_support hasSum_subtype_supportₓ'. -/
 @[simp]
 theorem hasSum_subtype_support : HasSum (f ∘ coe : support f → α) a ↔ HasSum f a :=
   hasSum_subtype_iff_of_support_subset <| Set.Subset.refl _
@@ -287,47 +203,23 @@ protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → 
 #align set.finite.summable Set.Finite.summable
 -/
 
-/- warning: has_sum_sum_of_ne_finset_zero -> hasSum_sum_of_ne_finset_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
-Case conversion may be inaccurate. Consider using '#align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zeroₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
   (hasSum_subtype_iff_of_support_subset <| support_subset_iff'.2 hf).1 <| s.HasSum f
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 
-/- warning: summable_of_ne_finset_zero -> summable_of_ne_finset_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable_of_ne_finset_zero summable_of_ne_finset_zeroₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 
-/- warning: has_sum_single -> hasSum_single is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (f b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (f b))
-Case conversion may be inaccurate. Consider using '#align has_sum_single hasSum_singleₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
   hasSum_sum_of_ne_finset_zero <| by simpa [hf]
 #align has_sum_single hasSum_single
 
-/- warning: has_sum_ite_eq -> hasSum_ite_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] (b : β) [_inst_3 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_3 b') a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) a
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] (b : β) [_inst_3 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_3 b') a (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))) a
-Case conversion may be inaccurate. Consider using '#align has_sum_ite_eq hasSum_ite_eqₓ'. -/
 theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
     HasSum (fun b' => if b' = b then a else 0) a :=
   by
@@ -337,12 +229,6 @@ theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
   exact if_neg hb'
 #align has_sum_ite_eq hasSum_ite_eq
 
-/- warning: has_sum_pi_single -> hasSum_pi_single is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : DecidableEq.{succ u2} β] (b : β) (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_3 a b) (fun (i : β) => AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) b a) a
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : DecidableEq.{succ u2} β] (b : β) (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_3 a b) (fun (i : β) => AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) b a) a
-Case conversion may be inaccurate. Consider using '#align has_sum_pi_single hasSum_pi_singleₓ'. -/
 theorem hasSum_pi_single [DecidableEq β] (b : β) (a : α) : HasSum (Pi.single b a) a :=
   show HasSum (fun x => Pi.single b a x) a by simpa only [Pi.single_apply] using hasSum_ite_eq b a
 #align has_sum_pi_single hasSum_pi_single
@@ -366,22 +252,10 @@ theorem Equiv.summable_iff (e : γ ≃ β) : Summable (f ∘ e) ↔ Summable f :
 #align equiv.summable_iff Equiv.summable_iff
 -/
 
-/- warning: summable.prod_symm -> Summable.prod_symm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) _inst_1 _inst_2 f) -> (Summable.{u1, max u3 u2} α (Prod.{u3, u2} γ β) _inst_1 _inst_2 (fun (p : Prod.{u3, u2} γ β) => f (Prod.swap.{u3, u2} γ β p)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : (Prod.{u3, u2} β γ) -> α}, (Summable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) _inst_1 _inst_2 f) -> (Summable.{u1, max u3 u2} α (Prod.{u2, u3} γ β) _inst_1 _inst_2 (fun (p : Prod.{u2, u3} γ β) => f (Prod.swap.{u2, u3} γ β p)))
-Case conversion may be inaccurate. Consider using '#align summable.prod_symm Summable.prod_symmₓ'. -/
 theorem Summable.prod_symm {f : β × γ → α} (hf : Summable f) : Summable fun p : γ × β => f p.symm :=
   (Equiv.prodComm γ β).summable_iff.2 hf
 #align summable.prod_symm Summable.prod_symm
 
-/- warning: equiv.has_sum_iff_of_support -> Equiv.hasSum_iff_of_support is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (HasSum.{u1, u3} α β _inst_1 _inst_2 f a) (HasSum.{u1, u2} α γ _inst_1 _inst_2 g a))
-Case conversion may be inaccurate. Consider using '#align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_supportₓ'. -/
 theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : HasSum f a ↔ HasSum g a :=
   by
@@ -389,12 +263,6 @@ theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g
   rw [← hasSum_subtype_support, ← this, e.has_sum_iff, hasSum_subtype_support]
 #align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_support
 
-/- warning: has_sum_iff_has_sum_of_ne_zero_bij -> hasSum_iff_hasSum_of_ne_zero_bij is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (i : (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) -> β), (forall {{x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}} {{y : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}}, (Eq.{succ u2} β (i x) (i y)) -> (Eq.{succ u3} γ ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) y))) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) (Set.range.{u2, succ u3} β (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) i)) -> (forall (x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)), Eq.{succ u1} α (f (i x)) (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x))) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α} {g : γ -> α} (i : (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) -> β), (forall {{x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}} {{y : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}}, (Eq.{succ u1} β (i x) (i y)) -> (Eq.{succ u3} γ (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x) (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) y))) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f) (Set.range.{u1, succ u3} β (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) i)) -> (forall (x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)), Eq.{succ u2} α (f (i x)) (g (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x))) -> (Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) (HasSum.{u2, u3} α γ _inst_1 _inst_2 g a))
-Case conversion may be inaccurate. Consider using '#align has_sum_iff_has_sum_of_ne_zero_bij hasSum_iff_hasSum_of_ne_zero_bijₓ'. -/
 theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
     (hfg : ∀ x, f (i x) = g x) : HasSum f a ↔ HasSum g a :=
@@ -406,23 +274,11 @@ theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
       hfg
 #align has_sum_iff_has_sum_of_ne_zero_bij hasSum_iff_hasSum_of_ne_zero_bij
 
-/- warning: equiv.summable_iff_of_support -> Equiv.summable_iff_of_support is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u1, u3} α γ _inst_1 _inst_2 g))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (Summable.{u1, u3} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α γ _inst_1 _inst_2 g))
-Case conversion may be inaccurate. Consider using '#align equiv.summable_iff_of_support Equiv.summable_iff_of_supportₓ'. -/
 theorem Equiv.summable_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : Summable f ↔ Summable g :=
   exists_congr fun _ => e.hasSum_iff_of_support he
 #align equiv.summable_iff_of_support Equiv.summable_iff_of_support
 
-/- warning: has_sum.map -> HasSum.map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ], (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (forall {G : Type.{u4}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (HasSum.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f) (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g a)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} {a : α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (HasSum.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f) (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g a)))
-Case conversion may be inaccurate. Consider using '#align has_sum.map HasSum.mapₓ'. -/
 protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasSum f a) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : HasSum (g ∘ f) (g a) :=
   have : (g ∘ fun s : Finset β => ∑ b in s, f b) = fun s : Finset β => ∑ b in s, g (f b) :=
@@ -431,20 +287,11 @@ protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasS
     this ▸ (hg.Tendsto a).comp hf
 #align has_sum.map HasSum.map
 
-/- warning: summable.map -> Summable.map is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ], (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (forall {G : Type.{u4}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (Summable.{u3, u2} α β _inst_1 _inst_2 f) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (Summable.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f)))
-Case conversion may be inaccurate. Consider using '#align summable.map Summable.mapₓ'. -/
 protected theorem Summable.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : Summable f) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : Summable (g ∘ f) :=
   (hf.HasSum.map g hg).Summable
 #align summable.map Summable.map
 
-/- warning: summable.map_iff_of_left_inverse -> Summable.map_iff_of_leftInverse is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverseₓ'. -/
 protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [TopologicalSpace γ] {G G'}
     [AddMonoidHomClass G α γ] [AddMonoidHomClass G' γ α] (g : G) (g' : G') (hg : Continuous g)
     (hg' : Continuous g') (hinv : Function.LeftInverse g' g) : Summable (g ∘ f) ↔ Summable f :=
@@ -453,12 +300,6 @@ protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [Topologica
     rwa [← Function.comp.assoc, hinv.id] at this, fun h => h.map _ hg⟩
 #align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverse
 
-/- warning: summable.map_iff_of_equiv -> Summable.map_iff_of_equiv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ] {G : Type.{u4}} [_inst_5 : AddEquivClass.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (EmbeddingLike.toFunLike.{succ u4, succ u1, succ u3} G α γ (EquivLike.toEmbeddingLike.{succ u4, succ u1, succ u3} G α γ (AddEquivClass.toEquivLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) _inst_5)))) g)) -> (Continuous.{u3, u1} γ α _inst_4 _inst_2 (AddEquivClass.inv.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) _inst_5 g)) -> (Iff (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (EmbeddingLike.toFunLike.{succ u4, succ u1, succ u3} G α γ (EquivLike.toEmbeddingLike.{succ u4, succ u1, succ u3} G α γ (AddEquivClass.toEquivLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) _inst_5)))) g) f)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ] {G : Type.{u3}} [_inst_5 : AddEquivClass.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)))] (g : G), (Continuous.{u2, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u3, succ u2, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => γ) _x) (EmbeddingLike.toFunLike.{succ u3, succ u2, succ u4} G α γ (EquivLike.toEmbeddingLike.{succ u3, succ u2, succ u4} G α γ (AddEquivClass.toEquivLike.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) _inst_5))) g)) -> (Continuous.{u4, u2} γ α _inst_4 _inst_2 (EquivLike.inv.{succ u3, succ u2, succ u4} G α γ (AddEquivClass.toEquivLike.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) _inst_5) g)) -> (Iff (Summable.{u4, u1} γ β _inst_3 _inst_4 (Function.comp.{succ u1, succ u2, succ u4} β α γ (FunLike.coe.{succ u3, succ u2, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => γ) _x) (EmbeddingLike.toFunLike.{succ u3, succ u2, succ u4} G α γ (EquivLike.toEmbeddingLike.{succ u3, succ u2, succ u4} G α γ (AddEquivClass.toEquivLike.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) _inst_5))) g) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align summable.map_iff_of_equiv Summable.map_iff_of_equivₓ'. -/
 /-- A special case of `summable.map_iff_of_left_inverse` for convenience -/
 protected theorem Summable.map_iff_of_equiv [AddCommMonoid γ] [TopologicalSpace γ] {G}
     [AddEquivClass G α γ] (g : G) (hg : Continuous g)
@@ -474,12 +315,6 @@ theorem HasSum.tendsto_sum_nat {f : ℕ → α} (h : HasSum f a) :
 #align has_sum.tendsto_sum_nat HasSum.tendsto_sum_nat
 -/
 
-/- warning: has_sum.unique -> HasSum.unique is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a₁ : α} {a₂ : α} [_inst_3 : T2Space.{u1} α _inst_2], (HasSum.{u1, u2} α β _inst_1 _inst_2 f a₁) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f a₂) -> (Eq.{succ u1} α a₁ a₂)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a₁ : α} {a₂ : α} [_inst_3 : T2Space.{u2} α _inst_2], (HasSum.{u2, u1} α β _inst_1 _inst_2 f a₁) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 f a₂) -> (Eq.{succ u2} α a₁ a₂)
-Case conversion may be inaccurate. Consider using '#align has_sum.unique HasSum.uniqueₓ'. -/
 theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f a₂ → a₁ = a₂ :=
   tendsto_nhds_unique
 #align has_sum.unique HasSum.unique
@@ -494,12 +329,6 @@ theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (
 #align summable.has_sum_iff_tendsto_nat Summable.hasSum_iff_tendsto_nat
 -/
 
-/- warning: function.surjective.summable_iff_of_has_sum_iff -> Function.Surjective.summable_iff_of_hasSum_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {α' : Type.{u4}} [_inst_3 : AddCommMonoid.{u4} α'] [_inst_4 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u1} α' α e) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u3} α' γ _inst_3 _inst_4 g a)) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u4, u3} α' γ _inst_3 _inst_4 g)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {α' : Type.{u4}} [_inst_3 : AddCommMonoid.{u4} α'] [_inst_4 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u3} α' α e) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u3, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u1} α' γ _inst_3 _inst_4 g a)) -> (Iff (Summable.{u3, u2} α β _inst_1 _inst_2 f) (Summable.{u4, u1} α' γ _inst_3 _inst_4 g)))
-Case conversion may be inaccurate. Consider using '#align function.surjective.summable_iff_of_has_sum_iff Function.Surjective.summable_iff_of_hasSum_iffₓ'. -/
 theorem Function.Surjective.summable_iff_of_hasSum_iff {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) {f : β → α} {g : γ → α'}
     (he : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : Summable f ↔ Summable g :=
@@ -508,32 +337,14 @@ theorem Function.Surjective.summable_iff_of_hasSum_iff {α' : Type _} [AddCommMo
 
 variable [ContinuousAdd α]
 
-/- warning: has_sum.add -> HasSum.add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))], (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 g b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (g b)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))], (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 g b) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (g b)) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.add HasSum.addₓ'. -/
 theorem HasSum.add (hf : HasSum f a) (hg : HasSum g b) : HasSum (fun b => f b + g b) (a + b) := by
   simp only [HasSum, sum_add_distrib] <;> exact hf.add hg
 #align has_sum.add HasSum.add
 
-/- warning: summable.add -> Summable.add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))], (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 g) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (g b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α} [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))], (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 g) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (g b)))
-Case conversion may be inaccurate. Consider using '#align summable.add Summable.addₓ'. -/
 theorem Summable.add (hf : Summable f) (hg : Summable g) : Summable fun b => f b + g b :=
   (hf.HasSum.add hg.HasSum).Summable
 #align summable.add Summable.add
 
-/- warning: has_sum_sum -> hasSum_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : γ -> β -> α} {a : γ -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.Mem.{u3, u3} γ (Finset.{u3} γ) (Finset.hasMem.{u3} γ) i s) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (f i) (a i))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => f i b)) (Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => a i)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : γ -> β -> α} {a : γ -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.mem.{u3, u3} γ (Finset.{u3} γ) (Finset.instMembershipFinset.{u3} γ) i s) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (f i) (a i))) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => f i b)) (Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => a i)))
-Case conversion may be inaccurate. Consider using '#align has_sum_sum hasSum_sumₓ'. -/
 theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
     (∀ i ∈ s, HasSum (f i) (a i)) → HasSum (fun b => ∑ i in s, f i b) (∑ i in s, a i) :=
   Finset.induction_on s (by simp only [hasSum_zero, sum_empty, forall_true_iff])
@@ -542,23 +353,11 @@ theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
         forall_eq_or_imp, forall₂_true_iff, not_false_iff, forall_true_iff])
 #align has_sum_sum hasSum_sum
 
-/- warning: summable_sum -> summable_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.Mem.{u3, u3} γ (Finset.{u3} γ) (Finset.hasMem.{u3} γ) i s) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (f i))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => f i b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.mem.{u3, u3} γ (Finset.{u3} γ) (Finset.instMembershipFinset.{u3} γ) i s) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (f i))) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => f i b)))
-Case conversion may be inaccurate. Consider using '#align summable_sum summable_sumₓ'. -/
 theorem summable_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
     Summable fun b => ∑ i in s, f i b :=
   (hasSum_sum fun i hi => (hf i hi).HasSum).Summable
 #align summable_sum summable_sum
 
-/- warning: has_sum.add_disjoint -> HasSum.add_disjoint is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β))) s t) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t))))))) b) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)))))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) s t) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β t) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t))) b) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.add_disjoint HasSum.add_disjointₓ'. -/
 theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : t → α) b) : HasSum (f ∘ coe : s ∪ t → α) (a + b) :=
   by
@@ -567,9 +366,6 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
   exact ha.add hb
 #align has_sum.add_disjoint HasSum.add_disjoint
 
-/- warning: has_sum_sum_disjoint -> hasSum_sum_disjoint is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
     HasSum (f ∘ coe : (⋃ i ∈ s, t i) → α) (∑ i in s, a i) :=
@@ -579,57 +375,27 @@ theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι →
   exact hasSum_sum hf
 #align has_sum_sum_disjoint hasSum_sum_disjoint
 
-/- warning: has_sum.add_is_compl -> HasSum.add_isCompl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (IsCompl.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))) s t) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t))))))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (IsCompl.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))) s t) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β t) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.add_is_compl HasSum.add_isComplₓ'. -/
 theorem HasSum.add_isCompl {s t : Set β} (hs : IsCompl s t) (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : t → α) b) : HasSum f (a + b) := by
   simpa [← hs.compl_eq] using
     (hasSum_subtype_iff_indicator.1 ha).add (hasSum_subtype_iff_indicator.1 hb)
 #align has_sum.add_is_compl HasSum.add_isCompl
 
-/- warning: has_sum.add_compl -> HasSum.add_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.add_compl HasSum.add_complₓ'. -/
 theorem HasSum.add_compl {s : Set β} (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : sᶜ → α) b) : HasSum f (a + b) :=
   ha.add_isCompl isCompl_compl hb
 #align has_sum.add_compl HasSum.add_compl
 
-/- warning: summable.add_compl -> Summable.add_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable.add_compl Summable.add_complₓ'. -/
 theorem Summable.add_compl {s : Set β} (hs : Summable (f ∘ coe : s → α))
     (hsc : Summable (f ∘ coe : sᶜ → α)) : Summable f :=
   (hs.HasSum.add_compl hsc.HasSum).Summable
 #align summable.add_compl Summable.add_compl
 
-/- warning: has_sum.compl_add -> HasSum.compl_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.compl_add HasSum.compl_addₓ'. -/
 theorem HasSum.compl_add {s : Set β} (ha : HasSum (f ∘ coe : sᶜ → α) a)
     (hb : HasSum (f ∘ coe : s → α) b) : HasSum f (a + b) :=
   ha.add_isCompl isCompl_compl.symm hb
 #align has_sum.compl_add HasSum.compl_add
 
-/- warning: has_sum.even_add_odd -> HasSum.even_add_odd is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k)) a) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) b) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k)) a) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) b) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.even_add_odd HasSum.even_add_oddₓ'. -/
 theorem HasSum.even_add_odd {f : ℕ → α} (he : HasSum (fun k => f (2 * k)) a)
     (ho : HasSum (fun k => f (2 * k + 1)) b) : HasSum f (a + b) :=
   by
@@ -640,34 +406,16 @@ theorem HasSum.even_add_odd {f : ℕ → α} (he : HasSum (fun k => f (2 * k)) a
   simpa [(· ∘ ·)] using Nat.isCompl_even_odd
 #align has_sum.even_add_odd HasSum.even_add_odd
 
-/- warning: summable.compl_add -> Summable.compl_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable.compl_add Summable.compl_addₓ'. -/
 theorem Summable.compl_add {s : Set β} (hs : Summable (f ∘ coe : sᶜ → α))
     (hsc : Summable (f ∘ coe : s → α)) : Summable f :=
   (hs.HasSum.compl_add hsc.HasSum).Summable
 #align summable.compl_add Summable.compl_add
 
-/- warning: summable.even_add_odd -> Summable.even_add_odd is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable.even_add_odd Summable.even_add_oddₓ'. -/
 theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) : Summable f :=
   (he.HasSum.even_add_odd ho.HasSum).Summable
 #align summable.even_add_odd Summable.even_add_odd
 
-/- warning: has_sum.sigma -> HasSum.sigma is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : RegularSpace.{u1} α _inst_2] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u1, u3} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)) (g b)) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 g a)
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : RegularSpace.{u3} α _inst_2] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u3, u2} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)) (g b)) -> (HasSum.{u3, u1} α β _inst_1 _inst_2 g a)
-Case conversion may be inaccurate. Consider using '#align has_sum.sigma HasSum.sigmaₓ'. -/
 theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b) → α} {g : β → α} {a : α}
     (ha : HasSum f a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) : HasSum g a :=
   by
@@ -690,12 +438,6 @@ theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b
   exact mem_filter.2 ⟨ht hx, hbs <| mem_image_of_mem _ hx⟩
 #align has_sum.sigma HasSum.sigma
 
-/- warning: has_sum.prod_fiberwise -> HasSum.prod_fiberwise is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : RegularSpace.{u1} α _inst_2] {f : (Prod.{u2, u3} β γ) -> α} {g : β -> α} {a : α}, (HasSum.{u1, max u2 u3} α (Prod.{u2, u3} β γ) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u1, u3} α γ _inst_1 _inst_2 (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)) (g b)) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 g a)
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : RegularSpace.{u3} α _inst_2] {f : (Prod.{u2, u1} β γ) -> α} {g : β -> α} {a : α}, (HasSum.{u3, max u2 u1} α (Prod.{u2, u1} β γ) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u3, u1} α γ _inst_1 _inst_2 (fun (c : γ) => f (Prod.mk.{u2, u1} β γ b c)) (g b)) -> (HasSum.{u3, u2} α β _inst_1 _inst_2 g a)
-Case conversion may be inaccurate. Consider using '#align has_sum.prod_fiberwise HasSum.prod_fiberwiseₓ'. -/
 /-- 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 HasSum.prod_fiberwise [RegularSpace α] {f : β × γ → α} {g : β → α} {a : α} (ha : HasSum f a)
@@ -703,34 +445,16 @@ theorem HasSum.prod_fiberwise [RegularSpace α] {f : β × γ → α} {g : β 
   HasSum.sigma ((Equiv.sigmaEquivProd β γ).hasSum_iff.2 ha) hf
 #align has_sum.prod_fiberwise HasSum.prod_fiberwise
 
-/- warning: summable.sigma' -> Summable.sigma' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : RegularSpace.{u1} α _inst_2] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α}, (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (forall (b : β), Summable.{u1, u3} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => tsum.{u1, u3} α _inst_1 _inst_2 (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : RegularSpace.{u3} α _inst_2] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α}, (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (forall (b : β), Summable.{u3, u2} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c))) -> (Summable.{u3, u1} α β _inst_1 _inst_2 (fun (b : β) => tsum.{u3, u2} α _inst_1 _inst_2 (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c))))
-Case conversion may be inaccurate. Consider using '#align summable.sigma' Summable.sigma'ₓ'. -/
 theorem Summable.sigma' [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f)
     (hf : ∀ b, Summable fun c => f ⟨b, c⟩) : Summable fun b => ∑' c, f ⟨b, c⟩ :=
   (ha.HasSum.Sigma fun b => (hf b).HasSum).Summable
 #align summable.sigma' Summable.sigma'
 
-/- warning: has_sum.sigma_of_has_sum -> HasSum.sigma_of_hasSum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : T3Space.{u1} α _inst_2] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 g a) -> (forall (b : β), HasSum.{u1, u3} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)) (g b)) -> (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (HasSum.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a)
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : T3Space.{u3} α _inst_2] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u3, u1} α β _inst_1 _inst_2 g a) -> (forall (b : β), HasSum.{u3, u2} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)) (g b)) -> (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (HasSum.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a)
-Case conversion may be inaccurate. Consider using '#align has_sum.sigma_of_has_sum HasSum.sigma_of_hasSumₓ'. -/
 theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} {g : β → α}
     {a : α} (ha : HasSum g a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) (hf' : Summable f) :
     HasSum f a := by simpa [(hf'.has_sum.sigma hf).unique ha] using hf'.has_sum
 #align has_sum.sigma_of_has_sum HasSum.sigma_of_hasSum
 
-/- warning: has_sum.update' -> HasSum.update' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : AddCommMonoid.{u1} α] [_inst_6 : T2Space.{u1} α _inst_4] [_inst_7 : ContinuousAdd.{u1} α _inst_4 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))] {f : β -> α} {a : α} {a' : α}, (HasSum.{u1, u2} α β _inst_5 _inst_4 f a) -> (forall (b : β) (x : α), (HasSum.{u1, u2} α β _inst_5 _inst_4 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)) f b x) a') -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))) a x) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))) a' (f b))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : TopologicalSpace.{u2} α] [_inst_5 : AddCommMonoid.{u2} α] [_inst_6 : T2Space.{u2} α _inst_4] [_inst_7 : ContinuousAdd.{u2} α _inst_4 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))] {f : β -> α} {a : α} {a' : α}, (HasSum.{u2, u1} α β _inst_5 _inst_4 f a) -> (forall (b : β) (x : α), (HasSum.{u2, u1} α β _inst_5 _inst_4 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)) f b x) a') -> (Eq.{succ u2} α (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) a x) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) a' (f b))))
-Case conversion may be inaccurate. Consider using '#align has_sum.update' HasSum.update'ₓ'. -/
 /-- Version of `has_sum.update` for `add_comm_monoid` rather than `add_comm_group`.
 Rather than showing that `f.update` has a specific sum in terms of `has_sum`,
 it gives a relationship between the sums of `f` and `f.update` given that both exist. -/
@@ -749,12 +473,6 @@ theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α]
   exact HasSum.unique h (hf'.add (hasSum_ite_eq b (f b)))
 #align has_sum.update' HasSum.update'
 
-/- warning: eq_add_of_has_sum_ite -> eq_add_of_hasSum_ite is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : AddCommMonoid.{u1} α] [_inst_6 : T2Space.{u1} α _inst_4] [_inst_7 : ContinuousAdd.{u1} α _inst_4 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_5 _inst_4 f a) -> (forall (b : β) (a' : α), (HasSum.{u1, u2} α β _inst_5 _inst_4 (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (Classical.propDecidable (Eq.{succ u2} β n b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))))) (f n)) a') -> (Eq.{succ u1} α a (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))) a' (f b))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : TopologicalSpace.{u2} α] [_inst_5 : AddCommMonoid.{u2} α] [_inst_6 : T2Space.{u2} α _inst_4] [_inst_7 : ContinuousAdd.{u2} α _inst_4 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_5 _inst_4 f a) -> (forall (b : β) (a' : α), (HasSum.{u2, u1} α β _inst_5 _inst_4 (fun (n : β) => ite.{succ u2} α (Eq.{succ u1} β n b) (Classical.propDecidable (Eq.{succ u1} β n b)) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) (f n)) a') -> (Eq.{succ u2} α a (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) a' (f b))))
-Case conversion may be inaccurate. Consider using '#align eq_add_of_has_sum_ite eq_add_of_hasSum_iteₓ'. -/
 /-- Version of `has_sum_ite_sub_has_sum` for `add_comm_monoid` rather than `add_comm_group`.
 Rather than showing that the `ite` expression has a specific sum in terms of `has_sum`,
 it gives a relationship between the sums of `f` and `ite (n = b) 0 (f n)` given that both exist. -/
@@ -779,12 +497,6 @@ theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
 #align tsum_congr_subtype tsum_congr_subtype
 -/
 
-/- warning: tsum_zero' -> tsum_zero' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α], (IsClosed.{u1} α _inst_2 (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α], (IsClosed.{u2} α _inst_2 (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align tsum_zero' tsum_zero'ₓ'. -/
 theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' b : β, (0 : α)) = 0 := by
   classical
     rw [tsum, dif_pos summable_zero]
@@ -799,12 +511,6 @@ theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' b : β, (0 : α)) = 0
     · simp
 #align tsum_zero' tsum_zero'
 
-/- warning: tsum_zero -> tsum_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T1Space.{u1} α _inst_2], Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T1Space.{u2} α _inst_2], Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align tsum_zero tsum_zeroₓ'. -/
 @[simp]
 theorem tsum_zero [T1Space α] : (∑' b : β, (0 : α)) = 0 :=
   tsum_zero' isClosed_singleton
@@ -812,55 +518,25 @@ theorem tsum_zero [T1Space α] : (∑' b : β, (0 : α)) = 0 :=
 
 variable [T2Space α] {f g : β → α} {a a₁ a₂ : α}
 
-/- warning: has_sum.tsum_eq -> HasSum.tsum_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) a)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) a)
-Case conversion may be inaccurate. Consider using '#align has_sum.tsum_eq HasSum.tsum_eqₓ'. -/
 theorem HasSum.tsum_eq (ha : HasSum f a) : (∑' b, f b) = a :=
   (Summable.hasSum ⟨a, ha⟩).unique ha
 #align has_sum.tsum_eq HasSum.tsum_eq
 
-/- warning: summable.has_sum_iff -> Summable.hasSum_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {a : α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {a : α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) a))
-Case conversion may be inaccurate. Consider using '#align summable.has_sum_iff Summable.hasSum_iffₓ'. -/
 theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ (∑' b, f b) = a :=
   Iff.intro HasSum.tsum_eq fun eq => Eq ▸ h.HasSum
 #align summable.has_sum_iff Summable.hasSum_iff
 
-/- warning: tsum_empty -> tsum_empty is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : IsEmpty.{succ u2} β], Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : IsEmpty.{succ u2} β], Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align tsum_empty tsum_emptyₓ'. -/
 @[simp]
 theorem tsum_empty [IsEmpty β] : (∑' b, f b) = 0 :=
   hasSum_empty.tsum_eq
 #align tsum_empty tsum_empty
 
-/- warning: tsum_eq_sum -> tsum_eq_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_sum tsum_eq_sumₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     (∑' b, f b) = ∑ b in s, f b :=
   (hasSum_sum_of_ne_finset_zero hf).tsum_eq
 #align tsum_eq_sum tsum_eq_sum
 
-/- warning: sum_eq_tsum_indicator -> sum_eq_tsum_indicator is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> α) (s : Finset.{u2} β), Eq.{succ u1} α (Finset.sum.{u1, u2} α β _inst_1 s (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s) f x))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> α) (s : Finset.{u2} β), Eq.{succ u1} α (Finset.sum.{u1, u2} α β _inst_1 s (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (Finset.toSet.{u2} β s) f x))
-Case conversion may be inaccurate. Consider using '#align sum_eq_tsum_indicator sum_eq_tsum_indicatorₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » s) -/
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (∑ x in s, f x) = ∑' x, Set.indicator (↑s) f x :=
@@ -871,12 +547,6 @@ theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (tsum_eq_sum this).symm
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
 
-/- warning: tsum_congr -> tsum_congr is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u1} α (f b) (g b)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_4 _inst_5 β (fun (b : β) => f b)) (tsum.{u1, u2} α _inst_4 _inst_5 β (fun (b : β) => g b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : AddCommMonoid.{u2} α] [_inst_5 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u2} α (f b) (g b)) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_4 _inst_5 β (fun (b : β) => f b)) (tsum.{u2, u1} α _inst_4 _inst_5 β (fun (b : β) => g b)))
-Case conversion may be inaccurate. Consider using '#align tsum_congr tsum_congrₓ'. -/
 theorem tsum_congr {α β : Type _} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α}
     (hfg : ∀ b, f b = g b) : (∑' b, f b) = ∑' b, g b :=
   congr_arg tsum (funext hfg)
@@ -888,34 +558,16 @@ theorem tsum_fintype [Fintype β] (f : β → α) : (∑' b, f b) = ∑ b, f b :
 #align tsum_fintype tsum_fintype
 -/
 
-/- warning: tsum_bool -> tsum_bool is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : Bool -> α), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Bool (fun (i : Bool) => f i)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f (Decidable.decide False decidableFalse)) (f (Decidable.decide True decidableTrue)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : Bool -> α), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Bool (fun (i : Bool) => f i)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f (Decidable.decide False instDecidableFalse)) (f (Decidable.decide True instDecidableTrue)))
-Case conversion may be inaccurate. Consider using '#align tsum_bool tsum_boolₓ'. -/
 theorem tsum_bool (f : Bool → α) : (∑' i : Bool, f i) = f False + f True := by
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
 
-/- warning: tsum_eq_single -> tsum_eq_single is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (f b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (f b))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_single tsum_eq_singleₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
     (∑' b, f b) = f b :=
   (hasSum_single b hf).tsum_eq
 #align tsum_eq_single tsum_eq_single
 
-/- warning: tsum_tsum_eq_single -> tsum_tsum_eq_single is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> γ -> α) (b : β) (c : γ), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b' c) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (forall (b' : β) (c' : γ), (Ne.{succ u3} γ c' c) -> (Eq.{succ u1} α (f b' c') (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (c' : γ) => f b' c'))) (f b c))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (f : β -> γ -> α) (b : β) (c : γ), (forall (b' : β), (Ne.{succ u3} β b' b) -> (Eq.{succ u2} α (f b' c) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (forall (b' : β) (c' : γ), (Ne.{succ u1} γ c' c) -> (Eq.{succ u2} α (f b' c') (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (Eq.{succ u2} α (tsum.{u2, u3} α _inst_1 _inst_2 β (fun (b' : β) => tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (c' : γ) => f b' c'))) (f b c))
-Case conversion may be inaccurate. Consider using '#align tsum_tsum_eq_single tsum_tsum_eq_singleₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
@@ -927,57 +579,27 @@ theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀
     
 #align tsum_tsum_eq_single tsum_tsum_eq_single
 
-/- warning: tsum_ite_eq -> tsum_ite_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (b : β) [_inst_4 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_4 b') a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) a
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (b : β) [_inst_4 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_4 b') a (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) a
-Case conversion may be inaccurate. Consider using '#align tsum_ite_eq tsum_ite_eqₓ'. -/
 @[simp]
 theorem tsum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
     (∑' b', if b' = b then a else 0) = a :=
   (hasSum_ite_eq b a).tsum_eq
 #align tsum_ite_eq tsum_ite_eq
 
-/- warning: tsum_pi_single -> tsum_pi_single is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : DecidableEq.{succ u2} β] (b : β) (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_4 a b) (fun (i : β) => AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) b a b')) a
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : DecidableEq.{succ u2} β] (b : β) (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_4 a b) (fun (i : β) => AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) b a b')) a
-Case conversion may be inaccurate. Consider using '#align tsum_pi_single tsum_pi_singleₓ'. -/
 @[simp]
 theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : (∑' b', Pi.single b a b') = a :=
   (hasSum_pi_single b a).tsum_eq
 #align tsum_pi_single tsum_pi_single
 
-/- warning: tsum_dite_right -> tsum_dite_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> (Not P) -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u1} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (fun (h : Not P) => x b h))) (dite.{succ u1} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (fun (h : Not P) => tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => x b h)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> (Not P) -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u2} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (fun (h : Not P) => x b h))) (dite.{succ u2} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (fun (h : Not P) => tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => x b h)))
-Case conversion may be inaccurate. Consider using '#align tsum_dite_right tsum_dite_rightₓ'. -/
 theorem tsum_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
     (∑' b : β, if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_right tsum_dite_right
 
-/- warning: tsum_dite_left -> tsum_dite_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> P -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u1} α P _inst_4 (fun (h : P) => x b h) (fun (h : Not P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) (dite.{succ u1} α P _inst_4 (fun (h : P) => tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => x b h)) (fun (h : Not P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> P -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u2} α P _inst_4 (fun (h : P) => x b h) (fun (h : Not P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) (dite.{succ u2} α P _inst_4 (fun (h : P) => tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => x b h)) (fun (h : Not P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align tsum_dite_left tsum_dite_leftₓ'. -/
 theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
     (∑' b : β, if h : P then x b h else 0) = if h : P then ∑' b : β, x b h else 0 := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_left tsum_dite_left
 
-/- warning: function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum -> Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {α' : Type.{u4}} [_inst_4 : AddCommMonoid.{u4} α'] [_inst_5 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u1} α' α e) -> (Eq.{succ u1} α (e (OfNat.ofNat.{u4} α' 0 (OfNat.mk.{u4} α' 0 (Zero.zero.{u4} α' (AddZeroClass.toHasZero.{u4} α' (AddMonoid.toAddZeroClass.{u4} α' (AddCommMonoid.toAddMonoid.{u4} α' _inst_4))))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u3} α' γ _inst_4 _inst_5 g a)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (e (tsum.{u4, u3} α' _inst_4 _inst_5 γ (fun (c : γ) => g c)))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : T2Space.{u3} α _inst_2] {α' : Type.{u4}} [_inst_4 : AddCommMonoid.{u4} α'] [_inst_5 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u3} α' α e) -> (Eq.{succ u3} α (e (OfNat.ofNat.{u4} α' 0 (Zero.toOfNat0.{u4} α' (AddMonoid.toZero.{u4} α' (AddCommMonoid.toAddMonoid.{u4} α' _inst_4))))) (OfNat.ofNat.{u3} α 0 (Zero.toOfNat0.{u3} α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))))) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u3, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u1} α' γ _inst_4 _inst_5 g a)) -> (Eq.{succ u3} α (tsum.{u3, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (e (tsum.{u4, u1} α' _inst_4 _inst_5 γ (fun (c : γ) => g c)))))
-Case conversion may be inaccurate. Consider using '#align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSumₓ'. -/
 theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
     {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : (∑' b, f b) = e (∑' c, g c) :=
@@ -987,12 +609,6 @@ theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [Ad
     simp [tsum, hf, hg, h0]
 #align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
 
-/- warning: tsum_eq_tsum_of_has_sum_iff_has_sum -> tsum_eq_tsum_of_hasSum_iff_hasSum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α}, (forall {a : α}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (c : γ) => g c)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : T2Space.{u3} α _inst_2] {f : β -> α} {g : γ -> α}, (forall {a : α}, Iff (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) (HasSum.{u3, u1} α γ _inst_1 _inst_2 g a)) -> (Eq.{succ u3} α (tsum.{u3, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u3, u1} α _inst_1 _inst_2 γ (fun (c : γ) => g c)))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSumₓ'. -/
 theorem tsum_eq_tsum_of_hasSum_iff_hasSum {f : β → α} {g : γ → α}
     (h : ∀ {a}, HasSum f a ↔ HasSum g a) : (∑' b, f b) = ∑' c, g c :=
   surjective_id.tsum_eq_tsum_of_hasSum_iff_hasSum rfl @h
@@ -1004,23 +620,11 @@ theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : (∑' c, f (j c)) = ∑'
 #align equiv.tsum_eq Equiv.tsum_eq
 -/
 
-/- warning: equiv.tsum_eq_tsum_of_support -> Equiv.tsum_eq_tsum_of_support is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Eq.{succ u1} α (tsum.{u1, u3} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
-Case conversion may be inaccurate. Consider using '#align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_supportₓ'. -/
 theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x, g (e x) = f x) : (∑' x, f x) = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => e.hasSum_iff_of_support he
 #align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_support
 
-/- warning: tsum_eq_tsum_of_ne_zero_bij -> tsum_eq_tsum_of_ne_zero_bij is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (i : (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) -> β), (forall {{x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}} {{y : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}}, (Eq.{succ u2} β (i x) (i y)) -> (Eq.{succ u3} γ ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) y))) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) (Set.range.{u2, succ u3} β (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) i)) -> (forall (x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)), Eq.{succ u1} α (f (i x)) (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {g : γ -> α} (i : (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) -> β), (forall {{x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}} {{y : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}}, (Eq.{succ u1} β (i x) (i y)) -> (Eq.{succ u3} γ (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x) (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) y))) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f) (Set.range.{u1, succ u3} β (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) i)) -> (forall (x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)), Eq.{succ u2} α (f (i x)) (g (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u2, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bijₓ'. -/
 theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
     (hfg : ∀ x, f (i x) = g x) : (∑' x, f x) = ∑' y, g y :=
@@ -1046,44 +650,20 @@ theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) :
 #align finset.tsum_subtype' Finset.tsum_subtype'
 -/
 
-/- warning: tsum_subtype -> tsum_subtype is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (s : Set.{u2} β) (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) s f x))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (s : Set.{u2} β) (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) s f x))
-Case conversion may be inaccurate. Consider using '#align tsum_subtype tsum_subtypeₓ'. -/
 theorem tsum_subtype (s : Set β) (f : β → α) : (∑' x : s, f x) = ∑' x, s.indicator f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => hasSum_subtype_iff_indicator
 #align tsum_subtype tsum_subtype
 
-/- warning: tsum_subtype_eq_of_support_subset -> tsum_subtype_eq_of_support_subset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) s) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (Function.support.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f) s) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
-Case conversion may be inaccurate. Consider using '#align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subsetₓ'. -/
 theorem tsum_subtype_eq_of_support_subset {f : β → α} {s : Set β} (hs : support f ⊆ s) :
     (∑' x : s, f x) = ∑' x, f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun x => hasSum_subtype_iff_of_support_subset hs
 #align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subset
 
-/- warning: tsum_univ -> tsum_univ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.univ.{u2} β)))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (f : β -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 (Set.Elem.{u1} β (Set.univ.{u1} β)) (fun (x : Set.Elem.{u1} β (Set.univ.{u1} β)) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Set.univ.{u1} β)) x))) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x))
-Case conversion may be inaccurate. Consider using '#align tsum_univ tsum_univₓ'. -/
 @[simp]
 theorem tsum_univ (f : β → α) : (∑' x : (Set.univ : Set β), f x) = ∑' x, f x :=
   tsum_subtype_eq_of_support_subset <| Set.subset_univ _
 #align tsum_univ tsum_univ
 
-/- warning: tsum_singleton -> tsum_singleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (b : β) (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)))))) x))) (f b)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (b : β) (f : β -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 (Set.Elem.{u1} β (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) b)) (fun (x : Set.Elem.{u1} β (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) b)) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) b)) x))) (f b)
-Case conversion may be inaccurate. Consider using '#align tsum_singleton tsum_singletonₓ'. -/
 @[simp]
 theorem tsum_singleton (b : β) (f : β → α) : (∑' x : ({b} : Set β), f x) = f b :=
   by
@@ -1113,34 +693,16 @@ section ContinuousAdd
 
 variable [ContinuousAdd α]
 
-/- warning: tsum_add -> tsum_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))], (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 g) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (g b))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => g b))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {g : β -> α} [_inst_4 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))], (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 g) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (g b))) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => g b))))
-Case conversion may be inaccurate. Consider using '#align tsum_add tsum_addₓ'. -/
 theorem tsum_add (hf : Summable f) (hg : Summable g) :
     (∑' b, f b + g b) = (∑' b, f b) + ∑' b, g b :=
   (hf.HasSum.add hg.HasSum).tsum_eq
 #align tsum_add tsum_add
 
-/- warning: tsum_sum -> tsum_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.Mem.{u3, u3} γ (Finset.{u3} γ) (Finset.hasMem.{u3} γ) i s) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (f i))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => f i b))) (Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f i b))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.mem.{u3, u3} γ (Finset.{u3} γ) (Finset.instMembershipFinset.{u3} γ) i s) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (f i))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => f i b))) (Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f i b))))
-Case conversion may be inaccurate. Consider using '#align tsum_sum tsum_sumₓ'. -/
 theorem tsum_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
     (∑' b, ∑ i in s, f i b) = ∑ i in s, ∑' b, f i b :=
   (hasSum_sum fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_sum tsum_sum
 
-/- warning: tsum_eq_add_tsum_ite' -> tsum_eq_add_tsum_ite' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : β -> α} (b : β), (Summable.{u1, u2} α β _inst_1 _inst_2 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)) f b (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => ite.{succ u1} α (Eq.{succ u2} β x b) (Classical.propDecidable (Eq.{succ u2} β x b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (f x)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : β -> α} (b : β), (Summable.{u2, u1} α β _inst_1 _inst_2 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)) f b (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => ite.{succ u2} α (Eq.{succ u1} β x b) (Classical.propDecidable (Eq.{succ u1} β x b)) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f x)))))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_add_tsum_ite' tsum_eq_add_tsum_ite'ₓ'. -/
 /-- Version of `tsum_eq_add_tsum_ite` for `add_comm_monoid` rather than `add_comm_group`.
 Requires a different convergence assumption involving `function.update`. -/
 theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update b 0)) :
@@ -1159,36 +721,18 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
 
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
 
-/- warning: tsum_sigma' -> tsum_sigma' is a dubious translation:
-lean 3 declaration is
-  forall {β : Type.{u1}} {δ : Type.{u2}} [_inst_5 : AddCommMonoid.{u2} δ] [_inst_6 : TopologicalSpace.{u2} δ] [_inst_7 : T3Space.{u2} δ _inst_6] [_inst_8 : ContinuousAdd.{u2} δ _inst_6 (AddZeroClass.toHasAdd.{u2} δ (AddMonoid.toAddZeroClass.{u2} δ (AddCommMonoid.toAddMonoid.{u2} δ _inst_5)))] {γ : β -> Type.{u3}} {f : (Sigma.{u1, u3} β (fun (b : β) => γ b)) -> δ}, (forall (b : β), Summable.{u2, u3} δ (γ b) _inst_5 _inst_6 (fun (c : γ b) => f (Sigma.mk.{u1, u3} β (fun (b : β) => γ b) b c))) -> (Summable.{u2, max u1 u3} δ (Sigma.{u1, u3} β (fun (b : β) => γ b)) _inst_5 _inst_6 f) -> (Eq.{succ u2} δ (tsum.{u2, max u1 u3} δ _inst_5 _inst_6 (Sigma.{u1, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u1, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u2, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u2, u3} δ _inst_5 _inst_6 (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u3} β (fun (b : β) => γ b) b c)))))
-but is expected to have type
-  forall {β : Type.{u2}} {δ : Type.{u1}} [_inst_5 : AddCommMonoid.{u1} δ] [_inst_6 : TopologicalSpace.{u1} δ] [_inst_7 : T3Space.{u1} δ _inst_6] [_inst_8 : ContinuousAdd.{u1} δ _inst_6 (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_5)))] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> δ}, (forall (b : β), Summable.{u1, u3} δ (γ b) _inst_5 _inst_6 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c))) -> (Summable.{u1, max u2 u3} δ (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_5 _inst_6 f) -> (Eq.{succ u1} δ (tsum.{u1, max u2 u3} δ _inst_5 _inst_6 (Sigma.{u2, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u2, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u1, u2} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u1, u3} δ _inst_5 _inst_6 (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)))))
-Case conversion may be inaccurate. Consider using '#align tsum_sigma' tsum_sigma'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_sigma' {γ : β → Type _} {f : (Σb : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
     (h₂ : Summable f) : (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   (h₂.HasSum.Sigma fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_sigma' tsum_sigma'
 
-/- warning: tsum_prod' -> tsum_prod' is a dubious translation:
-lean 3 declaration is
-  forall {β : Type.{u1}} {γ : Type.{u2}} {δ : Type.{u3}} [_inst_5 : AddCommMonoid.{u3} δ] [_inst_6 : TopologicalSpace.{u3} δ] [_inst_7 : T3Space.{u3} δ _inst_6] [_inst_8 : ContinuousAdd.{u3} δ _inst_6 (AddZeroClass.toHasAdd.{u3} δ (AddMonoid.toAddZeroClass.{u3} δ (AddCommMonoid.toAddMonoid.{u3} δ _inst_5)))] {f : (Prod.{u1, u2} β γ) -> δ}, (Summable.{u3, max u1 u2} δ (Prod.{u1, u2} β γ) _inst_5 _inst_6 f) -> (forall (b : β), Summable.{u3, u2} δ γ _inst_5 _inst_6 (fun (c : γ) => f (Prod.mk.{u1, u2} β γ b c))) -> (Eq.{succ u3} δ (tsum.{u3, max u1 u2} δ _inst_5 _inst_6 (Prod.{u1, u2} β γ) (fun (p : Prod.{u1, u2} β γ) => f p)) (tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f (Prod.mk.{u1, u2} β γ b c)))))
-but is expected to have type
-  forall {β : Type.{u3}} {γ : Type.{u2}} {δ : Type.{u1}} [_inst_5 : AddCommMonoid.{u1} δ] [_inst_6 : TopologicalSpace.{u1} δ] [_inst_7 : T3Space.{u1} δ _inst_6] [_inst_8 : ContinuousAdd.{u1} δ _inst_6 (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_5)))] {f : (Prod.{u3, u2} β γ) -> δ}, (Summable.{u1, max u3 u2} δ (Prod.{u3, u2} β γ) _inst_5 _inst_6 f) -> (forall (b : β), Summable.{u1, u2} δ γ _inst_5 _inst_6 (fun (c : γ) => f (Prod.mk.{u3, u2} β γ b c))) -> (Eq.{succ u1} δ (tsum.{u1, max u3 u2} δ _inst_5 _inst_6 (Prod.{u3, u2} β γ) (fun (p : Prod.{u3, u2} β γ) => f p)) (tsum.{u1, u3} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u1, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f (Prod.mk.{u3, u2} β γ b c)))))
-Case conversion may be inaccurate. Consider using '#align tsum_prod' tsum_prod'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_prod' {f : β × γ → δ} (h : Summable f) (h₁ : ∀ b, Summable fun c => f (b, c)) :
     (∑' p, f p) = ∑' (b) (c), f (b, c) :=
   (h.HasSum.prod_fiberwise fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_prod' tsum_prod'
 
-/- warning: tsum_comm' -> tsum_comm' is a dubious translation:
-lean 3 declaration is
-  forall {β : Type.{u1}} {γ : Type.{u2}} {δ : Type.{u3}} [_inst_5 : AddCommMonoid.{u3} δ] [_inst_6 : TopologicalSpace.{u3} δ] [_inst_7 : T3Space.{u3} δ _inst_6] [_inst_8 : ContinuousAdd.{u3} δ _inst_6 (AddZeroClass.toHasAdd.{u3} δ (AddMonoid.toAddZeroClass.{u3} δ (AddCommMonoid.toAddMonoid.{u3} δ _inst_5)))] {f : β -> γ -> δ}, (Summable.{u3, max u1 u2} δ (Prod.{u1, u2} β γ) _inst_5 _inst_6 (Function.uncurry.{u1, u2, u3} β γ δ f)) -> (forall (b : β), Summable.{u3, u2} δ γ _inst_5 _inst_6 (f b)) -> (forall (c : γ), Summable.{u3, u1} δ β _inst_5 _inst_6 (fun (b : β) => f b c)) -> (Eq.{succ u3} δ (tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => f b c))) (tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f b c))))
-but is expected to have type
-  forall {β : Type.{u1}} {γ : Type.{u2}} {δ : Type.{u3}} [_inst_5 : AddCommMonoid.{u3} δ] [_inst_6 : TopologicalSpace.{u3} δ] [_inst_7 : T3Space.{u3} δ _inst_6] [_inst_8 : ContinuousAdd.{u3} δ _inst_6 (AddZeroClass.toAdd.{u3} δ (AddMonoid.toAddZeroClass.{u3} δ (AddCommMonoid.toAddMonoid.{u3} δ _inst_5)))] {f : β -> γ -> δ}, (Summable.{u3, max u2 u1} δ (Prod.{u1, u2} β γ) _inst_5 _inst_6 (Function.uncurry.{u1, u2, u3} β γ δ f)) -> (forall (b : β), Summable.{u3, u2} δ γ _inst_5 _inst_6 (f b)) -> (forall (c : γ), Summable.{u3, u1} δ β _inst_5 _inst_6 (fun (b : β) => f b c)) -> (Eq.{succ u3} δ (tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => f b c))) (tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f b c))))
-Case conversion may be inaccurate. Consider using '#align tsum_comm' tsum_comm'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_comm' {f : β → γ → δ} (h : Summable (Function.uncurry f)) (h₁ : ∀ b, Summable (f b))
@@ -1206,12 +750,6 @@ section Encodable
 
 variable [Encodable γ]
 
-/- warning: tsum_supr_decode₂ -> tsum_iSup_decode₂ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> β), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (iSup.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => iSup.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> β), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (iSup.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => iSup.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
-Case conversion may be inaccurate. Consider using '#align tsum_supr_decode₂ tsum_iSup_decode₂ₓ'. -/
 /-- 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_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
@@ -1237,12 +775,6 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
     congr ; simp [ext_iff, -Option.some_get]
 #align tsum_supr_decode₂ tsum_iSup_decode₂
 
-/- warning: tsum_Union_decode₂ -> tsum_iUnion_decode₂ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] (m : (Set.{u2} β) -> α), (Eq.{succ u1} α (m (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> (Set.{u2} β)), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.iUnion.{u2, succ u3} β γ (fun (b : γ) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] (m : (Set.{u3} β) -> α), (Eq.{succ u2} α (m (EmptyCollection.emptyCollection.{u3} (Set.{u3} β) (Set.instEmptyCollectionSet.{u3} β))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> (Set.{u3} β)), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.iUnion.{u3, succ u1} β γ (fun (b : γ) => Set.iUnion.{u3, 0} β (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
-Case conversion may be inaccurate. Consider using '#align tsum_Union_decode₂ tsum_iUnion_decode₂ₓ'. -/
 /-- `tsum_supr_decode₂` specialized to the complete lattice of sets. -/
 theorem tsum_iUnion_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
     (∑' i, m (⋃ b ∈ decode₂ γ i, s b)) = ∑' b, m (s b) :=
@@ -1262,12 +794,6 @@ section Countable
 
 variable [Countable γ]
 
-/- warning: rel_supr_tsum -> rel_iSup_tsum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Countable.{succ u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (iSup.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Countable.{succ u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (iSup.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
-Case conversion may be inaccurate. Consider using '#align rel_supr_tsum rel_iSup_tsumₓ'. -/
 /-- If a function is countably sub-additive then it is sub-additive on countable types -/
 theorem rel_iSup_tsum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : γ → β) :
@@ -1275,12 +801,6 @@ theorem rel_iSup_tsum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R :
   rw [← supr_decode₂, ← tsum_iSup_decode₂ _ m0 s]; exact m_supr _
 #align rel_supr_tsum rel_iSup_tsum
 
-/- warning: rel_supr_sum -> rel_iSup_sum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {δ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u3} δ), R (m (iSup.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) δ (fun (d : δ) => iSup.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) (fun (H : Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) => s d)))) (Finset.sum.{u1, u3} α δ _inst_1 t (fun (d : δ) => m (s d)))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {δ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u1} δ), R (m (iSup.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) δ (fun (d : δ) => iSup.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) (fun (H : Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) => s d)))) (Finset.sum.{u2, u1} α δ _inst_1 t (fun (d : δ) => m (s d)))))
-Case conversion may be inaccurate. Consider using '#align rel_supr_sum rel_iSup_sumₓ'. -/
 /-- If a function is countably sub-additive then it is sub-additive on finite sets -/
 theorem rel_iSup_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : δ → β) (t : Finset δ) :
@@ -1288,12 +808,6 @@ theorem rel_iSup_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R :
   exact rel_iSup_tsum m m0 R m_supr _
 #align rel_supr_sum rel_iSup_sum
 
-/- warning: rel_sup_add -> rel_sup_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toSupSet.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
-Case conversion may be inaccurate. Consider using '#align rel_sup_add rel_sup_addₓ'. -/
 /-- If a function is countably sub-additive then it is binary sub-additive -/
 theorem rel_sup_add [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s₁ s₂ : β) :
@@ -1308,43 +822,22 @@ end Countable
 
 variable [ContinuousAdd α]
 
-/- warning: tsum_add_tsum_compl -> tsum_add_tsum_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))) x)))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (fun (x : Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) x)))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
-Case conversion may be inaccurate. Consider using '#align tsum_add_tsum_compl tsum_add_tsum_complₓ'. -/
 theorem tsum_add_tsum_compl {s : Set β} (hs : Summable (f ∘ coe : s → α))
     (hsc : Summable (f ∘ coe : sᶜ → α)) : ((∑' x : s, f x) + ∑' x : sᶜ, f x) = ∑' x, f x :=
   (hs.HasSum.add_compl hsc.HasSum).tsum_eq.symm
 #align tsum_add_tsum_compl tsum_add_tsum_compl
 
-/- warning: tsum_union_disjoint -> tsum_union_disjoint is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β))) s t) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)))))) x))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t))))) x)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) s t) -> (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β t) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t)))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) (fun (x : Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) x))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β t) (fun (x : Set.Elem.{u2} β t) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t) x)))))
-Case conversion may be inaccurate. Consider using '#align tsum_union_disjoint tsum_union_disjointₓ'. -/
 theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f ∘ coe : s → α))
     (ht : Summable (f ∘ coe : t → α)) : (∑' x : s ∪ t, f x) = (∑' x : s, f x) + ∑' x : t, f x :=
   (hs.HasSum.add_disjoint hd ht.HasSum).tsum_eq
 #align tsum_union_disjoint tsum_union_disjoint
 
-/- warning: tsum_finset_bUnion_disjoint -> tsum_finset_bUnion_disjoint is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
     (∑' x : ⋃ i ∈ s, t i, f x) = ∑ i in s, ∑' x : t i, f x :=
   (hasSum_sum_disjoint _ hd fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjoint
 
-/- warning: tsum_even_add_odd -> tsum_even_add_odd is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f k)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f k)))
-Case conversion may be inaccurate. Consider using '#align tsum_even_add_odd tsum_even_add_oddₓ'. -/
 theorem tsum_even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) :
     ((∑' k, f (2 * k)) + ∑' k, f (2 * k + 1)) = ∑' k, f k :=
@@ -1359,94 +852,40 @@ variable [AddCommGroup α] [TopologicalSpace α] [TopologicalAddGroup α]
 
 variable {f g : β → α} {a a₁ a₂ : α}
 
-/- warning: has_sum.neg -> HasSum.neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b)) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f a) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b)) (Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) a))
-Case conversion may be inaccurate. Consider using '#align has_sum.neg HasSum.negₓ'. -/
 -- `by simpa using` speeds up elaboration. Why?
 theorem HasSum.neg (h : HasSum f a) : HasSum (fun b => -f b) (-a) := by
   simpa only using h.map (-AddMonoidHom.id α) continuous_neg
 #align has_sum.neg HasSum.neg
 
-/- warning: summable.neg -> Summable.neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b)))
-Case conversion may be inaccurate. Consider using '#align summable.neg Summable.negₓ'. -/
 theorem Summable.neg (hf : Summable f) : Summable fun b => -f b :=
   hf.HasSum.neg.Summable
 #align summable.neg Summable.neg
 
-/- warning: summable.of_neg -> Summable.of_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b))) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b))) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable.of_neg Summable.of_negₓ'. -/
 theorem Summable.of_neg (hf : Summable fun b => -f b) : Summable f := by
   simpa only [neg_neg] using hf.neg
 #align summable.of_neg Summable.of_neg
 
-/- warning: summable_neg_iff -> summable_neg_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b))) (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable_neg_iff summable_neg_iffₓ'. -/
 theorem summable_neg_iff : (Summable fun b => -f b) ↔ Summable f :=
   ⟨Summable.of_neg, Summable.neg⟩
 #align summable_neg_iff summable_neg_iff
 
-/- warning: has_sum.sub -> HasSum.sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α} {a₁ : α} {a₂ : α}, (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₁) -> (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g a₂) -> (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a₁ a₂))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α} {a₁ : α} {a₂ : α}, (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f a₁) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g a₂) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b)) (HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) a₁ a₂))
-Case conversion may be inaccurate. Consider using '#align has_sum.sub HasSum.subₓ'. -/
 theorem HasSum.sub (hf : HasSum f a₁) (hg : HasSum g a₂) : HasSum (fun b => f b - g b) (a₁ - a₂) :=
   by simp only [sub_eq_add_neg]; exact hf.add hg.neg
 #align has_sum.sub HasSum.sub
 
-/- warning: summable.sub -> Summable.sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b)))
-Case conversion may be inaccurate. Consider using '#align summable.sub Summable.subₓ'. -/
 theorem Summable.sub (hf : Summable f) (hg : Summable g) : Summable fun b => f b - g b :=
   (hf.HasSum.sub hg.HasSum).Summable
 #align summable.sub Summable.sub
 
-/- warning: summable.trans_sub -> Summable.trans_sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b))) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b))) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable.trans_sub Summable.trans_subₓ'. -/
 theorem Summable.trans_sub (hg : Summable g) (hfg : Summable fun b => f b - g b) : Summable f := by
   simpa only [sub_add_cancel] using hfg.add hg
 #align summable.trans_sub Summable.trans_sub
 
-/- warning: summable_iff_of_summable_sub -> summable_iff_of_summable_sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b))) -> (Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b))) -> (Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g))
-Case conversion may be inaccurate. Consider using '#align summable_iff_of_summable_sub summable_iff_of_summable_subₓ'. -/
 theorem summable_iff_of_summable_sub (hfg : Summable fun b => f b - g b) :
     Summable f ↔ Summable g :=
   ⟨fun hf => hf.trans_sub <| by simpa only [neg_sub] using hfg.neg, fun hg => hg.trans_sub hfg⟩
 #align summable_iff_of_summable_sub summable_iff_of_summable_sub
 
-/- warning: has_sum.update -> HasSum.update is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α}, (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₁) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u2} β] (a : α), HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (f b)) a₁))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {a₁ : α}, (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f a₁) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u1} β] (a : α), HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))))) (HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) a (f b)) a₁))
-Case conversion may be inaccurate. Consider using '#align has_sum.update HasSum.updateₓ'. -/
 theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
     HasSum (update f b a) (a - f b + a₁) :=
   by
@@ -1458,23 +897,11 @@ theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
   simp only [h, update_noteq, if_false, Ne.def, zero_add, not_false_iff]
 #align has_sum.update HasSum.update
 
-/- warning: summable.update -> Summable.update is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u2} β] (a : α), Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u1} β] (a : α), Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a))
-Case conversion may be inaccurate. Consider using '#align summable.update Summable.updateₓ'. -/
 theorem Summable.update (hf : Summable f) (b : β) [DecidableEq β] (a : α) :
     Summable (update f b a) :=
   (hf.HasSum.update b a).Summable
 #align summable.update Summable.update
 
-/- warning: has_sum.has_sum_compl_iff -> HasSum.hasSum_compl_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a₁) -> (Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) a₂) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a₁ a₂)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a₁) -> (Iff (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) a₂) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a₁ a₂)))
-Case conversion may be inaccurate. Consider using '#align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iffₓ'. -/
 theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α) a₁) :
     HasSum (f ∘ coe : sᶜ → α) a₂ ↔ HasSum f (a₁ + a₂) :=
   by
@@ -1484,46 +911,22 @@ theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α)
   simpa only [add_sub_cancel'] using h.sub hf
 #align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iff
 
-/- warning: has_sum.has_sum_iff_compl -> HasSum.hasSum_iff_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a₁) -> (Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₂) (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a₂ a₁)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a₁) -> (Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₂) (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a₂ a₁)))
-Case conversion may be inaccurate. Consider using '#align has_sum.has_sum_iff_compl HasSum.hasSum_iff_complₓ'. -/
 theorem HasSum.hasSum_iff_compl {s : Set β} (hf : HasSum (f ∘ coe : s → α) a₁) :
     HasSum f a₂ ↔ HasSum (f ∘ coe : sᶜ → α) (a₂ - a₁) :=
   Iff.symm <| hf.hasSum_compl_iff.trans <| by rw [add_sub_cancel'_right]
 #align has_sum.has_sum_iff_compl HasSum.hasSum_iff_compl
 
-/- warning: summable.summable_compl_iff -> Summable.summable_compl_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Iff (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Iff (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align summable.summable_compl_iff Summable.summable_compl_iffₓ'. -/
 theorem Summable.summable_compl_iff {s : Set β} (hf : Summable (f ∘ coe : s → α)) :
     Summable (f ∘ coe : sᶜ → α) ↔ Summable f :=
   ⟨fun ⟨a, ha⟩ => (hf.HasSum.hasSum_compl_iff.1 ha).Summable, fun ⟨a, ha⟩ =>
     (hf.HasSum.hasSum_iff_compl.1 ha).Summable⟩
 #align summable.summable_compl_iff Summable.summable_compl_iff
 
-/- warning: finset.has_sum_compl_iff -> Finset.hasSum_compl_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) x)) a) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s)) x)) a) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
-Case conversion may be inaccurate. Consider using '#align finset.has_sum_compl_iff Finset.hasSum_compl_iffₓ'. -/
 protected theorem Finset.hasSum_compl_iff (s : Finset β) :
     HasSum (fun x : { x // x ∉ s } => f x) a ↔ HasSum f (a + ∑ i in s, f i) :=
   (s.HasSum f).hasSum_compl_iff.trans <| by rw [add_comm]
 #align finset.has_sum_compl_iff Finset.hasSum_compl_iff
 
-/- warning: finset.has_sum_iff_compl -> Finset.hasSum_iff_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) x)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s)) x)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
-Case conversion may be inaccurate. Consider using '#align finset.has_sum_iff_compl Finset.hasSum_iff_complₓ'. -/
 protected theorem Finset.hasSum_iff_compl (s : Finset β) :
     HasSum f a ↔ HasSum (fun x : { x // x ∉ s } => f x) (a - ∑ i in s, f i) :=
   (s.HasSum f).hasSum_iff_compl
@@ -1536,23 +939,11 @@ protected theorem Finset.summable_compl_iff (s : Finset β) :
 #align finset.summable_compl_iff Finset.summable_compl_iff
 -/
 
-/- warning: set.finite.summable_compl_iff -> Set.Finite.summable_compl_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Set.Finite.{u2} β s) -> (Iff (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Set.Finite.{u2} β s) -> (Iff (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align set.finite.summable_compl_iff Set.Finite.summable_compl_iffₓ'. -/
 theorem Set.Finite.summable_compl_iff {s : Set β} (hs : s.Finite) :
     Summable (f ∘ coe : sᶜ → α) ↔ Summable f :=
   (hs.Summable f).summable_compl_iff
 #align set.finite.summable_compl_iff Set.Finite.summable_compl_iff
 
-/- warning: has_sum_ite_sub_has_sum -> hasSum_ite_sub_hasSum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} [_inst_4 : DecidableEq.{succ u2} β], (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (forall (b : β), HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_4 n b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))) (f n)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (f b)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} [_inst_4 : DecidableEq.{succ u2} β], (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (forall (b : β), HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_4 n b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))) (f n)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (f b)))
-Case conversion may be inaccurate. Consider using '#align has_sum_ite_sub_has_sum hasSum_ite_sub_hasSumₓ'. -/
 theorem hasSum_ite_sub_hasSum [DecidableEq β] (hf : HasSum f a) (b : β) :
     HasSum (fun n => ite (n = b) 0 (f n)) (a - f b) :=
   by
@@ -1565,12 +956,6 @@ section tsum
 
 variable [T2Space α]
 
-/- warning: tsum_neg -> tsum_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2], Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => f b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u2} α _inst_2], Eq.{succ u2} α (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b))) (Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => f b)))
-Case conversion may be inaccurate. Consider using '#align tsum_neg tsum_negₓ'. -/
 theorem tsum_neg : (∑' b, -f b) = -∑' b, f b :=
   by
   by_cases hf : Summable f
@@ -1578,31 +963,16 @@ theorem tsum_neg : (∑' b, -f b) = -∑' b, f b :=
   · simp [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.of_neg hf)]
 #align tsum_neg tsum_neg
 
-/- warning: tsum_sub -> tsum_sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : T2Space.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g) -> (Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => f b)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => g b))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : T2Space.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g) -> (Eq.{succ u2} α (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b))) (HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => f b)) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => g b))))
-Case conversion may be inaccurate. Consider using '#align tsum_sub tsum_subₓ'. -/
 theorem tsum_sub (hf : Summable f) (hg : Summable g) :
     (∑' b, f b - g b) = (∑' b, f b) - ∑' b, g b :=
   (hf.HasSum.sub hg.HasSum).tsum_eq
 #align tsum_sub tsum_sub
 
-/- warning: sum_add_tsum_compl -> sum_add_tsum_compl is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align sum_add_tsum_compl sum_add_tsum_complₓ'. -/
 theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
     ((∑ x in s, f x) + ∑' x : (↑s : Set β)ᶜ, f x) = ∑' x, f x :=
   ((s.HasSum f).add_compl (s.summable_compl_iff.2 hf).HasSum).tsum_eq.symm
 #align sum_add_tsum_compl sum_add_tsum_compl
 
-/- warning: tsum_eq_add_tsum_ite -> tsum_eq_add_tsum_ite is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] [_inst_5 : DecidableEq.{succ u2} β], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (forall (b : β), Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => f n)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f b) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_5 n b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))) (f n)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] [_inst_5 : DecidableEq.{succ u2} β], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (forall (b : β), Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => f n)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f b) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_5 n b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))) (f n)))))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_add_tsum_ite tsum_eq_add_tsum_iteₓ'. -/
 /-- Let `f : β → α` be a sequence with summable series and let `b ∈ β` be an index.
 Lemma `tsum_eq_add_tsum_ite` writes `Σ f n` as the sum of `f b` plus the series of the
 remaining terms. -/
@@ -1625,12 +995,6 @@ We show the formula `(∑ i in range k, f i) + (∑' i, f (i + k)) = (∑' i, f
 
 section Nat
 
-/- warning: has_sum_nat_add_iff -> hasSum_nat_add_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n k)) a) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n k)) a) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i))))
-Case conversion may be inaccurate. Consider using '#align has_sum_nat_add_iff hasSum_nat_add_iffₓ'. -/
 theorem hasSum_nat_add_iff {f : ℕ → α} (k : ℕ) {a : α} :
     HasSum (fun n => f (n + k)) a ↔ HasSum f (a + ∑ i in range k, f i) :=
   by
@@ -1647,46 +1011,22 @@ theorem summable_nat_add_iff {f : ℕ → α} (k : ℕ) : (Summable fun n => f (
 #align summable_nat_add_iff summable_nat_add_iff
 -/
 
-/- warning: has_sum_nat_add_iff' -> hasSum_nat_add_iff' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n k)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)))) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n k)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)))) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a)
-Case conversion may be inaccurate. Consider using '#align has_sum_nat_add_iff' hasSum_nat_add_iff'ₓ'. -/
 theorem hasSum_nat_add_iff' {f : ℕ → α} (k : ℕ) {a : α} :
     HasSum (fun n => f (n + k)) (a - ∑ i in range k, f i) ↔ HasSum f a := by
   simp [hasSum_nat_add_iff]
 #align has_sum_nat_add_iff' hasSum_nat_add_iff'
 
-/- warning: sum_add_tsum_nat_add -> sum_add_tsum_nat_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α} (k : Nat), (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) i k)))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f i)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α} (k : Nat), (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) i k)))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f i)))
-Case conversion may be inaccurate. Consider using '#align sum_add_tsum_nat_add sum_add_tsum_nat_addₓ'. -/
 theorem sum_add_tsum_nat_add [T2Space α] {f : ℕ → α} (k : ℕ) (h : Summable f) :
     ((∑ i in range k, f i) + ∑' i, f (i + k)) = ∑' i, f i := by
   simpa only [add_comm] using
     ((hasSum_nat_add_iff k).1 ((summable_nat_add_iff k).2 h).HasSum).unique h.has_sum
 #align sum_add_tsum_nat_add sum_add_tsum_nat_add
 
-/- warning: tsum_eq_zero_add -> tsum_eq_zero_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α}, (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f b)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) b (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α}, (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f b)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) b (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))))
-Case conversion may be inaccurate. Consider using '#align tsum_eq_zero_add tsum_eq_zero_addₓ'. -/
 theorem tsum_eq_zero_add [T2Space α] {f : ℕ → α} (hf : Summable f) :
     (∑' b, f b) = f 0 + ∑' b, f (b + 1) := by
   simpa only [sum_range_one] using (sum_add_tsum_nat_add 1 hf).symm
 #align tsum_eq_zero_add tsum_eq_zero_add
 
-/- warning: tendsto_sum_nat_add -> tendsto_sum_nat_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] (f : Nat -> α), Filter.Tendsto.{0, u1} Nat α (fun (i : Nat) => tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) k i))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} α _inst_2 (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] (f : Nat -> α), Filter.Tendsto.{0, u1} Nat α (fun (i : Nat) => tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) k i))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} α _inst_2 (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))))
-Case conversion may be inaccurate. Consider using '#align tendsto_sum_nat_add tendsto_sum_nat_addₓ'. -/
 /-- For `f : ℕ → α`, then `∑' k, f (k + i)` tends to zero. This does not require a summability
 assumption on `f`, as otherwise all sums are zero. -/
 theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
@@ -1706,12 +1046,6 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     · infer_instance
 #align tendsto_sum_nat_add tendsto_sum_nat_add
 
-/- warning: has_sum.int_rec -> HasSum.int_rec is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Nat -> α} {g : Nat -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Int.rec.{succ u1} (fun (_x : Int) => α) f g) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Nat -> α} {g : Nat -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Int.rec.{succ u1} (fun (_x : Int) => α) f g) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.int_rec HasSum.int_recₓ'. -/
 /-- If `f₀, f₁, f₂, ...` and `g₀, g₁, g₂, ...` are both convergent then so is the `ℤ`-indexed
 sequence: `..., g₂, g₁, g₀, f₀, f₁, f₂, ...`. -/
 theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSum g b) :
@@ -1731,12 +1065,6 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
   exact HasSum.add_isCompl this (h₁.has_sum_range_iff.mpr hf) (h₂.has_sum_range_iff.mpr hg)
 #align has_sum.int_rec HasSum.int_rec
 
-/- warning: has_sum.nonneg_add_neg -> HasSum.nonneg_add_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Nat.cast.{0} Int instNatCastInt n)) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.nonneg_add_neg HasSum.nonneg_add_negₓ'. -/
 theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + b) :=
   by
@@ -1745,12 +1073,6 @@ theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n
   ext (i | j) <;> rfl
 #align has_sum.nonneg_add_neg HasSum.nonneg_add_neg
 
-/- warning: has_sum.pos_add_zero_add_neg -> HasSum.pos_add_zero_add_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n) (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (f (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))) b))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Nat.cast.{0} Int instNatCastInt n) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) b))
-Case conversion may be inaccurate. Consider using '#align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_negₓ'. -/
 theorem HasSum.pos_add_zero_add_neg {b : α} {f : ℤ → α} (hpos : HasSum (fun n : ℕ => f (n + 1)) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + f 0 + b) :=
   haveI : ∀ g : ℕ → α, HasSum (fun k => g (k + 1)) a → HasSum g (a + g 0) := by intro g hg;
@@ -1765,12 +1087,6 @@ theorem summable_int_of_summable_nat {f : ℤ → α} (hp : Summable fun n : ℕ
 #align summable_int_of_summable_nat summable_int_of_summable_nat
 -/
 
-/- warning: has_sum.sum_nat_of_sum_int -> HasSum.sum_nat_of_sum_int is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] [_inst_6 : ContinuousAdd.{u1} α _inst_5 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))] {a : α} {f : Int -> α}, (HasSum.{u1, 0} α Int _inst_4 _inst_5 f a) -> (HasSum.{u1, 0} α Nat _inst_4 _inst_5 (fun (n : Nat) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) (f ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) (f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) a (f (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] [_inst_6 : ContinuousAdd.{u1} α _inst_5 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))] {a : α} {f : Int -> α}, (HasSum.{u1, 0} α Int _inst_4 _inst_5 f a) -> (HasSum.{u1, 0} α Nat _inst_4 _inst_5 (fun (n : Nat) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) (f (Nat.cast.{0} Int instNatCastInt n)) (f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt n)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))))
-Case conversion may be inaccurate. Consider using '#align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_intₓ'. -/
 theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalSpace α]
     [ContinuousAdd α] {a : α} {f : ℤ → α} (hf : HasSum f a) :
     HasSum (fun n : ℕ => f n + f (-n)) (a + f 0) :=
@@ -1829,12 +1145,6 @@ section UniformGroup
 
 variable [AddCommGroup α] [UniformSpace α]
 
-/- warning: summable_iff_cauchy_seq_finset -> summable_iff_cauchySeq_finset is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : CompleteSpace.{u1} α _inst_2] {f : β -> α}, Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) (CauchySeq.{u1, u2} α (Finset.{u2} β) _inst_2 (Lattice.toSemilatticeSup.{u2} (Finset.{u2} β) (Finset.lattice.{u2} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)))) (fun (s : Finset.{u2} β) => Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (b : β) => f b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : CompleteSpace.{u2} α _inst_2] {f : β -> α}, Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) (CauchySeq.{u2, u1} α (Finset.{u1} β) _inst_2 (Lattice.toSemilatticeSup.{u1} (Finset.{u1} β) (Finset.instLatticeFinset.{u1} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)))) (fun (s : Finset.{u1} β) => Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) s (fun (b : β) => f b)))
-Case conversion may be inaccurate. Consider using '#align summable_iff_cauchy_seq_finset summable_iff_cauchySeq_finsetₓ'. -/
 /-- The **Cauchy criterion** for infinite sums, also known as the **Cauchy convergence test** -/
 theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
     Summable f ↔ CauchySeq fun s : Finset β => ∑ b in s, f b :=
@@ -1843,12 +1153,6 @@ theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
 
 variable [UniformAddGroup α] {f g : β → α} {a a₁ a₂ : α}
 
-/- warning: cauchy_seq_finset_iff_vanishing -> cauchySeq_finset_iff_vanishing is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, Iff (CauchySeq.{u1, u2} α (Finset.{u2} β) _inst_2 (Lattice.toSemilatticeSup.{u2} (Finset.{u2} β) (Finset.lattice.{u2} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)))) (fun (s : Finset.{u2} β) => Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (b : β) => f b))) (forall (e : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) e (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))) -> (Exists.{succ u2} (Finset.{u2} β) (fun (s : Finset.{u2} β) => forall (t : Finset.{u2} β), (Disjoint.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β) (Finset.orderBot.{u2} β) t s) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) t (fun (b : β) => f b)) e))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, Iff (CauchySeq.{u2, u1} α (Finset.{u1} β) _inst_2 (Lattice.toSemilatticeSup.{u1} (Finset.{u1} β) (Finset.instLatticeFinset.{u1} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)))) (fun (s : Finset.{u1} β) => Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) s (fun (b : β) => f b))) (forall (e : Set.{u2} α), (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) e (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))))))) -> (Exists.{succ u1} (Finset.{u1} β) (fun (s : Finset.{u1} β) => forall (t : Finset.{u1} β), (Disjoint.{u1} (Finset.{u1} β) (Finset.partialOrder.{u1} β) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} β) t s) -> (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) (Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) t (fun (b : β) => f b)) e))))
-Case conversion may be inaccurate. Consider using '#align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishingₓ'. -/
 theorem cauchySeq_finset_iff_vanishing :
     (CauchySeq fun s : Finset β => ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e :=
@@ -1874,12 +1178,6 @@ theorem cauchySeq_finset_iff_vanishing :
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
 #align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishing
 
-/- warning: tendsto_tsum_compl_at_top_zero -> tendsto_tsum_compl_atTop_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] (f : β -> α), Filter.Tendsto.{u2, u1} (Finset.{u2} β) α (fun (s : Finset.{u2} β) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (fun (b : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) b))) (Filter.atTop.{u2} (Finset.{u2} β) (PartialOrder.toPreorder.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β))) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] (f : β -> α), Filter.Tendsto.{u2, u1} (Finset.{u2} β) α (fun (s : Finset.{u2} β) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) (fun (b : Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s)) b))) (Filter.atTop.{u2} (Finset.{u2} β) (PartialOrder.toPreorder.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β))) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))))
-Case conversion may be inaccurate. Consider using '#align tendsto_tsum_compl_at_top_zero tendsto_tsum_compl_atTop_zeroₓ'. -/
 /-- 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 tendsto_tsum_compl_atTop_zero (f : β → α) :
@@ -1911,23 +1209,11 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
 
 variable [CompleteSpace α]
 
-/- warning: summable_iff_vanishing -> summable_iff_vanishing is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) (forall (e : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) e (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))) -> (Exists.{succ u2} (Finset.{u2} β) (fun (s : Finset.{u2} β) => forall (t : Finset.{u2} β), (Disjoint.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β) (Finset.orderBot.{u2} β) t s) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) t (fun (b : β) => f b)) e))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) (forall (e : Set.{u2} α), (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) e (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))))))) -> (Exists.{succ u1} (Finset.{u1} β) (fun (s : Finset.{u1} β) => forall (t : Finset.{u1} β), (Disjoint.{u1} (Finset.{u1} β) (Finset.partialOrder.{u1} β) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} β) t s) -> (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) (Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) t (fun (b : β) => f b)) e))))
-Case conversion may be inaccurate. Consider using '#align summable_iff_vanishing summable_iff_vanishingₓ'. -/
 theorem summable_iff_vanishing :
     Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
   rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
 #align summable_iff_vanishing summable_iff_vanishing
 
-/- warning: summable.summable_of_eq_zero_or_self -> Summable.summable_of_eq_zero_or_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (b : β), Or (Eq.{succ u1} α (g b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))))))))) (Eq.{succ u1} α (g b) (f b))) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) g)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (b : β), Or (Eq.{succ u2} α (g b) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1)))))))) (Eq.{succ u2} α (g b) (f b))) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) g)
-Case conversion may be inaccurate. Consider using '#align summable.summable_of_eq_zero_or_self Summable.summable_of_eq_zero_or_selfₓ'. -/
 -- TODO: generalize to monoid with a uniform continuous subtraction operator: `(a + b) - b = a`
 theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b = 0 ∨ g b = f b) :
     Summable g :=
@@ -1948,22 +1234,10 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
       Eq ▸ hs _ <| Finset.disjoint_of_subset_left (Finset.filter_subset _ _) ht⟩
 #align summable.summable_of_eq_zero_or_self Summable.summable_of_eq_zero_or_self
 
-/- warning: summable.indicator -> Summable.indicator is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Set.{u2} β), Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))))) s f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Set.{u1} β), Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Set.indicator.{u1, u2} β α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) s f))
-Case conversion may be inaccurate. Consider using '#align summable.indicator Summable.indicatorₓ'. -/
 protected theorem Summable.indicator (hf : Summable f) (s : Set β) : Summable (s.indicator f) :=
   hf.summable_of_eq_zero_or_self <| Set.indicator_eq_zero_or_self _ _
 #align summable.indicator Summable.indicator
 
-/- warning: summable.comp_injective -> Summable.comp_injective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2] {i : γ -> β}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Function.Injective.{succ u3, succ u2} γ β i) -> (Summable.{u1, u3} α γ (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.comp.{succ u3, succ u2, succ u1} γ β α f i))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u3} α _inst_2] {i : γ -> β}, (Summable.{u3, u2} α β (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Function.Injective.{succ u1, succ u2} γ β i) -> (Summable.{u3, u1} α γ (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Function.comp.{succ u1, succ u2, succ u3} γ β α f i))
-Case conversion may be inaccurate. Consider using '#align summable.comp_injective Summable.comp_injectiveₓ'. -/
 theorem Summable.comp_injective {i : γ → β} (hf : Summable f) (hi : Injective i) :
     Summable (f ∘ i) :=
   by
@@ -1971,22 +1245,10 @@ theorem Summable.comp_injective {i : γ → β} (hf : Summable f) (hi : Injectiv
   exact fun x hx => Set.indicator_of_not_mem hx _
 #align summable.comp_injective Summable.comp_injective
 
-/- warning: summable.subtype -> Summable.subtype is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Set.{u2} β), Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Set.{u1} β), Summable.{u2, u1} α (Set.Elem.{u1} β s) (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Function.comp.{succ u1, succ u1, succ u2} (Set.Elem.{u1} β s) β α f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s))))
-Case conversion may be inaccurate. Consider using '#align summable.subtype Summable.subtypeₓ'. -/
 theorem Summable.subtype (hf : Summable f) (s : Set β) : Summable (f ∘ coe : s → α) :=
   hf.comp_injective Subtype.coe_injective
 #align summable.subtype Summable.subtype
 
-/- warning: summable_subtype_and_compl -> summable_subtype_and_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2] {s : Set.{u2} β}, Iff (And (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))) x)))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f)
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2] {s : Set.{u2} β}, Iff (And (Summable.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) x)))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f)
-Case conversion may be inaccurate. Consider using '#align summable_subtype_and_compl summable_subtype_and_complₓ'. -/
 theorem summable_subtype_and_compl {s : Set β} :
     ((Summable fun x : s => f x) ∧ Summable fun x : sᶜ => f x) ↔ Summable f :=
   ⟨and_imp.2 Summable.add_compl, fun h => ⟨h.Subtype s, h.Subtype (sᶜ)⟩⟩
@@ -2006,12 +1268,6 @@ theorem Summable.sigma {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha :
 #align summable.sigma Summable.sigma
 -/
 
-/- warning: summable.prod_factor -> Summable.prod_factor is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (b : β), Summable.{u1, u3} α γ (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] {f : (Prod.{u3, u2} β γ) -> α}, (Summable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (b : β), Summable.{u1, u2} α γ (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (c : γ) => f (Prod.mk.{u3, u2} β γ b c)))
-Case conversion may be inaccurate. Consider using '#align summable.prod_factor Summable.prod_factorₓ'. -/
 theorem Summable.prod_factor {f : β × γ → α} (h : Summable f) (b : β) :
     Summable fun c => f (b, c) :=
   h.comp_injective fun c₁ c₂ h => (Prod.ext_iff.1 h).2
@@ -2025,36 +1281,18 @@ attribute [local instance] TopologicalAddGroup.t3Space
 -- disable getting a T0-space from a T3-space as this causes loops
 attribute [-instance] T3Space.to_t0Space
 
-/- warning: tsum_sigma -> tsum_sigma is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α}, (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Sigma.{u2, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u2, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T0Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α}, (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u1 u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Sigma.{u1, u2} β (fun (b : β) => γ b)) (fun (p : Sigma.{u1, u2} β (fun (b : β) => γ b)) => f p)) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)))))
-Case conversion may be inaccurate. Consider using '#align tsum_sigma tsum_sigmaₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
 
-/- warning: tsum_prod -> tsum_prod is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Prod.{u2, u3} β γ) (fun (p : Prod.{u2, u3} β γ) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T0Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : (Prod.{u2, u1} β γ) -> α}, (Summable.{u3, max u2 u1} α (Prod.{u2, u1} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u2 u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Prod.{u2, u1} β γ) (fun (p : Prod.{u2, u1} β γ) => f p)) (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u1} β γ b c)))))
-Case conversion may be inaccurate. Consider using '#align tsum_prod tsum_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_prod' h h.prod_factor
 #align tsum_prod tsum_prod
 
-/- warning: tsum_comm -> tsum_comm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> γ -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.uncurry.{u2, u3, u1} β γ α f)) -> (Eq.{succ u1} α (tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f b c))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T0Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : β -> γ -> α}, (Summable.{u3, max u2 u1} α (Prod.{u1, u2} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Function.uncurry.{u1, u2, u3} β γ α f)) -> (Eq.{succ u3} α (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f b c))))
-Case conversion may be inaccurate. Consider using '#align tsum_comm tsum_commₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
@@ -2064,20 +1302,11 @@ theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.un
 
 end LocInstances
 
-/- warning: tsum_subtype_add_tsum_subtype_compl -> tsum_subtype_add_tsum_subtype_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T2Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Set.{u2} β), Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] [_inst_4 : CompleteSpace.{u2} α _inst_2] [_inst_5 : T2Space.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Set.{u1} β), Eq.{succ u2} α (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Set.Elem.{u1} β s) (fun (x : Set.Elem.{u1} β s) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s) x))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Set.Elem.{u1} β (HasCompl.compl.{u1} (Set.{u1} β) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} β) (Set.instBooleanAlgebraSet.{u1} β)) s)) (fun (x : Set.Elem.{u1} β (HasCompl.compl.{u1} (Set.{u1} β) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} β) (Set.instBooleanAlgebraSet.{u1} β)) s)) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (HasCompl.compl.{u1} (Set.{u1} β) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} β) (Set.instBooleanAlgebraSet.{u1} β)) s)) x)))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) β (fun (x : β) => f x)))
-Case conversion may be inaccurate. Consider using '#align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_complₓ'. -/
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
     ((∑' x : s, f x) + ∑' x : sᶜ, f x) = ∑' x, f x :=
   ((hf.Subtype s).HasSum.add_compl (hf.Subtype { x | x ∉ s }).HasSum).unique hf.HasSum
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
 
-/- warning: sum_add_tsum_subtype_compl -> sum_add_tsum_subtype_compl is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align sum_add_tsum_subtype_compl sum_add_tsum_subtype_complₓ'. -/
 theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Finset β) :
     ((∑ x in s, f x) + ∑' x : { x // x ∉ s }, f x) = ∑' x, f x :=
   by
@@ -2092,12 +1321,6 @@ section TopologicalGroup
 
 variable {G : Type _} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup G] {f : α → G}
 
-/- warning: summable.vanishing -> Summable.vanishing is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (forall {{e : Set.{u2} G}}, (Membership.Mem.{u2, u2} (Set.{u2} G) (Filter.{u2} G) (Filter.hasMem.{u2} G) e (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))))))))) -> (Exists.{succ u1} (Finset.{u1} α) (fun (s : Finset.{u1} α) => forall (t : Finset.{u1} α), (Disjoint.{u1} (Finset.{u1} α) (Finset.partialOrder.{u1} α) (Finset.orderBot.{u1} α) t s) -> (Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) (Finset.sum.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) t (fun (k : α) => f k)) e))))
-but is expected to have type
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (forall {{e : Set.{u2} G}}, (Membership.mem.{u2, u2} (Set.{u2} G) (Filter.{u2} G) (instMembershipSetFilter.{u2} G) e (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (NegZeroClass.toZero.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (SubtractionCommMonoid.toSubtractionMonoid.{u2} G (AddCommGroup.toDivisionAddCommMonoid.{u2} G _inst_2))))))))) -> (Exists.{succ u1} (Finset.{u1} α) (fun (s : Finset.{u1} α) => forall (t : Finset.{u1} α), (Disjoint.{u1} (Finset.{u1} α) (Finset.partialOrder.{u1} α) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} α) t s) -> (Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) (Finset.sum.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) t (fun (k : α) => f k)) e))))
-Case conversion may be inaccurate. Consider using '#align summable.vanishing Summable.vanishingₓ'. -/
 theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0 : G)) :
     ∃ s : Finset α, ∀ t, Disjoint t s → (∑ k in t, f k) ∈ e :=
   by
@@ -2107,12 +1330,6 @@ theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0
   exact cauchySeq_finset_iff_vanishing.1 hy.cauchy_seq e he
 #align summable.vanishing Summable.vanishing
 
-/- warning: summable.tendsto_cofinite_zero -> Summable.tendsto_cofinite_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{u1, u2} α G f (Filter.cofinite.{u1} α) (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))))))))
-but is expected to have type
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{u1, u2} α G f (Filter.cofinite.{u1} α) (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (NegZeroClass.toZero.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (SubtractionCommMonoid.toSubtractionMonoid.{u2} G (AddCommGroup.toDivisionAddCommMonoid.{u2} G _inst_2)))))))))
-Case conversion may be inaccurate. Consider using '#align summable.tendsto_cofinite_zero Summable.tendsto_cofinite_zeroₓ'. -/
 /-- Series divergence test: if `f` is a convergent series, then `f x` tends to zero along
 `cofinite`. -/
 theorem Summable.tendsto_cofinite_zero (hf : Summable f) : Tendsto f cofinite (𝓝 0) :=
@@ -2124,12 +1341,6 @@ theorem Summable.tendsto_cofinite_zero (hf : Summable f) : Tendsto f cofinite (
   · simpa using hs {x} (disjoint_singleton_left.2 hx)
 #align summable.tendsto_cofinite_zero Summable.tendsto_cofinite_zero
 
-/- warning: summable.tendsto_at_top_zero -> Summable.tendsto_atTop_zero is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : AddCommGroup.{u1} G] [_inst_3 : TopologicalAddGroup.{u1} G _inst_1 (AddCommGroup.toAddGroup.{u1} G _inst_2)] {f : Nat -> G}, (Summable.{u1, 0} G Nat (AddCommGroup.toAddCommMonoid.{u1} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{0, u1} Nat G f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 0 (OfNat.mk.{u1} G 0 (Zero.zero.{u1} G (AddZeroClass.toHasZero.{u1} G (AddMonoid.toAddZeroClass.{u1} G (SubNegMonoid.toAddMonoid.{u1} G (AddGroup.toSubNegMonoid.{u1} G (AddCommGroup.toAddGroup.{u1} G _inst_2))))))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : AddCommGroup.{u1} G] [_inst_3 : TopologicalAddGroup.{u1} G _inst_1 (AddCommGroup.toAddGroup.{u1} G _inst_2)] {f : Nat -> G}, (Summable.{u1, 0} G Nat (AddCommGroup.toAddCommMonoid.{u1} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{0, u1} Nat G f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 0 (Zero.toOfNat0.{u1} G (NegZeroClass.toZero.{u1} G (SubNegZeroMonoid.toNegZeroClass.{u1} G (SubtractionMonoid.toSubNegZeroMonoid.{u1} G (SubtractionCommMonoid.toSubtractionMonoid.{u1} G (AddCommGroup.toDivisionAddCommMonoid.{u1} G _inst_2)))))))))
-Case conversion may be inaccurate. Consider using '#align summable.tendsto_at_top_zero Summable.tendsto_atTop_zeroₓ'. -/
 theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto f atTop (𝓝 0) := by
   rw [← Nat.cofinite_eq_atTop]; exact hf.tendsto_cofinite_zero
 #align summable.tendsto_at_top_zero Summable.tendsto_atTop_zero
@@ -2141,32 +1352,14 @@ section ConstSmul
 variable [Monoid γ] [TopologicalSpace α] [AddCommMonoid α] [DistribMulAction γ α]
   [ContinuousConstSMul γ α] {f : β → α}
 
-/- warning: has_sum.const_smul -> HasSum.const_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u1} α] [_inst_4 : DistribMulAction.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u3, u1} γ α _inst_2 (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4)))] {f : β -> α} {a : α} (b : γ), (HasSum.{u1, u2} α β _inst_3 _inst_2 f a) -> (HasSum.{u1, u2} α β _inst_3 _inst_2 (fun (i : β) => SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (f i)) (SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b a))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : Monoid.{u1} γ] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u3} α] [_inst_4 : DistribMulAction.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u1, u3} γ α _inst_2 (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))] {f : β -> α} {a : α} (b : γ), (HasSum.{u3, u2} α β _inst_3 _inst_2 f a) -> (HasSum.{u3, u2} α β _inst_3 _inst_2 (fun (i : β) => HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (f i)) (HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b a))
-Case conversion may be inaccurate. Consider using '#align has_sum.const_smul HasSum.const_smulₓ'. -/
 theorem HasSum.const_smul {a : α} (b : γ) (hf : HasSum f a) : HasSum (fun i => b • f i) (b • a) :=
   hf.map (DistribMulAction.toAddMonoidHom α _) <| continuous_const_smul _
 #align has_sum.const_smul HasSum.const_smul
 
-/- warning: summable.const_smul -> Summable.const_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u1} α] [_inst_4 : DistribMulAction.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u3, u1} γ α _inst_2 (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4)))] {f : β -> α} (b : γ), (Summable.{u1, u2} α β _inst_3 _inst_2 f) -> (Summable.{u1, u2} α β _inst_3 _inst_2 (fun (i : β) => SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (f i)))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : Monoid.{u1} γ] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u3} α] [_inst_4 : DistribMulAction.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u1, u3} γ α _inst_2 (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))] {f : β -> α} (b : γ), (Summable.{u3, u2} α β _inst_3 _inst_2 f) -> (Summable.{u3, u2} α β _inst_3 _inst_2 (fun (i : β) => HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (f i)))
-Case conversion may be inaccurate. Consider using '#align summable.const_smul Summable.const_smulₓ'. -/
 theorem Summable.const_smul (b : γ) (hf : Summable f) : Summable fun i => b • f i :=
   (hf.HasSum.const_smul _).Summable
 #align summable.const_smul Summable.const_smul
 
-/- warning: tsum_const_smul -> tsum_const_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u1} α] [_inst_4 : DistribMulAction.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u3, u1} γ α _inst_2 (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4)))] {f : β -> α} [_inst_6 : T2Space.{u1} α _inst_2] (b : γ), (Summable.{u1, u2} α β _inst_3 _inst_2 f) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_3 _inst_2 β (fun (i : β) => SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (f i))) (SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (tsum.{u1, u2} α _inst_3 _inst_2 β (fun (i : β) => f i))))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : Monoid.{u1} γ] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u3} α] [_inst_4 : DistribMulAction.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u1, u3} γ α _inst_2 (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))] {f : β -> α} [_inst_6 : T2Space.{u3} α _inst_2] (b : γ), (Summable.{u3, u2} α β _inst_3 _inst_2 f) -> (Eq.{succ u3} α (tsum.{u3, u2} α _inst_3 _inst_2 β (fun (i : β) => HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (f i))) (HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (tsum.{u3, u2} α _inst_3 _inst_2 β (fun (i : β) => f i))))
-Case conversion may be inaccurate. Consider using '#align tsum_const_smul tsum_const_smulₓ'. -/
 theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : (∑' i, b • f i) = b • ∑' i, f i :=
   (hf.HasSum.const_smul _).tsum_eq
 #align tsum_const_smul tsum_const_smul
@@ -2180,12 +1373,6 @@ section Prod
 
 variable [AddCommMonoid α] [TopologicalSpace α] [AddCommMonoid γ] [TopologicalSpace γ]
 
-/- warning: has_sum.prod_mk -> HasSum.prod_mk is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ] {f : β -> α} {g : β -> γ} {a : α} {b : γ}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u3, u2} γ β _inst_3 _inst_4 g b) -> (HasSum.{max u1 u3, u2} (Prod.{u1, u3} α γ) β (Prod.addCommMonoid.{u1, u3} α γ _inst_1 _inst_3) (Prod.topologicalSpace.{u1, u3} α γ _inst_2 _inst_4) (fun (x : β) => Prod.mk.{u1, u3} α γ (f x) (g x)) (Prod.mk.{u1, u3} α γ a b))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u1} γ] [_inst_4 : TopologicalSpace.{u1} γ] {f : β -> α} {g : β -> γ} {a : α} {b : γ}, (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} γ β _inst_3 _inst_4 g b) -> (HasSum.{max u3 u1, u2} (Prod.{u3, u1} α γ) β (Prod.instAddCommMonoidSum.{u3, u1} α γ _inst_1 _inst_3) (instTopologicalSpaceProd.{u3, u1} α γ _inst_2 _inst_4) (fun (x : β) => Prod.mk.{u3, u1} α γ (f x) (g x)) (Prod.mk.{u3, u1} α γ a b))
-Case conversion may be inaccurate. Consider using '#align has_sum.prod_mk HasSum.prod_mkₓ'. -/
 theorem HasSum.prod_mk {f : β → α} {g : β → γ} {a : α} {b : γ} (hf : HasSum f a) (hg : HasSum g b) :
     HasSum (fun x => (⟨f x, g x⟩ : α × γ)) ⟨a, b⟩ := by
   simp [HasSum, ← prod_mk_sum, Filter.Tendsto.prod_mk_nhds hf hg]
@@ -2197,33 +1384,15 @@ section Pi
 
 variable {ι : Type _} {π : α → Type _} [∀ x, AddCommMonoid (π x)] [∀ x, TopologicalSpace (π x)]
 
-/- warning: pi.has_sum -> Pi.hasSum is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] {f : ι -> (forall (x : α), π x)} {g : forall (x : α), π x}, Iff (HasSum.{max u1 u3, u2} (forall (x : α), π x) ι (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f g) (forall (x : α), HasSum.{u3, u2} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x) (g x))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Type.{u1}} {π : α -> Type.{u2}} [_inst_1 : forall (x : α), AddCommMonoid.{u2} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u2} (π x)] {f : ι -> (forall (x : α), π x)} {g : forall (x : α), π x}, Iff (HasSum.{max u3 u2, u1} (forall (x : α), π x) ι (Pi.addCommMonoid.{u3, u2} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u3, u2} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f g) (forall (x : α), HasSum.{u2, u1} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x) (g x))
-Case conversion may be inaccurate. Consider using '#align pi.has_sum Pi.hasSumₓ'. -/
 theorem Pi.hasSum {f : ι → ∀ x, π x} {g : ∀ x, π x} :
     HasSum f g ↔ ∀ x, HasSum (fun i => f i x) (g x) := by
   simp only [HasSum, tendsto_pi_nhds, sum_apply]
 #align pi.has_sum Pi.hasSum
 
-/- warning: pi.summable -> Pi.summable is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] {f : ι -> (forall (x : α), π x)}, Iff (Summable.{max u1 u3, u2} (forall (x : α), π x) ι (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) (forall (x : α), Summable.{u3, u2} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x))
-but is expected to have type
-  forall {α : Type.{u3}} {ι : Type.{u1}} {π : α -> Type.{u2}} [_inst_1 : forall (x : α), AddCommMonoid.{u2} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u2} (π x)] {f : ι -> (forall (x : α), π x)}, Iff (Summable.{max u3 u2, u1} (forall (x : α), π x) ι (Pi.addCommMonoid.{u3, u2} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u3, u2} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) (forall (x : α), Summable.{u2, u1} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x))
-Case conversion may be inaccurate. Consider using '#align pi.summable Pi.summableₓ'. -/
 theorem Pi.summable {f : ι → ∀ x, π x} : Summable f ↔ ∀ x, Summable fun i => f i x := by
   simp only [Summable, Pi.hasSum, skolem]
 #align pi.summable Pi.summable
 
-/- warning: tsum_apply -> tsum_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {ι : Type.{u2}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] [_inst_3 : forall (x : α), T2Space.{u3} (π x) (_inst_2 x)] {f : ι -> (forall (x : α), π x)} {x : α}, (Summable.{max u1 u3, u2} (forall (x : α), π x) ι (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) -> (Eq.{succ u3} (π x) (tsum.{max u1 u3, u2} (forall (x : α), π x) (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) ι (fun (i : ι) => f i) x) (tsum.{u3, u2} (π x) (_inst_1 x) (_inst_2 x) ι (fun (i : ι) => f i x)))
-but is expected to have type
-  forall {α : Type.{u2}} {ι : Type.{u1}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] [_inst_3 : forall (x : α), T2Space.{u3} (π x) (_inst_2 x)] {f : ι -> (forall (x : α), π x)} {x : α}, (Summable.{max u2 u3, u1} (forall (x : α), π x) ι (Pi.addCommMonoid.{u2, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u2, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) -> (Eq.{succ u3} (π x) (tsum.{max u2 u3, u1} (forall (x : α), π x) (Pi.addCommMonoid.{u2, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u2, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) ι (fun (i : ι) => f i) x) (tsum.{u3, u1} (π x) (_inst_1 x) (_inst_2 x) ι (fun (i : ι) => f i x)))
-Case conversion may be inaccurate. Consider using '#align tsum_apply tsum_applyₓ'. -/
 theorem tsum_apply [∀ x, T2Space (π x)] {f : ι → ∀ x, π x} {x : α} (hf : Summable f) :
     (∑' i, f i) x = ∑' i, f i x :=
   (Pi.hasSum.mp hf.HasSum x).tsum_eq.symm
@@ -2240,87 +1409,39 @@ open MulOpposite
 
 variable [AddCommMonoid α] [TopologicalSpace α] {f : β → α} {a : α}
 
-/- warning: has_sum.op -> HasSum.op is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a)) (MulOpposite.op.{u1} α a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a))
-Case conversion may be inaccurate. Consider using '#align has_sum.op HasSum.opₓ'. -/
 theorem HasSum.op (hf : HasSum f a) : HasSum (fun a => op (f a)) (op a) :=
   (hf.map (@opAddEquiv α _) continuous_op : _)
 #align has_sum.op HasSum.op
 
-/- warning: summable.op -> Summable.op is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (Function.comp.{succ u2, succ u1, succ u1} β α (MulOpposite.{u1} α) (MulOpposite.op.{u1} α) f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (Function.comp.{succ u1, succ u2, succ u2} β α (MulOpposite.{u2} α) (MulOpposite.op.{u2} α) f))
-Case conversion may be inaccurate. Consider using '#align summable.op Summable.opₓ'. -/
 theorem Summable.op (hf : Summable f) : Summable (op ∘ f) :=
   hf.HasSum.op.Summable
 #align summable.op Summable.op
 
-/- warning: has_sum.unop -> HasSum.unop is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)} {a : MulOpposite.{u1} α}, (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f a) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a)) (MulOpposite.unop.{u1} α a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a))
-Case conversion may be inaccurate. Consider using '#align has_sum.unop HasSum.unopₓ'. -/
 theorem HasSum.unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} (hf : HasSum f a) :
     HasSum (fun a => unop (f a)) (unop a) :=
   (hf.map (@opAddEquiv α _).symm continuous_unop : _)
 #align has_sum.unop HasSum.unop
 
-/- warning: summable.unop -> Summable.unop is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)}, (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (Function.comp.{succ u2, succ u1, succ u1} β (MulOpposite.{u1} α) α (MulOpposite.unop.{u1} α) f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (Function.comp.{succ u1, succ u2, succ u2} β (MulOpposite.{u2} α) α (MulOpposite.unop.{u2} α) f))
-Case conversion may be inaccurate. Consider using '#align summable.unop Summable.unopₓ'. -/
 theorem Summable.unop {f : β → αᵐᵒᵖ} (hf : Summable f) : Summable (unop ∘ f) :=
   hf.HasSum.unop.Summable
 #align summable.unop Summable.unop
 
-/- warning: has_sum_op -> hasSum_op is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, Iff (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a)) (MulOpposite.op.{u1} α a)) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, Iff (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a)) (HasSum.{u2, u1} α β _inst_1 _inst_2 f a)
-Case conversion may be inaccurate. Consider using '#align has_sum_op hasSum_opₓ'. -/
 @[simp]
 theorem hasSum_op : HasSum (fun a => op (f a)) (op a) ↔ HasSum f a :=
   ⟨HasSum.unop, HasSum.op⟩
 #align has_sum_op hasSum_op
 
-/- warning: has_sum_unop -> hasSum_unop is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)} {a : MulOpposite.{u1} α}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a)) (MulOpposite.unop.{u1} α a)) (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f a)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a)) (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a)
-Case conversion may be inaccurate. Consider using '#align has_sum_unop hasSum_unopₓ'. -/
 @[simp]
 theorem hasSum_unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} :
     HasSum (fun a => unop (f a)) (unop a) ↔ HasSum f a :=
   ⟨HasSum.op, HasSum.unop⟩
 #align has_sum_unop hasSum_unop
 
-/- warning: summable_op -> summable_op is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, Iff (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a))) (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, Iff (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a))) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable_op summable_opₓ'. -/
 @[simp]
 theorem summable_op : (Summable fun a => op (f a)) ↔ Summable f :=
   ⟨Summable.unop, Summable.op⟩
 #align summable_op summable_op
 
-/- warning: summable_unop -> summable_unop is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)}, Iff (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a))) (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a))) (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f)
-Case conversion may be inaccurate. Consider using '#align summable_unop summable_unopₓ'. -/
 @[simp]
 theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a)) ↔ Summable f :=
   ⟨Summable.op, Summable.unop⟩
@@ -2328,12 +1449,6 @@ theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a))
 
 variable [T2Space α]
 
-/- warning: tsum_op -> tsum_op is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : T2Space.{u1} α _inst_2], Eq.{succ u1} (MulOpposite.{u1} α) (tsum.{u1, u2} (MulOpposite.{u1} α) (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) β (fun (x : β) => MulOpposite.op.{u1} α (f x))) (MulOpposite.op.{u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : T2Space.{u2} α _inst_2], Eq.{succ u2} (MulOpposite.{u2} α) (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => MulOpposite.op.{u2} α (f x))) (MulOpposite.op.{u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)))
-Case conversion may be inaccurate. Consider using '#align tsum_op tsum_opₓ'. -/
 theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x) :=
   by
   by_cases h : Summable f
@@ -2342,12 +1457,6 @@ theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x)
     rw [tsum_eq_zero_of_not_summable h, tsum_eq_zero_of_not_summable ho, MulOpposite.op_zero]
 #align tsum_op tsum_op
 
-/- warning: tsum_unop -> tsum_unop is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> (MulOpposite.{u1} α)}, Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => MulOpposite.unop.{u1} α (f x))) (MulOpposite.unop.{u1} α (tsum.{u1, u2} (MulOpposite.{u1} α) (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> (MulOpposite.{u2} α)}, Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => MulOpposite.unop.{u2} α (f x))) (MulOpposite.unop.{u2} α (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => f x)))
-Case conversion may be inaccurate. Consider using '#align tsum_unop tsum_unopₓ'. -/
 theorem tsum_unop {f : β → αᵐᵒᵖ} : (∑' x, MulOpposite.unop (f x)) = MulOpposite.unop (∑' x, f x) :=
   MulOpposite.op_injective tsum_op.symm
 #align tsum_unop tsum_unop
@@ -2362,53 +1471,23 @@ section ContinuousStar
 variable [AddCommMonoid α] [TopologicalSpace α] [StarAddMonoid α] [ContinuousStar α] {f : β → α}
   {a : α}
 
-/- warning: has_sum.star -> HasSum.star is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b)) (Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b)) (Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) a))
-Case conversion may be inaccurate. Consider using '#align has_sum.star HasSum.starₓ'. -/
 theorem HasSum.star (h : HasSum f a) : HasSum (fun b => star (f b)) (star a) := by
   simpa only using h.map (starAddEquiv : α ≃+ α) continuous_star
 #align has_sum.star HasSum.star
 
-/- warning: summable.star -> Summable.star is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b)))
-Case conversion may be inaccurate. Consider using '#align summable.star Summable.starₓ'. -/
 theorem Summable.star (hf : Summable f) : Summable fun b => star (f b) :=
   hf.HasSum.unit.Summable
 #align summable.star Summable.star
 
-/- warning: summable.of_star -> Summable.ofStar is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b))) -> (Summable.{u2, u1} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable.of_star Summable.ofStarₓ'. -/
 theorem Summable.ofStar (hf : Summable fun b => star (f b)) : Summable f := by
   simpa only [star_star] using hf.star
 #align summable.of_star Summable.ofStar
 
-/- warning: summable_star_iff -> summable_star_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b))) (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b))) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable_star_iff summable_star_iffₓ'. -/
 @[simp]
 theorem summable_star_iff : (Summable fun b => star (f b)) ↔ Summable f :=
   ⟨Summable.ofStar, Summable.star⟩
 #align summable_star_iff summable_star_iff
 
-/- warning: summable_star_iff' -> summable_star_iff' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u1, u2} α β _inst_1 _inst_2 (Star.star.{max u2 u1} (β -> α) (Pi.hasStar.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))) f)) (Summable.{u1, u2} α β _inst_1 _inst_2 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (Star.star.{max u1 u2} (β -> α) (Pi.instStarForAll.{u1, u2} β (fun (ᾰ : β) => α) (fun (i : β) => InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align summable_star_iff' summable_star_iff'ₓ'. -/
 @[simp]
 theorem summable_star_iff' : Summable (star f) ↔ Summable f :=
   summable_star_iff
@@ -2416,12 +1495,6 @@ theorem summable_star_iff' : Summable (star f) ↔ Summable f :=
 
 variable [T2Space α]
 
-/- warning: tsum_star -> tsum_star is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α} [_inst_5 : T2Space.{u1} α _inst_2], Eq.{succ u1} α (Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α} [_inst_5 : T2Space.{u2} α _inst_2], Eq.{succ u2} α (Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b))) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b)))
-Case conversion may be inaccurate. Consider using '#align tsum_star tsum_starₓ'. -/
 theorem tsum_star : star (∑' b, f b) = ∑' b, star (f b) :=
   by
   by_cases hf : Summable f
Diff
@@ -268,9 +268,7 @@ theorem hasSum_fintype [Fintype β] (f : β → α) : HasSum f (∑ b, f b) :=
 
 #print Finset.hasSum /-
 protected theorem Finset.hasSum (s : Finset β) (f : β → α) :
-    HasSum (f ∘ coe : (↑s : Set β) → α) (∑ b in s, f b) :=
-  by
-  rw [← sum_attach]
+    HasSum (f ∘ coe : (↑s : Set β) → α) (∑ b in s, f b) := by rw [← sum_attach];
   exact hasSum_fintype _
 #align finset.has_sum Finset.hasSum
 -/
@@ -1152,9 +1150,7 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
       tsum_congr fun n => by split_ifs <;> simp [Function.update_apply, h]
     _ = (∑' x, ite (x = b) (f x) 0) + ∑' x, f.update b 0 x :=
       (tsum_add ⟨ite (b = b) (f b) 0, hasSum_single b fun b hb => if_neg hb⟩ hf)
-    _ = ite (b = b) (f b) 0 + ∑' x, f.update b 0 x :=
-      by
-      congr
+    _ = ite (b = b) (f b) 0 + ∑' x, f.update b 0 x := by congr ;
       exact tsum_eq_single b fun b' hb' => if_neg hb'
     _ = f b + ∑' x, ite (x = b) 0 (f x) := by
       simp only [Function.update, eq_self_iff_true, if_true, eq_rec_constant, dite_eq_ite]
@@ -1227,24 +1223,18 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
     cases' decode₂ γ n with b
     · refine' (h <| by simp [m0]).elim
     · exact rfl
-  symm
-  refine' tsum_eq_tsum_of_ne_zero_bij (fun a => Option.get (H a.1 a.2)) _ _ _
+  symm; refine' tsum_eq_tsum_of_ne_zero_bij (fun a => Option.get (H a.1 a.2)) _ _ _
   · rintro ⟨m, hm⟩ ⟨n, hn⟩ e
     have := mem_decode₂.1 (Option.get_mem (H n hn))
     rwa [← e, mem_decode₂.1 (Option.get_mem (H m hm))] at this
   · intro b h
     refine' ⟨⟨encode b, _⟩, _⟩
-    · simp only [mem_support, encodek₂] at h⊢
-      convert h
-      simp [Set.ext_iff, encodek₂]
+    · simp only [mem_support, encodek₂] at h⊢; convert h; simp [Set.ext_iff, encodek₂]
     · exact Option.get_of_mem _ (encodek₂ _)
-  · rintro ⟨n, h⟩
-    dsimp only [Subtype.coe_mk]
-    trans
-    swap
+  · rintro ⟨n, h⟩; dsimp only [Subtype.coe_mk]
+    trans; swap
     rw [show decode₂ γ n = _ from Option.get_mem (H n h)]
-    congr
-    simp [ext_iff, -Option.some_get]
+    congr ; simp [ext_iff, -Option.some_get]
 #align tsum_supr_decode₂ tsum_iSup_decode₂
 
 /- warning: tsum_Union_decode₂ -> tsum_iUnion_decode₂ is a dubious translation:
@@ -1281,11 +1271,8 @@ Case conversion may be inaccurate. Consider using '#align rel_supr_tsum rel_iSup
 /-- If a function is countably sub-additive then it is sub-additive on countable types -/
 theorem rel_iSup_tsum [CompleteLattice β] (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)) :=
-  by
-  cases nonempty_encodable γ
-  rw [← supr_decode₂, ← tsum_iSup_decode₂ _ m0 s]
-  exact m_supr _
+    R (m (⨆ b : γ, s b)) (∑' b : γ, m (s b)) := by cases nonempty_encodable γ;
+  rw [← supr_decode₂, ← tsum_iSup_decode₂ _ m0 s]; exact m_supr _
 #align rel_supr_tsum rel_iSup_tsum
 
 /- warning: rel_supr_sum -> rel_iSup_sum is a dubious translation:
@@ -1297,9 +1284,7 @@ Case conversion may be inaccurate. Consider using '#align rel_supr_sum rel_iSup_
 /-- If a function is countably sub-additive then it is sub-additive on finite sets -/
 theorem rel_iSup_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : δ → β) (t : Finset δ) :
-    R (m (⨆ d ∈ t, s d)) (∑ d in t, m (s d)) :=
-  by
-  rw [iSup_subtype', ← Finset.tsum_subtype]
+    R (m (⨆ d ∈ t, s d)) (∑ d in t, m (s d)) := by rw [iSup_subtype', ← Finset.tsum_subtype];
   exact rel_iSup_tsum m m0 R m_supr _
 #align rel_supr_sum rel_iSup_sum
 
@@ -1422,9 +1407,7 @@ but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α} {a₁ : α} {a₂ : α}, (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f a₁) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g a₂) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b)) (HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) a₁ a₂))
 Case conversion may be inaccurate. Consider using '#align has_sum.sub HasSum.subₓ'. -/
 theorem HasSum.sub (hf : HasSum f a₁) (hg : HasSum g a₂) : HasSum (fun b => f b - g b) (a₁ - a₂) :=
-  by
-  simp only [sub_eq_add_neg]
-  exact hf.add hg.neg
+  by simp only [sub_eq_add_neg]; exact hf.add hg.neg
 #align has_sum.sub HasSum.sub
 
 /- warning: summable.sub -> Summable.sub is a dubious translation:
@@ -1574,8 +1557,7 @@ theorem hasSum_ite_sub_hasSum [DecidableEq β] (hf : HasSum f a) (b : β) :
     HasSum (fun n => ite (n = b) 0 (f n)) (a - f b) :=
   by
   convert hf.update b 0 using 1
-  · ext n
-    rw [Function.update_apply]
+  · ext n; rw [Function.update_apply]
   · rw [sub_add_eq_add_sub, zero_add]
 #align has_sum_ite_sub_has_sum hasSum_ite_sub_hasSum
 
@@ -1771,9 +1753,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_negₓ'. -/
 theorem HasSum.pos_add_zero_add_neg {b : α} {f : ℤ → α} (hpos : HasSum (fun n : ℕ => f (n + 1)) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + f 0 + b) :=
-  haveI : ∀ g : ℕ → α, HasSum (fun k => g (k + 1)) a → HasSum g (a + g 0) :=
-    by
-    intro g hg
+  haveI : ∀ g : ℕ → α, HasSum (fun k => g (k + 1)) a → HasSum g (a + g 0) := by intro g hg;
     simpa using (hasSum_nat_add_iff _).mp hg
   (this (fun n => f n) hpos).nonneg_add_neg hneg
 #align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_neg
@@ -2150,10 +2130,8 @@ lean 3 declaration is
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : AddCommGroup.{u1} G] [_inst_3 : TopologicalAddGroup.{u1} G _inst_1 (AddCommGroup.toAddGroup.{u1} G _inst_2)] {f : Nat -> G}, (Summable.{u1, 0} G Nat (AddCommGroup.toAddCommMonoid.{u1} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{0, u1} Nat G f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 0 (Zero.toOfNat0.{u1} G (NegZeroClass.toZero.{u1} G (SubNegZeroMonoid.toNegZeroClass.{u1} G (SubtractionMonoid.toSubNegZeroMonoid.{u1} G (SubtractionCommMonoid.toSubtractionMonoid.{u1} G (AddCommGroup.toDivisionAddCommMonoid.{u1} G _inst_2)))))))))
 Case conversion may be inaccurate. Consider using '#align summable.tendsto_at_top_zero Summable.tendsto_atTop_zeroₓ'. -/
-theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto f atTop (𝓝 0) :=
-  by
-  rw [← Nat.cofinite_eq_atTop]
-  exact hf.tendsto_cofinite_zero
+theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto f atTop (𝓝 0) := by
+  rw [← Nat.cofinite_eq_atTop]; exact hf.tendsto_cofinite_zero
 #align summable.tendsto_at_top_zero Summable.tendsto_atTop_zero
 
 end TopologicalGroup
Diff
@@ -445,10 +445,7 @@ protected theorem Summable.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : Su
 #align summable.map Summable.map
 
 /- warning: summable.map_iff_of_left_inverse -> Summable.map_iff_of_leftInverse is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ] {G : Type.{u4}} {G' : Type.{u5}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] [_inst_6 : AddMonoidHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))] (g : G) (g' : G'), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Continuous.{u3, u1} γ α _inst_4 _inst_2 (coeFn.{succ u5, max (succ u3) (succ u1)} G' (fun (_x : G') => γ -> α) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u1} G' γ (fun (_x : γ) => α) (AddHomClass.toFunLike.{u5, u3, u1} G' γ α (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) _inst_6))) g')) -> (Function.LeftInverse.{succ u1, succ u3} α γ (coeFn.{succ u5, max (succ u3) (succ u1)} G' (fun (_x : G') => γ -> α) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u1} G' γ (fun (_x : γ) => α) (AddHomClass.toFunLike.{u5, u3, u1} G' γ α (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) _inst_6))) g') (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Iff (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u5}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u5} γ] [_inst_4 : TopologicalSpace.{u5} γ] {G : Type.{u4}} {G' : Type.{u3}} [_inst_5 : AddMonoidHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))] [_inst_6 : AddMonoidHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))] (g : G) (g' : G'), (Continuous.{u2, u5} α γ _inst_2 _inst_4 (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Continuous.{u5, u2} γ α _inst_4 _inst_2 (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g')) -> (Function.LeftInverse.{succ u2, succ u5} α γ (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g') (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Iff (Summable.{u5, u1} γ β _inst_3 _inst_4 (Function.comp.{succ u1, succ u2, succ u5} β α γ (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverseₓ'. -/
 protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [TopologicalSpace γ] {G G'}
     [AddMonoidHomClass G α γ] [AddMonoidHomClass G' γ α] (g : G) (g' : G') (hg : Continuous g)
@@ -573,10 +570,7 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 #align has_sum.add_disjoint HasSum.add_disjoint
 
 /- warning: has_sum_sum_disjoint -> hasSum_sum_disjoint is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4531 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
@@ -1352,10 +1346,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 #align tsum_union_disjoint tsum_union_disjoint
 
 /- warning: tsum_finset_bUnion_disjoint -> tsum_finset_bUnion_disjoint is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11896 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
@@ -1617,10 +1608,7 @@ theorem tsum_sub (hf : Summable f) (hg : Summable g) :
 #align tsum_sub tsum_sub
 
 /- warning: sum_add_tsum_compl -> sum_add_tsum_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] {s : Finset.{u2} β}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (x : β) => f x)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))))))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (x : β) => f x)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] {s : Finset.{u2} β}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (x : β) => f x)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) (Finset.toSet.{u2} β s))) (fun (x : Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) (Finset.toSet.{u2} β s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) (Finset.toSet.{u2} β s))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (x : β) => f x)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align sum_add_tsum_compl sum_add_tsum_complₓ'. -/
 theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
     ((∑ x in s, f x) + ∑' x : (↑s : Set β)ᶜ, f x) = ∑' x, f x :=
@@ -2108,10 +2096,7 @@ theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : S
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
 
 /- warning: sum_add_tsum_subtype_compl -> sum_add_tsum_subtype_compl is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T2Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Finset.{u2} β), Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (x : β) => f x)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] [_inst_4 : CompleteSpace.{u2} α _inst_2] [_inst_5 : T2Space.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Finset.{u1} β), Eq.{succ u2} α (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))))) (Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) s (fun (x : β) => f x)) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Subtype.{succ u1} β (fun (x : β) => Not (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) x s))) (fun (x : Subtype.{succ u1} β (fun (x : β) => Not (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) x s))) => f (Subtype.val.{succ u1} β (fun (x : β) => Not (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) x s)) x)))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) β (fun (x : β) => f x)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align sum_add_tsum_subtype_compl sum_add_tsum_subtype_complₓ'. -/
 theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Finset β) :
     ((∑ x in s, f x) + ∑' x : { x // x ∉ s }, f x) = ∑' x, f x :=
Diff
@@ -382,7 +382,7 @@ theorem Summable.prod_symm {f : β × γ → α} (hf : Summable f) : Summable fu
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (HasSum.{u1, u3} α β _inst_1 _inst_2 f a) (HasSum.{u1, u2} α γ _inst_1 _inst_2 g a))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (HasSum.{u1, u3} α β _inst_1 _inst_2 f a) (HasSum.{u1, u2} α γ _inst_1 _inst_2 g a))
 Case conversion may be inaccurate. Consider using '#align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_supportₓ'. -/
 theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : HasSum f a ↔ HasSum g a :=
@@ -412,7 +412,7 @@ theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u1, u3} α γ _inst_1 _inst_2 g))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (Summable.{u1, u3} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α γ _inst_1 _inst_2 g))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (Summable.{u1, u3} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α γ _inst_1 _inst_2 g))
 Case conversion may be inaccurate. Consider using '#align equiv.summable_iff_of_support Equiv.summable_iff_of_supportₓ'. -/
 theorem Equiv.summable_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : Summable f ↔ Summable g :=
@@ -1016,7 +1016,7 @@ theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : (∑' c, f (j c)) = ∑'
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Eq.{succ u1} α (tsum.{u1, u3} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Eq.{succ u1} α (tsum.{u1, u3} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
 Case conversion may be inaccurate. Consider using '#align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_supportₓ'. -/
 theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x, g (e x) = f x) : (∑' x, f x) = ∑' y, g y :=
Diff
@@ -574,16 +574,16 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 
 /- warning: has_sum_sum_disjoint -> hasSum_sum_disjoint is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4531 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4531 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
     HasSum (f ∘ coe : (⋃ i ∈ s, t i) → α) (∑ i in s, a i) :=
   by
   simp_rw [hasSum_subtype_iff_indicator] at *
-  rw [Set.indicator_finset_bunionᵢ _ _ hs]
+  rw [Set.indicator_finset_biUnion _ _ hs]
   exact hasSum_sum hf
 #align has_sum_sum_disjoint hasSum_sum_disjoint
 
@@ -1216,15 +1216,15 @@ section Encodable
 
 variable [Encodable γ]
 
-/- warning: tsum_supr_decode₂ -> tsum_supᵢ_decode₂ is a dubious translation:
+/- warning: tsum_supr_decode₂ -> tsum_iSup_decode₂ is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> β), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (supᵢ.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => supᵢ.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> β), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (iSup.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => iSup.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> β), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (supᵢ.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => supᵢ.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
-Case conversion may be inaccurate. Consider using '#align tsum_supr_decode₂ tsum_supᵢ_decode₂ₓ'. -/
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> β), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (iSup.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => iSup.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+Case conversion may be inaccurate. Consider using '#align tsum_supr_decode₂ tsum_iSup_decode₂ₓ'. -/
 /-- 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_supᵢ_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
+theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
     (∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b)) = ∑' b : γ, m (s b) :=
   by
   have H : ∀ n, m (⨆ b ∈ decode₂ γ n, s b) ≠ 0 → (decode₂ γ n).isSome :=
@@ -1251,19 +1251,19 @@ theorem tsum_supᵢ_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ =
     rw [show decode₂ γ n = _ from Option.get_mem (H n h)]
     congr
     simp [ext_iff, -Option.some_get]
-#align tsum_supr_decode₂ tsum_supᵢ_decode₂
+#align tsum_supr_decode₂ tsum_iSup_decode₂
 
-/- warning: tsum_Union_decode₂ -> tsum_unionᵢ_decode₂ is a dubious translation:
+/- warning: tsum_Union_decode₂ -> tsum_iUnion_decode₂ is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] (m : (Set.{u2} β) -> α), (Eq.{succ u1} α (m (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> (Set.{u2} β)), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.unionᵢ.{u2, succ u3} β γ (fun (b : γ) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] (m : (Set.{u2} β) -> α), (Eq.{succ u1} α (m (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> (Set.{u2} β)), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.iUnion.{u2, succ u3} β γ (fun (b : γ) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] (m : (Set.{u3} β) -> α), (Eq.{succ u2} α (m (EmptyCollection.emptyCollection.{u3} (Set.{u3} β) (Set.instEmptyCollectionSet.{u3} β))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> (Set.{u3} β)), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.unionᵢ.{u3, succ u1} β γ (fun (b : γ) => Set.unionᵢ.{u3, 0} β (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
-Case conversion may be inaccurate. Consider using '#align tsum_Union_decode₂ tsum_unionᵢ_decode₂ₓ'. -/
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] (m : (Set.{u3} β) -> α), (Eq.{succ u2} α (m (EmptyCollection.emptyCollection.{u3} (Set.{u3} β) (Set.instEmptyCollectionSet.{u3} β))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> (Set.{u3} β)), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.iUnion.{u3, succ u1} β γ (fun (b : γ) => Set.iUnion.{u3, 0} β (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+Case conversion may be inaccurate. Consider using '#align tsum_Union_decode₂ tsum_iUnion_decode₂ₓ'. -/
 /-- `tsum_supr_decode₂` specialized to the complete lattice of sets. -/
-theorem tsum_unionᵢ_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
+theorem tsum_iUnion_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
     (∑' i, m (⋃ b ∈ decode₂ γ i, s b)) = ∑' b, m (s b) :=
-  tsum_supᵢ_decode₂ m m0 s
-#align tsum_Union_decode₂ tsum_unionᵢ_decode₂
+  tsum_iSup_decode₂ m m0 s
+#align tsum_Union_decode₂ tsum_iUnion_decode₂
 
 end Encodable
 
@@ -1278,50 +1278,50 @@ section Countable
 
 variable [Countable γ]
 
-/- warning: rel_supr_tsum -> rel_supᵢ_tsum is a dubious translation:
+/- warning: rel_supr_tsum -> rel_iSup_tsum is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Countable.{succ u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (supᵢ.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Countable.{succ u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (iSup.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Countable.{succ u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (supᵢ.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
-Case conversion may be inaccurate. Consider using '#align rel_supr_tsum rel_supᵢ_tsumₓ'. -/
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Countable.{succ u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (iSup.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
+Case conversion may be inaccurate. Consider using '#align rel_supr_tsum rel_iSup_tsumₓ'. -/
 /-- If a function is countably sub-additive then it is sub-additive on countable types -/
-theorem rel_supᵢ_tsum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
+theorem rel_iSup_tsum [CompleteLattice β] (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)) :=
   by
   cases nonempty_encodable γ
-  rw [← supr_decode₂, ← tsum_supᵢ_decode₂ _ m0 s]
+  rw [← supr_decode₂, ← tsum_iSup_decode₂ _ m0 s]
   exact m_supr _
-#align rel_supr_tsum rel_supᵢ_tsum
+#align rel_supr_tsum rel_iSup_tsum
 
-/- warning: rel_supr_sum -> rel_supᵢ_sum is a dubious translation:
+/- warning: rel_supr_sum -> rel_iSup_sum is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {δ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u3} δ), R (m (supᵢ.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) δ (fun (d : δ) => supᵢ.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) (fun (H : Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) => s d)))) (Finset.sum.{u1, u3} α δ _inst_1 t (fun (d : δ) => m (s d)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {δ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u3} δ), R (m (iSup.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) δ (fun (d : δ) => iSup.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) (fun (H : Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) => s d)))) (Finset.sum.{u1, u3} α δ _inst_1 t (fun (d : δ) => m (s d)))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {δ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u1} δ), R (m (supᵢ.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) δ (fun (d : δ) => supᵢ.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) (fun (H : Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) => s d)))) (Finset.sum.{u2, u1} α δ _inst_1 t (fun (d : δ) => m (s d)))))
-Case conversion may be inaccurate. Consider using '#align rel_supr_sum rel_supᵢ_sumₓ'. -/
+  forall {α : Type.{u2}} {β : Type.{u3}} {δ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u1} δ), R (m (iSup.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) δ (fun (d : δ) => iSup.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) (fun (H : Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) => s d)))) (Finset.sum.{u2, u1} α δ _inst_1 t (fun (d : δ) => m (s d)))))
+Case conversion may be inaccurate. Consider using '#align rel_supr_sum rel_iSup_sumₓ'. -/
 /-- If a function is countably sub-additive then it is sub-additive on finite sets -/
-theorem rel_supᵢ_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
+theorem rel_iSup_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : δ → β) (t : Finset δ) :
     R (m (⨆ d ∈ t, s d)) (∑ d in t, m (s d)) :=
   by
-  rw [supᵢ_subtype', ← Finset.tsum_subtype]
-  exact rel_supᵢ_tsum m m0 R m_supr _
-#align rel_supr_sum rel_supᵢ_sum
+  rw [iSup_subtype', ← Finset.tsum_subtype]
+  exact rel_iSup_tsum m m0 R m_supr _
+#align rel_supr_sum rel_iSup_sum
 
 /- warning: rel_sup_add -> rel_sup_add is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toSupSet.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (iSup.{u2, 1} β (ConditionallyCompleteLattice.toSupSet.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
 Case conversion may be inaccurate. Consider using '#align rel_sup_add rel_sup_addₓ'. -/
 /-- If a function is countably sub-additive then it is binary sub-additive -/
 theorem rel_sup_add [CompleteLattice β] (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₂) :=
   by
-  convert rel_supᵢ_tsum m m0 R m_supr fun b => cond b s₁ s₂
-  · simp only [supᵢ_bool_eq, cond]
+  convert rel_iSup_tsum m m0 R m_supr fun b => cond b s₁ s₂
+  · simp only [iSup_bool_eq, cond]
   · rw [tsum_fintype, Fintype.sum_bool, cond, cond]
 #align rel_sup_add rel_sup_add
 
@@ -1353,9 +1353,9 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 
 /- warning: tsum_finset_bUnion_disjoint -> tsum_finset_bUnion_disjoint is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11896 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.iUnion.{u2, succ u3} β ι (fun (i : ι) => Set.iUnion.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11896 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
Diff
@@ -576,7 +576,7 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4533 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4531 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
@@ -1355,7 +1355,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11904 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11896 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
Diff
@@ -898,7 +898,7 @@ theorem tsum_fintype [Fintype β] (f : β → α) : (∑' b, f b) = ∑ b, f b :
 
 /- warning: tsum_bool -> tsum_bool is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : Bool -> α), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Bool (fun (i : Bool) => f i)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f (Decidable.decide False Decidable.false)) (f (Decidable.decide True Decidable.true)))
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : Bool -> α), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Bool (fun (i : Bool) => f i)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f (Decidable.decide False decidableFalse)) (f (Decidable.decide True decidableTrue)))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : Bool -> α), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Bool (fun (i : Bool) => f i)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f (Decidable.decide False instDecidableFalse)) (f (Decidable.decide True instDecidableTrue)))
 Case conversion may be inaccurate. Consider using '#align tsum_bool tsum_boolₓ'. -/
Diff
@@ -576,7 +576,7 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4540 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4533 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
@@ -1355,7 +1355,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11911 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11904 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
Diff
@@ -576,7 +576,7 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4539 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4540 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
@@ -1355,7 +1355,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11910 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11911 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
Diff
@@ -2061,7 +2061,7 @@ attribute [-instance] T3Space.to_t0Space
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α}, (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Sigma.{u2, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u2, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α}, (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u1 u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Sigma.{u1, u2} β (fun (b : β) => γ b)) (fun (p : Sigma.{u1, u2} β (fun (b : β) => γ b)) => f p)) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)))))
+  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T0Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α}, (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u1 u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Sigma.{u1, u2} β (fun (b : β) => γ b)) (fun (p : Sigma.{u1, u2} β (fun (b : β) => γ b)) => f p)) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)))))
 Case conversion may be inaccurate. Consider using '#align tsum_sigma tsum_sigmaₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
@@ -2073,7 +2073,7 @@ theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Prod.{u2, u3} β γ) (fun (p : Prod.{u2, u3} β γ) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : (Prod.{u2, u1} β γ) -> α}, (Summable.{u3, max u2 u1} α (Prod.{u2, u1} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u2 u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Prod.{u2, u1} β γ) (fun (p : Prod.{u2, u1} β γ) => f p)) (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u1} β γ b c)))))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T0Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : (Prod.{u2, u1} β γ) -> α}, (Summable.{u3, max u2 u1} α (Prod.{u2, u1} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u2 u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Prod.{u2, u1} β γ) (fun (p : Prod.{u2, u1} β γ) => f p)) (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u1} β γ b c)))))
 Case conversion may be inaccurate. Consider using '#align tsum_prod tsum_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) :
@@ -2085,7 +2085,7 @@ theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> γ -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.uncurry.{u2, u3, u1} β γ α f)) -> (Eq.{succ u1} α (tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f b c))))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : β -> γ -> α}, (Summable.{u3, max u2 u1} α (Prod.{u1, u2} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Function.uncurry.{u1, u2, u3} β γ α f)) -> (Eq.{succ u3} α (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f b c))))
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T0Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : β -> γ -> α}, (Summable.{u3, max u2 u1} α (Prod.{u1, u2} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Function.uncurry.{u1, u2, u3} β γ α f)) -> (Eq.{succ u3} α (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f b c))))
 Case conversion may be inaccurate. Consider using '#align tsum_comm tsum_commₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl
 
 ! This file was ported from Lean 3 source module topology.algebra.infinite_sum.basic
-! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
+! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1906,8 +1906,6 @@ theorem cauchySeq_finset_iff_vanishing :
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
 #align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishing
 
-attribute [local instance] TopologicalAddGroup.t3Space
-
 /- warning: tendsto_tsum_compl_at_top_zero -> tendsto_tsum_compl_atTop_zero is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] (f : β -> α), Filter.Tendsto.{u2, u1} (Finset.{u2} β) α (fun (s : Finset.{u2} β) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (fun (b : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) b))) (Filter.atTop.{u2} (Finset.{u2} β) (PartialOrder.toPreorder.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β))) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))
@@ -2051,43 +2049,53 @@ theorem Summable.prod_factor {f : β × γ → α} (h : Summable f) (b : β) :
   h.comp_injective fun c₁ c₂ h => (Prod.ext_iff.1 h).2
 #align summable.prod_factor Summable.prod_factor
 
+section LocInstances
+
+-- enable inferring a T3-topological space from a topological group
+attribute [local instance] TopologicalAddGroup.t3Space
+
+-- disable getting a T0-space from a T3-space as this causes loops
+attribute [-instance] T3Space.to_t0Space
+
 /- warning: tsum_sigma -> tsum_sigma is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T1Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α}, (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Sigma.{u2, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u2, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α}, (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Sigma.{u2, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u2, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)))))
 but is expected to have type
   forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α}, (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u1 u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Sigma.{u1, u2} β (fun (b : β) => γ b)) (fun (p : Sigma.{u1, u2} β (fun (b : β) => γ b)) => f p)) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)))))
 Case conversion may be inaccurate. Consider using '#align tsum_sigma tsum_sigmaₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
-theorem tsum_sigma [T1Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
+theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
 
 /- warning: tsum_prod -> tsum_prod is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T1Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Prod.{u2, u3} β γ) (fun (p : Prod.{u2, u3} β γ) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Prod.{u2, u3} β γ) (fun (p : Prod.{u2, u3} β γ) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)))))
 but is expected to have type
   forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : (Prod.{u2, u1} β γ) -> α}, (Summable.{u3, max u2 u1} α (Prod.{u2, u1} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u2 u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Prod.{u2, u1} β γ) (fun (p : Prod.{u2, u1} β γ) => f p)) (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u1} β γ b c)))))
 Case conversion may be inaccurate. Consider using '#align tsum_prod tsum_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
-theorem tsum_prod [T1Space α] {f : β × γ → α} (h : Summable f) :
+theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_prod' h h.prod_factor
 #align tsum_prod tsum_prod
 
 /- warning: tsum_comm -> tsum_comm is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T1Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> γ -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.uncurry.{u2, u3, u1} β γ α f)) -> (Eq.{succ u1} α (tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f b c))))
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T0Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> γ -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.uncurry.{u2, u3, u1} β γ α f)) -> (Eq.{succ u1} α (tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f b c))))
 but is expected to have type
   forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : β -> γ -> α}, (Summable.{u3, max u2 u1} α (Prod.{u1, u2} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Function.uncurry.{u1, u2, u3} β γ α f)) -> (Eq.{succ u3} α (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f b c))))
 Case conversion may be inaccurate. Consider using '#align tsum_comm tsum_commₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
-theorem tsum_comm [T1Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
+theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
     (∑' (c) (b), f b c) = ∑' (b) (c), f b c :=
   tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 #align tsum_comm tsum_comm
 
+end LocInstances
+
 /- warning: tsum_subtype_add_tsum_subtype_compl -> tsum_subtype_add_tsum_subtype_compl is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T2Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Set.{u2} β), Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
Diff
@@ -2273,7 +2273,7 @@ variable [AddCommMonoid α] [TopologicalSpace α] {f : β → α} {a : α}
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a)) (MulOpposite.op.{u1} α a))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a))
 Case conversion may be inaccurate. Consider using '#align has_sum.op HasSum.opₓ'. -/
 theorem HasSum.op (hf : HasSum f a) : HasSum (fun a => op (f a)) (op a) :=
   (hf.map (@opAddEquiv α _) continuous_op : _)
@@ -2283,7 +2283,7 @@ theorem HasSum.op (hf : HasSum f a) : HasSum (fun a => op (f a)) (op a) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (Function.comp.{succ u2, succ u1, succ u1} β α (MulOpposite.{u1} α) (MulOpposite.op.{u1} α) f))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (Function.comp.{succ u1, succ u2, succ u2} β α (MulOpposite.{u2} α) (MulOpposite.op.{u2} α) f))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (Function.comp.{succ u1, succ u2, succ u2} β α (MulOpposite.{u2} α) (MulOpposite.op.{u2} α) f))
 Case conversion may be inaccurate. Consider using '#align summable.op Summable.opₓ'. -/
 theorem Summable.op (hf : Summable f) : Summable (op ∘ f) :=
   hf.HasSum.op.Summable
@@ -2293,7 +2293,7 @@ theorem Summable.op (hf : Summable f) : Summable (op ∘ f) :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)} {a : MulOpposite.{u1} α}, (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f a) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a)) (MulOpposite.unop.{u1} α a))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a))
 Case conversion may be inaccurate. Consider using '#align has_sum.unop HasSum.unopₓ'. -/
 theorem HasSum.unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} (hf : HasSum f a) :
     HasSum (fun a => unop (f a)) (unop a) :=
@@ -2304,7 +2304,7 @@ theorem HasSum.unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} (hf : HasSum f a)
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)}, (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (Function.comp.{succ u2, succ u1, succ u1} β (MulOpposite.{u1} α) α (MulOpposite.unop.{u1} α) f))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (Function.comp.{succ u1, succ u2, succ u2} β (MulOpposite.{u2} α) α (MulOpposite.unop.{u2} α) f))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (Function.comp.{succ u1, succ u2, succ u2} β (MulOpposite.{u2} α) α (MulOpposite.unop.{u2} α) f))
 Case conversion may be inaccurate. Consider using '#align summable.unop Summable.unopₓ'. -/
 theorem Summable.unop {f : β → αᵐᵒᵖ} (hf : Summable f) : Summable (unop ∘ f) :=
   hf.HasSum.unop.Summable
@@ -2314,7 +2314,7 @@ theorem Summable.unop {f : β → αᵐᵒᵖ} (hf : Summable f) : Summable (uno
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, Iff (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a)) (MulOpposite.op.{u1} α a)) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, Iff (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a)) (HasSum.{u2, u1} α β _inst_1 _inst_2 f a)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, Iff (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a)) (HasSum.{u2, u1} α β _inst_1 _inst_2 f a)
 Case conversion may be inaccurate. Consider using '#align has_sum_op hasSum_opₓ'. -/
 @[simp]
 theorem hasSum_op : HasSum (fun a => op (f a)) (op a) ↔ HasSum f a :=
@@ -2325,7 +2325,7 @@ theorem hasSum_op : HasSum (fun a => op (f a)) (op a) ↔ HasSum f a :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)} {a : MulOpposite.{u1} α}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a)) (MulOpposite.unop.{u1} α a)) (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f a)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a)) (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a)) (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a)
 Case conversion may be inaccurate. Consider using '#align has_sum_unop hasSum_unopₓ'. -/
 @[simp]
 theorem hasSum_unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} :
@@ -2337,7 +2337,7 @@ theorem hasSum_unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, Iff (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a))) (Summable.{u1, u2} α β _inst_1 _inst_2 f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, Iff (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a))) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, Iff (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a))) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align summable_op summable_opₓ'. -/
 @[simp]
 theorem summable_op : (Summable fun a => op (f a)) ↔ Summable f :=
@@ -2348,7 +2348,7 @@ theorem summable_op : (Summable fun a => op (f a)) ↔ Summable f :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)}, Iff (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a))) (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a))) (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a))) (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f)
 Case conversion may be inaccurate. Consider using '#align summable_unop summable_unopₓ'. -/
 @[simp]
 theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a)) ↔ Summable f :=
@@ -2361,7 +2361,7 @@ variable [T2Space α]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : T2Space.{u1} α _inst_2], Eq.{succ u1} (MulOpposite.{u1} α) (tsum.{u1, u2} (MulOpposite.{u1} α) (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) β (fun (x : β) => MulOpposite.op.{u1} α (f x))) (MulOpposite.op.{u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : T2Space.{u2} α _inst_2], Eq.{succ u2} (MulOpposite.{u2} α) (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => MulOpposite.op.{u2} α (f x))) (MulOpposite.op.{u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : T2Space.{u2} α _inst_2], Eq.{succ u2} (MulOpposite.{u2} α) (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => MulOpposite.op.{u2} α (f x))) (MulOpposite.op.{u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)))
 Case conversion may be inaccurate. Consider using '#align tsum_op tsum_opₓ'. -/
 theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x) :=
   by
@@ -2375,7 +2375,7 @@ theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x)
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> (MulOpposite.{u1} α)}, Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => MulOpposite.unop.{u1} α (f x))) (MulOpposite.unop.{u1} α (tsum.{u1, u2} (MulOpposite.{u1} α) (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> (MulOpposite.{u2} α)}, Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => MulOpposite.unop.{u2} α (f x))) (MulOpposite.unop.{u2} α (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => f x)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> (MulOpposite.{u2} α)}, Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => MulOpposite.unop.{u2} α (f x))) (MulOpposite.unop.{u2} α (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.addCommMonoid.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => f x)))
 Case conversion may be inaccurate. Consider using '#align tsum_unop tsum_unopₓ'. -/
 theorem tsum_unop {f : β → αᵐᵒᵖ} : (∑' x, MulOpposite.unop (f x)) = MulOpposite.unop (∑' x, f x) :=
   MulOpposite.op_injective tsum_op.symm
Diff
@@ -1765,7 +1765,7 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Nat.cast.{0} Int Int.instNatCastInt n)) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int Int.instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Nat.cast.{0} Int instNatCastInt n)) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
 Case conversion may be inaccurate. Consider using '#align has_sum.nonneg_add_neg HasSum.nonneg_add_negₓ'. -/
 theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + b) :=
@@ -1779,7 +1779,7 @@ theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n) (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (f (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))) b))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Nat.cast.{0} Int Int.instNatCastInt n) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int Int.instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) b))
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Nat.cast.{0} Int instNatCastInt n) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) b))
 Case conversion may be inaccurate. Consider using '#align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_negₓ'. -/
 theorem HasSum.pos_add_zero_add_neg {b : α} {f : ℤ → α} (hpos : HasSum (fun n : ℕ => f (n + 1)) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + f 0 + b) :=
@@ -1801,7 +1801,7 @@ theorem summable_int_of_summable_nat {f : ℤ → α} (hp : Summable fun n : ℕ
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] [_inst_6 : ContinuousAdd.{u1} α _inst_5 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))] {a : α} {f : Int -> α}, (HasSum.{u1, 0} α Int _inst_4 _inst_5 f a) -> (HasSum.{u1, 0} α Nat _inst_4 _inst_5 (fun (n : Nat) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) (f ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) (f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) a (f (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] [_inst_6 : ContinuousAdd.{u1} α _inst_5 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))] {a : α} {f : Int -> α}, (HasSum.{u1, 0} α Int _inst_4 _inst_5 f a) -> (HasSum.{u1, 0} α Nat _inst_4 _inst_5 (fun (n : Nat) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) (f (Nat.cast.{0} Int Int.instNatCastInt n)) (f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int Int.instNatCastInt n)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))))
+  forall {α : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] [_inst_6 : ContinuousAdd.{u1} α _inst_5 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))] {a : α} {f : Int -> α}, (HasSum.{u1, 0} α Int _inst_4 _inst_5 f a) -> (HasSum.{u1, 0} α Nat _inst_4 _inst_5 (fun (n : Nat) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) (f (Nat.cast.{0} Int instNatCastInt n)) (f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int instNatCastInt n)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))))
 Case conversion may be inaccurate. Consider using '#align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_intₓ'. -/
 theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalSpace α]
     [ContinuousAdd α] {a : α} {f : ℤ → α} (hf : HasSum f a) :
Diff
@@ -576,7 +576,7 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4357 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4539 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
@@ -1355,7 +1355,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11442 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11910 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
@@ -1476,7 +1476,7 @@ Case conversion may be inaccurate. Consider using '#align has_sum.update HasSum.
 theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
     HasSum (update f b a) (a - f b + a₁) :=
   by
-  convert (hasSum_ite_eq b _).add hf
+  convert(hasSum_ite_eq b _).add hf
   ext b'
   by_cases h : b' = b
   · rw [h, update_same]
Diff
@@ -382,7 +382,7 @@ theorem Summable.prod_symm {f : β × γ → α} (hf : Summable f) : Summable fu
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (HasSum.{u1, u3} α β _inst_1 _inst_2 f a) (HasSum.{u1, u2} α γ _inst_1 _inst_2 g a))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (HasSum.{u1, u3} α β _inst_1 _inst_2 f a) (HasSum.{u1, u2} α γ _inst_1 _inst_2 g a))
 Case conversion may be inaccurate. Consider using '#align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_supportₓ'. -/
 theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : HasSum f a ↔ HasSum g a :=
@@ -412,7 +412,7 @@ theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u1, u3} α γ _inst_1 _inst_2 g))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (Summable.{u1, u3} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α γ _inst_1 _inst_2 g))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (Summable.{u1, u3} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α γ _inst_1 _inst_2 g))
 Case conversion may be inaccurate. Consider using '#align equiv.summable_iff_of_support Equiv.summable_iff_of_supportₓ'. -/
 theorem Equiv.summable_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : Summable f ↔ Summable g :=
@@ -423,7 +423,7 @@ theorem Equiv.summable_iff_of_support {g : γ → α} (e : support f ≃ support
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ], (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (forall {G : Type.{u4}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (HasSum.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f) (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g a)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} {a : α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (HasSum.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f) (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g a)))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} {a : α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (HasSum.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f) (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g a)))
 Case conversion may be inaccurate. Consider using '#align has_sum.map HasSum.mapₓ'. -/
 protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasSum f a) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : HasSum (g ∘ f) (g a) :=
@@ -437,7 +437,7 @@ protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasS
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ], (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (forall {G : Type.{u4}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f)))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (Summable.{u3, u2} α β _inst_1 _inst_2 f) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (Summable.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f)))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (Summable.{u3, u2} α β _inst_1 _inst_2 f) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (Summable.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f)))
 Case conversion may be inaccurate. Consider using '#align summable.map Summable.mapₓ'. -/
 protected theorem Summable.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : Summable f) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : Summable (g ∘ f) :=
@@ -448,7 +448,7 @@ protected theorem Summable.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : Su
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ] {G : Type.{u4}} {G' : Type.{u5}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] [_inst_6 : AddMonoidHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))] (g : G) (g' : G'), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Continuous.{u3, u1} γ α _inst_4 _inst_2 (coeFn.{succ u5, max (succ u3) (succ u1)} G' (fun (_x : G') => γ -> α) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u1} G' γ (fun (_x : γ) => α) (AddHomClass.toFunLike.{u5, u3, u1} G' γ α (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) _inst_6))) g')) -> (Function.LeftInverse.{succ u1, succ u3} α γ (coeFn.{succ u5, max (succ u3) (succ u1)} G' (fun (_x : G') => γ -> α) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u1} G' γ (fun (_x : γ) => α) (AddHomClass.toFunLike.{u5, u3, u1} G' γ α (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) _inst_6))) g') (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Iff (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u5}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u5} γ] [_inst_4 : TopologicalSpace.{u5} γ] {G : Type.{u4}} {G' : Type.{u3}} [_inst_5 : AddMonoidHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))] [_inst_6 : AddMonoidHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))] (g : G) (g' : G'), (Continuous.{u2, u5} α γ _inst_2 _inst_4 (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Continuous.{u5, u2} γ α _inst_4 _inst_2 (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g')) -> (Function.LeftInverse.{succ u2, succ u5} α γ (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g') (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Iff (Summable.{u5, u1} γ β _inst_3 _inst_4 (Function.comp.{succ u1, succ u2, succ u5} β α γ (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f))
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u5}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u5} γ] [_inst_4 : TopologicalSpace.{u5} γ] {G : Type.{u4}} {G' : Type.{u3}} [_inst_5 : AddMonoidHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))] [_inst_6 : AddMonoidHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))] (g : G) (g' : G'), (Continuous.{u2, u5} α γ _inst_2 _inst_4 (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Continuous.{u5, u2} γ α _inst_4 _inst_2 (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g')) -> (Function.LeftInverse.{succ u2, succ u5} α γ (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g') (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Iff (Summable.{u5, u1} γ β _inst_3 _inst_4 (Function.comp.{succ u1, succ u2, succ u5} β α γ (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f))
 Case conversion may be inaccurate. Consider using '#align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverseₓ'. -/
 protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [TopologicalSpace γ] {G G'}
     [AddMonoidHomClass G α γ] [AddMonoidHomClass G' γ α] (g : G) (g' : G') (hg : Continuous g)
@@ -576,7 +576,7 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4330 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4357 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
@@ -1016,7 +1016,7 @@ theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : (∑' c, f (j c)) = ∑'
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Eq.{succ u1} α (tsum.{u1, u3} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Eq.{succ u1} α (tsum.{u1, u3} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
 Case conversion may be inaccurate. Consider using '#align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_supportₓ'. -/
 theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x, g (e x) = f x) : (∑' x, f x) = ∑' y, g y :=
@@ -1355,7 +1355,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11412 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11442 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl
 
 ! This file was ported from Lean 3 source module topology.algebra.infinite_sum.basic
-! leanprover-community/mathlib commit 32253a1a1071173b33dc7d6a218cf722c6feb514
+! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.Topology.Algebra.Star
 /-!
 # Infinite sum over a topological monoid
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 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.
Diff
@@ -573,7 +573,7 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4211 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4330 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
 Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
@@ -1352,7 +1352,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11293 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11412 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
Diff
@@ -1352,7 +1352,7 @@ theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11296 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11293 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
 Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
Diff
@@ -42,6 +42,7 @@ section HasSum
 
 variable [AddCommMonoid α] [TopologicalSpace α]
 
+#print HasSum /-
 /-- 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
@@ -58,16 +59,21 @@ this assumption later, for the lemmas where it is relevant.
 def HasSum (f : β → α) (a : α) : Prop :=
   Tendsto (fun s : Finset β => ∑ b in s, f b) atTop (𝓝 a)
 #align has_sum HasSum
+-/
 
+#print Summable /-
 /-- `summable f` means that `f` has some (infinite) sum. Use `tsum` to get the value. -/
 def Summable (f : β → α) : Prop :=
   ∃ a, HasSum f a
 #align summable Summable
+-/
 
+#print tsum /-
 /-- `∑' i, f i` is the sum of `f` it exists, or 0 otherwise -/
 irreducible_def tsum {β} (f : β → α) :=
   if h : Summable f then Classical.choose h else 0
 #align tsum tsum
+-/
 
 -- mathport name: «expr∑' , »
 notation3"∑' "-- see Note [operator precedence of big operators]
@@ -75,40 +81,91 @@ notation3"∑' "-- see Note [operator precedence of big operators]
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
+/- warning: summable.has_sum -> Summable.hasSum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 f (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)))
+Case conversion may be inaccurate. Consider using '#align summable.has_sum Summable.hasSumₓ'. -/
 theorem Summable.hasSum (ha : Summable f) : HasSum f (∑' b, f b) := by
   simp [ha, tsum] <;> exact some_spec ha
 #align summable.has_sum Summable.hasSum
 
+/- warning: has_sum.summable -> HasSum.summable is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (Summable.{u2, u1} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align has_sum.summable HasSum.summableₓ'. -/
 theorem HasSum.summable (h : HasSum f a) : Summable f :=
   ⟨a, h⟩
 #align has_sum.summable HasSum.summable
 
+/- warning: has_sum_zero -> hasSum_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α], HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α], HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))
+Case conversion may be inaccurate. Consider using '#align has_sum_zero hasSum_zeroₓ'. -/
 /-- Constant zero function has sum `0` -/
 theorem hasSum_zero : HasSum (fun b => 0 : β → α) 0 := by simp [HasSum, tendsto_const_nhds]
 #align has_sum_zero hasSum_zero
 
+/- warning: has_sum_empty -> hasSum_empty is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : IsEmpty.{succ u2} β], HasSum.{u1, u2} α β _inst_1 _inst_2 f (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : IsEmpty.{succ u2} β], HasSum.{u1, u2} α β _inst_1 _inst_2 f (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))
+Case conversion may be inaccurate. Consider using '#align has_sum_empty hasSum_emptyₓ'. -/
 theorem hasSum_empty [IsEmpty β] : HasSum f 0 := by convert hasSum_zero
 #align has_sum_empty hasSum_empty
 
+/- warning: summable_zero -> summable_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α], Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α], Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))
+Case conversion may be inaccurate. Consider using '#align summable_zero summable_zeroₓ'. -/
 theorem summable_zero : Summable (fun b => 0 : β → α) :=
   hasSum_zero.Summable
 #align summable_zero summable_zero
 
+#print summable_empty /-
 theorem summable_empty [IsEmpty β] : Summable f :=
   hasSum_empty.Summable
 #align summable_empty summable_empty
+-/
 
+/- warning: tsum_eq_zero_of_not_summable -> tsum_eq_zero_of_not_summable is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, (Not (Summable.{u1, u2} α β _inst_1 _inst_2 f)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Not (Summable.{u2, u1} α β _inst_1 _inst_2 f)) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summableₓ'. -/
 theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : (∑' b, f b) = 0 := by simp [tsum, h]
 #align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summable
 
+/- warning: summable_congr -> summable_congr is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u1} α (f b) (g b)) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α β _inst_1 _inst_2 g))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u2} α (f b) (g b)) -> (Iff (Summable.{u2, u1} α β _inst_1 _inst_2 f) (Summable.{u2, u1} α β _inst_1 _inst_2 g))
+Case conversion may be inaccurate. Consider using '#align summable_congr summable_congrₓ'. -/
 theorem summable_congr (hfg : ∀ b, f b = g b) : Summable f ↔ Summable g :=
   iff_of_eq (congr_arg Summable <| funext hfg)
 #align summable_congr summable_congr
 
+/- warning: summable.congr -> Summable.congr is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (forall (b : β), Eq.{succ u1} α (f b) (g b)) -> (Summable.{u1, u2} α β _inst_1 _inst_2 g)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (forall (b : β), Eq.{succ u2} α (f b) (g b)) -> (Summable.{u2, u1} α β _inst_1 _inst_2 g)
+Case conversion may be inaccurate. Consider using '#align summable.congr Summable.congrₓ'. -/
 theorem Summable.congr (hf : Summable f) (hfg : ∀ b, f b = g b) : Summable g :=
   (summable_congr hfg).mp hf
 #align summable.congr Summable.congr
 
+#print HasSum.hasSum_of_sum_eq /-
 theorem HasSum.hasSum_of_sum_eq {g : γ → α}
     (h_eq :
       ∀ u : Finset γ,
@@ -116,7 +173,9 @@ theorem HasSum.hasSum_of_sum_eq {g : γ → α}
     (hf : HasSum g a) : HasSum f a :=
   le_trans (map_atTop_finset_sum_le_of_sum_eq h_eq) hf
 #align has_sum.has_sum_of_sum_eq HasSum.hasSum_of_sum_eq
+-/
 
+#print hasSum_iff_hasSum /-
 theorem hasSum_iff_hasSum {g : γ → α}
     (h₁ :
       ∀ u : Finset γ,
@@ -127,78 +186,147 @@ theorem hasSum_iff_hasSum {g : γ → α}
     HasSum f a ↔ HasSum g a :=
   ⟨HasSum.hasSum_of_sum_eq h₂, HasSum.hasSum_of_sum_eq h₁⟩
 #align has_sum_iff_has_sum hasSum_iff_hasSum
+-/
 
+/- warning: function.injective.has_sum_iff -> Function.Injective.hasSum_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Iff (HasSum.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Iff (HasSum.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
+Case conversion may be inaccurate. Consider using '#align function.injective.has_sum_iff Function.Injective.hasSum_iffₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
   simp only [HasSum, tendsto, hg.map_at_top_finset_sum_eq hf]
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 
+/- warning: function.injective.summable_iff -> Function.Injective.summable_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Iff (Summable.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> β}, (Function.Injective.{succ u3, succ u2} γ β g) -> (forall (x : β), (Not (Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.range.{u2, succ u3} β γ g))) -> (Eq.{succ u1} α (f x) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Iff (Summable.{u1, u3} α γ _inst_1 _inst_2 (Function.comp.{succ u3, succ u2, succ u1} γ β α f g)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
+Case conversion may be inaccurate. Consider using '#align function.injective.summable_iff Function.Injective.summable_iffₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
   exists_congr fun _ => hg.hasSum_iff hf
 #align function.injective.summable_iff Function.Injective.summable_iff
 
+/- warning: has_sum_subtype_iff_of_support_subset -> hasSum_subtype_iff_of_support_subset is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) s) -> (Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (Function.support.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f) s) -> (Iff (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a))
+Case conversion may be inaccurate. Consider using '#align has_sum_subtype_iff_of_support_subset hasSum_subtype_iff_of_support_subsetₓ'. -/
 theorem hasSum_subtype_iff_of_support_subset {s : Set β} (hf : support f ⊆ s) :
     HasSum (f ∘ coe : s → α) a ↔ HasSum f a :=
   Subtype.coe_injective.hasSum_iff <| by simpa using support_subset_iff'.1 hf
 #align has_sum_subtype_iff_of_support_subset hasSum_subtype_iff_of_support_subset
 
+/- warning: has_sum_subtype_iff_indicator -> hasSum_subtype_iff_indicator is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) s f) a)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {s : Set.{u2} β}, Iff (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) s f) a)
+Case conversion may be inaccurate. Consider using '#align has_sum_subtype_iff_indicator hasSum_subtype_iff_indicatorₓ'. -/
 theorem hasSum_subtype_iff_indicator {s : Set β} :
     HasSum (f ∘ coe : s → α) a ↔ HasSum (s.indicator f) a := by
   rw [← Set.indicator_range_comp, Subtype.range_coe,
     hasSum_subtype_iff_of_support_subset Set.support_indicator_subset]
 #align has_sum_subtype_iff_indicator hasSum_subtype_iff_indicator
 
+/- warning: summable_subtype_iff_indicator -> summable_subtype_iff_indicator is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Set.{u2} β}, Iff (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) (Summable.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) s f))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Set.{u2} β}, Iff (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) (Summable.{u1, u2} α β _inst_1 _inst_2 (Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) s f))
+Case conversion may be inaccurate. Consider using '#align summable_subtype_iff_indicator summable_subtype_iff_indicatorₓ'. -/
 theorem summable_subtype_iff_indicator {s : Set β} :
     Summable (f ∘ coe : s → α) ↔ Summable (s.indicator f) :=
   exists_congr fun _ => hasSum_subtype_iff_indicator
 #align summable_subtype_iff_indicator summable_subtype_iff_indicator
 
+/- warning: has_sum_subtype_support -> hasSum_subtype_support is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))))) a) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, Iff (HasSum.{u2, u1} α (Set.Elem.{u1} β (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f)) _inst_1 _inst_2 (Function.comp.{succ u1, succ u1, succ u2} (Set.Elem.{u1} β (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f)) β α f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f)))) a) (HasSum.{u2, u1} α β _inst_1 _inst_2 f a)
+Case conversion may be inaccurate. Consider using '#align has_sum_subtype_support hasSum_subtype_supportₓ'. -/
 @[simp]
 theorem hasSum_subtype_support : HasSum (f ∘ coe : support f → α) a ↔ HasSum f a :=
   hasSum_subtype_iff_of_support_subset <| Set.Subset.refl _
 #align has_sum_subtype_support hasSum_subtype_support
 
+#print hasSum_fintype /-
 theorem hasSum_fintype [Fintype β] (f : β → α) : HasSum f (∑ b, f b) :=
   OrderTop.tendsto_atTop_nhds _
 #align has_sum_fintype hasSum_fintype
+-/
 
+#print Finset.hasSum /-
 protected theorem Finset.hasSum (s : Finset β) (f : β → α) :
     HasSum (f ∘ coe : (↑s : Set β) → α) (∑ b in s, f b) :=
   by
   rw [← sum_attach]
   exact hasSum_fintype _
 #align finset.has_sum Finset.hasSum
+-/
 
+#print Finset.summable /-
 protected theorem Finset.summable (s : Finset β) (f : β → α) :
     Summable (f ∘ coe : (↑s : Set β) → α) :=
   (s.HasSum f).Summable
 #align finset.summable Finset.summable
+-/
 
+#print Set.Finite.summable /-
 protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → α) :
     Summable (f ∘ coe : s → α) := by
   convert hs.to_finset.summable f <;> simp only [hs.coe_to_finset]
 #align set.finite.summable Set.Finite.summable
+-/
 
+/- warning: has_sum_sum_of_ne_finset_zero -> hasSum_sum_of_ne_finset_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
+Case conversion may be inaccurate. Consider using '#align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zeroₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
   (hasSum_subtype_iff_of_support_subset <| support_subset_iff'.2 hf).1 <| s.HasSum f
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 
+/- warning: summable_of_ne_finset_zero -> summable_of_ne_finset_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable_of_ne_finset_zero summable_of_ne_finset_zeroₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 
+/- warning: has_sum_single -> hasSum_single is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (f b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (f b))
+Case conversion may be inaccurate. Consider using '#align has_sum_single hasSum_singleₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
   hasSum_sum_of_ne_finset_zero <| by simpa [hf]
 #align has_sum_single hasSum_single
 
+/- warning: has_sum_ite_eq -> hasSum_ite_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] (b : β) [_inst_3 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_3 b') a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) a
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] (b : β) [_inst_3 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_3 b') a (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))) a
+Case conversion may be inaccurate. Consider using '#align has_sum_ite_eq hasSum_ite_eqₓ'. -/
 theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
     HasSum (fun b' => if b' = b then a else 0) a :=
   by
@@ -208,27 +336,51 @@ theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
   exact if_neg hb'
 #align has_sum_ite_eq hasSum_ite_eq
 
+/- warning: has_sum_pi_single -> hasSum_pi_single is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : DecidableEq.{succ u2} β] (b : β) (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_3 a b) (fun (i : β) => AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) b a) a
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : DecidableEq.{succ u2} β] (b : β) (a : α), HasSum.{u1, u2} α β _inst_1 _inst_2 (Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_3 a b) (fun (i : β) => AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) b a) a
+Case conversion may be inaccurate. Consider using '#align has_sum_pi_single hasSum_pi_singleₓ'. -/
 theorem hasSum_pi_single [DecidableEq β] (b : β) (a : α) : HasSum (Pi.single b a) a :=
   show HasSum (fun x => Pi.single b a x) a by simpa only [Pi.single_apply] using hasSum_ite_eq b a
 #align has_sum_pi_single hasSum_pi_single
 
+#print Equiv.hasSum_iff /-
 theorem Equiv.hasSum_iff (e : γ ≃ β) : HasSum (f ∘ e) a ↔ HasSum f a :=
   e.Injective.hasSum_iff <| by simp
 #align equiv.has_sum_iff Equiv.hasSum_iff
+-/
 
+#print Function.Injective.hasSum_range_iff /-
 theorem Function.Injective.hasSum_range_iff {g : γ → β} (hg : Injective g) :
     HasSum (fun x : Set.range g => f x) a ↔ HasSum (f ∘ g) a :=
   (Equiv.ofInjective g hg).hasSum_iff.symm
 #align function.injective.has_sum_range_iff Function.Injective.hasSum_range_iff
+-/
 
+#print Equiv.summable_iff /-
 theorem Equiv.summable_iff (e : γ ≃ β) : Summable (f ∘ e) ↔ Summable f :=
   exists_congr fun a => e.hasSum_iff
 #align equiv.summable_iff Equiv.summable_iff
+-/
 
+/- warning: summable.prod_symm -> Summable.prod_symm is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) _inst_1 _inst_2 f) -> (Summable.{u1, max u3 u2} α (Prod.{u3, u2} γ β) _inst_1 _inst_2 (fun (p : Prod.{u3, u2} γ β) => f (Prod.swap.{u3, u2} γ β p)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : (Prod.{u3, u2} β γ) -> α}, (Summable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) _inst_1 _inst_2 f) -> (Summable.{u1, max u3 u2} α (Prod.{u2, u3} γ β) _inst_1 _inst_2 (fun (p : Prod.{u2, u3} γ β) => f (Prod.swap.{u2, u3} γ β p)))
+Case conversion may be inaccurate. Consider using '#align summable.prod_symm Summable.prod_symmₓ'. -/
 theorem Summable.prod_symm {f : β × γ → α} (hf : Summable f) : Summable fun p : γ × β => f p.symm :=
   (Equiv.prodComm γ β).summable_iff.2 hf
 #align summable.prod_symm Summable.prod_symm
 
+/- warning: equiv.has_sum_iff_of_support -> Equiv.hasSum_iff_of_support is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (HasSum.{u1, u3} α β _inst_1 _inst_2 f a) (HasSum.{u1, u2} α γ _inst_1 _inst_2 g a))
+Case conversion may be inaccurate. Consider using '#align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_supportₓ'. -/
 theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : HasSum f a ↔ HasSum g a :=
   by
@@ -236,6 +388,12 @@ theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g
   rw [← hasSum_subtype_support, ← this, e.has_sum_iff, hasSum_subtype_support]
 #align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_support
 
+/- warning: has_sum_iff_has_sum_of_ne_zero_bij -> hasSum_iff_hasSum_of_ne_zero_bij is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {g : γ -> α} (i : (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) -> β), (forall {{x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}} {{y : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}}, (Eq.{succ u2} β (i x) (i y)) -> (Eq.{succ u3} γ ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) y))) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) (Set.range.{u2, succ u3} β (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) i)) -> (forall (x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)), Eq.{succ u1} α (f (i x)) (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x))) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α} {g : γ -> α} (i : (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) -> β), (forall {{x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}} {{y : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}}, (Eq.{succ u1} β (i x) (i y)) -> (Eq.{succ u3} γ (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x) (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) y))) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f) (Set.range.{u1, succ u3} β (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) i)) -> (forall (x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)), Eq.{succ u2} α (f (i x)) (g (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x))) -> (Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) (HasSum.{u2, u3} α γ _inst_1 _inst_2 g a))
+Case conversion may be inaccurate. Consider using '#align has_sum_iff_has_sum_of_ne_zero_bij hasSum_iff_hasSum_of_ne_zero_bijₓ'. -/
 theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
     (hfg : ∀ x, f (i x) = g x) : HasSum f a ↔ HasSum g a :=
@@ -247,11 +405,23 @@ theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
       hfg
 #align has_sum_iff_has_sum_of_ne_zero_bij hasSum_iff_hasSum_of_ne_zero_bij
 
+/- warning: equiv.summable_iff_of_support -> Equiv.summable_iff_of_support is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u1, u3} α γ _inst_1 _inst_2 g))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Iff (Summable.{u1, u3} α β _inst_1 _inst_2 f) (Summable.{u1, u2} α γ _inst_1 _inst_2 g))
+Case conversion may be inaccurate. Consider using '#align equiv.summable_iff_of_support Equiv.summable_iff_of_supportₓ'. -/
 theorem Equiv.summable_iff_of_support {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x : support f, g (e x) = f x) : Summable f ↔ Summable g :=
   exists_congr fun _ => e.hasSum_iff_of_support he
 #align equiv.summable_iff_of_support Equiv.summable_iff_of_support
 
+/- warning: has_sum.map -> HasSum.map is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ], (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (forall {G : Type.{u4}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (HasSum.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f) (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g a)))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} {a : α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (HasSum.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f) (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g a)))
+Case conversion may be inaccurate. Consider using '#align has_sum.map HasSum.mapₓ'. -/
 protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasSum f a) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : HasSum (g ∘ f) (g a) :=
   have : (g ∘ fun s : Finset β => ∑ b in s, f b) = fun s : Finset β => ∑ b in s, g (f b) :=
@@ -260,11 +430,23 @@ protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasS
     this ▸ (hg.Tendsto a).comp hf
 #align has_sum.map HasSum.map
 
+/- warning: summable.map -> Summable.map is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ], (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (forall {G : Type.{u4}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f)))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ], (Summable.{u3, u2} α β _inst_1 _inst_2 f) -> (forall {G : Type.{u1}} [_inst_5 : AddMonoidHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))] (g : G), (Continuous.{u3, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g)) -> (Summable.{u4, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u3, succ u4} β α γ (FunLike.coe.{succ u1, succ u3, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u1, u3, u4} G α γ (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u1, u3, u4} G α γ (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)) _inst_5)) g) f)))
+Case conversion may be inaccurate. Consider using '#align summable.map Summable.mapₓ'. -/
 protected theorem Summable.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : Summable f) {G}
     [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : Summable (g ∘ f) :=
   (hf.HasSum.map g hg).Summable
 #align summable.map Summable.map
 
+/- warning: summable.map_iff_of_left_inverse -> Summable.map_iff_of_leftInverse is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ] {G : Type.{u4}} {G' : Type.{u5}} [_inst_5 : AddMonoidHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))] [_inst_6 : AddMonoidHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))] (g : G) (g' : G'), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Continuous.{u3, u1} γ α _inst_4 _inst_2 (coeFn.{succ u5, max (succ u3) (succ u1)} G' (fun (_x : G') => γ -> α) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u1} G' γ (fun (_x : γ) => α) (AddHomClass.toFunLike.{u5, u3, u1} G' γ α (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) _inst_6))) g')) -> (Function.LeftInverse.{succ u1, succ u3} α γ (coeFn.{succ u5, max (succ u3) (succ u1)} G' (fun (_x : G') => γ -> α) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u1} G' γ (fun (_x : γ) => α) (AddHomClass.toFunLike.{u5, u3, u1} G' γ α (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u5, u3, u1} G' γ α (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) _inst_6))) g') (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g)) -> (Iff (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (AddHomClass.toFunLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u1, u3} G α γ (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) _inst_5))) g) f)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u5}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u5} γ] [_inst_4 : TopologicalSpace.{u5} γ] {G : Type.{u4}} {G' : Type.{u3}} [_inst_5 : AddMonoidHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))] [_inst_6 : AddMonoidHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))] (g : G) (g' : G'), (Continuous.{u2, u5} α γ _inst_2 _inst_4 (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Continuous.{u5, u2} γ α _inst_4 _inst_2 (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g')) -> (Function.LeftInverse.{succ u2, succ u5} α γ (FunLike.coe.{succ u3, succ u5, succ u2} G' γ (fun (_x : γ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : γ) => α) _x) (AddHomClass.toFunLike.{u3, u5, u2} G' γ α (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddMonoidHomClass.toAddHomClass.{u3, u5, u2} G' γ α (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) _inst_6)) g') (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g)) -> (Iff (Summable.{u5, u1} γ β _inst_3 _inst_4 (Function.comp.{succ u1, succ u2, succ u5} β α γ (FunLike.coe.{succ u4, succ u2, succ u5} G α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => γ) _x) (AddHomClass.toFunLike.{u4, u2, u5} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u5} γ (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{u4, u2, u5} G α γ (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_3)) _inst_5)) g) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f))
+Case conversion may be inaccurate. Consider using '#align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverseₓ'. -/
 protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [TopologicalSpace γ] {G G'}
     [AddMonoidHomClass G α γ] [AddMonoidHomClass G' γ α] (g : G) (g' : G') (hg : Continuous g)
     (hg' : Continuous g') (hinv : Function.LeftInverse g' g) : Summable (g ∘ f) ↔ Summable f :=
@@ -273,6 +455,12 @@ protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [Topologica
     rwa [← Function.comp.assoc, hinv.id] at this, fun h => h.map _ hg⟩
 #align summable.map_iff_of_left_inverse Summable.map_iff_of_leftInverse
 
+/- warning: summable.map_iff_of_equiv -> Summable.map_iff_of_equiv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ] {G : Type.{u4}} [_inst_5 : AddEquivClass.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)))] (g : G), (Continuous.{u1, u3} α γ _inst_2 _inst_4 (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (EmbeddingLike.toFunLike.{succ u4, succ u1, succ u3} G α γ (EquivLike.toEmbeddingLike.{succ u4, succ u1, succ u3} G α γ (AddEquivClass.toEquivLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) _inst_5)))) g)) -> (Continuous.{u3, u1} γ α _inst_4 _inst_2 (AddEquivClass.inv.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) _inst_5 g)) -> (Iff (Summable.{u3, u2} γ β _inst_3 _inst_4 (Function.comp.{succ u2, succ u1, succ u3} β α γ (coeFn.{succ u4, max (succ u1) (succ u3)} G (fun (_x : G) => α -> γ) (FunLike.hasCoeToFun.{succ u4, succ u1, succ u3} G α (fun (_x : α) => γ) (EmbeddingLike.toFunLike.{succ u4, succ u1, succ u3} G α γ (EquivLike.toEmbeddingLike.{succ u4, succ u1, succ u3} G α γ (AddEquivClass.toEquivLike.{u4, u1, u3} G α γ (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) (AddZeroClass.toHasAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) _inst_5)))) g) f)) (Summable.{u1, u2} α β _inst_1 _inst_2 f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u4}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : AddCommMonoid.{u4} γ] [_inst_4 : TopologicalSpace.{u4} γ] {G : Type.{u3}} [_inst_5 : AddEquivClass.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3)))] (g : G), (Continuous.{u2, u4} α γ _inst_2 _inst_4 (FunLike.coe.{succ u3, succ u2, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => γ) _x) (EmbeddingLike.toFunLike.{succ u3, succ u2, succ u4} G α γ (EquivLike.toEmbeddingLike.{succ u3, succ u2, succ u4} G α γ (AddEquivClass.toEquivLike.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) _inst_5))) g)) -> (Continuous.{u4, u2} γ α _inst_4 _inst_2 (EquivLike.inv.{succ u3, succ u2, succ u4} G α γ (AddEquivClass.toEquivLike.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) _inst_5) g)) -> (Iff (Summable.{u4, u1} γ β _inst_3 _inst_4 (Function.comp.{succ u1, succ u2, succ u4} β α γ (FunLike.coe.{succ u3, succ u2, succ u4} G α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => γ) _x) (EmbeddingLike.toFunLike.{succ u3, succ u2, succ u4} G α γ (EquivLike.toEmbeddingLike.{succ u3, succ u2, succ u4} G α γ (AddEquivClass.toEquivLike.{u3, u2, u4} G α γ (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_3))) _inst_5))) g) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f))
+Case conversion may be inaccurate. Consider using '#align summable.map_iff_of_equiv Summable.map_iff_of_equivₓ'. -/
 /-- A special case of `summable.map_iff_of_left_inverse` for convenience -/
 protected theorem Summable.map_iff_of_equiv [AddCommMonoid γ] [TopologicalSpace γ] {G}
     [AddEquivClass G α γ] (g : G) (hg : Continuous g)
@@ -280,16 +468,25 @@ protected theorem Summable.map_iff_of_equiv [AddCommMonoid γ] [TopologicalSpace
   Summable.map_iff_of_leftInverse g (g : α ≃+ γ).symm hg hg' (AddEquivClass.left_inv g)
 #align summable.map_iff_of_equiv Summable.map_iff_of_equiv
 
+#print HasSum.tendsto_sum_nat /-
 /-- If `f : ℕ → α` has sum `a`, then the partial sums `∑_{i=0}^{n-1} f i` converge to `a`. -/
 theorem HasSum.tendsto_sum_nat {f : ℕ → α} (h : HasSum f a) :
     Tendsto (fun n : ℕ => ∑ i in range n, f i) atTop (𝓝 a) :=
   h.comp tendsto_finset_range
 #align has_sum.tendsto_sum_nat HasSum.tendsto_sum_nat
+-/
 
+/- warning: has_sum.unique -> HasSum.unique is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a₁ : α} {a₂ : α} [_inst_3 : T2Space.{u1} α _inst_2], (HasSum.{u1, u2} α β _inst_1 _inst_2 f a₁) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f a₂) -> (Eq.{succ u1} α a₁ a₂)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a₁ : α} {a₂ : α} [_inst_3 : T2Space.{u2} α _inst_2], (HasSum.{u2, u1} α β _inst_1 _inst_2 f a₁) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 f a₂) -> (Eq.{succ u2} α a₁ a₂)
+Case conversion may be inaccurate. Consider using '#align has_sum.unique HasSum.uniqueₓ'. -/
 theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f a₂ → a₁ = a₂ :=
   tendsto_nhds_unique
 #align has_sum.unique HasSum.unique
 
+#print Summable.hasSum_iff_tendsto_nat /-
 theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (hf : Summable f) :
     HasSum f a ↔ Tendsto (fun n : ℕ => ∑ i in range n, f i) atTop (𝓝 a) :=
   by
@@ -297,7 +494,14 @@ theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (
   rw [tendsto_nhds_unique h hf.has_sum.tendsto_sum_nat]
   exact hf.has_sum
 #align summable.has_sum_iff_tendsto_nat Summable.hasSum_iff_tendsto_nat
+-/
 
+/- warning: function.surjective.summable_iff_of_has_sum_iff -> Function.Surjective.summable_iff_of_hasSum_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {α' : Type.{u4}} [_inst_3 : AddCommMonoid.{u4} α'] [_inst_4 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u1} α' α e) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u3} α' γ _inst_3 _inst_4 g a)) -> (Iff (Summable.{u1, u2} α β _inst_1 _inst_2 f) (Summable.{u4, u3} α' γ _inst_3 _inst_4 g)))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] {α' : Type.{u4}} [_inst_3 : AddCommMonoid.{u4} α'] [_inst_4 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u3} α' α e) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u3, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u1} α' γ _inst_3 _inst_4 g a)) -> (Iff (Summable.{u3, u2} α β _inst_1 _inst_2 f) (Summable.{u4, u1} α' γ _inst_3 _inst_4 g)))
+Case conversion may be inaccurate. Consider using '#align function.surjective.summable_iff_of_has_sum_iff Function.Surjective.summable_iff_of_hasSum_iffₓ'. -/
 theorem Function.Surjective.summable_iff_of_hasSum_iff {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) {f : β → α} {g : γ → α'}
     (he : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : Summable f ↔ Summable g :=
@@ -306,14 +510,32 @@ theorem Function.Surjective.summable_iff_of_hasSum_iff {α' : Type _} [AddCommMo
 
 variable [ContinuousAdd α]
 
+/- warning: has_sum.add -> HasSum.add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))], (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 g b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (g b)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))], (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 g b) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (g b)) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.add HasSum.addₓ'. -/
 theorem HasSum.add (hf : HasSum f a) (hg : HasSum g b) : HasSum (fun b => f b + g b) (a + b) := by
   simp only [HasSum, sum_add_distrib] <;> exact hf.add hg
 #align has_sum.add HasSum.add
 
+/- warning: summable.add -> Summable.add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))], (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 g) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (g b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α} [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))], (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 g) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (g b)))
+Case conversion may be inaccurate. Consider using '#align summable.add Summable.addₓ'. -/
 theorem Summable.add (hf : Summable f) (hg : Summable g) : Summable fun b => f b + g b :=
   (hf.HasSum.add hg.HasSum).Summable
 #align summable.add Summable.add
 
+/- warning: has_sum_sum -> hasSum_sum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : γ -> β -> α} {a : γ -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.Mem.{u3, u3} γ (Finset.{u3} γ) (Finset.hasMem.{u3} γ) i s) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (f i) (a i))) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => f i b)) (Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => a i)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : γ -> β -> α} {a : γ -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.mem.{u3, u3} γ (Finset.{u3} γ) (Finset.instMembershipFinset.{u3} γ) i s) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (f i) (a i))) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => f i b)) (Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => a i)))
+Case conversion may be inaccurate. Consider using '#align has_sum_sum hasSum_sumₓ'. -/
 theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
     (∀ i ∈ s, HasSum (f i) (a i)) → HasSum (fun b => ∑ i in s, f i b) (∑ i in s, a i) :=
   Finset.induction_on s (by simp only [hasSum_zero, sum_empty, forall_true_iff])
@@ -322,11 +544,23 @@ theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
         forall_eq_or_imp, forall₂_true_iff, not_false_iff, forall_true_iff])
 #align has_sum_sum hasSum_sum
 
+/- warning: summable_sum -> summable_sum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.Mem.{u3, u3} γ (Finset.{u3} γ) (Finset.hasMem.{u3} γ) i s) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (f i))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => f i b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.mem.{u3, u3} γ (Finset.{u3} γ) (Finset.instMembershipFinset.{u3} γ) i s) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (f i))) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => f i b)))
+Case conversion may be inaccurate. Consider using '#align summable_sum summable_sumₓ'. -/
 theorem summable_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
     Summable fun b => ∑ i in s, f i b :=
   (hasSum_sum fun i hi => (hf i hi).HasSum).Summable
 #align summable_sum summable_sum
 
+/- warning: has_sum.add_disjoint -> HasSum.add_disjoint is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β))) s t) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t))))))) b) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)))))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) s t) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β t) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t))) b) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.add_disjoint HasSum.add_disjointₓ'. -/
 theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : t → α) b) : HasSum (f ∘ coe : s ∪ t → α) (a + b) :=
   by
@@ -335,6 +569,12 @@ theorem HasSum.add_disjoint {s t : Set β} (hs : Disjoint s t) (ha : HasSum (f 
   exact ha.add hb
 #align has_sum.add_disjoint HasSum.add_disjoint
 
+/- warning: has_sum_sum_disjoint -> hasSum_sum_disjoint is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))) (a i))) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} (s : Finset.{u3} ι) {t : ι -> (Set.{u2} β)} {a : ι -> α}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))) (a i))) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.4211 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => a i)))
+Case conversion may be inaccurate. Consider using '#align has_sum_sum_disjoint hasSum_sum_disjointₓ'. -/
 theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι → α}
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ coe : t i → α) (a i)) :
     HasSum (f ∘ coe : (⋃ i ∈ s, t i) → α) (∑ i in s, a i) :=
@@ -344,27 +584,57 @@ theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι →
   exact hasSum_sum hf
 #align has_sum_sum_disjoint hasSum_sum_disjoint
 
+/- warning: has_sum.add_is_compl -> HasSum.add_isCompl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (IsCompl.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β))))) s t) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t))))))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (IsCompl.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))) s t) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β t) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.add_is_compl HasSum.add_isComplₓ'. -/
 theorem HasSum.add_isCompl {s t : Set β} (hs : IsCompl s t) (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : t → α) b) : HasSum f (a + b) := by
   simpa [← hs.compl_eq] using
     (hasSum_subtype_iff_indicator.1 ha).add (hasSum_subtype_iff_indicator.1 hb)
 #align has_sum.add_is_compl HasSum.add_isCompl
 
+/- warning: has_sum.add_compl -> HasSum.add_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.add_compl HasSum.add_complₓ'. -/
 theorem HasSum.add_compl {s : Set β} (ha : HasSum (f ∘ coe : s → α) a)
     (hb : HasSum (f ∘ coe : sᶜ → α) b) : HasSum f (a + b) :=
   ha.add_isCompl isCompl_compl hb
 #align has_sum.add_compl HasSum.add_compl
 
+/- warning: summable.add_compl -> Summable.add_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable.add_compl Summable.add_complₓ'. -/
 theorem Summable.add_compl {s : Set β} (hs : Summable (f ∘ coe : s → α))
     (hsc : Summable (f ∘ coe : sᶜ → α)) : Summable f :=
   (hs.HasSum.add_compl hsc.HasSum).Summable
 #align summable.add_compl Summable.add_compl
 
+/- warning: has_sum.compl_add -> HasSum.compl_add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) a) -> (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) a) -> (HasSum.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) b) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.compl_add HasSum.compl_addₓ'. -/
 theorem HasSum.compl_add {s : Set β} (ha : HasSum (f ∘ coe : sᶜ → α) a)
     (hb : HasSum (f ∘ coe : s → α) b) : HasSum f (a + b) :=
   ha.add_isCompl isCompl_compl.symm hb
 #align has_sum.compl_add HasSum.compl_add
 
+/- warning: has_sum.even_add_odd -> HasSum.even_add_odd is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k)) a) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) b) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {a : α} {b : α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k)) a) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) b) -> (HasSum.{u1, 0} α Nat _inst_1 _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.even_add_odd HasSum.even_add_oddₓ'. -/
 theorem HasSum.even_add_odd {f : ℕ → α} (he : HasSum (fun k => f (2 * k)) a)
     (ho : HasSum (fun k => f (2 * k + 1)) b) : HasSum f (a + b) :=
   by
@@ -375,16 +645,34 @@ theorem HasSum.even_add_odd {f : ℕ → α} (he : HasSum (fun k => f (2 * k)) a
   simpa [(· ∘ ·)] using Nat.isCompl_even_odd
 #align has_sum.even_add_odd HasSum.even_add_odd
 
+/- warning: summable.compl_add -> Summable.compl_add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable.compl_add Summable.compl_addₓ'. -/
 theorem Summable.compl_add {s : Set β} (hs : Summable (f ∘ coe : sᶜ → α))
     (hsc : Summable (f ∘ coe : s → α)) : Summable f :=
   (hs.HasSum.compl_add hsc.HasSum).Summable
 #align summable.compl_add Summable.compl_add
 
+/- warning: summable.even_add_odd -> Summable.even_add_odd is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable.even_add_odd Summable.even_add_oddₓ'. -/
 theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) : Summable f :=
   (he.HasSum.even_add_odd ho.HasSum).Summable
 #align summable.even_add_odd Summable.even_add_odd
 
+/- warning: has_sum.sigma -> HasSum.sigma is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : RegularSpace.{u1} α _inst_2] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u1, u3} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)) (g b)) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 g a)
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : RegularSpace.{u3} α _inst_2] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u3, u2} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)) (g b)) -> (HasSum.{u3, u1} α β _inst_1 _inst_2 g a)
+Case conversion may be inaccurate. Consider using '#align has_sum.sigma HasSum.sigmaₓ'. -/
 theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b) → α} {g : β → α} {a : α}
     (ha : HasSum f a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) : HasSum g a :=
   by
@@ -407,6 +695,12 @@ theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b
   exact mem_filter.2 ⟨ht hx, hbs <| mem_image_of_mem _ hx⟩
 #align has_sum.sigma HasSum.sigma
 
+/- warning: has_sum.prod_fiberwise -> HasSum.prod_fiberwise is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : RegularSpace.{u1} α _inst_2] {f : (Prod.{u2, u3} β γ) -> α} {g : β -> α} {a : α}, (HasSum.{u1, max u2 u3} α (Prod.{u2, u3} β γ) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u1, u3} α γ _inst_1 _inst_2 (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)) (g b)) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 g a)
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : RegularSpace.{u3} α _inst_2] {f : (Prod.{u2, u1} β γ) -> α} {g : β -> α} {a : α}, (HasSum.{u3, max u2 u1} α (Prod.{u2, u1} β γ) _inst_1 _inst_2 f a) -> (forall (b : β), HasSum.{u3, u1} α γ _inst_1 _inst_2 (fun (c : γ) => f (Prod.mk.{u2, u1} β γ b c)) (g b)) -> (HasSum.{u3, u2} α β _inst_1 _inst_2 g a)
+Case conversion may be inaccurate. Consider using '#align has_sum.prod_fiberwise HasSum.prod_fiberwiseₓ'. -/
 /-- 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 HasSum.prod_fiberwise [RegularSpace α] {f : β × γ → α} {g : β → α} {a : α} (ha : HasSum f a)
@@ -414,16 +708,34 @@ theorem HasSum.prod_fiberwise [RegularSpace α] {f : β × γ → α} {g : β 
   HasSum.sigma ((Equiv.sigmaEquivProd β γ).hasSum_iff.2 ha) hf
 #align has_sum.prod_fiberwise HasSum.prod_fiberwise
 
+/- warning: summable.sigma' -> Summable.sigma' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : RegularSpace.{u1} α _inst_2] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α}, (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (forall (b : β), Summable.{u1, u3} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => tsum.{u1, u3} α _inst_1 _inst_2 (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c))))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : RegularSpace.{u3} α _inst_2] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α}, (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (forall (b : β), Summable.{u3, u2} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c))) -> (Summable.{u3, u1} α β _inst_1 _inst_2 (fun (b : β) => tsum.{u3, u2} α _inst_1 _inst_2 (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c))))
+Case conversion may be inaccurate. Consider using '#align summable.sigma' Summable.sigma'ₓ'. -/
 theorem Summable.sigma' [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f)
     (hf : ∀ b, Summable fun c => f ⟨b, c⟩) : Summable fun b => ∑' c, f ⟨b, c⟩ :=
   (ha.HasSum.Sigma fun b => (hf b).HasSum).Summable
 #align summable.sigma' Summable.sigma'
 
+/- warning: has_sum.sigma_of_has_sum -> HasSum.sigma_of_hasSum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] [_inst_4 : T3Space.{u1} α _inst_2] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 g a) -> (forall (b : β), HasSum.{u1, u3} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)) (g b)) -> (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (HasSum.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a)
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : ContinuousAdd.{u3} α _inst_2 (AddZeroClass.toAdd.{u3} α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1)))] [_inst_4 : T3Space.{u3} α _inst_2] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α} {g : β -> α} {a : α}, (HasSum.{u3, u1} α β _inst_1 _inst_2 g a) -> (forall (b : β), HasSum.{u3, u2} α (γ b) _inst_1 _inst_2 (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)) (g b)) -> (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f) -> (HasSum.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) _inst_1 _inst_2 f a)
+Case conversion may be inaccurate. Consider using '#align has_sum.sigma_of_has_sum HasSum.sigma_of_hasSumₓ'. -/
 theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} {g : β → α}
     {a : α} (ha : HasSum g a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) (hf' : Summable f) :
     HasSum f a := by simpa [(hf'.has_sum.sigma hf).unique ha] using hf'.has_sum
 #align has_sum.sigma_of_has_sum HasSum.sigma_of_hasSum
 
+/- warning: has_sum.update' -> HasSum.update' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : AddCommMonoid.{u1} α] [_inst_6 : T2Space.{u1} α _inst_4] [_inst_7 : ContinuousAdd.{u1} α _inst_4 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))] {f : β -> α} {a : α} {a' : α}, (HasSum.{u1, u2} α β _inst_5 _inst_4 f a) -> (forall (b : β) (x : α), (HasSum.{u1, u2} α β _inst_5 _inst_4 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)) f b x) a') -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))) a x) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))) a' (f b))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : TopologicalSpace.{u2} α] [_inst_5 : AddCommMonoid.{u2} α] [_inst_6 : T2Space.{u2} α _inst_4] [_inst_7 : ContinuousAdd.{u2} α _inst_4 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))] {f : β -> α} {a : α} {a' : α}, (HasSum.{u2, u1} α β _inst_5 _inst_4 f a) -> (forall (b : β) (x : α), (HasSum.{u2, u1} α β _inst_5 _inst_4 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)) f b x) a') -> (Eq.{succ u2} α (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) a x) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) a' (f b))))
+Case conversion may be inaccurate. Consider using '#align has_sum.update' HasSum.update'ₓ'. -/
 /-- Version of `has_sum.update` for `add_comm_monoid` rather than `add_comm_group`.
 Rather than showing that `f.update` has a specific sum in terms of `has_sum`,
 it gives a relationship between the sums of `f` and `f.update` given that both exist. -/
@@ -442,6 +754,12 @@ theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α]
   exact HasSum.unique h (hf'.add (hasSum_ite_eq b (f b)))
 #align has_sum.update' HasSum.update'
 
+/- warning: eq_add_of_has_sum_ite -> eq_add_of_hasSum_ite is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : TopologicalSpace.{u1} α] [_inst_5 : AddCommMonoid.{u1} α] [_inst_6 : T2Space.{u1} α _inst_4] [_inst_7 : ContinuousAdd.{u1} α _inst_4 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_5 _inst_4 f a) -> (forall (b : β) (a' : α), (HasSum.{u1, u2} α β _inst_5 _inst_4 (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (Classical.propDecidable (Eq.{succ u2} β n b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))))) (f n)) a') -> (Eq.{succ u1} α a (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_5)))) a' (f b))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : TopologicalSpace.{u2} α] [_inst_5 : AddCommMonoid.{u2} α] [_inst_6 : T2Space.{u2} α _inst_4] [_inst_7 : ContinuousAdd.{u2} α _inst_4 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_5 _inst_4 f a) -> (forall (b : β) (a' : α), (HasSum.{u2, u1} α β _inst_5 _inst_4 (fun (n : β) => ite.{succ u2} α (Eq.{succ u1} β n b) (Classical.propDecidable (Eq.{succ u1} β n b)) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) (f n)) a') -> (Eq.{succ u2} α a (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_5)))) a' (f b))))
+Case conversion may be inaccurate. Consider using '#align eq_add_of_has_sum_ite eq_add_of_hasSum_iteₓ'. -/
 /-- Version of `has_sum_ite_sub_has_sum` for `add_comm_monoid` rather than `add_comm_group`.
 Rather than showing that the `ite` expression has a specific sum in terms of `has_sum`,
 it gives a relationship between the sums of `f` and `ite (n = b) 0 (f n)` given that both exist. -/
@@ -460,10 +778,18 @@ section tsum
 
 variable [AddCommMonoid α] [TopologicalSpace α]
 
+#print tsum_congr_subtype /-
 theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
     (∑' x : s, f x) = ∑' x : t, f x := by rw [h]
 #align tsum_congr_subtype tsum_congr_subtype
+-/
 
+/- warning: tsum_zero' -> tsum_zero' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α], (IsClosed.{u1} α _inst_2 (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α], (IsClosed.{u2} α _inst_2 (Singleton.singleton.{u2, u2} α (Set.{u2} α) (Set.instSingletonSet.{u2} α) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align tsum_zero' tsum_zero'ₓ'. -/
 theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' b : β, (0 : α)) = 0 := by
   classical
     rw [tsum, dif_pos summable_zero]
@@ -478,6 +804,12 @@ theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' b : β, (0 : α)) = 0
     · simp
 #align tsum_zero' tsum_zero'
 
+/- warning: tsum_zero -> tsum_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T1Space.{u1} α _inst_2], Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T1Space.{u2} α _inst_2], Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))
+Case conversion may be inaccurate. Consider using '#align tsum_zero tsum_zeroₓ'. -/
 @[simp]
 theorem tsum_zero [T1Space α] : (∑' b : β, (0 : α)) = 0 :=
   tsum_zero' isClosed_singleton
@@ -485,25 +817,55 @@ theorem tsum_zero [T1Space α] : (∑' b : β, (0 : α)) = 0 :=
 
 variable [T2Space α] {f g : β → α} {a a₁ a₂ : α}
 
+/- warning: has_sum.tsum_eq -> HasSum.tsum_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) a)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) a)
+Case conversion may be inaccurate. Consider using '#align has_sum.tsum_eq HasSum.tsum_eqₓ'. -/
 theorem HasSum.tsum_eq (ha : HasSum f a) : (∑' b, f b) = a :=
   (Summable.hasSum ⟨a, ha⟩).unique ha
 #align has_sum.tsum_eq HasSum.tsum_eq
 
+/- warning: summable.has_sum_iff -> Summable.hasSum_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {a : α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) a))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {a : α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) a))
+Case conversion may be inaccurate. Consider using '#align summable.has_sum_iff Summable.hasSum_iffₓ'. -/
 theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ (∑' b, f b) = a :=
   Iff.intro HasSum.tsum_eq fun eq => Eq ▸ h.HasSum
 #align summable.has_sum_iff Summable.hasSum_iff
 
+/- warning: tsum_empty -> tsum_empty is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : IsEmpty.{succ u2} β], Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : IsEmpty.{succ u2} β], Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))
+Case conversion may be inaccurate. Consider using '#align tsum_empty tsum_emptyₓ'. -/
 @[simp]
 theorem tsum_empty [IsEmpty β] : (∑' b, f b) = 0 :=
   hasSum_empty.tsum_eq
 #align tsum_empty tsum_empty
 
+/- warning: tsum_eq_sum -> tsum_eq_sum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Finset.{u2} β}, (forall (b : β), (Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) b s)) -> (Eq.{succ u1} α (f b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (Finset.sum.{u1, u2} α β _inst_1 s (fun (b : β) => f b)))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_sum tsum_eq_sumₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     (∑' b, f b) = ∑ b in s, f b :=
   (hasSum_sum_of_ne_finset_zero hf).tsum_eq
 #align tsum_eq_sum tsum_eq_sum
 
+/- warning: sum_eq_tsum_indicator -> sum_eq_tsum_indicator is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> α) (s : Finset.{u2} β), Eq.{succ u1} α (Finset.sum.{u1, u2} α β _inst_1 s (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s) f x))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> α) (s : Finset.{u2} β), Eq.{succ u1} α (Finset.sum.{u1, u2} α β _inst_1 s (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) (Finset.toSet.{u2} β s) f x))
+Case conversion may be inaccurate. Consider using '#align sum_eq_tsum_indicator sum_eq_tsum_indicatorₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » s) -/
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (∑ x in s, f x) = ∑' x, Set.indicator (↑s) f x :=
@@ -514,25 +876,51 @@ theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (tsum_eq_sum this).symm
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
 
+/- warning: tsum_congr -> tsum_congr is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u1} α (f b) (g b)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_4 _inst_5 β (fun (b : β) => f b)) (tsum.{u1, u2} α _inst_4 _inst_5 β (fun (b : β) => g b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : AddCommMonoid.{u2} α] [_inst_5 : TopologicalSpace.{u2} α] {f : β -> α} {g : β -> α}, (forall (b : β), Eq.{succ u2} α (f b) (g b)) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_4 _inst_5 β (fun (b : β) => f b)) (tsum.{u2, u1} α _inst_4 _inst_5 β (fun (b : β) => g b)))
+Case conversion may be inaccurate. Consider using '#align tsum_congr tsum_congrₓ'. -/
 theorem tsum_congr {α β : Type _} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α}
     (hfg : ∀ b, f b = g b) : (∑' b, f b) = ∑' b, g b :=
   congr_arg tsum (funext hfg)
 #align tsum_congr tsum_congr
 
+#print tsum_fintype /-
 theorem tsum_fintype [Fintype β] (f : β → α) : (∑' b, f b) = ∑ b, f b :=
   (hasSum_fintype f).tsum_eq
 #align tsum_fintype tsum_fintype
+-/
 
+/- warning: tsum_bool -> tsum_bool is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : Bool -> α), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Bool (fun (i : Bool) => f i)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f (Decidable.decide False Decidable.false)) (f (Decidable.decide True Decidable.true)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : Bool -> α), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Bool (fun (i : Bool) => f i)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f (Decidable.decide False instDecidableFalse)) (f (Decidable.decide True instDecidableTrue)))
+Case conversion may be inaccurate. Consider using '#align tsum_bool tsum_boolₓ'. -/
 theorem tsum_bool (f : Bool → α) : (∑' i : Bool, f i) = f False + f True := by
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
 
+/- warning: tsum_eq_single -> tsum_eq_single is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (f b))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} (b : β), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b') (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (f b))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_single tsum_eq_singleₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
     (∑' b, f b) = f b :=
   (hasSum_single b hf).tsum_eq
 #align tsum_eq_single tsum_eq_single
 
+/- warning: tsum_tsum_eq_single -> tsum_tsum_eq_single is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> γ -> α) (b : β) (c : γ), (forall (b' : β), (Ne.{succ u2} β b' b) -> (Eq.{succ u1} α (f b' c) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (forall (b' : β) (c' : γ), (Ne.{succ u3} γ c' c) -> (Eq.{succ u1} α (f b' c') (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (c' : γ) => f b' c'))) (f b c))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (f : β -> γ -> α) (b : β) (c : γ), (forall (b' : β), (Ne.{succ u3} β b' b) -> (Eq.{succ u2} α (f b' c) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (forall (b' : β) (c' : γ), (Ne.{succ u1} γ c' c) -> (Eq.{succ u2} α (f b' c') (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (Eq.{succ u2} α (tsum.{u2, u3} α _inst_1 _inst_2 β (fun (b' : β) => tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (c' : γ) => f b' c'))) (f b c))
+Case conversion may be inaccurate. Consider using '#align tsum_tsum_eq_single tsum_tsum_eq_singleₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
@@ -544,27 +932,57 @@ theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀
     
 #align tsum_tsum_eq_single tsum_tsum_eq_single
 
+/- warning: tsum_ite_eq -> tsum_ite_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (b : β) [_inst_4 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_4 b') a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) a
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (b : β) [_inst_4 : DecidablePred.{succ u2} β (fun (_x : β) => Eq.{succ u2} β _x b)] (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => ite.{succ u1} α (Eq.{succ u2} β b' b) (_inst_4 b') a (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) a
+Case conversion may be inaccurate. Consider using '#align tsum_ite_eq tsum_ite_eqₓ'. -/
 @[simp]
 theorem tsum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
     (∑' b', if b' = b then a else 0) = a :=
   (hasSum_ite_eq b a).tsum_eq
 #align tsum_ite_eq tsum_ite_eq
 
+/- warning: tsum_pi_single -> tsum_pi_single is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : DecidableEq.{succ u2} β] (b : β) (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_4 a b) (fun (i : β) => AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) b a b')) a
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : DecidableEq.{succ u2} β] (b : β) (a : α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b' : β) => Pi.single.{u2, u1} β (fun (b : β) => α) (fun (a : β) (b : β) => _inst_4 a b) (fun (i : β) => AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) b a b')) a
+Case conversion may be inaccurate. Consider using '#align tsum_pi_single tsum_pi_singleₓ'. -/
 @[simp]
 theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : (∑' b', Pi.single b a b') = a :=
   (hasSum_pi_single b a).tsum_eq
 #align tsum_pi_single tsum_pi_single
 
+/- warning: tsum_dite_right -> tsum_dite_right is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> (Not P) -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u1} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (fun (h : Not P) => x b h))) (dite.{succ u1} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (fun (h : Not P) => tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => x b h)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> (Not P) -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u2} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (fun (h : Not P) => x b h))) (dite.{succ u2} α P _inst_4 (fun (h : P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (fun (h : Not P) => tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => x b h)))
+Case conversion may be inaccurate. Consider using '#align tsum_dite_right tsum_dite_rightₓ'. -/
 theorem tsum_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
     (∑' b : β, if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_right tsum_dite_right
 
+/- warning: tsum_dite_left -> tsum_dite_left is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> P -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u1} α P _inst_4 (fun (h : P) => x b h) (fun (h : Not P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) (dite.{succ u1} α P _inst_4 (fun (h : P) => tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => x b h)) (fun (h : Not P) => OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (P : Prop) [_inst_4 : Decidable P] (x : β -> P -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => dite.{succ u2} α P _inst_4 (fun (h : P) => x b h) (fun (h : Not P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) (dite.{succ u2} α P _inst_4 (fun (h : P) => tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => x b h)) (fun (h : Not P) => OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align tsum_dite_left tsum_dite_leftₓ'. -/
 theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
     (∑' b : β, if h : P then x b h else 0) = if h : P then ∑' b : β, x b h else 0 := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_left tsum_dite_left
 
+/- warning: function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum -> Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {α' : Type.{u4}} [_inst_4 : AddCommMonoid.{u4} α'] [_inst_5 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u1} α' α e) -> (Eq.{succ u1} α (e (OfNat.ofNat.{u4} α' 0 (OfNat.mk.{u4} α' 0 (Zero.zero.{u4} α' (AddZeroClass.toHasZero.{u4} α' (AddMonoid.toAddZeroClass.{u4} α' (AddCommMonoid.toAddMonoid.{u4} α' _inst_4))))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u3} α' γ _inst_4 _inst_5 g a)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (e (tsum.{u4, u3} α' _inst_4 _inst_5 γ (fun (c : γ) => g c)))))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : T2Space.{u3} α _inst_2] {α' : Type.{u4}} [_inst_4 : AddCommMonoid.{u4} α'] [_inst_5 : TopologicalSpace.{u4} α'] {e : α' -> α}, (Function.Surjective.{succ u4, succ u3} α' α e) -> (Eq.{succ u3} α (e (OfNat.ofNat.{u4} α' 0 (Zero.toOfNat0.{u4} α' (AddMonoid.toZero.{u4} α' (AddCommMonoid.toAddMonoid.{u4} α' _inst_4))))) (OfNat.ofNat.{u3} α 0 (Zero.toOfNat0.{u3} α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_1))))) -> (forall {f : β -> α} {g : γ -> α'}, (forall {a : α'}, Iff (HasSum.{u3, u2} α β _inst_1 _inst_2 f (e a)) (HasSum.{u4, u1} α' γ _inst_4 _inst_5 g a)) -> (Eq.{succ u3} α (tsum.{u3, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (e (tsum.{u4, u1} α' _inst_4 _inst_5 γ (fun (c : γ) => g c)))))
+Case conversion may be inaccurate. Consider using '#align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSumₓ'. -/
 theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
     {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : (∑' b, f b) = e (∑' c, g c) :=
@@ -574,20 +992,40 @@ theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [Ad
     simp [tsum, hf, hg, h0]
 #align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
 
+/- warning: tsum_eq_tsum_of_has_sum_iff_has_sum -> tsum_eq_tsum_of_hasSum_iff_hasSum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α}, (forall {a : α}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) (HasSum.{u1, u3} α γ _inst_1 _inst_2 g a)) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (c : γ) => g c)))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : T2Space.{u3} α _inst_2] {f : β -> α} {g : γ -> α}, (forall {a : α}, Iff (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) (HasSum.{u3, u1} α γ _inst_1 _inst_2 g a)) -> (Eq.{succ u3} α (tsum.{u3, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u3, u1} α _inst_1 _inst_2 γ (fun (c : γ) => g c)))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSumₓ'. -/
 theorem tsum_eq_tsum_of_hasSum_iff_hasSum {f : β → α} {g : γ → α}
     (h : ∀ {a}, HasSum f a ↔ HasSum g a) : (∑' b, f b) = ∑' c, g c :=
   surjective_id.tsum_eq_tsum_of_hasSum_iff_hasSum rfl @h
 #align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSum
 
+#print Equiv.tsum_eq /-
 theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : (∑' c, f (j c)) = ∑' b, f b :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun a => j.hasSum_iff
 #align equiv.tsum_eq Equiv.tsum_eq
+-/
 
+/- warning: equiv.tsum_eq_tsum_of_support -> Equiv.tsum_eq_tsum_of_support is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))), (forall (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)), Eq.{succ u1} α (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (fun (_x : Equiv.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) => (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) -> (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) (Equiv.hasCoeToFun.{succ u2, succ u3} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g))) e x))) (f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f)))))) x))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (e : Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))), (forall (x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)), Eq.{succ u1} α (g (Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (Equiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (fun (_x : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) => Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g)) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u2} (Set.Elem.{u3} β (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) (Set.Elem.{u2} γ (Function.support.{u2, u1} γ α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) g))) e x))) (f (Subtype.val.{succ u3} β (fun (x : β) => Membership.mem.{u3, u3} β (Set.{u3} β) (Set.instMembershipSet.{u3} β) x (Function.support.{u3, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f)) x))) -> (Eq.{succ u1} α (tsum.{u1, u3} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u2} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
+Case conversion may be inaccurate. Consider using '#align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_supportₓ'. -/
 theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
     (he : ∀ x, g (e x) = f x) : (∑' x, f x) = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => e.hasSum_iff_of_support he
 #align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_support
 
+/- warning: tsum_eq_tsum_of_ne_zero_bij -> tsum_eq_tsum_of_ne_zero_bij is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : γ -> α} (i : (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) -> β), (forall {{x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}} {{y : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)}}, (Eq.{succ u2} β (i x) (i y)) -> (Eq.{succ u3} γ ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) y))) -> (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) (Set.range.{u2, succ u3} β (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) i)) -> (forall (x : coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)), Eq.{succ u1} α (f (i x)) (g ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Set.{u3} γ) Type.{u3} (Set.hasCoeToSort.{u3} γ) (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)) γ (coeSubtype.{succ u3} γ (fun (x : γ) => Membership.Mem.{u3, u3} γ (Set.{u3} γ) (Set.hasMem.{u3} γ) x (Function.support.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) g)))))) x))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {g : γ -> α} (i : (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) -> β), (forall {{x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}} {{y : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)}}, (Eq.{succ u1} β (i x) (i y)) -> (Eq.{succ u3} γ (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x) (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) y))) -> (HasSubset.Subset.{u1} (Set.{u1} β) (Set.instHasSubsetSet.{u1} β) (Function.support.{u1, u2} β α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) f) (Set.range.{u1, succ u3} β (Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) i)) -> (forall (x : Set.Elem.{u3} γ (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)), Eq.{succ u2} α (f (i x)) (g (Subtype.val.{succ u3} γ (fun (x : γ) => Membership.mem.{u3, u3} γ (Set.{u3} γ) (Set.instMembershipSet.{u3} γ) x (Function.support.{u3, u2} γ α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)) g)) x))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)) (tsum.{u2, u3} α _inst_1 _inst_2 γ (fun (y : γ) => g y)))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bijₓ'. -/
 theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
     (hfg : ∀ x, f (i x) = g x) : (∑' x, f x) = ∑' y, g y :=
@@ -597,32 +1035,60 @@ theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
 /-! ### `tsum` on subsets -/
 
 
+#print Finset.tsum_subtype /-
 @[simp]
 theorem Finset.tsum_subtype (s : Finset β) (f : β → α) :
     (∑' x : { x // x ∈ s }, f x) = ∑ x in s, f x :=
   (s.HasSum f).tsum_eq
 #align finset.tsum_subtype Finset.tsum_subtype
+-/
 
+#print Finset.tsum_subtype' /-
 @[simp]
 theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) :
     (∑' x : (s : Set β), f x) = ∑ x in s, f x :=
   s.tsum_subtype f
 #align finset.tsum_subtype' Finset.tsum_subtype'
+-/
 
+/- warning: tsum_subtype -> tsum_subtype is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (s : Set.{u2} β) (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) s f x))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (s : Set.{u2} β) (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => Set.indicator.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) s f x))
+Case conversion may be inaccurate. Consider using '#align tsum_subtype tsum_subtypeₓ'. -/
 theorem tsum_subtype (s : Set β) (f : β → α) : (∑' x : s, f x) = ∑' x, s.indicator f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun _ => hasSum_subtype_iff_indicator
 #align tsum_subtype tsum_subtype
 
+/- warning: tsum_subtype_eq_of_support_subset -> tsum_subtype_eq_of_support_subset is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.hasSubset.{u2} β) (Function.support.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))) f) s) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {s : Set.{u2} β}, (HasSubset.Subset.{u2} (Set.{u2} β) (Set.instHasSubsetSet.{u2} β) (Function.support.{u2, u1} β α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)) f) s) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subsetₓ'. -/
 theorem tsum_subtype_eq_of_support_subset {f : β → α} {s : Set β} (hs : support f ⊆ s) :
     (∑' x : s, f x) = ∑' x, f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum fun x => hasSum_subtype_iff_of_support_subset hs
 #align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subset
 
+/- warning: tsum_univ -> tsum_univ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.univ.{u2} β)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.univ.{u2} β)))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (f : β -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 (Set.Elem.{u1} β (Set.univ.{u1} β)) (fun (x : Set.Elem.{u1} β (Set.univ.{u1} β)) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Set.univ.{u1} β)) x))) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x))
+Case conversion may be inaccurate. Consider using '#align tsum_univ tsum_univₓ'. -/
 @[simp]
 theorem tsum_univ (f : β → α) : (∑' x : (Set.univ : Set β), f x) = ∑' x, f x :=
   tsum_subtype_eq_of_support_subset <| Set.subset_univ _
 #align tsum_univ tsum_univ
 
+/- warning: tsum_singleton -> tsum_singleton is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] (b : β) (f : β -> α), Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Singleton.singleton.{u2, u2} β (Set.{u2} β) (Set.hasSingleton.{u2} β) b)))))) x))) (f b)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] (b : β) (f : β -> α), Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 (Set.Elem.{u1} β (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) b)) (fun (x : Set.Elem.{u1} β (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) b)) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (Singleton.singleton.{u1, u1} β (Set.{u1} β) (Set.instSingletonSet.{u1} β) b)) x))) (f b)
+Case conversion may be inaccurate. Consider using '#align tsum_singleton tsum_singletonₓ'. -/
 @[simp]
 theorem tsum_singleton (b : β) (f : β → α) : (∑' x : ({b} : Set β), f x) = f b :=
   by
@@ -634,30 +1100,52 @@ theorem tsum_singleton (b : β) (f : β → α) : (∑' x : ({b} : Set β), f x)
   · infer_instance
 #align tsum_singleton tsum_singleton
 
+#print tsum_image /-
 theorem tsum_image {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s) :
     (∑' x : g '' s, f x) = ∑' x : s, f (g x) :=
   ((Equiv.Set.imageOfInjOn _ _ hg).tsum_eq fun x => f x).symm
 #align tsum_image tsum_image
+-/
 
+#print tsum_range /-
 theorem tsum_range {g : γ → β} (f : β → α) (hg : Injective g) :
     (∑' x : Set.range g, f x) = ∑' x, f (g x) := by
   rw [← Set.image_univ, tsum_image f (hg.inj_on _), tsum_univ (f ∘ g)]
 #align tsum_range tsum_range
+-/
 
 section ContinuousAdd
 
 variable [ContinuousAdd α]
 
+/- warning: tsum_add -> tsum_add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} {g : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))], (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 g) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (g b))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => g b))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> α} {g : β -> α} [_inst_4 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))], (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 g) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (g b))) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b)) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => g b))))
+Case conversion may be inaccurate. Consider using '#align tsum_add tsum_addₓ'. -/
 theorem tsum_add (hf : Summable f) (hg : Summable g) :
     (∑' b, f b + g b) = (∑' b, f b) + ∑' b, g b :=
   (hf.HasSum.add hg.HasSum).tsum_eq
 #align tsum_add tsum_add
 
+/- warning: tsum_sum -> tsum_sum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.Mem.{u3, u3} γ (Finset.{u3} γ) (Finset.hasMem.{u3} γ) i s) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (f i))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => f i b))) (Finset.sum.{u1, u3} α γ _inst_1 s (fun (i : γ) => tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f i b))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : γ -> β -> α} {s : Finset.{u3} γ}, (forall (i : γ), (Membership.mem.{u3, u3} γ (Finset.{u3} γ) (Finset.instMembershipFinset.{u3} γ) i s) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (f i))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => f i b))) (Finset.sum.{u2, u3} α γ _inst_1 s (fun (i : γ) => tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f i b))))
+Case conversion may be inaccurate. Consider using '#align tsum_sum tsum_sumₓ'. -/
 theorem tsum_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
     (∑' b, ∑ i in s, f i b) = ∑ i in s, ∑' b, f i b :=
   (hasSum_sum fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_sum tsum_sum
 
+/- warning: tsum_eq_add_tsum_ite' -> tsum_eq_add_tsum_ite' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : β -> α} (b : β), (Summable.{u1, u2} α β _inst_1 _inst_2 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)) f b (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (f b) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => ite.{succ u1} α (Eq.{succ u2} β x b) (Classical.propDecidable (Eq.{succ u2} β x b)) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))))) (f x)))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : ContinuousAdd.{u2} α _inst_2 (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))] {f : β -> α} (b : β), (Summable.{u2, u1} α β _inst_1 _inst_2 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)) f b (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))))) -> (Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f b) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => ite.{succ u2} α (Eq.{succ u1} β x b) (Classical.propDecidable (Eq.{succ u1} β x b)) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)))) (f x)))))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_add_tsum_ite' tsum_eq_add_tsum_ite'ₓ'. -/
 /-- Version of `tsum_eq_add_tsum_ite` for `add_comm_monoid` rather than `add_comm_group`.
 Requires a different convergence assumption involving `function.update`. -/
 theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update b 0)) :
@@ -678,18 +1166,36 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
 
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
 
+/- warning: tsum_sigma' -> tsum_sigma' is a dubious translation:
+lean 3 declaration is
+  forall {β : Type.{u1}} {δ : Type.{u2}} [_inst_5 : AddCommMonoid.{u2} δ] [_inst_6 : TopologicalSpace.{u2} δ] [_inst_7 : T3Space.{u2} δ _inst_6] [_inst_8 : ContinuousAdd.{u2} δ _inst_6 (AddZeroClass.toHasAdd.{u2} δ (AddMonoid.toAddZeroClass.{u2} δ (AddCommMonoid.toAddMonoid.{u2} δ _inst_5)))] {γ : β -> Type.{u3}} {f : (Sigma.{u1, u3} β (fun (b : β) => γ b)) -> δ}, (forall (b : β), Summable.{u2, u3} δ (γ b) _inst_5 _inst_6 (fun (c : γ b) => f (Sigma.mk.{u1, u3} β (fun (b : β) => γ b) b c))) -> (Summable.{u2, max u1 u3} δ (Sigma.{u1, u3} β (fun (b : β) => γ b)) _inst_5 _inst_6 f) -> (Eq.{succ u2} δ (tsum.{u2, max u1 u3} δ _inst_5 _inst_6 (Sigma.{u1, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u1, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u2, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u2, u3} δ _inst_5 _inst_6 (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u3} β (fun (b : β) => γ b) b c)))))
+but is expected to have type
+  forall {β : Type.{u2}} {δ : Type.{u1}} [_inst_5 : AddCommMonoid.{u1} δ] [_inst_6 : TopologicalSpace.{u1} δ] [_inst_7 : T3Space.{u1} δ _inst_6] [_inst_8 : ContinuousAdd.{u1} δ _inst_6 (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_5)))] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> δ}, (forall (b : β), Summable.{u1, u3} δ (γ b) _inst_5 _inst_6 (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c))) -> (Summable.{u1, max u2 u3} δ (Sigma.{u2, u3} β (fun (b : β) => γ b)) _inst_5 _inst_6 f) -> (Eq.{succ u1} δ (tsum.{u1, max u2 u3} δ _inst_5 _inst_6 (Sigma.{u2, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u2, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u1, u2} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u1, u3} δ _inst_5 _inst_6 (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)))))
+Case conversion may be inaccurate. Consider using '#align tsum_sigma' tsum_sigma'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_sigma' {γ : β → Type _} {f : (Σb : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
     (h₂ : Summable f) : (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   (h₂.HasSum.Sigma fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_sigma' tsum_sigma'
 
+/- warning: tsum_prod' -> tsum_prod' is a dubious translation:
+lean 3 declaration is
+  forall {β : Type.{u1}} {γ : Type.{u2}} {δ : Type.{u3}} [_inst_5 : AddCommMonoid.{u3} δ] [_inst_6 : TopologicalSpace.{u3} δ] [_inst_7 : T3Space.{u3} δ _inst_6] [_inst_8 : ContinuousAdd.{u3} δ _inst_6 (AddZeroClass.toHasAdd.{u3} δ (AddMonoid.toAddZeroClass.{u3} δ (AddCommMonoid.toAddMonoid.{u3} δ _inst_5)))] {f : (Prod.{u1, u2} β γ) -> δ}, (Summable.{u3, max u1 u2} δ (Prod.{u1, u2} β γ) _inst_5 _inst_6 f) -> (forall (b : β), Summable.{u3, u2} δ γ _inst_5 _inst_6 (fun (c : γ) => f (Prod.mk.{u1, u2} β γ b c))) -> (Eq.{succ u3} δ (tsum.{u3, max u1 u2} δ _inst_5 _inst_6 (Prod.{u1, u2} β γ) (fun (p : Prod.{u1, u2} β γ) => f p)) (tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f (Prod.mk.{u1, u2} β γ b c)))))
+but is expected to have type
+  forall {β : Type.{u3}} {γ : Type.{u2}} {δ : Type.{u1}} [_inst_5 : AddCommMonoid.{u1} δ] [_inst_6 : TopologicalSpace.{u1} δ] [_inst_7 : T3Space.{u1} δ _inst_6] [_inst_8 : ContinuousAdd.{u1} δ _inst_6 (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_5)))] {f : (Prod.{u3, u2} β γ) -> δ}, (Summable.{u1, max u3 u2} δ (Prod.{u3, u2} β γ) _inst_5 _inst_6 f) -> (forall (b : β), Summable.{u1, u2} δ γ _inst_5 _inst_6 (fun (c : γ) => f (Prod.mk.{u3, u2} β γ b c))) -> (Eq.{succ u1} δ (tsum.{u1, max u3 u2} δ _inst_5 _inst_6 (Prod.{u3, u2} β γ) (fun (p : Prod.{u3, u2} β γ) => f p)) (tsum.{u1, u3} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u1, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f (Prod.mk.{u3, u2} β γ b c)))))
+Case conversion may be inaccurate. Consider using '#align tsum_prod' tsum_prod'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_prod' {f : β × γ → δ} (h : Summable f) (h₁ : ∀ b, Summable fun c => f (b, c)) :
     (∑' p, f p) = ∑' (b) (c), f (b, c) :=
   (h.HasSum.prod_fiberwise fun b => (h₁ b).HasSum).tsum_eq.symm
 #align tsum_prod' tsum_prod'
 
+/- warning: tsum_comm' -> tsum_comm' is a dubious translation:
+lean 3 declaration is
+  forall {β : Type.{u1}} {γ : Type.{u2}} {δ : Type.{u3}} [_inst_5 : AddCommMonoid.{u3} δ] [_inst_6 : TopologicalSpace.{u3} δ] [_inst_7 : T3Space.{u3} δ _inst_6] [_inst_8 : ContinuousAdd.{u3} δ _inst_6 (AddZeroClass.toHasAdd.{u3} δ (AddMonoid.toAddZeroClass.{u3} δ (AddCommMonoid.toAddMonoid.{u3} δ _inst_5)))] {f : β -> γ -> δ}, (Summable.{u3, max u1 u2} δ (Prod.{u1, u2} β γ) _inst_5 _inst_6 (Function.uncurry.{u1, u2, u3} β γ δ f)) -> (forall (b : β), Summable.{u3, u2} δ γ _inst_5 _inst_6 (f b)) -> (forall (c : γ), Summable.{u3, u1} δ β _inst_5 _inst_6 (fun (b : β) => f b c)) -> (Eq.{succ u3} δ (tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => f b c))) (tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f b c))))
+but is expected to have type
+  forall {β : Type.{u1}} {γ : Type.{u2}} {δ : Type.{u3}} [_inst_5 : AddCommMonoid.{u3} δ] [_inst_6 : TopologicalSpace.{u3} δ] [_inst_7 : T3Space.{u3} δ _inst_6] [_inst_8 : ContinuousAdd.{u3} δ _inst_6 (AddZeroClass.toAdd.{u3} δ (AddMonoid.toAddZeroClass.{u3} δ (AddCommMonoid.toAddMonoid.{u3} δ _inst_5)))] {f : β -> γ -> δ}, (Summable.{u3, max u2 u1} δ (Prod.{u1, u2} β γ) _inst_5 _inst_6 (Function.uncurry.{u1, u2, u3} β γ δ f)) -> (forall (b : β), Summable.{u3, u2} δ γ _inst_5 _inst_6 (f b)) -> (forall (c : γ), Summable.{u3, u1} δ β _inst_5 _inst_6 (fun (b : β) => f b c)) -> (Eq.{succ u3} δ (tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => f b c))) (tsum.{u3, u1} δ _inst_5 _inst_6 β (fun (b : β) => tsum.{u3, u2} δ _inst_5 _inst_6 γ (fun (c : γ) => f b c))))
+Case conversion may be inaccurate. Consider using '#align tsum_comm' tsum_comm'ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_comm' {f : β → γ → δ} (h : Summable (Function.uncurry f)) (h₁ : ∀ b, Summable (f b))
@@ -707,6 +1213,12 @@ section Encodable
 
 variable [Encodable γ]
 
+/- warning: tsum_supr_decode₂ -> tsum_supᵢ_decode₂ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> β), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (supᵢ.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => supᵢ.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> β), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (supᵢ.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => supᵢ.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+Case conversion may be inaccurate. Consider using '#align tsum_supr_decode₂ tsum_supᵢ_decode₂ₓ'. -/
 /-- 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_supᵢ_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
@@ -738,6 +1250,12 @@ theorem tsum_supᵢ_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ =
     simp [ext_iff, -Option.some_get]
 #align tsum_supr_decode₂ tsum_supᵢ_decode₂
 
+/- warning: tsum_Union_decode₂ -> tsum_unionᵢ_decode₂ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Encodable.{u3} γ] (m : (Set.{u2} β) -> α), (Eq.{succ u1} α (m (EmptyCollection.emptyCollection.{u2} (Set.{u2} β) (Set.hasEmptyc.{u2} β))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (s : γ -> (Set.{u2} β)), Eq.{succ u1} α (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.unionᵢ.{u2, succ u3} β γ (fun (b : γ) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) (fun (H : Membership.Mem.{u3, u3} γ (Option.{u3} γ) (Option.hasMem.{u3} γ) b (Encodable.decode₂.{u3} γ _inst_4 i)) => s b))))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Encodable.{u1} γ] (m : (Set.{u3} β) -> α), (Eq.{succ u2} α (m (EmptyCollection.emptyCollection.{u3} (Set.{u3} β) (Set.instEmptyCollectionSet.{u3} β))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (s : γ -> (Set.{u3} β)), Eq.{succ u2} α (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (Set.unionᵢ.{u3, succ u1} β γ (fun (b : γ) => Set.unionᵢ.{u3, 0} β (Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) (fun (H : Membership.mem.{u1, u1} γ (Option.{u1} γ) (Option.instMembershipOption.{u1} γ) b (Encodable.decode₂.{u1} γ _inst_4 i)) => s b))))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b))))
+Case conversion may be inaccurate. Consider using '#align tsum_Union_decode₂ tsum_unionᵢ_decode₂ₓ'. -/
 /-- `tsum_supr_decode₂` specialized to the complete lattice of sets. -/
 theorem tsum_unionᵢ_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
     (∑' i, m (⋃ b ∈ decode₂ γ i, s b)) = ∑' b, m (s b) :=
@@ -757,6 +1275,12 @@ section Countable
 
 variable [Countable γ]
 
+/- warning: rel_supr_tsum -> rel_supᵢ_tsum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : Countable.{succ u3} γ] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (supᵢ.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u1, u3} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_4 : Countable.{succ u1} γ] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : γ -> β), R (m (supᵢ.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) γ (fun (b : γ) => s b))) (tsum.{u2, u1} α _inst_1 _inst_2 γ (fun (b : γ) => m (s b)))))
+Case conversion may be inaccurate. Consider using '#align rel_supr_tsum rel_supᵢ_tsumₓ'. -/
 /-- If a function is countably sub-additive then it is sub-additive on countable types -/
 theorem rel_supᵢ_tsum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : γ → β) :
@@ -767,6 +1291,12 @@ theorem rel_supᵢ_tsum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R
   exact m_supr _
 #align rel_supr_tsum rel_supᵢ_tsum
 
+/- warning: rel_supr_sum -> rel_supᵢ_sum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {δ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u3} δ), R (m (supᵢ.{u2, succ u3} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) δ (fun (d : δ) => supᵢ.{u2, 0} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) (Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) (fun (H : Membership.Mem.{u3, u3} δ (Finset.{u3} δ) (Finset.hasMem.{u3} δ) d t) => s d)))) (Finset.sum.{u1, u3} α δ _inst_1 t (fun (d : δ) => m (s d)))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} {δ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] [_inst_5 : CompleteLattice.{u3} β] (m : β -> α), (Eq.{succ u2} α (m (Bot.bot.{u3} β (CompleteLattice.toBot.{u3} β _inst_5))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u3, 1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u2, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s : δ -> β) (t : Finset.{u1} δ), R (m (supᵢ.{u3, succ u1} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) δ (fun (d : δ) => supᵢ.{u3, 0} β (ConditionallyCompleteLattice.toSupSet.{u3} β (CompleteLattice.toConditionallyCompleteLattice.{u3} β _inst_5)) (Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) (fun (H : Membership.mem.{u1, u1} δ (Finset.{u1} δ) (Finset.instMembershipFinset.{u1} δ) d t) => s d)))) (Finset.sum.{u2, u1} α δ _inst_1 t (fun (d : δ) => m (s d)))))
+Case conversion may be inaccurate. Consider using '#align rel_supr_sum rel_supᵢ_sumₓ'. -/
 /-- If a function is countably sub-additive then it is sub-additive on finite sets -/
 theorem rel_supᵢ_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : δ → β) (t : Finset δ) :
@@ -776,6 +1306,12 @@ theorem rel_supᵢ_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R
   exact rel_supᵢ_tsum m m0 R m_supr _
 #align rel_supr_sum rel_supᵢ_sum
 
+/- warning: rel_sup_add -> rel_sup_add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toHasBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toHasSup.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toHasSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_5 : CompleteLattice.{u2} β] (m : β -> α), (Eq.{succ u1} α (m (Bot.bot.{u2} β (CompleteLattice.toBot.{u2} β _inst_5))) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (AddMonoid.toZero.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1))))) -> (forall (R : α -> α -> Prop), (forall (s : Nat -> β), R (m (supᵢ.{u2, 1} β (ConditionallyCompleteLattice.toSupSet.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)) Nat (fun (i : Nat) => s i))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (i : Nat) => m (s i)))) -> (forall (s₁ : β) (s₂ : β), R (m (Sup.sup.{u2} β (SemilatticeSup.toSup.{u2} β (Lattice.toSemilatticeSup.{u2} β (ConditionallyCompleteLattice.toLattice.{u2} β (CompleteLattice.toConditionallyCompleteLattice.{u2} β _inst_5)))) s₁ s₂)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (m s₁) (m s₂))))
+Case conversion may be inaccurate. Consider using '#align rel_sup_add rel_sup_addₓ'. -/
 /-- If a function is countably sub-additive then it is binary sub-additive -/
 theorem rel_sup_add [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
     (m_supr : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s₁ s₂ : β) :
@@ -790,22 +1326,46 @@ end Countable
 
 variable [ContinuousAdd α]
 
+/- warning: tsum_add_tsum_compl -> tsum_add_tsum_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))) x)))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (fun (x : Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) x)))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align tsum_add_tsum_compl tsum_add_tsum_complₓ'. -/
 theorem tsum_add_tsum_compl {s : Set β} (hs : Summable (f ∘ coe : s → α))
     (hsc : Summable (f ∘ coe : sᶜ → α)) : ((∑' x : s, f x) + ∑' x : sᶜ, f x) = ∑' x, f x :=
   (hs.HasSum.add_compl hsc.HasSum).tsum_eq.symm
 #align tsum_add_tsum_compl tsum_add_tsum_compl
 
+/- warning: tsum_union_disjoint -> tsum_union_disjoint is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β))) s t) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t)))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.hasUnion.{u2} β) s t)))))) x))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t))))) x)))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {s : Set.{u2} β} {t : Set.{u2} β}, (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) s t) -> (Summable.{u1, u2} α (Set.Elem.{u2} β s) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Summable.{u1, u2} α (Set.Elem.{u2} β t) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β t) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t)))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) (fun (x : Set.Elem.{u2} β (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Union.union.{u2} (Set.{u2} β) (Set.instUnionSet.{u2} β) s t)) x))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β s) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β t) (fun (x : Set.Elem.{u2} β t) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x t) x)))))
+Case conversion may be inaccurate. Consider using '#align tsum_union_disjoint tsum_union_disjointₓ'. -/
 theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f ∘ coe : s → α))
     (ht : Summable (f ∘ coe : t → α)) : (∑' x : s ∪ t, f x) = (∑' x : s, f x) + ∑' x : t, f x :=
   (hs.HasSum.add_disjoint hd ht.HasSum).tsum_eq
 #align tsum_union_disjoint tsum_union_disjoint
 
+/- warning: tsum_finset_bUnion_disjoint -> tsum_finset_bUnion_disjoint is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Finset.{u3} ι) (Set.{u3} ι) (HasLiftT.mk.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (CoeTCₓ.coe.{succ u3, succ u3} (Finset.{u3} ι) (Set.{u3} ι) (Finset.Set.hasCoeT.{u3} ι))) s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.completeBooleanAlgebra.{u2} β)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u2} (Set.{u2} β) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)))) t)) -> (forall (i : ι), (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) -> (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) (fun (H : Membership.Mem.{u3, u3} ι (Finset.{u3} ι) (Finset.hasMem.{u3} ι) i s) => t i)))))))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (t i)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (t i)))))) x)))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> α} [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {ι : Type.{u3}} {s : Finset.{u3} ι} {t : ι -> (Set.{u2} β)}, (Set.Pairwise.{u3} ι (Finset.toSet.{u3} ι s) (Function.onFun.{succ u3, succ u2, 1} ι (Set.{u2} β) Prop (Disjoint.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))) (BoundedOrder.toOrderBot.{u2} (Set.{u2} β) (Preorder.toLE.{u2} (Set.{u2} β) (PartialOrder.toPreorder.{u2} (Set.{u2} β) (CompleteSemilatticeInf.toPartialOrder.{u2} (Set.{u2} β) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β)))))))) (CompleteLattice.toBoundedOrder.{u2} (Set.{u2} β) (Order.Coframe.toCompleteLattice.{u2} (Set.{u2} β) (CompleteDistribLattice.toCoframe.{u2} (Set.{u2} β) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u2} (Set.{u2} β) (Set.instCompleteBooleanAlgebraSet.{u2} β))))))) t)) -> (forall (i : ι), (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) -> (Summable.{u1, u2} α (Set.Elem.{u2} β (t i)) _inst_1 _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (t i)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)))))) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) (fun (x : Set.Elem.{u2} β (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (H : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (Set.unionᵢ.{u2, succ u3} β ι (fun (i : ι) => Set.unionᵢ.{u2, 0} β (Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) (fun (h._@.Mathlib.Topology.Algebra.InfiniteSum.Basic._hyg.11296 : Membership.mem.{u3, u3} ι (Finset.{u3} ι) (Finset.instMembershipFinset.{u3} ι) i s) => t i)))) x))) (Finset.sum.{u1, u3} α ι _inst_1 s (fun (i : ι) => tsum.{u1, u2} α _inst_1 _inst_2 (Set.Elem.{u2} β (t i)) (fun (x : Set.Elem.{u2} β (t i)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (t i)) x)))))
+Case conversion may be inaccurate. Consider using '#align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjointₓ'. -/
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ coe : t i → α)) :
     (∑' x : ⋃ i ∈ s, t i, f x) = ∑ i in s, ∑' x : t i, f x :=
   (hasSum_sum_disjoint _ hd fun i hi => (hf i hi).HasSum).tsum_eq
 #align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjoint
 
+/- warning: tsum_even_add_odd -> tsum_even_add_odd is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) k) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f k)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] [_inst_4 : ContinuousAdd.{u1} α _inst_2 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))] {f : Nat -> α}, (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k))) -> (Summable.{u1, 0} α Nat _inst_1 _inst_2 (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) k) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (tsum.{u1, 0} α _inst_1 _inst_2 Nat (fun (k : Nat) => f k)))
+Case conversion may be inaccurate. Consider using '#align tsum_even_add_odd tsum_even_add_oddₓ'. -/
 theorem tsum_even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) :
     ((∑' k, f (2 * k)) + ∑' k, f (2 * k + 1)) = ∑' k, f k :=
@@ -820,42 +1380,96 @@ variable [AddCommGroup α] [TopologicalSpace α] [TopologicalAddGroup α]
 
 variable {f g : β → α} {a a₁ a₂ : α}
 
+/- warning: has_sum.neg -> HasSum.neg is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b)) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) a))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f a) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b)) (Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) a))
+Case conversion may be inaccurate. Consider using '#align has_sum.neg HasSum.negₓ'. -/
 -- `by simpa using` speeds up elaboration. Why?
 theorem HasSum.neg (h : HasSum f a) : HasSum (fun b => -f b) (-a) := by
   simpa only using h.map (-AddMonoidHom.id α) continuous_neg
 #align has_sum.neg HasSum.neg
 
+/- warning: summable.neg -> Summable.neg is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b)))
+Case conversion may be inaccurate. Consider using '#align summable.neg Summable.negₓ'. -/
 theorem Summable.neg (hf : Summable f) : Summable fun b => -f b :=
   hf.HasSum.neg.Summable
 #align summable.neg Summable.neg
 
+/- warning: summable.of_neg -> Summable.of_neg is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b))) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b))) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable.of_neg Summable.of_negₓ'. -/
 theorem Summable.of_neg (hf : Summable fun b => -f b) : Summable f := by
   simpa only [neg_neg] using hf.neg
 #align summable.of_neg Summable.of_neg
 
+/- warning: summable_neg_iff -> summable_neg_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b))) (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable_neg_iff summable_neg_iffₓ'. -/
 theorem summable_neg_iff : (Summable fun b => -f b) ↔ Summable f :=
   ⟨Summable.of_neg, Summable.neg⟩
 #align summable_neg_iff summable_neg_iff
 
+/- warning: has_sum.sub -> HasSum.sub is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α} {a₁ : α} {a₂ : α}, (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₁) -> (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g a₂) -> (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a₁ a₂))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α} {a₁ : α} {a₂ : α}, (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f a₁) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g a₂) -> (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b)) (HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) a₁ a₂))
+Case conversion may be inaccurate. Consider using '#align has_sum.sub HasSum.subₓ'. -/
 theorem HasSum.sub (hf : HasSum f a₁) (hg : HasSum g a₂) : HasSum (fun b => f b - g b) (a₁ - a₂) :=
   by
   simp only [sub_eq_add_neg]
   exact hf.add hg.neg
 #align has_sum.sub HasSum.sub
 
+/- warning: summable.sub -> Summable.sub is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b)))
+Case conversion may be inaccurate. Consider using '#align summable.sub Summable.subₓ'. -/
 theorem Summable.sub (hf : Summable f) (hg : Summable g) : Summable fun b => f b - g b :=
   (hf.HasSum.sub hg.HasSum).Summable
 #align summable.sub Summable.sub
 
+/- warning: summable.trans_sub -> Summable.trans_sub is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b))) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b))) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable.trans_sub Summable.trans_subₓ'. -/
 theorem Summable.trans_sub (hg : Summable g) (hfg : Summable fun b => f b - g b) : Summable f := by
   simpa only [sub_add_cancel] using hfg.add hg
 #align summable.trans_sub Summable.trans_sub
 
+/- warning: summable_iff_of_summable_sub -> summable_iff_of_summable_sub is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b))) -> (Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b))) -> (Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g))
+Case conversion may be inaccurate. Consider using '#align summable_iff_of_summable_sub summable_iff_of_summable_subₓ'. -/
 theorem summable_iff_of_summable_sub (hfg : Summable fun b => f b - g b) :
     Summable f ↔ Summable g :=
   ⟨fun hf => hf.trans_sub <| by simpa only [neg_sub] using hfg.neg, fun hg => hg.trans_sub hfg⟩
 #align summable_iff_of_summable_sub summable_iff_of_summable_sub
 
+/- warning: has_sum.update -> HasSum.update is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α}, (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₁) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u2} β] (a : α), HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (f b)) a₁))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {a₁ : α}, (HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f a₁) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u1} β] (a : α), HasSum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a) (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))))) (HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) a (f b)) a₁))
+Case conversion may be inaccurate. Consider using '#align has_sum.update HasSum.updateₓ'. -/
 theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
     HasSum (update f b a) (a - f b + a₁) :=
   by
@@ -867,11 +1481,23 @@ theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
   simp only [h, update_noteq, if_false, Ne.def, zero_add, not_false_iff]
 #align has_sum.update HasSum.update
 
+/- warning: summable.update -> Summable.update is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u2} β] (a : α), Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.update.{succ u2, succ u1} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (forall (b : β) [_inst_4 : DecidableEq.{succ u1} β] (a : α), Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 (Function.update.{succ u1, succ u2} β (fun (ᾰ : β) => α) (fun (a : β) (b : β) => _inst_4 a b) f b a))
+Case conversion may be inaccurate. Consider using '#align summable.update Summable.updateₓ'. -/
 theorem Summable.update (hf : Summable f) (b : β) [DecidableEq β] (a : α) :
     Summable (update f b a) :=
   (hf.HasSum.update b a).Summable
 #align summable.update Summable.update
 
+/- warning: has_sum.has_sum_compl_iff -> HasSum.hasSum_compl_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a₁) -> (Iff (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) a₂) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a₁ a₂)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a₁) -> (Iff (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) a₂) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a₁ a₂)))
+Case conversion may be inaccurate. Consider using '#align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iffₓ'. -/
 theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α) a₁) :
     HasSum (f ∘ coe : sᶜ → α) a₂ ↔ HasSum f (a₁ + a₂) :=
   by
@@ -881,37 +1507,75 @@ theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ coe : s → α)
   simpa only [add_sub_cancel'] using h.sub hf
 #align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iff
 
+/- warning: has_sum.has_sum_iff_compl -> HasSum.hasSum_iff_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))) a₁) -> (Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₂) (HasSum.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a₂ a₁)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a₁ : α} {a₂ : α} {s : Set.{u2} β}, (HasSum.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s))) a₁) -> (Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a₂) (HasSum.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a₂ a₁)))
+Case conversion may be inaccurate. Consider using '#align has_sum.has_sum_iff_compl HasSum.hasSum_iff_complₓ'. -/
 theorem HasSum.hasSum_iff_compl {s : Set β} (hf : HasSum (f ∘ coe : s → α) a₁) :
     HasSum f a₂ ↔ HasSum (f ∘ coe : sᶜ → α) (a₂ - a₁) :=
   Iff.symm <| hf.hasSum_compl_iff.trans <| by rw [add_sub_cancel'_right]
 #align has_sum.has_sum_iff_compl HasSum.hasSum_iff_compl
 
+/- warning: summable.summable_compl_iff -> Summable.summable_compl_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s)))))))) -> (Iff (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Summable.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β s) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s)))) -> (Iff (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
+Case conversion may be inaccurate. Consider using '#align summable.summable_compl_iff Summable.summable_compl_iffₓ'. -/
 theorem Summable.summable_compl_iff {s : Set β} (hf : Summable (f ∘ coe : s → α)) :
     Summable (f ∘ coe : sᶜ → α) ↔ Summable f :=
   ⟨fun ⟨a, ha⟩ => (hf.HasSum.hasSum_compl_iff.1 ha).Summable, fun ⟨a, ha⟩ =>
     (hf.HasSum.hasSum_iff_compl.1 ha).Summable⟩
 #align summable.summable_compl_iff Summable.summable_compl_iff
 
+/- warning: finset.has_sum_compl_iff -> Finset.hasSum_compl_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) x)) a) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s)) x)) a) (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
+Case conversion may be inaccurate. Consider using '#align finset.has_sum_compl_iff Finset.hasSum_compl_iffₓ'. -/
 protected theorem Finset.hasSum_compl_iff (s : Finset β) :
     HasSum (fun x : { x // x ∉ s } => f x) a ↔ HasSum f (a + ∑ i in s, f i) :=
   (s.HasSum f).hasSum_compl_iff.trans <| by rw [add_comm]
 #align finset.has_sum_compl_iff Finset.hasSum_compl_iff
 
+/- warning: finset.has_sum_iff_compl -> Finset.hasSum_iff_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) x)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} (s : Finset.{u2} β), Iff (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) (HasSum.{u1, u2} α (Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s)) x)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (i : β) => f i))))
+Case conversion may be inaccurate. Consider using '#align finset.has_sum_iff_compl Finset.hasSum_iff_complₓ'. -/
 protected theorem Finset.hasSum_iff_compl (s : Finset β) :
     HasSum f a ↔ HasSum (fun x : { x // x ∉ s } => f x) (a - ∑ i in s, f i) :=
   (s.HasSum f).hasSum_iff_compl
 #align finset.has_sum_iff_compl Finset.hasSum_iff_compl
 
+#print Finset.summable_compl_iff /-
 protected theorem Finset.summable_compl_iff (s : Finset β) :
     (Summable fun x : { x // x ∉ s } => f x) ↔ Summable f :=
   (s.Summable f).summable_compl_iff
 #align finset.summable_compl_iff Finset.summable_compl_iff
+-/
 
+/- warning: set.finite.summable_compl_iff -> Set.Finite.summable_compl_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Set.Finite.{u2} β s) -> (Iff (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s))))))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {s : Set.{u2} β}, (Set.Finite.{u2} β s) -> (Iff (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Function.comp.{succ u2, succ u2, succ u1} (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) β α f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s))))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f))
+Case conversion may be inaccurate. Consider using '#align set.finite.summable_compl_iff Set.Finite.summable_compl_iffₓ'. -/
 theorem Set.Finite.summable_compl_iff {s : Set β} (hs : s.Finite) :
     Summable (f ∘ coe : sᶜ → α) ↔ Summable f :=
   (hs.Summable f).summable_compl_iff
 #align set.finite.summable_compl_iff Set.Finite.summable_compl_iff
 
+/- warning: has_sum_ite_sub_has_sum -> hasSum_ite_sub_hasSum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} [_inst_4 : DecidableEq.{succ u2} β], (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (forall (b : β), HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_4 n b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))) (f n)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (f b)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {a : α} [_inst_4 : DecidableEq.{succ u2} β], (HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (forall (b : β), HasSum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_4 n b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))) (f n)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (f b)))
+Case conversion may be inaccurate. Consider using '#align has_sum_ite_sub_has_sum hasSum_ite_sub_hasSumₓ'. -/
 theorem hasSum_ite_sub_hasSum [DecidableEq β] (hf : HasSum f a) (b : β) :
     HasSum (fun n => ite (n = b) 0 (f n)) (a - f b) :=
   by
@@ -925,6 +1589,12 @@ section tsum
 
 variable [T2Space α]
 
+/- warning: tsum_neg -> tsum_neg is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2], Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (f b))) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => f b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u2} α _inst_2], Eq.{succ u2} α (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (f b))) (Neg.neg.{u2} α (NegZeroClass.toNeg.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => f b)))
+Case conversion may be inaccurate. Consider using '#align tsum_neg tsum_negₓ'. -/
 theorem tsum_neg : (∑' b, -f b) = -∑' b, f b :=
   by
   by_cases hf : Summable f
@@ -932,16 +1602,34 @@ theorem tsum_neg : (∑' b, -f b) = -∑' b, f b :=
   · simp [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.of_neg hf)]
 #align tsum_neg tsum_neg
 
+/- warning: tsum_sub -> tsum_sub is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : T2Space.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g) -> (Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (f b) (g b))) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => f b)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (b : β) => g b))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : TopologicalAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : T2Space.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 f) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 g) -> (Eq.{succ u2} α (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (f b) (g b))) (HSub.hSub.{u2, u2, u2} α α α (instHSub.{u2} α (SubNegMonoid.toSub.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => f b)) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) _inst_2 β (fun (b : β) => g b))))
+Case conversion may be inaccurate. Consider using '#align tsum_sub tsum_subₓ'. -/
 theorem tsum_sub (hf : Summable f) (hg : Summable g) :
     (∑' b, f b - g b) = (∑' b, f b) - ∑' b, g b :=
   (hf.HasSum.sub hg.HasSum).tsum_eq
 #align tsum_sub tsum_sub
 
+/- warning: sum_add_tsum_compl -> sum_add_tsum_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] {s : Finset.{u2} β}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (x : β) => f x)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Finset.{u2} β) (Set.{u2} β) (HasLiftT.mk.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (CoeTCₓ.coe.{succ u2, succ u2} (Finset.{u2} β) (Set.{u2} β) (Finset.Set.hasCoeT.{u2} β))) s))))))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (x : β) => f x)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] {s : Finset.{u2} β}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (x : β) => f x)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) (Finset.toSet.{u2} β s))) (fun (x : Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) (Finset.toSet.{u2} β s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) (Finset.toSet.{u2} β s))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align sum_add_tsum_compl sum_add_tsum_complₓ'. -/
 theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
     ((∑ x in s, f x) + ∑' x : (↑s : Set β)ᶜ, f x) = ∑' x, f x :=
   ((s.HasSum f).add_compl (s.summable_compl_iff.2 hf).HasSum).tsum_eq.symm
 #align sum_add_tsum_compl sum_add_tsum_compl
 
+/- warning: tsum_eq_add_tsum_ite -> tsum_eq_add_tsum_ite is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] [_inst_5 : DecidableEq.{succ u2} β], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (forall (b : β), Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => f n)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f b) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_5 n b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))) (f n)))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : T2Space.{u1} α _inst_2] [_inst_5 : DecidableEq.{succ u2} β], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (forall (b : β), Eq.{succ u1} α (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => f n)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f b) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 β (fun (n : β) => ite.{succ u1} α (Eq.{succ u2} β n b) (_inst_5 n b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))) (f n)))))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_add_tsum_ite tsum_eq_add_tsum_iteₓ'. -/
 /-- Let `f : β → α` be a sequence with summable series and let `b ∈ β` be an index.
 Lemma `tsum_eq_add_tsum_ite` writes `Σ f n` as the sum of `f b` plus the series of the
 remaining terms. -/
@@ -964,6 +1652,12 @@ We show the formula `(∑ i in range k, f i) + (∑' i, f (i + k)) = (∑' i, f
 
 section Nat
 
+/- warning: has_sum_nat_add_iff -> hasSum_nat_add_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n k)) a) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n k)) a) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i))))
+Case conversion may be inaccurate. Consider using '#align has_sum_nat_add_iff hasSum_nat_add_iffₓ'. -/
 theorem hasSum_nat_add_iff {f : ℕ → α} (k : ℕ) {a : α} :
     HasSum (fun n => f (n + k)) a ↔ HasSum f (a + ∑ i in range k, f i) :=
   by
@@ -972,28 +1666,54 @@ theorem hasSum_nat_add_iff {f : ℕ → α} (k : ℕ) {a : α} :
   rfl
 #align has_sum_nat_add_iff hasSum_nat_add_iff
 
+#print summable_nat_add_iff /-
 theorem summable_nat_add_iff {f : ℕ → α} (k : ℕ) : (Summable fun n => f (n + k)) ↔ Summable f :=
   Iff.symm <|
     (Equiv.addRight (∑ i in range k, f i)).Surjective.summable_iff_of_hasSum_iff fun a =>
       (hasSum_nat_add_iff k).symm
 #align summable_nat_add_iff summable_nat_add_iff
+-/
 
+/- warning: has_sum_nat_add_iff' -> hasSum_nat_add_iff' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n k)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)))) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : Nat -> α} (k : Nat) {a : α}, Iff (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n k)) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))) a (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)))) (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a)
+Case conversion may be inaccurate. Consider using '#align has_sum_nat_add_iff' hasSum_nat_add_iff'ₓ'. -/
 theorem hasSum_nat_add_iff' {f : ℕ → α} (k : ℕ) {a : α} :
     HasSum (fun n => f (n + k)) (a - ∑ i in range k, f i) ↔ HasSum f a := by
   simp [hasSum_nat_add_iff]
 #align has_sum_nat_add_iff' hasSum_nat_add_iff'
 
+/- warning: sum_add_tsum_nat_add -> sum_add_tsum_nat_add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α} (k : Nat), (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) i k)))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f i)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α} (k : Nat), (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (Finset.range k) (fun (i : Nat) => f i)) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) i k)))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (i : Nat) => f i)))
+Case conversion may be inaccurate. Consider using '#align sum_add_tsum_nat_add sum_add_tsum_nat_addₓ'. -/
 theorem sum_add_tsum_nat_add [T2Space α] {f : ℕ → α} (k : ℕ) (h : Summable f) :
     ((∑ i in range k, f i) + ∑' i, f (i + k)) = ∑' i, f i := by
   simpa only [add_comm] using
     ((hasSum_nat_add_iff k).1 ((summable_nat_add_iff k).2 h).HasSum).unique h.has_sum
 #align sum_add_tsum_nat_add sum_add_tsum_nat_add
 
+/- warning: tsum_eq_zero_add -> tsum_eq_zero_add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α}, (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f b)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) b (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] {f : Nat -> α}, (Summable.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f) -> (Eq.{succ u1} α (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f b)) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (f (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (b : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) b (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))))
+Case conversion may be inaccurate. Consider using '#align tsum_eq_zero_add tsum_eq_zero_addₓ'. -/
 theorem tsum_eq_zero_add [T2Space α] {f : ℕ → α} (hf : Summable f) :
     (∑' b, f b) = f 0 + ∑' b, f (b + 1) := by
   simpa only [sum_range_one] using (sum_add_tsum_nat_add 1 hf).symm
 #align tsum_eq_zero_add tsum_eq_zero_add
 
+/- warning: tendsto_sum_nat_add -> tendsto_sum_nat_add is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] (f : Nat -> α), Filter.Tendsto.{0, u1} Nat α (fun (i : Nat) => tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) k i))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} α _inst_2 (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : T2Space.{u1} α _inst_2] (f : Nat -> α), Filter.Tendsto.{0, u1} Nat α (fun (i : Nat) => tsum.{u1, 0} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 Nat (fun (k : Nat) => f (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) k i))) (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} α _inst_2 (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align tendsto_sum_nat_add tendsto_sum_nat_addₓ'. -/
 /-- For `f : ℕ → α`, then `∑' k, f (k + i)` tends to zero. This does not require a summability
 assumption on `f`, as otherwise all sums are zero. -/
 theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
@@ -1013,6 +1733,12 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     · infer_instance
 #align tendsto_sum_nat_add tendsto_sum_nat_add
 
+/- warning: has_sum.int_rec -> HasSum.int_rec is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Nat -> α} {g : Nat -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Int.rec.{succ u1} (fun (_x : Int) => α) f g) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Nat -> α} {g : Nat -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 g b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (Int.rec.{succ u1} (fun (_x : Int) => α) f g) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.int_rec HasSum.int_recₓ'. -/
 /-- If `f₀, f₁, f₂, ...` and `g₀, g₁, g₂, ...` are both convergent then so is the `ℤ`-indexed
 sequence: `..., g₂, g₁, g₀, f₀, f₁, f₂, ...`. -/
 theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSum g b) :
@@ -1032,6 +1758,12 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
   exact HasSum.add_isCompl this (h₁.has_sum_range_iff.mpr hf) (h₂.has_sum_range_iff.mpr hg)
 #align has_sum.int_rec HasSum.int_rec
 
+/- warning: has_sum.nonneg_add_neg -> HasSum.nonneg_add_neg is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Nat.cast.{0} Int Int.instNatCastInt n)) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int Int.instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.nonneg_add_neg HasSum.nonneg_add_negₓ'. -/
 theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n : ℕ => f n) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + b) :=
   by
@@ -1040,6 +1772,12 @@ theorem HasSum.nonneg_add_neg {b : α} {f : ℤ → α} (hnonneg : HasSum (fun n
   ext (i | j) <;> rfl
 #align has_sum.nonneg_add_neg HasSum.nonneg_add_neg
 
+/- warning: has_sum.pos_add_zero_add_neg -> HasSum.pos_add_zero_add_neg is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.hasAdd) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n) (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne))))) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (f (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))) b))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {a : α} {b : α} {f : Int -> α}, (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (HAdd.hAdd.{0, 0, 0} Int Int Int (instHAdd.{0} Int Int.instAddInt) (Nat.cast.{0} Int Int.instNatCastInt n) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) a) -> (HasSum.{u1, 0} α Nat (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 (fun (n : Nat) => f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int Int.instNatCastInt (Nat.succ n)))) b) -> (HasSum.{u1, 0} α Int (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) _inst_2 f (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))) b))
+Case conversion may be inaccurate. Consider using '#align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_negₓ'. -/
 theorem HasSum.pos_add_zero_add_neg {b : α} {f : ℤ → α} (hpos : HasSum (fun n : ℕ => f (n + 1)) a)
     (hneg : HasSum (fun n : ℕ => f (-n.succ)) b) : HasSum f (a + f 0 + b) :=
   haveI : ∀ g : ℕ → α, HasSum (fun k => g (k + 1)) a → HasSum g (a + g 0) :=
@@ -1049,11 +1787,19 @@ theorem HasSum.pos_add_zero_add_neg {b : α} {f : ℤ → α} (hpos : HasSum (fu
   (this (fun n => f n) hpos).nonneg_add_neg hneg
 #align has_sum.pos_add_zero_add_neg HasSum.pos_add_zero_add_neg
 
+#print summable_int_of_summable_nat /-
 theorem summable_int_of_summable_nat {f : ℤ → α} (hp : Summable fun n : ℕ => f n)
     (hn : Summable fun n : ℕ => f (-n)) : Summable f :=
   (HasSum.nonneg_add_neg hp.HasSum <| Summable.hasSum <| (summable_nat_add_iff 1).mpr hn).Summable
 #align summable_int_of_summable_nat summable_int_of_summable_nat
+-/
 
+/- warning: has_sum.sum_nat_of_sum_int -> HasSum.sum_nat_of_sum_int is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] [_inst_6 : ContinuousAdd.{u1} α _inst_5 (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))] {a : α} {f : Int -> α}, (HasSum.{u1, 0} α Int _inst_4 _inst_5 f a) -> (HasSum.{u1, 0} α Nat _inst_4 _inst_5 (fun (n : Nat) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) (f ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)) (f (Neg.neg.{0} Int Int.hasNeg ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) n)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) a (f (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} α] [_inst_5 : TopologicalSpace.{u1} α] [_inst_6 : ContinuousAdd.{u1} α _inst_5 (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))] {a : α} {f : Int -> α}, (HasSum.{u1, 0} α Int _inst_4 _inst_5 f a) -> (HasSum.{u1, 0} α Nat _inst_4 _inst_5 (fun (n : Nat) => HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) (f (Nat.cast.{0} Int Int.instNatCastInt n)) (f (Neg.neg.{0} Int Int.instNegInt (Nat.cast.{0} Int Int.instNatCastInt n)))) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_4)))) a (f (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)))))
+Case conversion may be inaccurate. Consider using '#align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_intₓ'. -/
 theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalSpace α]
     [ContinuousAdd α] {a : α} {f : ℤ → α} (hf : HasSum f a) :
     HasSum (fun n : ℕ => f n + f (-n)) (a + f 0) :=
@@ -1112,6 +1858,12 @@ section UniformGroup
 
 variable [AddCommGroup α] [UniformSpace α]
 
+/- warning: summable_iff_cauchy_seq_finset -> summable_iff_cauchySeq_finset is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : CompleteSpace.{u1} α _inst_2] {f : β -> α}, Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) (CauchySeq.{u1, u2} α (Finset.{u2} β) _inst_2 (Lattice.toSemilatticeSup.{u2} (Finset.{u2} β) (Finset.lattice.{u2} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)))) (fun (s : Finset.{u2} β) => Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (b : β) => f b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : CompleteSpace.{u2} α _inst_2] {f : β -> α}, Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) (CauchySeq.{u2, u1} α (Finset.{u1} β) _inst_2 (Lattice.toSemilatticeSup.{u1} (Finset.{u1} β) (Finset.instLatticeFinset.{u1} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)))) (fun (s : Finset.{u1} β) => Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) s (fun (b : β) => f b)))
+Case conversion may be inaccurate. Consider using '#align summable_iff_cauchy_seq_finset summable_iff_cauchySeq_finsetₓ'. -/
 /-- The **Cauchy criterion** for infinite sums, also known as the **Cauchy convergence test** -/
 theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
     Summable f ↔ CauchySeq fun s : Finset β => ∑ b in s, f b :=
@@ -1120,6 +1872,12 @@ theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
 
 variable [UniformAddGroup α] {f g : β → α} {a a₁ a₂ : α}
 
+/- warning: cauchy_seq_finset_iff_vanishing -> cauchySeq_finset_iff_vanishing is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α}, Iff (CauchySeq.{u1, u2} α (Finset.{u2} β) _inst_2 (Lattice.toSemilatticeSup.{u2} (Finset.{u2} β) (Finset.lattice.{u2} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u2} β a b)))) (fun (s : Finset.{u2} β) => Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (b : β) => f b))) (forall (e : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) e (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))) -> (Exists.{succ u2} (Finset.{u2} β) (fun (s : Finset.{u2} β) => forall (t : Finset.{u2} β), (Disjoint.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β) (Finset.orderBot.{u2} β) t s) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) t (fun (b : β) => f b)) e))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α}, Iff (CauchySeq.{u2, u1} α (Finset.{u1} β) _inst_2 (Lattice.toSemilatticeSup.{u1} (Finset.{u1} β) (Finset.instLatticeFinset.{u1} β (fun (a : β) (b : β) => Classical.propDecidable (Eq.{succ u1} β a b)))) (fun (s : Finset.{u1} β) => Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) s (fun (b : β) => f b))) (forall (e : Set.{u2} α), (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) e (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))))))) -> (Exists.{succ u1} (Finset.{u1} β) (fun (s : Finset.{u1} β) => forall (t : Finset.{u1} β), (Disjoint.{u1} (Finset.{u1} β) (Finset.partialOrder.{u1} β) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} β) t s) -> (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) (Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) t (fun (b : β) => f b)) e))))
+Case conversion may be inaccurate. Consider using '#align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishingₓ'. -/
 theorem cauchySeq_finset_iff_vanishing :
     (CauchySeq fun s : Finset β => ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e :=
@@ -1147,6 +1905,12 @@ theorem cauchySeq_finset_iff_vanishing :
 
 attribute [local instance] TopologicalAddGroup.t3Space
 
+/- warning: tendsto_tsum_compl_at_top_zero -> tendsto_tsum_compl_atTop_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] (f : β -> α), Filter.Tendsto.{u2, u1} (Finset.{u2} β) α (fun (s : Finset.{u2} β) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (fun (b : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) b))) (Filter.atTop.{u2} (Finset.{u2} β) (PartialOrder.toPreorder.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β))) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] (f : β -> α), Filter.Tendsto.{u2, u1} (Finset.{u2} β) α (fun (s : Finset.{u2} β) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) (fun (b : Subtype.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s))) => f (Subtype.val.{succ u2} β (fun (x : β) => Not (Membership.mem.{u2, u2} β (Finset.{u2} β) (Finset.instMembershipFinset.{u2} β) x s)) b))) (Filter.atTop.{u2} (Finset.{u2} β) (PartialOrder.toPreorder.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β))) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (NegZeroClass.toZero.{u1} α (SubNegZeroMonoid.toNegZeroClass.{u1} α (SubtractionMonoid.toSubNegZeroMonoid.{u1} α (SubtractionCommMonoid.toSubtractionMonoid.{u1} α (AddCommGroup.toDivisionAddCommMonoid.{u1} α _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align tendsto_tsum_compl_at_top_zero tendsto_tsum_compl_atTop_zeroₓ'. -/
 /-- 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 tendsto_tsum_compl_atTop_zero (f : β → α) :
@@ -1178,11 +1942,23 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
 
 variable [CompleteSpace α]
 
+/- warning: summable_iff_vanishing -> summable_iff_vanishing is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], Iff (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) (forall (e : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) e (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))))))) -> (Exists.{succ u2} (Finset.{u2} β) (fun (s : Finset.{u2} β) => forall (t : Finset.{u2} β), (Disjoint.{u2} (Finset.{u2} β) (Finset.partialOrder.{u2} β) (Finset.orderBot.{u2} β) t s) -> (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) t (fun (b : β) => f b)) e))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], Iff (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) (forall (e : Set.{u2} α), (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) e (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))))))) -> (Exists.{succ u1} (Finset.{u1} β) (fun (s : Finset.{u1} β) => forall (t : Finset.{u1} β), (Disjoint.{u1} (Finset.{u1} β) (Finset.partialOrder.{u1} β) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} β) t s) -> (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) (Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) t (fun (b : β) => f b)) e))))
+Case conversion may be inaccurate. Consider using '#align summable_iff_vanishing summable_iff_vanishingₓ'. -/
 theorem summable_iff_vanishing :
     Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
   rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
 #align summable_iff_vanishing summable_iff_vanishing
 
+/- warning: summable.summable_of_eq_zero_or_self -> Summable.summable_of_eq_zero_or_self is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (b : β), Or (Eq.{succ u1} α (g b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))))))))) (Eq.{succ u1} α (g b) (f b))) -> (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) g)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} {g : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (b : β), Or (Eq.{succ u2} α (g b) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1)))))))) (Eq.{succ u2} α (g b) (f b))) -> (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) g)
+Case conversion may be inaccurate. Consider using '#align summable.summable_of_eq_zero_or_self Summable.summable_of_eq_zero_or_selfₓ'. -/
 -- TODO: generalize to monoid with a uniform continuous subtraction operator: `(a + b) - b = a`
 theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b = 0 ∨ g b = f b) :
     Summable g :=
@@ -1203,10 +1979,22 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
       Eq ▸ hs _ <| Finset.disjoint_of_subset_left (Finset.filter_subset _ _) ht⟩
 #align summable.summable_of_eq_zero_or_self Summable.summable_of_eq_zero_or_self
 
+/- warning: summable.indicator -> Summable.indicator is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Set.{u2} β), Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Set.indicator.{u2, u1} β α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1))))) s f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Set.{u1} β), Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Set.indicator.{u1, u2} β α (NegZeroClass.toZero.{u2} α (SubNegZeroMonoid.toNegZeroClass.{u2} α (SubtractionMonoid.toSubNegZeroMonoid.{u2} α (SubtractionCommMonoid.toSubtractionMonoid.{u2} α (AddCommGroup.toDivisionAddCommMonoid.{u2} α _inst_1))))) s f))
+Case conversion may be inaccurate. Consider using '#align summable.indicator Summable.indicatorₓ'. -/
 protected theorem Summable.indicator (hf : Summable f) (s : Set β) : Summable (s.indicator f) :=
   hf.summable_of_eq_zero_or_self <| Set.indicator_eq_zero_or_self _ _
 #align summable.indicator Summable.indicator
 
+/- warning: summable.comp_injective -> Summable.comp_injective is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2] {i : γ -> β}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Function.Injective.{succ u3, succ u2} γ β i) -> (Summable.{u1, u3} α γ (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.comp.{succ u3, succ u2, succ u1} γ β α f i))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u3} α _inst_2] {i : γ -> β}, (Summable.{u3, u2} α β (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Function.Injective.{succ u1, succ u2} γ β i) -> (Summable.{u3, u1} α γ (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Function.comp.{succ u1, succ u2, succ u3} γ β α f i))
+Case conversion may be inaccurate. Consider using '#align summable.comp_injective Summable.comp_injectiveₓ'. -/
 theorem Summable.comp_injective {i : γ → β} (hf : Summable f) (hi : Injective i) :
     Summable (f ∘ i) :=
   by
@@ -1214,42 +2002,82 @@ theorem Summable.comp_injective {i : γ → β} (hf : Summable f) (hi : Injectiv
   exact fun x hx => Set.indicator_of_not_mem hx _
 #align summable.comp_injective Summable.comp_injective
 
+/- warning: summable.subtype -> Summable.subtype is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2], (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Set.{u2} β), Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.comp.{succ u2, succ u2, succ u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β α f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u2} α _inst_2], (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Set.{u1} β), Summable.{u2, u1} α (Set.Elem.{u1} β s) (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Function.comp.{succ u1, succ u1, succ u2} (Set.Elem.{u1} β s) β α f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s))))
+Case conversion may be inaccurate. Consider using '#align summable.subtype Summable.subtypeₓ'. -/
 theorem Summable.subtype (hf : Summable f) (s : Set β) : Summable (f ∘ coe : s → α) :=
   hf.comp_injective Subtype.coe_injective
 #align summable.subtype Summable.subtype
 
+/- warning: summable_subtype_and_compl -> summable_subtype_and_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2] {s : Set.{u2} β}, Iff (And (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (Summable.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))) x)))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f)
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] {f : β -> α} [_inst_4 : CompleteSpace.{u1} α _inst_2] {s : Set.{u2} β}, Iff (And (Summable.{u1, u2} α (Set.Elem.{u2} β s) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : Set.Elem.{u2} β s) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x s) x))) (Summable.{u1, u2} α (Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (x : Set.Elem.{u2} β (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) => f (Subtype.val.{succ u2} β (fun (x : β) => Membership.mem.{u2, u2} β (Set.{u2} β) (Set.instMembershipSet.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.instBooleanAlgebraSet.{u2} β)) s)) x)))) (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f)
+Case conversion may be inaccurate. Consider using '#align summable_subtype_and_compl summable_subtype_and_complₓ'. -/
 theorem summable_subtype_and_compl {s : Set β} :
     ((Summable fun x : s => f x) ∧ Summable fun x : sᶜ => f x) ↔ Summable f :=
   ⟨and_imp.2 Summable.add_compl, fun h => ⟨h.Subtype s, h.Subtype (sᶜ)⟩⟩
 #align summable_subtype_and_compl summable_subtype_and_compl
 
+#print Summable.sigma_factor /-
 theorem Summable.sigma_factor {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) (b : β) :
     Summable fun c => f ⟨b, c⟩ :=
   ha.comp_injective sigma_mk_injective
 #align summable.sigma_factor Summable.sigma_factor
+-/
 
+#print Summable.sigma /-
 theorem Summable.sigma {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     Summable fun b => ∑' c, f ⟨b, c⟩ :=
   ha.sigma' fun b => ha.sigma_factor b
 #align summable.sigma Summable.sigma
+-/
 
+/- warning: summable.prod_factor -> Summable.prod_factor is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (b : β), Summable.{u1, u3} α γ (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] {f : (Prod.{u3, u2} β γ) -> α}, (Summable.{u1, max u3 u2} α (Prod.{u3, u2} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (b : β), Summable.{u1, u2} α γ (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (fun (c : γ) => f (Prod.mk.{u3, u2} β γ b c)))
+Case conversion may be inaccurate. Consider using '#align summable.prod_factor Summable.prod_factorₓ'. -/
 theorem Summable.prod_factor {f : β × γ → α} (h : Summable f) (b : β) :
     Summable fun c => f (b, c) :=
   h.comp_injective fun c₁ c₂ h => (Prod.ext_iff.1 h).2
 #align summable.prod_factor Summable.prod_factor
 
+/- warning: tsum_sigma -> tsum_sigma is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T1Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {γ : β -> Type.{u3}} {f : (Sigma.{u2, u3} β (fun (b : β) => γ b)) -> α}, (Summable.{u1, max u2 u3} α (Sigma.{u2, u3} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Sigma.{u2, u3} β (fun (b : β) => γ b)) (fun (p : Sigma.{u2, u3} β (fun (b : β) => γ b)) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u2, u3} β (fun (b : β) => γ b) b c)))))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {γ : β -> Type.{u2}} {f : (Sigma.{u1, u2} β (fun (b : β) => γ b)) -> α}, (Summable.{u3, max u1 u2} α (Sigma.{u1, u2} β (fun (b : β) => γ b)) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u1 u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Sigma.{u1, u2} β (fun (b : β) => γ b)) (fun (p : Sigma.{u1, u2} β (fun (b : β) => γ b)) => f p)) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (γ b) (fun (c : γ b) => f (Sigma.mk.{u1, u2} β (fun (b : β) => γ b) b c)))))
+Case conversion may be inaccurate. Consider using '#align tsum_sigma tsum_sigmaₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_sigma [T1Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
 
+/- warning: tsum_prod -> tsum_prod is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T1Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : (Prod.{u2, u3} β γ) -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (Eq.{succ u1} α (tsum.{u1, max u2 u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Prod.{u2, u3} β γ) (fun (p : Prod.{u2, u3} β γ) => f p)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u3} β γ b c)))))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : (Prod.{u2, u1} β γ) -> α}, (Summable.{u3, max u2 u1} α (Prod.{u2, u1} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) f) -> (Eq.{succ u3} α (tsum.{u3, max u2 u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Prod.{u2, u1} β γ) (fun (p : Prod.{u2, u1} β γ) => f p)) (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f (Prod.mk.{u2, u1} β γ b c)))))
+Case conversion may be inaccurate. Consider using '#align tsum_prod tsum_prodₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_prod [T1Space α] {f : β × γ → α} (h : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_prod' h h.prod_factor
 #align tsum_prod tsum_prod
 
+/- warning: tsum_comm -> tsum_comm is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T1Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> γ -> α}, (Summable.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Function.uncurry.{u2, u3, u1} β γ α f)) -> (Eq.{succ u1} α (tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (b : β) => tsum.{u1, u3} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) γ (fun (c : γ) => f b c))))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : AddCommGroup.{u3} α] [_inst_2 : UniformSpace.{u3} α] [_inst_3 : UniformAddGroup.{u3} α _inst_2 (AddCommGroup.toAddGroup.{u3} α _inst_1)] [_inst_4 : CompleteSpace.{u3} α _inst_2] [_inst_5 : T1Space.{u3} α (UniformSpace.toTopologicalSpace.{u3} α _inst_2)] {f : β -> γ -> α}, (Summable.{u3, max u2 u1} α (Prod.{u1, u2} β γ) (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) (Function.uncurry.{u1, u2, u3} β γ α f)) -> (Eq.{succ u3} α (tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => f b c))) (tsum.{u3, u1} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) β (fun (b : β) => tsum.{u3, u2} α (AddCommGroup.toAddCommMonoid.{u3} α _inst_1) (UniformSpace.toTopologicalSpace.{u3} α _inst_2) γ (fun (c : γ) => f b c))))
+Case conversion may be inaccurate. Consider using '#align tsum_comm tsum_commₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (c b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b c) -/
 theorem tsum_comm [T1Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
@@ -1257,11 +2085,23 @@ theorem tsum_comm [T1Space α] {f : β → γ → α} (h : Summable (Function.un
   tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 #align tsum_comm tsum_comm
 
+/- warning: tsum_subtype_add_tsum_subtype_compl -> tsum_subtype_add_tsum_subtype_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T2Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Set.{u2} β), Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s))))) x))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) (fun (x : coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)) β (coeSubtype.{succ u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (HasCompl.compl.{u2} (Set.{u2} β) (BooleanAlgebra.toHasCompl.{u2} (Set.{u2} β) (Set.booleanAlgebra.{u2} β)) s)))))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] [_inst_4 : CompleteSpace.{u2} α _inst_2] [_inst_5 : T2Space.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Set.{u1} β), Eq.{succ u2} α (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Set.Elem.{u1} β s) (fun (x : Set.Elem.{u1} β s) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s) x))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Set.Elem.{u1} β (HasCompl.compl.{u1} (Set.{u1} β) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} β) (Set.instBooleanAlgebraSet.{u1} β)) s)) (fun (x : Set.Elem.{u1} β (HasCompl.compl.{u1} (Set.{u1} β) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} β) (Set.instBooleanAlgebraSet.{u1} β)) s)) => f (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (HasCompl.compl.{u1} (Set.{u1} β) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} β) (Set.instBooleanAlgebraSet.{u1} β)) s)) x)))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) β (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_complₓ'. -/
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
     ((∑' x : s, f x) + ∑' x : sᶜ, f x) = ∑' x, f x :=
   ((hf.Subtype s).HasSum.add_compl (hf.Subtype { x | x ∉ s }).HasSum).unique hf.HasSum
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
 
+/- warning: sum_add_tsum_subtype_compl -> sum_add_tsum_subtype_compl is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommGroup.{u1} α] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformAddGroup.{u1} α _inst_2 (AddCommGroup.toAddGroup.{u1} α _inst_1)] [_inst_4 : CompleteSpace.{u1} α _inst_2] [_inst_5 : T2Space.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2)] {f : β -> α}, (Summable.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) f) -> (forall (s : Finset.{u2} β), Eq.{succ u1} α (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_1)))))) (Finset.sum.{u1, u2} α β (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) s (fun (x : β) => f x)) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) (fun (x : Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) => f ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (HasLiftT.mk.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (CoeTCₓ.coe.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeBase.{succ u2, succ u2} (Subtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s))) β (coeSubtype.{succ u2} β (fun (x : β) => Not (Membership.Mem.{u2, u2} β (Finset.{u2} β) (Finset.hasMem.{u2} β) x s)))))) x)))) (tsum.{u1, u2} α (AddCommGroup.toAddCommMonoid.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommGroup.{u2} α] [_inst_2 : UniformSpace.{u2} α] [_inst_3 : UniformAddGroup.{u2} α _inst_2 (AddCommGroup.toAddGroup.{u2} α _inst_1)] [_inst_4 : CompleteSpace.{u2} α _inst_2] [_inst_5 : T2Space.{u2} α (UniformSpace.toTopologicalSpace.{u2} α _inst_2)] {f : β -> α}, (Summable.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) f) -> (forall (s : Finset.{u1} β), Eq.{succ u2} α (HAdd.hAdd.{u2, u2, u2} α α α (instHAdd.{u2} α (AddZeroClass.toAdd.{u2} α (AddMonoid.toAddZeroClass.{u2} α (SubNegMonoid.toAddMonoid.{u2} α (AddGroup.toSubNegMonoid.{u2} α (AddCommGroup.toAddGroup.{u2} α _inst_1)))))) (Finset.sum.{u2, u1} α β (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) s (fun (x : β) => f x)) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) (Subtype.{succ u1} β (fun (x : β) => Not (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) x s))) (fun (x : Subtype.{succ u1} β (fun (x : β) => Not (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) x s))) => f (Subtype.val.{succ u1} β (fun (x : β) => Not (Membership.mem.{u1, u1} β (Finset.{u1} β) (Finset.instMembershipFinset.{u1} β) x s)) x)))) (tsum.{u2, u1} α (AddCommGroup.toAddCommMonoid.{u2} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} α _inst_2) β (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align sum_add_tsum_subtype_compl sum_add_tsum_subtype_complₓ'. -/
 theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Finset β) :
     ((∑ x in s, f x) + ∑' x : { x // x ∉ s }, f x) = ∑' x, f x :=
   by
@@ -1276,6 +2116,12 @@ section TopologicalGroup
 
 variable {G : Type _} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup G] {f : α → G}
 
+/- warning: summable.vanishing -> Summable.vanishing is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (forall {{e : Set.{u2} G}}, (Membership.Mem.{u2, u2} (Set.{u2} G) (Filter.{u2} G) (Filter.hasMem.{u2} G) e (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2)))))))))) -> (Exists.{succ u1} (Finset.{u1} α) (fun (s : Finset.{u1} α) => forall (t : Finset.{u1} α), (Disjoint.{u1} (Finset.{u1} α) (Finset.partialOrder.{u1} α) (Finset.orderBot.{u1} α) t s) -> (Membership.Mem.{u2, u2} G (Set.{u2} G) (Set.hasMem.{u2} G) (Finset.sum.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) t (fun (k : α) => f k)) e))))
+but is expected to have type
+  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (forall {{e : Set.{u2} G}}, (Membership.mem.{u2, u2} (Set.{u2} G) (Filter.{u2} G) (instMembershipSetFilter.{u2} G) e (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (NegZeroClass.toZero.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (SubtractionCommMonoid.toSubtractionMonoid.{u2} G (AddCommGroup.toDivisionAddCommMonoid.{u2} G _inst_2))))))))) -> (Exists.{succ u1} (Finset.{u1} α) (fun (s : Finset.{u1} α) => forall (t : Finset.{u1} α), (Disjoint.{u1} (Finset.{u1} α) (Finset.partialOrder.{u1} α) (Finset.instOrderBotFinsetToLEToPreorderPartialOrder.{u1} α) t s) -> (Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) (Finset.sum.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) t (fun (k : α) => f k)) e))))
+Case conversion may be inaccurate. Consider using '#align summable.vanishing Summable.vanishingₓ'. -/
 theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0 : G)) :
     ∃ s : Finset α, ∀ t, Disjoint t s → (∑ k in t, f k) ∈ e :=
   by
@@ -1285,6 +2131,12 @@ theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0
   exact cauchySeq_finset_iff_vanishing.1 hy.cauchy_seq e he
 #align summable.vanishing Summable.vanishing
 
+/- warning: summable.tendsto_cofinite_zero -> Summable.tendsto_cofinite_zero is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{u1, u2} α G f (Filter.cofinite.{u1} α) (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (OfNat.mk.{u2} G 0 (Zero.zero.{u2} G (AddZeroClass.toHasZero.{u2} G (AddMonoid.toAddZeroClass.{u2} G (SubNegMonoid.toAddMonoid.{u2} G (AddGroup.toSubNegMonoid.{u2} G (AddCommGroup.toAddGroup.{u2} G _inst_2))))))))))
+but is expected to have type
+  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : AddCommGroup.{u2} G] [_inst_3 : TopologicalAddGroup.{u2} G _inst_1 (AddCommGroup.toAddGroup.{u2} G _inst_2)] {f : α -> G}, (Summable.{u2, u1} G α (AddCommGroup.toAddCommMonoid.{u2} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{u1, u2} α G f (Filter.cofinite.{u1} α) (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 0 (Zero.toOfNat0.{u2} G (NegZeroClass.toZero.{u2} G (SubNegZeroMonoid.toNegZeroClass.{u2} G (SubtractionMonoid.toSubNegZeroMonoid.{u2} G (SubtractionCommMonoid.toSubtractionMonoid.{u2} G (AddCommGroup.toDivisionAddCommMonoid.{u2} G _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align summable.tendsto_cofinite_zero Summable.tendsto_cofinite_zeroₓ'. -/
 /-- Series divergence test: if `f` is a convergent series, then `f x` tends to zero along
 `cofinite`. -/
 theorem Summable.tendsto_cofinite_zero (hf : Summable f) : Tendsto f cofinite (𝓝 0) :=
@@ -1296,6 +2148,12 @@ theorem Summable.tendsto_cofinite_zero (hf : Summable f) : Tendsto f cofinite (
   · simpa using hs {x} (disjoint_singleton_left.2 hx)
 #align summable.tendsto_cofinite_zero Summable.tendsto_cofinite_zero
 
+/- warning: summable.tendsto_at_top_zero -> Summable.tendsto_atTop_zero is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : AddCommGroup.{u1} G] [_inst_3 : TopologicalAddGroup.{u1} G _inst_1 (AddCommGroup.toAddGroup.{u1} G _inst_2)] {f : Nat -> G}, (Summable.{u1, 0} G Nat (AddCommGroup.toAddCommMonoid.{u1} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{0, u1} Nat G f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)))) (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 0 (OfNat.mk.{u1} G 0 (Zero.zero.{u1} G (AddZeroClass.toHasZero.{u1} G (AddMonoid.toAddZeroClass.{u1} G (SubNegMonoid.toAddMonoid.{u1} G (AddGroup.toSubNegMonoid.{u1} G (AddCommGroup.toAddGroup.{u1} G _inst_2))))))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : AddCommGroup.{u1} G] [_inst_3 : TopologicalAddGroup.{u1} G _inst_1 (AddCommGroup.toAddGroup.{u1} G _inst_2)] {f : Nat -> G}, (Summable.{u1, 0} G Nat (AddCommGroup.toAddCommMonoid.{u1} G _inst_2) _inst_1 f) -> (Filter.Tendsto.{0, u1} Nat G f (Filter.atTop.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 0 (Zero.toOfNat0.{u1} G (NegZeroClass.toZero.{u1} G (SubNegZeroMonoid.toNegZeroClass.{u1} G (SubtractionMonoid.toSubNegZeroMonoid.{u1} G (SubtractionCommMonoid.toSubtractionMonoid.{u1} G (AddCommGroup.toDivisionAddCommMonoid.{u1} G _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align summable.tendsto_at_top_zero Summable.tendsto_atTop_zeroₓ'. -/
 theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto f atTop (𝓝 0) :=
   by
   rw [← Nat.cofinite_eq_atTop]
@@ -1309,14 +2167,32 @@ section ConstSmul
 variable [Monoid γ] [TopologicalSpace α] [AddCommMonoid α] [DistribMulAction γ α]
   [ContinuousConstSMul γ α] {f : β → α}
 
+/- warning: has_sum.const_smul -> HasSum.const_smul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u1} α] [_inst_4 : DistribMulAction.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u3, u1} γ α _inst_2 (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4)))] {f : β -> α} {a : α} (b : γ), (HasSum.{u1, u2} α β _inst_3 _inst_2 f a) -> (HasSum.{u1, u2} α β _inst_3 _inst_2 (fun (i : β) => SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (f i)) (SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b a))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : Monoid.{u1} γ] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u3} α] [_inst_4 : DistribMulAction.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u1, u3} γ α _inst_2 (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))] {f : β -> α} {a : α} (b : γ), (HasSum.{u3, u2} α β _inst_3 _inst_2 f a) -> (HasSum.{u3, u2} α β _inst_3 _inst_2 (fun (i : β) => HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (f i)) (HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b a))
+Case conversion may be inaccurate. Consider using '#align has_sum.const_smul HasSum.const_smulₓ'. -/
 theorem HasSum.const_smul {a : α} (b : γ) (hf : HasSum f a) : HasSum (fun i => b • f i) (b • a) :=
   hf.map (DistribMulAction.toAddMonoidHom α _) <| continuous_const_smul _
 #align has_sum.const_smul HasSum.const_smul
 
+/- warning: summable.const_smul -> Summable.const_smul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u1} α] [_inst_4 : DistribMulAction.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u3, u1} γ α _inst_2 (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4)))] {f : β -> α} (b : γ), (Summable.{u1, u2} α β _inst_3 _inst_2 f) -> (Summable.{u1, u2} α β _inst_3 _inst_2 (fun (i : β) => SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (f i)))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : Monoid.{u1} γ] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u3} α] [_inst_4 : DistribMulAction.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u1, u3} γ α _inst_2 (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))] {f : β -> α} (b : γ), (Summable.{u3, u2} α β _inst_3 _inst_2 f) -> (Summable.{u3, u2} α β _inst_3 _inst_2 (fun (i : β) => HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (f i)))
+Case conversion may be inaccurate. Consider using '#align summable.const_smul Summable.const_smulₓ'. -/
 theorem Summable.const_smul (b : γ) (hf : Summable f) : Summable fun i => b • f i :=
   (hf.HasSum.const_smul _).Summable
 #align summable.const_smul Summable.const_smul
 
+/- warning: tsum_const_smul -> tsum_const_smul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u1} α] [_inst_4 : DistribMulAction.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u3, u1} γ α _inst_2 (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4)))] {f : β -> α} [_inst_6 : T2Space.{u1} α _inst_2] (b : γ), (Summable.{u1, u2} α β _inst_3 _inst_2 f) -> (Eq.{succ u1} α (tsum.{u1, u2} α _inst_3 _inst_2 β (fun (i : β) => SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (f i))) (SMul.smul.{u3, u1} γ α (SMulZeroClass.toHasSmul.{u3, u1} γ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3))) (DistribSMul.toSmulZeroClass.{u3, u1} γ α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u1} α _inst_3) _inst_4))) b (tsum.{u1, u2} α _inst_3 _inst_2 β (fun (i : β) => f i))))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : Monoid.{u1} γ] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u3} α] [_inst_4 : DistribMulAction.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3)] [_inst_5 : ContinuousConstSMul.{u1, u3} γ α _inst_2 (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))] {f : β -> α} [_inst_6 : T2Space.{u3} α _inst_2] (b : γ), (Summable.{u3, u2} α β _inst_3 _inst_2 f) -> (Eq.{succ u3} α (tsum.{u3, u2} α _inst_3 _inst_2 β (fun (i : β) => HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (f i))) (HSMul.hSMul.{u1, u3, u3} γ α α (instHSMul.{u1, u3} γ α (SMulZeroClass.toSMul.{u1, u3} γ α (AddMonoid.toZero.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} γ α (AddMonoid.toAddZeroClass.{u3} α (AddCommMonoid.toAddMonoid.{u3} α _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} γ α _inst_1 (AddCommMonoid.toAddMonoid.{u3} α _inst_3) _inst_4)))) b (tsum.{u3, u2} α _inst_3 _inst_2 β (fun (i : β) => f i))))
+Case conversion may be inaccurate. Consider using '#align tsum_const_smul tsum_const_smulₓ'. -/
 theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : (∑' i, b • f i) = b • ∑' i, f i :=
   (hf.HasSum.const_smul _).tsum_eq
 #align tsum_const_smul tsum_const_smul
@@ -1330,6 +2206,12 @@ section Prod
 
 variable [AddCommMonoid α] [TopologicalSpace α] [AddCommMonoid γ] [TopologicalSpace γ]
 
+/- warning: has_sum.prod_mk -> HasSum.prod_mk is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : AddCommMonoid.{u3} γ] [_inst_4 : TopologicalSpace.{u3} γ] {f : β -> α} {g : β -> γ} {a : α} {b : γ}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u3, u2} γ β _inst_3 _inst_4 g b) -> (HasSum.{max u1 u3, u2} (Prod.{u1, u3} α γ) β (Prod.addCommMonoid.{u1, u3} α γ _inst_1 _inst_3) (Prod.topologicalSpace.{u1, u3} α γ _inst_2 _inst_4) (fun (x : β) => Prod.mk.{u1, u3} α γ (f x) (g x)) (Prod.mk.{u1, u3} α γ a b))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : AddCommMonoid.{u3} α] [_inst_2 : TopologicalSpace.{u3} α] [_inst_3 : AddCommMonoid.{u1} γ] [_inst_4 : TopologicalSpace.{u1} γ] {f : β -> α} {g : β -> γ} {a : α} {b : γ}, (HasSum.{u3, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} γ β _inst_3 _inst_4 g b) -> (HasSum.{max u3 u1, u2} (Prod.{u3, u1} α γ) β (Prod.instAddCommMonoidSum.{u3, u1} α γ _inst_1 _inst_3) (instTopologicalSpaceProd.{u3, u1} α γ _inst_2 _inst_4) (fun (x : β) => Prod.mk.{u3, u1} α γ (f x) (g x)) (Prod.mk.{u3, u1} α γ a b))
+Case conversion may be inaccurate. Consider using '#align has_sum.prod_mk HasSum.prod_mkₓ'. -/
 theorem HasSum.prod_mk {f : β → α} {g : β → γ} {a : α} {b : γ} (hf : HasSum f a) (hg : HasSum g b) :
     HasSum (fun x => (⟨f x, g x⟩ : α × γ)) ⟨a, b⟩ := by
   simp [HasSum, ← prod_mk_sum, Filter.Tendsto.prod_mk_nhds hf hg]
@@ -1341,15 +2223,33 @@ section Pi
 
 variable {ι : Type _} {π : α → Type _} [∀ x, AddCommMonoid (π x)] [∀ x, TopologicalSpace (π x)]
 
+/- warning: pi.has_sum -> Pi.hasSum is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {ι : Type.{u2}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] {f : ι -> (forall (x : α), π x)} {g : forall (x : α), π x}, Iff (HasSum.{max u1 u3, u2} (forall (x : α), π x) ι (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f g) (forall (x : α), HasSum.{u3, u2} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x) (g x))
+but is expected to have type
+  forall {α : Type.{u3}} {ι : Type.{u1}} {π : α -> Type.{u2}} [_inst_1 : forall (x : α), AddCommMonoid.{u2} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u2} (π x)] {f : ι -> (forall (x : α), π x)} {g : forall (x : α), π x}, Iff (HasSum.{max u3 u2, u1} (forall (x : α), π x) ι (Pi.addCommMonoid.{u3, u2} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u3, u2} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f g) (forall (x : α), HasSum.{u2, u1} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x) (g x))
+Case conversion may be inaccurate. Consider using '#align pi.has_sum Pi.hasSumₓ'. -/
 theorem Pi.hasSum {f : ι → ∀ x, π x} {g : ∀ x, π x} :
     HasSum f g ↔ ∀ x, HasSum (fun i => f i x) (g x) := by
   simp only [HasSum, tendsto_pi_nhds, sum_apply]
 #align pi.has_sum Pi.hasSum
 
+/- warning: pi.summable -> Pi.summable is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {ι : Type.{u2}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] {f : ι -> (forall (x : α), π x)}, Iff (Summable.{max u1 u3, u2} (forall (x : α), π x) ι (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) (forall (x : α), Summable.{u3, u2} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x))
+but is expected to have type
+  forall {α : Type.{u3}} {ι : Type.{u1}} {π : α -> Type.{u2}} [_inst_1 : forall (x : α), AddCommMonoid.{u2} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u2} (π x)] {f : ι -> (forall (x : α), π x)}, Iff (Summable.{max u3 u2, u1} (forall (x : α), π x) ι (Pi.addCommMonoid.{u3, u2} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u3, u2} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) (forall (x : α), Summable.{u2, u1} (π x) ι (_inst_1 x) (_inst_2 x) (fun (i : ι) => f i x))
+Case conversion may be inaccurate. Consider using '#align pi.summable Pi.summableₓ'. -/
 theorem Pi.summable {f : ι → ∀ x, π x} : Summable f ↔ ∀ x, Summable fun i => f i x := by
   simp only [Summable, Pi.hasSum, skolem]
 #align pi.summable Pi.summable
 
+/- warning: tsum_apply -> tsum_apply is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {ι : Type.{u2}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] [_inst_3 : forall (x : α), T2Space.{u3} (π x) (_inst_2 x)] {f : ι -> (forall (x : α), π x)} {x : α}, (Summable.{max u1 u3, u2} (forall (x : α), π x) ι (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) -> (Eq.{succ u3} (π x) (tsum.{max u1 u3, u2} (forall (x : α), π x) (Pi.addCommMonoid.{u1, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u1, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) ι (fun (i : ι) => f i) x) (tsum.{u3, u2} (π x) (_inst_1 x) (_inst_2 x) ι (fun (i : ι) => f i x)))
+but is expected to have type
+  forall {α : Type.{u2}} {ι : Type.{u1}} {π : α -> Type.{u3}} [_inst_1 : forall (x : α), AddCommMonoid.{u3} (π x)] [_inst_2 : forall (x : α), TopologicalSpace.{u3} (π x)] [_inst_3 : forall (x : α), T2Space.{u3} (π x) (_inst_2 x)] {f : ι -> (forall (x : α), π x)} {x : α}, (Summable.{max u2 u3, u1} (forall (x : α), π x) ι (Pi.addCommMonoid.{u2, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u2, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) f) -> (Eq.{succ u3} (π x) (tsum.{max u2 u3, u1} (forall (x : α), π x) (Pi.addCommMonoid.{u2, u3} α (fun (x : α) => π x) (fun (i : α) => _inst_1 i)) (Pi.topologicalSpace.{u2, u3} α (fun (x : α) => π x) (fun (a : α) => _inst_2 a)) ι (fun (i : ι) => f i) x) (tsum.{u3, u1} (π x) (_inst_1 x) (_inst_2 x) ι (fun (i : ι) => f i x)))
+Case conversion may be inaccurate. Consider using '#align tsum_apply tsum_applyₓ'. -/
 theorem tsum_apply [∀ x, T2Space (π x)] {f : ι → ∀ x, π x} {x : α} (hf : Summable f) :
     (∑' i, f i) x = ∑' i, f i x :=
   (Pi.hasSum.mp hf.HasSum x).tsum_eq.symm
@@ -1366,39 +2266,87 @@ open MulOpposite
 
 variable [AddCommMonoid α] [TopologicalSpace α] {f : β → α} {a : α}
 
+/- warning: has_sum.op -> HasSum.op is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a)) (MulOpposite.op.{u1} α a))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a))
+Case conversion may be inaccurate. Consider using '#align has_sum.op HasSum.opₓ'. -/
 theorem HasSum.op (hf : HasSum f a) : HasSum (fun a => op (f a)) (op a) :=
   (hf.map (@opAddEquiv α _) continuous_op : _)
 #align has_sum.op HasSum.op
 
+/- warning: summable.op -> Summable.op is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (Function.comp.{succ u2, succ u1, succ u1} β α (MulOpposite.{u1} α) (MulOpposite.op.{u1} α) f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (Function.comp.{succ u1, succ u2, succ u2} β α (MulOpposite.{u2} α) (MulOpposite.op.{u2} α) f))
+Case conversion may be inaccurate. Consider using '#align summable.op Summable.opₓ'. -/
 theorem Summable.op (hf : Summable f) : Summable (op ∘ f) :=
   hf.HasSum.op.Summable
 #align summable.op Summable.op
 
+/- warning: has_sum.unop -> HasSum.unop is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)} {a : MulOpposite.{u1} α}, (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f a) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a)) (MulOpposite.unop.{u1} α a))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a))
+Case conversion may be inaccurate. Consider using '#align has_sum.unop HasSum.unopₓ'. -/
 theorem HasSum.unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} (hf : HasSum f a) :
     HasSum (fun a => unop (f a)) (unop a) :=
   (hf.map (@opAddEquiv α _).symm continuous_unop : _)
 #align has_sum.unop HasSum.unop
 
+/- warning: summable.unop -> Summable.unop is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)}, (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (Function.comp.{succ u2, succ u1, succ u1} β (MulOpposite.{u1} α) α (MulOpposite.unop.{u1} α) f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (Function.comp.{succ u1, succ u2, succ u2} β (MulOpposite.{u2} α) α (MulOpposite.unop.{u2} α) f))
+Case conversion may be inaccurate. Consider using '#align summable.unop Summable.unopₓ'. -/
 theorem Summable.unop {f : β → αᵐᵒᵖ} (hf : Summable f) : Summable (unop ∘ f) :=
   hf.HasSum.unop.Summable
 #align summable.unop Summable.unop
 
+/- warning: has_sum_op -> hasSum_op is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} {a : α}, Iff (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a)) (MulOpposite.op.{u1} α a)) (HasSum.{u1, u2} α β _inst_1 _inst_2 f a)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} {a : α}, Iff (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a)) (MulOpposite.op.{u2} α a)) (HasSum.{u2, u1} α β _inst_1 _inst_2 f a)
+Case conversion may be inaccurate. Consider using '#align has_sum_op hasSum_opₓ'. -/
 @[simp]
 theorem hasSum_op : HasSum (fun a => op (f a)) (op a) ↔ HasSum f a :=
   ⟨HasSum.unop, HasSum.op⟩
 #align has_sum_op hasSum_op
 
+/- warning: has_sum_unop -> hasSum_unop is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)} {a : MulOpposite.{u1} α}, Iff (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a)) (MulOpposite.unop.{u1} α a)) (HasSum.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f a)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)} {a : MulOpposite.{u2} α}, Iff (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a)) (MulOpposite.unop.{u2} α a)) (HasSum.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f a)
+Case conversion may be inaccurate. Consider using '#align has_sum_unop hasSum_unopₓ'. -/
 @[simp]
 theorem hasSum_unop {f : β → αᵐᵒᵖ} {a : αᵐᵒᵖ} :
     HasSum (fun a => unop (f a)) (unop a) ↔ HasSum f a :=
   ⟨HasSum.op, HasSum.unop⟩
 #align has_sum_unop hasSum_unop
 
+/- warning: summable_op -> summable_op is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α}, Iff (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) (fun (a : β) => MulOpposite.op.{u1} α (f a))) (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α}, Iff (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) (fun (a : β) => MulOpposite.op.{u2} α (f a))) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable_op summable_opₓ'. -/
 @[simp]
 theorem summable_op : (Summable fun a => op (f a)) ↔ Summable f :=
   ⟨Summable.unop, Summable.op⟩
 #align summable_op summable_op
 
+/- warning: summable_unop -> summable_unop is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> (MulOpposite.{u1} α)}, Iff (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u1} α (f a))) (Summable.{u1, u2} (MulOpposite.{u1} α) β (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> (MulOpposite.{u2} α)}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (a : β) => MulOpposite.unop.{u2} α (f a))) (Summable.{u2, u1} (MulOpposite.{u2} α) β (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) f)
+Case conversion may be inaccurate. Consider using '#align summable_unop summable_unopₓ'. -/
 @[simp]
 theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a)) ↔ Summable f :=
   ⟨Summable.op, Summable.unop⟩
@@ -1406,6 +2354,12 @@ theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a))
 
 variable [T2Space α]
 
+/- warning: tsum_op -> tsum_op is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] {f : β -> α} [_inst_3 : T2Space.{u1} α _inst_2], Eq.{succ u1} (MulOpposite.{u1} α) (tsum.{u1, u2} (MulOpposite.{u1} α) (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) β (fun (x : β) => MulOpposite.op.{u1} α (f x))) (MulOpposite.op.{u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => f x)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] {f : β -> α} [_inst_3 : T2Space.{u2} α _inst_2], Eq.{succ u2} (MulOpposite.{u2} α) (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => MulOpposite.op.{u2} α (f x))) (MulOpposite.op.{u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align tsum_op tsum_opₓ'. -/
 theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x) :=
   by
   by_cases h : Summable f
@@ -1414,6 +2368,12 @@ theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x)
     rw [tsum_eq_zero_of_not_summable h, tsum_eq_zero_of_not_summable ho, MulOpposite.op_zero]
 #align tsum_op tsum_op
 
+/- warning: tsum_unop -> tsum_unop is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : T2Space.{u1} α _inst_2] {f : β -> (MulOpposite.{u1} α)}, Eq.{succ u1} α (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (x : β) => MulOpposite.unop.{u1} α (f x))) (MulOpposite.unop.{u1} α (tsum.{u1, u2} (MulOpposite.{u1} α) (MulOpposite.addCommMonoid.{u1} α _inst_1) (MulOpposite.topologicalSpace.{u1} α _inst_2) β (fun (x : β) => f x)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : T2Space.{u2} α _inst_2] {f : β -> (MulOpposite.{u2} α)}, Eq.{succ u2} α (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (x : β) => MulOpposite.unop.{u2} α (f x))) (MulOpposite.unop.{u2} α (tsum.{u2, u1} (MulOpposite.{u2} α) (MulOpposite.instAddCommMonoidMulOpposite.{u2} α _inst_1) (MulOpposite.instTopologicalSpaceMulOpposite.{u2} α _inst_2) β (fun (x : β) => f x)))
+Case conversion may be inaccurate. Consider using '#align tsum_unop tsum_unopₓ'. -/
 theorem tsum_unop {f : β → αᵐᵒᵖ} : (∑' x, MulOpposite.unop (f x)) = MulOpposite.unop (∑' x, f x) :=
   MulOpposite.op_injective tsum_op.symm
 #align tsum_unop tsum_unop
@@ -1428,23 +2388,53 @@ section ContinuousStar
 variable [AddCommMonoid α] [TopologicalSpace α] [StarAddMonoid α] [ContinuousStar α] {f : β → α}
   {a : α}
 
+/- warning: has_sum.star -> HasSum.star is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α} {a : α}, (HasSum.{u1, u2} α β _inst_1 _inst_2 f a) -> (HasSum.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b)) (Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) a))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α} {a : α}, (HasSum.{u2, u1} α β _inst_1 _inst_2 f a) -> (HasSum.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b)) (Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) a))
+Case conversion may be inaccurate. Consider using '#align has_sum.star HasSum.starₓ'. -/
 theorem HasSum.star (h : HasSum f a) : HasSum (fun b => star (f b)) (star a) := by
   simpa only using h.map (starAddEquiv : α ≃+ α) continuous_star
 #align has_sum.star HasSum.star
 
+/- warning: summable.star -> Summable.star is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 f) -> (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 f) -> (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b)))
+Case conversion may be inaccurate. Consider using '#align summable.star Summable.starₓ'. -/
 theorem Summable.star (hf : Summable f) : Summable fun b => star (f b) :=
   hf.HasSum.unit.Summable
 #align summable.star Summable.star
 
-theorem Summable.of_star (hf : Summable fun b => star (f b)) : Summable f := by
+/- warning: summable.of_star -> Summable.ofStar is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b))) -> (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b))) -> (Summable.{u2, u1} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable.of_star Summable.ofStarₓ'. -/
+theorem Summable.ofStar (hf : Summable fun b => star (f b)) : Summable f := by
   simpa only [star_star] using hf.star
-#align summable.of_star Summable.of_star
-
+#align summable.of_star Summable.ofStar
+
+/- warning: summable_star_iff -> summable_star_iff is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u1, u2} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b))) (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b))) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable_star_iff summable_star_iffₓ'. -/
 @[simp]
 theorem summable_star_iff : (Summable fun b => star (f b)) ↔ Summable f :=
-  ⟨Summable.of_star, Summable.star⟩
+  ⟨Summable.ofStar, Summable.star⟩
 #align summable_star_iff summable_star_iff
 
+/- warning: summable_star_iff' -> summable_star_iff' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u1, u2} α β _inst_1 _inst_2 (Star.star.{max u2 u1} (β -> α) (Pi.hasStar.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))) f)) (Summable.{u1, u2} α β _inst_1 _inst_2 f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α}, Iff (Summable.{u2, u1} α β _inst_1 _inst_2 (Star.star.{max u1 u2} (β -> α) (Pi.instStarForAll.{u1, u2} β (fun (ᾰ : β) => α) (fun (i : β) => InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))) f)) (Summable.{u2, u1} α β _inst_1 _inst_2 f)
+Case conversion may be inaccurate. Consider using '#align summable_star_iff' summable_star_iff'ₓ'. -/
 @[simp]
 theorem summable_star_iff' : Summable (star f) ↔ Summable f :=
   summable_star_iff
@@ -1452,12 +2442,18 @@ theorem summable_star_iff' : Summable (star f) ↔ Summable f :=
 
 variable [T2Space α]
 
+/- warning: tsum_star -> tsum_star is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : StarAddMonoid.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1)] [_inst_4 : ContinuousStar.{u1} α _inst_2 (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3))] {f : β -> α} [_inst_5 : T2Space.{u1} α _inst_2], Eq.{succ u1} α (Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => f b))) (tsum.{u1, u2} α _inst_1 _inst_2 β (fun (b : β) => Star.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α _inst_1) _inst_3)) (f b)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} α] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : StarAddMonoid.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1)] [_inst_4 : ContinuousStar.{u2} α _inst_2 (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3))] {f : β -> α} [_inst_5 : T2Space.{u2} α _inst_2], Eq.{succ u2} α (Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => f b))) (tsum.{u2, u1} α _inst_1 _inst_2 β (fun (b : β) => Star.star.{u2} α (InvolutiveStar.toStar.{u2} α (StarAddMonoid.toInvolutiveStar.{u2} α (AddCommMonoid.toAddMonoid.{u2} α _inst_1) _inst_3)) (f b)))
+Case conversion may be inaccurate. Consider using '#align tsum_star tsum_starₓ'. -/
 theorem tsum_star : star (∑' b, f b) = ∑' b, star (f b) :=
   by
   by_cases hf : Summable f
   · exact hf.has_sum.star.tsum_eq.symm
   ·
-    rw [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.of_star hf),
+    rw [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.ofStar hf),
       star_zero]
 #align tsum_star tsum_star
 
Diff
@@ -128,13 +128,13 @@ theorem hasSum_iff_hasSum {g : γ → α}
   ⟨HasSum.hasSum_of_sum_eq h₂, HasSum.hasSum_of_sum_eq h₁⟩
 #align has_sum_iff_has_sum hasSum_iff_hasSum
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
   simp only [HasSum, tendsto, hg.map_at_top_finset_sum_eq hf]
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » set.range[set.range] g) -/
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
     (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
   exists_congr fun _ => hg.hasSum_iff hf
@@ -182,18 +182,18 @@ protected theorem Set.Finite.summable {s : Set β} (hs : s.Finite) (f : β → 
   convert hs.to_finset.summable f <;> simp only [hs.coe_to_finset]
 #align set.finite.summable Set.Finite.summable
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 /-- If a function `f` vanishes outside of a finite set `s`, then it `has_sum` `∑ b in s, f b`. -/
 theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
   (hasSum_subtype_iff_of_support_subset <| support_subset_iff'.2 hf).1 <| s.HasSum f
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
   (hasSum_sum_of_ne_finset_zero hf).Summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
   hasSum_sum_of_ne_finset_zero <| by simpa [hf]
@@ -498,13 +498,13 @@ theorem tsum_empty [IsEmpty β] : (∑' b, f b) = 0 :=
   hasSum_empty.tsum_eq
 #align tsum_empty tsum_empty
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (b «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b «expr ∉ » s) -/
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     (∑' b, f b) = ∑ b in s, f b :=
   (hasSum_sum_of_ne_finset_zero hf).tsum_eq
 #align tsum_eq_sum tsum_eq_sum
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x «expr ∉ » s) -/
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (∑ x in s, f x) = ∑' x, Set.indicator (↑s) f x :=
   have : ∀ (x) (_ : x ∉ s), Set.indicator (↑s) f x = 0 := fun x hx =>
@@ -527,14 +527,14 @@ theorem tsum_bool (f : Bool → α) : (∑' i : Bool, f i) = f False + f True :=
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
     (∑' b, f b) = f b :=
   (hasSum_single b hf).tsum_eq
 #align tsum_eq_single tsum_eq_single
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (b' «expr ≠ » b) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (b' «expr ≠ » b) -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (b' c') -/
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
     (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : (∑' (b') (c'), f b' c') = f b c :=
@@ -666,7 +666,7 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (f.update
     (∑' x, f x) = ∑' x, ite (x = b) (f x) 0 + f.update b 0 x :=
       tsum_congr fun n => by split_ifs <;> simp [Function.update_apply, h]
     _ = (∑' x, ite (x = b) (f x) 0) + ∑' x, f.update b 0 x :=
-      tsum_add ⟨ite (b = b) (f b) 0, hasSum_single b fun b hb => if_neg hb⟩ hf
+      (tsum_add ⟨ite (b = b) (f b) 0, hasSum_single b fun b hb => if_neg hb⟩ hf)
     _ = ite (b = b) (f b) 0 + ∑' x, f.update b 0 x :=
       by
       congr
Diff
@@ -1280,7 +1280,7 @@ theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0
     ∃ s : Finset α, ∀ t, Disjoint t s → (∑ k in t, f k) ∈ e :=
   by
   letI : UniformSpace G := TopologicalAddGroup.toUniformSpace G
-  letI : UniformAddGroup G := topological_add_commGroup_is_uniform
+  letI : UniformAddGroup G := comm_topologicalAddGroup_is_uniform
   rcases hf with ⟨y, hy⟩
   exact cauchySeq_finset_iff_vanishing.1 hy.cauchy_seq e he
 #align summable.vanishing Summable.vanishing

Changes in mathlib4

mathlib3
mathlib4
feat: Infinite products (#11733)

Last year, YaelDillies made a pull request to mathlib3 that unfortunately never got merged in: https://github.com/leanprover-community/mathlib/pull/18405. This is the mathlib4 version of that pull request.

We define arbitrarily indexed products in a commutative monoid with a topology. This is done by "multiplicativizing" the currently existing definitions and theorems about arbitrarily indexed sums. That is, the existing code is rewritten in the multiplicative setting, and the original definitions and theorems are recovered using @[to_additive]. Please see this thread on Zulip for information on why this approach was chosen: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Infinite.20products

As YaelDillies wrote in the description of https://github.com/leanprover-community/mathlib/pull/18405, there are a few small technical issues that arise when directly "multiplicativizing" theorems in this way:

  • I have renamed cauchySeq_finset_iff_vanishing to cauchySeq_finset_iff_sum_vanishing to make the name multiplicativizable. This is slightly different from the name cauchy_seq_finset_sum_iff_vanishing that YaelDillies used, and it is meant to parallel the existing name cauchySeq_finset_iff_tsum_vanishing.
  • Currently, on master, there is a theorem called tsum_sum about taking the tsum of a sum, and a theorem called tsum_prod about taking a tsum on a product of two index sets. I have called the multiplicative versions tprod_of_prod and tprod_prod. This is slightly different from the names tprod_prod'' and tprod_prod that YaelDillies used. eric-wieser suggested renaming tsum_prod to tsum_prod_index to get around this issue, which I can do in a separate pull request.
Diff
@@ -9,15 +9,32 @@ import Mathlib.Algebra.BigOperators.Finprod
 #align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b52265189f3fb43aa631edffce5d060fafaf82f"
 
 /-!
-# Infinite sum over a topological monoid
+# Infinite sum and product 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
+This file defines unconditionally convergent sums over a commutative topological additive monoid.
+For Euclidean spaces (finite dimensional Banach spaces) this is equivalent to absolute
 convergence.
 
+We also define unconditionally convergent products over a commutative topological multiplicative
+monoid.
+
 Note: There are summable sequences which are not unconditionally convergent! The other way holds
 generally, see `HasSum.tendsto_sum_nat`.
 
+## Implementation notes
+
+We say that a function `f : β → α` has an unconditional product of `a` if the function
+`fun s : Finset β ↦ ∏ b in s, f b` converges to `a` on the `atTop` filter on `Finset β`. In other
+words, for every neighborhood `U` of `a`, there exists a finite set `s : Finset β` of indices such
+that `∏ b in s', f b ∈ U` for any finite set `s'` which is a superset of `s`.
+
+This may yield some unexpected results. For example, according to this definition, the product
+`∏' n : ℕ, (1 : ℝ) / 2` unconditionally exists and is equal to `0`. More strikingly,
+the product `∏' n : ℕ, (n : ℝ)` unconditionally exists and is equal to `0`, because one
+of its terms is `0` (even though the product of the remaining terms diverges). Users who would
+prefer that these products be considered not to exist can carry them out in the unit group `ℝˣ`
+rather than in `ℝ`.
+
 ## References
 
 * Bourbaki: General Topology (1995), Chapter 3 §5 (Infinite sums in commutative groups)
@@ -25,8 +42,8 @@ generally, see `HasSum.tendsto_sum_nat`.
 -/
 
 /- **NOTE**. This file is intended to be kept short, just enough to state the basic definitions and
-three key lemmas relating them together, namely `Summable.hasSum`, `HasSum.tsum_eq`, and
-`Summable.hasSum_iff`.
+six key lemmas relating them together, namely `Summable.hasSum`, `Multipliable.hasProd`,
+`HasSum.tsum_eq`, `HasProd.tprod_eq`, `Summable.hasSum_iff`, and `Multipliable.hasProd_iff`.
 
 Do not add further lemmas here -- add them to `InfiniteSum.Basic` or (preferably) another, more
 specific file. -/
@@ -39,11 +56,22 @@ open scoped BigOperators Topology
 
 variable {α β γ : Type*}
 
-section HasSum
+section HasProd
+
+variable [CommMonoid α] [TopologicalSpace α]
 
-variable [AddCommMonoid α] [TopologicalSpace α]
+/-- Infinite product on a topological monoid
 
-/-- Infinite sum on a topological monoid
+The `atTop` filter on `Finset β` is the limit of all finite sets towards the entire type. So we take
+the product over bigger and bigger sets. This product operation is invariant under reordering.
+
+For the definition and many statements, `α` does not need to be a topological monoid. We only add
+this assumption later, for the lemmas where it is relevant.
+
+These are defined in an identical way to infinite sums (`HasSum`). For example, we say that
+the function `ℕ → ℝ` sending `n` to `1 / 2` has a product of `0`, rather than saying that it does
+not converge as some authors would. -/
+@[to_additive "Infinite sum on a topological monoid
 
 The `atTop` 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 invariant under reordering. In particular,
@@ -53,91 +81,110 @@ sum for this definition, but a series which is absolutely convergent will have t
 This is based on Mario Carneiro's
 [infinite sum `df-tsms` in Metamath](http://us.metamath.org/mpeuni/df-tsms.html).
 
-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.
--/
-def HasSum (f : β → α) (a : α) : Prop :=
-  Tendsto (fun s : Finset β ↦ ∑ b in s, f b) atTop (𝓝 a)
+For the definition and many statements, `α` does not need to be a topological monoid. We only add
+this assumption later, for the lemmas where it is relevant."]
+def HasProd (f : β → α) (a : α) : Prop :=
+  Tendsto (fun s : Finset β ↦ ∏ b in s, f b) atTop (𝓝 a)
 #align has_sum HasSum
 
-/-- `Summable f` means that `f` has some (infinite) sum. Use `tsum` to get the value. -/
-def Summable (f : β → α) : Prop :=
-  ∃ a, HasSum f a
+/-- `Multipliable f` means that `f` has some (infinite) product. Use `tprod` to get the value. -/
+@[to_additive "`Summable f` means that `f` has some (infinite) sum. Use `tsum` to get the value."]
+def Multipliable (f : β → α) : Prop :=
+  ∃ a, HasProd f a
 #align summable Summable
 
 open scoped Classical in
-/-- `∑' i, f i` is the sum of `f` it exists, or 0 otherwise. -/
-irreducible_def tsum {β} (f : β → α) :=
-  if h : Summable f then
-  /- Note that the sum might not be uniquely defined if the topology is not separated.
-  When the support of `f` is finite, we make the most reasonable choice to use the finite sum over
-  the support. Otherwise, we choose arbitrarily an `a` satisfying `HasSum f a`. -/
-    if (support f).Finite then finsum f
+/-- `∏' i, f i` is the product of `f` it exists, or 1 otherwise. -/
+@[to_additive "`∑' i, f i` is the sum of `f` it exists, or 0 otherwise."]
+noncomputable irreducible_def tprod {β} (f : β → α) :=
+  if h : Multipliable f then
+  /- Note that the product might not be uniquely defined if the topology is not separated.
+  When the multiplicative support of `f` is finite, we make the most reasonable choice to use the
+  product over the multiplicative support. Otherwise, we choose arbitrarily an `a` satisfying
+  `HasProd f a`. -/
+    if (mulSupport f).Finite then finprod f
     else h.choose
-  else 0
+  else 1
 #align tsum tsum
 
 -- see Note [operator precedence of big operators]
+@[inherit_doc tprod]
+notation3 "∏' "(...)", "r:67:(scoped f => tprod f) => r
 @[inherit_doc tsum]
 notation3 "∑' "(...)", "r:67:(scoped f => tsum f) => r
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
-theorem HasSum.summable (h : HasSum f a) : Summable f :=
+@[to_additive]
+theorem HasProd.multipliable (h : HasProd f a) : Multipliable f :=
   ⟨a, h⟩
 #align has_sum.summable HasSum.summable
 
-theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : ∑' b, f b = 0 := by simp [tsum_def, h]
+@[to_additive]
+theorem tprod_eq_one_of_not_multipliable (h : ¬Multipliable f) : ∏' b, f b = 1 := by
+  simp [tprod_def, h]
 #align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summable
 
-theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
-    (hf : ∀ x, x ∉ Set.range g → f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
-  simp only [HasSum, Tendsto, comp_apply, hg.map_atTop_finset_sum_eq hf]
+@[to_additive]
+theorem Function.Injective.hasProd_iff {g : γ → β} (hg : Injective g)
+    (hf : ∀ x, x ∉ Set.range g → f x = 1) : HasProd (f ∘ g) a ↔ HasProd f a := by
+  simp only [HasProd, Tendsto, comp_apply, hg.map_atTop_finset_prod_eq hf]
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 
-theorem hasSum_subtype_iff_of_support_subset {s : Set β} (hf : support f ⊆ s) :
-    HasSum (f ∘ (↑) : s → α) a ↔ HasSum f a :=
-  Subtype.coe_injective.hasSum_iff <| by simpa using support_subset_iff'.1 hf
+@[to_additive]
+theorem hasProd_subtype_iff_of_mulSupport_subset {s : Set β} (hf : mulSupport f ⊆ s) :
+    HasProd (f ∘ (↑) : s → α) a ↔ HasProd f a :=
+  Subtype.coe_injective.hasProd_iff <| by simpa using mulSupport_subset_iff'.1 hf
 #align has_sum_subtype_iff_of_support_subset hasSum_subtype_iff_of_support_subset
 
-theorem hasSum_fintype [Fintype β] (f : β → α) : HasSum f (∑ b, f b) :=
+@[to_additive]
+theorem hasProd_fintype [Fintype β] (f : β → α) : HasProd f (∏ b, f b) :=
   OrderTop.tendsto_atTop_nhds _
 #align has_sum_fintype hasSum_fintype
 
-protected theorem Finset.hasSum (s : Finset β) (f : β → α) :
-    HasSum (f ∘ (↑) : (↑s : Set β) → α) (∑ b in s, f b) := by
-  rw [← sum_attach]
-  exact hasSum_fintype _
+@[to_additive]
+protected theorem Finset.hasProd (s : Finset β) (f : β → α) :
+    HasProd (f ∘ (↑) : (↑s : Set β) → α) (∏ b in s, f b) := by
+  rw [← prod_attach]
+  exact hasProd_fintype _
 #align finset.has_sum Finset.hasSum
 
-/-- If a function `f` vanishes outside of a finite set `s`, then it `HasSum` `∑ b in s, f b`. -/
-theorem hasSum_sum_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : HasSum f (∑ b in s, f b) :=
-  (hasSum_subtype_iff_of_support_subset <| support_subset_iff'.2 hf).1 <| s.hasSum f
+/-- If a function `f` is `1` outside of a finite set `s`, then it `HasProd` `∏ b in s, f b`. -/
+@[to_additive "If a function `f` vanishes outside of a finite set `s`, then it `HasSum`
+`∑ b in s, f b`."]
+theorem hasProd_prod_of_ne_finset_one (hf : ∀ (b) (_ : b ∉ s), f b = 1) :
+    HasProd f (∏ b in s, f b) :=
+  (hasProd_subtype_iff_of_mulSupport_subset <| mulSupport_subset_iff'.2 hf).1 <| s.hasProd f
 #align has_sum_sum_of_ne_finset_zero hasSum_sum_of_ne_finset_zero
 
-theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summable f :=
-  (hasSum_sum_of_ne_finset_zero hf).summable
+@[to_additive]
+theorem multipliable_of_ne_finset_one (hf : ∀ (b) (_ : b ∉ s), f b = 1) : Multipliable f :=
+  (hasProd_prod_of_ne_finset_one hf).multipliable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 
-theorem Summable.hasSum (ha : Summable f) : HasSum f (∑' b, f b) := by
-  simp only [tsum_def, ha, dite_true]
-  by_cases H : (support f).Finite
-  · simp [H, hasSum_sum_of_ne_finset_zero, finsum_eq_sum]
+@[to_additive]
+theorem Multipliable.hasProd (ha : Multipliable f) : HasProd f (∏' b, f b) := by
+  simp only [tprod_def, ha, dite_true]
+  by_cases H : (mulSupport f).Finite
+  · simp [H, hasProd_prod_of_ne_finset_one, finprod_eq_prod]
   · simpa [H] using ha.choose_spec
 #align summable.has_sum Summable.hasSum
 
-theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f a₂ → a₁ = a₂ := by
+@[to_additive]
+theorem HasProd.unique {a₁ a₂ : α} [T2Space α] : HasProd f a₁ → HasProd f a₂ → a₁ = a₂ := by
   classical exact tendsto_nhds_unique
 #align has_sum.unique HasSum.unique
 
 variable [T2Space α]
 
-theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
-  (Summable.hasSum ⟨a, ha⟩).unique ha
+@[to_additive]
+theorem HasProd.tprod_eq (ha : HasProd f a) : ∏' b, f b = a :=
+  (Multipliable.hasProd ⟨a, ha⟩).unique ha
 #align has_sum.tsum_eq HasSum.tsum_eq
 
-theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
-  Iff.intro HasSum.tsum_eq fun eq ↦ eq ▸ h.hasSum
+@[to_additive]
+theorem Multipliable.hasProd_iff (h : Multipliable f) : HasProd f a ↔ ∏' b, f b = a :=
+  Iff.intro HasProd.tprod_eq fun eq ↦ eq ▸ h.hasProd
 #align summable.has_sum_iff Summable.hasSum_iff
 
-end HasSum
+end HasProd
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -65,7 +65,7 @@ def Summable (f : β → α) : Prop :=
   ∃ a, HasSum f a
 #align summable Summable
 
-open Classical in
+open scoped Classical in
 /-- `∑' i, f i` is the sum of `f` it exists, or 0 otherwise. -/
 irreducible_def tsum {β} (f : β → α) :=
   if h : Summable f then
@@ -73,7 +73,7 @@ irreducible_def tsum {β} (f : β → α) :=
   When the support of `f` is finite, we make the most reasonable choice to use the finite sum over
   the support. Otherwise, we choose arbitrarily an `a` satisfying `HasSum f a`. -/
     if (support f).Finite then finsum f
-    else choose h
+    else h.choose
   else 0
 #align tsum tsum
 
@@ -123,7 +123,7 @@ theorem Summable.hasSum (ha : Summable f) : HasSum f (∑' b, f b) := by
   simp only [tsum_def, ha, dite_true]
   by_cases H : (support f).Finite
   · simp [H, hasSum_sum_of_ne_finset_zero, finsum_eq_sum]
-  · simpa [H] using Classical.choose_spec ha
+  · simpa [H] using ha.choose_spec
 #align summable.has_sum Summable.hasSum
 
 theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f a₂ → a₁ = a₂ := by
chore(Topology/Algebra/InfiniteSum): split up large file (#11050)

Split up Mathlib.Topology.Algebra.InfiniteSum.Basic (1600 lines) into smaller files.

chore: more backporting of simp changes from #10995 (#11001)

Co-authored-by: Patrick Massot <patrickmassot@free.fr> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -1073,7 +1073,7 @@ theorem HasSum.sum_nat_of_sum_int {α : Type*} [AddCommMonoid α] [TopologicalSp
   let u2 := v'.image fun x : ℕ => -(x : ℤ)
   have A : u ⊆ u1 ∪ u2 := by
     intro x hx
-    simp only [mem_union, mem_image, exists_prop]
+    simp only [u1, u2, mem_union, mem_image, exists_prop]
     rcases le_total 0 x with (h'x | h'x)
     · left
       refine' ⟨Int.natAbs x, hv' _, _⟩
@@ -1095,9 +1095,9 @@ theorem HasSum.sum_nat_of_sum_int {α : Type*} [AddCommMonoid α] [TopologicalSp
       · intro x hx
         suffices x ≠ 0 by simp only [this, if_false]
         rintro rfl
-        simp at hx
+        simp [u1, u2] at hx
       · intro x hx
-        simp only [mem_inter, mem_image, exists_prop] at hx
+        simp only [u1, u2, mem_inter, mem_image, exists_prop] at hx
         have : x = 0 := by
           apply le_antisymm
           · rcases hx.2 with ⟨a, _, rfl⟩
@@ -1106,7 +1106,7 @@ theorem HasSum.sum_nat_of_sum_int {α : Type*} [AddCommMonoid α] [TopologicalSp
             simp only [Nat.cast_nonneg]
         simp only [this, eq_self_iff_true, if_true]
     _ = (∑ x in u1, f x) + ∑ x in u2, f x := sum_union_inter
-    _ = (∑ b in v', f b) + ∑ b in v', f (-b) := by simp
+    _ = (∑ b in v', f b) + ∑ b in v', f (-b) := by simp [u1, u2]
     _ = ∑ b in v', (f b + f (-b)) := sum_add_distrib.symm
 #align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_int
 
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -1600,8 +1600,8 @@ lemma MulAction.automorphize_smul_left [Group α] [MulAction α β] (f : β →
   intro b
   simp only [automorphize, Pi.smul_apply', comp_apply]
   set π : β → Quotient (MulAction.orbitRel α β) := Quotient.mk (MulAction.orbitRel α β)
-  have H₁ : ∀ a : α, π (a • b) = π b
-  · intro a
+  have H₁ : ∀ a : α, π (a • b) = π b := by
+    intro a
     apply (@Quotient.eq _ (MulAction.orbitRel α β) (a • b) b).mpr
     use a
   change ∑' a : α, g (π (a • b)) • f (a • b) = g (π b) • ∑' a : α, f (a • b)
@@ -1619,8 +1619,8 @@ lemma AddAction.automorphize_smul_left [AddGroup α] [AddAction α β]  (f : β
   intro b
   simp only [automorphize, Pi.smul_apply', comp_apply]
   set π : β → Quotient (AddAction.orbitRel α β) := Quotient.mk (AddAction.orbitRel α β)
-  have H₁ : ∀ a : α, π (a +ᵥ b) = π b
-  · intro a
+  have H₁ : ∀ a : α, π (a +ᵥ b) = π b := by
+    intro a
     apply (@Quotient.eq _ (AddAction.orbitRel α β) (a +ᵥ b) b).mpr
     use a
   change ∑' a : α, g (π (a +ᵥ b)) • f (a +ᵥ b) = g (π b) • ∑' a : α, f (a +ᵥ b)
chore: tidy various files (#10311)
Diff
@@ -571,7 +571,7 @@ theorem Function.Injective.tsum_eq {g : γ → β} (hg : Injective g) {f : β 
     (hf : support f ⊆ Set.range g) : ∑' c, f (g c) = ∑' b, f b := by
   have : support f = g '' support (f ∘ g) := by
     rw [support_comp_eq_preimage, Set.image_preimage_eq_iff.2 hf]
-  change tsum (f ∘ g) = tsum f
+  rw [← Function.comp_def]
   by_cases hf_fin : (support f).Finite
   · have hfg_fin : (support (f ∘ g)).Finite := hf_fin.preimage (hg.injOn _)
     lift g to γ ↪ β using hg
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike is EquivLike, since that has a custom coe_injective' field that is easier to implement. All other classes should take FunLike or EquivLike as a parameter.

Zulip thread

Important changes

Previously, morphism classes would be Type-valued and extend FunLike:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

After this PR, they should be Prop-valued and take FunLike as a parameter:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  [FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

(Note that A B stay marked as outParam even though they are not purely required to be so due to the FunLike parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam is slightly faster.)

Similarly, MyEquivClass should take EquivLike as a parameter.

As a result, every mention of [MyHomClass F A B] should become [FunLike F A B] [MyHomClass F A B].

Remaining issues

Slower (failing) search

While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul is more expensive. This is due to suboptimal processing of arguments. For example:

variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)

theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y

example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _

Before this PR, applying map_mul f gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Since M and N are out_params, [MulHomClass F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found.

After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Now [FunLike F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found, before trying MulHomClass F M N which fails. Since the Mul hierarchy is very big, this can be slow to fail, especially when there is no such Mul instance.

A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N] because MulHomClass fails or succeeds much faster than the others.

As a consequence, the simpNF linter is much slower since by design it tries and fails to apply many map_ lemmas. The same issue occurs a few times in existing calls to simp [map_mul], where map_mul is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.

simp not firing sometimes

This affects map_smulₛₗ and related definitions. For simp lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw can find every argument to map_smulₛₗ successfully but simp can't: leanprover/lean4#3701.

Missing instances due to unification failing

Especially in the category theory library, we might sometimes have a type A which is also accessible as a synonym (Bundled A hA).1. Instance synthesis doesn't always work if we have f : A →* B but x * y : (Bundled A hA).1 or vice versa. This seems to be mostly fixed by keeping A B as outParams in MulHomClass F A B. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1 instead of using the syntax in the discrimination tree.)

Workaround for issues

The timeouts can be worked around for now by specifying which map_mul we mean, either as map_mul f for some explicit f, or as e.g. MonoidHomClass.map_mul.

map_smulₛₗ not firing as simp lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ a simp lemma instead of the generic map_smulₛₗ. Writing simp [map_smulₛₗ _] also works.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -269,7 +269,8 @@ theorem Equiv.summable_iff_of_support {g : γ → α} (e : support f ≃ support
 #align equiv.summable_iff_of_support Equiv.summable_iff_of_support
 
 protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasSum f a) {G}
-    [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : HasSum (g ∘ f) (g a) :=
+    [FunLike G α γ] [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) :
+    HasSum (g ∘ f) (g a) :=
   have : (g ∘ fun s : Finset β => ∑ b in s, f b) = fun s : Finset β => ∑ b in s, g (f b) :=
     funext <| map_sum g _
   show Tendsto (fun s : Finset β => ∑ b in s, g (f b)) atTop (𝓝 (g a)) from
@@ -277,12 +278,13 @@ protected theorem HasSum.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : HasS
 #align has_sum.map HasSum.map
 
 protected theorem Summable.map [AddCommMonoid γ] [TopologicalSpace γ] (hf : Summable f) {G}
-    [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : Summable (g ∘ f) :=
+    [FunLike G α γ] [AddMonoidHomClass G α γ] (g : G) (hg : Continuous g) : Summable (g ∘ f) :=
   (hf.hasSum.map g hg).summable
 #align summable.map Summable.map
 
 protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [TopologicalSpace γ] {G G'}
-    [AddMonoidHomClass G α γ] [AddMonoidHomClass G' γ α] (g : G) (g' : G') (hg : Continuous g)
+    [FunLike G α γ] [AddMonoidHomClass G α γ] [FunLike G' γ α] [AddMonoidHomClass G' γ α]
+    (g : G) (g' : G') (hg : Continuous g)
     (hg' : Continuous g') (hinv : Function.LeftInverse g' g) : Summable (g ∘ f) ↔ Summable f :=
   ⟨fun h => by
     have := h.map _ hg'
@@ -291,9 +293,9 @@ protected theorem Summable.map_iff_of_leftInverse [AddCommMonoid γ] [Topologica
 
 /-- A special case of `Summable.map_iff_of_leftInverse` for convenience -/
 protected theorem Summable.map_iff_of_equiv [AddCommMonoid γ] [TopologicalSpace γ] {G}
-    [AddEquivClass G α γ] (g : G) (hg : Continuous g)
-    (hg' : Continuous (AddEquivClass.toEquivLike.inv g : γ → α)) : Summable (g ∘ f) ↔ Summable f :=
-  Summable.map_iff_of_leftInverse g (g : α ≃+ γ).symm hg hg' (AddEquivClass.toEquivLike.left_inv g)
+    [EquivLike G α γ] [AddEquivClass G α γ] (g : G) (hg : Continuous g)
+    (hg' : Continuous (EquivLike.inv g : γ → α)) : Summable (g ∘ f) ↔ Summable f :=
+  Summable.map_iff_of_leftInverse g (g : α ≃+ γ).symm hg hg' (EquivLike.left_inv g)
 #align summable.map_iff_of_equiv Summable.map_iff_of_equiv
 
 /-- If `f : ℕ → α` has sum `a`, then the partial sums `∑_{i=0}^{n-1} f i` converge to `a`. -/
feat(Algebra/InfiniteSum): drop [T2Space _] assumption (#10060)
  • Add CanLift instance for Function.Embedding.

  • Assume Injective i instead of an equivalent condition in hasSum_iff_hasSum_of_ne_zero_bij.

  • Add tsum_eq_sum', a version of tsum_eq_sum that explicitly mentions support f.

  • Add Function.Injective.tsum_eq, use it to drop [T2Space _] assumption in

    • Equiv.tsum_eq;
    • tsum_subtype_eq_of_support_subset;
    • tsum_subtype_support;
    • tsum_subtype;
    • tsum_univ;
    • tsum_image;
    • tsum_range;
    • tsum_setElem_eq_tsum_setElem_diff;
    • tsum_eq_tsum_diff_singleton;
    • tsum_eq_tsum_of_ne_zero_bij;
    • Equiv.tsum_eq_tsum_of_support;
    • tsum_extend_zero;
  • Golf some proofs.

  • Drop Equiv.Set.prod_singleton_left and Equiv.Set.prod_singleton_right added in #10038. @MichaelStollBayreuth, if you need these Equivs, then please

    • restore them in Logic/Equiv/Set, not in Data/Set/Prod;
    • call them Equiv.Set.singletonProd and Equiv.Set.prodSingleton, following the lowerCamelCase naming convention for defs;
    • reuse the existing Equiv.Set.prod and Equiv.prodUnique/Equiv.uniqueProd in the definitions.
Diff
@@ -28,7 +28,6 @@ generally, see `HasSum.tendsto_sum_nat`.
 
 set_option autoImplicit true
 
-
 noncomputable section
 
 open Filter Finset Function
@@ -113,20 +112,17 @@ theorem Summable.congr (hf : Summable f) (hfg : ∀ b, f b = g b) : Summable g :
 #align summable.congr Summable.congr
 
 theorem HasSum.hasSum_of_sum_eq {g : γ → α}
-    (h_eq :
-      ∀ u : Finset γ,
-        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
+    (h_eq : ∀ u : Finset γ, ∃ v : Finset β, ∀ v', v ⊆ v' →
+      ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
     (hf : HasSum g a) : HasSum f a :=
   le_trans (map_atTop_finset_sum_le_of_sum_eq h_eq) hf
 #align has_sum.has_sum_of_sum_eq HasSum.hasSum_of_sum_eq
 
 theorem hasSum_iff_hasSum {g : γ → α}
-    (h₁ :
-      ∀ u : Finset γ,
-        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
-    (h₂ :
-      ∀ v : Finset β,
-        ∃ u : Finset γ, ∀ u', u ⊆ u' → ∃ v', v ⊆ v' ∧ ∑ b in v', f b = ∑ x in u', g x) :
+    (h₁ : ∀ u : Finset γ, ∃ v : Finset β, ∀ v', v ⊆ v' →
+      ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
+    (h₂ : ∀ v : Finset β, ∃ u : Finset γ, ∀ u', u ⊆ u' →
+      ∃ v', v ⊆ v' ∧ ∑ b in v', f b = ∑ x in u', g x) :
     HasSum f a ↔ HasSum g a :=
   ⟨HasSum.hasSum_of_sum_eq h₂, HasSum.hasSum_of_sum_eq h₁⟩
 #align has_sum_iff_has_sum hasSum_iff_hasSum
@@ -137,7 +133,7 @@ theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 
 theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
-    (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : Summable (f ∘ g) ↔ Summable f :=
+    (hf : ∀ x ∉ Set.range g, f x = 0) : Summable (f ∘ g) ↔ Summable f :=
   exists_congr fun _ => hg.hasSum_iff hf
 #align function.injective.summable_iff Function.Injective.summable_iff
 
@@ -257,12 +253,12 @@ theorem Equiv.hasSum_iff_of_support {g : γ → α} (e : support f ≃ support g
 #align equiv.has_sum_iff_of_support Equiv.hasSum_iff_of_support
 
 theorem hasSum_iff_hasSum_of_ne_zero_bij {g : γ → α} (i : support g → β)
-    (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
+    (hi : Injective i) (hf : support f ⊆ Set.range i)
     (hfg : ∀ x, f (i x) = g x) : HasSum f a ↔ HasSum g a :=
   Iff.symm <|
     Equiv.hasSum_iff_of_support
       (Equiv.ofBijective (fun x => ⟨i x, fun hx => x.coe_prop <| hfg x ▸ hx⟩)
-        ⟨fun _ _ h => Subtype.ext <| hi <| Subtype.ext_iff.1 h, fun y =>
+        ⟨fun _ _ h => hi <| Subtype.ext_iff.1 h, fun y =>
           (hf y.coe_prop).imp fun _ hx => Subtype.ext hx⟩)
       hfg
 #align has_sum_iff_has_sum_of_ne_zero_bij hasSum_iff_hasSum_of_ne_zero_bij
@@ -312,7 +308,7 @@ theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f
 
 theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (hf : Summable f) :
     HasSum f a ↔ Tendsto (fun n : ℕ => ∑ i in range n, f i) atTop (𝓝 a) := by
-  refine' ⟨fun h => h.tendsto_sum_nat, fun h => _⟩
+  refine ⟨fun h => h.tendsto_sum_nat, fun h => ?_⟩
   rw [tendsto_nhds_unique h hf.hasSum.tendsto_sum_nat]
   exact hf.hasSum
 #align summable.has_sum_iff_tendsto_nat Summable.hasSum_iff_tendsto_nat
@@ -486,16 +482,13 @@ theorem tsum_congr_subtype (f : β → α) {P Q : β → Prop} (h : ∀ x, P x 
 theorem tsum_eq_finsum (hf : (support f).Finite) :
     ∑' b, f b = ∑ᶠ b, f b := by simp [tsum_def, summable_of_finite_support hf, hf]
 
-theorem tsum_eq_sum {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
+theorem tsum_eq_sum' {s : Finset β} (hf : support f ⊆ s) :
     ∑' b, f b = ∑ b in s, f b := by
-  have I : support f ⊆ s := by
-    intros x hx
-    contrapose! hx
-    rw [nmem_support]
-    exact hf _ hx
-  simp only [tsum_def, summable_of_ne_finset_zero hf, Set.Finite.subset (finite_toSet s) I,
-     ite_true, dite_eq_ite]
-  exact finsum_eq_sum_of_support_subset f I
+  rw [tsum_eq_finsum (s.finite_toSet.subset hf), finsum_eq_sum_of_support_subset _ hf]
+
+theorem tsum_eq_sum {s : Finset β} (hf : ∀ b ∉ s, f b = 0) :
+    ∑' b, f b = ∑ b in s, f b :=
+  tsum_eq_sum' <| support_subset_iff'.2 hf
 #align tsum_eq_sum tsum_eq_sum
 
 @[simp]
@@ -518,26 +511,22 @@ theorem tsum_fintype [Fintype β] (f : β → α) : ∑' b, f b = ∑ b, f b :=
 #align tsum_fintype tsum_fintype
 
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
-    ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
-  have : ∀ (x) (_ : x ∉ s), Set.indicator (↑s) f x = 0 := fun _ hx =>
-    Set.indicator_apply_eq_zero.2 fun hx' => (hx <| Finset.mem_coe.1 hx').elim
-  (Finset.sum_congr rfl fun _ hx =>
-        (Set.indicator_apply_eq_self.2 fun hx' => (hx' <| Finset.mem_coe.2 hx).elim).symm).trans
-    (tsum_eq_sum this).symm
+    ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x := by
+  rw [tsum_eq_sum' (Set.support_indicator_subset), Finset.sum_indicator_subset _ Finset.Subset.rfl]
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
 
 theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f false + f true := by
   rw [tsum_fintype, Fintype.sum_bool, add_comm]
 #align tsum_bool tsum_bool
 
-theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
+theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ b' ≠ b, f b' = 0) :
     ∑' b, f b = f b := by
   rw [tsum_eq_sum (s := {b}), sum_singleton]
   exact fun b' hb' ↦ hf b' (by simpa using hb')
-  #align tsum_eq_single tsum_eq_single
+#align tsum_eq_single tsum_eq_single
 
-theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
-    (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : ∑' (b') (c'), f b' c' = f b c :=
+theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ b' ≠ b, f b' c = 0)
+    (hfc : ∀ b', ∀ c' ≠ c, f b' c' = 0) : ∑' (b') (c'), f b' c' = f b c :=
   calc
     ∑' (b') (c'), f b' c' = ∑' b', f b' c := tsum_congr fun b' => tsum_eq_single _ (hfc b')
     _ = f b c := tsum_eq_single _ hfb
@@ -575,70 +564,43 @@ theorem tsum_singleton (b : β) (f : β → α) : ∑' x : ({b} : Set β), f x =
   rw [← coe_singleton, Finset.tsum_subtype', sum_singleton]
 #align tsum_singleton tsum_singleton
 
-variable [T2Space α]
-
-theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
-  (Summable.hasSum ⟨a, ha⟩).unique ha
-#align has_sum.tsum_eq HasSum.tsum_eq
-
-theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
-  Iff.intro HasSum.tsum_eq fun eq => eq ▸ h.hasSum
-#align summable.has_sum_iff Summable.hasSum_iff
-
-theorem tsum_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
-    ∑' b : β, (if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
-  by_cases hP : P <;> simp [hP]
-#align tsum_dite_right tsum_dite_right
-
-theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
-    ∑' b : β, (if h : P then x b h else 0) = if h : P then ∑' b : β, x b h else 0 := by
-  by_cases hP : P <;> simp [hP]
-#align tsum_dite_left tsum_dite_left
-
-theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type*} [AddCommMonoid α']
-    [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
-    {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : ∑' b, f b = e (∑' c, g c) :=
-  _root_.by_cases (fun x => (h.mpr x.hasSum).tsum_eq) fun hg : ¬Summable g => by
-    have hf : ¬Summable f := mt (hes.summable_iff_of_hasSum_iff @h).1 hg
-    simp [tsum_def, hf, hg, h0]
-#align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
-
-theorem tsum_eq_tsum_of_hasSum_iff_hasSum {f : β → α} {g : γ → α}
-    (h : ∀ {a}, HasSum f a ↔ HasSum g a) : ∑' b, f b = ∑' c, g c :=
-  surjective_id.tsum_eq_tsum_of_hasSum_iff_hasSum rfl @h
-#align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSum
-
-theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : ∑' c, f (j c) = ∑' b, f b :=
-  tsum_eq_tsum_of_hasSum_iff_hasSum j.hasSum_iff
+open Classical in
+theorem Function.Injective.tsum_eq {g : γ → β} (hg : Injective g) {f : β → α}
+    (hf : support f ⊆ Set.range g) : ∑' c, f (g c) = ∑' b, f b := by
+  have : support f = g '' support (f ∘ g) := by
+    rw [support_comp_eq_preimage, Set.image_preimage_eq_iff.2 hf]
+  change tsum (f ∘ g) = tsum f
+  by_cases hf_fin : (support f).Finite
+  · have hfg_fin : (support (f ∘ g)).Finite := hf_fin.preimage (hg.injOn _)
+    lift g to γ ↪ β using hg
+    simp_rw [tsum_eq_sum' hf_fin.coe_toFinset.ge, tsum_eq_sum' hfg_fin.coe_toFinset.ge,
+      comp_apply, ← Finset.sum_map]
+    refine Finset.sum_congr (Finset.coe_injective ?_) fun _ _ ↦ rfl
+    simp [this]
+  · have hf_fin' : ¬ Set.Finite (support (f ∘ g)) := by
+      rwa [this, Set.finite_image_iff (hg.injOn _)] at hf_fin
+    simp_rw [tsum_def, if_neg hf_fin, if_neg hf_fin', Summable,
+      hg.hasSum_iff (support_subset_iff'.1 hf)]
+
+theorem Equiv.tsum_eq (e : γ ≃ β) (f : β → α) : ∑' c, f (e c) = ∑' b, f b :=
+  e.injective.tsum_eq <| by simp
 #align equiv.tsum_eq Equiv.tsum_eq
 
-theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
-    (he : ∀ x, g (e x) = f x) : ∑' x, f x = ∑' y, g y :=
-  tsum_eq_tsum_of_hasSum_iff_hasSum (hasSum_iff_of_support e he)
-#align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_support
-
-theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
-    (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
-    (hfg : ∀ x, f (i x) = g x) : ∑' x, f x = ∑' y, g y :=
-  tsum_eq_tsum_of_hasSum_iff_hasSum (hasSum_iff_hasSum_of_ne_zero_bij i hi hf hfg)
-#align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bij
-
-@[simp]
-lemma tsum_extend_zero {γ : Type*} {g : γ → β} (hg : Injective g) (f : γ → α) :
-    ∑' y, extend g f 0 y = ∑' x, f x :=
-  tsum_eq_tsum_of_hasSum_iff_hasSum <| hasSum_extend_zero hg
-
-/-! ### `tsum` on subsets -/
-
-theorem tsum_subtype (s : Set β) (f : β → α) : ∑' x : s, f x = ∑' x, s.indicator f x :=
-  tsum_eq_tsum_of_hasSum_iff_hasSum hasSum_subtype_iff_indicator
-#align tsum_subtype tsum_subtype
+/-! ### `tsum` on subsets - part 1 -/
 
 theorem tsum_subtype_eq_of_support_subset {f : β → α} {s : Set β} (hs : support f ⊆ s) :
     ∑' x : s, f x = ∑' x, f x :=
-  tsum_eq_tsum_of_hasSum_iff_hasSum (hasSum_subtype_iff_of_support_subset hs)
+  Subtype.val_injective.tsum_eq <| by simpa
 #align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subset
 
+theorem tsum_subtype_support (f : β → α) : ∑' x : support f, f x = ∑' x, f x :=
+  tsum_subtype_eq_of_support_subset Set.Subset.rfl
+
+theorem tsum_subtype (s : Set β) (f : β → α) : ∑' x : s, f x = ∑' x, s.indicator f x := by
+  rw [← tsum_subtype_eq_of_support_subset Set.support_indicator_subset, tsum_congr]
+  simp
+#align tsum_subtype tsum_subtype
+
 -- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
 @[simp, nolint simpNF]
 theorem tsum_univ (f : β → α) : ∑' x : (Set.univ : Set β), f x = ∑' x, f x :=
@@ -658,19 +620,68 @@ theorem tsum_range {g : γ → β} (f : β → α) (hg : Injective g) :
 
 /-- If `f b = 0` for all `b ∈ t`, then the sum over `f a` with `a ∈ s` is the same as the
 sum over `f a` with `a ∈ s ∖ t`. -/
-lemma tsum_setElem_eq_tsum_setElem_diff [T2Space α] {f : β → α} (s t : Set β)
+lemma tsum_setElem_eq_tsum_setElem_diff {f : β → α} (s t : Set β)
     (hf₀ : ∀ b ∈ t, f b = 0) :
     ∑' a : s, f a = ∑' a : (s \ t : Set β), f a :=
-  tsum_eq_tsum_of_hasSum_iff_hasSum fun {a} ↦ Iff.symm <|
-    (Set.inclusion_injective <| s.diff_subset t).hasSum_iff
-      (f := fun b : s ↦ f b) fun b hb ↦ hf₀ b <| by simpa using hb
+  .symm <| (Set.inclusion_injective (Set.diff_subset s t)).tsum_eq (f := f ∘ (↑)) <|
+    support_subset_iff'.2 fun b hb ↦ hf₀ b <| by simpa using hb
 
 /-- If `f b = 0`, then the sum over `f a` with `a ∈ s` is the same as the sum over `f a` for
 `a ∈ s ∖ {b}`. -/
-lemma tsum_eq_tsum_diff_singleton [T2Space α] {f : β → α} (s : Set β) {b : β} (hf₀ : f b = 0) :
+lemma tsum_eq_tsum_diff_singleton {f : β → α} (s : Set β) {b : β} (hf₀ : f b = 0) :
     ∑' a : s, f a = ∑' a : (s \ {b} : Set β), f a :=
   tsum_setElem_eq_tsum_setElem_diff s {b} fun _ ha ↦ ha ▸ hf₀
 
+theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β) (hi : Injective i)
+    (hf : support f ⊆ Set.range i) (hfg : ∀ x, f (i x) = g x) : ∑' x, f x = ∑' y, g y := by
+  rw [← tsum_subtype_support g, ← hi.tsum_eq hf]
+  simp only [hfg]
+#align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bij
+
+theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
+    (he : ∀ x, g (e x) = f x) : ∑' x, f x = ∑' y, g y :=
+  .symm <| tsum_eq_tsum_of_ne_zero_bij _ (Subtype.val_injective.comp e.injective) (by simp) he
+#align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_support
+
+theorem tsum_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
+    ∑' b : β, (if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
+  by_cases hP : P <;> simp [hP]
+#align tsum_dite_right tsum_dite_right
+
+theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
+    ∑' b : β, (if h : P then x b h else 0) = if h : P then ∑' b : β, x b h else 0 := by
+  by_cases hP : P <;> simp [hP]
+#align tsum_dite_left tsum_dite_left
+
+@[simp]
+lemma tsum_extend_zero {γ : Type*} {g : γ → β} (hg : Injective g) (f : γ → α) :
+    ∑' y, extend g f 0 y = ∑' x, f x := by
+  have : support (extend g f 0) ⊆ Set.range g := support_subset_iff'.2 <| extend_apply' _ _
+  simp_rw [← hg.tsum_eq this, hg.extend_apply]
+
+variable [T2Space α]
+
+theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
+  (Summable.hasSum ⟨a, ha⟩).unique ha
+#align has_sum.tsum_eq HasSum.tsum_eq
+
+theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
+  Iff.intro HasSum.tsum_eq fun eq => eq ▸ h.hasSum
+#align summable.has_sum_iff Summable.hasSum_iff
+
+theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type*} [AddCommMonoid α']
+    [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
+    {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : ∑' b, f b = e (∑' c, g c) :=
+  by_cases (fun x => (h.mpr x.hasSum).tsum_eq) fun hg : ¬Summable g => by
+    have hf : ¬Summable f := mt (hes.summable_iff_of_hasSum_iff @h).1 hg
+    simp [tsum_def, hf, hg, h0]
+#align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
+
+theorem tsum_eq_tsum_of_hasSum_iff_hasSum {f : β → α} {g : γ → α}
+    (h : ∀ {a}, HasSum f a ↔ HasSum g a) : ∑' b, f b = ∑' c, g c :=
+  surjective_id.tsum_eq_tsum_of_hasSum_iff_hasSum rfl @h
+#align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSum
+
 section ContinuousAdd
 
 variable [ContinuousAdd α]
@@ -731,31 +742,13 @@ variable [Encodable γ]
   taking a supremum. This is useful for outer measures. -/
 theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
     ∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b) = ∑' b : γ, m (s b) := by
-  have H : ∀ n, m (⨆ b ∈ decode₂ γ n, s b) ≠ 0 → (decode₂ γ n).isSome := by
-    intro n h
-    generalize decode₂ γ n = foo at *
-    cases' foo with b
-    · refine' (h <| by simp [m0]).elim
-    · exact rfl
-  symm
-  refine' tsum_eq_tsum_of_ne_zero_bij (fun a => Option.get _ (H a.1 a.2)) _ _ _
-  · dsimp only []
-    rintro ⟨m, hm⟩ ⟨n, hn⟩ e
-    have := mem_decode₂.1 (Option.get_mem (H n hn))
-    rwa [← e, mem_decode₂.1 (Option.get_mem (H m hm))] at this
-  · intro b h
-    refine' ⟨⟨encode b, _⟩, _⟩
-    · simp only [mem_support, encodek₂] at h ⊢
-      convert h
-      simp [Set.ext_iff, encodek₂]
-    · exact Option.get_of_mem _ (encodek₂ _)
-  · rintro ⟨n, h⟩
-    dsimp only [Subtype.coe_mk]
-    trans
-    swap
-    rw [show decode₂ γ n = _ from Option.get_mem (H n h)]
-    congr
-    simp [ext_iff, -Option.some_get]
+  rw [← tsum_extend_zero (@encode_injective γ _)]
+  refine tsum_congr fun n ↦ ?_
+  rcases em (n ∈ Set.range (encode : γ → ℕ)) with ⟨a, rfl⟩ | hn
+  · simp [encode_injective.extend_apply]
+  · rw [extend_apply' _ _ _ hn]
+    rw [← decode₂_ne_none_iff, ne_eq, not_not] at hn
+    simp [hn, m0]
 #align tsum_supr_decode₂ tsum_iSup_decode₂
 
 /-- `tsum_iSup_decode₂` specialized to the complete lattice of sets. -/
@@ -1293,15 +1286,15 @@ end UniformGroup
 
 section prod_singleton
 
-variable [AddCommMonoid γ] [TopologicalSpace γ] [T2Space γ]
+variable [AddCommMonoid γ] [TopologicalSpace γ]
 
 lemma tsum_setProd_singleton_left (a : α) (t : Set β) (f : α × β → γ) :
-    (∑' x : {a} ×ˢ t, f x) = ∑' b : t, f (a, b) :=
-  (Equiv.Set.prod_singleton_left a t |>.symm.tsum_eq <| ({a} ×ˢ t).restrict f).symm
+    (∑' x : {a} ×ˢ t, f x) = ∑' b : t, f (a, b) := by
+  rw [tsum_congr_set_coe _ Set.singleton_prod, tsum_image _ ((Prod.mk.inj_left a).injOn _)]
 
 lemma tsum_setProd_singleton_right (s : Set α) (b : β) (f : α × β → γ) :
-    (∑' x : s ×ˢ {b}, f x) = ∑' a : s, f (a, b) :=
-  (Equiv.Set.prod_singleton_right s b |>.symm.tsum_eq <| (s ×ˢ {b}).restrict f).symm
+    (∑' x : s ×ˢ {b}, f x) = ∑' a : s, f (a, b) := by
+  rw [tsum_congr_set_coe _ Set.prod_singleton, tsum_image _ ((Prod.mk.inj_right b).injOn _)]
 
 end prod_singleton
 
@@ -1379,8 +1372,7 @@ theorem tsum_const [T2Space G] : ∑' _ : β, (a : G) = Nat.card β • a := by
   rcases finite_or_infinite β with hβ|hβ
   · letI : Fintype β := Fintype.ofFinite β
     rw [tsum_eq_sum (s := univ) (fun x hx ↦ (hx (mem_univ x)).elim)]
-    simp only [sum_const, Nat.card_eq_fintype_card]
-    rfl
+    simp only [sum_const, Nat.card_eq_fintype_card, Fintype.card]
   · simp only [Nat.card_eq_zero_of_infinite, zero_smul]
     rcases eq_or_ne a 0 with rfl|ha
     · simp
@@ -1428,16 +1420,9 @@ lemma tsum_const_smul' {γ : Type*} [Group γ] [DistribMulAction γ α] [Continu
   `[GroupWithZero γ]` if there was such a thing as `DistribMulActionWithZero`. -/
 lemma tsum_const_smul'' {γ : Type*} [DivisionRing γ] [Module γ α] [ContinuousConstSMul γ α]
     [T2Space α] (g : γ) : ∑' (i : β), g • f i = g • ∑' (i : β), f i := by
-  by_cases hf : Summable f
-  · exact tsum_const_smul g hf
-  rw [tsum_eq_zero_of_not_summable hf]
-  simp only [smul_zero]
-  by_cases hg : g = 0
-  · simp [hg]
-  let mul_g : α ≃+ α := DistribMulAction.toAddEquiv₀ α g hg
-  apply tsum_eq_zero_of_not_summable
-  change ¬ Summable (mul_g ∘ f)
-  rwa [Summable.map_iff_of_equiv] <;> apply continuous_const_smul
+  rcases eq_or_ne g 0 with rfl | hg
+  · simp
+  · exact tsum_const_smul' (Units.mk0 g hg)
 
 end ConstSMul
 
feat(Topology/Algebra/InfiniteSum/Basic): add some lemmas on tsums (#10038)

This is the fifth PR in a sequence that adds auxiliary lemmas from the EulerProducts project to Mathlib.

It adds three lemmas on tsums:

lemma HasSum.tsum_fiberwise {α β γ : Type*} [AddCommGroup α] [UniformSpace α] [UniformAddGroup α]
    [T2Space α] [RegularSpace α] [CompleteSpace α] {f : β → α}
    {a : α} (hf : HasSum f a) (g : β → γ) :
    HasSum (fun c : γ ↦ ∑' b : g ⁻¹' {c}, f b) a

lemma tsum_setProd_singleton_left {α β γ : Type*} [AddCommMonoid γ] [TopologicalSpace γ] [T2Space γ]
    (a : α) (t : Set β) (f : α × β → γ) : (∑' x : {a} ×ˢ t, f x) = ∑' b : t, f (a, b)

lemma tsum_setProd_singleton_right {α β γ : Type*} [AddCommMonoid γ] [TopologicalSpace γ] [T2Space γ]
    (s : Set α) (b : β) (f : α × β → γ) : (∑' x : s ×ˢ {b}, f x) = ∑' a : s, f (a, b)

and the necessary equivalences

def prod_singleton_left {α β : Type*} (a : α) (t : Set β) : ↑({a} ×ˢ t) ≃ ↑t

def prod_singleton_right {α β : Type*} (s : Set α) (b : β) : ↑(s ×ˢ {b}) ≃ ↑s
Diff
@@ -1284,8 +1284,27 @@ theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f
   rfl
 #align sum_add_tsum_subtype_compl sum_add_tsum_subtype_compl
 
+lemma HasSum.tsum_fiberwise [T2Space α] {f : β → α} {a : α} (hf : HasSum f a) (g : β → γ) :
+    HasSum (fun c : γ ↦ ∑' b : g ⁻¹' {c}, f b) a :=
+  (((Equiv.sigmaFiberEquiv g).hasSum_iff).mpr hf).sigma <|
+    fun _ ↦ ((hf.summable.subtype _).hasSum_iff).mpr rfl
+
 end UniformGroup
 
+section prod_singleton
+
+variable [AddCommMonoid γ] [TopologicalSpace γ] [T2Space γ]
+
+lemma tsum_setProd_singleton_left (a : α) (t : Set β) (f : α × β → γ) :
+    (∑' x : {a} ×ˢ t, f x) = ∑' b : t, f (a, b) :=
+  (Equiv.Set.prod_singleton_left a t |>.symm.tsum_eq <| ({a} ×ˢ t).restrict f).symm
+
+lemma tsum_setProd_singleton_right (s : Set α) (b : β) (f : α × β → γ) :
+    (∑' x : s ×ˢ {b}, f x) = ∑' a : s, f (a, b) :=
+  (Equiv.Set.prod_singleton_right s b |>.symm.tsum_eq <| (s ×ˢ {b}).restrict f).symm
+
+end prod_singleton
+
 section TopologicalGroup
 
 variable {G : Type*} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup G] {f : α → G}
chore(Topology/Basic): rename variables (#9956)

Use X, Y, Z for topological spaces.

Diff
@@ -1028,10 +1028,8 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
       rw [sub_eq_iff_eq_add, add_comm, sum_add_tsum_nat_add i hf]
     have h₁ : Tendsto (fun _ : ℕ => ∑' i, f i) atTop (𝓝 (∑' i, f i)) := tendsto_const_nhds
     simpa only [h₀, sub_self] using Tendsto.sub h₁ hf.hasSum.tendsto_sum_nat
-  · convert tendsto_const_nhds (α := α) (β := ℕ) (a := 0) (f := atTop)
-    rename_i i
-    rw [← summable_nat_add_iff i] at hf
-    exact tsum_eq_zero_of_not_summable hf
+  · refine tendsto_const_nhds.congr fun n ↦ (tsum_eq_zero_of_not_summable ?_).symm
+    rwa [summable_nat_add_iff n]
 #align tendsto_sum_nat_add tendsto_sum_nat_add
 
 /-- If `f₀, f₁, f₂, ...` and `g₀, g₁, g₂, ...` are both convergent then so is the `ℤ`-indexed
@@ -1317,8 +1315,7 @@ theorem tendsto_tsum_compl_atTop_zero (f : α → G) :
     obtain ⟨s, hs⟩ := H.tsum_vanishing he
     rw [Filter.mem_map, mem_atTop_sets]
     exact ⟨s, fun t hts ↦ hs _ <| Set.disjoint_left.mpr fun a ha has ↦ ha (hts has)⟩
-  · convert tendsto_const_nhds (α := G) (β := Finset α) (f := atTop) (a := 0)
-    apply tsum_eq_zero_of_not_summable
+  · refine tendsto_const_nhds.congr fun _ ↦ (tsum_eq_zero_of_not_summable ?_).symm
     rwa [Finset.summable_compl_iff]
 #align tendsto_tsum_compl_at_top_zero tendsto_tsum_compl_atTop_zero
 
feat: non-integrability results of derivatives on [a, +oo) (#8712)

We have in the library the lemma not_intervalIntegrable_of_tendsto_norm_atTop_of_deriv_isBigO_filter, saying that if a function tends to infinity at a point in an interval [a, b], then its derivative is not interval-integrable on [a, b]. We generalize this result to allow for any set instead of [a, b], and apply it to half-infinite intervals.

In particular, we characterize integrability of x^s on [a, +oo), and deduce that x^s is never integrable on [0, +oo). This makes it possible to remove one assumption in Lemma mellin_comp_rpow on the Mellin transform.

Diff
@@ -1347,6 +1347,30 @@ theorem Summable.countable_support [FirstCountableTopology G] [T1Space G]
     (hf : Summable f) : f.support.Countable := by
   simpa only [ker_nhds] using hf.tendsto_cofinite_zero.countable_compl_preimage_ker
 
+theorem summable_const_iff [Infinite β] [T2Space G] (a : G) :
+    Summable (fun _ : β ↦ a) ↔ a = 0 := by
+  refine ⟨fun h ↦ ?_, ?_⟩
+  · by_contra ha
+    have : {a}ᶜ ∈ 𝓝 0 := compl_singleton_mem_nhds (Ne.symm ha)
+    have : Finite β := by
+      simpa [← Set.finite_univ_iff] using h.tendsto_cofinite_zero this
+    exact not_finite β
+  · rintro rfl
+    exact summable_zero
+
+@[simp]
+theorem tsum_const [T2Space G] : ∑' _ : β, (a : G) = Nat.card β • a := by
+  rcases finite_or_infinite β with hβ|hβ
+  · letI : Fintype β := Fintype.ofFinite β
+    rw [tsum_eq_sum (s := univ) (fun x hx ↦ (hx (mem_univ x)).elim)]
+    simp only [sum_const, Nat.card_eq_fintype_card]
+    rfl
+  · simp only [Nat.card_eq_zero_of_infinite, zero_smul]
+    rcases eq_or_ne a 0 with rfl|ha
+    · simp
+    · apply tsum_eq_zero_of_not_summable
+      simpa [summable_const_iff] using ha
+
 end TopologicalGroup
 
 section ConstSMul
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -1349,7 +1349,7 @@ theorem Summable.countable_support [FirstCountableTopology G] [T1Space G]
 
 end TopologicalGroup
 
-section ConstSmul
+section ConstSMul
 
 variable [Monoid γ] [TopologicalSpace α] [AddCommMonoid α] [DistribMulAction γ α]
   [ContinuousConstSMul γ α] {f : β → α}
@@ -1399,7 +1399,7 @@ lemma tsum_const_smul'' {γ : Type*} [DivisionRing γ] [Module γ α] [Continuou
   change ¬ Summable (mul_g ∘ f)
   rwa [Summable.map_iff_of_equiv] <;> apply continuous_const_smul
 
-end ConstSmul
+end ConstSMul
 
 /-! ### Product and pi types -/
 
fix: rename tsum_congr_subtype (#9080)

The lemma tsum_congr_subtype is currently stated in terms of set coercions rather than subtypes. This PR renames tsum_congr_subtype to tsum_congr_set_coe, and adds a new lemma tsum_congr_subtype whose statement is explicitly about subtypes.

Diff
@@ -475,9 +475,13 @@ section tsum
 
 variable [AddCommMonoid α] [TopologicalSpace α] {f g : β → α} {a a₁ a₂ : α}
 
-theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
+theorem tsum_congr_set_coe (f : β → α) {s t : Set β} (h : s = t) :
     ∑' x : s, f x = ∑' x : t, f x := by rw [h]
-#align tsum_congr_subtype tsum_congr_subtype
+#align tsum_congr_subtype tsum_congr_set_coe
+
+theorem tsum_congr_subtype (f : β → α) {P Q : β → Prop} (h : ∀ x, P x ↔ Q x):
+    ∑' x : {x // P x}, f x = ∑' x : {x // Q x}, f x :=
+  tsum_congr_set_coe f <| Set.ext h
 
 theorem tsum_eq_finsum (hf : (support f).Finite) :
     ∑' b, f b = ∑ᶠ b, f b := by simp [tsum_def, summable_of_finite_support hf, hf]
chore: Sink Algebra.Support down the import tree (#8919)

Function.support is a very basic definition. Nevertheless, it is a pretty heavy import because it imports most objects a support lemma can be written about.

This PR reverses the dependencies between those objects and Function.support, so that the latter can become a much more lightweight import.

Only two import could not easily be reversed, namely the ones to Data.Set.Finite and Order.ConditionallyCompleteLattice.Basic, so I created two new files instead.

I credit:

Diff
@@ -361,7 +361,7 @@ theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι →
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ (↑) : t i → α) (a i)) :
     HasSum (f ∘ (↑) : (⋃ i ∈ s, t i) → α) (∑ i in s, a i) := by
   simp_rw [hasSum_subtype_iff_indicator] at *
-  rw [Set.indicator_finset_biUnion _ _ hs]
+  rw [Finset.indicator_biUnion _ _ hs]
   exact hasSum_sum hf
 #align has_sum_sum_disjoint hasSum_sum_disjoint
 
feat: extend results on product measures from sigma-finite to s-finite measures (#8713)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -619,6 +619,11 @@ theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
   tsum_eq_tsum_of_hasSum_iff_hasSum (hasSum_iff_hasSum_of_ne_zero_bij i hi hf hfg)
 #align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bij
 
+@[simp]
+lemma tsum_extend_zero {γ : Type*} {g : γ → β} (hg : Injective g) (f : γ → α) :
+    ∑' y, extend g f 0 y = ∑' x, f x :=
+  tsum_eq_tsum_of_hasSum_iff_hasSum <| hasSum_extend_zero hg
+
 /-! ### `tsum` on subsets -/
 
 theorem tsum_subtype (s : Set β) (f : β → α) : ∑' x : s, f x = ∑' x, s.indicator f x :=
chore: golf tsum_setElem_eq_tsum_setElem_diff (#8393)

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -647,21 +647,14 @@ theorem tsum_range {g : γ → β} (f : β → α) (hg : Injective g) :
   simp_rw [← comp_apply (g := g), tsum_univ (f ∘ g)]
 #align tsum_range tsum_range
 
-open Set in
 /-- If `f b = 0` for all `b ∈ t`, then the sum over `f a` with `a ∈ s` is the same as the
 sum over `f a` with `a ∈ s ∖ t`. -/
 lemma tsum_setElem_eq_tsum_setElem_diff [T2Space α] {f : β → α} (s t : Set β)
     (hf₀ : ∀ b ∈ t, f b = 0) :
-    ∑' a : s, f a = ∑' a : (s \ t : Set β), f a := by
-  simp_rw [_root_.tsum_subtype]
-  refine tsum_congr fun b' ↦ ?_
-  by_cases hs : b' ∈ s \ t
-  · rw [indicator_of_mem hs f, indicator_of_mem (mem_of_mem_diff hs) f]
-  · rw [indicator_of_not_mem hs f]
-    rw [mem_diff, not_and, not_not_mem] at hs
-    by_cases h₁ : b' ∈ s
-    · simpa [indicator_of_mem h₁] using hf₀ b' <| hs h₁
-    · exact indicator_of_not_mem h₁ f
+    ∑' a : s, f a = ∑' a : (s \ t : Set β), f a :=
+  tsum_eq_tsum_of_hasSum_iff_hasSum fun {a} ↦ Iff.symm <|
+    (Set.inclusion_injective <| s.diff_subset t).hasSum_iff
+      (f := fun b : s ↦ f b) fun b hb ↦ hf₀ b <| by simpa using hb
 
 /-- If `f b = 0`, then the sum over `f a` with `a ∈ s` is the same as the sum over `f a` for
 `a ∈ s ∖ {b}`. -/
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -1135,8 +1135,9 @@ theorem cauchySeq_finset_iff_vanishing :
     (CauchySeq fun s : Finset β ↦ ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
   classical
-  simp_rw [CauchySeq, cauchy_map_iff, and_iff_right atTop_neBot, prod_atTop_atTop_eq,
-    uniformity_eq_comap_nhds_zero α, tendsto_comap_iff, (· ∘ ·), tendsto_atTop']
+  simp only [CauchySeq, cauchy_map_iff, and_iff_right atTop_neBot, prod_atTop_atTop_eq,
+    uniformity_eq_comap_nhds_zero α, tendsto_comap_iff, (· ∘ ·), atTop_neBot, true_and]
+  rw [tendsto_atTop']
   constructor
   · intro h e he
     obtain ⟨⟨s₁, s₂⟩, h⟩ := h e he
style: cleanup by putting by on the same line as := (#8407)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -695,8 +695,8 @@ theorem tsum_eq_add_tsum_ite' [DecidableEq β] {f : β → α} (b : β) (hf : Su
     _ = ite (b = b) (f b) 0 + ∑' x, update f b 0 x := by
       congr
       exact tsum_eq_single b fun b' hb' => if_neg hb'
-    _ = f b + ∑' x, ite (x = b) 0 (f x) :=
-    by simp only [update, eq_self_iff_true, if_true, eq_rec_constant, dite_eq_ite]
+    _ = f b + ∑' x, ite (x = b) 0 (f x) := by
+      simp only [update, eq_self_iff_true, if_true, eq_rec_constant, dite_eq_ite]
 #align tsum_eq_add_tsum_ite' tsum_eq_add_tsum_ite'
 
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
feat: add four lemmas on topological sums (#8325)

This adds four API lemmas that are useful for establishing Euler products:

@[simp] lemma hasSum_unique [Unique β] (f : β → α) : HasSum f (f default)

@[simp] lemma hasSum_singleton (m : β) (f : β → α) : HasSum (({m} : Set β).restrict f) (f m)

lemma tsum_setElem_eq_tsum_setElem_diff [T2Space α] {f : β → α} (s t : Set β) (hf₀ : ∀ b ∈ t, f b = 0) :
    ∑' a : s, f a = ∑' a : (s \ t : Set β), f a

lemma tsum_eq_tsum_diff_singleton {α  β : Type*} [AddCommMonoid α] [TopologicalSpace α] [T2Space α]
    {f : β → α} (s : Set β) (b : β) (hf₀ : f b = 0) :
    ∑' a : s, f a = ∑' a : (s \ {b} : Set β), f a
Diff
@@ -216,6 +216,12 @@ theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f
   hasSum_sum_of_ne_finset_zero <| by simpa [hf]
 #align has_sum_single hasSum_single
 
+@[simp] lemma hasSum_unique [Unique β] (f : β → α) : HasSum f (f default) :=
+  hasSum_single default (fun _ hb ↦ False.elim <| hb <| Unique.uniq ..)
+
+@[simp] lemma hasSum_singleton (m : β) (f : β → α) : HasSum (({m} : Set β).restrict f) (f m) :=
+  hasSum_unique (Set.restrict {m} f)
+
 theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
     HasSum (fun b' => if b' = b then a else 0) a := by
   convert @hasSum_single _ _ _ _ (fun b' => if b' = b then a else 0) b (fun b' hb' => if_neg hb')
@@ -641,6 +647,28 @@ theorem tsum_range {g : γ → β} (f : β → α) (hg : Injective g) :
   simp_rw [← comp_apply (g := g), tsum_univ (f ∘ g)]
 #align tsum_range tsum_range
 
+open Set in
+/-- If `f b = 0` for all `b ∈ t`, then the sum over `f a` with `a ∈ s` is the same as the
+sum over `f a` with `a ∈ s ∖ t`. -/
+lemma tsum_setElem_eq_tsum_setElem_diff [T2Space α] {f : β → α} (s t : Set β)
+    (hf₀ : ∀ b ∈ t, f b = 0) :
+    ∑' a : s, f a = ∑' a : (s \ t : Set β), f a := by
+  simp_rw [_root_.tsum_subtype]
+  refine tsum_congr fun b' ↦ ?_
+  by_cases hs : b' ∈ s \ t
+  · rw [indicator_of_mem hs f, indicator_of_mem (mem_of_mem_diff hs) f]
+  · rw [indicator_of_not_mem hs f]
+    rw [mem_diff, not_and, not_not_mem] at hs
+    by_cases h₁ : b' ∈ s
+    · simpa [indicator_of_mem h₁] using hf₀ b' <| hs h₁
+    · exact indicator_of_not_mem h₁ f
+
+/-- If `f b = 0`, then the sum over `f a` with `a ∈ s` is the same as the sum over `f a` for
+`a ∈ s ∖ {b}`. -/
+lemma tsum_eq_tsum_diff_singleton [T2Space α] {f : β → α} (s : Set β) {b : β} (hf₀ : f b = 0) :
+    ∑' a : s, f a = ∑' a : (s \ {b} : Set β), f a :=
+  tsum_setElem_eq_tsum_setElem_diff s {b} fun _ ha ↦ ha ▸ hf₀
+
 section ContinuousAdd
 
 variable [ContinuousAdd α]
chore: generalize CauchySeq to Preorder (#8339)
Diff
@@ -1096,16 +1096,17 @@ section UniformGroup
 variable [AddCommGroup α] [UniformSpace α]
 
 /-- The **Cauchy criterion** for infinite sums, also known as the **Cauchy convergence test** -/
-theorem summable_iff_cauchySeq_finset [CompleteSpace α] [DecidableEq β] {f : β → α} :
-    Summable f ↔ CauchySeq fun s : Finset β ↦ ∑ b in s, f b :=
-  cauchy_map_iff_exists_tendsto.symm
+theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
+    Summable f ↔ CauchySeq fun s : Finset β ↦ ∑ b in s, f b := by
+  classical exact cauchy_map_iff_exists_tendsto.symm
 #align summable_iff_cauchy_seq_finset summable_iff_cauchySeq_finset
 
 variable [UniformAddGroup α] {f g : β → α} {a a₁ a₂ : α}
 
-theorem cauchySeq_finset_iff_vanishing [DecidableEq β] :
+theorem cauchySeq_finset_iff_vanishing :
     (CauchySeq fun s : Finset β ↦ ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
+  classical
   simp_rw [CauchySeq, cauchy_map_iff, and_iff_right atTop_neBot, prod_atTop_atTop_eq,
     uniformity_eq_comap_nhds_zero α, tendsto_comap_iff, (· ∘ ·), tendsto_atTop']
   constructor
@@ -1126,7 +1127,7 @@ theorem cauchySeq_finset_iff_vanishing [DecidableEq β] :
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
 #align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishing
 
-theorem cauchySeq_finset_iff_tsum_vanishing [DecidableEq β] :
+theorem cauchySeq_finset_iff_tsum_vanishing :
     (CauchySeq fun s : Finset β ↦ ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∑' b : t, f b) ∈ e := by
   simp_rw [cauchySeq_finset_iff_vanishing, Set.disjoint_left, disjoint_left]
@@ -1135,7 +1136,8 @@ theorem cauchySeq_finset_iff_tsum_vanishing [DecidableEq β] :
     obtain ⟨s, hs⟩ := vanish o ho
     refine ⟨s, fun t hts ↦ oe ?_⟩
     by_cases ht : Summable fun a : t ↦ f a
-    · refine o_closed.mem_of_tendsto ht.hasSum (eventually_of_forall fun t' ↦ ?_)
+    · classical
+      refine o_closed.mem_of_tendsto ht.hasSum (eventually_of_forall fun t' ↦ ?_)
       rw [← sum_subtype_map_embedding fun _ _ ↦ by rfl]
       apply hs
       simp_rw [Finset.mem_map]
@@ -1162,13 +1164,11 @@ variable [CompleteSpace α]
 
 theorem summable_iff_vanishing :
     Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
-  classical
   rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
 #align summable_iff_vanishing summable_iff_vanishing
 
 theorem summable_iff_tsum_vanishing : Summable f ↔
     ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∑' b : t, f b) ∈ e := by
-  classical
   rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_tsum_vanishing]
 
 theorem summable_iff_nat_tsum_vanishing {f : ℕ → α} : Summable f ↔
feat: characterize summability by vanishing of tsums (#8194)

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -31,9 +31,9 @@ set_option autoImplicit true
 
 noncomputable section
 
-open Classical Filter Finset Function
+open Filter Finset Function
 
-open BigOperators Classical Topology
+open scoped BigOperators Topology
 
 variable {α : Type*} {β : Type*} {γ : Type*} {δ : Type*}
 
@@ -63,6 +63,7 @@ def Summable (f : β → α) : Prop :=
   ∃ a, HasSum f a
 #align summable Summable
 
+open Classical in
 /-- `∑' i, f i` is the sum of `f` it exists, or 0 otherwise. -/
 irreducible_def tsum {β} (f : β → α) :=
   if h : Summable f then
@@ -299,8 +300,8 @@ theorem HasSum.tendsto_sum_nat {f : ℕ → α} (h : HasSum f a) :
   h.comp tendsto_finset_range
 #align has_sum.tendsto_sum_nat HasSum.tendsto_sum_nat
 
-theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f a₂ → a₁ = a₂ :=
-  tendsto_nhds_unique
+theorem HasSum.unique {a₁ a₂ : α} [T2Space α] : HasSum f a₁ → HasSum f a₂ → a₁ = a₂ := by
+  classical exact tendsto_nhds_unique
 #align has_sum.unique HasSum.unique
 
 theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (hf : Summable f) :
@@ -329,8 +330,9 @@ theorem Summable.add (hf : Summable f) (hg : Summable g) : Summable fun b => f b
 #align summable.add Summable.add
 
 theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
-    (∀ i ∈ s, HasSum (f i) (a i)) → HasSum (fun b => ∑ i in s, f i b) (∑ i in s, a i) :=
-  Finset.induction_on s (by simp only [hasSum_zero, sum_empty, forall_true_iff]) <| by
+    (∀ i ∈ s, HasSum (f i) (a i)) → HasSum (fun b => ∑ i in s, f i b) (∑ i in s, a i) := by
+  classical
+  exact Finset.induction_on s (by simp only [hasSum_zero, sum_empty, forall_true_iff]) <| by
     -- Porting note: with some help, `simp` used to be able to close the goal
     simp (config := { contextual := true }) only [mem_insert, forall_eq_or_imp, not_false_iff,
       sum_insert, and_imp]
@@ -399,6 +401,7 @@ theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k)
 
 theorem HasSum.sigma [RegularSpace α] {γ : β → Type*} {f : (Σ b : β, γ b) → α} {g : β → α} {a : α}
     (ha : HasSum f a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) : HasSum g a := by
+  classical
   refine' (atTop_basis.tendsto_iff (closed_nhds_basis a)).mpr _
   rintro s ⟨hs, hsc⟩
   rcases mem_atTop_sets.mp (ha hs) with ⟨u, hu⟩
@@ -437,7 +440,7 @@ theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type*} {f : (Σb : β,
 Rather than showing that `f.update` has a specific sum in terms of `HasSum`,
 it gives a relationship between the sums of `f` and `f.update` given that both exist. -/
 theorem HasSum.update' {α β : Type*} [TopologicalSpace α] [AddCommMonoid α] [T2Space α]
-    [ContinuousAdd α] {f : β → α} {a a' : α} (hf : HasSum f a) (b : β) (x : α)
+    [ContinuousAdd α] [DecidableEq β] {f : β → α} {a a' : α} (hf : HasSum f a) (b : β) (x : α)
     (hf' : HasSum (update f b x) a') : a + x = a' + f b := by
   have : ∀ b', f b' + ite (b' = b) x 0 = update f b x b' + ite (b' = b) (f b) 0 := by
     intro b'
@@ -453,7 +456,7 @@ theorem HasSum.update' {α β : Type*} [TopologicalSpace α] [AddCommMonoid α]
 Rather than showing that the `ite` expression has a specific sum in terms of `HasSum`,
 it gives a relationship between the sums of `f` and `ite (n = b) 0 (f n)` given that both exist. -/
 theorem eq_add_of_hasSum_ite {α β : Type*} [TopologicalSpace α] [AddCommMonoid α] [T2Space α]
-    [ContinuousAdd α] {f : β → α} {a : α} (hf : HasSum f a) (b : β) (a' : α)
+    [ContinuousAdd α] [DecidableEq β] {f : β → α} {a : α} (hf : HasSum f a) (b : β) (a' : α)
     (hf' : HasSum (fun n => ite (n = b) 0 (f n)) a') : a = a' + f b := by
   refine' (add_zero a).symm.trans (hf.update' b 0 _)
   convert hf'
@@ -654,7 +657,7 @@ theorem tsum_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summa
 
 /-- Version of `tsum_eq_add_tsum_ite` for `AddCommMonoid` rather than `AddCommGroup`.
 Requires a different convergence assumption involving `Function.update`. -/
-theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (update f b 0)) :
+theorem tsum_eq_add_tsum_ite' [DecidableEq β] {f : β → α} (b : β) (hf : Summable (update f b 0)) :
     ∑' x, f x = f b + ∑' x, ite (x = b) 0 (f x) :=
   calc
     ∑' x, f x = ∑' x, (ite (x = b) (f x) 0 + update f b 0 x) :=
@@ -1093,19 +1096,18 @@ section UniformGroup
 variable [AddCommGroup α] [UniformSpace α]
 
 /-- The **Cauchy criterion** for infinite sums, also known as the **Cauchy convergence test** -/
-theorem summable_iff_cauchySeq_finset [CompleteSpace α] {f : β → α} :
-    Summable f ↔ CauchySeq fun s : Finset β => ∑ b in s, f b :=
+theorem summable_iff_cauchySeq_finset [CompleteSpace α] [DecidableEq β] {f : β → α} :
+    Summable f ↔ CauchySeq fun s : Finset β ↦ ∑ b in s, f b :=
   cauchy_map_iff_exists_tendsto.symm
 #align summable_iff_cauchy_seq_finset summable_iff_cauchySeq_finset
 
 variable [UniformAddGroup α] {f g : β → α} {a a₁ a₂ : α}
 
-theorem cauchySeq_finset_iff_vanishing :
-    (CauchySeq fun s : Finset β => ∑ b in s, f b) ↔
+theorem cauchySeq_finset_iff_vanishing [DecidableEq β] :
+    (CauchySeq fun s : Finset β ↦ ∑ b in s, f b) ↔
       ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
-  simp only [CauchySeq, cauchy_map_iff, and_iff_right atTop_neBot, prod_atTop_atTop_eq,
-    uniformity_eq_comap_nhds_zero α, tendsto_comap_iff, (· ∘ ·), atTop_neBot, true_and]
-  rw [tendsto_atTop']
+  simp_rw [CauchySeq, cauchy_map_iff, and_iff_right atTop_neBot, prod_atTop_atTop_eq,
+    uniformity_eq_comap_nhds_zero α, tendsto_comap_iff, (· ∘ ·), tendsto_atTop']
   constructor
   · intro h e he
     obtain ⟨⟨s₁, s₂⟩, h⟩ := h e he
@@ -1124,43 +1126,60 @@ theorem cauchySeq_finset_iff_vanishing :
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
 #align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishing
 
-/-- 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 tendsto_tsum_compl_atTop_zero (f : β → α) :
-    Tendsto (fun s : Finset β => ∑' b : { x // x ∉ s }, f b) atTop (𝓝 0) := by
-  by_cases H : Summable f
-  · intro e he
-    rcases exists_mem_nhds_isClosed_subset he with ⟨o, ho, o_closed, oe⟩
-    simp only [le_eq_subset, Set.mem_preimage, mem_atTop_sets, Filter.mem_map, ge_iff_le]
-    obtain ⟨s, hs⟩ : ∃ s : Finset β, ∀ t : Finset β, Disjoint t s → (∑ b : β in t, f b) ∈ o :=
-      cauchySeq_finset_iff_vanishing.1 (Tendsto.cauchySeq H.hasSum) o ho
-    refine' ⟨s, fun a sa => oe _⟩
-    have A : Summable fun b : { x // x ∉ a } => f b := a.summable_compl_iff.2 H
-    refine' IsClosed.mem_of_tendsto o_closed A.hasSum (eventually_of_forall fun b => _)
-    have : Disjoint (Finset.image (fun i : { x // x ∉ a } => (i : β)) b) s := by
-      refine' disjoint_left.2 fun i hi his => _
-      rcases mem_image.1 hi with ⟨i', _, rfl⟩
-      exact i'.2 (sa his)
-    convert hs _ this using 1
-    rw [sum_image]
-    intro i _ j _ hij
-    exact Subtype.ext hij
-  · convert tendsto_const_nhds (α := α) (β := Finset β) (f := atTop) (a := 0)
-    apply tsum_eq_zero_of_not_summable
-    rwa [Finset.summable_compl_iff]
-#align tendsto_tsum_compl_at_top_zero tendsto_tsum_compl_atTop_zero
+theorem cauchySeq_finset_iff_tsum_vanishing [DecidableEq β] :
+    (CauchySeq fun s : Finset β ↦ ∑ b in s, f b) ↔
+      ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∑' b : t, f b) ∈ e := by
+  simp_rw [cauchySeq_finset_iff_vanishing, Set.disjoint_left, disjoint_left]
+  refine ⟨fun vanish e he ↦ ?_, fun vanish e he ↦ ?_⟩
+  · obtain ⟨o, ho, o_closed, oe⟩ := exists_mem_nhds_isClosed_subset he
+    obtain ⟨s, hs⟩ := vanish o ho
+    refine ⟨s, fun t hts ↦ oe ?_⟩
+    by_cases ht : Summable fun a : t ↦ f a
+    · refine o_closed.mem_of_tendsto ht.hasSum (eventually_of_forall fun t' ↦ ?_)
+      rw [← sum_subtype_map_embedding fun _ _ ↦ by rfl]
+      apply hs
+      simp_rw [Finset.mem_map]
+      rintro _ ⟨b, -, rfl⟩
+      exact hts b.prop
+    · exact tsum_eq_zero_of_not_summable ht ▸ mem_of_mem_nhds ho
+  · obtain ⟨s, hs⟩ := vanish _ he
+    exact ⟨s, fun t hts ↦ (t.tsum_subtype f).symm ▸ hs _ hts⟩
+
+theorem cauchySeq_finset_iff_nat_tsum_vanishing {f : ℕ → α} :
+    (CauchySeq fun s : Finset ℕ ↦ ∑ n in s, f n) ↔
+      ∀ e ∈ 𝓝 (0 : α), ∃ N : ℕ, ∀ t ⊆ {n | N ≤ n}, (∑' n : t, f n) ∈ e := by
+  refine cauchySeq_finset_iff_tsum_vanishing.trans ⟨fun vanish e he ↦ ?_, fun vanish e he ↦ ?_⟩
+  · obtain ⟨s, hs⟩ := vanish e he
+    refine ⟨if h : s.Nonempty then s.max' h + 1 else 0, fun t ht ↦ hs _ <| Set.disjoint_left.mpr ?_⟩
+    split_ifs at ht with h
+    · exact fun m hmt hms ↦ (s.le_max' _ hms).not_lt (Nat.succ_le_iff.mp <| ht hmt)
+    · exact fun _ _ hs ↦ h ⟨_, hs⟩
+  · obtain ⟨N, hN⟩ := vanish e he
+    exact ⟨range N, fun t ht ↦ hN _ fun n hnt ↦
+      le_of_not_lt fun h ↦ Set.disjoint_left.mp ht hnt (mem_range.mpr h)⟩
 
 variable [CompleteSpace α]
 
 theorem summable_iff_vanishing :
     Summable f ↔ ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t, Disjoint t s → (∑ b in t, f b) ∈ e := by
+  classical
   rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_vanishing]
 #align summable_iff_vanishing summable_iff_vanishing
 
+theorem summable_iff_tsum_vanishing : Summable f ↔
+    ∀ e ∈ 𝓝 (0 : α), ∃ s : Finset β, ∀ t : Set β, Disjoint t s → (∑' b : t, f b) ∈ e := by
+  classical
+  rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_tsum_vanishing]
+
+theorem summable_iff_nat_tsum_vanishing {f : ℕ → α} : Summable f ↔
+    ∀ e ∈ 𝓝 (0 : α), ∃ N : ℕ, ∀ t ⊆ {n | N ≤ n}, (∑' n : t, f n) ∈ e := by
+  rw [summable_iff_cauchySeq_finset, cauchySeq_finset_iff_nat_tsum_vanishing]
+
 -- TODO: generalize to monoid with a uniform continuous subtraction operator: `(a + b) - b = a`
 theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b = 0 ∨ g b = f b) :
-    Summable g :=
-  summable_iff_vanishing.2 fun e he =>
+    Summable g := by
+  classical
+  exact summable_iff_vanishing.2 fun e he =>
     let ⟨s, hs⟩ := summable_iff_vanishing.1 hf e he
     ⟨s, fun t ht =>
       have eq : ∑ b in t.filter fun b => g b = f b, f b = ∑ b in t, g b :=
@@ -1244,12 +1263,40 @@ variable {G : Type*} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup
 
 theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0 : G)) :
     ∃ s : Finset α, ∀ t, Disjoint t s → (∑ k in t, f k) ∈ e := by
+  classical
   letI : UniformSpace G := TopologicalAddGroup.toUniformSpace G
-  letI : UniformAddGroup G := comm_topologicalAddGroup_is_uniform
-  rcases hf with ⟨y, hy⟩
-  exact cauchySeq_finset_iff_vanishing.1 hy.cauchySeq e he
+  have : UniformAddGroup G := comm_topologicalAddGroup_is_uniform
+  exact cauchySeq_finset_iff_vanishing.1 hf.hasSum.cauchySeq e he
 #align summable.vanishing Summable.vanishing
 
+theorem Summable.tsum_vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 0) :
+    ∃ s : Finset α, ∀ t : Set α, Disjoint t s → (∑' b : t, f b) ∈ e := by
+  classical
+  letI : UniformSpace G := TopologicalAddGroup.toUniformSpace G
+  have : UniformAddGroup G := comm_topologicalAddGroup_is_uniform
+  exact cauchySeq_finset_iff_tsum_vanishing.1 hf.hasSum.cauchySeq e he
+
+/-- 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 tendsto_tsum_compl_atTop_zero (f : α → G) :
+    Tendsto (fun s : Finset α ↦ ∑' a : { x // x ∉ s }, f a) atTop (𝓝 0) := by
+  classical
+  by_cases H : Summable f
+  · intro e he
+    obtain ⟨s, hs⟩ := H.tsum_vanishing he
+    rw [Filter.mem_map, mem_atTop_sets]
+    exact ⟨s, fun t hts ↦ hs _ <| Set.disjoint_left.mpr fun a ha has ↦ ha (hts has)⟩
+  · convert tendsto_const_nhds (α := G) (β := Finset α) (f := atTop) (a := 0)
+    apply tsum_eq_zero_of_not_summable
+    rwa [Finset.summable_compl_iff]
+#align tendsto_tsum_compl_at_top_zero tendsto_tsum_compl_atTop_zero
+
+theorem Summable.nat_tsum_vanishing {f : ℕ → G} (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 0) :
+    ∃ N : ℕ, ∀ t ⊆ {n | N ≤ n}, (∑' n : t, f n) ∈ e :=
+  letI : UniformSpace G := TopologicalAddGroup.toUniformSpace G
+  have : UniformAddGroup G := comm_topologicalAddGroup_is_uniform
+  cauchySeq_finset_iff_nat_tsum_vanishing.1 hf.hasSum.cauchySeq e he
+
 /-- Series divergence test: if `f` is a convergent series, then `f x` tends to zero along
 `cofinite`. -/
 theorem Summable.tendsto_cofinite_zero (hf : Summable f) : Tendsto f cofinite (𝓝 0) := by
@@ -1347,7 +1394,7 @@ theorem Pi.hasSum {f : ι → ∀ x, π x} {g : ∀ x, π x} :
 #align pi.has_sum Pi.hasSum
 
 theorem Pi.summable {f : ι → ∀ x, π x} : Summable f ↔ ∀ x, Summable fun i => f i x := by
-  simp only [Summable, Pi.hasSum, skolem]
+  simp only [Summable, Pi.hasSum, Classical.skolem]
 #align pi.summable Pi.summable
 
 theorem tsum_apply [∀ x, T2Space (π x)] {f : ι → ∀ x, π x} {x : α} (hf : Summable f) :
chore: move TopologicalSpace.SecondCountableTopology into the root namespace (#8186)

All the other properties of topological spaces like T0Space or RegularSpace are in the root namespace. Many files were opening TopologicalSpace just for the sake of shortening TopologicalSpace.SecondCountableTopology...

Diff
@@ -1265,7 +1265,7 @@ theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto
   exact hf.tendsto_cofinite_zero
 #align summable.tendsto_at_top_zero Summable.tendsto_atTop_zero
 
-theorem Summable.countable_support [TopologicalSpace.FirstCountableTopology G] [T1Space G]
+theorem Summable.countable_support [FirstCountableTopology G] [T1Space G]
     (hf : Summable f) : f.support.Countable := by
   simpa only [ker_nhds] using hf.tendsto_cofinite_zero.countable_compl_preimage_ker
 
chore: remove nonterminal simp (#7580)

Removes nonterminal simps on lines looking like simp [...]

Diff
@@ -480,7 +480,8 @@ theorem tsum_eq_sum {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
     contrapose! hx
     rw [nmem_support]
     exact hf _ hx
-  simp [tsum_def, summable_of_ne_finset_zero hf, Set.Finite.subset (finite_toSet s) I]
+  simp only [tsum_def, summable_of_ne_finset_zero hf, Set.Finite.subset (finite_toSet s) I,
+     ite_true, dite_eq_ite]
   exact finsum_eq_sum_of_support_subset f I
 #align tsum_eq_sum tsum_eq_sum
 
chore: cleanup some spaces (#7490)

Purely cosmetic PR

Diff
@@ -697,7 +697,7 @@ variable [Encodable γ]
   taking a supremum. This is useful for outer measures. -/
 theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
     ∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b) = ∑' b : γ, m (s b) := by
-  have H : ∀ n, m (⨆ b ∈ decode₂ γ n, s b) ≠ 0 → (decode₂ γ n).isSome :=by
+  have H : ∀ n, m (⨆ b ∈ decode₂ γ n, s b) ≠ 0 → (decode₂ γ n).isSome := by
     intro n h
     generalize decode₂ γ n = foo at *
     cases' foo with b
feat: the Unfolding Trick (#6223)

This PR is a forward port of mathlib3 PR 3#18863

Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com>

Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -8,7 +8,7 @@ import Mathlib.Logic.Encodable.Lattice
 import Mathlib.Topology.Algebra.UniformGroup
 import Mathlib.Topology.Algebra.Star
 
-#align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b1890e71632be9e3b2086ab512c3259a7e9a3ef"
+#align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b52265189f3fb43aa631edffce5d060fafaf82f"
 
 /-!
 # Infinite sum over a topological monoid
@@ -1283,10 +1283,43 @@ theorem Summable.const_smul (b : γ) (hf : Summable f) : Summable fun i => b •
   (hf.hasSum.const_smul _).summable
 #align summable.const_smul Summable.const_smul
 
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a `Monoid`, but
+  requiring a summability hypothesis. -/
 theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : ∑' i, b • f i = b • ∑' i, f i :=
   (hf.hasSum.const_smul _).tsum_eq
 #align tsum_const_smul tsum_const_smul
 
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a `Group`, but
+  not requiring any summability hypothesis. -/
+lemma tsum_const_smul' {γ : Type*} [Group γ] [DistribMulAction γ α] [ContinuousConstSMul γ α]
+    [T2Space α] (g : γ) : ∑' (i : β), g • f i = g • ∑' (i : β), f i := by
+  by_cases hf : Summable f
+  · exact tsum_const_smul g hf
+  rw [tsum_eq_zero_of_not_summable hf]
+  simp only [smul_zero]
+  let mul_g : α ≃+ α := DistribMulAction.toAddEquiv α g
+  apply tsum_eq_zero_of_not_summable
+  change ¬ Summable (mul_g ∘ f)
+  rwa [Summable.map_iff_of_equiv mul_g]
+  · apply continuous_const_smul
+  · apply continuous_const_smul
+
+/-- Infinite sums commute with scalar multiplication. Version for scalars living in a
+  `DivisionRing`; no summability hypothesis. This could be made to work for a
+  `[GroupWithZero γ]` if there was such a thing as `DistribMulActionWithZero`. -/
+lemma tsum_const_smul'' {γ : Type*} [DivisionRing γ] [Module γ α] [ContinuousConstSMul γ α]
+    [T2Space α] (g : γ) : ∑' (i : β), g • f i = g • ∑' (i : β), f i := by
+  by_cases hf : Summable f
+  · exact tsum_const_smul g hf
+  rw [tsum_eq_zero_of_not_summable hf]
+  simp only [smul_zero]
+  by_cases hg : g = 0
+  · simp [hg]
+  let mul_g : α ≃+ α := DistribMulAction.toAddEquiv₀ α g hg
+  apply tsum_eq_zero_of_not_summable
+  change ¬ Summable (mul_g ∘ f)
+  rwa [Summable.map_iff_of_equiv] <;> apply continuous_const_smul
+
 end ConstSmul
 
 /-! ### Product and pi types -/
@@ -1426,3 +1459,104 @@ theorem tsum_star : star (∑' b, f b) = ∑' b, star (f b) := by
 #align tsum_star tsum_star
 
 end ContinuousStar
+
+section automorphize
+
+variable {M : Type*} [TopologicalSpace M] [AddCommMonoid M] [T2Space M] {R : Type*}
+  [DivisionRing R] [Module R M] [ContinuousConstSMul R M]
+
+/-- Given a group `α` acting on a type `β`, and a function `f : β → M`, we "automorphize" `f` to a
+  function `β ⧸ α → M` by summing over `α` orbits, `b ↦ ∑' (a : α), f(a • b)`. -/
+@[to_additive "Given an additive group `α` acting on a type `β`, and a function `f : β → M`,
+  we automorphize `f` to a function `β ⧸ α → M` by summing over `α` orbits,
+  `b ↦ ∑' (a : α), f(a • b)`."]
+noncomputable def MulAction.automorphize [Group α] [MulAction α β] (f : β → M) :
+    Quotient (MulAction.orbitRel α β) → M := by
+  refine @Quotient.lift _ _ (_) (fun b ↦ ∑' (a : α), f (a • b)) ?_
+  intro b₁ b₂ ⟨a, (ha : a • b₂ = b₁)⟩
+  simp only
+  rw [← ha]
+  convert (Equiv.mulRight a).tsum_eq (fun a' ↦ f (a' • b₂)) using 1
+  simp only [Equiv.coe_mulRight]
+  congr
+  ext
+  congr 1
+  simp only [mul_smul]
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the
+`R`-scalar multiplication. -/
+lemma MulAction.automorphize_smul_left [Group α] [MulAction α β] (f : β → M)
+    (g : Quotient (MulAction.orbitRel α β) → R) :
+    MulAction.automorphize ((g ∘ (@Quotient.mk' _ (_))) • f)
+      = g • (MulAction.automorphize f : Quotient (MulAction.orbitRel α β) → M) := by
+  ext x
+  apply @Quotient.inductionOn' β (MulAction.orbitRel α β) _ x _
+  intro b
+  simp only [automorphize, Pi.smul_apply', comp_apply]
+  set π : β → Quotient (MulAction.orbitRel α β) := Quotient.mk (MulAction.orbitRel α β)
+  have H₁ : ∀ a : α, π (a • b) = π b
+  · intro a
+    apply (@Quotient.eq _ (MulAction.orbitRel α β) (a • b) b).mpr
+    use a
+  change ∑' a : α, g (π (a • b)) • f (a • b) = g (π b) • ∑' a : α, f (a • b)
+  simp_rw [H₁]
+  exact tsum_const_smul'' _
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the
+`R`-scalar multiplication. -/
+lemma AddAction.automorphize_smul_left [AddGroup α] [AddAction α β]  (f : β → M)
+    (g : Quotient (AddAction.orbitRel α β) → R) :
+    AddAction.automorphize ((g ∘ (@Quotient.mk' _ (_))) • f)
+      = g • (AddAction.automorphize f : Quotient (AddAction.orbitRel α β) → M) := by
+  ext x
+  apply @Quotient.inductionOn' β (AddAction.orbitRel α β) _ x _
+  intro b
+  simp only [automorphize, Pi.smul_apply', comp_apply]
+  set π : β → Quotient (AddAction.orbitRel α β) := Quotient.mk (AddAction.orbitRel α β)
+  have H₁ : ∀ a : α, π (a +ᵥ b) = π b
+  · intro a
+    apply (@Quotient.eq _ (AddAction.orbitRel α β) (a +ᵥ b) b).mpr
+    use a
+  change ∑' a : α, g (π (a +ᵥ b)) • f (a +ᵥ b) = g (π b) • ∑' a : α, f (a +ᵥ b)
+  simp_rw [H₁]
+  exact tsum_const_smul'' _
+
+attribute [to_additive existing MulAction.automorphize_smul_left] AddAction.automorphize_smul_left
+
+section
+
+variable {G : Type*} [Group G] {Γ : Subgroup G}
+
+/-- Given a subgroup `Γ` of a group `G`, and a function `f : G → M`, we "automorphize" `f` to a
+  function `G ⧸ Γ → M` by summing over `Γ` orbits, `g ↦ ∑' (γ : Γ), f(γ • g)`. -/
+@[to_additive "Given a subgroup `Γ` of an additive group `G`, and a function `f : G → M`, we
+  automorphize `f` to a function `G ⧸ Γ → M` by summing over `Γ` orbits,
+  `g ↦ ∑' (γ : Γ), f(γ • g)`."]
+noncomputable def QuotientGroup.automorphize  (f : G → M) : G ⧸ Γ → M := MulAction.automorphize f
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the
+`R`-scalar multiplication. -/
+lemma QuotientGroup.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R) :
+    (QuotientGroup.automorphize ((g ∘ (@Quotient.mk' _ (_)) : G → R) • f) : G ⧸ Γ → M)
+      = g • (QuotientGroup.automorphize f : G ⧸ Γ → M) :=
+  MulAction.automorphize_smul_left f g
+
+end
+
+section
+
+variable {G : Type*} [AddGroup G] {Γ : AddSubgroup G}
+
+/-- Automorphization of a function into an `R`-`module` distributes, that is, commutes with the
+`R`-scalar multiplication. -/
+lemma QuotientAddGroup.automorphize_smul_left (f : G → M) (g : G ⧸ Γ → R) :
+    QuotientAddGroup.automorphize ((g ∘ (@Quotient.mk' _ (_))) • f)
+      = g • (QuotientAddGroup.automorphize f : G ⧸ Γ → M) :=
+  AddAction.automorphize_smul_left f g
+
+end
+
+attribute [to_additive existing QuotientGroup.automorphize_smul_left]
+  QuotientAddGroup.automorphize_smul_left
+
+end automorphize
feat: Exterior of a set (#6982)

In an Alexandrov-discrete space, every set has a smallest neighborhood. We call this neighborhood the exterior of the set. It is completely analogous to the interior, except that all inclusions are reversed.

Diff
@@ -1266,7 +1266,7 @@ theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto
 
 theorem Summable.countable_support [TopologicalSpace.FirstCountableTopology G] [T1Space G]
     (hf : Summable f) : f.support.Countable := by
-  simpa only [sInter_sets_nhds] using hf.tendsto_cofinite_zero.countable_compl_preimage_sInter_sets
+  simpa only [ker_nhds] using hf.tendsto_cofinite_zero.countable_compl_preimage_ker
 
 end TopologicalGroup
 
fix: don't use False as a bool, use false (#7059)
Diff
@@ -512,8 +512,8 @@ theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (tsum_eq_sum this).symm
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
 
-theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := by
-  rw [tsum_fintype, Finset.sum_eq_add] <;> simp
+theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f false + f true := by
+  rw [tsum_fintype, Fintype.sum_bool, add_comm]
 #align tsum_bool tsum_bool
 
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
feat: add an instance for T3Space (#6861)

Add an instance [T0Space α] [RegularSpace α] : T3Space α, drop now unneeded lemmas like TopologicalGroup.t3Space.

Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -1208,14 +1208,6 @@ theorem Summable.prod_factor {f : β × γ → α} (h : Summable f) (b : β) :
   h.comp_injective fun _ _ h => (Prod.ext_iff.1 h).2
 #align summable.prod_factor Summable.prod_factor
 
-section LocInstances
-
--- enable inferring a T3-topological space from a topological group
-attribute [local instance] TopologicalAddGroup.t3Space
-
--- disable getting a T0-space from a T1-space as this causes loops
-attribute [-instance] T1Space.t0Space
-
 theorem tsum_sigma [T0Space α] {γ : β → Type*} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
@@ -1231,8 +1223,6 @@ theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.un
   tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 #align tsum_comm tsum_comm
 
-end LocInstances
-
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
     ∑' x : s, f x + ∑' x : ↑sᶜ, f x = ∑' x, f x :=
   ((hf.subtype s).hasSum.add_compl (hf.subtype { x | x ∉ s }).hasSum).unique hf.hasSum
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -26,6 +26,8 @@ generally, see `HasSum.tendsto_sum_nat`.
 
 -/
 
+set_option autoImplicit true
+
 
 noncomputable section
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -33,7 +33,7 @@ open Classical Filter Finset Function
 
 open BigOperators Classical Topology
 
-variable {α : Type _} {β : Type _} {γ : Type _} {δ : Type _}
+variable {α : Type*} {β : Type*} {γ : Type*} {δ : Type*}
 
 section HasSum
 
@@ -308,7 +308,7 @@ theorem Summable.hasSum_iff_tendsto_nat [T2Space α] {f : ℕ → α} {a : α} (
   exact hf.hasSum
 #align summable.has_sum_iff_tendsto_nat Summable.hasSum_iff_tendsto_nat
 
-theorem Function.Surjective.summable_iff_of_hasSum_iff {α' : Type _} [AddCommMonoid α']
+theorem Function.Surjective.summable_iff_of_hasSum_iff {α' : Type*} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) {f : β → α} {g : γ → α'}
     (he : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : Summable f ↔ Summable g :=
   hes.exists.trans <| exists_congr <| @he
@@ -395,7 +395,7 @@ theorem Summable.even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k)
   (he.hasSum.even_add_odd ho.hasSum).summable
 #align summable.even_add_odd Summable.even_add_odd
 
-theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ b) → α} {g : β → α} {a : α}
+theorem HasSum.sigma [RegularSpace α] {γ : β → Type*} {f : (Σ b : β, γ b) → α} {g : β → α} {a : α}
     (ha : HasSum f a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) : HasSum g a := by
   refine' (atTop_basis.tendsto_iff (closed_nhds_basis a)).mpr _
   rintro s ⟨hs, hsc⟩
@@ -421,12 +421,12 @@ theorem HasSum.prod_fiberwise [RegularSpace α] {f : β × γ → α} {g : β 
   HasSum.sigma ((Equiv.sigmaEquivProd β γ).hasSum_iff.2 ha) hf
 #align has_sum.prod_fiberwise HasSum.prod_fiberwise
 
-theorem Summable.sigma' [RegularSpace α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f)
+theorem Summable.sigma' [RegularSpace α] {γ : β → Type*} {f : (Σb : β, γ b) → α} (ha : Summable f)
     (hf : ∀ b, Summable fun c => f ⟨b, c⟩) : Summable fun b => ∑' c, f ⟨b, c⟩ :=
   (ha.hasSum.sigma fun b => (hf b).hasSum).summable
 #align summable.sigma' Summable.sigma'
 
-theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} {g : β → α}
+theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type*} {f : (Σb : β, γ b) → α} {g : β → α}
     {a : α} (ha : HasSum g a) (hf : ∀ b, HasSum (fun c => f ⟨b, c⟩) (g b)) (hf' : Summable f) :
     HasSum f a := by simpa [(hf'.hasSum.sigma hf).unique ha] using hf'.hasSum
 #align has_sum.sigma_of_has_sum HasSum.sigma_of_hasSum
@@ -434,7 +434,7 @@ theorem HasSum.sigma_of_hasSum [T3Space α] {γ : β → Type _} {f : (Σb : β,
 /-- Version of `HasSum.update` for `AddCommMonoid` rather than `AddCommGroup`.
 Rather than showing that `f.update` has a specific sum in terms of `HasSum`,
 it gives a relationship between the sums of `f` and `f.update` given that both exist. -/
-theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α] [T2Space α]
+theorem HasSum.update' {α β : Type*} [TopologicalSpace α] [AddCommMonoid α] [T2Space α]
     [ContinuousAdd α] {f : β → α} {a a' : α} (hf : HasSum f a) (b : β) (x : α)
     (hf' : HasSum (update f b x) a') : a + x = a' + f b := by
   have : ∀ b', f b' + ite (b' = b) x 0 = update f b x b' + ite (b' = b) (f b) 0 := by
@@ -450,7 +450,7 @@ theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α]
 /-- Version of `hasSum_ite_sub_hasSum` for `AddCommMonoid` rather than `AddCommGroup`.
 Rather than showing that the `ite` expression has a specific sum in terms of `HasSum`,
 it gives a relationship between the sums of `f` and `ite (n = b) 0 (f n)` given that both exist. -/
-theorem eq_add_of_hasSum_ite {α β : Type _} [TopologicalSpace α] [AddCommMonoid α] [T2Space α]
+theorem eq_add_of_hasSum_ite {α β : Type*} [TopologicalSpace α] [AddCommMonoid α] [T2Space α]
     [ContinuousAdd α] {f : β → α} {a : α} (hf : HasSum f a) (b : β) (a' : α)
     (hf' : HasSum (fun n => ite (n = b) 0 (f n)) a') : a = a' + f b := by
   refine' (add_zero a).symm.trans (hf.update' b 0 _)
@@ -579,7 +579,7 @@ theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_left tsum_dite_left
 
-theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [AddCommMonoid α']
+theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type*} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
     {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : ∑' b, f b = e (∑' c, g c) :=
   _root_.by_cases (fun x => (h.mpr x.hasSum).tsum_eq) fun hg : ¬Summable g => by
@@ -667,7 +667,7 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (update f
 
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
 
-theorem tsum_sigma' {γ : β → Type _} {f : (Σb : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
+theorem tsum_sigma' {γ : β → Type*} {f : (Σb : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
     (h₂ : Summable f) : ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   (h₂.hasSum.sigma fun b => (h₁ b).hasSum).tsum_eq.symm
 #align tsum_sigma' tsum_sigma'
@@ -1035,7 +1035,7 @@ theorem summable_int_of_summable_nat {f : ℤ → α} (hp : Summable fun n : ℕ
   (HasSum.nonneg_add_neg hp.hasSum <| Summable.hasSum <| (summable_nat_add_iff 1).mpr hn).summable
 #align summable_int_of_summable_nat summable_int_of_summable_nat
 
-theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalSpace α]
+theorem HasSum.sum_nat_of_sum_int {α : Type*} [AddCommMonoid α] [TopologicalSpace α]
     [ContinuousAdd α] {a : α} {f : ℤ → α} (hf : HasSum f a) :
     HasSum (fun n : ℕ => f n + f (-n)) (a + f 0) := by
   apply (hf.add (hasSum_ite_eq (0 : ℤ) (f 0))).hasSum_of_sum_eq fun u => ?_
@@ -1191,12 +1191,12 @@ theorem summable_subtype_and_compl {s : Set β} :
   ⟨and_imp.2 Summable.add_compl, fun h => ⟨h.subtype s, h.subtype sᶜ⟩⟩
 #align summable_subtype_and_compl summable_subtype_and_compl
 
-theorem Summable.sigma_factor {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) (b : β) :
+theorem Summable.sigma_factor {γ : β → Type*} {f : (Σb : β, γ b) → α} (ha : Summable f) (b : β) :
     Summable fun c => f ⟨b, c⟩ :=
   ha.comp_injective sigma_mk_injective
 #align summable.sigma_factor Summable.sigma_factor
 
-theorem Summable.sigma {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
+theorem Summable.sigma {γ : β → Type*} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     Summable fun b => ∑' c, f ⟨b, c⟩ :=
   ha.sigma' fun b => ha.sigma_factor b
 #align summable.sigma Summable.sigma
@@ -1214,7 +1214,7 @@ attribute [local instance] TopologicalAddGroup.t3Space
 -- disable getting a T0-space from a T1-space as this causes loops
 attribute [-instance] T1Space.t0Space
 
-theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
+theorem tsum_sigma [T0Space α] {γ : β → Type*} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
@@ -1247,7 +1247,7 @@ end UniformGroup
 
 section TopologicalGroup
 
-variable {G : Type _} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup G] {f : α → G}
+variable {G : Type*} [TopologicalSpace G] [AddCommGroup G] [TopologicalAddGroup G] {f : α → G}
 
 theorem Summable.vanishing (hf : Summable f) ⦃e : Set G⦄ (he : e ∈ 𝓝 (0 : G)) :
     ∃ s : Finset α, ∀ t, Disjoint t s → (∑ k in t, f k) ∈ e := by
@@ -1313,7 +1313,7 @@ end Prod
 
 section Pi
 
-variable {ι : Type _} {π : α → Type _} [∀ x, AddCommMonoid (π x)] [∀ x, TopologicalSpace (π x)]
+variable {ι : Type*} {π : α → Type*} [∀ x, AddCommMonoid (π x)] [∀ x, TopologicalSpace (π x)]
 
 theorem Pi.hasSum {f : ι → ∀ x, π x} {g : ∀ x, π x} :
     HasSum f g ↔ ∀ x, HasSum (fun i => f i x) (g x) := by
feat: Summable.countable_support (#6473)

A step towards showing that Pmfs have countable support.

Thanks Eric Rodriguez and Kevin Buzzard for helping on zulip.

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -1272,6 +1272,10 @@ theorem Summable.tendsto_atTop_zero {f : ℕ → G} (hf : Summable f) : Tendsto
   exact hf.tendsto_cofinite_zero
 #align summable.tendsto_at_top_zero Summable.tendsto_atTop_zero
 
+theorem Summable.countable_support [TopologicalSpace.FirstCountableTopology G] [T1Space G]
+    (hf : Summable f) : f.support.Countable := by
+  simpa only [sInter_sets_nhds] using hf.tendsto_cofinite_zero.countable_compl_preimage_sInter_sets
+
 end TopologicalGroup
 
 section ConstSmul
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl
-
-! This file was ported from Lean 3 source module topology.algebra.infinite_sum.basic
-! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Nat.Parity
 import Mathlib.Logic.Encodable.Lattice
 import Mathlib.Topology.Algebra.UniformGroup
 import Mathlib.Topology.Algebra.Star
 
+#align_import topology.algebra.infinite_sum.basic from "leanprover-community/mathlib"@"3b1890e71632be9e3b2086ab512c3259a7e9a3ef"
+
 /-!
 # Infinite sum over a topological monoid
 
feat(Topology.Algebra.InfiniteSum): make sure that tsum and sum coincide on fintypes (#5914)

Currently, when s is a fintype, it is possible that ∑' x, f x ≠ ∑ x, f x (if the topology of the target space is not separated), as the infinite sum ∑' picks some limit if it exists, but not necessarily the one we prefer.

This PR tweaks the definition of infinite sums to make sure that, when a function is finitely supported, the chosen limit for its infinite sum is the (finite) sum of its values. This makes it possible to remove a few separation assumption here and there.

Diff
@@ -64,9 +64,15 @@ def Summable (f : β → α) : Prop :=
   ∃ a, HasSum f a
 #align summable Summable
 
-/-- `∑' i, f i` is the sum of `f` it exists, or 0 otherwise -/
+/-- `∑' i, f i` is the sum of `f` it exists, or 0 otherwise. -/
 irreducible_def tsum {β} (f : β → α) :=
-  if h : Summable f then Classical.choose h else 0
+  if h : Summable f then
+  /- Note that the sum might not be uniquely defined if the topology is not separated.
+  When the support of `f` is finite, we make the most reasonable choice to use the finite sum over
+  the support. Otherwise, we choose arbitrarily an `a` satisfying `HasSum f a`. -/
+    if (support f).Finite then finsum f
+    else Classical.choose h
+  else 0
 #align tsum tsum
 
 -- see Note [operator precedence of big operators]
@@ -75,11 +81,6 @@ notation3 "∑' "(...)", "r:67:(scoped f => tsum f) => r
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
-theorem Summable.hasSum (ha : Summable f) : HasSum f (∑' b, f b) := by
-  simp only [tsum_def, ha, dite_true]
-  exact Classical.choose_spec ha
-#align summable.has_sum Summable.hasSum
-
 theorem HasSum.summable (h : HasSum f a) : Summable f :=
   ⟨a, h⟩
 #align has_sum.summable HasSum.summable
@@ -200,6 +201,16 @@ theorem summable_of_ne_finset_zero (hf : ∀ (b) (_ : b ∉ s), f b = 0) : Summa
   (hasSum_sum_of_ne_finset_zero hf).summable
 #align summable_of_ne_finset_zero summable_of_ne_finset_zero
 
+theorem summable_of_finite_support (h : (support f).Finite) : Summable f := by
+  apply summable_of_ne_finset_zero (s := h.toFinset); simp
+
+theorem Summable.hasSum (ha : Summable f) : HasSum f (∑' b, f b) := by
+  simp only [tsum_def, ha, dite_true]
+  by_cases H : (support f).Finite
+  · simp [H, hasSum_sum_of_ne_finset_zero, finsum_eq_sum]
+  · simpa [H] using Classical.choose_spec ha
+#align summable.has_sum Summable.hasSum
+
 theorem hasSum_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) : HasSum f (f b) :=
   suffices HasSum f (∑ b' in {b}, f b') by simpa using this
   hasSum_sum_of_ne_finset_zero <| by simpa [hf]
@@ -454,48 +465,44 @@ end HasSum
 
 section tsum
 
-variable [AddCommMonoid α] [TopologicalSpace α]
+variable [AddCommMonoid α] [TopologicalSpace α] {f g : β → α} {a a₁ a₂ : α}
 
 theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
     ∑' x : s, f x = ∑' x : t, f x := by rw [h]
 #align tsum_congr_subtype tsum_congr_subtype
 
-theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : ∑' _ : β, (0 : α) = 0 := by
-  classical
-    rw [tsum_def, dif_pos summable_zero]
-    suffices ∀ x : α, HasSum (fun _ : β => (0 : α)) x → x = 0 by
-      exact this _ (Classical.choose_spec _)
-    intro x hx
+theorem tsum_eq_finsum (hf : (support f).Finite) :
+    ∑' b, f b = ∑ᶠ b, f b := by simp [tsum_def, summable_of_finite_support hf, hf]
+
+theorem tsum_eq_sum {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
+    ∑' b, f b = ∑ b in s, f b := by
+  have I : support f ⊆ s := by
+    intros x hx
     contrapose! hx
-    simp only [HasSum, tendsto_nhds, Finset.sum_const_zero, Filter.mem_atTop_sets, ge_iff_le,
-      Finset.le_eq_subset, Set.mem_preimage, not_forall, not_exists, exists_prop, exists_and_right]
-    refine ⟨{0}ᶜ, ⟨isOpen_compl_iff.mpr hz, by simpa [hx] using fun x ↦ ⟨x, subset_refl _⟩⟩⟩
-#align tsum_zero' tsum_zero'
+    rw [nmem_support]
+    exact hf _ hx
+  simp [tsum_def, summable_of_ne_finset_zero hf, Set.Finite.subset (finite_toSet s) I]
+  exact finsum_eq_sum_of_support_subset f I
+#align tsum_eq_sum tsum_eq_sum
 
 @[simp]
-theorem tsum_zero [T1Space α] : ∑' _ : β, (0 : α) = 0 :=
-  tsum_zero' isClosed_singleton
+theorem tsum_zero : ∑' _ : β, (0 : α) = 0 := by rw [tsum_eq_finsum] <;> simp
 #align tsum_zero tsum_zero
-
-variable [T2Space α] {f g : β → α} {a a₁ a₂ : α}
-
-theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
-  (Summable.hasSum ⟨a, ha⟩).unique ha
-#align has_sum.tsum_eq HasSum.tsum_eq
-
-theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
-  Iff.intro HasSum.tsum_eq fun eq => eq ▸ h.hasSum
-#align summable.has_sum_iff Summable.hasSum_iff
+#align tsum_zero' tsum_zero
 
 @[simp]
-theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 :=
-  hasSum_empty.tsum_eq
+theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 := by
+  rw [tsum_eq_sum (s := (∅ : Finset β))] <;> simp
 #align tsum_empty tsum_empty
 
-theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
-    ∑' b, f b = ∑ b in s, f b :=
-  (hasSum_sum_of_ne_finset_zero hf).tsum_eq
-#align tsum_eq_sum tsum_eq_sum
+theorem tsum_congr {f g : β → α}
+    (hfg : ∀ b, f b = g b) : ∑' b, f b = ∑' b, g b :=
+  congr_arg tsum (funext hfg)
+#align tsum_congr tsum_congr
+
+theorem tsum_fintype [Fintype β] (f : β → α) : ∑' b, f b = ∑ b, f b := by
+  apply tsum_eq_sum; simp
+#align tsum_fintype tsum_fintype
 
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
@@ -506,23 +513,15 @@ theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
     (tsum_eq_sum this).symm
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
 
-theorem tsum_congr {α β : Type _} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α}
-    (hfg : ∀ b, f b = g b) : ∑' b, f b = ∑' b, g b :=
-  congr_arg tsum (funext hfg)
-#align tsum_congr tsum_congr
-
-theorem tsum_fintype [Fintype β] (f : β → α) : ∑' b, f b = ∑ b, f b :=
-  (hasSum_fintype f).tsum_eq
-#align tsum_fintype tsum_fintype
-
 theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := by
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
 
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
-    ∑' b, f b = f b :=
-  (hasSum_single b hf).tsum_eq
-#align tsum_eq_single tsum_eq_single
+    ∑' b, f b = f b := by
+  rw [tsum_eq_sum (s := {b}), sum_singleton]
+  exact fun b' hb' ↦ hf b' (by simpa using hb')
+  #align tsum_eq_single tsum_eq_single
 
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
     (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : ∑' (b') (c'), f b' c' = f b c :=
@@ -533,15 +532,46 @@ theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀
 
 @[simp]
 theorem tsum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
-    ∑' b', (if b' = b then a else 0) = a :=
-  (hasSum_ite_eq b a).tsum_eq
+    ∑' b', (if b' = b then a else 0) = a := by
+  rw [tsum_eq_single b]
+  · simp
+  · intro b' hb'; simp [hb']
 #align tsum_ite_eq tsum_ite_eq
 
 @[simp]
-theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : ∑' b', Pi.single b a b' = a :=
-  (hasSum_pi_single b a).tsum_eq
+theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : ∑' b', Pi.single b a b' = a := by
+  rw [tsum_eq_single b]
+  · simp
+  · intro b' hb'; simp [hb']
 #align tsum_pi_single tsum_pi_single
 
+-- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
+@[simp, nolint simpNF]
+theorem Finset.tsum_subtype (s : Finset β) (f : β → α) :
+    ∑' x : { x // x ∈ s }, f x = ∑ x in s, f x := by
+  rw [← sum_attach]; exact tsum_fintype _
+#align finset.tsum_subtype Finset.tsum_subtype
+
+theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) :
+    ∑' x : (s : Set β), f x = ∑ x in s, f x := by simp
+#align finset.tsum_subtype' Finset.tsum_subtype'
+
+-- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
+@[simp, nolint simpNF]
+theorem tsum_singleton (b : β) (f : β → α) : ∑' x : ({b} : Set β), f x = f b := by
+  rw [← coe_singleton, Finset.tsum_subtype', sum_singleton]
+#align tsum_singleton tsum_singleton
+
+variable [T2Space α]
+
+theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
+  (Summable.hasSum ⟨a, ha⟩).unique ha
+#align has_sum.tsum_eq HasSum.tsum_eq
+
+theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
+  Iff.intro HasSum.tsum_eq fun eq => eq ▸ h.hasSum
+#align summable.has_sum_iff Summable.hasSum_iff
+
 theorem tsum_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
     ∑' b : β, (if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
   by_cases hP : P <;> simp [hP]
@@ -582,21 +612,6 @@ theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
 
 /-! ### `tsum` on subsets -/
 
-
--- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
-@[simp, nolint simpNF]
-theorem Finset.tsum_subtype (s : Finset β) (f : β → α) :
-    ∑' x : { x // x ∈ s }, f x = ∑ x in s, f x :=
-  (s.hasSum f).tsum_eq
-#align finset.tsum_subtype Finset.tsum_subtype
-
--- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
-@[simp high, nolint simpNF]
-theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) :
-    ∑' x : (s : Set β), f x = ∑ x in s, f x :=
-  s.tsum_subtype f
-#align finset.tsum_subtype' Finset.tsum_subtype'
-
 theorem tsum_subtype (s : Set β) (f : β → α) : ∑' x : s, f x = ∑' x, s.indicator f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum hasSum_subtype_iff_indicator
 #align tsum_subtype tsum_subtype
@@ -612,16 +627,6 @@ theorem tsum_univ (f : β → α) : ∑' x : (Set.univ : Set β), f x = ∑' x,
   tsum_subtype_eq_of_support_subset <| Set.subset_univ _
 #align tsum_univ tsum_univ
 
--- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
-@[simp, nolint simpNF]
-theorem tsum_singleton (b : β) (f : β → α) : ∑' x : ({b} : Set β), f x = f b := by
-  rw [_root_.tsum_subtype, tsum_eq_single b]
-  · simp
-  · intro b' hb'
-    rw [Set.indicator_of_not_mem]
-    rwa [Set.mem_singleton_iff]
-#align tsum_singleton tsum_singleton
-
 theorem tsum_image {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s) :
     ∑' x : g '' s, f x = ∑' x : s, f (g x) :=
   ((Equiv.Set.imageOfInjOn _ _ hg).tsum_eq fun x => f x).symm
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -697,8 +697,8 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
     intro n h
     generalize decode₂ γ n = foo at *
     cases' foo with b
-    . refine' (h <| by simp [m0]).elim
-    . exact rfl
+    · refine' (h <| by simp [m0]).elim
+    · exact rfl
   symm
   refine' tsum_eq_tsum_of_ne_zero_bij (fun a => Option.get _ (H a.1 a.2)) _ _ _
   · dsimp only []
@@ -842,7 +842,7 @@ theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
   by_cases h : b' = b
   · rw [h, update_same]
     simp [eq_self_iff_true, if_true, sub_add_cancel]
-  . simp only [h, update_noteq, if_false, Ne.def, zero_add, not_false_iff]
+  · simp only [h, update_noteq, if_false, Ne.def, zero_add, not_false_iff]
 #align has_sum.update HasSum.update
 
 theorem Summable.update (hf : Summable f) (b : β) [DecidableEq β] (a : α) :
fix: ∑' precedence (#5615)
  • Also remove most superfluous parentheses around big operators (, and variants).
  • roughly the used regex: ([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤]) replaced by $1 $2 $3
Diff
@@ -71,7 +71,7 @@ irreducible_def tsum {β} (f : β → α) :=
 
 -- see Note [operator precedence of big operators]
 @[inherit_doc tsum]
-notation3 "∑' "(...)", "r:(scoped f => tsum f) => r
+notation3 "∑' "(...)", "r:67:(scoped f => tsum f) => r
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
@@ -100,7 +100,7 @@ theorem summable_empty [IsEmpty β] : Summable f :=
   hasSum_empty.summable
 #align summable_empty summable_empty
 
-theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : (∑' b, f b) = 0 := by simp [tsum_def, h]
+theorem tsum_eq_zero_of_not_summable (h : ¬Summable f) : ∑' b, f b = 0 := by simp [tsum_def, h]
 #align tsum_eq_zero_of_not_summable tsum_eq_zero_of_not_summable
 
 theorem summable_congr (hfg : ∀ b, f b = g b) : Summable f ↔ Summable g :=
@@ -114,7 +114,7 @@ theorem Summable.congr (hf : Summable f) (hfg : ∀ b, f b = g b) : Summable g :
 theorem HasSum.hasSum_of_sum_eq {g : γ → α}
     (h_eq :
       ∀ u : Finset γ,
-        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ (∑ x in u', g x) = ∑ b in v', f b)
+        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
     (hf : HasSum g a) : HasSum f a :=
   le_trans (map_atTop_finset_sum_le_of_sum_eq h_eq) hf
 #align has_sum.has_sum_of_sum_eq HasSum.hasSum_of_sum_eq
@@ -122,10 +122,10 @@ theorem HasSum.hasSum_of_sum_eq {g : γ → α}
 theorem hasSum_iff_hasSum {g : γ → α}
     (h₁ :
       ∀ u : Finset γ,
-        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ (∑ x in u', g x) = ∑ b in v', f b)
+        ∃ v : Finset β, ∀ v', v ⊆ v' → ∃ u', u ⊆ u' ∧ ∑ x in u', g x = ∑ b in v', f b)
     (h₂ :
       ∀ v : Finset β,
-        ∃ u : Finset γ, ∀ u', u ⊆ u' → ∃ v', v ⊆ v' ∧ (∑ b in v', f b) = ∑ x in u', g x) :
+        ∃ u : Finset γ, ∀ u', u ⊆ u' → ∃ v', v ⊆ v' ∧ ∑ b in v', f b = ∑ x in u', g x) :
     HasSum f a ↔ HasSum g a :=
   ⟨HasSum.hasSum_of_sum_eq h₂, HasSum.hasSum_of_sum_eq h₁⟩
 #align has_sum_iff_has_sum hasSum_iff_hasSum
@@ -457,10 +457,10 @@ section tsum
 variable [AddCommMonoid α] [TopologicalSpace α]
 
 theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
-    (∑' x : s, f x) = ∑' x : t, f x := by rw [h]
+    ∑' x : s, f x = ∑' x : t, f x := by rw [h]
 #align tsum_congr_subtype tsum_congr_subtype
 
-theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' _ : β, (0 : α)) = 0 := by
+theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : ∑' _ : β, (0 : α) = 0 := by
   classical
     rw [tsum_def, dif_pos summable_zero]
     suffices ∀ x : α, HasSum (fun _ : β => (0 : α)) x → x = 0 by
@@ -473,32 +473,32 @@ theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' _ : β, (0 : α)) = 0
 #align tsum_zero' tsum_zero'
 
 @[simp]
-theorem tsum_zero [T1Space α] : (∑' _ : β, (0 : α)) = 0 :=
+theorem tsum_zero [T1Space α] : ∑' _ : β, (0 : α) = 0 :=
   tsum_zero' isClosed_singleton
 #align tsum_zero tsum_zero
 
 variable [T2Space α] {f g : β → α} {a a₁ a₂ : α}
 
-theorem HasSum.tsum_eq (ha : HasSum f a) : (∑' b, f b) = a :=
+theorem HasSum.tsum_eq (ha : HasSum f a) : ∑' b, f b = a :=
   (Summable.hasSum ⟨a, ha⟩).unique ha
 #align has_sum.tsum_eq HasSum.tsum_eq
 
-theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ (∑' b, f b) = a :=
+theorem Summable.hasSum_iff (h : Summable f) : HasSum f a ↔ ∑' b, f b = a :=
   Iff.intro HasSum.tsum_eq fun eq => eq ▸ h.hasSum
 #align summable.has_sum_iff Summable.hasSum_iff
 
 @[simp]
-theorem tsum_empty [IsEmpty β] : (∑' b, f b) = 0 :=
+theorem tsum_empty [IsEmpty β] : ∑' b, f b = 0 :=
   hasSum_empty.tsum_eq
 #align tsum_empty tsum_empty
 
 theorem tsum_eq_sum {f : β → α} {s : Finset β} (hf : ∀ (b) (_ : b ∉ s), f b = 0) :
-    (∑' b, f b) = ∑ b in s, f b :=
+    ∑' b, f b = ∑ b in s, f b :=
   (hasSum_sum_of_ne_finset_zero hf).tsum_eq
 #align tsum_eq_sum tsum_eq_sum
 
 theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
-    (∑ x in s, f x) = ∑' x, Set.indicator (↑s) f x :=
+    ∑ x in s, f x = ∑' x, Set.indicator (↑s) f x :=
   have : ∀ (x) (_ : x ∉ s), Set.indicator (↑s) f x = 0 := fun _ hx =>
     Set.indicator_apply_eq_zero.2 fun hx' => (hx <| Finset.mem_coe.1 hx').elim
   (Finset.sum_congr rfl fun _ hx =>
@@ -507,76 +507,76 @@ theorem sum_eq_tsum_indicator (f : β → α) (s : Finset β) :
 #align sum_eq_tsum_indicator sum_eq_tsum_indicator
 
 theorem tsum_congr {α β : Type _} [AddCommMonoid α] [TopologicalSpace α] {f g : β → α}
-    (hfg : ∀ b, f b = g b) : (∑' b, f b) = ∑' b, g b :=
+    (hfg : ∀ b, f b = g b) : ∑' b, f b = ∑' b, g b :=
   congr_arg tsum (funext hfg)
 #align tsum_congr tsum_congr
 
-theorem tsum_fintype [Fintype β] (f : β → α) : (∑' b, f b) = ∑ b, f b :=
+theorem tsum_fintype [Fintype β] (f : β → α) : ∑' b, f b = ∑ b, f b :=
   (hasSum_fintype f).tsum_eq
 #align tsum_fintype tsum_fintype
 
-theorem tsum_bool (f : Bool → α) : (∑' i : Bool, f i) = f False + f True := by
+theorem tsum_bool (f : Bool → α) : ∑' i : Bool, f i = f False + f True := by
   rw [tsum_fintype, Finset.sum_eq_add] <;> simp
 #align tsum_bool tsum_bool
 
 theorem tsum_eq_single {f : β → α} (b : β) (hf : ∀ (b') (_ : b' ≠ b), f b' = 0) :
-    (∑' b, f b) = f b :=
+    ∑' b, f b = f b :=
   (hasSum_single b hf).tsum_eq
 #align tsum_eq_single tsum_eq_single
 
 theorem tsum_tsum_eq_single (f : β → γ → α) (b : β) (c : γ) (hfb : ∀ (b') (_ : b' ≠ b), f b' c = 0)
-    (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : (∑' (b') (c'), f b' c') = f b c :=
+    (hfc : ∀ (b' : β) (c' : γ), c' ≠ c → f b' c' = 0) : ∑' (b') (c'), f b' c' = f b c :=
   calc
-    (∑' (b') (c'), f b' c') = ∑' b', f b' c := tsum_congr fun b' => tsum_eq_single _ (hfc b')
+    ∑' (b') (c'), f b' c' = ∑' b', f b' c := tsum_congr fun b' => tsum_eq_single _ (hfc b')
     _ = f b c := tsum_eq_single _ hfb
 #align tsum_tsum_eq_single tsum_tsum_eq_single
 
 @[simp]
 theorem tsum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
-    (∑' b', if b' = b then a else 0) = a :=
+    ∑' b', (if b' = b then a else 0) = a :=
   (hasSum_ite_eq b a).tsum_eq
 #align tsum_ite_eq tsum_ite_eq
 
 @[simp]
-theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : (∑' b', Pi.single b a b') = a :=
+theorem tsum_pi_single [DecidableEq β] (b : β) (a : α) : ∑' b', Pi.single b a b' = a :=
   (hasSum_pi_single b a).tsum_eq
 #align tsum_pi_single tsum_pi_single
 
 theorem tsum_dite_right (P : Prop) [Decidable P] (x : β → ¬P → α) :
-    (∑' b : β, if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
+    ∑' b : β, (if h : P then (0 : α) else x b h) = if h : P then (0 : α) else ∑' b : β, x b h := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_right tsum_dite_right
 
 theorem tsum_dite_left (P : Prop) [Decidable P] (x : β → P → α) :
-    (∑' b : β, if h : P then x b h else 0) = if h : P then ∑' b : β, x b h else 0 := by
+    ∑' b : β, (if h : P then x b h else 0) = if h : P then ∑' b : β, x b h else 0 := by
   by_cases hP : P <;> simp [hP]
 #align tsum_dite_left tsum_dite_left
 
 theorem Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum {α' : Type _} [AddCommMonoid α']
     [TopologicalSpace α'] {e : α' → α} (hes : Function.Surjective e) (h0 : e 0 = 0) {f : β → α}
-    {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : (∑' b, f b) = e (∑' c, g c) :=
+    {g : γ → α'} (h : ∀ {a}, HasSum f (e a) ↔ HasSum g a) : ∑' b, f b = e (∑' c, g c) :=
   _root_.by_cases (fun x => (h.mpr x.hasSum).tsum_eq) fun hg : ¬Summable g => by
     have hf : ¬Summable f := mt (hes.summable_iff_of_hasSum_iff @h).1 hg
     simp [tsum_def, hf, hg, h0]
 #align function.surjective.tsum_eq_tsum_of_has_sum_iff_has_sum Function.Surjective.tsum_eq_tsum_of_hasSum_iff_hasSum
 
 theorem tsum_eq_tsum_of_hasSum_iff_hasSum {f : β → α} {g : γ → α}
-    (h : ∀ {a}, HasSum f a ↔ HasSum g a) : (∑' b, f b) = ∑' c, g c :=
+    (h : ∀ {a}, HasSum f a ↔ HasSum g a) : ∑' b, f b = ∑' c, g c :=
   surjective_id.tsum_eq_tsum_of_hasSum_iff_hasSum rfl @h
 #align tsum_eq_tsum_of_has_sum_iff_has_sum tsum_eq_tsum_of_hasSum_iff_hasSum
 
-theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : (∑' c, f (j c)) = ∑' b, f b :=
+theorem Equiv.tsum_eq (j : γ ≃ β) (f : β → α) : ∑' c, f (j c) = ∑' b, f b :=
   tsum_eq_tsum_of_hasSum_iff_hasSum j.hasSum_iff
 #align equiv.tsum_eq Equiv.tsum_eq
 
 theorem Equiv.tsum_eq_tsum_of_support {f : β → α} {g : γ → α} (e : support f ≃ support g)
-    (he : ∀ x, g (e x) = f x) : (∑' x, f x) = ∑' y, g y :=
+    (he : ∀ x, g (e x) = f x) : ∑' x, f x = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum (hasSum_iff_of_support e he)
 #align equiv.tsum_eq_tsum_of_support Equiv.tsum_eq_tsum_of_support
 
 theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
     (hi : ∀ ⦃x y⦄, i x = i y → (x : γ) = y) (hf : support f ⊆ Set.range i)
-    (hfg : ∀ x, f (i x) = g x) : (∑' x, f x) = ∑' y, g y :=
+    (hfg : ∀ x, f (i x) = g x) : ∑' x, f x = ∑' y, g y :=
   tsum_eq_tsum_of_hasSum_iff_hasSum (hasSum_iff_hasSum_of_ne_zero_bij i hi hf hfg)
 #align tsum_eq_tsum_of_ne_zero_bij tsum_eq_tsum_of_ne_zero_bij
 
@@ -586,35 +586,35 @@ theorem tsum_eq_tsum_of_ne_zero_bij {g : γ → α} (i : support g → β)
 -- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
 @[simp, nolint simpNF]
 theorem Finset.tsum_subtype (s : Finset β) (f : β → α) :
-    (∑' x : { x // x ∈ s }, f x) = ∑ x in s, f x :=
+    ∑' x : { x // x ∈ s }, f x = ∑ x in s, f x :=
   (s.hasSum f).tsum_eq
 #align finset.tsum_subtype Finset.tsum_subtype
 
 -- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
 @[simp high, nolint simpNF]
 theorem Finset.tsum_subtype' (s : Finset β) (f : β → α) :
-    (∑' x : (s : Set β), f x) = ∑ x in s, f x :=
+    ∑' x : (s : Set β), f x = ∑ x in s, f x :=
   s.tsum_subtype f
 #align finset.tsum_subtype' Finset.tsum_subtype'
 
-theorem tsum_subtype (s : Set β) (f : β → α) : (∑' x : s, f x) = ∑' x, s.indicator f x :=
+theorem tsum_subtype (s : Set β) (f : β → α) : ∑' x : s, f x = ∑' x, s.indicator f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum hasSum_subtype_iff_indicator
 #align tsum_subtype tsum_subtype
 
 theorem tsum_subtype_eq_of_support_subset {f : β → α} {s : Set β} (hs : support f ⊆ s) :
-    (∑' x : s, f x) = ∑' x, f x :=
+    ∑' x : s, f x = ∑' x, f x :=
   tsum_eq_tsum_of_hasSum_iff_hasSum (hasSum_subtype_iff_of_support_subset hs)
 #align tsum_subtype_eq_of_support_subset tsum_subtype_eq_of_support_subset
 
 -- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
 @[simp, nolint simpNF]
-theorem tsum_univ (f : β → α) : (∑' x : (Set.univ : Set β), f x) = ∑' x, f x :=
+theorem tsum_univ (f : β → α) : ∑' x : (Set.univ : Set β), f x = ∑' x, f x :=
   tsum_subtype_eq_of_support_subset <| Set.subset_univ _
 #align tsum_univ tsum_univ
 
 -- Porting note: Added nolint simpNF, simpNF falsely claims that lhs does not simplify under simp
 @[simp, nolint simpNF]
-theorem tsum_singleton (b : β) (f : β → α) : (∑' x : ({b} : Set β), f x) = f b := by
+theorem tsum_singleton (b : β) (f : β → α) : ∑' x : ({b} : Set β), f x = f b := by
   rw [_root_.tsum_subtype, tsum_eq_single b]
   · simp
   · intro b' hb'
@@ -623,12 +623,12 @@ theorem tsum_singleton (b : β) (f : β → α) : (∑' x : ({b} : Set β), f x)
 #align tsum_singleton tsum_singleton
 
 theorem tsum_image {g : γ → β} (f : β → α) {s : Set γ} (hg : Set.InjOn g s) :
-    (∑' x : g '' s, f x) = ∑' x : s, f (g x) :=
+    ∑' x : g '' s, f x = ∑' x : s, f (g x) :=
   ((Equiv.Set.imageOfInjOn _ _ hg).tsum_eq fun x => f x).symm
 #align tsum_image tsum_image
 
 theorem tsum_range {g : γ → β} (f : β → α) (hg : Injective g) :
-    (∑' x : Set.range g, f x) = ∑' x, f (g x) := by
+    ∑' x : Set.range g, f x = ∑' x, f (g x) := by
   rw [← Set.image_univ, tsum_image f (hg.injOn _)]
   simp_rw [← comp_apply (g := g), tsum_univ (f ∘ g)]
 #align tsum_range tsum_range
@@ -638,23 +638,23 @@ section ContinuousAdd
 variable [ContinuousAdd α]
 
 theorem tsum_add (hf : Summable f) (hg : Summable g) :
-    (∑' b, f b + g b) = (∑' b, f b) + ∑' b, g b :=
+    ∑' b, (f b + g b) = ∑' b, f b + ∑' b, g b :=
   (hf.hasSum.add hg.hasSum).tsum_eq
 #align tsum_add tsum_add
 
 theorem tsum_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
-    (∑' b, ∑ i in s, f i b) = ∑ i in s, ∑' b, f i b :=
+    ∑' b, ∑ i in s, f i b = ∑ i in s, ∑' b, f i b :=
   (hasSum_sum fun i hi => (hf i hi).hasSum).tsum_eq
 #align tsum_sum tsum_sum
 
 /-- Version of `tsum_eq_add_tsum_ite` for `AddCommMonoid` rather than `AddCommGroup`.
 Requires a different convergence assumption involving `Function.update`. -/
 theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (update f b 0)) :
-    (∑' x, f x) = f b + ∑' x, ite (x = b) 0 (f x) :=
+    ∑' x, f x = f b + ∑' x, ite (x = b) 0 (f x) :=
   calc
-    (∑' x, f x) = ∑' x, ite (x = b) (f x) 0 + update f b 0 x :=
+    ∑' x, f x = ∑' x, (ite (x = b) (f x) 0 + update f b 0 x) :=
       tsum_congr fun n => by split_ifs with h <;> simp [update_apply, h]
-    _ = (∑' x, ite (x = b) (f x) 0) + ∑' x, update f b 0 x :=
+    _ = ∑' x, ite (x = b) (f x) 0 + ∑' x, update f b 0 x :=
       tsum_add ⟨ite (b = b) (f b) 0, hasSum_single b fun b hb => if_neg hb⟩ hf
     _ = ite (b = b) (f b) 0 + ∑' x, update f b 0 x := by
       congr
@@ -666,17 +666,17 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (update f
 variable [AddCommMonoid δ] [TopologicalSpace δ] [T3Space δ] [ContinuousAdd δ]
 
 theorem tsum_sigma' {γ : β → Type _} {f : (Σb : β, γ b) → δ} (h₁ : ∀ b, Summable fun c => f ⟨b, c⟩)
-    (h₂ : Summable f) : (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
+    (h₂ : Summable f) : ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   (h₂.hasSum.sigma fun b => (h₁ b).hasSum).tsum_eq.symm
 #align tsum_sigma' tsum_sigma'
 
 theorem tsum_prod' {f : β × γ → δ} (h : Summable f) (h₁ : ∀ b, Summable fun c => f (b, c)) :
-    (∑' p, f p) = ∑' (b) (c), f (b, c) :=
+    ∑' p, f p = ∑' (b) (c), f (b, c) :=
   (h.hasSum.prod_fiberwise fun b => (h₁ b).hasSum).tsum_eq.symm
 #align tsum_prod' tsum_prod'
 
 theorem tsum_comm' {f : β → γ → δ} (h : Summable (Function.uncurry f)) (h₁ : ∀ b, Summable (f b))
-    (h₂ : ∀ c, Summable fun b => f b c) : (∑' (c) (b), f b c) = ∑' (b) (c), f b c := by
+    (h₂ : ∀ c, Summable fun b => f b c) : ∑' (c) (b), f b c = ∑' (b) (c), f b c := by
   erw [← tsum_prod' h h₁, ← tsum_prod' h.prod_symm h₂, ← (Equiv.prodComm γ β).tsum_eq (uncurry f)]
   rfl
 #align tsum_comm' tsum_comm'
@@ -692,7 +692,7 @@ variable [Encodable γ]
 /-- 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_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
-    (∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b)) = ∑' b : γ, m (s b) := by
+    ∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b) = ∑' b : γ, m (s b) := by
   have H : ∀ n, m (⨆ b ∈ decode₂ γ n, s b) ≠ 0 → (decode₂ γ n).isSome :=by
     intro n h
     generalize decode₂ γ n = foo at *
@@ -722,7 +722,7 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
 
 /-- `tsum_iSup_decode₂` specialized to the complete lattice of sets. -/
 theorem tsum_iUnion_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
-    (∑' i, m (⋃ b ∈ decode₂ γ i, s b)) = ∑' b, m (s b) :=
+    ∑' i, m (⋃ b ∈ decode₂ γ i, s b) = ∑' b, m (s b) :=
   tsum_iSup_decode₂ m m0 s
 #align tsum_Union_decode₂ tsum_iUnion_decode₂
 
@@ -770,24 +770,24 @@ end Countable
 variable [ContinuousAdd α]
 
 theorem tsum_add_tsum_compl {s : Set β} (hs : Summable (f ∘ (↑) : s → α))
-    (hsc : Summable (f ∘ (↑) : ↑sᶜ → α)) : ((∑' x : s, f x) + ∑' x : ↑sᶜ, f x) = ∑' x, f x :=
+    (hsc : Summable (f ∘ (↑) : ↑sᶜ → α)) : ∑' x : s, f x + ∑' x : ↑sᶜ, f x = ∑' x, f x :=
   (hs.hasSum.add_compl hsc.hasSum).tsum_eq.symm
 #align tsum_add_tsum_compl tsum_add_tsum_compl
 
 theorem tsum_union_disjoint {s t : Set β} (hd : Disjoint s t) (hs : Summable (f ∘ (↑) : s → α))
-    (ht : Summable (f ∘ (↑) : t → α)) : (∑' x : ↑(s ∪ t), f x) = (∑' x : s, f x) + ∑' x : t, f x :=
+    (ht : Summable (f ∘ (↑) : t → α)) : ∑' x : ↑(s ∪ t), f x = ∑' x : s, f x + ∑' x : t, f x :=
   (hs.hasSum.add_disjoint hd ht.hasSum).tsum_eq
 #align tsum_union_disjoint tsum_union_disjoint
 
 theorem tsum_finset_bUnion_disjoint {ι} {s : Finset ι} {t : ι → Set β}
     (hd : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, Summable (f ∘ (↑) : t i → α)) :
-    (∑' x : ⋃ i ∈ s, t i, f x) = ∑ i in s, ∑' x : t i, f x :=
+    ∑' x : ⋃ i ∈ s, t i, f x = ∑ i in s, ∑' x : t i, f x :=
   (hasSum_sum_disjoint _ hd fun i hi => (hf i hi).hasSum).tsum_eq
 #align tsum_finset_bUnion_disjoint tsum_finset_bUnion_disjoint
 
 theorem tsum_even_add_odd {f : ℕ → α} (he : Summable fun k => f (2 * k))
     (ho : Summable fun k => f (2 * k + 1)) :
-    ((∑' k, f (2 * k)) + ∑' k, f (2 * k + 1)) = ∑' k, f k :=
+    ∑' k, f (2 * k) + ∑' k, f (2 * k + 1) = ∑' k, f k :=
   (he.hasSum.even_add_odd ho.hasSum).tsum_eq.symm
 #align tsum_even_add_odd tsum_even_add_odd
 
@@ -901,14 +901,14 @@ section tsum
 
 variable [T2Space α]
 
-theorem tsum_neg : (∑' b, -f b) = -∑' b, f b := by
+theorem tsum_neg : ∑' b, -f b = -∑' b, f b := by
   by_cases hf : Summable f
   · exact hf.hasSum.neg.tsum_eq
   · simp [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.of_neg hf)]
 #align tsum_neg tsum_neg
 
 theorem tsum_sub (hf : Summable f) (hg : Summable g) :
-    (∑' b, f b - g b) = (∑' b, f b) - ∑' b, g b :=
+    ∑' b, (f b - g b) = ∑' b, f b - ∑' b, g b :=
   (hf.hasSum.sub hg.hasSum).tsum_eq
 #align tsum_sub tsum_sub
 
@@ -921,7 +921,7 @@ theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
 Lemma `tsum_eq_add_tsum_ite` writes `Σ f n` as the sum of `f b` plus the series of the
 remaining terms. -/
 theorem tsum_eq_add_tsum_ite [DecidableEq β] (hf : Summable f) (b : β) :
-    (∑' n, f n) = f b + ∑' n, ite (n = b) 0 (f n) := by
+    ∑' n, f n = f b + ∑' n, ite (n = b) 0 (f n) := by
   rw [(hasSum_ite_sub_hasSum hf.hasSum b).tsum_eq]
   exact (add_sub_cancel'_right _ _).symm
 #align tsum_eq_add_tsum_ite tsum_eq_add_tsum_ite
@@ -931,7 +931,7 @@ end tsum
 /-!
 ### Sums on nat
 
-We show the formula `(∑ i in range k, f i) + (∑' i, f (i + k)) = (∑' i, f i)`, in
+We show the formula `∑ i in range k, f i + ∑' i, f (i + k) = ∑' i, f i`, in
 `sum_add_tsum_nat_add`, as well as several results relating sums on `ℕ` and `ℤ`.
 -/
 
@@ -972,11 +972,11 @@ theorem sum_add_tsum_nat_add [T2Space α] {f : ℕ → α} (k : ℕ) (h : Summab
 
 theorem tsum_eq_zero_add' [AddCommMonoid M] [TopologicalSpace M] [ContinuousAdd M] [T2Space M]
     {f : ℕ → M} (hf : Summable (fun n => f (n + 1))) :
-    (∑' b, f b) = f 0 + ∑' b, f (b + 1) := by
+    ∑' b, f b = f 0 + ∑' b, f (b + 1) := by
   simpa only [sum_range_one] using (sum_add_tsum_nat_add' hf).symm
 
 theorem tsum_eq_zero_add [T2Space α] {f : ℕ → α} (hf : Summable f) :
-    (∑' b, f b) = f 0 + ∑' b, f (b + 1) :=
+    ∑' b, f b = f 0 + ∑' b, f (b + 1) :=
   tsum_eq_zero_add' <| (summable_nat_add_iff 1).2 hf
 #align tsum_eq_zero_add tsum_eq_zero_add
 
@@ -985,7 +985,7 @@ assumption on `f`, as otherwise all sums are zero. -/
 theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     Tendsto (fun i => ∑' k, f (k + i)) atTop (𝓝 0) := by
   by_cases hf : Summable f
-  · have h₀ : (fun i => (∑' i, f i) - ∑ j in range i, f j) = fun i => ∑' k : ℕ, f (k + i) := by
+  · have h₀ : (fun i => ∑' i, f i - ∑ j in range i, f j) = fun i => ∑' k : ℕ, f (k + i) := by
       ext1 i
       rw [sub_eq_iff_eq_add, add_comm, sum_add_tsum_nat_add i hf]
     have h₁ : Tendsto (fun _ : ℕ => ∑' i, f i) atTop (𝓝 (∑' i, f i)) := tendsto_const_nhds
@@ -1158,9 +1158,9 @@ theorem Summable.summable_of_eq_zero_or_self (hf : Summable f) (h : ∀ b, g b =
   summable_iff_vanishing.2 fun e he =>
     let ⟨s, hs⟩ := summable_iff_vanishing.1 hf e he
     ⟨s, fun t ht =>
-      have eq : (∑ b in t.filter fun b => g b = f b, f b) = ∑ b in t, g b :=
+      have eq : ∑ b in t.filter fun b => g b = f b, f b = ∑ b in t, g b :=
         calc
-          (∑ b in t.filter fun b => g b = f b, f b) = ∑ b in t.filter fun b => g b = f b, g b :=
+          ∑ b in t.filter fun b => g b = f b, f b = ∑ b in t.filter fun b => g b = f b, g b :=
             Finset.sum_congr rfl fun b hb => (Finset.mem_filter.1 hb).2.symm
           _ = ∑ b in t, g b := by
            {refine' Finset.sum_subset (Finset.filter_subset _ _) _
@@ -1213,29 +1213,29 @@ attribute [local instance] TopologicalAddGroup.t3Space
 attribute [-instance] T1Space.t0Space
 
 theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
-    (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
+    ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
 
 theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) :
-    (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
+    ∑' p, f p = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_prod' h h.prod_factor
 #align tsum_prod tsum_prod
 
 theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
-    (∑' (c) (b), f b c) = ∑' (b) (c), f b c :=
+    ∑' (c) (b), f b c = ∑' (b) (c), f b c :=
   tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 #align tsum_comm tsum_comm
 
 end LocInstances
 
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
-    ((∑' x : s, f x) + ∑' x : ↑sᶜ, f x) = ∑' x, f x :=
+    ∑' x : s, f x + ∑' x : ↑sᶜ, f x = ∑' x, f x :=
   ((hf.subtype s).hasSum.add_compl (hf.subtype { x | x ∉ s }).hasSum).unique hf.hasSum
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
 
 theorem sum_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Finset β) :
-    ((∑ x in s, f x) + ∑' x : { x // x ∉ s }, f x) = ∑' x, f x := by
+    ∑ x in s, f x + ∑' x : { x // x ∉ s }, f x = ∑' x, f x := by
   rw [← tsum_subtype_add_tsum_subtype_compl hf s]
   simp only [Finset.tsum_subtype', add_right_inj]
   rfl
@@ -1285,7 +1285,7 @@ theorem Summable.const_smul (b : γ) (hf : Summable f) : Summable fun i => b •
   (hf.hasSum.const_smul _).summable
 #align summable.const_smul Summable.const_smul
 
-theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : (∑' i, b • f i) = b • ∑' i, f i :=
+theorem tsum_const_smul [T2Space α] (b : γ) (hf : Summable f) : ∑' i, b • f i = b • ∑' i, f i :=
   (hf.hasSum.const_smul _).tsum_eq
 #align tsum_const_smul tsum_const_smul
 
@@ -1375,14 +1375,14 @@ theorem summable_unop {f : β → αᵐᵒᵖ} : (Summable fun a => unop (f a))
 
 variable [T2Space α]
 
-theorem tsum_op : (∑' x, MulOpposite.op (f x)) = MulOpposite.op (∑' x, f x) := by
+theorem tsum_op : ∑' x, MulOpposite.op (f x) = MulOpposite.op (∑' x, f x) := by
   by_cases h : Summable f
   · exact h.hasSum.op.tsum_eq
   · have ho := summable_op.not.mpr h
     rw [tsum_eq_zero_of_not_summable h, tsum_eq_zero_of_not_summable ho, MulOpposite.op_zero]
 #align tsum_op tsum_op
 
-theorem tsum_unop {f : β → αᵐᵒᵖ} : (∑' x, MulOpposite.unop (f x)) = MulOpposite.unop (∑' x, f x) :=
+theorem tsum_unop {f : β → αᵐᵒᵖ} : ∑' x, MulOpposite.unop (f x) = MulOpposite.unop (∑' x, f x) :=
   MulOpposite.op_injective tsum_op.symm
 #align tsum_unop tsum_unop
 
fix: change compl precedence (#5586)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -770,7 +770,7 @@ end Countable
 variable [ContinuousAdd α]
 
 theorem tsum_add_tsum_compl {s : Set β} (hs : Summable (f ∘ (↑) : s → α))
-    (hsc : Summable (f ∘ (↑) : ↑(sᶜ) → α)) : ((∑' x : s, f x) + ∑' x : ↑(sᶜ), f x) = ∑' x, f x :=
+    (hsc : Summable (f ∘ (↑) : ↑sᶜ → α)) : ((∑' x : s, f x) + ∑' x : ↑sᶜ, f x) = ∑' x, f x :=
   (hs.hasSum.add_compl hsc.hasSum).tsum_eq.symm
 #align tsum_add_tsum_compl tsum_add_tsum_compl
 
@@ -851,7 +851,7 @@ theorem Summable.update (hf : Summable f) (b : β) [DecidableEq β] (a : α) :
 #align summable.update Summable.update
 
 theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ (↑) : s → α) a₁) :
-    HasSum (f ∘ (↑) : ↑(sᶜ) → α) a₂ ↔ HasSum f (a₁ + a₂) := by
+    HasSum (f ∘ (↑) : ↑sᶜ → α) a₂ ↔ HasSum f (a₁ + a₂) := by
   refine' ⟨fun h => hf.add_compl h, fun h => _⟩
   rw [hasSum_subtype_iff_indicator] at hf ⊢
   rw [Set.indicator_compl]
@@ -859,12 +859,12 @@ theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ (↑) : s → 
 #align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iff
 
 theorem HasSum.hasSum_iff_compl {s : Set β} (hf : HasSum (f ∘ (↑) : s → α) a₁) :
-    HasSum f a₂ ↔ HasSum (f ∘ (↑) : ↑(sᶜ) → α) (a₂ - a₁) :=
+    HasSum f a₂ ↔ HasSum (f ∘ (↑) : ↑sᶜ → α) (a₂ - a₁) :=
   Iff.symm <| hf.hasSum_compl_iff.trans <| by rw [add_sub_cancel'_right]
 #align has_sum.has_sum_iff_compl HasSum.hasSum_iff_compl
 
 theorem Summable.summable_compl_iff {s : Set β} (hf : Summable (f ∘ (↑) : s → α)) :
-    Summable (f ∘ (↑) : ↑(sᶜ) → α) ↔ Summable f :=
+    Summable (f ∘ (↑) : ↑sᶜ → α) ↔ Summable f :=
   ⟨fun ⟨_, ha⟩ => (hf.hasSum.hasSum_compl_iff.1 ha).summable, fun ⟨_, ha⟩ =>
     (hf.hasSum.hasSum_iff_compl.1 ha).summable⟩
 #align summable.summable_compl_iff Summable.summable_compl_iff
@@ -885,7 +885,7 @@ protected theorem Finset.summable_compl_iff (s : Finset β) :
 #align finset.summable_compl_iff Finset.summable_compl_iff
 
 theorem Set.Finite.summable_compl_iff {s : Set β} (hs : s.Finite) :
-    Summable (f ∘ (↑) : ↑(sᶜ) → α) ↔ Summable f :=
+    Summable (f ∘ (↑) : ↑sᶜ → α) ↔ Summable f :=
   (hs.summable f).summable_compl_iff
 #align set.finite.summable_compl_iff Set.Finite.summable_compl_iff
 
@@ -913,7 +913,7 @@ theorem tsum_sub (hf : Summable f) (hg : Summable g) :
 #align tsum_sub tsum_sub
 
 theorem sum_add_tsum_compl {s : Finset β} (hf : Summable f) :
-    ((∑ x in s, f x) + ∑' x : ↑((s : Set β)ᶜ), f x) = ∑' x, f x :=
+    ((∑ x in s, f x) + ∑' x : ↑(s : Set β)ᶜ, f x) = ∑' x, f x :=
   ((s.hasSum f).add_compl (s.summable_compl_iff.2 hf).hasSum).tsum_eq.symm
 #align sum_add_tsum_compl sum_add_tsum_compl
 
@@ -1185,8 +1185,8 @@ theorem Summable.subtype (hf : Summable f) (s : Set β) : Summable (f ∘ (↑)
 #align summable.subtype Summable.subtype
 
 theorem summable_subtype_and_compl {s : Set β} :
-    ((Summable fun x : s => f x) ∧ Summable fun x : ↑(sᶜ) => f x) ↔ Summable f :=
-  ⟨and_imp.2 Summable.add_compl, fun h => ⟨h.subtype s, h.subtype (sᶜ)⟩⟩
+    ((Summable fun x : s => f x) ∧ Summable fun x : ↑sᶜ => f x) ↔ Summable f :=
+  ⟨and_imp.2 Summable.add_compl, fun h => ⟨h.subtype s, h.subtype sᶜ⟩⟩
 #align summable_subtype_and_compl summable_subtype_and_compl
 
 theorem Summable.sigma_factor {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) (b : β) :
@@ -1230,7 +1230,7 @@ theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.un
 end LocInstances
 
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
-    ((∑' x : s, f x) + ∑' x : ↑(sᶜ), f x) = ∑' x, f x :=
+    ((∑' x : s, f x) + ∑' x : ↑sᶜ, f x) = ∑' x, f x :=
   ((hf.subtype s).hasSum.add_compl (hf.subtype { x | x ∉ s }).hasSum).unique hf.hasSum
 #align tsum_subtype_add_tsum_subtype_compl tsum_subtype_add_tsum_subtype_compl
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -707,7 +707,7 @@ theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0
     rwa [← e, mem_decode₂.1 (Option.get_mem (H m hm))] at this
   · intro b h
     refine' ⟨⟨encode b, _⟩, _⟩
-    · simp only [mem_support, encodek₂] at h⊢
+    · simp only [mem_support, encodek₂] at h ⊢
       convert h
       simp [Set.ext_iff, encodek₂]
     · exact Option.get_of_mem _ (encodek₂ _)
@@ -853,7 +853,7 @@ theorem Summable.update (hf : Summable f) (b : β) [DecidableEq β] (a : α) :
 theorem HasSum.hasSum_compl_iff {s : Set β} (hf : HasSum (f ∘ (↑) : s → α) a₁) :
     HasSum (f ∘ (↑) : ↑(sᶜ) → α) a₂ ↔ HasSum f (a₁ + a₂) := by
   refine' ⟨fun h => hf.add_compl h, fun h => _⟩
-  rw [hasSum_subtype_iff_indicator] at hf⊢
+  rw [hasSum_subtype_iff_indicator] at hf ⊢
   rw [Set.indicator_compl]
   simpa only [add_sub_cancel'] using h.sub hf
 #align has_sum.has_sum_compl_iff HasSum.hasSum_compl_iff
chore: add space after exacts (#4945)

Too often tempted to change these during other PRs, so doing a mass edit here.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -1009,7 +1009,7 @@ theorem HasSum.int_rec {b : α} {f g : ℕ → α} (hf : HasSum f a) (hg : HasSu
       rintro _ ⟨⟨i, rfl⟩, ⟨j, ⟨⟩⟩⟩
     · rw [codisjoint_iff_le_sup]
       rintro (i | j) _
-      exacts[Or.inl ⟨_, rfl⟩, Or.inr ⟨_, rfl⟩]
+      exacts [Or.inl ⟨_, rfl⟩, Or.inr ⟨_, rfl⟩]
   exact HasSum.add_isCompl this (h₁.hasSum_range_iff.mpr hf) (h₂.hasSum_range_iff.mpr hg)
 #align has_sum.int_rec HasSum.int_rec
 
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -460,7 +460,7 @@ theorem tsum_congr_subtype (f : β → α) {s t : Set β} (h : s = t) :
     (∑' x : s, f x) = ∑' x : t, f x := by rw [h]
 #align tsum_congr_subtype tsum_congr_subtype
 
-theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' _b : β, (0 : α)) = 0 := by
+theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' _ : β, (0 : α)) = 0 := by
   classical
     rw [tsum_def, dif_pos summable_zero]
     suffices ∀ x : α, HasSum (fun _ : β => (0 : α)) x → x = 0 by
@@ -473,7 +473,7 @@ theorem tsum_zero' (hz : IsClosed ({0} : Set α)) : (∑' _b : β, (0 : α)) = 0
 #align tsum_zero' tsum_zero'
 
 @[simp]
-theorem tsum_zero [T1Space α] : (∑' _b : β, (0 : α)) = 0 :=
+theorem tsum_zero [T1Space α] : (∑' _ : β, (0 : α)) = 0 :=
   tsum_zero' isClosed_singleton
 #align tsum_zero tsum_zero
 
fix: spacing and indentation in tactic formatters (#4519)

This fixes a bunch of spacing bugs in tactics. Mathlib counterpart of:

Diff
@@ -71,7 +71,7 @@ irreducible_def tsum {β} (f : β → α) :=
 
 -- see Note [operator precedence of big operators]
 @[inherit_doc tsum]
-notation3"∑' "(...)", "r:(scoped f => tsum f) => r
+notation3 "∑' "(...)", "r:(scoped f => tsum f) => r
 
 variable {f g : β → α} {a b : α} {s : Finset β}
 
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -343,7 +343,7 @@ theorem hasSum_sum_disjoint {ι} (s : Finset ι) {t : ι → Set β} {a : ι →
     (hs : (s : Set ι).Pairwise (Disjoint on t)) (hf : ∀ i ∈ s, HasSum (f ∘ (↑) : t i → α) (a i)) :
     HasSum (f ∘ (↑) : (⋃ i ∈ s, t i) → α) (∑ i in s, a i) := by
   simp_rw [hasSum_subtype_iff_indicator] at *
-  rw [Set.indicator_finset_bunionᵢ _ _ hs]
+  rw [Set.indicator_finset_biUnion _ _ hs]
   exact hasSum_sum hf
 #align has_sum_sum_disjoint hasSum_sum_disjoint
 
@@ -691,7 +691,7 @@ variable [Encodable γ]
 
 /-- 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_supᵢ_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
+theorem tsum_iSup_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (s : γ → β) :
     (∑' i : ℕ, m (⨆ b ∈ decode₂ γ i, s b)) = ∑' b : γ, m (s b) := by
   have H : ∀ n, m (⨆ b ∈ decode₂ γ n, s b) ≠ 0 → (decode₂ γ n).isSome :=by
     intro n h
@@ -718,13 +718,13 @@ theorem tsum_supᵢ_decode₂ [CompleteLattice β] (m : β → α) (m0 : m ⊥ =
     rw [show decode₂ γ n = _ from Option.get_mem (H n h)]
     congr
     simp [ext_iff, -Option.some_get]
-#align tsum_supr_decode₂ tsum_supᵢ_decode₂
+#align tsum_supr_decode₂ tsum_iSup_decode₂
 
-/-- `tsum_supᵢ_decode₂` specialized to the complete lattice of sets. -/
-theorem tsum_unionᵢ_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
+/-- `tsum_iSup_decode₂` specialized to the complete lattice of sets. -/
+theorem tsum_iUnion_decode₂ (m : Set β → α) (m0 : m ∅ = 0) (s : γ → Set β) :
     (∑' i, m (⋃ b ∈ decode₂ γ i, s b)) = ∑' b, m (s b) :=
-  tsum_supᵢ_decode₂ m m0 s
-#align tsum_Union_decode₂ tsum_unionᵢ_decode₂
+  tsum_iSup_decode₂ m m0 s
+#align tsum_Union_decode₂ tsum_iUnion_decode₂
 
 end Encodable
 
@@ -740,28 +740,28 @@ section Countable
 variable [Countable γ]
 
 /-- If a function is countably sub-additive then it is sub-additive on countable types -/
-theorem rel_supᵢ_tsum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
-    (m_supᵢ : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : γ → β) :
+theorem rel_iSup_tsum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
+    (m_iSup : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : γ → β) :
     R (m (⨆ b : γ, s b)) (∑' b : γ, m (s b)) := by
   cases nonempty_encodable γ
-  rw [← supᵢ_decode₂, ← tsum_supᵢ_decode₂ _ m0 s]
-  exact m_supᵢ _
-#align rel_supr_tsum rel_supᵢ_tsum
+  rw [← iSup_decode₂, ← tsum_iSup_decode₂ _ m0 s]
+  exact m_iSup _
+#align rel_supr_tsum rel_iSup_tsum
 
 /-- If a function is countably sub-additive then it is sub-additive on finite sets -/
-theorem rel_supᵢ_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
-    (m_supᵢ : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : δ → β) (t : Finset δ) :
+theorem rel_iSup_sum [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
+    (m_iSup : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s : δ → β) (t : Finset δ) :
     R (m (⨆ d ∈ t, s d)) (∑ d in t, m (s d)) := by
-  rw [supᵢ_subtype', ← Finset.tsum_subtype]
-  exact rel_supᵢ_tsum m m0 R m_supᵢ _
-#align rel_supr_sum rel_supᵢ_sum
+  rw [iSup_subtype', ← Finset.tsum_subtype]
+  exact rel_iSup_tsum m m0 R m_iSup _
+#align rel_supr_sum rel_iSup_sum
 
 /-- If a function is countably sub-additive then it is binary sub-additive -/
 theorem rel_sup_add [CompleteLattice β] (m : β → α) (m0 : m ⊥ = 0) (R : α → α → Prop)
-    (m_supᵢ : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s₁ s₂ : β) :
+    (m_iSup : ∀ s : ℕ → β, R (m (⨆ i, s i)) (∑' i, m (s i))) (s₁ s₂ : β) :
     R (m (s₁ ⊔ s₂)) (m s₁ + m s₂) := by
-  convert rel_supᵢ_tsum m m0 R m_supᵢ fun b => cond b s₁ s₂
-  · simp only [supᵢ_bool_eq, cond]
+  convert rel_iSup_tsum m m0 R m_iSup fun b => cond b s₁ s₂
+  · simp only [iSup_bool_eq, cond]
   · rw [tsum_fintype, Fintype.sum_bool, cond, cond]
 #align rel_sup_add rel_sup_add
 
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -395,10 +395,8 @@ theorem HasSum.sigma [RegularSpace α] {γ : β → Type _} {f : (Σ b : β, γ
   use u.image Sigma.fst, trivial
   intro bs hbs
   simp only [Set.mem_preimage, ge_iff_le, Finset.le_iff_subset] at hu
-  have :
-    Tendsto (fun t : Finset (Σb, γ b) => ∑ p in t.filter fun p => p.1 ∈ bs, f p) atTop
-      (𝓝 <| ∑ b in bs, g b) :=
-    by
+  have : Tendsto (fun t : Finset (Σb, γ b) => ∑ p in t.filter fun p => p.1 ∈ bs, f p) atTop
+      (𝓝 <| ∑ b in bs, g b) := by
     simp only [← sigma_preimage_mk, sum_sigma]
     refine' tendsto_finset_sum _ fun b _ => _
     change
@@ -431,8 +429,7 @@ it gives a relationship between the sums of `f` and `f.update` given that both e
 theorem HasSum.update' {α β : Type _} [TopologicalSpace α] [AddCommMonoid α] [T2Space α]
     [ContinuousAdd α] {f : β → α} {a a' : α} (hf : HasSum f a) (b : β) (x : α)
     (hf' : HasSum (update f b x) a') : a + x = a' + f b := by
-  have : ∀ b', f b' + ite (b' = b) x 0 = update f b x b' + ite (b' = b) (f b) 0 :=
-    by
+  have : ∀ b', f b' + ite (b' = b) x 0 = update f b x b' + ite (b' = b) (f b) 0 := by
     intro b'
     split_ifs with hb'
     · simpa only [Function.update_apply, hb', eq_self_iff_true] using add_comm (f b) x
@@ -659,8 +656,7 @@ theorem tsum_eq_add_tsum_ite' {f : β → α} (b : β) (hf : Summable (update f
       tsum_congr fun n => by split_ifs with h <;> simp [update_apply, h]
     _ = (∑' x, ite (x = b) (f x) 0) + ∑' x, update f b 0 x :=
       tsum_add ⟨ite (b = b) (f b) 0, hasSum_single b fun b hb => if_neg hb⟩ hf
-    _ = ite (b = b) (f b) 0 + ∑' x, update f b 0 x :=
-    by
+    _ = ite (b = b) (f b) 0 + ∑' x, update f b 0 x := by
       congr
       exact tsum_eq_single b fun b' hb' => if_neg hb'
     _ = f b + ∑' x, ite (x = b) 0 (f x) :=
@@ -820,8 +816,8 @@ theorem summable_neg_iff : (Summable fun b => -f b) ↔ Summable f :=
   ⟨Summable.of_neg, Summable.neg⟩
 #align summable_neg_iff summable_neg_iff
 
-theorem HasSum.sub (hf : HasSum f a₁) (hg : HasSum g a₂) : HasSum (fun b => f b - g b) (a₁ - a₂) :=
-  by
+theorem HasSum.sub (hf : HasSum f a₁) (hg : HasSum g a₂) :
+    HasSum (fun b => f b - g b) (a₁ - a₂) := by
   simp only [sub_eq_add_neg]
   exact hf.add hg.neg
 #align has_sum.sub HasSum.sub
@@ -989,8 +985,7 @@ assumption on `f`, as otherwise all sums are zero. -/
 theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     Tendsto (fun i => ∑' k, f (k + i)) atTop (𝓝 0) := by
   by_cases hf : Summable f
-  · have h₀ : (fun i => (∑' i, f i) - ∑ j in range i, f j) = fun i => ∑' k : ℕ, f (k + i) :=
-      by
+  · have h₀ : (fun i => (∑' i, f i) - ∑ j in range i, f j) = fun i => ∑' k : ℕ, f (k + i) := by
       ext1 i
       rw [sub_eq_iff_eq_add, add_comm, sum_add_tsum_nat_add i hf]
     have h₁ : Tendsto (fun _ : ℕ => ∑' i, f i) atTop (𝓝 (∑' i, f i)) := tendsto_const_nhds
@@ -1061,24 +1056,24 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
       · simp only [abs_of_nonpos h'x, Int.coe_natAbs, neg_neg]
   refine' ⟨u1 ∪ u2, A, _⟩
   calc
-    (∑ x in u1 ∪ u2, (f x + ite (x = 0) (f 0) 0)) = (∑ x in u1 ∪ u2, f x) + ∑ x in u1 ∩ u2, f x :=
-      by
-        rw [sum_add_distrib]
-        congr 1
-        refine' (sum_subset_zero_on_sdiff inter_subset_union _ _).symm
-        · intro x hx
-          suffices x ≠ 0 by simp only [this, if_false]
-          rintro rfl
-          simp at hx
-        · intro x hx
-          simp only [mem_inter, mem_image, exists_prop] at hx
-          have : x = 0 := by
-            apply le_antisymm
-            · rcases hx.2 with ⟨a, _, rfl⟩
-              simp only [Right.neg_nonpos_iff, Nat.cast_nonneg]
-            · rcases hx.1 with ⟨a, _, rfl⟩
-              simp only [Nat.cast_nonneg]
-          simp only [this, eq_self_iff_true, if_true]
+    (∑ x in u1 ∪ u2, (f x + ite (x = 0) (f 0) 0)) =
+        (∑ x in u1 ∪ u2, f x) + ∑ x in u1 ∩ u2, f x := by
+      rw [sum_add_distrib]
+      congr 1
+      refine' (sum_subset_zero_on_sdiff inter_subset_union _ _).symm
+      · intro x hx
+        suffices x ≠ 0 by simp only [this, if_false]
+        rintro rfl
+        simp at hx
+      · intro x hx
+        simp only [mem_inter, mem_image, exists_prop] at hx
+        have : x = 0 := by
+          apply le_antisymm
+          · rcases hx.2 with ⟨a, _, rfl⟩
+            simp only [Right.neg_nonpos_iff, Nat.cast_nonneg]
+          · rcases hx.1 with ⟨a, _, rfl⟩
+            simp only [Nat.cast_nonneg]
+        simp only [this, eq_self_iff_true, if_true]
     _ = (∑ x in u1, f x) + ∑ x in u2, f x := sum_union_inter
     _ = (∑ b in v', f b) + ∑ b in v', f (-b) := by simp
     _ = ∑ b in v', (f b + f (-b)) := sum_add_distrib.symm
@@ -1137,8 +1132,7 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
     refine' ⟨s, fun a sa => oe _⟩
     have A : Summable fun b : { x // x ∉ a } => f b := a.summable_compl_iff.2 H
     refine' IsClosed.mem_of_tendsto o_closed A.hasSum (eventually_of_forall fun b => _)
-    have : Disjoint (Finset.image (fun i : { x // x ∉ a } => (i : β)) b) s :=
-      by
+    have : Disjoint (Finset.image (fun i : { x // x ∉ a } => (i : β)) b) s := by
       refine' disjoint_left.2 fun i hi his => _
       rcases mem_image.1 hi with ⟨i', _, rfl⟩
       exact i'.2 (sa his)
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -325,8 +325,6 @@ theorem hasSum_sum {f : γ → β → α} {a : γ → α} {s : Finset γ} :
     simp (config := { contextual := true }) only [mem_insert, forall_eq_or_imp, not_false_iff,
       sum_insert, and_imp]
     exact fun x s _ IH hx h ↦ hx.add (IH h)
-
-
 #align has_sum_sum hasSum_sum
 
 theorem summable_sum {f : γ → β → α} {s : Finset γ} (hf : ∀ i ∈ s, Summable (f i)) :
@@ -1084,7 +1082,6 @@ theorem HasSum.sum_nat_of_sum_int {α : Type _} [AddCommMonoid α] [TopologicalS
     _ = (∑ x in u1, f x) + ∑ x in u2, f x := sum_union_inter
     _ = (∑ b in v', f b) + ∑ b in v', f (-b) := by simp
     _ = ∑ b in v', (f b + f (-b)) := sum_add_distrib.symm
-
 #align has_sum.sum_nat_of_sum_int HasSum.sum_nat_of_sum_int
 
 end Nat
feat: support irreducible_def in to_additive (#3399)
Diff
@@ -64,11 +64,6 @@ def Summable (f : β → α) : Prop :=
   ∃ a, HasSum f a
 #align summable Summable
 
--- Porting note: `irreducible_def` produces a structure.
---               When a structure is defined, an injectivity theorem of the constructor is
---               generated, which has `simp` attr, but this get a `simpNF` linter.
---               So, this option is required.
-set_option genInjectivity false in
 /-- `∑' i, f i` is the sum of `f` it exists, or 0 otherwise -/
 irreducible_def tsum {β} (f : β → α) :=
   if h : Summable f then Classical.choose h else 0
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl
 
 ! This file was ported from Lean 3 source module topology.algebra.infinite_sum.basic
-! leanprover-community/mathlib commit 32253a1a1071173b33dc7d6a218cf722c6feb514
+! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1132,8 +1132,6 @@ theorem cauchySeq_finset_iff_vanishing :
     exact hde _ (h _ Finset.sdiff_disjoint) _ (h _ Finset.sdiff_disjoint)
 #align cauchy_seq_finset_iff_vanishing cauchySeq_finset_iff_vanishing
 
-attribute [local instance] TopologicalAddGroup.t3Space
-
 /-- 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 tendsto_tsum_compl_atTop_zero (f : β → α) :
@@ -1220,21 +1218,31 @@ theorem Summable.prod_factor {f : β × γ → α} (h : Summable f) (b : β) :
   h.comp_injective fun _ _ h => (Prod.ext_iff.1 h).2
 #align summable.prod_factor Summable.prod_factor
 
-theorem tsum_sigma [T1Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
+section LocInstances
+
+-- enable inferring a T3-topological space from a topological group
+attribute [local instance] TopologicalAddGroup.t3Space
+
+-- disable getting a T0-space from a T1-space as this causes loops
+attribute [-instance] T1Space.t0Space
+
+theorem tsum_sigma [T0Space α] {γ : β → Type _} {f : (Σb : β, γ b) → α} (ha : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_sigma' (fun b => ha.sigma_factor b) ha
 #align tsum_sigma tsum_sigma
 
-theorem tsum_prod [T1Space α] {f : β × γ → α} (h : Summable f) :
+theorem tsum_prod [T0Space α] {f : β × γ → α} (h : Summable f) :
     (∑' p, f p) = ∑' (b) (c), f ⟨b, c⟩ :=
   tsum_prod' h h.prod_factor
 #align tsum_prod tsum_prod
 
-theorem tsum_comm [T1Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
+theorem tsum_comm [T0Space α] {f : β → γ → α} (h : Summable (Function.uncurry f)) :
     (∑' (c) (b), f b c) = ∑' (b) (c), f b c :=
   tsum_comm' h h.prod_factor h.prod_symm.prod_factor
 #align tsum_comm tsum_comm
 
+end LocInstances
+
 theorem tsum_subtype_add_tsum_subtype_compl [T2Space α] {f : β → α} (hf : Summable f) (s : Set β) :
     ((∑' x : s, f x) + ∑' x : ↑(sᶜ), f x) = ∑' x, f x :=
   ((hf.subtype s).hasSum.add_compl (hf.subtype { x | x ∉ s }).hasSum).unique hf.hasSum
feat: port Topology.Instances.ENNReal (#2734)

API changes:

  • Add HasSum.sum_range_add, sum_add_tsum_nat_add', and tsum_eq_zero_add'. We had these (or stronger) results for topological groups. These versions works for monoids.
  • Rename tendsto_atTop_csupr to tendsto_atTop_csupᵢ, tendsto_atBot_csupr to tendsto_atBot_csupᵢ, tendsto_atBot_cinfi to tendsto_atBot_cinfᵢ, and tendsto_atTop_cinfi to tendsto_atTop_cinfᵢ.
  • Add a shortcut instance for T5Space ENNReal.
  • Add ENNReal.nhdsWithin_Ioi_one_neBot, ENNReal.nhdsWithin_Ioi_nat_neBot, ENNReal.nhdsWithin_Ioi_ofNat_nebot, and ENNReal.nhdsWithin_Iio_neBot.
  • Add ENNReal.hasBasis_nhds_of_ne_top and ENNReal.hasBasis_nhds_of_ne_top'.
  • Add ENNReal.binfᵢ_le_nhds and ENNReal.tendsto_nhds_of_Icc.
  • Use Real.nnabs instead of nnnorm to avoid dependency on analysis.normed.group.basic (forward-port of leanprover-community/mathlib#18562).
  • Add ENNReal.tsum_eq_limsup_sum_nat.
  • Add ENNReal.tsum_comp_le_tsum_of_injective, ENNReal.tsum_le_tsum_comp_of_surjective, use them to golf some proofs.
  • Add ENNReal.tsum_bunionᵢ_le_tsum, ENNReal.tsum_unionᵢ_le_tsum. We had versions of these lemmas for finite collections. The proofs for infinite collections are simpler.

Most of these changes were done to fix some long proofs: it was easier for me (@urkud) to add supporting lemmas and golf the proof than to fix the original code.

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Yury Kudryashov <urkud@urkud.name>

Diff
@@ -946,7 +946,6 @@ We show the formula `(∑ i in range k, f i) + (∑' i, f (i + k)) = (∑' i, f
 `sum_add_tsum_nat_add`, as well as several results relating sums on `ℕ` and `ℤ`.
 -/
 
-
 section Nat
 
 theorem hasSum_nat_add_iff {f : ℕ → α} (k : ℕ) {a : α} :
@@ -967,16 +966,31 @@ theorem hasSum_nat_add_iff' {f : ℕ → α} (k : ℕ) {a : α} :
   simp [hasSum_nat_add_iff]
 #align has_sum_nat_add_iff' hasSum_nat_add_iff'
 
+theorem HasSum.sum_range_add [AddCommMonoid M] [TopologicalSpace M] [ContinuousAdd M] {f : ℕ → M}
+    {k : ℕ} {a : M} (h : HasSum (fun n ↦ f (n + k)) a) : HasSum f ((∑ i in range k, f i) + a) := by
+  refine ((range k).hasSum f).add_compl ?_
+  rwa [← (notMemRangeEquiv k).symm.hasSum_iff]
+
+theorem sum_add_tsum_nat_add' [AddCommMonoid M] [TopologicalSpace M] [ContinuousAdd M] [T2Space M]
+    {f : ℕ → M} {k : ℕ} (h : Summable (fun n => f (n + k))) :
+    ((∑ i in range k, f i) + ∑' i, f (i + k)) = ∑' i, f i :=
+  h.hasSum.sum_range_add.tsum_eq.symm
+
 theorem sum_add_tsum_nat_add [T2Space α] {f : ℕ → α} (k : ℕ) (h : Summable f) :
-    ((∑ i in range k, f i) + ∑' i, f (i + k)) = ∑' i, f i := by
-  simpa only [add_comm] using
-    ((hasSum_nat_add_iff k).1 ((summable_nat_add_iff k).2 h).hasSum).unique h.hasSum
+    ((∑ i in range k, f i) + ∑' i, f (i + k)) = ∑' i, f i :=
+  sum_add_tsum_nat_add' <| (summable_nat_add_iff k).2 h
 #align sum_add_tsum_nat_add sum_add_tsum_nat_add
 
-theorem tsum_eq_zero_add [T2Space α] {f : ℕ → α} (hf : Summable f) :
+theorem tsum_eq_zero_add' [AddCommMonoid M] [TopologicalSpace M] [ContinuousAdd M] [T2Space M]
+    {f : ℕ → M} (hf : Summable (fun n => f (n + 1))) :
     (∑' b, f b) = f 0 + ∑' b, f (b + 1) := by
-  simpa only [sum_range_one] using (sum_add_tsum_nat_add 1 hf).symm
+  simpa only [sum_range_one] using (sum_add_tsum_nat_add' hf).symm
+
+theorem tsum_eq_zero_add [T2Space α] {f : ℕ → α} (hf : Summable f) :
+    (∑' b, f b) = f 0 + ∑' b, f (b + 1) :=
+  tsum_eq_zero_add' <| (summable_nat_add_iff 1).2 hf
 #align tsum_eq_zero_add tsum_eq_zero_add
+
 /-- For `f : ℕ → α`, then `∑' k, f (k + i)` tends to zero. This does not require a summability
 assumption on `f`, as otherwise all sums are zero. -/
 theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
feat: port Topology.Algebra.InfiniteSum.Order (#2644)
Diff
@@ -136,7 +136,7 @@ theorem hasSum_iff_hasSum {g : γ → α}
 #align has_sum_iff_has_sum hasSum_iff_hasSum
 
 theorem Function.Injective.hasSum_iff {g : γ → β} (hg : Injective g)
-    (hf : ∀ (x) (_ : x ∉ Set.range g), f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
+    (hf : ∀ x, x ∉ Set.range g → f x = 0) : HasSum (f ∘ g) a ↔ HasSum f a := by
   simp only [HasSum, Tendsto, comp_apply, hg.map_atTop_finset_sum_eq hf]
 #align function.injective.has_sum_iff Function.Injective.hasSum_iff
 
@@ -145,6 +145,15 @@ theorem Function.Injective.summable_iff {g : γ → β} (hg : Injective g)
   exists_congr fun _ => hg.hasSum_iff hf
 #align function.injective.summable_iff Function.Injective.summable_iff
 
+@[simp] theorem hasSum_extend_zero {g : β → γ} (hg : Injective g) :
+    HasSum (extend g f 0) a ↔ HasSum f a := by
+  rw [← hg.hasSum_iff, extend_comp hg]
+  exact extend_apply' _ _
+
+@[simp] theorem summable_extend_zero {g : β → γ} (hg : Injective g) :
+    Summable (extend g f 0) ↔ Summable f :=
+  exists_congr fun _ => hasSum_extend_zero hg
+
 theorem hasSum_subtype_iff_of_support_subset {s : Set β} (hf : support f ⊆ s) :
     HasSum (f ∘ (↑) : s → α) a ↔ HasSum f a :=
   Subtype.coe_injective.hasSum_iff <| by simpa using support_subset_iff'.1 hf
feat: tactic congr! and improvement to convert (#2566)

This introduces a tactic congr! that is an analogue to mathlib 3's congr'. It is a more insistent version of congr that makes use of more congruence lemmas (including user congruence lemmas), propext, funext, and Subsingleton instances. It also has a feature to lift reflexive relations to equalities. Along with funext, the tactic does intros, allowing congr! to get access to function bodies; the introduced variables can be named using rename_i if needed.

This also modifies convert to use congr! rather than congr, which makes it work more like the mathlib3 version of the tactic.

Diff
@@ -95,7 +95,6 @@ theorem hasSum_zero : HasSum (fun _ => 0 : β → α) 0 := by simp [HasSum, tend
 
 theorem hasSum_empty [IsEmpty β] : HasSum f 0 := by
   convert @hasSum_zero α β _ _
-  simp only [eq_iff_true_of_subsingleton]
 #align has_sum_empty hasSum_empty
 
 theorem summable_zero : Summable (fun _ => 0 : β → α) :=
@@ -210,7 +209,6 @@ theorem hasSum_ite_eq (b : β) [DecidablePred (· = b)] (a : α) :
 
 theorem hasSum_pi_single [DecidableEq β] (b : β) (a : α) : HasSum (Pi.single b a) a := by
   convert hasSum_ite_eq b a
-  ext
   simp [Pi.single_apply]
 #align has_sum_pi_single hasSum_pi_single
 
@@ -450,7 +448,7 @@ theorem eq_add_of_hasSum_ite {α β : Type _} [TopologicalSpace α] [AddCommMono
     (hf' : HasSum (fun n => ite (n = b) 0 (f n)) a') : a = a' + f b := by
   refine' (add_zero a).symm.trans (hf.update' b 0 _)
   convert hf'
-  exact funext (update_apply f b 0)
+  apply update_apply
 #align eq_add_of_has_sum_ite eq_add_of_hasSum_ite
 
 end HasSum
@@ -842,7 +840,7 @@ theorem summable_iff_of_summable_sub (hfg : Summable fun b => f b - g b) :
 theorem HasSum.update (hf : HasSum f a₁) (b : β) [DecidableEq β] (a : α) :
     HasSum (update f b a) (a - f b + a₁) := by
   convert (hasSum_ite_eq b (a - f b)).add hf
-  ext b'
+  rename_i b'
   by_cases h : b' = b
   · rw [h, update_same]
     simp [eq_self_iff_true, if_true, sub_add_cancel]
@@ -982,7 +980,7 @@ theorem tendsto_sum_nat_add [T2Space α] (f : ℕ → α) :
     have h₁ : Tendsto (fun _ : ℕ => ∑' i, f i) atTop (𝓝 (∑' i, f i)) := tendsto_const_nhds
     simpa only [h₀, sub_self] using Tendsto.sub h₁ hf.hasSum.tendsto_sum_nat
   · convert tendsto_const_nhds (α := α) (β := ℕ) (a := 0) (f := atTop)
-    ext1 i
+    rename_i i
     rw [← summable_nat_add_iff i] at hf
     exact tsum_eq_zero_of_not_summable hf
 #align tendsto_sum_nat_add tendsto_sum_nat_add
@@ -1136,7 +1134,6 @@ theorem tendsto_tsum_compl_atTop_zero (f : β → α) :
     intro i _ j _ hij
     exact Subtype.ext hij
   · convert tendsto_const_nhds (α := α) (β := Finset β) (f := atTop) (a := 0)
-    ext s
     apply tsum_eq_zero_of_not_summable
     rwa [Finset.summable_compl_iff]
 #align tendsto_tsum_compl_at_top_zero tendsto_tsum_compl_atTop_zero
feat: port Topology.Algebra.InfiniteSum.Basic (#2500)

Co-authored-by: Lukas Miaskiwskyi <lukas.mias@gmail.com> Co-authored-by: ADedecker <anatolededecker@gmail.com> Co-authored-by: Komyyy <pol_tta@outlook.jp>

Dependencies 9 + 429

430 files ported (97.9%)
183646 lines ported (97.3%)
Show graph

The unported dependencies are