topology.algebra.uniform_groupMathlib.Topology.Algebra.UniformGroup

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -949,7 +949,7 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
   have lim2 : tendsto Φ (𝓝 (0, y₁)) (𝓝 0) := by simpa using hφ.tendsto (0, y₁)
   have lim := lim2.comp lim1
   rw [tendsto_prod_self_iff] at lim
-  simp_rw [ball_mem_comm]
+  simp_rw [forall_mem_comm]
   exact limUnder W' W'_nhd
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
Diff
@@ -140,7 +140,7 @@ theorem uniformContinuous_mul : UniformContinuous fun p : α × α => p.1 * p.2
 theorem UniformContinuous.pow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℕ, UniformContinuous fun x => f x ^ n
   | 0 => by simp_rw [pow_zero]; exact uniformContinuous_const
-  | n + 1 => by simp_rw [pow_succ]; exact hf.mul (UniformContinuous.pow_const n)
+  | n + 1 => by simp_rw [pow_succ']; exact hf.mul (UniformContinuous.pow_const n)
 #align uniform_continuous.pow_const UniformContinuous.pow_const
 #align uniform_continuous.const_nsmul UniformContinuous.const_nsmul
 -/
@@ -157,7 +157,7 @@ theorem uniformContinuous_pow_const (n : ℕ) : UniformContinuous fun x : α =>
 @[to_additive UniformContinuous.const_zsmul]
 theorem UniformContinuous.zpow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℤ, UniformContinuous fun x => f x ^ n
-  | (n : ℕ) => by simp_rw [zpow_coe_nat]; exact hf.pow_const _
+  | (n : ℕ) => by simp_rw [zpow_natCast]; exact hf.pow_const _
   | -[n+1] => by simp_rw [zpow_negSucc]; exact (hf.pow_const _).inv
 #align uniform_continuous.zpow_const UniformContinuous.zpow_const
 #align uniform_continuous.const_zsmul UniformContinuous.const_zsmul
@@ -933,7 +933,7 @@ variable (hφ : Continuous Φ)
 
 variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
 private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
   by
@@ -952,10 +952,10 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
 private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
     ∃ U ∈ comap e (𝓝 x₀),
       ∃ V ∈ comap f (𝓝 y₀),
@@ -1119,7 +1119,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     refine'
       ⟨y⁻¹ * g, by
         simpa only [div_eq_mul_inv, mul_inv_rev, inv_inv, mul_inv_cancel_left] using y_mem, _⟩
-    rw [QuotientGroup.mk_mul, QuotientGroup.mk_inv, hy, hg, inv_div, div_mul_cancel']
+    rw [QuotientGroup.mk_mul, QuotientGroup.mk_inv, hy, hg, inv_div, div_mul_cancel]
   /- Inductively construct a subsequence `φ : ℕ → ℕ` using `key₀` so that if `a b : ℕ` exceed
     `φ (n + 1)`, then we may find lifts whose quotients lie within `u n`. -/
   set φ : ℕ → ℕ := fun n => Nat.recOn n (some <| key₀ 0 0) fun k yk => some <| key₀ (k + 1) yk
Diff
@@ -413,16 +413,16 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι →
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add_swapped Filter.HasBasis.uniformity_of_nhds_zero_neg_add_swapped
 -/
 
-#print group_separationRel /-
+#print group_inseparable_iff /-
 @[to_additive]
-theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y ∈ closure ({1} : Set α) :=
+theorem group_inseparable_iff (x y : α) : (x, y) ∈ Inseparable α ↔ x / y ∈ closure ({1} : Set α) :=
   have : Embedding fun a => a * (y / x) := (uniformEmbedding_translate_mul (y / x)).Embedding
   show (x, y) ∈ ⋂₀ (𝓤 α).sets ↔ x / y ∈ closure ({1} : Set α)
     by
     rw [this.closure_eq_preimage_closure_image, uniformity_eq_comap_nhds_one α, sInter_comap_sets]
     simp [mem_closure_iff_nhds, inter_singleton_nonempty, sub_eq_add_neg, add_assoc]
-#align group_separation_rel group_separationRel
-#align add_group_separation_rel addGroup_separationRel
+#align group_separation_rel group_inseparable_iff
+#align add_group_separation_rel addGroup_inseparable_iff
 -/
 
 #print uniformContinuous_of_tendsto_one /-
@@ -487,7 +487,7 @@ theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type _} [UniformSpace
 theorem uniformContinuous_monoidHom_of_continuous {hom : Type _} [UniformSpace β] [Group β]
     [UniformGroup β] [MonoidHomClass hom α β] {f : hom} (h : Continuous f) : UniformContinuous f :=
   uniformContinuous_of_tendsto_one <|
-    suffices Tendsto f (𝓝 1) (𝓝 (f 1)) by rwa [map_one] at this 
+    suffices Tendsto f (𝓝 1) (𝓝 (f 1)) by rwa [map_one] at this
     h.Tendsto 1
 #align uniform_continuous_monoid_hom_of_continuous uniformContinuous_monoidHom_of_continuous
 #align uniform_continuous_add_monoid_hom_of_continuous uniformContinuous_addMonoidHom_of_continuous
@@ -712,7 +712,7 @@ instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTop
   by
   obtain ⟨V, V_in, VH⟩ : ∃ (V : Set G) (hV : V ∈ 𝓝 (1 : G)), V ∩ (H : Set G) = {1}
   exact nhds_inter_eq_singleton_of_mem_discrete H.one_mem
-  haveI : SeparatedSpace G := separated_iff_t2.mpr ‹_›
+  haveI : T0Space G := separated_iff_t2.mpr ‹_›
   have : (fun p : G × G => p.2 / p.1) ⁻¹' V ∈ 𝓤 G := preimage_mem_comap V_in
   apply isClosed_of_spaced_out this
   intro h h_in h' h'_in
@@ -815,19 +815,19 @@ open Set
 theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) :=
   by
   haveI : UniformGroup G := comm_topologicalGroup_is_uniform
-  rw [← separated_iff_t2, separatedSpace_iff, ← closure_eq_iff_isClosed]
+  rw [← R1Space.t2Space_iff_t0Space, t0Space_iff_ker_uniformity, ← closure_eq_iff_isClosed]
   constructor <;> intro h
   · apply subset.antisymm
     · intro x x_in
-      have := group_separationRel x 1
-      rw [div_one] at this 
-      rw [← this, h] at x_in 
-      change x = 1 at x_in 
+      have := group_inseparable_iff x 1
+      rw [div_one] at this
+      rw [← this, h] at x_in
+      change x = 1 at x_in
       simp [x_in]
     · exact subset_closure
   · ext p
     cases' p with x y
-    rw [group_separationRel x, h, mem_singleton_iff, div_eq_one]
+    rw [group_inseparable_iff x, h, mem_singleton_iff, div_eq_one]
     rfl
 #align topological_group.t2_space_iff_one_closed TopologicalGroup.t2Space_iff_one_closed
 #align topological_add_group.t2_space_iff_zero_closed TopologicalAddGroup.t2Space_iff_zero_closed
@@ -842,7 +842,7 @@ theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U 
   intro x x_not
   have : x ≠ 1 := mem_compl_singleton_iff.mp x_not
   rcases H x this with ⟨U, U_in, xU⟩
-  rw [← nhds_one_symm G] at U_in 
+  rw [← nhds_one_symm G] at U_in
   rcases U_in with ⟨W, W_in, UW⟩
   rw [← nhds_translation_mul_inv]
   use W, W_in
@@ -919,7 +919,7 @@ variable [TopologicalSpace γ] [AddCommGroup γ] [TopologicalAddGroup γ]
 
 variable [TopologicalSpace δ] [AddCommGroup δ] [TopologicalAddGroup δ]
 
-variable [UniformSpace G] [AddCommGroup G] [UniformAddGroup G] [SeparatedSpace G] [CompleteSpace G]
+variable [UniformSpace G] [AddCommGroup G] [UniformAddGroup G] [T0Space G] [CompleteSpace G]
 
 variable {e : β →+ α} (de : DenseInducing e)
 
@@ -948,7 +948,7 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     exact (this : _)
   have lim2 : tendsto Φ (𝓝 (0, y₁)) (𝓝 0) := by simpa using hφ.tendsto (0, y₁)
   have lim := lim2.comp lim1
-  rw [tendsto_prod_self_iff] at lim 
+  rw [tendsto_prod_self_iff] at lim
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
 
@@ -977,8 +977,8 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
         (comap ee (𝓝 (x₀, x₀)) ×ᶠ comap ff (𝓝 (y₀, y₀))) (𝓝 0 ×ᶠ 𝓝 0) :=
       by
       have := Filter.prod_mono (tendsto_sub_comap_self de x₀) (tendsto_sub_comap_self df y₀)
-      rwa [prod_map_map_eq] at this 
-    rw [← nhds_prod_eq] at lim_sub_sub 
+      rwa [prod_map_map_eq] at this
+    rw [← nhds_prod_eq] at lim_sub_sub
     exact tendsto.comp lim_φ lim_sub_sub
   rcases exists_nhds_zero_quarter W'_nhd with ⟨W, W_nhd, W4⟩
   have :
@@ -988,9 +988,9 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
           ∀ (y) (_ : y ∈ V₁) (y') (_ : y' ∈ V₁), Φ (x' - x, y' - y) ∈ W :=
     by
     have := tendsto_prod_iff.1 lim_φ_sub_sub W W_nhd
-    repeat' rw [nhds_prod_eq, ← prod_comap_comap_eq] at this 
+    repeat' rw [nhds_prod_eq, ← prod_comap_comap_eq] at this
     rcases this with ⟨U, U_in, V, V_in, H⟩
-    rw [mem_prod_same_iff] at U_in V_in 
+    rw [mem_prod_same_iff] at U_in V_in
     rcases U_in with ⟨U₁, U₁_in, HU₁⟩
     rcases V_in with ⟨V₁, V₁_in, HV₁⟩
     exists U₁, U₁_in, V₁, V₁_in
@@ -1046,21 +1046,21 @@ theorem extend_Z_bilin : Continuous (extend (de.Prod df) Φ) :=
     intro W' W'_nhd
     have key := extend_Z_bilin_key de df hφ W'_nhd x₀ y₀
     rcases key with ⟨U, U_nhd, V, V_nhd, h⟩
-    rw [mem_comap] at U_nhd 
+    rw [mem_comap] at U_nhd
     rcases U_nhd with ⟨U', U'_nhd, U'_sub⟩
-    rw [mem_comap] at V_nhd 
+    rw [mem_comap] at V_nhd
     rcases V_nhd with ⟨V', V'_nhd, V'_sub⟩
     rw [mem_map, mem_comap, nhds_prod_eq]
     exists (U' ×ˢ V') ×ˢ U' ×ˢ V'
     rw [mem_prod_same_iff]
     simp only [exists_prop]
     constructor
-    · change U' ∈ 𝓝 x₀ at U'_nhd 
-      change V' ∈ 𝓝 y₀ at V'_nhd 
+    · change U' ∈ 𝓝 x₀ at U'_nhd
+      change V' ∈ 𝓝 y₀ at V'_nhd
       have := prod_mem_prod U'_nhd V'_nhd
       tauto
     · intro p h'
-      simp only [Set.mem_preimage, Set.prod_mk_mem_set_prod_eq] at h' 
+      simp only [Set.mem_preimage, Set.prod_mk_mem_set_prod_eq] at h'
       rcases p with ⟨⟨x, y⟩, ⟨x', y'⟩⟩
       apply h <;> tauto
 #align dense_inducing.extend_Z_bilin DenseInducing.extend_Z_bilin
@@ -1098,7 +1098,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
   haveI : (𝓤 (G ⧸ N)).IsCountablyGenerated := comap.is_countably_generated _ _
   obtain ⟨u, hu, u_mul⟩ := TopologicalGroup.exists_antitone_basis_nhds_one G
   obtain ⟨hv, v_anti⟩ := @has_antitone_basis.map _ _ _ _ _ _ (coe : G → G ⧸ N) hu
-  rw [← QuotientGroup.nhds_eq N 1, QuotientGroup.mk_one] at hv 
+  rw [← QuotientGroup.nhds_eq N 1, QuotientGroup.mk_one] at hv
   refine' UniformSpace.complete_of_cauchySeq_tendsto fun x hx => _
   /- Given `n : ℕ`, for sufficiently large `a b : ℕ`, given any lift of `x b`, we can find a lift
     of `x a` such that the quotient of the lifts lies in `u n`. -/
@@ -1109,7 +1109,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     by
     have h𝓤GN : (𝓤 (G ⧸ N)).HasBasis (fun _ => True) fun i => {x | x.snd / x.fst ∈ coe '' u i} := by
       simpa [uniformity_eq_comap_nhds_one'] using hv.comap _
-    simp only [h𝓤GN.cauchy_seq_iff, ge_iff_le, mem_set_of_eq, forall_true_left, mem_image] at hx 
+    simp only [h𝓤GN.cauchy_seq_iff, ge_iff_le, mem_set_of_eq, forall_true_left, mem_image] at hx
     intro i j
     rcases hx i with ⟨M, hM⟩
     refine' ⟨max j M + 1, (le_max_left _ _).trans_lt (lt_add_one _), fun a b ha hb g hg => _⟩
@@ -1183,7 +1183,7 @@ quotient obtained via other means.  -/
 instance QuotientGroup.completeSpace (G : Type u) [Group G] [us : UniformSpace G] [UniformGroup G]
     [FirstCountableTopology G] (N : Subgroup G) [N.normal] [hG : CompleteSpace G] :
     @CompleteSpace (G ⧸ N) (TopologicalGroup.toUniformSpace (G ⧸ N)) := by
-  rw [← @UniformGroup.toUniformSpace_eq _ us _ _] at hG ; infer_instance
+  rw [← @UniformGroup.toUniformSpace_eq _ us _ _] at hG; infer_instance
 #align quotient_group.complete_space QuotientGroup.completeSpace
 #align quotient_add_group.complete_space QuotientAddGroup.completeSpace
 -/
Diff
@@ -157,7 +157,7 @@ theorem uniformContinuous_pow_const (n : ℕ) : UniformContinuous fun x : α =>
 @[to_additive UniformContinuous.const_zsmul]
 theorem UniformContinuous.zpow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℤ, UniformContinuous fun x => f x ^ n
-  | (n : ℕ) => by simp_rw [zpow_ofNat]; exact hf.pow_const _
+  | (n : ℕ) => by simp_rw [zpow_coe_nat]; exact hf.pow_const _
   | -[n+1] => by simp_rw [zpow_negSucc]; exact (hf.pow_const _).inv
 #align uniform_continuous.zpow_const UniformContinuous.zpow_const
 #align uniform_continuous.const_zsmul UniformContinuous.const_zsmul
Diff
@@ -270,9 +270,9 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 #align uniform_add_group_inf uniformAddGroup_inf
 -/
 
-#print uniformGroup_comap /-
+#print UniformGroup.comap /-
 @[to_additive]
-theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
+theorem UniformGroup.comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
     [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
   {
     uniformContinuous_div := by
@@ -282,8 +282,8 @@ theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [Unifo
       change UniformContinuous ((fun p : γ × γ => p.1 / p.2) ∘ Prod.map f f)
       exact
         uniform_continuous_div.comp (uniform_continuous_comap.prod_map uniformContinuous_comap) }
-#align uniform_group_comap uniformGroup_comap
-#align uniform_add_group_comap uniformAddGroup_comap
+#align uniform_group_comap UniformGroup.comap
+#align uniform_add_group_comap UniformAddGroup.comap
 -/
 
 end LatticeOps
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2018 Patrick Massot. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Johannes Hölzl
 -/
-import Mathbin.Topology.UniformSpace.UniformConvergence
-import Mathbin.Topology.UniformSpace.UniformEmbedding
-import Mathbin.Topology.UniformSpace.CompleteSeparated
-import Mathbin.Topology.UniformSpace.Compact
-import Mathbin.Topology.Algebra.Group.Basic
-import Mathbin.Tactic.Abel
+import Topology.UniformSpace.UniformConvergence
+import Topology.UniformSpace.UniformEmbedding
+import Topology.UniformSpace.CompleteSeparated
+import Topology.UniformSpace.Compact
+import Topology.Algebra.Group.Basic
+import Tactic.Abel
 
 #align_import topology.algebra.uniform_group from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
 
@@ -203,7 +203,7 @@ theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (
 #align uniformity_translate_add uniformity_translate_add
 -/
 
-/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:132:4: warning: unsupported: rw with cfg: { occs := occurrences.pos[occurrences.pos] «expr[ ,]»([1]) } -/
+/- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:133:4: warning: unsupported: rw with cfg: { occs := occurrences.pos[occurrences.pos] «expr[ ,]»([1]) } -/
 #print uniformEmbedding_translate_mul /-
 @[to_additive]
 theorem uniformEmbedding_translate_mul (a : α) : UniformEmbedding fun x : α => x * a :=
@@ -933,7 +933,7 @@ variable (hφ : Continuous Φ)
 
 variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
 private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
   by
@@ -952,10 +952,10 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
 private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
     ∃ U ∈ comap e (𝓝 x₀),
       ∃ V ∈ comap f (𝓝 y₀),
Diff
@@ -325,7 +325,7 @@ theorem uniformity_eq_comap_nhds_one_swapped :
 theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @UniformGroup G u _)
     (hv : @UniformGroup G v _)
     (h : @nhds _ u.toTopologicalSpace 1 = @nhds _ v.toTopologicalSpace 1) : u = v :=
-  uniformSpace_eq <| by
+  UniformSpace.ext <| by
     rw [@uniformity_eq_comap_nhds_one _ u _ hu, @uniformity_eq_comap_nhds_one _ v _ hv, h]
 #align uniform_group.ext UniformGroup.ext
 #align uniform_add_group.ext UniformAddGroup.ext
Diff
@@ -175,7 +175,7 @@ theorem uniformContinuous_zpow_const (n : ℤ) : UniformContinuous fun x : α =>
 @[to_additive]
 instance (priority := 10) UniformGroup.to_topologicalGroup : TopologicalGroup α
     where
-  continuous_mul := uniformContinuous_mul.Continuous
+  continuous_hMul := uniformContinuous_mul.Continuous
   continuous_inv := uniformContinuous_inv.Continuous
 #align uniform_group.to_topological_group UniformGroup.to_topologicalGroup
 #align uniform_add_group.to_topological_add_group UniformAddGroup.to_topologicalAddGroup
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2018 Patrick Massot. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Johannes Hölzl
-
-! This file was ported from Lean 3 source module topology.algebra.uniform_group
-! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.UniformSpace.UniformConvergence
 import Mathbin.Topology.UniformSpace.UniformEmbedding
@@ -15,6 +10,8 @@ import Mathbin.Topology.UniformSpace.Compact
 import Mathbin.Topology.Algebra.Group.Basic
 import Mathbin.Tactic.Abel
 
+#align_import topology.algebra.uniform_group from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
+
 /-!
 # Uniform structure on topological groups
 
@@ -936,7 +933,7 @@ variable (hφ : Continuous Φ)
 
 variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
 private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
   by
@@ -955,10 +952,10 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
 private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
     ∃ U ∈ comap e (𝓝 x₀),
       ∃ V ∈ comap f (𝓝 y₀),
Diff
@@ -69,6 +69,7 @@ class UniformAddGroup (α : Type _) [UniformSpace α] [AddGroup α] : Prop where
 
 attribute [to_additive] UniformGroup
 
+#print UniformGroup.mk' /-
 @[to_additive]
 theorem UniformGroup.mk' {α} [UniformSpace α] [Group α]
     (h₁ : UniformContinuous fun p : α × α => p.1 * p.2) (h₂ : UniformContinuous fun p : α => p⁻¹) :
@@ -78,22 +79,28 @@ theorem UniformGroup.mk' {α} [UniformSpace α] [Group α]
       h₁.comp (uniform_continuous_fst.prod_mk (h₂.comp uniformContinuous_snd))⟩
 #align uniform_group.mk' UniformGroup.mk'
 #align uniform_add_group.mk' UniformAddGroup.mk'
+-/
 
 variable [UniformSpace α] [Group α] [UniformGroup α]
 
+#print uniformContinuous_div /-
 @[to_additive]
 theorem uniformContinuous_div : UniformContinuous fun p : α × α => p.1 / p.2 :=
   UniformGroup.uniformContinuous_div
 #align uniform_continuous_div uniformContinuous_div
 #align uniform_continuous_sub uniformContinuous_sub
+-/
 
+#print UniformContinuous.div /-
 @[to_additive]
 theorem UniformContinuous.div [UniformSpace β] {f : β → α} {g : β → α} (hf : UniformContinuous f)
     (hg : UniformContinuous g) : UniformContinuous fun x => f x / g x :=
   uniformContinuous_div.comp (hf.prod_mk hg)
 #align uniform_continuous.div UniformContinuous.div
 #align uniform_continuous.sub UniformContinuous.sub
+-/
 
+#print UniformContinuous.inv /-
 @[to_additive]
 theorem UniformContinuous.inv [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     UniformContinuous fun x => (f x)⁻¹ :=
@@ -102,13 +109,17 @@ theorem UniformContinuous.inv [UniformSpace β] {f : β → α} (hf : UniformCon
   simp_all
 #align uniform_continuous.inv UniformContinuous.inv
 #align uniform_continuous.neg UniformContinuous.neg
+-/
 
+#print uniformContinuous_inv /-
 @[to_additive]
 theorem uniformContinuous_inv : UniformContinuous fun x : α => x⁻¹ :=
   uniformContinuous_id.inv
 #align uniform_continuous_inv uniformContinuous_inv
 #align uniform_continuous_neg uniformContinuous_neg
+-/
 
+#print UniformContinuous.mul /-
 @[to_additive]
 theorem UniformContinuous.mul [UniformSpace β] {f : β → α} {g : β → α} (hf : UniformContinuous f)
     (hg : UniformContinuous g) : UniformContinuous fun x => f x * g x :=
@@ -117,12 +128,15 @@ theorem UniformContinuous.mul [UniformSpace β] {f : β → α} {g : β → α}
   simp_all
 #align uniform_continuous.mul UniformContinuous.mul
 #align uniform_continuous.add UniformContinuous.add
+-/
 
+#print uniformContinuous_mul /-
 @[to_additive]
 theorem uniformContinuous_mul : UniformContinuous fun p : α × α => p.1 * p.2 :=
   uniformContinuous_fst.mul uniformContinuous_snd
 #align uniform_continuous_mul uniformContinuous_mul
 #align uniform_continuous_add uniformContinuous_add
+-/
 
 #print UniformContinuous.pow_const /-
 @[to_additive UniformContinuous.const_nsmul]
@@ -177,6 +191,7 @@ instance [UniformSpace β] [Group β] [UniformGroup β] : UniformGroup (α × β
       ((uniformContinuous_snd.comp uniformContinuous_fst).div
         (uniformContinuous_snd.comp uniformContinuous_snd))⟩
 
+#print uniformity_translate_mul /-
 @[to_additive]
 theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (x.1 * a, x.2 * a)) = 𝓤 α :=
   le_antisymm (uniformContinuous_id.mul uniformContinuous_const)
@@ -189,8 +204,10 @@ theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (
         Filter.map_mono (uniformContinuous_id.mul uniformContinuous_const))
 #align uniformity_translate_mul uniformity_translate_mul
 #align uniformity_translate_add uniformity_translate_add
+-/
 
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:132:4: warning: unsupported: rw with cfg: { occs := occurrences.pos[occurrences.pos] «expr[ ,]»([1]) } -/
+#print uniformEmbedding_translate_mul /-
 @[to_additive]
 theorem uniformEmbedding_translate_mul (a : α) : UniformEmbedding fun x : α => x * a :=
   { comap_uniformity := by
@@ -200,6 +217,7 @@ theorem uniformEmbedding_translate_mul (a : α) : UniformEmbedding fun x : α =>
     inj := mul_left_injective a }
 #align uniform_embedding_translate_mul uniformEmbedding_translate_mul
 #align uniform_embedding_translate_add uniformEmbedding_translate_add
+-/
 
 namespace MulOpposite
 
@@ -225,6 +243,7 @@ section LatticeOps
 
 variable [Group β]
 
+#print uniformGroup_sInf /-
 @[to_additive]
 theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
     @UniformGroup β (sInf us) _ :=
@@ -234,13 +253,16 @@ theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @Unifo
         uniformContinuous_sInf_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu)) }
 #align uniform_group_Inf uniformGroup_sInf
 #align uniform_add_group_Inf uniformAddGroup_sInf
+-/
 
+#print uniformGroup_iInf /-
 @[to_additive]
 theorem uniformGroup_iInf {ι : Sort _} {us' : ι → UniformSpace β}
     (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ := by rw [← sInf_range];
   exact uniformGroup_sInf (set.forall_range_iff.mpr h')
 #align uniform_group_infi uniformGroup_iInf
 #align uniform_add_group_infi uniformAddGroup_iInf
+-/
 
 #print uniformGroup_inf /-
 @[to_additive]
@@ -251,6 +273,7 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 #align uniform_add_group_inf uniformAddGroup_inf
 -/
 
+#print uniformGroup_comap /-
 @[to_additive]
 theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
     [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
@@ -264,6 +287,7 @@ theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [Unifo
         uniform_continuous_div.comp (uniform_continuous_comap.prod_map uniformContinuous_comap) }
 #align uniform_group_comap uniformGroup_comap
 #align uniform_add_group_comap uniformAddGroup_comap
+-/
 
 end LatticeOps
 
@@ -271,6 +295,7 @@ section
 
 variable (α)
 
+#print uniformity_eq_comap_nhds_one /-
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one : 𝓤 α = comap (fun x : α × α => x.2 / x.1) (𝓝 (1 : α)) :=
   by
@@ -287,14 +312,18 @@ theorem uniformity_eq_comap_nhds_one : 𝓤 α = comap (fun x : α × α => x.2
     rintro ⟨a, b⟩; simpa [subset_def] using hts 1 (b / a) a
 #align uniformity_eq_comap_nhds_one uniformity_eq_comap_nhds_one
 #align uniformity_eq_comap_nhds_zero uniformity_eq_comap_nhds_zero
+-/
 
+#print uniformity_eq_comap_nhds_one_swapped /-
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one_swapped :
     𝓤 α = comap (fun x : α × α => x.1 / x.2) (𝓝 (1 : α)) := by
   rw [← comap_swap_uniformity, uniformity_eq_comap_nhds_one, comap_comap, (· ∘ ·)]; rfl
 #align uniformity_eq_comap_nhds_one_swapped uniformity_eq_comap_nhds_one_swapped
 #align uniformity_eq_comap_nhds_zero_swapped uniformity_eq_comap_nhds_zero_swapped
+-/
 
+#print UniformGroup.ext /-
 @[to_additive]
 theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @UniformGroup G u _)
     (hv : @UniformGroup G v _)
@@ -303,7 +332,9 @@ theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @Un
     rw [@uniformity_eq_comap_nhds_one _ u _ hu, @uniformity_eq_comap_nhds_one _ v _ hv, h]
 #align uniform_group.ext UniformGroup.ext
 #align uniform_add_group.ext UniformAddGroup.ext
+-/
 
+#print UniformGroup.ext_iff /-
 @[to_additive]
 theorem UniformGroup.ext_iff {G : Type _} [Group G] {u v : UniformSpace G}
     (hu : @UniformGroup G u _) (hv : @UniformGroup G v _) :
@@ -311,18 +342,22 @@ theorem UniformGroup.ext_iff {G : Type _} [Group G] {u v : UniformSpace G}
   ⟨fun h => h ▸ rfl, hu.ext hv⟩
 #align uniform_group.ext_iff UniformGroup.ext_iff
 #align uniform_add_group.ext_iff UniformAddGroup.ext_iff
+-/
 
 variable {α}
 
+#print UniformGroup.uniformity_countably_generated /-
 @[to_additive]
 theorem UniformGroup.uniformity_countably_generated [(𝓝 (1 : α)).IsCountablyGenerated] :
     (𝓤 α).IsCountablyGenerated := by rw [uniformity_eq_comap_nhds_one];
   exact Filter.comap.isCountablyGenerated _ _
 #align uniform_group.uniformity_countably_generated UniformGroup.uniformity_countably_generated
 #align uniform_add_group.uniformity_countably_generated UniformAddGroup.uniformity_countably_generated
+-/
 
 open MulOpposite
 
+#print uniformity_eq_comap_inv_mul_nhds_one /-
 @[to_additive]
 theorem uniformity_eq_comap_inv_mul_nhds_one :
     𝓤 α = comap (fun x : α × α => x.1⁻¹ * x.2) (𝓝 (1 : α)) :=
@@ -332,44 +367,56 @@ theorem uniformity_eq_comap_inv_mul_nhds_one :
   simp [(· ∘ ·)]
 #align uniformity_eq_comap_inv_mul_nhds_one uniformity_eq_comap_inv_mul_nhds_one
 #align uniformity_eq_comap_neg_add_nhds_zero uniformity_eq_comap_neg_add_nhds_zero
+-/
 
+#print uniformity_eq_comap_inv_mul_nhds_one_swapped /-
 @[to_additive]
 theorem uniformity_eq_comap_inv_mul_nhds_one_swapped :
     𝓤 α = comap (fun x : α × α => x.2⁻¹ * x.1) (𝓝 (1 : α)) := by
   rw [← comap_swap_uniformity, uniformity_eq_comap_inv_mul_nhds_one, comap_comap, (· ∘ ·)]; rfl
 #align uniformity_eq_comap_inv_mul_nhds_one_swapped uniformity_eq_comap_inv_mul_nhds_one_swapped
 #align uniformity_eq_comap_neg_add_nhds_zero_swapped uniformity_eq_comap_neg_add_nhds_zero_swapped
+-/
 
 end
 
+#print Filter.HasBasis.uniformity_of_nhds_one /-
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.2 / x.1 ∈ U i} := by
   rw [uniformity_eq_comap_nhds_one]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_one
 #align filter.has_basis.uniformity_of_nhds_zero Filter.HasBasis.uniformity_of_nhds_zero
+-/
 
+#print Filter.HasBasis.uniformity_of_nhds_one_inv_mul /-
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.1⁻¹ * x.2 ∈ U i} := by
   rw [uniformity_eq_comap_inv_mul_nhds_one]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mul
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add Filter.HasBasis.uniformity_of_nhds_zero_neg_add
+-/
 
+#print Filter.HasBasis.uniformity_of_nhds_one_swapped /-
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.1 / x.2 ∈ U i} := by
   rw [uniformity_eq_comap_nhds_one_swapped]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_swapped Filter.HasBasis.uniformity_of_nhds_zero_swapped
+-/
 
+#print Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped /-
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.2⁻¹ * x.1 ∈ U i} := by
   rw [uniformity_eq_comap_inv_mul_nhds_one_swapped]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add_swapped Filter.HasBasis.uniformity_of_nhds_zero_neg_add_swapped
+-/
 
+#print group_separationRel /-
 @[to_additive]
 theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y ∈ closure ({1} : Set α) :=
   have : Embedding fun a => a * (y / x) := (uniformEmbedding_translate_mul (y / x)).Embedding
@@ -379,7 +426,9 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
     simp [mem_closure_iff_nhds, inter_singleton_nonempty, sub_eq_add_neg, add_assoc]
 #align group_separation_rel group_separationRel
 #align add_group_separation_rel addGroup_separationRel
+-/
 
+#print uniformContinuous_of_tendsto_one /-
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group β] [UniformGroup β]
     [MonoidHomClass hom α β] {f : hom} (h : Tendsto f (𝓝 1) (𝓝 1)) : UniformContinuous f :=
@@ -393,7 +442,9 @@ theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group
   exact tendsto.comp h tendsto_comap
 #align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_one
 #align uniform_continuous_of_tendsto_zero uniformContinuous_of_tendsto_zero
+-/
 
+#print uniformContinuous_of_continuousAt_one /-
 /-- A group homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) between
 two uniform groups is uniformly continuous provided that it is continuous at one. See also
 `continuous_of_continuous_at_one`. -/
@@ -405,14 +456,18 @@ theorem uniformContinuous_of_continuousAt_one {hom : Type _} [UniformSpace β] [
   uniformContinuous_of_tendsto_one (by simpa using hf.tendsto)
 #align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_one
 #align uniform_continuous_of_continuous_at_zero uniformContinuous_of_continuousAt_zero
+-/
 
+#print MonoidHom.uniformContinuous_of_continuousAt_one /-
 @[to_additive]
 theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group β] [UniformGroup β]
     (f : α →* β) (hf : ContinuousAt f 1) : UniformContinuous f :=
   uniformContinuous_of_continuousAt_one f hf
 #align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_one
 #align add_monoid_hom.uniform_continuous_of_continuous_at_zero AddMonoidHom.uniformContinuous_of_continuousAt_zero
+-/
 
+#print UniformGroup.uniformContinuous_iff_open_ker /-
 /-- A homomorphism from a uniform group to a discrete uniform group is continuous if and only if
 its kernel is open. -/
 @[to_additive
@@ -428,6 +483,7 @@ theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type _} [UniformSpace
     exact hf.mem_nhds (map_one f)
 #align uniform_group.uniform_continuous_iff_open_ker UniformGroup.uniformContinuous_iff_open_ker
 #align uniform_add_group.uniform_continuous_iff_open_ker UniformAddGroup.uniformContinuous_iff_open_ker
+-/
 
 #print uniformContinuous_monoidHom_of_continuous /-
 @[to_additive]
@@ -440,34 +496,43 @@ theorem uniformContinuous_monoidHom_of_continuous {hom : Type _} [UniformSpace 
 #align uniform_continuous_add_monoid_hom_of_continuous uniformContinuous_addMonoidHom_of_continuous
 -/
 
+#print CauchySeq.mul /-
 @[to_additive]
 theorem CauchySeq.mul {ι : Type _} [SemilatticeSup ι] {u v : ι → α} (hu : CauchySeq u)
     (hv : CauchySeq v) : CauchySeq (u * v) :=
   uniformContinuous_mul.comp_cauchySeq (hu.Prod hv)
 #align cauchy_seq.mul CauchySeq.mul
 #align cauchy_seq.add CauchySeq.add
+-/
 
+#print CauchySeq.mul_const /-
 @[to_additive]
 theorem CauchySeq.mul_const {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => u n * x :=
   (uniformContinuous_id.mul uniformContinuous_const).comp_cauchySeq hu
 #align cauchy_seq.mul_const CauchySeq.mul_const
 #align cauchy_seq.add_const CauchySeq.add_const
+-/
 
+#print CauchySeq.const_mul /-
 @[to_additive]
 theorem CauchySeq.const_mul {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => x * u n :=
   (uniformContinuous_const.mul uniformContinuous_id).comp_cauchySeq hu
 #align cauchy_seq.const_mul CauchySeq.const_mul
 #align cauchy_seq.const_add CauchySeq.const_add
+-/
 
+#print CauchySeq.inv /-
 @[to_additive]
 theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : CauchySeq u) :
     CauchySeq u⁻¹ :=
   uniformContinuous_inv.comp_cauchySeq h
 #align cauchy_seq.inv CauchySeq.inv
 #align cauchy_seq.neg CauchySeq.neg
+-/
 
+#print totallyBounded_iff_subset_finite_iUnion_nhds_one /-
 @[to_additive]
 theorem totallyBounded_iff_subset_finite_iUnion_nhds_one {s : Set α} :
     TotallyBounded s ↔ ∀ U ∈ 𝓝 (1 : α), ∃ t : Set α, t.Finite ∧ s ⊆ ⋃ y ∈ t, y • U :=
@@ -475,11 +540,13 @@ theorem totallyBounded_iff_subset_finite_iUnion_nhds_one {s : Set α} :
     simp [← preimage_smul_inv, preimage]
 #align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_iUnion_nhds_one
 #align totally_bounded_iff_subset_finite_Union_nhds_zero totallyBounded_iff_subset_finite_iUnion_nhds_zero
+-/
 
 section UniformConvergence
 
 variable {ι : Type _} {l : Filter ι} {l' : Filter β} {f f' : ι → β → α} {g g' : β → α} {s : Set β}
 
+#print TendstoUniformlyOnFilter.mul /-
 @[to_additive]
 theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
     (hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f * f') (g * g') l l' :=
@@ -487,7 +554,9 @@ theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
   ((uniformContinuous_mul.comp_tendstoUniformlyOnFilter (hf.Prod hf')) u hu).diag_of_prod_left
 #align tendsto_uniformly_on_filter.mul TendstoUniformlyOnFilter.mul
 #align tendsto_uniformly_on_filter.add TendstoUniformlyOnFilter.add
+-/
 
+#print TendstoUniformlyOnFilter.div /-
 @[to_additive]
 theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
     (hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f / f') (g / g') l l' :=
@@ -495,48 +564,61 @@ theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
   ((uniformContinuous_div.comp_tendstoUniformlyOnFilter (hf.Prod hf')) u hu).diag_of_prod_left
 #align tendsto_uniformly_on_filter.div TendstoUniformlyOnFilter.div
 #align tendsto_uniformly_on_filter.sub TendstoUniformlyOnFilter.sub
+-/
 
+#print TendstoUniformlyOn.mul /-
 @[to_additive]
 theorem TendstoUniformlyOn.mul (hf : TendstoUniformlyOn f g l s)
     (hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f * f') (g * g') l s := fun u hu =>
   ((uniformContinuous_mul.comp_tendstoUniformlyOn (hf.Prod hf')) u hu).diag_of_prod
 #align tendsto_uniformly_on.mul TendstoUniformlyOn.mul
 #align tendsto_uniformly_on.add TendstoUniformlyOn.add
+-/
 
+#print TendstoUniformlyOn.div /-
 @[to_additive]
 theorem TendstoUniformlyOn.div (hf : TendstoUniformlyOn f g l s)
     (hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f / f') (g / g') l s := fun u hu =>
   ((uniformContinuous_div.comp_tendstoUniformlyOn (hf.Prod hf')) u hu).diag_of_prod
 #align tendsto_uniformly_on.div TendstoUniformlyOn.div
 #align tendsto_uniformly_on.sub TendstoUniformlyOn.sub
+-/
 
+#print TendstoUniformly.mul /-
 @[to_additive]
 theorem TendstoUniformly.mul (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
     TendstoUniformly (f * f') (g * g') l := fun u hu =>
   ((uniformContinuous_mul.comp_tendstoUniformly (hf.Prod hf')) u hu).diag_of_prod
 #align tendsto_uniformly.mul TendstoUniformly.mul
 #align tendsto_uniformly.add TendstoUniformly.add
+-/
 
+#print TendstoUniformly.div /-
 @[to_additive]
 theorem TendstoUniformly.div (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
     TendstoUniformly (f / f') (g / g') l := fun u hu =>
   ((uniformContinuous_div.comp_tendstoUniformly (hf.Prod hf')) u hu).diag_of_prod
 #align tendsto_uniformly.div TendstoUniformly.div
 #align tendsto_uniformly.sub TendstoUniformly.sub
+-/
 
+#print UniformCauchySeqOn.mul /-
 @[to_additive]
 theorem UniformCauchySeqOn.mul (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
     UniformCauchySeqOn (f * f') l s := fun u hu => by
   simpa using (uniform_continuous_mul.comp_uniform_cauchy_seq_on (hf.prod' hf')) u hu
 #align uniform_cauchy_seq_on.mul UniformCauchySeqOn.mul
 #align uniform_cauchy_seq_on.add UniformCauchySeqOn.add
+-/
 
+#print UniformCauchySeqOn.div /-
 @[to_additive]
 theorem UniformCauchySeqOn.div (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
     UniformCauchySeqOn (f / f') l s := fun u hu => by
   simpa using (uniform_continuous_div.comp_uniform_cauchy_seq_on (hf.prod' hf')) u hu
 #align uniform_cauchy_seq_on.div UniformCauchySeqOn.div
 #align uniform_cauchy_seq_on.sub UniformCauchySeqOn.sub
+-/
 
 end UniformConvergence
 
@@ -606,11 +688,13 @@ def TopologicalGroup.toUniformSpace : UniformSpace G
 
 attribute [local instance] TopologicalGroup.toUniformSpace
 
+#print uniformity_eq_comap_nhds_one' /-
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one' : 𝓤 G = comap (fun p : G × G => p.2 / p.1) (𝓝 (1 : G)) :=
   rfl
 #align uniformity_eq_comap_nhds_one' uniformity_eq_comap_nhds_one'
 #align uniformity_eq_comap_nhds_zero' uniformity_eq_comap_nhds_zero'
+-/
 
 #print topologicalGroup_is_uniform_of_compactSpace /-
 @[to_additive]
@@ -624,6 +708,7 @@ theorem topologicalGroup_is_uniform_of_compactSpace [CompactSpace G] : UniformGr
 
 variable {G}
 
+#print Subgroup.isClosed_of_discrete /-
 @[to_additive]
 instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTopology H] :
     IsClosed (H : Set G) :=
@@ -640,7 +725,9 @@ instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTop
   exact (eq_of_div_eq_one this).symm
 #align subgroup.is_closed_of_discrete Subgroup.isClosed_of_discrete
 #align add_subgroup.is_closed_of_discrete AddSubgroup.isClosed_of_discrete
+-/
 
+#print TopologicalGroup.tendstoUniformly_iff /-
 @[to_additive]
 theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
     (p : Filter ι) :
@@ -650,7 +737,9 @@ theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α 
     mem_of_superset (h u hu) fun i hi a => hv (hi a)⟩
 #align topological_group.tendsto_uniformly_iff TopologicalGroup.tendstoUniformly_iff
 #align topological_add_group.tendsto_uniformly_iff TopologicalAddGroup.tendstoUniformly_iff
+-/
 
+#print TopologicalGroup.tendstoUniformlyOn_iff /-
 @[to_additive]
 theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
     (p : Filter ι) (s : Set α) :
@@ -660,7 +749,9 @@ theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α
     mem_of_superset (h u hu) fun i hi a ha => hv (hi a ha)⟩
 #align topological_group.tendsto_uniformly_on_iff TopologicalGroup.tendstoUniformlyOn_iff
 #align topological_add_group.tendsto_uniformly_on_iff TopologicalAddGroup.tendstoUniformlyOn_iff
+-/
 
+#print TopologicalGroup.tendstoLocallyUniformly_iff /-
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) :
@@ -671,7 +762,9 @@ theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [Topologic
       (h u hu x)⟩
 #align topological_group.tendsto_locally_uniformly_iff TopologicalGroup.tendstoLocallyUniformly_iff
 #align topological_add_group.tendsto_locally_uniformly_iff TopologicalAddGroup.tendstoLocallyUniformly_iff
+-/
 
+#print TopologicalGroup.tendstoLocallyUniformlyOn_iff /-
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff {ι α : Type _} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) (s : Set α) :
@@ -682,6 +775,7 @@ theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff {ι α : Type _} [Topolog
       h u hu x⟩
 #align topological_group.tendsto_locally_uniformly_on_iff TopologicalGroup.tendstoLocallyUniformlyOn_iff
 #align topological_add_group.tendsto_locally_uniformly_on_iff TopologicalAddGroup.tendstoLocallyUniformlyOn_iff
+-/
 
 end TopologicalGroup
 
@@ -719,6 +813,7 @@ theorem comm_topologicalGroup_is_uniform : UniformGroup G :=
 
 open Set
 
+#print TopologicalGroup.t2Space_iff_one_closed /-
 @[to_additive]
 theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) :=
   by
@@ -739,7 +834,9 @@ theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} :
     rfl
 #align topological_group.t2_space_iff_one_closed TopologicalGroup.t2Space_iff_one_closed
 #align topological_add_group.t2_space_iff_zero_closed TopologicalAddGroup.t2Space_iff_zero_closed
+-/
 
+#print TopologicalGroup.t2Space_of_one_sep /-
 @[to_additive]
 theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U ∈ nhds (1 : G), x ∉ U) :
     T2Space G :=
@@ -757,6 +854,7 @@ theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U 
   exact fun h => xU (UW h)
 #align topological_group.t2_space_of_one_sep TopologicalGroup.t2Space_of_one_sep
 #align topological_add_group.t2_space_of_zero_sep TopologicalAddGroup.t2Space_of_zero_sep
+-/
 
 end
 
@@ -786,8 +884,7 @@ variable [TopologicalSpace β] [Group β]
 
 variable [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
 
-include de
-
+#print tendsto_div_comap_self /-
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
     Tendsto (fun t : β × β => t.2 / t.1) ((comap fun p : β × β => (e p.1, e p.2)) <| 𝓝 (x₀, x₀))
@@ -805,6 +902,7 @@ theorem tendsto_div_comap_self (x₀ : α) :
   simpa using de.tendsto_comap_nhds_nhds limUnder comm
 #align tendsto_div_comap_self tendsto_div_comap_self
 #align tendsto_sub_comap_self tendsto_sub_comap_self
+-/
 
 end
 
@@ -832,17 +930,12 @@ variable {f : δ →+ γ} (df : DenseInducing f)
 
 variable {φ : β →+ δ →+ G}
 
--- mathport name: exprΦ
 local notation "Φ" => fun p : β × δ => φ p.1 p.2
 
 variable (hφ : Continuous Φ)
 
-include de df hφ
-
 variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
-include W'_nhd
-
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
 private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
@@ -925,13 +1018,12 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
   have h₄ := H x₁ x₁_in x xU₁ y yV₁ y' y'V₁
   exact W4 h₁ h₂ h₃ h₄
 
-omit W'_nhd
-
 open DenseInducing
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print DenseInducing.extend_Z_bilin /-
 /-- Bourbaki GT III.6.5 Theorem I:
 ℤ-bilinear continuous maps from dense images into a complete Hausdorff group extend by continuity.
 Note: Bourbaki assumes that α and β are also complete Hausdorff, but this is not necessary. -/
@@ -975,6 +1067,7 @@ theorem extend_Z_bilin : Continuous (extend (de.Prod df) Φ) :=
       rcases p with ⟨⟨x, y⟩, ⟨x', y'⟩⟩
       apply h <;> tauto
 #align dense_inducing.extend_Z_bilin DenseInducing.extend_Z_bilin
+-/
 
 end DenseInducing
 
Diff
@@ -186,8 +186,7 @@ theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (
             (x.1 * a, x.2 * a) :=
         by simp [Filter.map_map, (· ∘ ·)] <;> exact filter.map_id.symm
       _ ≤ (𝓤 α).map fun x : α × α => (x.1 * a, x.2 * a) :=
-        Filter.map_mono (uniformContinuous_id.mul uniformContinuous_const)
-      )
+        Filter.map_mono (uniformContinuous_id.mul uniformContinuous_const))
 #align uniformity_translate_mul uniformity_translate_mul
 #align uniformity_translate_add uniformity_translate_add
 
Diff
@@ -844,7 +844,7 @@ variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
 include W'_nhd
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
 private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
   by
@@ -863,10 +863,10 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
 private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
     ∃ U ∈ comap e (𝓝 x₀),
       ∃ V ∈ comap f (𝓝 y₀),
Diff
@@ -345,29 +345,29 @@ end
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2 / x.1 ∈ U i } := by
+    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.2 / x.1 ∈ U i} := by
   rw [uniformity_eq_comap_nhds_one]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_one
 #align filter.has_basis.uniformity_of_nhds_zero Filter.HasBasis.uniformity_of_nhds_zero
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1⁻¹ * x.2 ∈ U i } :=
-  by rw [uniformity_eq_comap_inv_mul_nhds_one]; exact h.comap _
+    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.1⁻¹ * x.2 ∈ U i} := by
+  rw [uniformity_eq_comap_inv_mul_nhds_one]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mul
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add Filter.HasBasis.uniformity_of_nhds_zero_neg_add
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1 / x.2 ∈ U i } := by
+    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.1 / x.2 ∈ U i} := by
   rw [uniformity_eq_comap_nhds_one_swapped]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_swapped Filter.HasBasis.uniformity_of_nhds_zero_swapped
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2⁻¹ * x.1 ∈ U i } :=
-  by rw [uniformity_eq_comap_inv_mul_nhds_one_swapped]; exact h.comap _
+    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => {x : α × α | x.2⁻¹ * x.1 ∈ U i} := by
+  rw [uniformity_eq_comap_inv_mul_nhds_one_swapped]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add_swapped Filter.HasBasis.uniformity_of_nhds_zero_neg_add_swapped
 
@@ -591,7 +591,7 @@ def TopologicalGroup.toUniformSpace : UniformSpace G
     · exact monotone_id.comp_rel monotone_id
   isOpen_uniformity := by
     intro S
-    let S' x := { p : G × G | p.1 = x → p.2 ∈ S }
+    let S' x := {p : G × G | p.1 = x → p.2 ∈ S}
     show IsOpen S ↔ ∀ x : G, x ∈ S → S' x ∈ comap (fun p : G × G => p.2 / p.1) (𝓝 (1 : G))
     rw [isOpen_iff_mem_nhds]
     refine' forall₂_congr fun a ha => _
@@ -1018,8 +1018,8 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
       ∃ M : ℕ,
         j < M ∧ ∀ a b : ℕ, M ≤ a → M ≤ b → ∀ g : G, x b = g → ∃ g' : G, g / g' ∈ u i ∧ x a = g' :=
     by
-    have h𝓤GN : (𝓤 (G ⧸ N)).HasBasis (fun _ => True) fun i => { x | x.snd / x.fst ∈ coe '' u i } :=
-      by simpa [uniformity_eq_comap_nhds_one'] using hv.comap _
+    have h𝓤GN : (𝓤 (G ⧸ N)).HasBasis (fun _ => True) fun i => {x | x.snd / x.fst ∈ coe '' u i} := by
+      simpa [uniformity_eq_comap_nhds_one'] using hv.comap _
     simp only [h𝓤GN.cauchy_seq_iff, ge_iff_le, mem_set_of_eq, forall_true_left, mem_image] at hx 
     intro i j
     rcases hx i with ⟨M, hM⟩
@@ -1057,7 +1057,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     is to show by decreasing induction that `x' m / x' n ∈ u m` if `m ≤ n`. -/
   have x'_cauchy : CauchySeq fun n => (x' n).fst :=
     by
-    have h𝓤G : (𝓤 G).HasBasis (fun _ => True) fun i => { x | x.snd / x.fst ∈ u i } := by
+    have h𝓤G : (𝓤 G).HasBasis (fun _ => True) fun i => {x | x.snd / x.fst ∈ u i} := by
       simpa [uniformity_eq_comap_nhds_one'] using hu.to_has_basis.comap _
     simp only [h𝓤G.cauchy_seq_iff', ge_iff_le, mem_set_of_eq, forall_true_left]
     exact fun m =>
@@ -1073,7 +1073,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     ⟨↑x₀,
       tendsto_nhds_of_cauchySeq_of_subseq hx
         (strictMono_nat_of_lt_succ fun n => (hφ (n + 1)).1).tendsto_atTop _⟩
-  convert((continuous_coinduced_rng : Continuous (coe : G → G ⧸ N)).Tendsto x₀).comp hx₀
+  convert ((continuous_coinduced_rng : Continuous (coe : G → G ⧸ N)).Tendsto x₀).comp hx₀
   exact funext fun n => (x' n).snd
 #align quotient_group.complete_space' QuotientGroup.completeSpace'
 #align quotient_add_group.complete_space' QuotientAddGroup.completeSpace'
Diff
@@ -435,7 +435,7 @@ theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type _} [UniformSpace
 theorem uniformContinuous_monoidHom_of_continuous {hom : Type _} [UniformSpace β] [Group β]
     [UniformGroup β] [MonoidHomClass hom α β] {f : hom} (h : Continuous f) : UniformContinuous f :=
   uniformContinuous_of_tendsto_one <|
-    suffices Tendsto f (𝓝 1) (𝓝 (f 1)) by rwa [map_one] at this
+    suffices Tendsto f (𝓝 1) (𝓝 (f 1)) by rwa [map_one] at this 
     h.Tendsto 1
 #align uniform_continuous_monoid_hom_of_continuous uniformContinuous_monoidHom_of_continuous
 #align uniform_continuous_add_monoid_hom_of_continuous uniformContinuous_addMonoidHom_of_continuous
@@ -629,7 +629,7 @@ variable {G}
 instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTopology H] :
     IsClosed (H : Set G) :=
   by
-  obtain ⟨V, V_in, VH⟩ : ∃ (V : Set G)(hV : V ∈ 𝓝 (1 : G)), V ∩ (H : Set G) = {1}
+  obtain ⟨V, V_in, VH⟩ : ∃ (V : Set G) (hV : V ∈ 𝓝 (1 : G)), V ∩ (H : Set G) = {1}
   exact nhds_inter_eq_singleton_of_mem_discrete H.one_mem
   haveI : SeparatedSpace G := separated_iff_t2.mpr ‹_›
   have : (fun p : G × G => p.2 / p.1) ⁻¹' V ∈ 𝓤 G := preimage_mem_comap V_in
@@ -729,9 +729,9 @@ theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} :
   · apply subset.antisymm
     · intro x x_in
       have := group_separationRel x 1
-      rw [div_one] at this
-      rw [← this, h] at x_in
-      change x = 1 at x_in
+      rw [div_one] at this 
+      rw [← this, h] at x_in 
+      change x = 1 at x_in 
       simp [x_in]
     · exact subset_closure
   · ext p
@@ -749,7 +749,7 @@ theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U 
   intro x x_not
   have : x ≠ 1 := mem_compl_singleton_iff.mp x_not
   rcases H x this with ⟨U, U_in, xU⟩
-  rw [← nhds_one_symm G] at U_in
+  rw [← nhds_one_symm G] at U_in 
   rcases U_in with ⟨W, W_in, UW⟩
   rw [← nhds_translation_mul_inv]
   use W, W_in
@@ -859,7 +859,7 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     exact (this : _)
   have lim2 : tendsto Φ (𝓝 (0, y₁)) (𝓝 0) := by simpa using hφ.tendsto (0, y₁)
   have lim := lim2.comp lim1
-  rw [tendsto_prod_self_iff] at lim
+  rw [tendsto_prod_self_iff] at lim 
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
 
@@ -888,8 +888,8 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
         (comap ee (𝓝 (x₀, x₀)) ×ᶠ comap ff (𝓝 (y₀, y₀))) (𝓝 0 ×ᶠ 𝓝 0) :=
       by
       have := Filter.prod_mono (tendsto_sub_comap_self de x₀) (tendsto_sub_comap_self df y₀)
-      rwa [prod_map_map_eq] at this
-    rw [← nhds_prod_eq] at lim_sub_sub
+      rwa [prod_map_map_eq] at this 
+    rw [← nhds_prod_eq] at lim_sub_sub 
     exact tendsto.comp lim_φ lim_sub_sub
   rcases exists_nhds_zero_quarter W'_nhd with ⟨W, W_nhd, W4⟩
   have :
@@ -899,9 +899,9 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
           ∀ (y) (_ : y ∈ V₁) (y') (_ : y' ∈ V₁), Φ (x' - x, y' - y) ∈ W :=
     by
     have := tendsto_prod_iff.1 lim_φ_sub_sub W W_nhd
-    repeat' rw [nhds_prod_eq, ← prod_comap_comap_eq] at this
+    repeat' rw [nhds_prod_eq, ← prod_comap_comap_eq] at this 
     rcases this with ⟨U, U_in, V, V_in, H⟩
-    rw [mem_prod_same_iff] at U_in V_in
+    rw [mem_prod_same_iff] at U_in V_in 
     rcases U_in with ⟨U₁, U₁_in, HU₁⟩
     rcases V_in with ⟨V₁, V₁_in, HV₁⟩
     exists U₁, U₁_in, V₁, V₁_in
@@ -958,21 +958,21 @@ theorem extend_Z_bilin : Continuous (extend (de.Prod df) Φ) :=
     intro W' W'_nhd
     have key := extend_Z_bilin_key de df hφ W'_nhd x₀ y₀
     rcases key with ⟨U, U_nhd, V, V_nhd, h⟩
-    rw [mem_comap] at U_nhd
+    rw [mem_comap] at U_nhd 
     rcases U_nhd with ⟨U', U'_nhd, U'_sub⟩
-    rw [mem_comap] at V_nhd
+    rw [mem_comap] at V_nhd 
     rcases V_nhd with ⟨V', V'_nhd, V'_sub⟩
     rw [mem_map, mem_comap, nhds_prod_eq]
     exists (U' ×ˢ V') ×ˢ U' ×ˢ V'
     rw [mem_prod_same_iff]
     simp only [exists_prop]
     constructor
-    · change U' ∈ 𝓝 x₀ at U'_nhd
-      change V' ∈ 𝓝 y₀ at V'_nhd
+    · change U' ∈ 𝓝 x₀ at U'_nhd 
+      change V' ∈ 𝓝 y₀ at V'_nhd 
       have := prod_mem_prod U'_nhd V'_nhd
       tauto
     · intro p h'
-      simp only [Set.mem_preimage, Set.prod_mk_mem_set_prod_eq] at h'
+      simp only [Set.mem_preimage, Set.prod_mk_mem_set_prod_eq] at h' 
       rcases p with ⟨⟨x, y⟩, ⟨x', y'⟩⟩
       apply h <;> tauto
 #align dense_inducing.extend_Z_bilin DenseInducing.extend_Z_bilin
@@ -1009,7 +1009,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
   haveI : (𝓤 (G ⧸ N)).IsCountablyGenerated := comap.is_countably_generated _ _
   obtain ⟨u, hu, u_mul⟩ := TopologicalGroup.exists_antitone_basis_nhds_one G
   obtain ⟨hv, v_anti⟩ := @has_antitone_basis.map _ _ _ _ _ _ (coe : G → G ⧸ N) hu
-  rw [← QuotientGroup.nhds_eq N 1, QuotientGroup.mk_one] at hv
+  rw [← QuotientGroup.nhds_eq N 1, QuotientGroup.mk_one] at hv 
   refine' UniformSpace.complete_of_cauchySeq_tendsto fun x hx => _
   /- Given `n : ℕ`, for sufficiently large `a b : ℕ`, given any lift of `x b`, we can find a lift
     of `x a` such that the quotient of the lifts lies in `u n`. -/
@@ -1020,7 +1020,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     by
     have h𝓤GN : (𝓤 (G ⧸ N)).HasBasis (fun _ => True) fun i => { x | x.snd / x.fst ∈ coe '' u i } :=
       by simpa [uniformity_eq_comap_nhds_one'] using hv.comap _
-    simp only [h𝓤GN.cauchy_seq_iff, ge_iff_le, mem_set_of_eq, forall_true_left, mem_image] at hx
+    simp only [h𝓤GN.cauchy_seq_iff, ge_iff_le, mem_set_of_eq, forall_true_left, mem_image] at hx 
     intro i j
     rcases hx i with ⟨M, hM⟩
     refine' ⟨max j M + 1, (le_max_left _ _).trans_lt (lt_add_one _), fun a b ha hb g hg => _⟩
@@ -1094,7 +1094,7 @@ quotient obtained via other means.  -/
 instance QuotientGroup.completeSpace (G : Type u) [Group G] [us : UniformSpace G] [UniformGroup G]
     [FirstCountableTopology G] (N : Subgroup G) [N.normal] [hG : CompleteSpace G] :
     @CompleteSpace (G ⧸ N) (TopologicalGroup.toUniformSpace (G ⧸ N)) := by
-  rw [← @UniformGroup.toUniformSpace_eq _ us _ _] at hG; infer_instance
+  rw [← @UniformGroup.toUniformSpace_eq _ us _ _] at hG ; infer_instance
 #align quotient_group.complete_space QuotientGroup.completeSpace
 #align quotient_add_group.complete_space QuotientAddGroup.completeSpace
 -/
Diff
@@ -844,11 +844,8 @@ variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
 include W'_nhd
 
-/- warning: dense_inducing.extend_Z_bilin_aux clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin_aux [anonymous]ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
-#print [anonymous] /-
-private theorem [anonymous] (x₀ : α) (y₁ : δ) :
+private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
   by
   let Nx := 𝓝 x₀
@@ -865,16 +862,12 @@ private theorem [anonymous] (x₀ : α) (y₁ : δ) :
   rw [tendsto_prod_self_iff] at lim
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
--/
 
-/- warning: dense_inducing.extend_Z_bilin_key clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin_key [anonymous]ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
-#print [anonymous] /-
-private theorem [anonymous] (x₀ : α) (y₀ : γ) :
+private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
     ∃ U ∈ comap e (𝓝 x₀),
       ∃ V ∈ comap f (𝓝 y₀),
         ∀ (x) (_ : x ∈ U) (x') (_ : x' ∈ U),
@@ -932,7 +925,6 @@ private theorem [anonymous] (x₀ : α) (y₀ : γ) :
   have h₃ := HV y yV₂ y' y'V₂
   have h₄ := H x₁ x₁_in x xU₁ y yV₁ y' y'V₁
   exact W4 h₁ h₂ h₃ h₄
--/
 
 omit W'_nhd
 
Diff
@@ -44,7 +44,7 @@ group naturally induces a uniform structure.
 
 noncomputable section
 
-open Classical uniformity Topology Filter Pointwise
+open scoped Classical uniformity Topology Filter Pointwise
 
 section UniformGroup
 
Diff
@@ -69,12 +69,6 @@ class UniformAddGroup (α : Type _) [UniformSpace α] [AddGroup α] : Prop where
 
 attribute [to_additive] UniformGroup
 
-/- warning: uniform_group.mk' -> UniformGroup.mk' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α], (UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.uniformSpace.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))) -> (UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (p : α) => Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) p)) -> (UniformGroup.{u1} α _inst_1 _inst_2)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α], (UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (instUniformSpaceProd.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))) -> (UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (p : α) => Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) p)) -> (UniformGroup.{u1} α _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align uniform_group.mk' UniformGroup.mk'ₓ'. -/
 @[to_additive]
 theorem UniformGroup.mk' {α} [UniformSpace α] [Group α]
     (h₁ : UniformContinuous fun p : α × α => p.1 * p.2) (h₂ : UniformContinuous fun p : α => p⁻¹) :
@@ -87,24 +81,12 @@ theorem UniformGroup.mk' {α} [UniformSpace α] [Group α]
 
 variable [UniformSpace α] [Group α] [UniformGroup α]
 
-/- warning: uniform_continuous_div -> uniformContinuous_div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.uniformSpace.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (instUniformSpaceProd.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous_div uniformContinuous_divₓ'. -/
 @[to_additive]
 theorem uniformContinuous_div : UniformContinuous fun p : α × α => p.1 / p.2 :=
   UniformGroup.uniformContinuous_div
 #align uniform_continuous_div uniformContinuous_div
 #align uniform_continuous_sub uniformContinuous_sub
 
-/- warning: uniform_continuous.div -> UniformContinuous.div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (f x) (g x)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (f x) (g x)))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous.div UniformContinuous.divₓ'. -/
 @[to_additive]
 theorem UniformContinuous.div [UniformSpace β] {f : β → α} {g : β → α} (hf : UniformContinuous f)
     (hg : UniformContinuous g) : UniformContinuous fun x => f x / g x :=
@@ -112,12 +94,6 @@ theorem UniformContinuous.div [UniformSpace β] {f : β → α} {g : β → α}
 #align uniform_continuous.div UniformContinuous.div
 #align uniform_continuous.sub UniformContinuous.sub
 
-/- warning: uniform_continuous.inv -> UniformContinuous.inv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (f x)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (f x)))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous.inv UniformContinuous.invₓ'. -/
 @[to_additive]
 theorem UniformContinuous.inv [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     UniformContinuous fun x => (f x)⁻¹ :=
@@ -127,24 +103,12 @@ theorem UniformContinuous.inv [UniformSpace β] {f : β → α} (hf : UniformCon
 #align uniform_continuous.inv UniformContinuous.inv
 #align uniform_continuous.neg UniformContinuous.neg
 
-/- warning: uniform_continuous_inv -> uniformContinuous_inv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) x)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) x)
-Case conversion may be inaccurate. Consider using '#align uniform_continuous_inv uniformContinuous_invₓ'. -/
 @[to_additive]
 theorem uniformContinuous_inv : UniformContinuous fun x : α => x⁻¹ :=
   uniformContinuous_id.inv
 #align uniform_continuous_inv uniformContinuous_inv
 #align uniform_continuous_neg uniformContinuous_neg
 
-/- warning: uniform_continuous.mul -> UniformContinuous.mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (f x) (g x)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (f x) (g x)))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous.mul UniformContinuous.mulₓ'. -/
 @[to_additive]
 theorem UniformContinuous.mul [UniformSpace β] {f : β → α} {g : β → α} (hf : UniformContinuous f)
     (hg : UniformContinuous g) : UniformContinuous fun x => f x * g x :=
@@ -154,12 +118,6 @@ theorem UniformContinuous.mul [UniformSpace β] {f : β → α} {g : β → α}
 #align uniform_continuous.mul UniformContinuous.mul
 #align uniform_continuous.add UniformContinuous.add
 
-/- warning: uniform_continuous_mul -> uniformContinuous_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.uniformSpace.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (instUniformSpaceProd.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous_mul uniformContinuous_mulₓ'. -/
 @[to_additive]
 theorem uniformContinuous_mul : UniformContinuous fun p : α × α => p.1 * p.2 :=
   uniformContinuous_fst.mul uniformContinuous_snd
@@ -219,12 +177,6 @@ instance [UniformSpace β] [Group β] [UniformGroup β] : UniformGroup (α × β
       ((uniformContinuous_snd.comp uniformContinuous_fst).div
         (uniformContinuous_snd.comp uniformContinuous_snd))⟩
 
-/- warning: uniformity_translate_mul -> uniformity_translate_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.map.{u1, u1} (Prod.{u1, u1} α α) (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Prod.mk.{u1, u1} α α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α x) a) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.snd.{u1, u1} α α x) a)) (uniformity.{u1} α _inst_1)) (uniformity.{u1} α _inst_1)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.map.{u1, u1} (Prod.{u1, u1} α α) (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Prod.mk.{u1, u1} α α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α x) a) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.snd.{u1, u1} α α x) a)) (uniformity.{u1} α _inst_1)) (uniformity.{u1} α _inst_1)
-Case conversion may be inaccurate. Consider using '#align uniformity_translate_mul uniformity_translate_mulₓ'. -/
 @[to_additive]
 theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (x.1 * a, x.2 * a)) = 𝓤 α :=
   le_antisymm (uniformContinuous_id.mul uniformContinuous_const)
@@ -239,12 +191,6 @@ theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (
 #align uniformity_translate_mul uniformity_translate_mul
 #align uniformity_translate_add uniformity_translate_add
 
-/- warning: uniform_embedding_translate_mul -> uniformEmbedding_translate_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), UniformEmbedding.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x a)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), UniformEmbedding.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x a)
-Case conversion may be inaccurate. Consider using '#align uniform_embedding_translate_mul uniformEmbedding_translate_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:132:4: warning: unsupported: rw with cfg: { occs := occurrences.pos[occurrences.pos] «expr[ ,]»([1]) } -/
 @[to_additive]
 theorem uniformEmbedding_translate_mul (a : α) : UniformEmbedding fun x : α => x * a :=
@@ -280,12 +226,6 @@ section LatticeOps
 
 variable [Group β]
 
-/- warning: uniform_group_Inf -> uniformGroup_sInf is a dubious translation:
-lean 3 declaration is
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.Mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.hasMem.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.sInf.{u1} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) us) _inst_4)
-but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.instMembershipSet.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.sInf.{u1} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) us) _inst_4)
-Case conversion may be inaccurate. Consider using '#align uniform_group_Inf uniformGroup_sInfₓ'. -/
 @[to_additive]
 theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
     @UniformGroup β (sInf us) _ :=
@@ -296,12 +236,6 @@ theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @Unifo
 #align uniform_group_Inf uniformGroup_sInf
 #align uniform_add_group_Inf uniformAddGroup_sInf
 
-/- warning: uniform_group_infi -> uniformGroup_iInf is a dubious translation:
-lean 3 declaration is
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (iInf.{u1, u2} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
-but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (iInf.{u1, u2} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
-Case conversion may be inaccurate. Consider using '#align uniform_group_infi uniformGroup_iInfₓ'. -/
 @[to_additive]
 theorem uniformGroup_iInf {ι : Sort _} {us' : ι → UniformSpace β}
     (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ := by rw [← sInf_range];
@@ -318,12 +252,6 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 #align uniform_add_group_inf uniformAddGroup_inf
 -/
 
-/- warning: uniform_group_comap -> uniformGroup_comap is a dubious translation:
-lean 3 declaration is
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u2}} [_inst_5 : Group.{u2} γ] {u : UniformSpace.{u2} γ} [_inst_6 : UniformGroup.{u2} γ u _inst_5] {F : Type.{u3}} [_inst_7 : MonoidHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u2} β γ (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => β -> γ) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F β (fun (_x : β) => γ) (MulHomClass.toFunLike.{u3, u1, u2} F β γ (MulOneClass.toHasMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toHasMul.{u2} γ (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5))) _inst_7))) f) u) _inst_4
-but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
-Case conversion may be inaccurate. Consider using '#align uniform_group_comap uniformGroup_comapₓ'. -/
 @[to_additive]
 theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
     [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
@@ -344,12 +272,6 @@ section
 
 variable (α)
 
-/- warning: uniformity_eq_comap_nhds_one -> uniformity_eq_comap_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_nhds_one uniformity_eq_comap_nhds_oneₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one : 𝓤 α = comap (fun x : α × α => x.2 / x.1) (𝓝 (1 : α)) :=
   by
@@ -367,12 +289,6 @@ theorem uniformity_eq_comap_nhds_one : 𝓤 α = comap (fun x : α × α => x.2
 #align uniformity_eq_comap_nhds_one uniformity_eq_comap_nhds_one
 #align uniformity_eq_comap_nhds_zero uniformity_eq_comap_nhds_zero
 
-/- warning: uniformity_eq_comap_nhds_one_swapped -> uniformity_eq_comap_nhds_one_swapped is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_nhds_one_swapped uniformity_eq_comap_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one_swapped :
     𝓤 α = comap (fun x : α × α => x.1 / x.2) (𝓝 (1 : α)) := by
@@ -380,12 +296,6 @@ theorem uniformity_eq_comap_nhds_one_swapped :
 #align uniformity_eq_comap_nhds_one_swapped uniformity_eq_comap_nhds_one_swapped
 #align uniformity_eq_comap_nhds_zero_swapped uniformity_eq_comap_nhds_zero_swapped
 
-/- warning: uniform_group.ext -> UniformGroup.ext is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4)))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4))))))))) -> (Eq.{succ u1} (UniformSpace.{u1} G) u v)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4)))))))) -> (Eq.{succ u1} (UniformSpace.{u1} G) u v)
-Case conversion may be inaccurate. Consider using '#align uniform_group.ext UniformGroup.extₓ'. -/
 @[to_additive]
 theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @UniformGroup G u _)
     (hv : @UniformGroup G v _)
@@ -395,12 +305,6 @@ theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @Un
 #align uniform_group.ext UniformGroup.ext
 #align uniform_add_group.ext UniformAddGroup.ext
 
-/- warning: uniform_group.ext_iff -> UniformGroup.ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Iff (Eq.{succ u1} (UniformSpace.{u1} G) u v) (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4)))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4))))))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Iff (Eq.{succ u1} (UniformSpace.{u1} G) u v) (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4)))))))))
-Case conversion may be inaccurate. Consider using '#align uniform_group.ext_iff UniformGroup.ext_iffₓ'. -/
 @[to_additive]
 theorem UniformGroup.ext_iff {G : Type _} [Group G] {u v : UniformSpace G}
     (hu : @UniformGroup G u _) (hv : @UniformGroup G v _) :
@@ -411,12 +315,6 @@ theorem UniformGroup.ext_iff {G : Type _} [Group G] {u v : UniformSpace G}
 
 variable {α}
 
-/- warning: uniform_group.uniformity_countably_generated -> UniformGroup.uniformity_countably_generated is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : Filter.IsCountablyGenerated.{u1} α (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))], Filter.IsCountablyGenerated.{u1} (Prod.{u1, u1} α α) (uniformity.{u1} α _inst_1)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : Filter.IsCountablyGenerated.{u1} α (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))], Filter.IsCountablyGenerated.{u1} (Prod.{u1, u1} α α) (uniformity.{u1} α _inst_1)
-Case conversion may be inaccurate. Consider using '#align uniform_group.uniformity_countably_generated UniformGroup.uniformity_countably_generatedₓ'. -/
 @[to_additive]
 theorem UniformGroup.uniformity_countably_generated [(𝓝 (1 : α)).IsCountablyGenerated] :
     (𝓤 α).IsCountablyGenerated := by rw [uniformity_eq_comap_nhds_one];
@@ -426,12 +324,6 @@ theorem UniformGroup.uniformity_countably_generated [(𝓝 (1 : α)).IsCountably
 
 open MulOpposite
 
-/- warning: uniformity_eq_comap_inv_mul_nhds_one -> uniformity_eq_comap_inv_mul_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_inv_mul_nhds_one uniformity_eq_comap_inv_mul_nhds_oneₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_inv_mul_nhds_one :
     𝓤 α = comap (fun x : α × α => x.1⁻¹ * x.2) (𝓝 (1 : α)) :=
@@ -442,12 +334,6 @@ theorem uniformity_eq_comap_inv_mul_nhds_one :
 #align uniformity_eq_comap_inv_mul_nhds_one uniformity_eq_comap_inv_mul_nhds_one
 #align uniformity_eq_comap_neg_add_nhds_zero uniformity_eq_comap_neg_add_nhds_zero
 
-/- warning: uniformity_eq_comap_inv_mul_nhds_one_swapped -> uniformity_eq_comap_inv_mul_nhds_one_swapped is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_inv_mul_nhds_one_swapped uniformity_eq_comap_inv_mul_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_inv_mul_nhds_one_swapped :
     𝓤 α = comap (fun x : α × α => x.2⁻¹ * x.1) (𝓝 (1 : α)) := by
@@ -457,12 +343,6 @@ theorem uniformity_eq_comap_inv_mul_nhds_one_swapped :
 
 end
 
-/- warning: filter.has_basis.uniformity_of_nhds_one -> Filter.HasBasis.uniformity_of_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (U i))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (U i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2 / x.1 ∈ U i } := by
@@ -470,12 +350,6 @@ theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι 
 #align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_one
 #align filter.has_basis.uniformity_of_nhds_zero Filter.HasBasis.uniformity_of_nhds_zero
 
-/- warning: filter.has_basis.uniformity_of_nhds_one_inv_mul -> Filter.HasBasis.uniformity_of_nhds_one_inv_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (U i))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (U i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mulₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1⁻¹ * x.2 ∈ U i } :=
@@ -483,12 +357,6 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mul
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add Filter.HasBasis.uniformity_of_nhds_zero_neg_add
 
-/- warning: filter.has_basis.uniformity_of_nhds_one_swapped -> Filter.HasBasis.uniformity_of_nhds_one_swapped is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (U i))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (U i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1 / x.2 ∈ U i } := by
@@ -496,12 +364,6 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U
 #align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_swapped Filter.HasBasis.uniformity_of_nhds_zero_swapped
 
-/- warning: filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped -> Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (U i))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (U i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swappedₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2⁻¹ * x.1 ∈ U i } :=
@@ -509,12 +371,6 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι →
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add_swapped Filter.HasBasis.uniformity_of_nhds_zero_neg_add_swapped
 
-/- warning: group_separation_rel -> group_separationRel is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (x : α) (y : α), Iff (Membership.Mem.{u1, u1} (Prod.{u1, u1} α α) (Set.{u1} (Prod.{u1, u1} α α)) (Set.hasMem.{u1} (Prod.{u1, u1} α α)) (Prod.mk.{u1, u1} α α x y) (separationRel.{u1} α _inst_1)) (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) x y) (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (x : α) (y : α), Iff (Membership.mem.{u1, u1} (Prod.{u1, u1} α α) (Set.{u1} (Prod.{u1, u1} α α)) (Set.instMembershipSet.{u1} (Prod.{u1, u1} α α)) (Prod.mk.{u1, u1} α α x y) (separationRel.{u1} α _inst_1)) (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) x y) (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))))
-Case conversion may be inaccurate. Consider using '#align group_separation_rel group_separationRelₓ'. -/
 @[to_additive]
 theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y ∈ closure ({1} : Set α) :=
   have : Embedding fun a => a * (y / x) := (uniformEmbedding_translate_mul (y / x)).Embedding
@@ -525,12 +381,6 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
 #align group_separation_rel group_separationRel
 #align add_group_separation_rel addGroup_separationRel
 
-/- warning: uniform_continuous_of_tendsto_one -> uniformContinuous_of_tendsto_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_oneₓ'. -/
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group β] [UniformGroup β]
     [MonoidHomClass hom α β] {f : hom} (h : Tendsto f (𝓝 1) (𝓝 1)) : UniformContinuous f :=
@@ -545,12 +395,6 @@ theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group
 #align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_one
 #align uniform_continuous_of_tendsto_zero uniformContinuous_of_tendsto_zero
 
-/- warning: uniform_continuous_of_continuous_at_one -> uniformContinuous_of_continuousAt_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_oneₓ'. -/
 /-- A group homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) between
 two uniform groups is uniformly continuous provided that it is continuous at one. See also
 `continuous_of_continuous_at_one`. -/
@@ -563,12 +407,6 @@ theorem uniformContinuous_of_continuousAt_one {hom : Type _} [UniformSpace β] [
 #align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_one
 #align uniform_continuous_of_continuous_at_zero uniformContinuous_of_continuousAt_zero
 
-/- warning: monoid_hom.uniform_continuous_of_continuous_at_one -> MonoidHom.uniformContinuous_of_continuousAt_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
-Case conversion may be inaccurate. Consider using '#align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_oneₓ'. -/
 @[to_additive]
 theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group β] [UniformGroup β]
     (f : α →* β) (hf : ContinuousAt f 1) : UniformContinuous f :=
@@ -576,12 +414,6 @@ theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group
 #align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_one
 #align add_monoid_hom.uniform_continuous_of_continuous_at_zero AddMonoidHom.uniformContinuous_of_continuousAt_zero
 
-/- warning: uniform_group.uniform_continuous_iff_open_ker -> UniformGroup.uniformContinuous_iff_open_ker is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} α _inst_2) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.setLike.{u1} α _inst_2)))) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) ((fun (a : Type.{u3}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{succ u3, max (succ u2) (succ u1)} a b] => self.0) hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (HasLiftT.mk.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (CoeTCₓ.coe.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHom.hasCoeT.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f))))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
-Case conversion may be inaccurate. Consider using '#align uniform_group.uniform_continuous_iff_open_ker UniformGroup.uniformContinuous_iff_open_kerₓ'. -/
 /-- A homomorphism from a uniform group to a discrete uniform group is continuous if and only if
 its kernel is open. -/
 @[to_additive
@@ -609,12 +441,6 @@ theorem uniformContinuous_monoidHom_of_continuous {hom : Type _} [UniformSpace 
 #align uniform_continuous_add_monoid_hom_of_continuous uniformContinuous_addMonoidHom_of_continuous
 -/
 
-/- warning: cauchy_seq.mul -> CauchySeq.mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {v : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 v) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (ι -> α) (ι -> α) (ι -> α) (instHMul.{max u2 u1} (ι -> α) (Pi.instMul.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) u v))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {v : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 v) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (ι -> α) (ι -> α) (ι -> α) (instHMul.{max u1 u2} (ι -> α) (Pi.instMul.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) u v))
-Case conversion may be inaccurate. Consider using '#align cauchy_seq.mul CauchySeq.mulₓ'. -/
 @[to_additive]
 theorem CauchySeq.mul {ι : Type _} [SemilatticeSup ι] {u v : ι → α} (hu : CauchySeq u)
     (hv : CauchySeq v) : CauchySeq (u * v) :=
@@ -622,12 +448,6 @@ theorem CauchySeq.mul {ι : Type _} [SemilatticeSup ι] {u v : ι → α} (hu :
 #align cauchy_seq.mul CauchySeq.mul
 #align cauchy_seq.add CauchySeq.add
 
-/- warning: cauchy_seq.mul_const -> CauchySeq.mul_const is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (u n) x))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (u n) x))
-Case conversion may be inaccurate. Consider using '#align cauchy_seq.mul_const CauchySeq.mul_constₓ'. -/
 @[to_additive]
 theorem CauchySeq.mul_const {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => u n * x :=
@@ -635,12 +455,6 @@ theorem CauchySeq.mul_const {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x
 #align cauchy_seq.mul_const CauchySeq.mul_const
 #align cauchy_seq.add_const CauchySeq.add_const
 
-/- warning: cauchy_seq.const_mul -> CauchySeq.const_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x (u n)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x (u n)))
-Case conversion may be inaccurate. Consider using '#align cauchy_seq.const_mul CauchySeq.const_mulₓ'. -/
 @[to_additive]
 theorem CauchySeq.const_mul {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => x * u n :=
@@ -648,12 +462,6 @@ theorem CauchySeq.const_mul {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x
 #align cauchy_seq.const_mul CauchySeq.const_mul
 #align cauchy_seq.const_add CauchySeq.const_add
 
-/- warning: cauchy_seq.inv -> CauchySeq.inv is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (Inv.inv.{max u2 u1} (ι -> α) (Pi.instInv.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) u))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (Inv.inv.{max u2 u1} (ι -> α) (Pi.instInv.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))) u))
-Case conversion may be inaccurate. Consider using '#align cauchy_seq.inv CauchySeq.invₓ'. -/
 @[to_additive]
 theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : CauchySeq u) :
     CauchySeq u⁻¹ :=
@@ -661,12 +469,6 @@ theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : Cau
 #align cauchy_seq.inv CauchySeq.inv
 #align cauchy_seq.neg CauchySeq.neg
 
-/- warning: totally_bounded_iff_subset_finite_Union_nhds_one -> totallyBounded_iff_subset_finite_iUnion_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) => SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) s (Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) => HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
-Case conversion may be inaccurate. Consider using '#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_iUnion_nhds_oneₓ'. -/
 @[to_additive]
 theorem totallyBounded_iff_subset_finite_iUnion_nhds_one {s : Set α} :
     TotallyBounded s ↔ ∀ U ∈ 𝓝 (1 : α), ∃ t : Set α, t.Finite ∧ s ⊆ ⋃ y ∈ t, y • U :=
@@ -679,9 +481,6 @@ section UniformConvergence
 
 variable {ι : Type _} {l : Filter ι} {l' : Filter β} {f f' : ι → β → α} {g g' : β → α} {s : Set β}
 
-/- warning: tendsto_uniformly_on_filter.mul -> TendstoUniformlyOnFilter.mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.mul TendstoUniformlyOnFilter.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
     (hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f * f') (g * g') l l' :=
@@ -690,12 +489,6 @@ theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
 #align tendsto_uniformly_on_filter.mul TendstoUniformlyOnFilter.mul
 #align tendsto_uniformly_on_filter.add TendstoUniformlyOnFilter.add
 
-/- warning: tendsto_uniformly_on_filter.div -> TendstoUniformlyOnFilter.div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {l' : Filter.{u2} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u1} (β -> α) (Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) g g') l l')
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {l' : Filter.{u3} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u3} (β -> α) (Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) g g') l l')
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.div TendstoUniformlyOnFilter.divₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
     (hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f / f') (g / g') l l' :=
@@ -704,9 +497,6 @@ theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
 #align tendsto_uniformly_on_filter.div TendstoUniformlyOnFilter.div
 #align tendsto_uniformly_on_filter.sub TendstoUniformlyOnFilter.sub
 
-/- warning: tendsto_uniformly_on.mul -> TendstoUniformlyOn.mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on.mul TendstoUniformlyOn.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOn.mul (hf : TendstoUniformlyOn f g l s)
     (hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f * f') (g * g') l s := fun u hu =>
@@ -714,12 +504,6 @@ theorem TendstoUniformlyOn.mul (hf : TendstoUniformlyOn f g l s)
 #align tendsto_uniformly_on.mul TendstoUniformlyOn.mul
 #align tendsto_uniformly_on.add TendstoUniformlyOn.add
 
-/- warning: tendsto_uniformly_on.div -> TendstoUniformlyOn.div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u2} β}, (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u1} (β -> α) (Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) g g') l s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u3} β}, (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u3} (β -> α) (Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) g g') l s)
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on.div TendstoUniformlyOn.divₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOn.div (hf : TendstoUniformlyOn f g l s)
     (hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f / f') (g / g') l s := fun u hu =>
@@ -727,12 +511,6 @@ theorem TendstoUniformlyOn.div (hf : TendstoUniformlyOn f g l s)
 #align tendsto_uniformly_on.div TendstoUniformlyOn.div
 #align tendsto_uniformly_on.sub TendstoUniformlyOn.sub
 
-/- warning: tendsto_uniformly.mul -> TendstoUniformly.mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f g l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u1} (β -> α) (Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) g g') l)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f g l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u3} (β -> α) (Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))))) g g') l)
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly.mul TendstoUniformly.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformly.mul (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
     TendstoUniformly (f * f') (g * g') l := fun u hu =>
@@ -740,12 +518,6 @@ theorem TendstoUniformly.mul (hf : TendstoUniformly f g l) (hf' : TendstoUniform
 #align tendsto_uniformly.mul TendstoUniformly.mul
 #align tendsto_uniformly.add TendstoUniformly.add
 
-/- warning: tendsto_uniformly.div -> TendstoUniformly.div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f g l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u1} (β -> α) (Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) g g') l)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f g l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u3} (β -> α) (Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) g g') l)
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly.div TendstoUniformly.divₓ'. -/
 @[to_additive]
 theorem TendstoUniformly.div (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
     TendstoUniformly (f / f') (g / g') l := fun u hu =>
@@ -753,12 +525,6 @@ theorem TendstoUniformly.div (hf : TendstoUniformly f g l) (hf' : TendstoUniform
 #align tendsto_uniformly.div TendstoUniformly.div
 #align tendsto_uniformly.sub TendstoUniformly.sub
 
-/- warning: uniform_cauchy_seq_on.mul -> UniformCauchySeqOn.mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u2} β}, (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') l s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u3} β}, (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') l s)
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.mul UniformCauchySeqOn.mulₓ'. -/
 @[to_additive]
 theorem UniformCauchySeqOn.mul (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
     UniformCauchySeqOn (f * f') l s := fun u hu => by
@@ -766,12 +532,6 @@ theorem UniformCauchySeqOn.mul (hf : UniformCauchySeqOn f l s) (hf' : UniformCau
 #align uniform_cauchy_seq_on.mul UniformCauchySeqOn.mul
 #align uniform_cauchy_seq_on.add UniformCauchySeqOn.add
 
-/- warning: uniform_cauchy_seq_on.div -> UniformCauchySeqOn.div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u2} β}, (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') l s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u3} β}, (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') l s)
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.div UniformCauchySeqOn.divₓ'. -/
 @[to_additive]
 theorem UniformCauchySeqOn.div (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
     UniformCauchySeqOn (f / f') l s := fun u hu => by
@@ -847,12 +607,6 @@ def TopologicalGroup.toUniformSpace : UniformSpace G
 
 attribute [local instance] TopologicalGroup.toUniformSpace
 
-/- warning: uniformity_eq_comap_nhds_one' -> uniformity_eq_comap_nhds_one' is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} G G)) (uniformity.{u1} G (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3)) (Filter.comap.{u1, u1} (Prod.{u1, u1} G G) G (fun (p : Prod.{u1, u1} G G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Prod.snd.{u1, u1} G G p) (Prod.fst.{u1, u1} G G p)) (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))))))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} G G)) (uniformity.{u1} G (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3)) (Filter.comap.{u1, u1} (Prod.{u1, u1} G G) G (fun (p : Prod.{u1, u1} G G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Prod.snd.{u1, u1} G G p) (Prod.fst.{u1, u1} G G p)) (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1))))))))
-Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_nhds_one' uniformity_eq_comap_nhds_one'ₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one' : 𝓤 G = comap (fun p : G × G => p.2 / p.1) (𝓝 (1 : G)) :=
   rfl
@@ -871,12 +625,6 @@ theorem topologicalGroup_is_uniform_of_compactSpace [CompactSpace G] : UniformGr
 
 variable {G}
 
-/- warning: subgroup.is_closed_of_discrete -> Subgroup.isClosed_of_discrete is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] [_inst_4 : T2Space.{u1} G _inst_2] {H : Subgroup.{u1} G _inst_1} [_inst_5 : DiscreteTopology.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subtype.topologicalSpace.{u1} G (fun (x : G) => Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x H) _inst_2)], IsClosed.{u1} G _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_1) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) H)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] [_inst_4 : T2Space.{u1} G _inst_2] {H : Subgroup.{u1} G _inst_1} [_inst_5 : DiscreteTopology.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (instTopologicalSpaceSubtype.{u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H) _inst_2)], IsClosed.{u1} G _inst_2 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1) H)
-Case conversion may be inaccurate. Consider using '#align subgroup.is_closed_of_discrete Subgroup.isClosed_of_discreteₓ'. -/
 @[to_additive]
 instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTopology H] :
     IsClosed (H : Set G) :=
@@ -894,12 +642,6 @@ instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTop
 #align subgroup.is_closed_of_discrete Subgroup.isClosed_of_discrete
 #align add_subgroup.is_closed_of_discrete AddSubgroup.isClosed_of_discrete
 
-/- warning: topological_group.tendsto_uniformly_iff -> TopologicalGroup.tendstoUniformly_iff is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι), Iff (TendstoUniformly.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u) p))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι), Iff (TendstoUniformly.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u) p))
-Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_uniformly_iff TopologicalGroup.tendstoUniformly_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
     (p : Filter ι) :
@@ -910,12 +652,6 @@ theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α 
 #align topological_group.tendsto_uniformly_iff TopologicalGroup.tendstoUniformly_iff
 #align topological_add_group.tendsto_uniformly_iff TopologicalAddGroup.tendstoUniformly_iff
 
-/- warning: topological_group.tendsto_uniformly_on_iff -> TopologicalGroup.tendstoUniformlyOn_iff is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι) (s : Set.{u3} α), Iff (TendstoUniformlyOn.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p s) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) a s) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι) (s : Set.{u2} α), Iff (TendstoUniformlyOn.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p s) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))
-Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_uniformly_on_iff TopologicalGroup.tendstoUniformlyOn_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
     (p : Filter ι) (s : Set α) :
@@ -926,9 +662,6 @@ theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α
 #align topological_group.tendsto_uniformly_on_iff TopologicalGroup.tendstoUniformlyOn_iff
 #align topological_add_group.tendsto_uniformly_on_iff TopologicalAddGroup.tendstoUniformlyOn_iff
 
-/- warning: topological_group.tendsto_locally_uniformly_iff -> TopologicalGroup.tendstoLocallyUniformly_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_locally_uniformly_iff TopologicalGroup.tendstoLocallyUniformly_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) :
@@ -940,9 +673,6 @@ theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [Topologic
 #align topological_group.tendsto_locally_uniformly_iff TopologicalGroup.tendstoLocallyUniformly_iff
 #align topological_add_group.tendsto_locally_uniformly_iff TopologicalAddGroup.tendstoLocallyUniformly_iff
 
-/- warning: topological_group.tendsto_locally_uniformly_on_iff -> TopologicalGroup.tendstoLocallyUniformlyOn_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_locally_uniformly_on_iff TopologicalGroup.tendstoLocallyUniformlyOn_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff {ι α : Type _} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) (s : Set α) :
@@ -990,12 +720,6 @@ theorem comm_topologicalGroup_is_uniform : UniformGroup G :=
 
 open Set
 
-/- warning: topological_group.t2_space_iff_one_closed -> TopologicalGroup.t2Space_iff_one_closed is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], Iff (T2Space.{u1} G _inst_2) (IsClosed.{u1} G _inst_2 (Singleton.singleton.{u1, u1} G (Set.{u1} G) (Set.hasSingleton.{u1} G) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1))))))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], Iff (T2Space.{u1} G _inst_2) (IsClosed.{u1} G _inst_2 (Singleton.singleton.{u1, u1} G (Set.{u1} G) (Set.instSingletonSet.{u1} G) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_1)))))))))
-Case conversion may be inaccurate. Consider using '#align topological_group.t2_space_iff_one_closed TopologicalGroup.t2Space_iff_one_closedₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) :=
   by
@@ -1017,12 +741,6 @@ theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} :
 #align topological_group.t2_space_iff_one_closed TopologicalGroup.t2Space_iff_one_closed
 #align topological_add_group.t2_space_iff_zero_closed TopologicalAddGroup.t2Space_iff_zero_closed
 
-/- warning: topological_group.t2_space_of_one_sep -> TopologicalGroup.t2Space_of_one_sep is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], (forall (x : G), (Ne.{succ u1} G x (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1))))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (U : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) U (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1)))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) U (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1)))))))))) => Not (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) x U))))) -> (T2Space.{u1} G _inst_2)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], (forall (x : G), (Ne.{succ u1} G x (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_1)))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (U : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) U (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_1))))))))) (Not (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) x U))))) -> (T2Space.{u1} G _inst_2)
-Case conversion may be inaccurate. Consider using '#align topological_group.t2_space_of_one_sep TopologicalGroup.t2Space_of_one_sepₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U ∈ nhds (1 : G), x ∉ U) :
     T2Space G :=
@@ -1071,9 +789,6 @@ variable [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
 
 include de
 
-/- warning: tendsto_div_comap_self -> tendsto_div_comap_self is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tendsto_div_comap_self tendsto_div_comap_selfₓ'. -/
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
     Tendsto (fun t : β × β => t.2 / t.1) ((comap fun p : β × β => (e p.1, e p.2)) <| 𝓝 (x₀, x₀))
@@ -1223,9 +938,6 @@ omit W'_nhd
 
 open DenseInducing
 
-/- warning: dense_inducing.extend_Z_bilin -> DenseInducing.extend_Z_bilin is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin DenseInducing.extend_Z_bilinₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
Diff
@@ -170,12 +170,8 @@ theorem uniformContinuous_mul : UniformContinuous fun p : α × α => p.1 * p.2
 @[to_additive UniformContinuous.const_nsmul]
 theorem UniformContinuous.pow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℕ, UniformContinuous fun x => f x ^ n
-  | 0 => by
-    simp_rw [pow_zero]
-    exact uniformContinuous_const
-  | n + 1 => by
-    simp_rw [pow_succ]
-    exact hf.mul (UniformContinuous.pow_const n)
+  | 0 => by simp_rw [pow_zero]; exact uniformContinuous_const
+  | n + 1 => by simp_rw [pow_succ]; exact hf.mul (UniformContinuous.pow_const n)
 #align uniform_continuous.pow_const UniformContinuous.pow_const
 #align uniform_continuous.const_nsmul UniformContinuous.const_nsmul
 -/
@@ -192,12 +188,8 @@ theorem uniformContinuous_pow_const (n : ℕ) : UniformContinuous fun x : α =>
 @[to_additive UniformContinuous.const_zsmul]
 theorem UniformContinuous.zpow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℤ, UniformContinuous fun x => f x ^ n
-  | (n : ℕ) => by
-    simp_rw [zpow_ofNat]
-    exact hf.pow_const _
-  | -[n+1] => by
-    simp_rw [zpow_negSucc]
-    exact (hf.pow_const _).inv
+  | (n : ℕ) => by simp_rw [zpow_ofNat]; exact hf.pow_const _
+  | -[n+1] => by simp_rw [zpow_negSucc]; exact (hf.pow_const _).inv
 #align uniform_continuous.zpow_const UniformContinuous.zpow_const
 #align uniform_continuous.const_zsmul UniformContinuous.const_zsmul
 -/
@@ -312,9 +304,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align uniform_group_infi uniformGroup_iInfₓ'. -/
 @[to_additive]
 theorem uniformGroup_iInf {ι : Sort _} {us' : ι → UniformSpace β}
-    (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ :=
-  by
-  rw [← sInf_range]
+    (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ := by rw [← sInf_range];
   exact uniformGroup_sInf (set.forall_range_iff.mpr h')
 #align uniform_group_infi uniformGroup_iInf
 #align uniform_add_group_infi uniformAddGroup_iInf
@@ -322,11 +312,8 @@ theorem uniformGroup_iInf {ι : Sort _} {us' : ι → UniformSpace β}
 #print uniformGroup_inf /-
 @[to_additive]
 theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β u₁ _)
-    (h₂ : @UniformGroup β u₂ _) : @UniformGroup β (u₁ ⊓ u₂) _ :=
-  by
-  rw [inf_eq_iInf]
-  refine' uniformGroup_iInf fun b => _
-  cases b <;> assumption
+    (h₂ : @UniformGroup β u₂ _) : @UniformGroup β (u₁ ⊓ u₂) _ := by rw [inf_eq_iInf];
+  refine' uniformGroup_iInf fun b => _; cases b <;> assumption
 #align uniform_group_inf uniformGroup_inf
 #align uniform_add_group_inf uniformAddGroup_inf
 -/
@@ -376,8 +363,7 @@ theorem uniformity_eq_comap_nhds_one : 𝓤 α = comap (fun x : α × α => x.2
   · intro s hs
     rcases mem_uniformity_of_uniformContinuous_invariant uniformContinuous_mul hs with ⟨t, ht, hts⟩
     refine' ⟨_, ht, _⟩
-    rintro ⟨a, b⟩
-    simpa [subset_def] using hts 1 (b / a) a
+    rintro ⟨a, b⟩; simpa [subset_def] using hts 1 (b / a) a
 #align uniformity_eq_comap_nhds_one uniformity_eq_comap_nhds_one
 #align uniformity_eq_comap_nhds_zero uniformity_eq_comap_nhds_zero
 
@@ -389,10 +375,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_nhds_one_swapped uniformity_eq_comap_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one_swapped :
-    𝓤 α = comap (fun x : α × α => x.1 / x.2) (𝓝 (1 : α)) :=
-  by
-  rw [← comap_swap_uniformity, uniformity_eq_comap_nhds_one, comap_comap, (· ∘ ·)]
-  rfl
+    𝓤 α = comap (fun x : α × α => x.1 / x.2) (𝓝 (1 : α)) := by
+  rw [← comap_swap_uniformity, uniformity_eq_comap_nhds_one, comap_comap, (· ∘ ·)]; rfl
 #align uniformity_eq_comap_nhds_one_swapped uniformity_eq_comap_nhds_one_swapped
 #align uniformity_eq_comap_nhds_zero_swapped uniformity_eq_comap_nhds_zero_swapped
 
@@ -435,9 +419,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align uniform_group.uniformity_countably_generated UniformGroup.uniformity_countably_generatedₓ'. -/
 @[to_additive]
 theorem UniformGroup.uniformity_countably_generated [(𝓝 (1 : α)).IsCountablyGenerated] :
-    (𝓤 α).IsCountablyGenerated :=
-  by
-  rw [uniformity_eq_comap_nhds_one]
+    (𝓤 α).IsCountablyGenerated := by rw [uniformity_eq_comap_nhds_one];
   exact Filter.comap.isCountablyGenerated _ _
 #align uniform_group.uniformity_countably_generated UniformGroup.uniformity_countably_generated
 #align uniform_add_group.uniformity_countably_generated UniformAddGroup.uniformity_countably_generated
@@ -468,10 +450,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_inv_mul_nhds_one_swapped uniformity_eq_comap_inv_mul_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_inv_mul_nhds_one_swapped :
-    𝓤 α = comap (fun x : α × α => x.2⁻¹ * x.1) (𝓝 (1 : α)) :=
-  by
-  rw [← comap_swap_uniformity, uniformity_eq_comap_inv_mul_nhds_one, comap_comap, (· ∘ ·)]
-  rfl
+    𝓤 α = comap (fun x : α × α => x.2⁻¹ * x.1) (𝓝 (1 : α)) := by
+  rw [← comap_swap_uniformity, uniformity_eq_comap_inv_mul_nhds_one, comap_comap, (· ∘ ·)]; rfl
 #align uniformity_eq_comap_inv_mul_nhds_one_swapped uniformity_eq_comap_inv_mul_nhds_one_swapped
 #align uniformity_eq_comap_neg_add_nhds_zero_swapped uniformity_eq_comap_neg_add_nhds_zero_swapped
 
@@ -485,10 +465,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2 / x.1 ∈ U i } :=
-  by
-  rw [uniformity_eq_comap_nhds_one]
-  exact h.comap _
+    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2 / x.1 ∈ U i } := by
+  rw [uniformity_eq_comap_nhds_one]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_one
 #align filter.has_basis.uniformity_of_nhds_zero Filter.HasBasis.uniformity_of_nhds_zero
 
@@ -501,9 +479,7 @@ Case conversion may be inaccurate. Consider using '#align filter.has_basis.unifo
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1⁻¹ * x.2 ∈ U i } :=
-  by
-  rw [uniformity_eq_comap_inv_mul_nhds_one]
-  exact h.comap _
+  by rw [uniformity_eq_comap_inv_mul_nhds_one]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mul
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add Filter.HasBasis.uniformity_of_nhds_zero_neg_add
 
@@ -515,10 +491,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1 / x.2 ∈ U i } :=
-  by
-  rw [uniformity_eq_comap_nhds_one_swapped]
-  exact h.comap _
+    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1 / x.2 ∈ U i } := by
+  rw [uniformity_eq_comap_nhds_one_swapped]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_swapped Filter.HasBasis.uniformity_of_nhds_zero_swapped
 
@@ -531,9 +505,7 @@ Case conversion may be inaccurate. Consider using '#align filter.has_basis.unifo
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2⁻¹ * x.1 ∈ U i } :=
-  by
-  rw [uniformity_eq_comap_inv_mul_nhds_one_swapped]
-  exact h.comap _
+  by rw [uniformity_eq_comap_inv_mul_nhds_one_swapped]; exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add_swapped Filter.HasBasis.uniformity_of_nhds_zero_neg_add_swapped
 
@@ -867,10 +839,8 @@ def TopologicalGroup.toUniformSpace : UniformSpace G
     refine' exists₂_congr fun t ht => _
     show (fun y : G => y / a) ⁻¹' t ⊆ S ↔ (fun p : G × G => p.snd / p.fst) ⁻¹' t ⊆ S' a
     constructor
-    · rintro h ⟨x, y⟩ hx rfl
-      exact h hx
-    · rintro h x hx
-      exact @h (a, x) hx rfl
+    · rintro h ⟨x, y⟩ hx rfl; exact h hx
+    · rintro h x hx; exact @h (a, x) hx rfl
 #align topological_group.to_uniform_space TopologicalGroup.toUniformSpace
 #align topological_add_group.to_uniform_space TopologicalAddGroup.toUniformSpace
 -/
@@ -1232,9 +1202,7 @@ private theorem [anonymous] (x₀ : α) (y₀ : γ) :
   rcases this with ⟨U₁, U₁_nhd, V₁, V₁_nhd, H⟩
   obtain ⟨x₁, x₁_in⟩ : U₁.nonempty := (de.comap_nhds_ne_bot _).nonempty_of_mem U₁_nhd
   obtain ⟨y₁, y₁_in⟩ : V₁.nonempty := (df.comap_nhds_ne_bot _).nonempty_of_mem V₁_nhd
-  have cont_flip : Continuous fun p : δ × β => φ.flip p.1 p.2 :=
-    by
-    show Continuous (Φ ∘ Prod.swap)
+  have cont_flip : Continuous fun p : δ × β => φ.flip p.1 p.2 := by show Continuous (Φ ∘ Prod.swap);
     exact hφ.comp continuous_swap
   rcases extend_Z_bilin_aux de df hφ W_nhd x₀ y₁ with ⟨U₂, U₂_nhd, HU⟩
   rcases extend_Z_bilin_aux df de cont_flip W_nhd y₀ x₁ with ⟨V₂, V₂_nhd, HV⟩
@@ -1242,9 +1210,7 @@ private theorem [anonymous] (x₀ : α) (y₀ : γ) :
   rintro x ⟨xU₁, xU₂⟩ x' ⟨x'U₁, x'U₂⟩ y ⟨yV₁, yV₂⟩ y' ⟨y'V₁, y'V₂⟩
   have key_formula :
     φ x' y' - φ x y = φ (x' - x) y₁ + φ (x' - x) (y' - y₁) + φ x₁ (y' - y) + φ (x - x₁) (y' - y) :=
-    by
-    simp
-    abel
+    by simp; abel
   rw [key_formula]
   have h₁ := HU x xU₂ x' x'U₂
   have h₂ := H x xU₁ x' x'U₁ y₁ y₁_in y' y'V₁
@@ -1423,10 +1389,8 @@ quotient obtained via other means.  -/
       "The quotient `G ⧸ N` of a complete first countable uniform additive group\n`G` by a normal additive subgroup is itself complete. Consequently, quotients of Banach spaces by\nsubspaces are complete. In constrast to `quotient_add_group.complete_space'`, in this version\n`G` is already equipped with a uniform structure.\n[N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]\n\nEven though `G` is equipped with a uniform structure, the quotient `G ⧸ N` does not inherit a\nuniform structure, so it is still provided manually via `topological_add_group.to_uniform_space`.\nIn the most common use case ─ quotients of normed additive commutative groups by subgroups ─\nsignificant care was taken so that the uniform structure inherent in that setting coincides\n(definitionally) with the uniform structure provided here."]
 instance QuotientGroup.completeSpace (G : Type u) [Group G] [us : UniformSpace G] [UniformGroup G]
     [FirstCountableTopology G] (N : Subgroup G) [N.normal] [hG : CompleteSpace G] :
-    @CompleteSpace (G ⧸ N) (TopologicalGroup.toUniformSpace (G ⧸ N)) :=
-  by
-  rw [← @UniformGroup.toUniformSpace_eq _ us _ _] at hG
-  infer_instance
+    @CompleteSpace (G ⧸ N) (TopologicalGroup.toUniformSpace (G ⧸ N)) := by
+  rw [← @UniformGroup.toUniformSpace_eq _ us _ _] at hG; infer_instance
 #align quotient_group.complete_space QuotientGroup.completeSpace
 #align quotient_add_group.complete_space QuotientAddGroup.completeSpace
 -/
Diff
@@ -708,10 +708,7 @@ section UniformConvergence
 variable {ι : Type _} {l : Filter ι} {l' : Filter β} {f f' : ι → β → α} {g g' : β → α} {s : Set β}
 
 /- warning: tendsto_uniformly_on_filter.mul -> TendstoUniformlyOnFilter.mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {l' : Filter.{u2} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u1} (β -> α) (Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) g g') l l')
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {l' : Filter.{u3} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u3} (β -> α) (Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))))) g g') l l')
+<too large>
 Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.mul TendstoUniformlyOnFilter.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
@@ -736,10 +733,7 @@ theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
 #align tendsto_uniformly_on_filter.sub TendstoUniformlyOnFilter.sub
 
 /- warning: tendsto_uniformly_on.mul -> TendstoUniformlyOn.mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u2} β}, (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u1} (β -> α) (Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) g g') l s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u3} β}, (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u3} (β -> α) (Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))))) g g') l s)
+<too large>
 Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on.mul TendstoUniformlyOn.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOn.mul (hf : TendstoUniformlyOn f g l s)
@@ -963,10 +957,7 @@ theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α
 #align topological_add_group.tendsto_uniformly_on_iff TopologicalAddGroup.tendstoUniformlyOn_iff
 
 /- warning: topological_group.tendsto_locally_uniformly_iff -> TopologicalGroup.tendstoLocallyUniformly_iff is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} [_inst_4 : TopologicalSpace.{u3} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι), Iff (TendstoLocallyUniformly.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (forall (x : α), Exists.{succ u3} (Set.{u3} α) (fun (t : Set.{u3} α) => Exists.{0} (Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhds.{u3} α _inst_4 x)) (fun (H : Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhds.{u3} α _inst_4 x)) => Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) a t) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} [_inst_4 : TopologicalSpace.{u2} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι), Iff (TendstoLocallyUniformly.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (forall (x : α), Exists.{succ u2} (Set.{u2} α) (fun (t : Set.{u2} α) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t (nhds.{u2} α _inst_4 x)) (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a t) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_locally_uniformly_iff TopologicalGroup.tendstoLocallyUniformly_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [TopologicalSpace α]
@@ -980,10 +971,7 @@ theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [Topologic
 #align topological_add_group.tendsto_locally_uniformly_iff TopologicalAddGroup.tendstoLocallyUniformly_iff
 
 /- warning: topological_group.tendsto_locally_uniformly_on_iff -> TopologicalGroup.tendstoLocallyUniformlyOn_iff is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} [_inst_4 : TopologicalSpace.{u3} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι) (s : Set.{u3} α), Iff (TendstoLocallyUniformlyOn.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p s) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (forall (x : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) x s) -> (Exists.{succ u3} (Set.{u3} α) (fun (t : Set.{u3} α) => Exists.{0} (Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhdsWithin.{u3} α _inst_4 x s)) (fun (H : Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhdsWithin.{u3} α _inst_4 x s)) => Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) a t) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} [_inst_4 : TopologicalSpace.{u2} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι) (s : Set.{u2} α), Iff (TendstoLocallyUniformlyOn.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p s) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (forall (x : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Exists.{succ u2} (Set.{u2} α) (fun (t : Set.{u2} α) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t (nhdsWithin.{u2} α _inst_4 x s)) (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a t) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_locally_uniformly_on_iff TopologicalGroup.tendstoLocallyUniformlyOn_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff {ι α : Type _} [TopologicalSpace α]
@@ -1114,10 +1102,7 @@ variable [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
 include de
 
 /- warning: tendsto_div_comap_self -> tendsto_div_comap_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {hom : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : MonoidHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))] {e : hom}, (DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e)) -> (forall (x₀ : α), Filter.Tendsto.{u2, u2} (Prod.{u2, u2} β β) β (fun (t : Prod.{u2, u2} β β) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Prod.snd.{u2, u2} β β t) (Prod.fst.{u2, u2} β β t)) (Filter.comap.{u2, u1} (Prod.{u2, u2} β β) (Prod.{u1, u1} α α) (fun (p : Prod.{u2, u2} β β) => Prod.mk.{u1, u1} α α (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.fst.{u2, u2} β β p)) (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.snd.{u2, u2} β β p))) (nhds.{u1} (Prod.{u1, u1} α α) (Prod.topologicalSpace.{u1, u1} α α _inst_1 _inst_1) (Prod.mk.{u1, u1} α α x₀ x₀))) (nhds.{u2} β _inst_4 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tendsto_div_comap_self tendsto_div_comap_selfₓ'. -/
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
@@ -1195,7 +1180,6 @@ private theorem [anonymous] (x₀ : α) (y₁ : δ) :
   rw [tendsto_prod_self_iff] at lim
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
-#align dense_inducing.extend_Z_bilin_aux [anonymous]
 -/
 
 /- warning: dense_inducing.extend_Z_bilin_key clashes with [anonymous] -> [anonymous]
@@ -1267,7 +1251,6 @@ private theorem [anonymous] (x₀ : α) (y₀ : γ) :
   have h₃ := HV y yV₂ y' y'V₂
   have h₄ := H x₁ x₁_in x xU₁ y yV₁ y' y'V₁
   exact W4 h₁ h₂ h₃ h₄
-#align dense_inducing.extend_Z_bilin_key [anonymous]
 -/
 
 omit W'_nhd
@@ -1275,10 +1258,7 @@ omit W'_nhd
 open DenseInducing
 
 /- warning: dense_inducing.extend_Z_bilin -> DenseInducing.extend_Z_bilin is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} {G : Type.{u5}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : AddCommGroup.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_1 (AddCommGroup.toAddGroup.{u1} α _inst_2)] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : AddCommGroup.{u2} β] [_inst_6 : TopologicalAddGroup.{u2} β _inst_4 (AddCommGroup.toAddGroup.{u2} β _inst_5)] [_inst_7 : TopologicalSpace.{u3} γ] [_inst_8 : AddCommGroup.{u3} γ] [_inst_9 : TopologicalAddGroup.{u3} γ _inst_7 (AddCommGroup.toAddGroup.{u3} γ _inst_8)] [_inst_10 : TopologicalSpace.{u4} δ] [_inst_11 : AddCommGroup.{u4} δ] [_inst_12 : TopologicalAddGroup.{u4} δ _inst_10 (AddCommGroup.toAddGroup.{u4} δ _inst_11)] [_inst_13 : UniformSpace.{u5} G] [_inst_14 : AddCommGroup.{u5} G] [_inst_15 : UniformAddGroup.{u5} G _inst_13 (AddCommGroup.toAddGroup.{u5} G _inst_14)] [_inst_16 : SeparatedSpace.{u5} G _inst_13] [_inst_17 : CompleteSpace.{u5} G _inst_13] {e : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))} (de : DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e)) {f : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))} (df : DenseInducing.{u4, u3} δ γ _inst_10 _inst_7 (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f)) {φ : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))}, (Continuous.{max u2 u4, u5} (Prod.{u2, u4} β δ) G (Prod.topologicalSpace.{u2, u4} β δ _inst_4 _inst_10) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (fun (p : Prod.{u2, u4} β δ) => coeFn.{max (succ u5) (succ u4), max (succ u4) (succ u5)} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (fun (_x : AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) => δ -> G) (AddMonoidHom.hasCoeToFun.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (coeFn.{max (succ (max u5 u4)) (succ u2), max (succ u2) (succ (max u5 u4))} (AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) (fun (_x : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) => β -> (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14)))))) (AddMonoidHom.hasCoeToFun.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) φ (Prod.fst.{u2, u4} β δ p)) (Prod.snd.{u2, u4} β δ p))) -> (Continuous.{max u1 u3, u5} (Prod.{u1, u3} α γ) G (Prod.topologicalSpace.{u1, u3} α γ _inst_1 _inst_7) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (DenseInducing.extend.{max u2 u4, max u1 u3, u5} (Prod.{u2, u4} β δ) (Prod.{u1, u3} α γ) G (Prod.topologicalSpace.{u2, u4} β δ _inst_4 _inst_10) (Prod.topologicalSpace.{u1, u3} α γ _inst_1 _inst_7) (fun (p : Prod.{u2, u4} β δ) => Prod.mk.{u1, u3} α γ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e (Prod.fst.{u2, u4} β δ p)) (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f (Prod.snd.{u2, u4} β δ p))) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (DenseInducing.prod.{u2, u1, u4, u3} β α δ γ _inst_4 _inst_1 _inst_10 _inst_7 (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e) (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f) de df) (fun (p : Prod.{u2, u4} β δ) => coeFn.{max (succ u5) (succ u4), max (succ u4) (succ u5)} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (fun (_x : AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) => δ -> G) (AddMonoidHom.hasCoeToFun.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (coeFn.{max (succ (max u5 u4)) (succ u2), max (succ u2) (succ (max u5 u4))} (AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) (fun (_x : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) => β -> (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14)))))) (AddMonoidHom.hasCoeToFun.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) φ (Prod.fst.{u2, u4} β δ p)) (Prod.snd.{u2, u4} β δ p))))
-but is expected to have type
-  forall {α : Type.{u5}} {β : Type.{u2}} {γ : Type.{u4}} {δ : Type.{u1}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u5} α] [_inst_2 : AddCommGroup.{u5} α] [_inst_3 : TopologicalAddGroup.{u5} α _inst_1 (AddCommGroup.toAddGroup.{u5} α _inst_2)] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : AddCommGroup.{u2} β] [_inst_6 : TopologicalSpace.{u4} γ] [_inst_7 : AddCommGroup.{u4} γ] [_inst_8 : TopologicalAddGroup.{u4} γ _inst_6 (AddCommGroup.toAddGroup.{u4} γ _inst_7)] [_inst_9 : TopologicalSpace.{u1} δ] [_inst_10 : AddCommGroup.{u1} δ] [_inst_11 : UniformSpace.{u3} G] [_inst_12 : AddCommGroup.{u3} G] [_inst_13 : UniformAddGroup.{u3} G _inst_11 (AddCommGroup.toAddGroup.{u3} G _inst_12)] [_inst_14 : SeparatedSpace.{u3} G _inst_11] [_inst_15 : CompleteSpace.{u3} G _inst_11] {_inst_16 : AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))} (_inst_17 : DenseInducing.{u2, u5} β α _inst_4 _inst_1 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16)) {e : AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))} (de : DenseInducing.{u1, u4} δ γ _inst_9 _inst_6 (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (_x : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => γ) _x) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e)) {f : AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))}, (Continuous.{max u2 u1, u3} (Prod.{u2, u1} β δ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))) -> (Continuous.{max u5 u4, u3} (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.extend.{max u2 u1, max u5 u4, u3} (Prod.{u2, u1} β δ) (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (fun (p : Prod.{u2, u1} β δ) => Prod.mk.{u5, u4} α γ (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16 (Prod.fst.{u2, u1} β δ p)) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e (Prod.snd.{u2, u1} β δ p))) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.prod.{u5, u2, u4, u1} β α δ γ _inst_4 _inst_1 _inst_9 _inst_6 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e) _inst_17 de) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin DenseInducing.extend_Z_bilinₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
Diff
@@ -335,7 +335,7 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 lean 3 declaration is
   forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u2}} [_inst_5 : Group.{u2} γ] {u : UniformSpace.{u2} γ} [_inst_6 : UniformGroup.{u2} γ u _inst_5] {F : Type.{u3}} [_inst_7 : MonoidHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u2} β γ (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => β -> γ) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F β (fun (_x : β) => γ) (MulHomClass.toFunLike.{u3, u1, u2} F β γ (MulOneClass.toHasMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toHasMul.{u2} γ (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5))) _inst_7))) f) u) _inst_4
 but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
 Case conversion may be inaccurate. Consider using '#align uniform_group_comap uniformGroup_comapₓ'. -/
 @[to_additive]
 theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
@@ -557,7 +557,7 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
 Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_oneₓ'. -/
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group β] [UniformGroup β]
@@ -577,7 +577,7 @@ theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
 Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_oneₓ'. -/
 /-- A group homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) between
 two uniform groups is uniformly continuous provided that it is continuous at one. See also
@@ -595,7 +595,7 @@ theorem uniformContinuous_of_continuousAt_one {hom : Type _} [UniformSpace β] [
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_oneₓ'. -/
 @[to_additive]
 theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group β] [UniformGroup β]
@@ -608,7 +608,7 @@ theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} α _inst_2) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.setLike.{u1} α _inst_2)))) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) ((fun (a : Type.{u3}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{succ u3, max (succ u2) (succ u1)} a b] => self.0) hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (HasLiftT.mk.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (CoeTCₓ.coe.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHom.hasCoeT.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
 Case conversion may be inaccurate. Consider using '#align uniform_group.uniform_continuous_iff_open_ker UniformGroup.uniformContinuous_iff_open_kerₓ'. -/
 /-- A homomorphism from a uniform group to a discrete uniform group is continuous if and only if
 its kernel is open. -/
@@ -1117,7 +1117,7 @@ include de
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {hom : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : MonoidHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))] {e : hom}, (DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e)) -> (forall (x₀ : α), Filter.Tendsto.{u2, u2} (Prod.{u2, u2} β β) β (fun (t : Prod.{u2, u2} β β) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Prod.snd.{u2, u2} β β t) (Prod.fst.{u2, u2} β β t)) (Filter.comap.{u2, u1} (Prod.{u2, u2} β β) (Prod.{u1, u1} α α) (fun (p : Prod.{u2, u2} β β) => Prod.mk.{u1, u1} α α (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.fst.{u2, u2} β β p)) (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.snd.{u2, u2} β β p))) (nhds.{u1} (Prod.{u1, u1} α α) (Prod.topologicalSpace.{u1, u1} α α _inst_1 _inst_1) (Prod.mk.{u1, u1} α α x₀ x₀))) (nhds.{u2} β _inst_4 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
+  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
 Case conversion may be inaccurate. Consider using '#align tendsto_div_comap_self tendsto_div_comap_selfₓ'. -/
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
Diff
@@ -288,44 +288,44 @@ section LatticeOps
 
 variable [Group β]
 
-/- warning: uniform_group_Inf -> uniformGroup_infₛ is a dubious translation:
+/- warning: uniform_group_Inf -> uniformGroup_sInf is a dubious translation:
 lean 3 declaration is
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.Mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.hasMem.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.infₛ.{u1} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) us) _inst_4)
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.Mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.hasMem.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.sInf.{u1} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) us) _inst_4)
 but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.instMembershipSet.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.infₛ.{u1} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) us) _inst_4)
-Case conversion may be inaccurate. Consider using '#align uniform_group_Inf uniformGroup_infₛₓ'. -/
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.instMembershipSet.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.sInf.{u1} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) us) _inst_4)
+Case conversion may be inaccurate. Consider using '#align uniform_group_Inf uniformGroup_sInfₓ'. -/
 @[to_additive]
-theorem uniformGroup_infₛ {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
-    @UniformGroup β (infₛ us) _ :=
+theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
+    @UniformGroup β (sInf us) _ :=
   {
     uniformContinuous_div :=
-      uniformContinuous_infₛ_rng fun u hu =>
-        uniformContinuous_infₛ_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu)) }
-#align uniform_group_Inf uniformGroup_infₛ
-#align uniform_add_group_Inf uniformAddGroup_infₛ
+      uniformContinuous_sInf_rng fun u hu =>
+        uniformContinuous_sInf_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu)) }
+#align uniform_group_Inf uniformGroup_sInf
+#align uniform_add_group_Inf uniformAddGroup_sInf
 
-/- warning: uniform_group_infi -> uniformGroup_infᵢ is a dubious translation:
+/- warning: uniform_group_infi -> uniformGroup_iInf is a dubious translation:
 lean 3 declaration is
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (infᵢ.{u1, u2} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (iInf.{u1, u2} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
 but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (infᵢ.{u1, u2} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
-Case conversion may be inaccurate. Consider using '#align uniform_group_infi uniformGroup_infᵢₓ'. -/
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (iInf.{u1, u2} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
+Case conversion may be inaccurate. Consider using '#align uniform_group_infi uniformGroup_iInfₓ'. -/
 @[to_additive]
-theorem uniformGroup_infᵢ {ι : Sort _} {us' : ι → UniformSpace β}
+theorem uniformGroup_iInf {ι : Sort _} {us' : ι → UniformSpace β}
     (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ :=
   by
-  rw [← infₛ_range]
-  exact uniformGroup_infₛ (set.forall_range_iff.mpr h')
-#align uniform_group_infi uniformGroup_infᵢ
-#align uniform_add_group_infi uniformAddGroup_infᵢ
+  rw [← sInf_range]
+  exact uniformGroup_sInf (set.forall_range_iff.mpr h')
+#align uniform_group_infi uniformGroup_iInf
+#align uniform_add_group_infi uniformAddGroup_iInf
 
 #print uniformGroup_inf /-
 @[to_additive]
 theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β u₁ _)
     (h₂ : @UniformGroup β u₂ _) : @UniformGroup β (u₁ ⊓ u₂) _ :=
   by
-  rw [inf_eq_infᵢ]
-  refine' uniformGroup_infᵢ fun b => _
+  rw [inf_eq_iInf]
+  refine' uniformGroup_iInf fun b => _
   cases b <;> assumption
 #align uniform_group_inf uniformGroup_inf
 #align uniform_add_group_inf uniformAddGroup_inf
@@ -689,19 +689,19 @@ theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : Cau
 #align cauchy_seq.inv CauchySeq.inv
 #align cauchy_seq.neg CauchySeq.neg
 
-/- warning: totally_bounded_iff_subset_finite_Union_nhds_one -> totallyBounded_iff_subset_finite_unionᵢ_nhds_one is a dubious translation:
+/- warning: totally_bounded_iff_subset_finite_Union_nhds_one -> totallyBounded_iff_subset_finite_iUnion_nhds_one is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.unionᵢ.{u1, succ u1} α α (fun (y : α) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) => SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) => SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) s (Set.unionᵢ.{u1, succ u1} α α (fun (y : α) => Set.unionᵢ.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) => HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
-Case conversion may be inaccurate. Consider using '#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_unionᵢ_nhds_oneₓ'. -/
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) s (Set.iUnion.{u1, succ u1} α α (fun (y : α) => Set.iUnion.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) => HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
+Case conversion may be inaccurate. Consider using '#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_iUnion_nhds_oneₓ'. -/
 @[to_additive]
-theorem totallyBounded_iff_subset_finite_unionᵢ_nhds_one {s : Set α} :
+theorem totallyBounded_iff_subset_finite_iUnion_nhds_one {s : Set α} :
     TotallyBounded s ↔ ∀ U ∈ 𝓝 (1 : α), ∃ t : Set α, t.Finite ∧ s ⊆ ⋃ y ∈ t, y • U :=
   (𝓝 (1 : α)).basis_sets.uniformity_of_nhds_one_inv_mul_swapped.totallyBounded_iff.trans <| by
     simp [← preimage_smul_inv, preimage]
-#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_unionᵢ_nhds_one
-#align totally_bounded_iff_subset_finite_Union_nhds_zero totallyBounded_iff_subset_finite_unionᵢ_nhds_zero
+#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_iUnion_nhds_one
+#align totally_bounded_iff_subset_finite_Union_nhds_zero totallyBounded_iff_subset_finite_iUnion_nhds_zero
 
 section UniformConvergence
 
Diff
@@ -1423,7 +1423,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     ⟨↑x₀,
       tendsto_nhds_of_cauchySeq_of_subseq hx
         (strictMono_nat_of_lt_succ fun n => (hφ (n + 1)).1).tendsto_atTop _⟩
-  convert ((continuous_coinduced_rng : Continuous (coe : G → G ⧸ N)).Tendsto x₀).comp hx₀
+  convert((continuous_coinduced_rng : Continuous (coe : G → G ⧸ N)).Tendsto x₀).comp hx₀
   exact funext fun n => (x' n).snd
 #align quotient_group.complete_space' QuotientGroup.completeSpace'
 #align quotient_add_group.complete_space' QuotientAddGroup.completeSpace'
Diff
@@ -335,7 +335,7 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 lean 3 declaration is
   forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u2}} [_inst_5 : Group.{u2} γ] {u : UniformSpace.{u2} γ} [_inst_6 : UniformGroup.{u2} γ u _inst_5] {F : Type.{u3}} [_inst_7 : MonoidHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u2} β γ (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => β -> γ) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F β (fun (_x : β) => γ) (MulHomClass.toFunLike.{u3, u1, u2} F β γ (MulOneClass.toHasMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toHasMul.{u2} γ (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5))) _inst_7))) f) u) _inst_4
 but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
 Case conversion may be inaccurate. Consider using '#align uniform_group_comap uniformGroup_comapₓ'. -/
 @[to_additive]
 theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
@@ -557,7 +557,7 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
 Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_oneₓ'. -/
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group β] [UniformGroup β]
@@ -577,7 +577,7 @@ theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
 Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_oneₓ'. -/
 /-- A group homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) between
 two uniform groups is uniformly continuous provided that it is continuous at one. See also
@@ -595,7 +595,7 @@ theorem uniformContinuous_of_continuousAt_one {hom : Type _} [UniformSpace β] [
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_oneₓ'. -/
 @[to_additive]
 theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group β] [UniformGroup β]
@@ -608,7 +608,7 @@ theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} α _inst_2) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.setLike.{u1} α _inst_2)))) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) ((fun (a : Type.{u3}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{succ u3, max (succ u2) (succ u1)} a b] => self.0) hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (HasLiftT.mk.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (CoeTCₓ.coe.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHom.hasCoeT.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
 Case conversion may be inaccurate. Consider using '#align uniform_group.uniform_continuous_iff_open_ker UniformGroup.uniformContinuous_iff_open_kerₓ'. -/
 /-- A homomorphism from a uniform group to a discrete uniform group is continuous if and only if
 its kernel is open. -/
@@ -1117,7 +1117,7 @@ include de
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {hom : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : MonoidHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))] {e : hom}, (DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e)) -> (forall (x₀ : α), Filter.Tendsto.{u2, u2} (Prod.{u2, u2} β β) β (fun (t : Prod.{u2, u2} β β) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Prod.snd.{u2, u2} β β t) (Prod.fst.{u2, u2} β β t)) (Filter.comap.{u2, u1} (Prod.{u2, u2} β β) (Prod.{u1, u1} α α) (fun (p : Prod.{u2, u2} β β) => Prod.mk.{u1, u1} α α (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.fst.{u2, u2} β β p)) (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.snd.{u2, u2} β β p))) (nhds.{u1} (Prod.{u1, u1} α α) (Prod.topologicalSpace.{u1, u1} α α _inst_1 _inst_1) (Prod.mk.{u1, u1} α α x₀ x₀))) (nhds.{u2} β _inst_4 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
+  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
 Case conversion may be inaccurate. Consider using '#align tendsto_div_comap_self tendsto_div_comap_selfₓ'. -/
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
@@ -1278,7 +1278,7 @@ open DenseInducing
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} {G : Type.{u5}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : AddCommGroup.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_1 (AddCommGroup.toAddGroup.{u1} α _inst_2)] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : AddCommGroup.{u2} β] [_inst_6 : TopologicalAddGroup.{u2} β _inst_4 (AddCommGroup.toAddGroup.{u2} β _inst_5)] [_inst_7 : TopologicalSpace.{u3} γ] [_inst_8 : AddCommGroup.{u3} γ] [_inst_9 : TopologicalAddGroup.{u3} γ _inst_7 (AddCommGroup.toAddGroup.{u3} γ _inst_8)] [_inst_10 : TopologicalSpace.{u4} δ] [_inst_11 : AddCommGroup.{u4} δ] [_inst_12 : TopologicalAddGroup.{u4} δ _inst_10 (AddCommGroup.toAddGroup.{u4} δ _inst_11)] [_inst_13 : UniformSpace.{u5} G] [_inst_14 : AddCommGroup.{u5} G] [_inst_15 : UniformAddGroup.{u5} G _inst_13 (AddCommGroup.toAddGroup.{u5} G _inst_14)] [_inst_16 : SeparatedSpace.{u5} G _inst_13] [_inst_17 : CompleteSpace.{u5} G _inst_13] {e : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))} (de : DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e)) {f : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))} (df : DenseInducing.{u4, u3} δ γ _inst_10 _inst_7 (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f)) {φ : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))}, (Continuous.{max u2 u4, u5} (Prod.{u2, u4} β δ) G (Prod.topologicalSpace.{u2, u4} β δ _inst_4 _inst_10) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (fun (p : Prod.{u2, u4} β δ) => coeFn.{max (succ u5) (succ u4), max (succ u4) (succ u5)} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (fun (_x : AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) => δ -> G) (AddMonoidHom.hasCoeToFun.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (coeFn.{max (succ (max u5 u4)) (succ u2), max (succ u2) (succ (max u5 u4))} (AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) (fun (_x : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) => β -> (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14)))))) (AddMonoidHom.hasCoeToFun.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) φ (Prod.fst.{u2, u4} β δ p)) (Prod.snd.{u2, u4} β δ p))) -> (Continuous.{max u1 u3, u5} (Prod.{u1, u3} α γ) G (Prod.topologicalSpace.{u1, u3} α γ _inst_1 _inst_7) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (DenseInducing.extend.{max u2 u4, max u1 u3, u5} (Prod.{u2, u4} β δ) (Prod.{u1, u3} α γ) G (Prod.topologicalSpace.{u2, u4} β δ _inst_4 _inst_10) (Prod.topologicalSpace.{u1, u3} α γ _inst_1 _inst_7) (fun (p : Prod.{u2, u4} β δ) => Prod.mk.{u1, u3} α γ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e (Prod.fst.{u2, u4} β δ p)) (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f (Prod.snd.{u2, u4} β δ p))) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (DenseInducing.prod.{u2, u1, u4, u3} β α δ γ _inst_4 _inst_1 _inst_10 _inst_7 (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e) (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f) de df) (fun (p : Prod.{u2, u4} β δ) => coeFn.{max (succ u5) (succ u4), max (succ u4) (succ u5)} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (fun (_x : AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) => δ -> G) (AddMonoidHom.hasCoeToFun.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (coeFn.{max (succ (max u5 u4)) (succ u2), max (succ u2) (succ (max u5 u4))} (AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) (fun (_x : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) => β -> (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14)))))) (AddMonoidHom.hasCoeToFun.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) φ (Prod.fst.{u2, u4} β δ p)) (Prod.snd.{u2, u4} β δ p))))
 but is expected to have type
-  forall {α : Type.{u5}} {β : Type.{u2}} {γ : Type.{u4}} {δ : Type.{u1}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u5} α] [_inst_2 : AddCommGroup.{u5} α] [_inst_3 : TopologicalAddGroup.{u5} α _inst_1 (AddCommGroup.toAddGroup.{u5} α _inst_2)] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : AddCommGroup.{u2} β] [_inst_6 : TopologicalSpace.{u4} γ] [_inst_7 : AddCommGroup.{u4} γ] [_inst_8 : TopologicalAddGroup.{u4} γ _inst_6 (AddCommGroup.toAddGroup.{u4} γ _inst_7)] [_inst_9 : TopologicalSpace.{u1} δ] [_inst_10 : AddCommGroup.{u1} δ] [_inst_11 : UniformSpace.{u3} G] [_inst_12 : AddCommGroup.{u3} G] [_inst_13 : UniformAddGroup.{u3} G _inst_11 (AddCommGroup.toAddGroup.{u3} G _inst_12)] [_inst_14 : SeparatedSpace.{u3} G _inst_11] [_inst_15 : CompleteSpace.{u3} G _inst_11] {_inst_16 : AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))} (_inst_17 : DenseInducing.{u2, u5} β α _inst_4 _inst_1 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16)) {e : AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))} (de : DenseInducing.{u1, u4} δ γ _inst_9 _inst_6 (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (_x : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => γ) _x) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e)) {f : AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))}, (Continuous.{max u2 u1, u3} (Prod.{u2, u1} β δ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))) -> (Continuous.{max u5 u4, u3} (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.extend.{max u2 u1, max u5 u4, u3} (Prod.{u2, u1} β δ) (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (fun (p : Prod.{u2, u1} β δ) => Prod.mk.{u5, u4} α γ (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16 (Prod.fst.{u2, u1} β δ p)) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e (Prod.snd.{u2, u1} β δ p))) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.prod.{u5, u2, u4, u1} β α δ γ _inst_4 _inst_1 _inst_9 _inst_6 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e) _inst_17 de) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))))
+  forall {α : Type.{u5}} {β : Type.{u2}} {γ : Type.{u4}} {δ : Type.{u1}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u5} α] [_inst_2 : AddCommGroup.{u5} α] [_inst_3 : TopologicalAddGroup.{u5} α _inst_1 (AddCommGroup.toAddGroup.{u5} α _inst_2)] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : AddCommGroup.{u2} β] [_inst_6 : TopologicalSpace.{u4} γ] [_inst_7 : AddCommGroup.{u4} γ] [_inst_8 : TopologicalAddGroup.{u4} γ _inst_6 (AddCommGroup.toAddGroup.{u4} γ _inst_7)] [_inst_9 : TopologicalSpace.{u1} δ] [_inst_10 : AddCommGroup.{u1} δ] [_inst_11 : UniformSpace.{u3} G] [_inst_12 : AddCommGroup.{u3} G] [_inst_13 : UniformAddGroup.{u3} G _inst_11 (AddCommGroup.toAddGroup.{u3} G _inst_12)] [_inst_14 : SeparatedSpace.{u3} G _inst_11] [_inst_15 : CompleteSpace.{u3} G _inst_11] {_inst_16 : AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))} (_inst_17 : DenseInducing.{u2, u5} β α _inst_4 _inst_1 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16)) {e : AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))} (de : DenseInducing.{u1, u4} δ γ _inst_9 _inst_6 (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (_x : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => γ) _x) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e)) {f : AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))}, (Continuous.{max u2 u1, u3} (Prod.{u2, u1} β δ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))) -> (Continuous.{max u5 u4, u3} (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.extend.{max u2 u1, max u5 u4, u3} (Prod.{u2, u1} β δ) (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (fun (p : Prod.{u2, u1} β δ) => Prod.mk.{u5, u4} α γ (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16 (Prod.fst.{u2, u1} β δ p)) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e (Prod.snd.{u2, u1} β δ p))) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.prod.{u5, u2, u4, u1} β α δ γ _inst_4 _inst_1 _inst_9 _inst_6 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e) _inst_17 de) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))))
 Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin DenseInducing.extend_Z_bilinₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
Diff
@@ -335,7 +335,7 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 lean 3 declaration is
   forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u2}} [_inst_5 : Group.{u2} γ] {u : UniformSpace.{u2} γ} [_inst_6 : UniformGroup.{u2} γ u _inst_5] {F : Type.{u3}} [_inst_7 : MonoidHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u2} β γ (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => β -> γ) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F β (fun (_x : β) => γ) (MulHomClass.toFunLike.{u3, u1, u2} F β γ (MulOneClass.toHasMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toHasMul.{u2} γ (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5))) _inst_7))) f) u) _inst_4
 but is expected to have type
-  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
 Case conversion may be inaccurate. Consider using '#align uniform_group_comap uniformGroup_comapₓ'. -/
 @[to_additive]
 theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
@@ -557,7 +557,7 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
 Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_oneₓ'. -/
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group β] [UniformGroup β]
@@ -577,7 +577,7 @@ theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
 Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_oneₓ'. -/
 /-- A group homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) between
 two uniform groups is uniformly continuous provided that it is continuous at one. See also
@@ -595,7 +595,7 @@ theorem uniformContinuous_of_continuousAt_one {hom : Type _} [UniformSpace β] [
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_oneₓ'. -/
 @[to_additive]
 theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group β] [UniformGroup β]
@@ -608,7 +608,7 @@ theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} α _inst_2) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.setLike.{u1} α _inst_2)))) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) ((fun (a : Type.{u3}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{succ u3, max (succ u2) (succ u1)} a b] => self.0) hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (HasLiftT.mk.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (CoeTCₓ.coe.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHom.hasCoeT.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f))))
 but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
 Case conversion may be inaccurate. Consider using '#align uniform_group.uniform_continuous_iff_open_ker UniformGroup.uniformContinuous_iff_open_kerₓ'. -/
 /-- A homomorphism from a uniform group to a discrete uniform group is continuous if and only if
 its kernel is open. -/
@@ -1117,7 +1117,7 @@ include de
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {hom : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : MonoidHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))] {e : hom}, (DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e)) -> (forall (x₀ : α), Filter.Tendsto.{u2, u2} (Prod.{u2, u2} β β) β (fun (t : Prod.{u2, u2} β β) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Prod.snd.{u2, u2} β β t) (Prod.fst.{u2, u2} β β t)) (Filter.comap.{u2, u1} (Prod.{u2, u2} β β) (Prod.{u1, u1} α α) (fun (p : Prod.{u2, u2} β β) => Prod.mk.{u1, u1} α α (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.fst.{u2, u2} β β p)) (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.snd.{u2, u2} β β p))) (nhds.{u1} (Prod.{u1, u1} α α) (Prod.topologicalSpace.{u1, u1} α α _inst_1 _inst_1) (Prod.mk.{u1, u1} α α x₀ x₀))) (nhds.{u2} β _inst_4 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))))))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
+  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
 Case conversion may be inaccurate. Consider using '#align tendsto_div_comap_self tendsto_div_comap_selfₓ'. -/
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Johannes Hölzl
 
 ! This file was ported from Lean 3 source module topology.algebra.uniform_group
-! leanprover-community/mathlib commit bcfa726826abd57587355b4b5b7e78ad6527b7e4
+! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.Tactic.Abel
 /-!
 # Uniform structure on topological groups
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines uniform groups and its additive counterpart. These typeclasses should be
 preferred over using `[topological_space α] [topological_group α]` since every topological
 group naturally induces a uniform structure.
Diff
@@ -1173,7 +1173,7 @@ include W'_nhd
 
 /- warning: dense_inducing.extend_Z_bilin_aux clashes with [anonymous] -> [anonymous]
 Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin_aux [anonymous]ₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
 #print [anonymous] /-
 private theorem [anonymous] (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
@@ -1197,10 +1197,10 @@ private theorem [anonymous] (x₀ : α) (y₁ : δ) :
 
 /- warning: dense_inducing.extend_Z_bilin_key clashes with [anonymous] -> [anonymous]
 Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin_key [anonymous]ₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
 #print [anonymous] /-
 private theorem [anonymous] (x₀ : α) (y₀ : γ) :
     ∃ U ∈ comap e (𝓝 x₀),
Diff
@@ -49,19 +49,29 @@ open Filter Set
 
 variable {α : Type _} {β : Type _}
 
+#print UniformGroup /-
 /-- A uniform group is a group in which multiplication and inversion are uniformly continuous. -/
 class UniformGroup (α : Type _) [UniformSpace α] [Group α] : Prop where
   uniformContinuous_div : UniformContinuous fun p : α × α => p.1 / p.2
 #align uniform_group UniformGroup
+-/
 
+#print UniformAddGroup /-
 /-- A uniform additive group is an additive group in which addition
   and negation are uniformly continuous.-/
 class UniformAddGroup (α : Type _) [UniformSpace α] [AddGroup α] : Prop where
   uniformContinuous_sub : UniformContinuous fun p : α × α => p.1 - p.2
 #align uniform_add_group UniformAddGroup
+-/
 
 attribute [to_additive] UniformGroup
 
+/- warning: uniform_group.mk' -> UniformGroup.mk' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α], (UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.uniformSpace.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))) -> (UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (p : α) => Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) p)) -> (UniformGroup.{u1} α _inst_1 _inst_2)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α], (UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (instUniformSpaceProd.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))) -> (UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (p : α) => Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) p)) -> (UniformGroup.{u1} α _inst_1 _inst_2)
+Case conversion may be inaccurate. Consider using '#align uniform_group.mk' UniformGroup.mk'ₓ'. -/
 @[to_additive]
 theorem UniformGroup.mk' {α} [UniformSpace α] [Group α]
     (h₁ : UniformContinuous fun p : α × α => p.1 * p.2) (h₂ : UniformContinuous fun p : α => p⁻¹) :
@@ -74,12 +84,24 @@ theorem UniformGroup.mk' {α} [UniformSpace α] [Group α]
 
 variable [UniformSpace α] [Group α] [UniformGroup α]
 
+/- warning: uniform_continuous_div -> uniformContinuous_div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.uniformSpace.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (instUniformSpaceProd.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
+Case conversion may be inaccurate. Consider using '#align uniform_continuous_div uniformContinuous_divₓ'. -/
 @[to_additive]
 theorem uniformContinuous_div : UniformContinuous fun p : α × α => p.1 / p.2 :=
   UniformGroup.uniformContinuous_div
 #align uniform_continuous_div uniformContinuous_div
 #align uniform_continuous_sub uniformContinuous_sub
 
+/- warning: uniform_continuous.div -> UniformContinuous.div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (f x) (g x)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (f x) (g x)))
+Case conversion may be inaccurate. Consider using '#align uniform_continuous.div UniformContinuous.divₓ'. -/
 @[to_additive]
 theorem UniformContinuous.div [UniformSpace β] {f : β → α} {g : β → α} (hf : UniformContinuous f)
     (hg : UniformContinuous g) : UniformContinuous fun x => f x / g x :=
@@ -87,6 +109,12 @@ theorem UniformContinuous.div [UniformSpace β] {f : β → α} {g : β → α}
 #align uniform_continuous.div UniformContinuous.div
 #align uniform_continuous.sub UniformContinuous.sub
 
+/- warning: uniform_continuous.inv -> UniformContinuous.inv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (f x)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (f x)))
+Case conversion may be inaccurate. Consider using '#align uniform_continuous.inv UniformContinuous.invₓ'. -/
 @[to_additive]
 theorem UniformContinuous.inv [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     UniformContinuous fun x => (f x)⁻¹ :=
@@ -96,12 +124,24 @@ theorem UniformContinuous.inv [UniformSpace β] {f : β → α} (hf : UniformCon
 #align uniform_continuous.inv UniformContinuous.inv
 #align uniform_continuous.neg UniformContinuous.neg
 
+/- warning: uniform_continuous_inv -> uniformContinuous_inv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) x)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) x)
+Case conversion may be inaccurate. Consider using '#align uniform_continuous_inv uniformContinuous_invₓ'. -/
 @[to_additive]
 theorem uniformContinuous_inv : UniformContinuous fun x : α => x⁻¹ :=
   uniformContinuous_id.inv
 #align uniform_continuous_inv uniformContinuous_inv
 #align uniform_continuous_neg uniformContinuous_neg
 
+/- warning: uniform_continuous.mul -> UniformContinuous.mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (f x) (g x)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] {f : β -> α} {g : β -> α}, (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 f) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 g) -> (UniformContinuous.{u2, u1} β α _inst_4 _inst_1 (fun (x : β) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (f x) (g x)))
+Case conversion may be inaccurate. Consider using '#align uniform_continuous.mul UniformContinuous.mulₓ'. -/
 @[to_additive]
 theorem UniformContinuous.mul [UniformSpace β] {f : β → α} {g : β → α} (hf : UniformContinuous f)
     (hg : UniformContinuous g) : UniformContinuous fun x => f x * g x :=
@@ -111,12 +151,19 @@ theorem UniformContinuous.mul [UniformSpace β] {f : β → α} {g : β → α}
 #align uniform_continuous.mul UniformContinuous.mul
 #align uniform_continuous.add UniformContinuous.add
 
+/- warning: uniform_continuous_mul -> uniformContinuous_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.uniformSpace.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], UniformContinuous.{u1, u1} (Prod.{u1, u1} α α) α (instUniformSpaceProd.{u1, u1} α α _inst_1 _inst_1) _inst_1 (fun (p : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
+Case conversion may be inaccurate. Consider using '#align uniform_continuous_mul uniformContinuous_mulₓ'. -/
 @[to_additive]
 theorem uniformContinuous_mul : UniformContinuous fun p : α × α => p.1 * p.2 :=
   uniformContinuous_fst.mul uniformContinuous_snd
 #align uniform_continuous_mul uniformContinuous_mul
 #align uniform_continuous_add uniformContinuous_add
 
+#print UniformContinuous.pow_const /-
 @[to_additive UniformContinuous.const_nsmul]
 theorem UniformContinuous.pow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℕ, UniformContinuous fun x => f x ^ n
@@ -128,13 +175,17 @@ theorem UniformContinuous.pow_const [UniformSpace β] {f : β → α} (hf : Unif
     exact hf.mul (UniformContinuous.pow_const n)
 #align uniform_continuous.pow_const UniformContinuous.pow_const
 #align uniform_continuous.const_nsmul UniformContinuous.const_nsmul
+-/
 
+#print uniformContinuous_pow_const /-
 @[to_additive uniformContinuous_const_nsmul]
 theorem uniformContinuous_pow_const (n : ℕ) : UniformContinuous fun x : α => x ^ n :=
   uniformContinuous_id.pow_const n
 #align uniform_continuous_pow_const uniformContinuous_pow_const
 #align uniform_continuous_const_nsmul uniformContinuous_const_nsmul
+-/
 
+#print UniformContinuous.zpow_const /-
 @[to_additive UniformContinuous.const_zsmul]
 theorem UniformContinuous.zpow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℤ, UniformContinuous fun x => f x ^ n
@@ -146,20 +197,25 @@ theorem UniformContinuous.zpow_const [UniformSpace β] {f : β → α} (hf : Uni
     exact (hf.pow_const _).inv
 #align uniform_continuous.zpow_const UniformContinuous.zpow_const
 #align uniform_continuous.const_zsmul UniformContinuous.const_zsmul
+-/
 
+#print uniformContinuous_zpow_const /-
 @[to_additive uniformContinuous_const_zsmul]
 theorem uniformContinuous_zpow_const (n : ℤ) : UniformContinuous fun x : α => x ^ n :=
   uniformContinuous_id.zpow_const n
 #align uniform_continuous_zpow_const uniformContinuous_zpow_const
 #align uniform_continuous_const_zsmul uniformContinuous_const_zsmul
+-/
 
+#print UniformGroup.to_topologicalGroup /-
 @[to_additive]
 instance (priority := 10) UniformGroup.to_topologicalGroup : TopologicalGroup α
     where
   continuous_mul := uniformContinuous_mul.Continuous
   continuous_inv := uniformContinuous_inv.Continuous
 #align uniform_group.to_topological_group UniformGroup.to_topologicalGroup
-#align uniform_add_group.to_topological_add_group UniformAddGroup.to_topological_add_group
+#align uniform_add_group.to_topological_add_group UniformAddGroup.to_topologicalAddGroup
+-/
 
 @[to_additive]
 instance [UniformSpace β] [Group β] [UniformGroup β] : UniformGroup (α × β) :=
@@ -168,6 +224,12 @@ instance [UniformSpace β] [Group β] [UniformGroup β] : UniformGroup (α × β
       ((uniformContinuous_snd.comp uniformContinuous_fst).div
         (uniformContinuous_snd.comp uniformContinuous_snd))⟩
 
+/- warning: uniformity_translate_mul -> uniformity_translate_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.map.{u1, u1} (Prod.{u1, u1} α α) (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Prod.mk.{u1, u1} α α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α x) a) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.snd.{u1, u1} α α x) a)) (uniformity.{u1} α _inst_1)) (uniformity.{u1} α _inst_1)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.map.{u1, u1} (Prod.{u1, u1} α α) (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Prod.mk.{u1, u1} α α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.fst.{u1, u1} α α x) a) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Prod.snd.{u1, u1} α α x) a)) (uniformity.{u1} α _inst_1)) (uniformity.{u1} α _inst_1)
+Case conversion may be inaccurate. Consider using '#align uniformity_translate_mul uniformity_translate_mulₓ'. -/
 @[to_additive]
 theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (x.1 * a, x.2 * a)) = 𝓤 α :=
   le_antisymm (uniformContinuous_id.mul uniformContinuous_const)
@@ -182,6 +244,12 @@ theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (
 #align uniformity_translate_mul uniformity_translate_mul
 #align uniformity_translate_add uniformity_translate_add
 
+/- warning: uniform_embedding_translate_mul -> uniformEmbedding_translate_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), UniformEmbedding.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x a)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (a : α), UniformEmbedding.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x a)
+Case conversion may be inaccurate. Consider using '#align uniform_embedding_translate_mul uniformEmbedding_translate_mulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Tactic/Lean3.lean:132:4: warning: unsupported: rw with cfg: { occs := occurrences.pos[occurrences.pos] «expr[ ,]»([1]) } -/
 @[to_additive]
 theorem uniformEmbedding_translate_mul (a : α) : UniformEmbedding fun x : α => x * a :=
@@ -217,6 +285,12 @@ section LatticeOps
 
 variable [Group β]
 
+/- warning: uniform_group_Inf -> uniformGroup_infₛ is a dubious translation:
+lean 3 declaration is
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.Mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.hasMem.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.infₛ.{u1} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) us) _inst_4)
+but is expected to have type
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {us : Set.{u1} (UniformSpace.{u1} β)}, (forall (u : UniformSpace.{u1} β), (Membership.mem.{u1, u1} (UniformSpace.{u1} β) (Set.{u1} (UniformSpace.{u1} β)) (Set.instMembershipSet.{u1} (UniformSpace.{u1} β)) u us) -> (UniformGroup.{u1} β u _inst_4)) -> (UniformGroup.{u1} β (InfSet.infₛ.{u1} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) us) _inst_4)
+Case conversion may be inaccurate. Consider using '#align uniform_group_Inf uniformGroup_infₛₓ'. -/
 @[to_additive]
 theorem uniformGroup_infₛ {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
     @UniformGroup β (infₛ us) _ :=
@@ -225,8 +299,14 @@ theorem uniformGroup_infₛ {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @Uni
       uniformContinuous_infₛ_rng fun u hu =>
         uniformContinuous_infₛ_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu)) }
 #align uniform_group_Inf uniformGroup_infₛ
-#align uniform_add_group_Inf uniform_add_group_infₛ
-
+#align uniform_add_group_Inf uniformAddGroup_infₛ
+
+/- warning: uniform_group_infi -> uniformGroup_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (infᵢ.{u1, u2} (UniformSpace.{u1} β) (UniformSpace.hasInf.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
+but is expected to have type
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {ι : Sort.{u2}} {us' : ι -> (UniformSpace.{u1} β)}, (forall (i : ι), UniformGroup.{u1} β (us' i) _inst_4) -> (UniformGroup.{u1} β (infᵢ.{u1, u2} (UniformSpace.{u1} β) (instInfSetUniformSpace.{u1} β) ι (fun (i : ι) => us' i)) _inst_4)
+Case conversion may be inaccurate. Consider using '#align uniform_group_infi uniformGroup_infᵢₓ'. -/
 @[to_additive]
 theorem uniformGroup_infᵢ {ι : Sort _} {us' : ι → UniformSpace β}
     (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ :=
@@ -234,8 +314,9 @@ theorem uniformGroup_infᵢ {ι : Sort _} {us' : ι → UniformSpace β}
   rw [← infₛ_range]
   exact uniformGroup_infₛ (set.forall_range_iff.mpr h')
 #align uniform_group_infi uniformGroup_infᵢ
-#align uniform_add_group_infi uniform_add_group_infᵢ
+#align uniform_add_group_infi uniformAddGroup_infᵢ
 
+#print uniformGroup_inf /-
 @[to_additive]
 theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β u₁ _)
     (h₂ : @UniformGroup β u₂ _) : @UniformGroup β (u₁ ⊓ u₂) _ :=
@@ -244,8 +325,15 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
   refine' uniformGroup_infᵢ fun b => _
   cases b <;> assumption
 #align uniform_group_inf uniformGroup_inf
-#align uniform_add_group_inf uniform_add_group_inf
+#align uniform_add_group_inf uniformAddGroup_inf
+-/
 
+/- warning: uniform_group_comap -> uniformGroup_comap is a dubious translation:
+lean 3 declaration is
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u2}} [_inst_5 : Group.{u2} γ] {u : UniformSpace.{u2} γ} [_inst_6 : UniformGroup.{u2} γ u _inst_5] {F : Type.{u3}} [_inst_7 : MonoidHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u2} β γ (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => β -> γ) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F β (fun (_x : β) => γ) (MulHomClass.toFunLike.{u3, u1, u2} F β γ (MulOneClass.toHasMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toHasMul.{u2} γ (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u2} γ (DivInvMonoid.toMonoid.{u2} γ (Group.toDivInvMonoid.{u2} γ _inst_5))) _inst_7))) f) u) _inst_4
+but is expected to have type
+  forall {β : Type.{u1}} [_inst_4 : Group.{u1} β] {γ : Type.{u3}} [_inst_5 : Group.{u3} γ] {u : UniformSpace.{u3} γ} [_inst_6 : UniformGroup.{u3} γ u _inst_5] {F : Type.{u2}} [_inst_7 : MonoidHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))] (f : F), UniformGroup.{u1} β (UniformSpace.comap.{u1, u3} β γ (FunLike.coe.{succ u2, succ u1, succ u3} F β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => γ) _x) (MulHomClass.toFunLike.{u2, u1, u3} F β γ (MulOneClass.toMul.{u1} β (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4)))) (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5)))) (MonoidHomClass.toMulHomClass.{u2, u1, u3} F β γ (Monoid.toMulOneClass.{u1} β (DivInvMonoid.toMonoid.{u1} β (Group.toDivInvMonoid.{u1} β _inst_4))) (Monoid.toMulOneClass.{u3} γ (DivInvMonoid.toMonoid.{u3} γ (Group.toDivInvMonoid.{u3} γ _inst_5))) _inst_7)) f) u) _inst_4
+Case conversion may be inaccurate. Consider using '#align uniform_group_comap uniformGroup_comapₓ'. -/
 @[to_additive]
 theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
     [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
@@ -258,7 +346,7 @@ theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [Unifo
       exact
         uniform_continuous_div.comp (uniform_continuous_comap.prod_map uniformContinuous_comap) }
 #align uniform_group_comap uniformGroup_comap
-#align uniform_add_group_comap uniform_add_group_comap
+#align uniform_add_group_comap uniformAddGroup_comap
 
 end LatticeOps
 
@@ -266,6 +354,12 @@ section
 
 variable (α)
 
+/- warning: uniformity_eq_comap_nhds_one -> uniformity_eq_comap_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_nhds_one uniformity_eq_comap_nhds_oneₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one : 𝓤 α = comap (fun x : α × α => x.2 / x.1) (𝓝 (1 : α)) :=
   by
@@ -284,6 +378,12 @@ theorem uniformity_eq_comap_nhds_one : 𝓤 α = comap (fun x : α × α => x.2
 #align uniformity_eq_comap_nhds_one uniformity_eq_comap_nhds_one
 #align uniformity_eq_comap_nhds_zero uniformity_eq_comap_nhds_zero
 
+/- warning: uniformity_eq_comap_nhds_one_swapped -> uniformity_eq_comap_nhds_one_swapped is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_nhds_one_swapped uniformity_eq_comap_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one_swapped :
     𝓤 α = comap (fun x : α × α => x.1 / x.2) (𝓝 (1 : α)) :=
@@ -293,6 +393,12 @@ theorem uniformity_eq_comap_nhds_one_swapped :
 #align uniformity_eq_comap_nhds_one_swapped uniformity_eq_comap_nhds_one_swapped
 #align uniformity_eq_comap_nhds_zero_swapped uniformity_eq_comap_nhds_zero_swapped
 
+/- warning: uniform_group.ext -> UniformGroup.ext is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4)))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4))))))))) -> (Eq.{succ u1} (UniformSpace.{u1} G) u v)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4)))))))) -> (Eq.{succ u1} (UniformSpace.{u1} G) u v)
+Case conversion may be inaccurate. Consider using '#align uniform_group.ext UniformGroup.extₓ'. -/
 @[to_additive]
 theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @UniformGroup G u _)
     (hv : @UniformGroup G v _)
@@ -302,6 +408,12 @@ theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @Un
 #align uniform_group.ext UniformGroup.ext
 #align uniform_add_group.ext UniformAddGroup.ext
 
+/- warning: uniform_group.ext_iff -> UniformGroup.ext_iff is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Iff (Eq.{succ u1} (UniformSpace.{u1} G) u v) (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4)))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_4))))))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_4 : Group.{u1} G] {u : UniformSpace.{u1} G} {v : UniformSpace.{u1} G}, (UniformGroup.{u1} G u _inst_4) -> (UniformGroup.{u1} G v _inst_4) -> (Iff (Eq.{succ u1} (UniformSpace.{u1} G) u v) (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G u) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4))))))) (nhds.{u1} G (UniformSpace.toTopologicalSpace.{u1} G v) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_4)))))))))
+Case conversion may be inaccurate. Consider using '#align uniform_group.ext_iff UniformGroup.ext_iffₓ'. -/
 @[to_additive]
 theorem UniformGroup.ext_iff {G : Type _} [Group G] {u v : UniformSpace G}
     (hu : @UniformGroup G u _) (hv : @UniformGroup G v _) :
@@ -312,6 +424,12 @@ theorem UniformGroup.ext_iff {G : Type _} [Group G] {u v : UniformSpace G}
 
 variable {α}
 
+/- warning: uniform_group.uniformity_countably_generated -> UniformGroup.uniformity_countably_generated is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : Filter.IsCountablyGenerated.{u1} α (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))], Filter.IsCountablyGenerated.{u1} (Prod.{u1, u1} α α) (uniformity.{u1} α _inst_1)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : Filter.IsCountablyGenerated.{u1} α (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))], Filter.IsCountablyGenerated.{u1} (Prod.{u1, u1} α α) (uniformity.{u1} α _inst_1)
+Case conversion may be inaccurate. Consider using '#align uniform_group.uniformity_countably_generated UniformGroup.uniformity_countably_generatedₓ'. -/
 @[to_additive]
 theorem UniformGroup.uniformity_countably_generated [(𝓝 (1 : α)).IsCountablyGenerated] :
     (𝓤 α).IsCountablyGenerated :=
@@ -323,6 +441,12 @@ theorem UniformGroup.uniformity_countably_generated [(𝓝 (1 : α)).IsCountably
 
 open MulOpposite
 
+/- warning: uniformity_eq_comap_inv_mul_nhds_one -> uniformity_eq_comap_inv_mul_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_inv_mul_nhds_one uniformity_eq_comap_inv_mul_nhds_oneₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_inv_mul_nhds_one :
     𝓤 α = comap (fun x : α × α => x.1⁻¹ * x.2) (𝓝 (1 : α)) :=
@@ -333,6 +457,12 @@ theorem uniformity_eq_comap_inv_mul_nhds_one :
 #align uniformity_eq_comap_inv_mul_nhds_one uniformity_eq_comap_inv_mul_nhds_one
 #align uniformity_eq_comap_neg_add_nhds_zero uniformity_eq_comap_neg_add_nhds_zero
 
+/- warning: uniformity_eq_comap_inv_mul_nhds_one_swapped -> uniformity_eq_comap_inv_mul_nhds_one_swapped is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} α α)) (uniformity.{u1} α _inst_1) (Filter.comap.{u1, u1} (Prod.{u1, u1} α α) α (fun (x : Prod.{u1, u1} α α) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_inv_mul_nhds_one_swapped uniformity_eq_comap_inv_mul_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_inv_mul_nhds_one_swapped :
     𝓤 α = comap (fun x : α × α => x.2⁻¹ * x.1) (𝓝 (1 : α)) :=
@@ -344,6 +474,12 @@ theorem uniformity_eq_comap_inv_mul_nhds_one_swapped :
 
 end
 
+/- warning: filter.has_basis.uniformity_of_nhds_one -> Filter.HasBasis.uniformity_of_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (U i))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.snd.{u1, u1} α α x) (Prod.fst.{u1, u1} α α x)) (U i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2 / x.1 ∈ U i } :=
@@ -353,6 +489,12 @@ theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι 
 #align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_one
 #align filter.has_basis.uniformity_of_nhds_zero Filter.HasBasis.uniformity_of_nhds_zero
 
+/- warning: filter.has_basis.uniformity_of_nhds_one_inv_mul -> Filter.HasBasis.uniformity_of_nhds_one_inv_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (U i))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.fst.{u1, u1} α α x)) (Prod.snd.{u1, u1} α α x)) (U i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mulₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1⁻¹ * x.2 ∈ U i } :=
@@ -362,6 +504,12 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mul
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add Filter.HasBasis.uniformity_of_nhds_zero_neg_add
 
+/- warning: filter.has_basis.uniformity_of_nhds_one_swapped -> Filter.HasBasis.uniformity_of_nhds_one_swapped is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (U i))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Prod.fst.{u1, u1} α α x) (Prod.snd.{u1, u1} α α x)) (U i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swappedₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1 / x.2 ∈ U i } :=
@@ -371,6 +519,12 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U
 #align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_swapped Filter.HasBasis.uniformity_of_nhds_zero_swapped
 
+/- warning: filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped -> Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (U i))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {U : ι -> (Set.{u1} α)}, (Filter.HasBasis.{u1, u2} α ι (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) p U) -> (Filter.HasBasis.{u1, u2} (Prod.{u1, u1} α α) ι (uniformity.{u1} α _inst_1) p (fun (i : ι) => setOf.{u1} (Prod.{u1, u1} α α) (fun (x : Prod.{u1, u1} α α) => Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))) (Prod.snd.{u1, u1} α α x)) (Prod.fst.{u1, u1} α α x)) (U i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swappedₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι → Prop} {U : ι → Set α}
     (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2⁻¹ * x.1 ∈ U i } :=
@@ -380,6 +534,12 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι →
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add_swapped Filter.HasBasis.uniformity_of_nhds_zero_neg_add_swapped
 
+/- warning: group_separation_rel -> group_separationRel is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (x : α) (y : α), Iff (Membership.Mem.{u1, u1} (Prod.{u1, u1} α α) (Set.{u1} (Prod.{u1, u1} α α)) (Set.hasMem.{u1} (Prod.{u1, u1} α α)) (Prod.mk.{u1, u1} α α x y) (separationRel.{u1} α _inst_1)) (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) x y) (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] (x : α) (y : α), Iff (Membership.mem.{u1, u1} (Prod.{u1, u1} α α) (Set.{u1} (Prod.{u1, u1} α α)) (Set.instMembershipSet.{u1} (Prod.{u1, u1} α α)) (Prod.mk.{u1, u1} α α x y) (separationRel.{u1} α _inst_1)) (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} α α α (instHDiv.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) x y) (closure.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align group_separation_rel group_separationRelₓ'. -/
 @[to_additive]
 theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y ∈ closure ({1} : Set α) :=
   have : Embedding fun a => a * (y / x) := (uniformEmbedding_translate_mul (y / x)).Embedding
@@ -388,8 +548,14 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
     rw [this.closure_eq_preimage_closure_image, uniformity_eq_comap_nhds_one α, sInter_comap_sets]
     simp [mem_closure_iff_nhds, inter_singleton_nonempty, sub_eq_add_neg, add_assoc]
 #align group_separation_rel group_separationRel
-#align add_group_separation_rel add_group_separationRel
-
+#align add_group_separation_rel addGroup_separationRel
+
+/- warning: uniform_continuous_of_tendsto_one -> uniformContinuous_of_tendsto_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] {f : hom}, (Filter.Tendsto.{u1, u2} α β (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (OfNat.ofNat.{u2} β 1 (One.toOfNat1.{u2} β (InvOneClass.toOne.{u2} β (DivInvOneMonoid.toInvOneClass.{u2} β (DivisionMonoid.toDivInvOneMonoid.{u2} β (Group.toDivisionMonoid.{u2} β _inst_5)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_oneₓ'. -/
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group β] [UniformGroup β]
     [MonoidHomClass hom α β] {f : hom} (h : Tendsto f (𝓝 1) (𝓝 1)) : UniformContinuous f :=
@@ -402,8 +568,14 @@ theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group
     tendsto_comap_iff, this]
   exact tendsto.comp h tendsto_comap
 #align uniform_continuous_of_tendsto_one uniformContinuous_of_tendsto_one
-#align uniform_continuous_of_tendsto_zero uniform_continuous_of_tendsto_zero
-
+#align uniform_continuous_of_tendsto_zero uniformContinuous_of_tendsto_zero
+
+/- warning: uniform_continuous_of_continuous_at_one -> uniformContinuous_of_continuousAt_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7))) f))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] [_inst_7 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))] (f : hom), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) _inst_7)) f))
+Case conversion may be inaccurate. Consider using '#align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_oneₓ'. -/
 /-- A group homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) between
 two uniform groups is uniformly continuous provided that it is continuous at one. See also
 `continuous_of_continuous_at_one`. -/
@@ -414,8 +586,14 @@ theorem uniformContinuous_of_continuousAt_one {hom : Type _} [UniformSpace β] [
     UniformContinuous f :=
   uniformContinuous_of_tendsto_one (by simpa using hf.tendsto)
 #align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_one
-#align uniform_continuous_of_continuous_at_zero uniform_continuous_of_continuous_at_zero
-
+#align uniform_continuous_of_continuous_at_zero uniformContinuous_of_continuousAt_zero
+
+/- warning: monoid_hom.uniform_continuous_of_continuous_at_one -> MonoidHom.uniformContinuous_of_continuousAt_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (fun (_x : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) => α -> β) (MonoidHom.hasCoeToFun.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) f))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] [_inst_4 : UniformSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : UniformGroup.{u2} β _inst_4 _inst_5] (f : MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))), (ContinuousAt.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (UniformSpace.toTopologicalSpace.{u2} β _inst_4) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))))) -> (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))) f))
+Case conversion may be inaccurate. Consider using '#align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_oneₓ'. -/
 @[to_additive]
 theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group β] [UniformGroup β]
     (f : α →* β) (hf : ContinuousAt f 1) : UniformContinuous f :=
@@ -423,6 +601,12 @@ theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group
 #align monoid_hom.uniform_continuous_of_continuous_at_one MonoidHom.uniformContinuous_of_continuousAt_one
 #align add_monoid_hom.uniform_continuous_of_continuous_at_zero AddMonoidHom.uniformContinuous_of_continuousAt_zero
 
+/- warning: uniform_group.uniform_continuous_iff_open_ker -> UniformGroup.uniformContinuous_iff_open_ker is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => α -> β) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => β) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} α _inst_2) (Set.{u1} α) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} α _inst_2) (Set.{u1} α) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.setLike.{u1} α _inst_2)))) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) ((fun (a : Type.{u3}) (b : Sort.{max (succ u2) (succ u1)}) [self : HasLiftT.{succ u3, max (succ u2) (succ u1)} a b] => self.0) hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (HasLiftT.mk.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (CoeTCₓ.coe.{succ u3, max (succ u2) (succ u1)} hom (MonoidHom.{u1, u2} α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHom.hasCoeT.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8))) f))))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {hom : Type.{u3}} [_inst_4 : UniformSpace.{u2} β] [_inst_5 : DiscreteTopology.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_4)] [_inst_6 : Group.{u2} β] [_inst_7 : UniformGroup.{u2} β _inst_4 _inst_6] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))] {f : hom}, Iff (UniformContinuous.{u1, u2} α β _inst_1 _inst_4 (FunLike.coe.{succ u3, succ u1, succ u2} hom α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : α) => β) _x) (MulHomClass.toFunLike.{u3, u1, u2} hom α β (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MulOneClass.toMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6)))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom α β (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8)) f)) (IsOpen.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (SetLike.coe.{u1, u1} (Subgroup.{u1} α _inst_2) α (Subgroup.instSetLikeSubgroup.{u1} α _inst_2) (MonoidHom.ker.{u1, u2} α _inst_2 β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) (MonoidHomClass.toMonoidHom.{u1, u2, u3} α β hom (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_6))) _inst_8 f))))
+Case conversion may be inaccurate. Consider using '#align uniform_group.uniform_continuous_iff_open_ker UniformGroup.uniformContinuous_iff_open_kerₓ'. -/
 /-- A homomorphism from a uniform group to a discrete uniform group is continuous if and only if
 its kernel is open. -/
 @[to_additive
@@ -437,17 +621,25 @@ theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type _} [UniformSpace
     rw [ContinuousAt, nhds_discrete β, map_one, tendsto_pure]
     exact hf.mem_nhds (map_one f)
 #align uniform_group.uniform_continuous_iff_open_ker UniformGroup.uniformContinuous_iff_open_ker
-#align uniform_add_group.uniform_continuous_iff_open_ker UniformAddGroup.uniform_continuous_iff_open_ker
+#align uniform_add_group.uniform_continuous_iff_open_ker UniformAddGroup.uniformContinuous_iff_open_ker
 
+#print uniformContinuous_monoidHom_of_continuous /-
 @[to_additive]
-theorem uniformContinuous_monoid_hom_of_continuous {hom : Type _} [UniformSpace β] [Group β]
+theorem uniformContinuous_monoidHom_of_continuous {hom : Type _} [UniformSpace β] [Group β]
     [UniformGroup β] [MonoidHomClass hom α β] {f : hom} (h : Continuous f) : UniformContinuous f :=
   uniformContinuous_of_tendsto_one <|
     suffices Tendsto f (𝓝 1) (𝓝 (f 1)) by rwa [map_one] at this
     h.Tendsto 1
-#align uniform_continuous_monoid_hom_of_continuous uniformContinuous_monoid_hom_of_continuous
-#align uniform_continuous_add_monoid_hom_of_continuous uniform_continuous_add_monoid_hom_of_continuous
+#align uniform_continuous_monoid_hom_of_continuous uniformContinuous_monoidHom_of_continuous
+#align uniform_continuous_add_monoid_hom_of_continuous uniformContinuous_addMonoidHom_of_continuous
+-/
 
+/- warning: cauchy_seq.mul -> CauchySeq.mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {v : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 v) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (ι -> α) (ι -> α) (ι -> α) (instHMul.{max u2 u1} (ι -> α) (Pi.instMul.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) u v))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {v : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 v) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (ι -> α) (ι -> α) (ι -> α) (instHMul.{max u1 u2} (ι -> α) (Pi.instMul.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) u v))
+Case conversion may be inaccurate. Consider using '#align cauchy_seq.mul CauchySeq.mulₓ'. -/
 @[to_additive]
 theorem CauchySeq.mul {ι : Type _} [SemilatticeSup ι] {u v : ι → α} (hu : CauchySeq u)
     (hv : CauchySeq v) : CauchySeq (u * v) :=
@@ -455,6 +647,12 @@ theorem CauchySeq.mul {ι : Type _} [SemilatticeSup ι] {u v : ι → α} (hu :
 #align cauchy_seq.mul CauchySeq.mul
 #align cauchy_seq.add CauchySeq.add
 
+/- warning: cauchy_seq.mul_const -> CauchySeq.mul_const is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (u n) x))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) (u n) x))
+Case conversion may be inaccurate. Consider using '#align cauchy_seq.mul_const CauchySeq.mul_constₓ'. -/
 @[to_additive]
 theorem CauchySeq.mul_const {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => u n * x :=
@@ -462,6 +660,12 @@ theorem CauchySeq.mul_const {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x
 #align cauchy_seq.mul_const CauchySeq.mul_const
 #align cauchy_seq.add_const CauchySeq.add_const
 
+/- warning: cauchy_seq.const_mul -> CauchySeq.const_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x (u n)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α} {x : α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (fun (n : ι) => HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) x (u n)))
+Case conversion may be inaccurate. Consider using '#align cauchy_seq.const_mul CauchySeq.const_mulₓ'. -/
 @[to_additive]
 theorem CauchySeq.const_mul {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => x * u n :=
@@ -469,6 +673,12 @@ theorem CauchySeq.const_mul {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x
 #align cauchy_seq.const_mul CauchySeq.const_mul
 #align cauchy_seq.const_add CauchySeq.const_add
 
+/- warning: cauchy_seq.inv -> CauchySeq.inv is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (Inv.inv.{max u2 u1} (ι -> α) (Pi.instInv.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) u))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u2}} [_inst_4 : SemilatticeSup.{u2} ι] {u : ι -> α}, (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 u) -> (CauchySeq.{u1, u2} α ι _inst_1 _inst_4 (Inv.inv.{max u2 u1} (ι -> α) (Pi.instInv.{u2, u1} ι (fun (ᾰ : ι) => α) (fun (i : ι) => InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2))))) u))
+Case conversion may be inaccurate. Consider using '#align cauchy_seq.inv CauchySeq.invₓ'. -/
 @[to_additive]
 theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : CauchySeq u) :
     CauchySeq u⁻¹ :=
@@ -476,6 +686,12 @@ theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : Cau
 #align cauchy_seq.inv CauchySeq.inv
 #align cauchy_seq.neg CauchySeq.neg
 
+/- warning: totally_bounded_iff_subset_finite_Union_nhds_one -> totallyBounded_iff_subset_finite_unionᵢ_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (OfNat.mk.{u1} α 1 (One.one.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) s (Set.unionᵢ.{u1, succ u1} α α (fun (y : α) => Set.unionᵢ.{u1, 0} α (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) (fun (H : Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) => SMul.smul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, Iff (TotallyBounded.{u1} α _inst_1 s) (forall (U : Set.{u1} α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_1) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Set.Finite.{u1} α t) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) s (Set.unionᵢ.{u1, succ u1} α α (fun (y : α) => Set.unionᵢ.{u1, 0} α (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) (fun (H : Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) => HSMul.hSMul.{u1, u1, u1} α (Set.{u1} α) (Set.{u1} α) (instHSMul.{u1, u1} α (Set.{u1} α) (Set.smulSet.{u1, u1} α α (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) y U)))))))
+Case conversion may be inaccurate. Consider using '#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_unionᵢ_nhds_oneₓ'. -/
 @[to_additive]
 theorem totallyBounded_iff_subset_finite_unionᵢ_nhds_one {s : Set α} :
     TotallyBounded s ↔ ∀ U ∈ 𝓝 (1 : α), ∃ t : Set α, t.Finite ∧ s ⊆ ⋃ y ∈ t, y • U :=
@@ -488,6 +704,12 @@ section UniformConvergence
 
 variable {ι : Type _} {l : Filter ι} {l' : Filter β} {f f' : ι → β → α} {g g' : β → α} {s : Set β}
 
+/- warning: tendsto_uniformly_on_filter.mul -> TendstoUniformlyOnFilter.mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {l' : Filter.{u2} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u1} (β -> α) (Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) g g') l l')
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {l' : Filter.{u3} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u3} (β -> α) (Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))))) g g') l l')
+Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.mul TendstoUniformlyOnFilter.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
     (hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f * f') (g * g') l l' :=
@@ -496,6 +718,12 @@ theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
 #align tendsto_uniformly_on_filter.mul TendstoUniformlyOnFilter.mul
 #align tendsto_uniformly_on_filter.add TendstoUniformlyOnFilter.add
 
+/- warning: tendsto_uniformly_on_filter.div -> TendstoUniformlyOnFilter.div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {l' : Filter.{u2} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u1} (β -> α) (Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) g g') l l')
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {l' : Filter.{u3} β} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f g l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 f' g' l l') -> (TendstoUniformlyOnFilter.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u3} (β -> α) (Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) g g') l l')
+Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.div TendstoUniformlyOnFilter.divₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
     (hf' : TendstoUniformlyOnFilter f' g' l l') : TendstoUniformlyOnFilter (f / f') (g / g') l l' :=
@@ -504,6 +732,12 @@ theorem TendstoUniformlyOnFilter.div (hf : TendstoUniformlyOnFilter f g l l')
 #align tendsto_uniformly_on_filter.div TendstoUniformlyOnFilter.div
 #align tendsto_uniformly_on_filter.sub TendstoUniformlyOnFilter.sub
 
+/- warning: tendsto_uniformly_on.mul -> TendstoUniformlyOn.mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u2} β}, (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u1} (β -> α) (Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) g g') l s)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u3} β}, (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u3} (β -> α) (Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))))) g g') l s)
+Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on.mul TendstoUniformlyOn.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOn.mul (hf : TendstoUniformlyOn f g l s)
     (hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f * f') (g * g') l s := fun u hu =>
@@ -511,6 +745,12 @@ theorem TendstoUniformlyOn.mul (hf : TendstoUniformlyOn f g l s)
 #align tendsto_uniformly_on.mul TendstoUniformlyOn.mul
 #align tendsto_uniformly_on.add TendstoUniformlyOn.add
 
+/- warning: tendsto_uniformly_on.div -> TendstoUniformlyOn.div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u2} β}, (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u1} (β -> α) (Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) g g') l s)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α} {s : Set.{u3} β}, (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f g l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 f' g' l s) -> (TendstoUniformlyOn.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u3} (β -> α) (Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) g g') l s)
+Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on.div TendstoUniformlyOn.divₓ'. -/
 @[to_additive]
 theorem TendstoUniformlyOn.div (hf : TendstoUniformlyOn f g l s)
     (hf' : TendstoUniformlyOn f' g' l s) : TendstoUniformlyOn (f / f') (g / g') l s := fun u hu =>
@@ -518,6 +758,12 @@ theorem TendstoUniformlyOn.div (hf : TendstoUniformlyOn f g l s)
 #align tendsto_uniformly_on.div TendstoUniformlyOn.div
 #align tendsto_uniformly_on.sub TendstoUniformlyOn.sub
 
+/- warning: tendsto_uniformly.mul -> TendstoUniformly.mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f g l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u1} (β -> α) (Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) g g') l)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f g l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHMul.{max u2 u3} (β -> α) (Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))))) g g') l)
+Case conversion may be inaccurate. Consider using '#align tendsto_uniformly.mul TendstoUniformly.mulₓ'. -/
 @[to_additive]
 theorem TendstoUniformly.mul (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
     TendstoUniformly (f * f') (g * g') l := fun u hu =>
@@ -525,6 +771,12 @@ theorem TendstoUniformly.mul (hf : TendstoUniformly f g l) (hf' : TendstoUniform
 #align tendsto_uniformly.mul TendstoUniformly.mul
 #align tendsto_uniformly.add TendstoUniformly.add
 
+/- warning: tendsto_uniformly.div -> TendstoUniformly.div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f g l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u1, max u2 u1, max u2 u1} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u1} (β -> α) (Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) g g') l)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {g : β -> α} {g' : β -> α}, (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f g l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 f' g' l) -> (TendstoUniformly.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') (HDiv.hDiv.{max u2 u3, max u2 u3, max u2 u3} (β -> α) (β -> α) (β -> α) (instHDiv.{max u2 u3} (β -> α) (Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) g g') l)
+Case conversion may be inaccurate. Consider using '#align tendsto_uniformly.div TendstoUniformly.divₓ'. -/
 @[to_additive]
 theorem TendstoUniformly.div (hf : TendstoUniformly f g l) (hf' : TendstoUniformly f' g' l) :
     TendstoUniformly (f / f') (g / g') l := fun u hu =>
@@ -532,6 +784,12 @@ theorem TendstoUniformly.div (hf : TendstoUniformly f g l) (hf' : TendstoUniform
 #align tendsto_uniformly.div TendstoUniformly.div
 #align tendsto_uniformly.sub TendstoUniformly.sub
 
+/- warning: uniform_cauchy_seq_on.mul -> UniformCauchySeqOn.mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u2} β}, (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 (HMul.hMul.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max u3 u2 u1} (ι -> β -> α) (Pi.instMul.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))))) f f') l s)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u3} β}, (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 (HMul.hMul.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHMul.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instMul.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instMul.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))))) f f') l s)
+Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.mul UniformCauchySeqOn.mulₓ'. -/
 @[to_additive]
 theorem UniformCauchySeqOn.mul (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
     UniformCauchySeqOn (f * f') l s := fun u hu => by
@@ -539,6 +797,12 @@ theorem UniformCauchySeqOn.mul (hf : UniformCauchySeqOn f l s) (hf' : UniformCau
 #align uniform_cauchy_seq_on.mul UniformCauchySeqOn.mul
 #align uniform_cauchy_seq_on.add UniformCauchySeqOn.add
 
+/- warning: uniform_cauchy_seq_on.div -> UniformCauchySeqOn.div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : UniformGroup.{u1} α _inst_1 _inst_2] {ι : Type.{u3}} {l : Filter.{u3} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u2} β}, (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u2, u1, u3} β α ι _inst_1 (HDiv.hDiv.{max u3 u2 u1, max u3 u2 u1, max u3 u2 u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max u3 u2 u1} (ι -> β -> α) (Pi.instDiv.{u3, max u2 u1} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u2, u1} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) f f') l s)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : UniformSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : UniformGroup.{u2} α _inst_1 _inst_2] {ι : Type.{u1}} {l : Filter.{u1} ι} {f : ι -> β -> α} {f' : ι -> β -> α} {s : Set.{u3} β}, (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 f' l s) -> (UniformCauchySeqOn.{u3, u2, u1} β α ι _inst_1 (HDiv.hDiv.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (ι -> β -> α) (ι -> β -> α) (ι -> β -> α) (instHDiv.{max (max u2 u3) u1} (ι -> β -> α) (Pi.instDiv.{u1, max u2 u3} ι (fun (ᾰ : ι) => β -> α) (fun (i : ι) => Pi.instDiv.{u3, u2} β (fun (ᾰ : β) => α) (fun (i : β) => DivInvMonoid.toDiv.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))))) f f') l s)
+Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.div UniformCauchySeqOn.divₓ'. -/
 @[to_additive]
 theorem UniformCauchySeqOn.div (hf : UniformCauchySeqOn f l s) (hf' : UniformCauchySeqOn f' l s) :
     UniformCauchySeqOn (f / f') l s := fun u hu => by
@@ -556,6 +820,7 @@ open Filter
 
 variable (G : Type _) [Group G] [TopologicalSpace G] [TopologicalGroup G]
 
+#print TopologicalGroup.toUniformSpace /-
 /-- The right uniformity on a topological group (as opposed to the left uniformity).
 
 Warning: in general the right and left uniformities do not coincide and so one does not obtain a
@@ -611,25 +876,40 @@ def TopologicalGroup.toUniformSpace : UniformSpace G
       exact @h (a, x) hx rfl
 #align topological_group.to_uniform_space TopologicalGroup.toUniformSpace
 #align topological_add_group.to_uniform_space TopologicalAddGroup.toUniformSpace
+-/
 
 attribute [local instance] TopologicalGroup.toUniformSpace
 
+/- warning: uniformity_eq_comap_nhds_one' -> uniformity_eq_comap_nhds_one' is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} G G)) (uniformity.{u1} G (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3)) (Filter.comap.{u1, u1} (Prod.{u1, u1} G G) G (fun (p : Prod.{u1, u1} G G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Prod.snd.{u1, u1} G G p) (Prod.fst.{u1, u1} G G p)) (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))))))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1], Eq.{succ u1} (Filter.{u1} (Prod.{u1, u1} G G)) (uniformity.{u1} G (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3)) (Filter.comap.{u1, u1} (Prod.{u1, u1} G G) G (fun (p : Prod.{u1, u1} G G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (Prod.snd.{u1, u1} G G p) (Prod.fst.{u1, u1} G G p)) (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align uniformity_eq_comap_nhds_one' uniformity_eq_comap_nhds_one'ₓ'. -/
 @[to_additive]
 theorem uniformity_eq_comap_nhds_one' : 𝓤 G = comap (fun p : G × G => p.2 / p.1) (𝓝 (1 : G)) :=
   rfl
 #align uniformity_eq_comap_nhds_one' uniformity_eq_comap_nhds_one'
 #align uniformity_eq_comap_nhds_zero' uniformity_eq_comap_nhds_zero'
 
+#print topologicalGroup_is_uniform_of_compactSpace /-
 @[to_additive]
 theorem topologicalGroup_is_uniform_of_compactSpace [CompactSpace G] : UniformGroup G :=
   ⟨by
     apply CompactSpace.uniformContinuous_of_continuous
     exact continuous_div'⟩
 #align topological_group_is_uniform_of_compact_space topologicalGroup_is_uniform_of_compactSpace
-#align topological_add_group_is_uniform_of_compact_space topological_add_group_is_uniform_of_compactSpace
+#align topological_add_group_is_uniform_of_compact_space topologicalAddGroup_is_uniform_of_compactSpace
+-/
 
 variable {G}
 
+/- warning: subgroup.is_closed_of_discrete -> Subgroup.isClosed_of_discrete is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] [_inst_4 : T2Space.{u1} G _inst_2] {H : Subgroup.{u1} G _inst_1} [_inst_5 : DiscreteTopology.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_1) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) H) (Subtype.topologicalSpace.{u1} G (fun (x : G) => Membership.Mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)) x H) _inst_2)], IsClosed.{u1} G _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_1) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.setLike.{u1} G _inst_1)))) H)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] [_inst_4 : T2Space.{u1} G _inst_2] {H : Subgroup.{u1} G _inst_1} [_inst_5 : DiscreteTopology.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H)) (instTopologicalSpaceSubtype.{u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_1) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1)) x H) _inst_2)], IsClosed.{u1} G _inst_2 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_1) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_1) H)
+Case conversion may be inaccurate. Consider using '#align subgroup.is_closed_of_discrete Subgroup.isClosed_of_discreteₓ'. -/
 @[to_additive]
 instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTopology H] :
     IsClosed (H : Set G) :=
@@ -647,6 +927,12 @@ instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTop
 #align subgroup.is_closed_of_discrete Subgroup.isClosed_of_discrete
 #align add_subgroup.is_closed_of_discrete AddSubgroup.isClosed_of_discrete
 
+/- warning: topological_group.tendsto_uniformly_iff -> TopologicalGroup.tendstoUniformly_iff is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι), Iff (TendstoUniformly.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u) p))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι), Iff (TendstoUniformly.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u) p))
+Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_uniformly_iff TopologicalGroup.tendstoUniformly_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
     (p : Filter ι) :
@@ -657,6 +943,12 @@ theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α 
 #align topological_group.tendsto_uniformly_iff TopologicalGroup.tendstoUniformly_iff
 #align topological_add_group.tendsto_uniformly_iff TopologicalAddGroup.tendstoUniformly_iff
 
+/- warning: topological_group.tendsto_uniformly_on_iff -> TopologicalGroup.tendstoUniformlyOn_iff is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι) (s : Set.{u3} α), Iff (TendstoUniformlyOn.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p s) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) a s) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι) (s : Set.{u2} α), Iff (TendstoUniformlyOn.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) F f p s) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a s) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))
+Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_uniformly_on_iff TopologicalGroup.tendstoUniformlyOn_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
     (p : Filter ι) (s : Set α) :
@@ -667,6 +959,12 @@ theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α
 #align topological_group.tendsto_uniformly_on_iff TopologicalGroup.tendstoUniformlyOn_iff
 #align topological_add_group.tendsto_uniformly_on_iff TopologicalAddGroup.tendstoUniformlyOn_iff
 
+/- warning: topological_group.tendsto_locally_uniformly_iff -> TopologicalGroup.tendstoLocallyUniformly_iff is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} [_inst_4 : TopologicalSpace.{u3} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι), Iff (TendstoLocallyUniformly.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (forall (x : α), Exists.{succ u3} (Set.{u3} α) (fun (t : Set.{u3} α) => Exists.{0} (Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhds.{u3} α _inst_4 x)) (fun (H : Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhds.{u3} α _inst_4 x)) => Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) a t) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} [_inst_4 : TopologicalSpace.{u2} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι), Iff (TendstoLocallyUniformly.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (forall (x : α), Exists.{succ u2} (Set.{u2} α) (fun (t : Set.{u2} α) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t (nhds.{u2} α _inst_4 x)) (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a t) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p))))
+Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_locally_uniformly_iff TopologicalGroup.tendstoLocallyUniformly_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) :
@@ -678,6 +976,12 @@ theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [Topologic
 #align topological_group.tendsto_locally_uniformly_iff TopologicalGroup.tendstoLocallyUniformly_iff
 #align topological_add_group.tendsto_locally_uniformly_iff TopologicalAddGroup.tendstoLocallyUniformly_iff
 
+/- warning: topological_group.tendsto_locally_uniformly_on_iff -> TopologicalGroup.tendstoLocallyUniformlyOn_iff is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u2}} {α : Type.{u3}} [_inst_4 : TopologicalSpace.{u3} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u2} ι) (s : Set.{u3} α), Iff (TendstoLocallyUniformlyOn.{u3, u1, u2} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p s) (forall (u : Set.{u1} G), (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))))))) -> (forall (x : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) x s) -> (Exists.{succ u3} (Set.{u3} α) (fun (t : Set.{u3} α) => Exists.{0} (Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhdsWithin.{u3} α _inst_4 x s)) (fun (H : Membership.Mem.{u3, u3} (Set.{u3} α) (Filter.{u3} α) (Filter.hasMem.{u3} α) t (nhdsWithin.{u3} α _inst_4 x s)) => Filter.Eventually.{u2} ι (fun (i : ι) => forall (a : α), (Membership.Mem.{u3, u3} α (Set.{u3} α) (Set.hasMem.{u3} α) a t) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p)))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] {ι : Type.{u3}} {α : Type.{u2}} [_inst_4 : TopologicalSpace.{u2} α] (F : ι -> α -> G) (f : α -> G) (p : Filter.{u3} ι) (s : Set.{u2} α), Iff (TendstoLocallyUniformlyOn.{u2, u1, u3} α G ι (TopologicalGroup.toUniformSpace.{u1} G _inst_1 _inst_2 _inst_3) _inst_4 F f p s) (forall (u : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) u (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))))))) -> (forall (x : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Exists.{succ u2} (Set.{u2} α) (fun (t : Set.{u2} α) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) t (nhdsWithin.{u2} α _inst_4 x s)) (Filter.Eventually.{u3} ι (fun (i : ι) => forall (a : α), (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) a t) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (F i a) (f a)) u)) p)))))
+Case conversion may be inaccurate. Consider using '#align topological_group.tendsto_locally_uniformly_on_iff TopologicalGroup.tendstoLocallyUniformlyOn_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff {ι α : Type _} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) (s : Set α) :
@@ -705,8 +1009,9 @@ attribute [local instance] TopologicalGroup.toUniformSpace
 
 variable {G}
 
+#print comm_topologicalGroup_is_uniform /-
 @[to_additive]
-theorem topological_commGroup_is_uniform : UniformGroup G :=
+theorem comm_topologicalGroup_is_uniform : UniformGroup G :=
   by
   have :
     Tendsto
@@ -718,15 +1023,22 @@ theorem topological_commGroup_is_uniform : UniformGroup G :=
   rw [UniformContinuous, uniformity_prod_eq_prod, tendsto_map'_iff, uniformity_eq_comap_nhds_one' G,
     tendsto_comap_iff, prod_comap_comap_eq]
   simpa [(· ∘ ·), div_eq_mul_inv, mul_comm, mul_left_comm] using this
-#align topological_comm_group_is_uniform topological_commGroup_is_uniform
-#align topological_add_comm_group_is_uniform topological_add_commGroup_is_uniform
+#align topological_comm_group_is_uniform comm_topologicalGroup_is_uniform
+#align topological_add_comm_group_is_uniform comm_topologicalAddGroup_is_uniform
+-/
 
 open Set
 
+/- warning: topological_group.t2_space_iff_one_closed -> TopologicalGroup.t2Space_iff_one_closed is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], Iff (T2Space.{u1} G _inst_2) (IsClosed.{u1} G _inst_2 (Singleton.singleton.{u1, u1} G (Set.{u1} G) (Set.hasSingleton.{u1} G) (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1))))))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], Iff (T2Space.{u1} G _inst_2) (IsClosed.{u1} G _inst_2 (Singleton.singleton.{u1, u1} G (Set.{u1} G) (Set.instSingletonSet.{u1} G) (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_1)))))))))
+Case conversion may be inaccurate. Consider using '#align topological_group.t2_space_iff_one_closed TopologicalGroup.t2Space_iff_one_closedₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) :=
   by
-  haveI : UniformGroup G := topological_commGroup_is_uniform
+  haveI : UniformGroup G := comm_topologicalGroup_is_uniform
   rw [← separated_iff_t2, separatedSpace_iff, ← closure_eq_iff_isClosed]
   constructor <;> intro h
   · apply subset.antisymm
@@ -744,6 +1056,12 @@ theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} :
 #align topological_group.t2_space_iff_one_closed TopologicalGroup.t2Space_iff_one_closed
 #align topological_add_group.t2_space_iff_zero_closed TopologicalAddGroup.t2Space_iff_zero_closed
 
+/- warning: topological_group.t2_space_of_one_sep -> TopologicalGroup.t2Space_of_one_sep is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], (forall (x : G), (Ne.{succ u1} G x (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1))))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (U : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) U (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1)))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) U (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_1)))))))))) => Not (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) x U))))) -> (T2Space.{u1} G _inst_2)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : CommGroup.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 (CommGroup.toGroup.{u1} G _inst_1)], (forall (x : G), (Ne.{succ u1} G x (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_1)))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (U : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) U (nhds.{u1} G _inst_2 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (InvOneClass.toOne.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_1))))))))) (Not (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) x U))))) -> (T2Space.{u1} G _inst_2)
+Case conversion may be inaccurate. Consider using '#align topological_group.t2_space_of_one_sep TopologicalGroup.t2Space_of_one_sepₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U ∈ nhds (1 : G), x ∉ U) :
     T2Space G :=
@@ -764,6 +1082,7 @@ theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U 
 
 end
 
+#print UniformGroup.toUniformSpace_eq /-
 @[to_additive]
 theorem UniformGroup.toUniformSpace_eq {G : Type _} [u : UniformSpace G] [Group G]
     [UniformGroup G] : TopologicalGroup.toUniformSpace G = u :=
@@ -772,6 +1091,7 @@ theorem UniformGroup.toUniformSpace_eq {G : Type _} [u : UniformSpace G] [Group
   rw [uniformity_eq_comap_nhds_one' G, uniformity_eq_comap_nhds_one G]
 #align uniform_group.to_uniform_space_eq UniformGroup.toUniformSpace_eq
 #align uniform_add_group.to_uniform_space_eq UniformAddGroup.toUniformSpace_eq
+-/
 
 end TopologicalCommGroup
 
@@ -790,6 +1110,12 @@ variable [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
 
 include de
 
+/- warning: tendsto_div_comap_self -> tendsto_div_comap_self is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {hom : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : Group.{u2} β] [_inst_6 : MonoidHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))] {e : hom}, (DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e)) -> (forall (x₀ : α), Filter.Tendsto.{u2, u2} (Prod.{u2, u2} β β) β (fun (t : Prod.{u2, u2} β β) => HDiv.hDiv.{u2, u2, u2} β β β (instHDiv.{u2} β (DivInvMonoid.toHasDiv.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Prod.snd.{u2, u2} β β t) (Prod.fst.{u2, u2} β β t)) (Filter.comap.{u2, u1} (Prod.{u2, u2} β β) (Prod.{u1, u1} α α) (fun (p : Prod.{u2, u2} β β) => Prod.mk.{u1, u1} α α (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.fst.{u2, u2} β β p)) (coeFn.{succ u3, max (succ u2) (succ u1)} hom (fun (_x : hom) => β -> α) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} hom β (fun (_x : β) => α) (MulHomClass.toFunLike.{u3, u2, u1} hom β α (MulOneClass.toHasMul.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} hom β α (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5))) (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))) _inst_6))) e (Prod.snd.{u2, u2} β β p))) (nhds.{u1} (Prod.{u1, u1} α α) (Prod.topologicalSpace.{u1, u1} α α _inst_1 _inst_1) (Prod.mk.{u1, u1} α α x₀ x₀))) (nhds.{u2} β _inst_4 (OfNat.ofNat.{u2} β 1 (OfNat.mk.{u2} β 1 (One.one.{u2} β (MulOneClass.toHasOne.{u2} β (Monoid.toMulOneClass.{u2} β (DivInvMonoid.toMonoid.{u2} β (Group.toDivInvMonoid.{u2} β _inst_5)))))))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u3}} {hom : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u2} α] [_inst_3 : TopologicalGroup.{u2} α _inst_1 _inst_2] [_inst_4 : TopologicalSpace.{u3} β] [_inst_5 : Group.{u3} β] [_inst_6 : MonoidHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))] {e : hom}, (DenseInducing.{u3, u2} β α _inst_4 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e)) -> (forall (x₀ : α), Filter.Tendsto.{u3, u3} (Prod.{u3, u3} β β) β (fun (t : Prod.{u3, u3} β β) => HDiv.hDiv.{u3, u3, u3} β β β (instHDiv.{u3} β (DivInvMonoid.toDiv.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Prod.snd.{u3, u3} β β t) (Prod.fst.{u3, u3} β β t)) (Filter.comap.{u3, u2} (Prod.{u3, u3} β β) (Prod.{u2, u2} α α) (fun (p : Prod.{u3, u3} β β) => Prod.mk.{u2, u2} α α (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.fst.{u3, u3} β β p)) (FunLike.coe.{succ u1, succ u3, succ u2} hom β (fun (_x : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : β) => α) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom β α (MulOneClass.toMul.{u3} β (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5)))) (MulOneClass.toMul.{u2} α (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom β α (Monoid.toMulOneClass.{u3} β (DivInvMonoid.toMonoid.{u3} β (Group.toDivInvMonoid.{u3} β _inst_5))) (Monoid.toMulOneClass.{u2} α (DivInvMonoid.toMonoid.{u2} α (Group.toDivInvMonoid.{u2} α _inst_2))) _inst_6)) e (Prod.snd.{u3, u3} β β p))) (nhds.{u2} (Prod.{u2, u2} α α) (instTopologicalSpaceProd.{u2, u2} α α _inst_1 _inst_1) (Prod.mk.{u2, u2} α α x₀ x₀))) (nhds.{u3} β _inst_4 (OfNat.ofNat.{u3} β 1 (One.toOfNat1.{u3} β (InvOneClass.toOne.{u3} β (DivInvOneMonoid.toInvOneClass.{u3} β (DivisionMonoid.toDivInvOneMonoid.{u3} β (Group.toDivisionMonoid.{u3} β _inst_5))))))))
+Case conversion may be inaccurate. Consider using '#align tendsto_div_comap_self tendsto_div_comap_selfₓ'. -/
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
     Tendsto (fun t : β × β => t.2 / t.1) ((comap fun p : β × β => (e p.1, e p.2)) <| 𝓝 (x₀, x₀))
@@ -845,8 +1171,11 @@ variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
 include W'_nhd
 
+/- warning: dense_inducing.extend_Z_bilin_aux clashes with [anonymous] -> [anonymous]
+Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin_aux [anonymous]ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x x' «expr ∈ » U₂) -/
-private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
+#print [anonymous] /-
+private theorem [anonymous] (x₀ : α) (y₁ : δ) :
     ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂) (x') (_ : x' ∈ U₂), Φ (x' - x, y₁) ∈ W' :=
   by
   let Nx := 𝓝 x₀
@@ -863,13 +1192,17 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) :
   rw [tendsto_prod_self_iff] at lim
   simp_rw [ball_mem_comm]
   exact limUnder W' W'_nhd
-#align dense_inducing.extend_Z_bilin_aux dense_inducing.extend_Z_bilin_aux
+#align dense_inducing.extend_Z_bilin_aux [anonymous]
+-/
 
+/- warning: dense_inducing.extend_Z_bilin_key clashes with [anonymous] -> [anonymous]
+Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin_key [anonymous]ₓ'. -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x x' «expr ∈ » U₁) -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y y' «expr ∈ » V₁) -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (x x' «expr ∈ » U) -/
 /- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (y y' «expr ∈ » V) -/
-private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
+#print [anonymous] /-
+private theorem [anonymous] (x₀ : α) (y₀ : γ) :
     ∃ U ∈ comap e (𝓝 x₀),
       ∃ V ∈ comap f (𝓝 y₀),
         ∀ (x) (_ : x ∈ U) (x') (_ : x' ∈ U),
@@ -931,12 +1264,19 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) :
   have h₃ := HV y yV₂ y' y'V₂
   have h₄ := H x₁ x₁_in x xU₁ y yV₁ y' y'V₁
   exact W4 h₁ h₂ h₃ h₄
-#align dense_inducing.extend_Z_bilin_key dense_inducing.extend_Z_bilin_key
+#align dense_inducing.extend_Z_bilin_key [anonymous]
+-/
 
 omit W'_nhd
 
 open DenseInducing
 
+/- warning: dense_inducing.extend_Z_bilin -> DenseInducing.extend_Z_bilin is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {δ : Type.{u4}} {G : Type.{u5}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : AddCommGroup.{u1} α] [_inst_3 : TopologicalAddGroup.{u1} α _inst_1 (AddCommGroup.toAddGroup.{u1} α _inst_2)] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : AddCommGroup.{u2} β] [_inst_6 : TopologicalAddGroup.{u2} β _inst_4 (AddCommGroup.toAddGroup.{u2} β _inst_5)] [_inst_7 : TopologicalSpace.{u3} γ] [_inst_8 : AddCommGroup.{u3} γ] [_inst_9 : TopologicalAddGroup.{u3} γ _inst_7 (AddCommGroup.toAddGroup.{u3} γ _inst_8)] [_inst_10 : TopologicalSpace.{u4} δ] [_inst_11 : AddCommGroup.{u4} δ] [_inst_12 : TopologicalAddGroup.{u4} δ _inst_10 (AddCommGroup.toAddGroup.{u4} δ _inst_11)] [_inst_13 : UniformSpace.{u5} G] [_inst_14 : AddCommGroup.{u5} G] [_inst_15 : UniformAddGroup.{u5} G _inst_13 (AddCommGroup.toAddGroup.{u5} G _inst_14)] [_inst_16 : SeparatedSpace.{u5} G _inst_13] [_inst_17 : CompleteSpace.{u5} G _inst_13] {e : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))} (de : DenseInducing.{u2, u1} β α _inst_4 _inst_1 (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e)) {f : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))} (df : DenseInducing.{u4, u3} δ γ _inst_10 _inst_7 (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f)) {φ : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))}, (Continuous.{max u2 u4, u5} (Prod.{u2, u4} β δ) G (Prod.topologicalSpace.{u2, u4} β δ _inst_4 _inst_10) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (fun (p : Prod.{u2, u4} β δ) => coeFn.{max (succ u5) (succ u4), max (succ u4) (succ u5)} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (fun (_x : AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) => δ -> G) (AddMonoidHom.hasCoeToFun.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (coeFn.{max (succ (max u5 u4)) (succ u2), max (succ u2) (succ (max u5 u4))} (AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) (fun (_x : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) => β -> (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14)))))) (AddMonoidHom.hasCoeToFun.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) φ (Prod.fst.{u2, u4} β δ p)) (Prod.snd.{u2, u4} β δ p))) -> (Continuous.{max u1 u3, u5} (Prod.{u1, u3} α γ) G (Prod.topologicalSpace.{u1, u3} α γ _inst_1 _inst_7) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (DenseInducing.extend.{max u2 u4, max u1 u3, u5} (Prod.{u2, u4} β δ) (Prod.{u1, u3} α γ) G (Prod.topologicalSpace.{u2, u4} β δ _inst_4 _inst_10) (Prod.topologicalSpace.{u1, u3} α γ _inst_1 _inst_7) (fun (p : Prod.{u2, u4} β δ) => Prod.mk.{u1, u3} α γ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e (Prod.fst.{u2, u4} β δ p)) (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f (Prod.snd.{u2, u4} β δ p))) (UniformSpace.toTopologicalSpace.{u5} G _inst_13) (DenseInducing.prod.{u2, u1, u4, u3} β α δ γ _inst_4 _inst_1 _inst_10 _inst_7 (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) (fun (_x : AddMonoidHom.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) => β -> α) (AddMonoidHom.hasCoeToFun.{u2, u1} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u1} α (SubNegMonoid.toAddMonoid.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α _inst_2))))) e) (coeFn.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) (fun (_x : AddMonoidHom.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) => δ -> γ) (AddMonoidHom.hasCoeToFun.{u4, u3} δ γ (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u3} γ (SubNegMonoid.toAddMonoid.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_8))))) f) de df) (fun (p : Prod.{u2, u4} β δ) => coeFn.{max (succ u5) (succ u4), max (succ u4) (succ u5)} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (fun (_x : AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) => δ -> G) (AddMonoidHom.hasCoeToFun.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (coeFn.{max (succ (max u5 u4)) (succ u2), max (succ u2) (succ (max u5 u4))} (AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) (fun (_x : AddMonoidHom.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) => β -> (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14)))))) (AddMonoidHom.hasCoeToFun.{u2, max u5 u4} β (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (SubNegMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddGroup.toSubNegMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddCommGroup.toAddGroup.{max u5 u4} (AddMonoidHom.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) (AddMonoid.toAddZeroClass.{u5} G (SubNegMonoid.toAddMonoid.{u5} G (AddGroup.toSubNegMonoid.{u5} G (AddCommGroup.toAddGroup.{u5} G _inst_14))))) (AddMonoidHom.addCommGroup.{u4, u5} δ G (AddMonoid.toAddZeroClass.{u4} δ (SubNegMonoid.toAddMonoid.{u4} δ (AddGroup.toSubNegMonoid.{u4} δ (AddCommGroup.toAddGroup.{u4} δ _inst_11)))) _inst_14)))))) φ (Prod.fst.{u2, u4} β δ p)) (Prod.snd.{u2, u4} β δ p))))
+but is expected to have type
+  forall {α : Type.{u5}} {β : Type.{u2}} {γ : Type.{u4}} {δ : Type.{u1}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u5} α] [_inst_2 : AddCommGroup.{u5} α] [_inst_3 : TopologicalAddGroup.{u5} α _inst_1 (AddCommGroup.toAddGroup.{u5} α _inst_2)] [_inst_4 : TopologicalSpace.{u2} β] [_inst_5 : AddCommGroup.{u2} β] [_inst_6 : TopologicalSpace.{u4} γ] [_inst_7 : AddCommGroup.{u4} γ] [_inst_8 : TopologicalAddGroup.{u4} γ _inst_6 (AddCommGroup.toAddGroup.{u4} γ _inst_7)] [_inst_9 : TopologicalSpace.{u1} δ] [_inst_10 : AddCommGroup.{u1} δ] [_inst_11 : UniformSpace.{u3} G] [_inst_12 : AddCommGroup.{u3} G] [_inst_13 : UniformAddGroup.{u3} G _inst_11 (AddCommGroup.toAddGroup.{u3} G _inst_12)] [_inst_14 : SeparatedSpace.{u3} G _inst_11] [_inst_15 : CompleteSpace.{u3} G _inst_11] {_inst_16 : AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))} (_inst_17 : DenseInducing.{u2, u5} β α _inst_4 _inst_1 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16)) {e : AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))} (de : DenseInducing.{u1, u4} δ γ _inst_9 _inst_6 (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (_x : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => γ) _x) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e)) {f : AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))}, (Continuous.{max u2 u1, u3} (Prod.{u2, u1} β δ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))) -> (Continuous.{max u5 u4, u3} (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.extend.{max u2 u1, max u5 u4, u3} (Prod.{u2, u1} β δ) (Prod.{u5, u4} α γ) G (instTopologicalSpaceProd.{u2, u1} β δ _inst_4 _inst_9) (instTopologicalSpaceProd.{u5, u4} α γ _inst_1 _inst_6) (fun (p : Prod.{u2, u1} β δ) => Prod.mk.{u5, u4} α γ (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16 (Prod.fst.{u2, u1} β δ p)) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e (Prod.snd.{u2, u1} β δ p))) (UniformSpace.toTopologicalSpace.{u3} G _inst_11) (DenseInducing.prod.{u5, u2, u4, u1} β α δ γ _inst_4 _inst_1 _inst_9 _inst_6 (FunLike.coe.{max (succ u5) (succ u2), succ u2, succ u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => α) a) (AddHomClass.toFunLike.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{u5} α (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u5 u2, u2, u5} (AddMonoidHom.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))) β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u5} β α (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{u5} α (SubNegMonoid.toAddMonoid.{u5} α (AddGroup.toSubNegMonoid.{u5} α (AddCommGroup.toAddGroup.{u5} α _inst_2))))))) _inst_16) (FunLike.coe.{max (succ u4) (succ u1), succ u1, succ u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => γ) a) (AddHomClass.toFunLike.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) (AddMonoidHomClass.toAddHomClass.{max u4 u1, u1, u4} (AddMonoidHom.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))) δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7)))) (AddMonoidHom.addMonoidHomClass.{u1, u4} δ γ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u4} γ (SubNegMonoid.toAddMonoid.{u4} γ (AddGroup.toSubNegMonoid.{u4} γ (AddCommGroup.toAddGroup.{u4} γ _inst_7))))))) e) _inst_17 de) (fun (p : Prod.{u2, u1} β δ) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ (fun (a : δ) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : δ) => G) a) (AddHomClass.toFunLike.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddZeroClass.toAdd.{u1} δ (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10))))) (AddZeroClass.toAdd.{u3} G (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u1, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (Prod.fst.{u2, u1} β δ p)) δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12)))) (AddMonoidHom.addMonoidHomClass.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))))) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), succ u2, max (succ u1) (succ u3)} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (fun (a : β) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β) => AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) a) (AddHomClass.toFunLike.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddZeroClass.toAdd.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u3, u2, max u1 u3} (AddMonoidHom.{u2, max u3 u1} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))) β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12))))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u3} β (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (AddCommGroup.toAddGroup.{u2} β _inst_5)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (SubNegMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddGroup.toSubNegMonoid.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddCommGroup.toAddGroup.{max u1 u3} (AddMonoidHom.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) (AddMonoid.toAddZeroClass.{u3} G (SubNegMonoid.toAddMonoid.{u3} G (AddGroup.toSubNegMonoid.{u3} G (AddCommGroup.toAddGroup.{u3} G _inst_12))))) (AddMonoidHom.addCommGroup.{u1, u3} δ G (AddMonoid.toAddZeroClass.{u1} δ (SubNegMonoid.toAddMonoid.{u1} δ (AddGroup.toSubNegMonoid.{u1} δ (AddCommGroup.toAddGroup.{u1} δ _inst_10)))) _inst_12)))))))) f (Prod.fst.{u2, u1} β δ p)) (Prod.snd.{u2, u1} β δ p))))
+Case conversion may be inaccurate. Consider using '#align dense_inducing.extend_Z_bilin DenseInducing.extend_Z_bilinₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -992,6 +1332,7 @@ universe u
 
 open TopologicalSpace Classical
 
+#print QuotientGroup.completeSpace' /-
 /-- The quotient `G ⧸ N` of a complete first countable topological group `G` by a normal subgroup
 is itself complete. [N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]
 
@@ -1000,7 +1341,7 @@ explicitly provide it in order to consider completeness. See `quotient_group.com
 version in which `G` is already equipped with a uniform structure. -/
 @[to_additive
       "The quotient `G ⧸ N` of a complete first countable topological additive group\n`G` by a normal additive subgroup is itself complete. Consequently, quotients of Banach spaces by\nsubspaces are complete. [N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]\n\nBecause an additive topological group is not equipped with a `uniform_space` instance by default,\nwe must explicitly provide it in order to consider completeness. See\n`quotient_add_group.complete_space` for a version in which `G` is already equipped with a uniform\nstructure."]
-instance QuotientGroup.complete_space' (G : Type u) [Group G] [TopologicalSpace G]
+instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G]
     [TopologicalGroup G] [FirstCountableTopology G] (N : Subgroup G) [N.normal]
     [@CompleteSpace G (TopologicalGroup.toUniformSpace G)] :
     @CompleteSpace (G ⧸ N) (TopologicalGroup.toUniformSpace (G ⧸ N)) :=
@@ -1081,9 +1422,11 @@ instance QuotientGroup.complete_space' (G : Type u) [Group G] [TopologicalSpace
         (strictMono_nat_of_lt_succ fun n => (hφ (n + 1)).1).tendsto_atTop _⟩
   convert ((continuous_coinduced_rng : Continuous (coe : G → G ⧸ N)).Tendsto x₀).comp hx₀
   exact funext fun n => (x' n).snd
-#align quotient_group.complete_space' QuotientGroup.complete_space'
-#align quotient_add_group.complete_space' quotientAddGroup.complete_space'
+#align quotient_group.complete_space' QuotientGroup.completeSpace'
+#align quotient_add_group.complete_space' QuotientAddGroup.completeSpace'
+-/
 
+#print QuotientGroup.completeSpace /-
 /-- The quotient `G ⧸ N` of a complete first countable uniform group `G` by a normal subgroup
 is itself complete. In constrast to `quotient_group.complete_space'`, in this version `G` is
 already equipped with a uniform structure.
@@ -1102,7 +1445,8 @@ instance QuotientGroup.completeSpace (G : Type u) [Group G] [us : UniformSpace G
   rw [← @UniformGroup.toUniformSpace_eq _ us _ _] at hG
   infer_instance
 #align quotient_group.complete_space QuotientGroup.completeSpace
-#align quotient_add_group.complete_space quotientAddGroup.completeSpace
+#align quotient_add_group.complete_space QuotientAddGroup.completeSpace
+-/
 
 end CompleteQuotient
 

Changes in mathlib4

mathlib3
mathlib4
chore: adapt to multiple goal linter 3 (#12372)

A PR analogous to #12338 and #12361: reformatting proofs following the multiple goals linter of #12339.

Diff
@@ -186,8 +186,7 @@ theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (
 @[to_additive]
 theorem uniformEmbedding_translate_mul (a : α) : UniformEmbedding fun x : α => x * a :=
   { comap_uniformity := by
-      nth_rewrite 1 [← uniformity_translate_mul a, comap_map]
-      rfl
+      nth_rw 1 [← uniformity_translate_mul a, comap_map]
       rintro ⟨p₁, p₂⟩ ⟨q₁, q₂⟩
       simp only [Prod.mk.injEq, mul_left_inj, imp_self]
     inj := mul_left_injective a }
@@ -593,7 +592,7 @@ variable {G}
 instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTopology H] :
     IsClosed (H : Set G) := by
   obtain ⟨V, V_in, VH⟩ : ∃ (V : Set G), V ∈ 𝓝 (1 : G) ∧ V ∩ (H : Set G) = {1}
-  exact nhds_inter_eq_singleton_of_mem_discrete H.one_mem
+  · exact nhds_inter_eq_singleton_of_mem_discrete H.one_mem
   have : (fun p : G × G => p.2 / p.1) ⁻¹' V ∈ 𝓤 G := preimage_mem_comap V_in
   apply isClosed_of_spaced_out this
   intro h h_in h' h'_in
chore: remove more bex and ball from lemma names (#11615)

Follow-up to #10816.

Remaining places containing such lemmas are

  • Option.bex_ne_none and Option.ball_ne_none: defined in Lean core
  • Nat.decidableBallLT and Nat.decidableBallLE: defined in Lean core
  • bef_def is still used in a number of places and could be renamed
  • BAll.imp_{left,right}, BEx.imp_{left,right}, BEx.intro and BEx.elim

I only audited the first ~150 lemmas mentioning "ball"; too many lemmas named after Metric.ball/openBall/closedBall.

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

Diff
@@ -768,7 +768,7 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) : ∃ U₂ ∈ comap
     simpa using hφ.tendsto (0, y₁)
   have lim := lim2.comp lim1
   rw [tendsto_prod_self_iff] at lim
-  simp_rw [ball_mem_comm]
+  simp_rw [forall_mem_comm]
   exact lim W' W'_nhd
 #noalign dense_inducing.extend_Z_bilin_aux
 
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -54,7 +54,7 @@ class UniformGroup (α : Type*) [UniformSpace α] [Group α] : Prop where
 #align uniform_group UniformGroup
 
 /-- A uniform additive group is an additive group in which addition
-  and negation are uniformly continuous.-/
+  and negation are uniformly continuous. -/
 class UniformAddGroup (α : Type*) [UniformSpace α] [AddGroup α] : Prop where
   uniformContinuous_sub : UniformContinuous fun p : α × α => p.1 - p.2
 #align uniform_add_group UniformAddGroup
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : ∀ (n : ℕ) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -120,7 +120,7 @@ theorem UniformContinuous.pow_const [UniformSpace β] {f : β → α} (hf : Unif
     simp_rw [pow_zero]
     exact uniformContinuous_const
   | n + 1 => by
-    simp_rw [pow_succ]
+    simp_rw [pow_succ']
     exact hf.mul (hf.pow_const n)
 #align uniform_continuous.pow_const UniformContinuous.pow_const
 #align uniform_continuous.const_nsmul UniformContinuous.const_nsmul
chore: Rename mul-div cancellation lemmas (#11530)

Lemma names around cancellation of multiplication and division are a mess.

This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero lemma name, the Group lemma, the AddGroup lemma name).

| Statement | New name | Old name | |

Diff
@@ -918,7 +918,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     refine'
       ⟨y⁻¹ * g, by
         simpa only [div_eq_mul_inv, mul_inv_rev, inv_inv, mul_inv_cancel_left] using y_mem, _⟩
-    rw [QuotientGroup.mk_mul, QuotientGroup.mk_inv, hy, hg, inv_div, div_mul_cancel']
+    rw [QuotientGroup.mk_mul, QuotientGroup.mk_inv, hy, hg, inv_div, div_mul_cancel]
   /- Inductively construct a subsequence `φ : ℕ → ℕ` using `key₀` so that if `a b : ℕ` exceed
     `φ (n + 1)`, then we may find lifts whose quotients lie within `u n`. -/
   set φ : ℕ → ℕ := fun n => Nat.recOn n (choose <| key₀ 0 0) fun k yk => choose <| key₀ (k + 1) yk
refactor(UniformSpace): change the definition (#10901)
  • replace isOpen_uniformity with nhds_eq_comap_uniformity as I suggested in #2028
  • don't extend UniformSpace.Core so that we can drop refl, as it follows from nhds_eq_comap_uniformity;
  • drop UniformSpace.mk' - can't be a match_pattern anymore;
  • deprecate UniformSpace.ofNhdsEqComap.
Diff
@@ -558,7 +558,6 @@ commutative additive groups (see `comm_topologicalAddGroup_is_uniform`) and for
 additive groups (see `topologicalAddGroup_is_uniform_of_compactSpace`)."]
 def TopologicalGroup.toUniformSpace : UniformSpace G where
   uniformity := comap (fun p : G × G => p.2 / p.1) (𝓝 1)
-  refl := (Tendsto.mono_right (by simp) (pure_le_nhds _)).le_comap
   symm :=
     have : Tendsto (fun p : G × G ↦ (p.2 / p.1)⁻¹) (comap (fun p : G × G ↦ p.2 / p.1) (𝓝 1))
       (𝓝 1⁻¹) := tendsto_id.inv.comp tendsto_comap
@@ -568,8 +567,7 @@ def TopologicalGroup.toUniformSpace : UniformSpace G where
     refine mem_map.2 (mem_of_superset (mem_lift' <| preimage_mem_comap V_nhds) ?_)
     rintro ⟨x, y⟩ ⟨z, hz₁, hz₂⟩
     simpa using V_mul _ hz₂ _ hz₁
-  isOpen_uniformity S := by
-    simp only [isOpen_iff_mem_nhds, ← mem_comap_prod_mk, comap_comap, (· ∘ ·), nhds_translation_div]
+  nhds_eq_comap_uniformity _ := by simp only [comap_comap, (· ∘ ·), nhds_translation_div]
 #align topological_group.to_uniform_space TopologicalGroup.toUniformSpace
 #align topological_add_group.to_uniform_space TopologicalAddGroup.toUniformSpace
 
chore: Rename zpow_coe_nat to zpow_natCast (#11528)

... and add a deprecated alias for the old name. This is mostly just me discovering the power of F2

Diff
@@ -135,7 +135,7 @@ theorem uniformContinuous_pow_const (n : ℕ) : UniformContinuous fun x : α =>
 theorem UniformContinuous.zpow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℤ, UniformContinuous fun x => f x ^ n
   | (n : ℕ) => by
-    simp_rw [zpow_coe_nat]
+    simp_rw [zpow_natCast]
     exact hf.pow_const _
   | Int.negSucc n => by
     simp_rw [zpow_negSucc]
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -715,12 +715,10 @@ open Filter Set Function
 section
 
 variable {α : Type*} {β : Type*} {hom : Type*}
-
 variable [TopologicalSpace α] [Group α] [TopologicalGroup α]
 
 -- β is a dense subgroup of α, inclusion is denoted by e
 variable [TopologicalSpace β] [Group β]
-
 variable [FunLike hom β α] [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
 
 @[to_additive]
@@ -743,29 +741,19 @@ end
 namespace DenseInducing
 
 variable {α : Type*} {β : Type*} {γ : Type*} {δ : Type*}
-
 variable {G : Type*}
 
 -- β is a dense subgroup of α, inclusion is denoted by e
 -- δ is a dense subgroup of γ, inclusion is denoted by f
 variable [TopologicalSpace α] [AddCommGroup α] [TopologicalAddGroup α]
-
 variable [TopologicalSpace β] [AddCommGroup β] [TopologicalAddGroup β]
-
 variable [TopologicalSpace γ] [AddCommGroup γ] [TopologicalAddGroup γ]
-
 variable [TopologicalSpace δ] [AddCommGroup δ] [TopologicalAddGroup δ]
-
 variable [UniformSpace G] [AddCommGroup G] [UniformAddGroup G] [T0Space G] [CompleteSpace G]
-
 variable {e : β →+ α} (de : DenseInducing e)
-
 variable {f : δ →+ γ} (df : DenseInducing f)
-
 variable {φ : β →+ δ →+ G}
-
 variable (hφ : Continuous (fun p : β × δ => φ p.1 p.2))
-
 variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
 private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) : ∃ U₂ ∈ comap e (𝓝 x₀), ∀ x ∈ U₂, ∀ x' ∈ U₂,
refactor(UniformSpace): drop separationRel (#10644)

We had duplicated API between topological spaces and uniform spaces. In this PR I mostly deduplicate it with some exceptions:

  • SeparationQuotient.lift' and SeparationQuotient.map are leftovers from the old version that are designed to work with uniform spaces;
  • probably, some theorems/instances still assume UniformSpace when TopologicalSpace would work.

Outside of UniformSpace/Separation, I mostly changed SeparatedSpace to T0Space and separationRel to Inseparable. I also rewrote a few proofs that were broken by the API change.

Fixes #2031

Diff
@@ -375,15 +375,6 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι →
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped
 #align filter.has_basis.uniformity_of_nhds_zero_neg_add_swapped Filter.HasBasis.uniformity_of_nhds_zero_neg_add_swapped
 
-@[to_additive]
-theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y ∈ closure ({1} : Set α) :=
-  have : Embedding fun a => a * (y / x) := (uniformEmbedding_translate_mul (y / x)).embedding
-  show (x, y) ∈ ⋂₀ (𝓤 α).sets ↔ x / y ∈ closure ({1} : Set α) by
-    rw [this.closure_eq_preimage_closure_image, uniformity_eq_comap_nhds_one α, sInter_comap_sets]
-    simp [mem_closure_iff_nhds, inter_singleton_nonempty, sub_eq_add_neg, add_assoc]
-#align group_separation_rel group_separationRel
-#align add_group_separation_rel addGroup_separationRel
-
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type*} [UniformSpace β] [Group β] [UniformGroup β]
     [FunLike hom α β] [MonoidHomClass hom α β] {f : hom} (h : Tendsto f (𝓝 1) (𝓝 1)) :
@@ -605,7 +596,6 @@ instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTop
     IsClosed (H : Set G) := by
   obtain ⟨V, V_in, VH⟩ : ∃ (V : Set G), V ∈ 𝓝 (1 : G) ∧ V ∩ (H : Set G) = {1}
   exact nhds_inter_eq_singleton_of_mem_discrete H.one_mem
-  haveI : SeparatedSpace G := separated_iff_t2.mpr ‹_›
   have : (fun p : G × G => p.2 / p.1) ⁻¹' V ∈ 𝓤 G := preimage_mem_comap V_in
   apply isClosed_of_spaced_out this
   intro h h_in h' h'_in
@@ -766,7 +756,7 @@ variable [TopologicalSpace γ] [AddCommGroup γ] [TopologicalAddGroup γ]
 
 variable [TopologicalSpace δ] [AddCommGroup δ] [TopologicalAddGroup δ]
 
-variable [UniformSpace G] [AddCommGroup G] [UniformAddGroup G] [SeparatedSpace G] [CompleteSpace G]
+variable [UniformSpace G] [AddCommGroup G] [UniformAddGroup G] [T0Space G] [CompleteSpace G]
 
 variable {e : β →+ α} (de : DenseInducing e)
 
feat(UniformSpace/CompactConvergence): prove metrizability (#10942)
Diff
@@ -922,7 +922,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
   letI : UniformSpace G := TopologicalGroup.toUniformSpace G
   haveI : (𝓤 (G ⧸ N)).IsCountablyGenerated := comap.isCountablyGenerated _ _
   obtain ⟨u, hu, u_mul⟩ := TopologicalGroup.exists_antitone_basis_nhds_one G
-  obtain ⟨hv, v_anti⟩ := @HasAntitoneBasis.map _ _ _ _ _ _ ((↑) : G → G ⧸ N) hu
+  obtain ⟨hv, v_anti⟩ := hu.map ((↑) : G → G ⧸ N)
   rw [← QuotientGroup.nhds_eq N 1, QuotientGroup.mk_one] at hv
   refine' UniformSpace.complete_of_cauchySeq_tendsto fun x hx => _
   /- Given `n : ℕ`, for sufficiently large `a b : ℕ`, given any lift of `x b`, we can find a lift
chore: Remove ball and bex from lemma names (#10816)

ball for "bounded forall" and bex for "bounded exists" are from experience very confusing abbreviations. This PR renames them to forall_mem and exists_mem in the few Set lemma names that mention them.

Also deprecate ball_image_of_ball, mem_image_elim, mem_image_elim_on since those lemmas are duplicates of the renamed lemmas (apart from argument order and implicitness, which I am also fixing by making the binder in the RHS of forall_mem_image semi-implicit), have obscure names and are completely unused.

Diff
@@ -222,7 +222,7 @@ theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @Unifo
 theorem uniformGroup_iInf {ι : Sort*} {us' : ι → UniformSpace β}
     (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ := by
   rw [← sInf_range]
-  exact uniformGroup_sInf (Set.forall_range_iff.mpr h')
+  exact uniformGroup_sInf (Set.forall_mem_range.mpr h')
 #align uniform_group_infi uniformGroup_iInf
 #align uniform_add_group_infi uniformAddGroup_iInf
 
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
@@ -39,7 +39,8 @@ group naturally induces a uniform structure.
 
 noncomputable section
 
-open Classical Uniformity Topology Filter Pointwise
+open scoped Classical
+open Uniformity Topology Filter Pointwise
 
 section UniformGroup
 
@@ -891,8 +892,9 @@ section CompleteQuotient
 
 universe u
 
-open TopologicalSpace Classical
+open TopologicalSpace
 
+open Classical in
 /-- The quotient `G ⧸ N` of a complete first countable topological group `G` by a normal subgroup
 is itself complete. [N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]
 
fix: correct statement of zpow_ofNat and ofNat_zsmul (#10969)

Previously these were syntactically identical to the corresponding zpow_coe_nat and coe_nat_zsmul lemmas, now they are about OfNat.ofNat.

Unfortunately, almost every call site uses the ofNat name to refer to Nat.cast, so the downstream proofs had to be adjusted too.

Diff
@@ -134,7 +134,7 @@ theorem uniformContinuous_pow_const (n : ℕ) : UniformContinuous fun x : α =>
 theorem UniformContinuous.zpow_const [UniformSpace β] {f : β → α} (hf : UniformContinuous f) :
     ∀ n : ℤ, UniformContinuous fun x => f x ^ n
   | (n : ℕ) => by
-    simp_rw [zpow_ofNat]
+    simp_rw [zpow_coe_nat]
     exact hf.pow_const _
   | Int.negSucc n => by
     simp_rw [zpow_negSucc]
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
@@ -236,7 +236,8 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 
 @[to_additive]
 lemma UniformInducing.uniformGroup {γ : Type*} [Group γ] [UniformSpace γ] [UniformGroup γ]
-    [UniformSpace β] {F : Type*} [MonoidHomClass F β γ] (f : F) (hf : UniformInducing f) :
+    [UniformSpace β] {F : Type*} [FunLike F β γ] [MonoidHomClass F β γ]
+    (f : F) (hf : UniformInducing f) :
     UniformGroup β where
   uniformContinuous_div := by
     simp_rw [hf.uniformContinuous_iff, Function.comp_def, map_div]
@@ -244,7 +245,7 @@ lemma UniformInducing.uniformGroup {γ : Type*} [Group γ] [UniformSpace γ] [Un
 
 @[to_additive]
 protected theorem UniformGroup.comap {γ : Type*} [Group γ] {u : UniformSpace γ} [UniformGroup γ]
-    {F : Type*} [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
+    {F : Type*} [FunLike F β γ] [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
   letI : UniformSpace β := u.comap f; UniformInducing.uniformGroup f ⟨rfl⟩
 #align uniform_group_comap UniformGroup.comap
 #align uniform_add_group_comap UniformAddGroup.comap
@@ -384,7 +385,8 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
 
 @[to_additive]
 theorem uniformContinuous_of_tendsto_one {hom : Type*} [UniformSpace β] [Group β] [UniformGroup β]
-    [MonoidHomClass hom α β] {f : hom} (h : Tendsto f (𝓝 1) (𝓝 1)) : UniformContinuous f := by
+    [FunLike hom α β] [MonoidHomClass hom α β] {f : hom} (h : Tendsto f (𝓝 1) (𝓝 1)) :
+    UniformContinuous f := by
   have :
     ((fun x : β × β => x.2 / x.1) ∘ fun x : α × α => (f x.1, f x.2)) = fun x : α × α =>
       f (x.2 / x.1) := by ext; simp only [Function.comp_apply, map_div]
@@ -401,7 +403,8 @@ two uniform groups is uniformly continuous provided that it is continuous at one
 `AddMonoidHomClass`) between two uniform additive groups is uniformly continuous provided that it
 is continuous at zero. See also `continuous_of_continuousAt_zero`."]
 theorem uniformContinuous_of_continuousAt_one {hom : Type*} [UniformSpace β] [Group β]
-    [UniformGroup β] [MonoidHomClass hom α β] (f : hom) (hf : ContinuousAt f 1) :
+    [UniformGroup β] [FunLike hom α β] [MonoidHomClass hom α β]
+    (f : hom) (hf : ContinuousAt f 1) :
     UniformContinuous f :=
   uniformContinuous_of_tendsto_one (by simpa using hf.tendsto)
 #align uniform_continuous_of_continuous_at_one uniformContinuous_of_continuousAt_one
@@ -419,7 +422,8 @@ its kernel is open. -/
 @[to_additive "A homomorphism from a uniform additive group to a discrete uniform additive group is
 continuous if and only if its kernel is open."]
 theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type*} [UniformSpace β]
-    [DiscreteTopology β] [Group β] [UniformGroup β] [MonoidHomClass hom α β] {f : hom} :
+    [DiscreteTopology β] [Group β] [UniformGroup β] [FunLike hom α β] [MonoidHomClass hom α β]
+    {f : hom} :
     UniformContinuous f ↔ IsOpen ((f : α →* β).ker : Set α) := by
   refine' ⟨fun hf => _, fun hf => _⟩
   · apply (isOpen_discrete ({1} : Set β)).preimage hf.continuous
@@ -431,7 +435,8 @@ theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type*} [UniformSpace
 
 @[to_additive]
 theorem uniformContinuous_monoidHom_of_continuous {hom : Type*} [UniformSpace β] [Group β]
-    [UniformGroup β] [MonoidHomClass hom α β] {f : hom} (h : Continuous f) : UniformContinuous f :=
+    [UniformGroup β] [FunLike hom α β] [MonoidHomClass hom α β] {f : hom} (h : Continuous f) :
+    UniformContinuous f :=
   uniformContinuous_of_tendsto_one <|
     suffices Tendsto f (𝓝 1) (𝓝 (f 1)) by rwa [map_one] at this
     h.tendsto 1
@@ -725,7 +730,7 @@ variable [TopologicalSpace α] [Group α] [TopologicalGroup α]
 -- β is a dense subgroup of α, inclusion is denoted by e
 variable [TopologicalSpace β] [Group β]
 
-variable [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
+variable [FunLike hom β α] [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
 
 @[to_additive]
 theorem tendsto_div_comap_self (x₀ : α) :
feat: show matrices form a UniformAddGroup (#9468)
Diff
@@ -162,6 +162,13 @@ instance [UniformSpace β] [Group β] [UniformGroup β] : UniformGroup (α × β
       ((uniformContinuous_snd.comp uniformContinuous_fst).div
         (uniformContinuous_snd.comp uniformContinuous_snd))⟩
 
+@[to_additive]
+instance Pi.instUniformGroup {ι : Type*} {G : ι → Type*} [∀ i, UniformSpace (G i)]
+    [∀ i, Group (G i)] [∀ i, UniformGroup (G i)] : UniformGroup (∀ i, G i) where
+  uniformContinuous_div := uniformContinuous_pi.mpr fun i ↦
+    (uniformContinuous_proj G i).comp uniformContinuous_fst |>.div <|
+      (uniformContinuous_proj G i).comp uniformContinuous_snd
+
 @[to_additive]
 theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (x.1 * a, x.2 * a)) = 𝓤 α :=
   le_antisymm (uniformContinuous_id.mul uniformContinuous_const)
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -559,7 +559,7 @@ def TopologicalGroup.toUniformSpace : UniformSpace G where
     have : Tendsto (fun p : G × G ↦ (p.2 / p.1)⁻¹) (comap (fun p : G × G ↦ p.2 / p.1) (𝓝 1))
       (𝓝 1⁻¹) := tendsto_id.inv.comp tendsto_comap
     by simpa [tendsto_comap_iff]
-  comp := Tendsto.le_comap <| fun U H ↦ by
+  comp := Tendsto.le_comap fun U H ↦ by
     rcases exists_nhds_one_split H with ⟨V, V_nhds, V_mul⟩
     refine mem_map.2 (mem_of_superset (mem_lift' <| preimage_mem_comap V_nhds) ?_)
     rintro ⟨x, y⟩ ⟨z, hz₁, hz₂⟩
refactor(*): change definition of Set.image2 etc (#9275)
  • Redefine Set.image2 to use ∃ a ∈ s, ∃ b ∈ t, f a b = c instead of ∃ a b, a ∈ s ∧ b ∈ t ∧ f a b = c.
  • Redefine Set.seq as Set.image2. The new definition is equal to the old one but rw [Set.seq] gives a different result.
  • Redefine Filter.map₂ to use ∃ u ∈ f, ∃ v ∈ g, image2 m u v ⊆ s instead of ∃ u v, u ∈ f ∧ v ∈ g ∧ ...
  • Update lemmas like Set.mem_image2, Finset.mem_image₂, Set.mem_mul, Finset.mem_div etc

The two reasons to make the change are:

  • ∃ a ∈ s, ∃ b ∈ t, _ is a simp-normal form, and
  • it looks a bit nicer.
Diff
@@ -961,7 +961,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     exact fun m =>
       ⟨m, fun n hmn =>
         Nat.decreasingInduction'
-          (fun k _ _ hk => u_mul k ⟨_, _, hx' k, hk, div_mul_div_cancel' _ _ _⟩) hmn
+          (fun k _ _ hk => u_mul k ⟨_, hx' k, _, hk, div_mul_div_cancel' _ _ _⟩) hmn
           (by simpa only [div_self'] using mem_of_mem_nhds (hu.mem _))⟩
   /- Since `G` is complete, `x'` converges to some `x₀`, and so the image of this sequence under
     the quotient map converges to `↑x₀`. The image of `x'` is a convergent subsequence of `x`, and
chore(*): use ∃ x ∈ s, _ instead of ∃ (x) (_ : x ∈ s), _ (#9215)

Follow-up #9184

Diff
@@ -765,8 +765,8 @@ variable (hφ : Continuous (fun p : β × δ => φ p.1 p.2))
 
 variable {W' : Set G} (W'_nhd : W' ∈ 𝓝 (0 : G))
 
-private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) : ∃ U₂ ∈ comap e (𝓝 x₀), ∀ (x) (_ : x ∈ U₂)
-    (x') (_ : x' ∈ U₂), (fun p : β × δ => φ p.1 p.2) (x' - x, y₁) ∈ W' := by
+private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) : ∃ U₂ ∈ comap e (𝓝 x₀), ∀ x ∈ U₂, ∀ x' ∈ U₂,
+    (fun p : β × δ => φ p.1 p.2) (x' - x, y₁) ∈ W' := by
   let Nx := 𝓝 x₀
   let ee := fun u : β × β => (e u.1, e u.2)
   have lim1 : Tendsto (fun a : β × β => (a.2 - a.1, y₁))
@@ -784,7 +784,7 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) : ∃ U₂ ∈ comap
 #noalign dense_inducing.extend_Z_bilin_aux
 
 private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) : ∃ U ∈ comap e (𝓝 x₀), ∃ V ∈ comap f (𝓝 y₀),
-    ∀ (x) (_ : x ∈ U) (x') (_ : x' ∈ U), ∀ (y) (_ : y ∈ V) (y') (_ : y' ∈ V),
+    ∀ x ∈ U, ∀ x' ∈ U, ∀ (y) (_ : y ∈ V) (y') (_ : y' ∈ V),
     (fun p : β × δ => φ p.1 p.2) (x', y') - (fun p : β × δ => φ p.1 p.2) (x, y) ∈ W' := by
   let ee := fun u : β × β => (e u.1, e u.2)
   let ff := fun u : δ × δ => (f u.1, f u.2)
feat(UniformGroup): add UniformInducing.uniformGroup (#8813)
Diff
@@ -196,18 +196,6 @@ instance : UniformGroup αᵐᵒᵖ :=
 
 end MulOpposite
 
-namespace Subgroup
-
-@[to_additive]
-instance uniformGroup (S : Subgroup α) : UniformGroup S :=
-  ⟨uniformContinuous_comap'
-      (uniformContinuous_div.comp <|
-        uniformContinuous_subtype_val.prod_map uniformContinuous_subtype_val)⟩
-#align subgroup.uniform_group Subgroup.uniformGroup
-#align add_subgroup.uniform_add_group AddSubgroup.uniformAddGroup
-
-end Subgroup
-
 section LatticeOps
 
 variable [Group β]
@@ -240,17 +228,31 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 #align uniform_add_group_inf uniformAddGroup_inf
 
 @[to_additive]
-theorem uniformGroup_comap {γ : Type*} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type*}
-    [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
-  letI : UniformSpace β := u.comap f
-  ⟨uniformContinuous_comap' <| by
-    simp_rw [Function.comp, map_div]
-    exact uniformContinuous_div.comp (uniformContinuous_comap.prod_map uniformContinuous_comap)⟩
-#align uniform_group_comap uniformGroup_comap
-#align uniform_add_group_comap uniformAddGroup_comap
+lemma UniformInducing.uniformGroup {γ : Type*} [Group γ] [UniformSpace γ] [UniformGroup γ]
+    [UniformSpace β] {F : Type*} [MonoidHomClass F β γ] (f : F) (hf : UniformInducing f) :
+    UniformGroup β where
+  uniformContinuous_div := by
+    simp_rw [hf.uniformContinuous_iff, Function.comp_def, map_div]
+    exact uniformContinuous_div.comp (hf.uniformContinuous.prod_map hf.uniformContinuous)
+
+@[to_additive]
+protected theorem UniformGroup.comap {γ : Type*} [Group γ] {u : UniformSpace γ} [UniformGroup γ]
+    {F : Type*} [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
+  letI : UniformSpace β := u.comap f; UniformInducing.uniformGroup f ⟨rfl⟩
+#align uniform_group_comap UniformGroup.comap
+#align uniform_add_group_comap UniformAddGroup.comap
 
 end LatticeOps
 
+namespace Subgroup
+
+@[to_additive]
+instance uniformGroup (S : Subgroup α) : UniformGroup S := .comap S.subtype
+#align subgroup.uniform_group Subgroup.uniformGroup
+#align add_subgroup.uniform_add_group AddSubgroup.uniformAddGroup
+
+end Subgroup
+
 section
 
 variable (α)
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -686,7 +686,7 @@ theorem comm_topologicalGroup_is_uniform : UniformGroup G := by
     tendsto_comap_iff, prod_comap_comap_eq]
   simp only [Function.comp, div_eq_mul_inv, mul_inv_rev, inv_inv, mul_comm, mul_left_comm] at *
   simp only [inv_one, mul_one, ← mul_assoc] at this
-  simp_rw [←mul_assoc, mul_comm]
+  simp_rw [← mul_assoc, mul_comm]
   assumption
 #align topological_comm_group_is_uniform comm_topologicalGroup_is_uniform
 #align topological_add_comm_group_is_uniform comm_topologicalAddGroup_is_uniform
style: cleanup by putting by on the same line as := (#8407)

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

Diff
@@ -168,8 +168,7 @@ theorem uniformity_translate_mul (a : α) : ((𝓤 α).map fun x : α × α => (
     (calc
       𝓤 α =
           ((𝓤 α).map fun x : α × α => (x.1 * a⁻¹, x.2 * a⁻¹)).map fun x : α × α =>
-            (x.1 * a, x.2 * a) :=
-        by simp [Filter.map_map, (· ∘ ·)]
+            (x.1 * a, x.2 * a) := by simp [Filter.map_map, (· ∘ ·)]
       _ ≤ (𝓤 α).map fun x : α × α => (x.1 * a, x.2 * a) :=
         Filter.map_mono (uniformContinuous_id.mul uniformContinuous_const)
       )
@@ -820,9 +819,8 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) : ∃ U ∈ comap e (
   rcases extend_Z_bilin_aux df cont_flip W_nhd y₀ x₁ with ⟨V₂, V₂_nhd, HV⟩
   exists U₁ ∩ U₂, inter_mem U₁_nhd U₂_nhd, V₁ ∩ V₂, inter_mem V₁_nhd V₂_nhd
   rintro x ⟨xU₁, xU₂⟩ x' ⟨x'U₁, x'U₂⟩ y ⟨yV₁, yV₂⟩ y' ⟨y'V₁, y'V₂⟩
-  have key_formula :
-    φ x' y' - φ x y = φ (x' - x) y₁ + φ (x' - x) (y' - y₁) + φ x₁ (y' - y) + φ (x - x₁) (y' - y) :=
-    by simp; abel
+  have key_formula : φ x' y' - φ x y
+    = φ (x' - x) y₁ + φ (x' - x) (y' - y₁) + φ x₁ (y' - y) + φ (x - x₁) (y' - y) := by simp; abel
   rw [key_formula]
   have h₁ := HU x xU₂ x' x'U₂
   have h₂ := H x xU₁ x' x'U₁ y₁ y₁_in y' y'V₁
chore: generalize CauchySeq to Preorder (#8339)
Diff
@@ -431,28 +431,28 @@ theorem uniformContinuous_monoidHom_of_continuous {hom : Type*} [UniformSpace β
 #align uniform_continuous_add_monoid_hom_of_continuous uniformContinuous_addMonoidHom_of_continuous
 
 @[to_additive]
-theorem CauchySeq.mul {ι : Type*} [SemilatticeSup ι] {u v : ι → α} (hu : CauchySeq u)
+theorem CauchySeq.mul {ι : Type*} [Preorder ι] {u v : ι → α} (hu : CauchySeq u)
     (hv : CauchySeq v) : CauchySeq (u * v) :=
   uniformContinuous_mul.comp_cauchySeq (hu.prod hv)
 #align cauchy_seq.mul CauchySeq.mul
 #align cauchy_seq.add CauchySeq.add
 
 @[to_additive]
-theorem CauchySeq.mul_const {ι : Type*} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
+theorem CauchySeq.mul_const {ι : Type*} [Preorder ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => u n * x :=
   (uniformContinuous_id.mul uniformContinuous_const).comp_cauchySeq hu
 #align cauchy_seq.mul_const CauchySeq.mul_const
 #align cauchy_seq.add_const CauchySeq.add_const
 
 @[to_additive]
-theorem CauchySeq.const_mul {ι : Type*} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
+theorem CauchySeq.const_mul {ι : Type*} [Preorder ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => x * u n :=
   (uniformContinuous_const.mul uniformContinuous_id).comp_cauchySeq hu
 #align cauchy_seq.const_mul CauchySeq.const_mul
 #align cauchy_seq.const_add CauchySeq.const_add
 
 @[to_additive]
-theorem CauchySeq.inv {ι : Type*} [SemilatticeSup ι] {u : ι → α} (h : CauchySeq u) :
+theorem CauchySeq.inv {ι : Type*} [Preorder ι] {u : ι → α} (h : CauchySeq u) :
     CauchySeq u⁻¹ :=
   uniformContinuous_inv.comp_cauchySeq h
 #align cauchy_seq.inv CauchySeq.inv
chore: fix references to toUniformSpace in docstrings (#7348)
Diff
@@ -26,7 +26,7 @@ group naturally induces a uniform structure.
 
 ## Main results
 
-* `TopologicalAddGroup.to_uniformSpace` and `comm_topologicalAddGroup_is_uniform` can be used
+* `TopologicalAddGroup.toUniformSpace` and `comm_topologicalAddGroup_is_uniform` can be used
   to construct a canonical uniformity for a topological add group.
 
 * extension of ℤ-bilinear maps to complete groups (useful for ring completions)
@@ -982,7 +982,7 @@ already equipped with a uniform structure.
 [N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]
 
 Even though `G` is equipped with a uniform structure, the quotient `G ⧸ N` does not inherit a
-uniform structure, so it is still provided manually via `TopologicalGroup.to_uniformSpace`.
+uniform structure, so it is still provided manually via `TopologicalGroup.toUniformSpace`.
 In the most common use cases, this coincides (definitionally) with the uniform structure on the
 quotient obtained via other means.  -/
 @[to_additive "The quotient `G ⧸ N` of a complete first countable uniform additive group
@@ -992,7 +992,7 @@ subspaces are complete. In contrast to `QuotientAddGroup.completeSpace'`, in thi
 [N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]
 
 Even though `G` is equipped with a uniform structure, the quotient `G ⧸ N` does not inherit a
-uniform structure, so it is still provided manually via `TopologicalAddGroup.to_uniformSpace`.
+uniform structure, so it is still provided manually via `TopologicalAddGroup.toUniformSpace`.
 In the most common use case ─ quotients of normed additive commutative groups by subgroups ─
 significant care was taken so that the uniform structure inherent in that setting coincides
 (definitionally) with the uniform structure provided here."]
chore(Topology/Algebra/Group): golf, move (#6820)

Move some lemmas from Topology.Algebra.UniformGroup to Topology.Algebra.Group.Basic, golf.

Diff
@@ -149,8 +149,7 @@ theorem uniformContinuous_zpow_const (n : ℤ) : UniformContinuous fun x : α =>
 #align uniform_continuous_const_zsmul uniformContinuous_const_zsmul
 
 @[to_additive]
-instance (priority := 10) UniformGroup.to_topologicalGroup : TopologicalGroup α
-    where
+instance (priority := 10) UniformGroup.to_topologicalGroup : TopologicalGroup α where
   continuous_mul := uniformContinuous_mul.continuous
   continuous_inv := uniformContinuous_inv.continuous
 #align uniform_group.to_topological_group UniformGroup.to_topologicalGroup
@@ -244,13 +243,10 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 @[to_additive]
 theorem uniformGroup_comap {γ : Type*} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type*}
     [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
-  -- Porting note: {_} does not find `u.comap f` instance, see `continuousSMul_sInf`
-  @UniformGroup.mk β (_) _ <| by
-    letI : UniformSpace β := u.comap f
-    refine' uniformContinuous_comap' _
+  letI : UniformSpace β := u.comap f
+  ⟨uniformContinuous_comap' <| by
     simp_rw [Function.comp, map_div]
-    change UniformContinuous ((fun p : γ × γ => p.1 / p.2) ∘ Prod.map f f)
-    exact uniformContinuous_div.comp (uniformContinuous_comap.prod_map uniformContinuous_comap)
+    exact uniformContinuous_div.comp (uniformContinuous_comap.prod_map uniformContinuous_comap)⟩
 #align uniform_group_comap uniformGroup_comap
 #align uniform_add_group_comap uniformAddGroup_comap
 
@@ -698,45 +694,6 @@ theorem comm_topologicalGroup_is_uniform : UniformGroup G := by
 
 open Set
 
-@[to_additive]
-theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) := by
-  haveI : UniformGroup G := comm_topologicalGroup_is_uniform
-  rw [← separated_iff_t2, separatedSpace_iff, ← closure_eq_iff_isClosed]
-  constructor <;> intro h
-  · apply Subset.antisymm
-    · intro x x_in
-      have := group_separationRel x 1
-      rw [div_one] at this
-      rw [← this, h] at x_in
-      -- Porting note: was
-      --change x = 1 at x_in
-      --simp [x_in]
-      rwa [mem_singleton_iff]
-    · exact subset_closure
-  · ext p
-    cases' p with x y
-    rw [group_separationRel x, h, mem_singleton_iff, div_eq_one]
-    rfl
-#align topological_group.t2_space_iff_one_closed TopologicalGroup.t2Space_iff_one_closed
-#align topological_add_group.t2_space_iff_zero_closed TopologicalAddGroup.t2Space_iff_zero_closed
-
-@[to_additive]
-theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U ∈ nhds (1 : G), x ∉ U) :
-    T2Space G := by
-  rw [TopologicalGroup.t2Space_iff_one_closed, ← isOpen_compl_iff, isOpen_iff_mem_nhds]
-  intro x x_not
-  have : x ≠ 1 := mem_compl_singleton_iff.mp x_not
-  rcases H x this with ⟨U, U_in, xU⟩
-  rw [← nhds_one_symm G] at U_in
-  rcases U_in with ⟨W, W_in, UW⟩
-  rw [← nhds_translation_mul_inv]
-  use W, W_in
-  rw [subset_compl_comm]
-  suffices x⁻¹ ∉ W by simpa
-  exact fun h => xU (UW h)
-#align topological_group.t2_space_of_one_sep TopologicalGroup.t2Space_of_one_sep
-#align topological_add_group.t2_space_of_zero_sep TopologicalAddGroup.t2Space_of_zero_sep
-
 end
 
 @[to_additive]
chore: more predictable ext lemmas for TopologicalSpace and UniformSpace (#6705)
Diff
@@ -289,7 +289,7 @@ theorem uniformity_eq_comap_nhds_one_swapped :
 theorem UniformGroup.ext {G : Type*} [Group G] {u v : UniformSpace G} (hu : @UniformGroup G u _)
     (hv : @UniformGroup G v _)
     (h : @nhds _ u.toTopologicalSpace 1 = @nhds _ v.toTopologicalSpace 1) : u = v :=
-  uniformSpace_eq <| by
+  UniformSpace.ext <| by
     rw [@uniformity_eq_comap_nhds_one _ u _ hu, @uniformity_eq_comap_nhds_one _ v _ hv, h]
 #align uniform_group.ext UniformGroup.ext
 #align uniform_add_group.ext UniformAddGroup.ext
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
@@ -45,16 +45,16 @@ section UniformGroup
 
 open Filter Set
 
-variable {α : Type _} {β : Type _}
+variable {α : Type*} {β : Type*}
 
 /-- A uniform group is a group in which multiplication and inversion are uniformly continuous. -/
-class UniformGroup (α : Type _) [UniformSpace α] [Group α] : Prop where
+class UniformGroup (α : Type*) [UniformSpace α] [Group α] : Prop where
   uniformContinuous_div : UniformContinuous fun p : α × α => p.1 / p.2
 #align uniform_group UniformGroup
 
 /-- A uniform additive group is an additive group in which addition
   and negation are uniformly continuous.-/
-class UniformAddGroup (α : Type _) [UniformSpace α] [AddGroup α] : Prop where
+class UniformAddGroup (α : Type*) [UniformSpace α] [AddGroup α] : Prop where
   uniformContinuous_sub : UniformContinuous fun p : α × α => p.1 - p.2
 #align uniform_add_group UniformAddGroup
 
@@ -225,7 +225,7 @@ theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @Unifo
 #align uniform_add_group_Inf uniformAddGroup_sInf
 
 @[to_additive]
-theorem uniformGroup_iInf {ι : Sort _} {us' : ι → UniformSpace β}
+theorem uniformGroup_iInf {ι : Sort*} {us' : ι → UniformSpace β}
     (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ := by
   rw [← sInf_range]
   exact uniformGroup_sInf (Set.forall_range_iff.mpr h')
@@ -242,7 +242,7 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 #align uniform_add_group_inf uniformAddGroup_inf
 
 @[to_additive]
-theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
+theorem uniformGroup_comap {γ : Type*} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type*}
     [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
   -- Porting note: {_} does not find `u.comap f` instance, see `continuousSMul_sInf`
   @UniformGroup.mk β (_) _ <| by
@@ -286,7 +286,7 @@ theorem uniformity_eq_comap_nhds_one_swapped :
 #align uniformity_eq_comap_nhds_zero_swapped uniformity_eq_comap_nhds_zero_swapped
 
 @[to_additive]
-theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @UniformGroup G u _)
+theorem UniformGroup.ext {G : Type*} [Group G] {u v : UniformSpace G} (hu : @UniformGroup G u _)
     (hv : @UniformGroup G v _)
     (h : @nhds _ u.toTopologicalSpace 1 = @nhds _ v.toTopologicalSpace 1) : u = v :=
   uniformSpace_eq <| by
@@ -295,7 +295,7 @@ theorem UniformGroup.ext {G : Type _} [Group G] {u v : UniformSpace G} (hu : @Un
 #align uniform_add_group.ext UniformAddGroup.ext
 
 @[to_additive]
-theorem UniformGroup.ext_iff {G : Type _} [Group G] {u v : UniformSpace G}
+theorem UniformGroup.ext_iff {G : Type*} [Group G] {u v : UniformSpace G}
     (hu : @UniformGroup G u _) (hv : @UniformGroup G v _) :
     u = v ↔ @nhds _ u.toTopologicalSpace 1 = @nhds _ v.toTopologicalSpace 1 :=
   ⟨fun h => h ▸ rfl, hu.ext hv⟩
@@ -379,7 +379,7 @@ theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y 
 #align add_group_separation_rel addGroup_separationRel
 
 @[to_additive]
-theorem uniformContinuous_of_tendsto_one {hom : Type _} [UniformSpace β] [Group β] [UniformGroup β]
+theorem uniformContinuous_of_tendsto_one {hom : Type*} [UniformSpace β] [Group β] [UniformGroup β]
     [MonoidHomClass hom α β] {f : hom} (h : Tendsto f (𝓝 1) (𝓝 1)) : UniformContinuous f := by
   have :
     ((fun x : β × β => x.2 / x.1) ∘ fun x : α × α => (f x.1, f x.2)) = fun x : α × α =>
@@ -396,7 +396,7 @@ two uniform groups is uniformly continuous provided that it is continuous at one
 @[to_additive "An additive group homomorphism (a bundled morphism of a type that implements
 `AddMonoidHomClass`) between two uniform additive groups is uniformly continuous provided that it
 is continuous at zero. See also `continuous_of_continuousAt_zero`."]
-theorem uniformContinuous_of_continuousAt_one {hom : Type _} [UniformSpace β] [Group β]
+theorem uniformContinuous_of_continuousAt_one {hom : Type*} [UniformSpace β] [Group β]
     [UniformGroup β] [MonoidHomClass hom α β] (f : hom) (hf : ContinuousAt f 1) :
     UniformContinuous f :=
   uniformContinuous_of_tendsto_one (by simpa using hf.tendsto)
@@ -414,7 +414,7 @@ theorem MonoidHom.uniformContinuous_of_continuousAt_one [UniformSpace β] [Group
 its kernel is open. -/
 @[to_additive "A homomorphism from a uniform additive group to a discrete uniform additive group is
 continuous if and only if its kernel is open."]
-theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type _} [UniformSpace β]
+theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type*} [UniformSpace β]
     [DiscreteTopology β] [Group β] [UniformGroup β] [MonoidHomClass hom α β] {f : hom} :
     UniformContinuous f ↔ IsOpen ((f : α →* β).ker : Set α) := by
   refine' ⟨fun hf => _, fun hf => _⟩
@@ -426,7 +426,7 @@ theorem UniformGroup.uniformContinuous_iff_open_ker {hom : Type _} [UniformSpace
 #align uniform_add_group.uniform_continuous_iff_open_ker UniformAddGroup.uniformContinuous_iff_open_ker
 
 @[to_additive]
-theorem uniformContinuous_monoidHom_of_continuous {hom : Type _} [UniformSpace β] [Group β]
+theorem uniformContinuous_monoidHom_of_continuous {hom : Type*} [UniformSpace β] [Group β]
     [UniformGroup β] [MonoidHomClass hom α β] {f : hom} (h : Continuous f) : UniformContinuous f :=
   uniformContinuous_of_tendsto_one <|
     suffices Tendsto f (𝓝 1) (𝓝 (f 1)) by rwa [map_one] at this
@@ -435,28 +435,28 @@ theorem uniformContinuous_monoidHom_of_continuous {hom : Type _} [UniformSpace 
 #align uniform_continuous_add_monoid_hom_of_continuous uniformContinuous_addMonoidHom_of_continuous
 
 @[to_additive]
-theorem CauchySeq.mul {ι : Type _} [SemilatticeSup ι] {u v : ι → α} (hu : CauchySeq u)
+theorem CauchySeq.mul {ι : Type*} [SemilatticeSup ι] {u v : ι → α} (hu : CauchySeq u)
     (hv : CauchySeq v) : CauchySeq (u * v) :=
   uniformContinuous_mul.comp_cauchySeq (hu.prod hv)
 #align cauchy_seq.mul CauchySeq.mul
 #align cauchy_seq.add CauchySeq.add
 
 @[to_additive]
-theorem CauchySeq.mul_const {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
+theorem CauchySeq.mul_const {ι : Type*} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => u n * x :=
   (uniformContinuous_id.mul uniformContinuous_const).comp_cauchySeq hu
 #align cauchy_seq.mul_const CauchySeq.mul_const
 #align cauchy_seq.add_const CauchySeq.add_const
 
 @[to_additive]
-theorem CauchySeq.const_mul {ι : Type _} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
+theorem CauchySeq.const_mul {ι : Type*} [SemilatticeSup ι] {u : ι → α} {x : α} (hu : CauchySeq u) :
     CauchySeq fun n => x * u n :=
   (uniformContinuous_const.mul uniformContinuous_id).comp_cauchySeq hu
 #align cauchy_seq.const_mul CauchySeq.const_mul
 #align cauchy_seq.const_add CauchySeq.const_add
 
 @[to_additive]
-theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : CauchySeq u) :
+theorem CauchySeq.inv {ι : Type*} [SemilatticeSup ι] {u : ι → α} (h : CauchySeq u) :
     CauchySeq u⁻¹ :=
   uniformContinuous_inv.comp_cauchySeq h
 #align cauchy_seq.inv CauchySeq.inv
@@ -472,7 +472,7 @@ theorem totallyBounded_iff_subset_finite_iUnion_nhds_one {s : Set α} :
 
 section UniformConvergence
 
-variable {ι : Type _} {l : Filter ι} {l' : Filter β} {f f' : ι → β → α} {g g' : β → α} {s : Set β}
+variable {ι : Type*} {l : Filter ι} {l' : Filter β} {f f' : ι → β → α} {g g' : β → α} {s : Set β}
 
 @[to_additive]
 theorem TendstoUniformlyOnFilter.mul (hf : TendstoUniformlyOnFilter f g l l')
@@ -540,7 +540,7 @@ section TopologicalGroup
 
 open Filter
 
-variable (G : Type _) [Group G] [TopologicalSpace G] [TopologicalGroup G]
+variable (G : Type*) [Group G] [TopologicalSpace G] [TopologicalGroup G]
 
 /-- The right uniformity on a topological group (as opposed to the left uniformity).
 
@@ -613,14 +613,14 @@ lemma Subgroup.tendsto_coe_cofinite_of_discrete [T2Space G] (H : Subgroup G) [Di
   IsClosed.tendsto_coe_cofinite_of_discreteTopology inferInstance inferInstance
 
 @[to_additive]
-lemma MonoidHom.tendsto_coe_cofinite_of_discrete [T2Space G] {H : Type _} [Group H] {f : H →* G}
+lemma MonoidHom.tendsto_coe_cofinite_of_discrete [T2Space G] {H : Type*} [Group H] {f : H →* G}
     (hf : Function.Injective f) (hf' : DiscreteTopology f.range) :
     Tendsto f cofinite (cocompact _) := by
   replace hf : Function.Injective f.rangeRestrict := by simpa
   exact f.range.tendsto_coe_cofinite_of_discrete.comp hf.tendsto_cofinite
 
 @[to_additive]
-theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
+theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type*} (F : ι → α → G) (f : α → G)
     (p : Filter ι) :
     @TendstoUniformly α G ι (TopologicalGroup.toUniformSpace G) F f p ↔
       ∀ u ∈ 𝓝 (1 : G), ∀ᶠ i in p, ∀ a, F i a / f a ∈ u :=
@@ -630,7 +630,7 @@ theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α 
 #align topological_add_group.tendsto_uniformly_iff TopologicalAddGroup.tendstoUniformly_iff
 
 @[to_additive]
-theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
+theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type*} (F : ι → α → G) (f : α → G)
     (p : Filter ι) (s : Set α) :
     @TendstoUniformlyOn α G ι (TopologicalGroup.toUniformSpace G) F f p s ↔
       ∀ u ∈ 𝓝 (1 : G), ∀ᶠ i in p, ∀ a ∈ s, F i a / f a ∈ u :=
@@ -640,7 +640,7 @@ theorem TopologicalGroup.tendstoUniformlyOn_iff {ι α : Type _} (F : ι → α
 #align topological_add_group.tendsto_uniformly_on_iff TopologicalAddGroup.tendstoUniformlyOn_iff
 
 @[to_additive]
-theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [TopologicalSpace α]
+theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type*} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) :
     @TendstoLocallyUniformly α G ι (TopologicalGroup.toUniformSpace G) _ F f p ↔
       ∀ u ∈ 𝓝 (1 : G), ∀ (x : α), ∃ t ∈ 𝓝 x, ∀ᶠ i in p, ∀ a ∈ t, F i a / f a ∈ u :=
@@ -651,7 +651,7 @@ theorem TopologicalGroup.tendstoLocallyUniformly_iff {ι α : Type _} [Topologic
 #align topological_add_group.tendsto_locally_uniformly_iff TopologicalAddGroup.tendstoLocallyUniformly_iff
 
 @[to_additive]
-theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff {ι α : Type _} [TopologicalSpace α]
+theorem TopologicalGroup.tendstoLocallyUniformlyOn_iff {ι α : Type*} [TopologicalSpace α]
     (F : ι → α → G) (f : α → G) (p : Filter ι) (s : Set α) :
     @TendstoLocallyUniformlyOn α G ι (TopologicalGroup.toUniformSpace G) _ F f p s ↔
       ∀ u ∈ 𝓝 (1 : G), ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, ∀ᶠ i in p, ∀ a ∈ t, F i a / f a ∈ u :=
@@ -669,7 +669,7 @@ universe u v w x
 
 open Filter
 
-variable (G : Type _) [CommGroup G] [TopologicalSpace G] [TopologicalGroup G]
+variable (G : Type*) [CommGroup G] [TopologicalSpace G] [TopologicalGroup G]
 
 section
 
@@ -740,7 +740,7 @@ theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U 
 end
 
 @[to_additive]
-theorem UniformGroup.toUniformSpace_eq {G : Type _} [u : UniformSpace G] [Group G]
+theorem UniformGroup.toUniformSpace_eq {G : Type*} [u : UniformSpace G] [Group G]
     [UniformGroup G] : TopologicalGroup.toUniformSpace G = u := by
   ext : 1
   rw [uniformity_eq_comap_nhds_one' G, uniformity_eq_comap_nhds_one G]
@@ -753,7 +753,7 @@ open Filter Set Function
 
 section
 
-variable {α : Type _} {β : Type _} {hom : Type _}
+variable {α : Type*} {β : Type*} {hom : Type*}
 
 variable [TopologicalSpace α] [Group α] [TopologicalGroup α]
 
@@ -781,9 +781,9 @@ end
 
 namespace DenseInducing
 
-variable {α : Type _} {β : Type _} {γ : Type _} {δ : Type _}
+variable {α : Type*} {β : Type*} {γ : Type*} {δ : Type*}
 
-variable {G : Type _}
+variable {G : Type*}
 
 -- β is a dense subgroup of α, inclusion is denoted by e
 -- δ is a dense subgroup of γ, inclusion is denoted by f
feat(Analysis/LocallyConvex/WithSeminorms): equicontinuity criteria (#5580)
Diff
@@ -219,7 +219,7 @@ theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @Unifo
     @UniformGroup β (sInf us) _ :=
   -- Porting note: {_} does not find `sInf us` instance, see `continuousSMul_sInf`
   @UniformGroup.mk β (_) _ <|
-    uniformContinuous_sInf_rng fun u hu =>
+    uniformContinuous_sInf_rng.mpr fun u hu =>
       uniformContinuous_sInf_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu))
 #align uniform_group_Inf uniformGroup_sInf
 #align uniform_add_group_Inf uniformAddGroup_sInf
feat: basic facts about discrete subsets and subgroups (#5969)

Co-authored-by: Bhavik Mehta <bhavik.mehta8@gmail.com>

Diff
@@ -8,6 +8,7 @@ import Mathlib.Topology.UniformSpace.UniformEmbedding
 import Mathlib.Topology.UniformSpace.CompleteSeparated
 import Mathlib.Topology.UniformSpace.Compact
 import Mathlib.Topology.Algebra.Group.Basic
+import Mathlib.Topology.DiscreteSubset
 import Mathlib.Tactic.Abel
 
 #align_import topology.algebra.uniform_group from "leanprover-community/mathlib"@"bcfa726826abd57587355b4b5b7e78ad6527b7e4"
@@ -606,6 +607,18 @@ instance Subgroup.isClosed_of_discrete [T2Space G] {H : Subgroup G} [DiscreteTop
 #align subgroup.is_closed_of_discrete Subgroup.isClosed_of_discrete
 #align add_subgroup.is_closed_of_discrete AddSubgroup.isClosed_of_discrete
 
+@[to_additive]
+lemma Subgroup.tendsto_coe_cofinite_of_discrete [T2Space G] (H : Subgroup G) [DiscreteTopology H] :
+    Tendsto ((↑) : H → G) cofinite (cocompact _) :=
+  IsClosed.tendsto_coe_cofinite_of_discreteTopology inferInstance inferInstance
+
+@[to_additive]
+lemma MonoidHom.tendsto_coe_cofinite_of_discrete [T2Space G] {H : Type _} [Group H] {f : H →* G}
+    (hf : Function.Injective f) (hf' : DiscreteTopology f.range) :
+    Tendsto f cofinite (cocompact _) := by
+  replace hf : Function.Injective f.rangeRestrict := by simpa
+  exact f.range.tendsto_coe_cofinite_of_discrete.comp hf.tendsto_cofinite
+
 @[to_additive]
 theorem TopologicalGroup.tendstoUniformly_iff {ι α : Type _} (F : ι → α → G) (f : α → G)
     (p : Filter ι) :
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,11 +2,6 @@
 Copyright (c) 2018 Patrick Massot. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Johannes Hölzl
-
-! This file was ported from Lean 3 source module topology.algebra.uniform_group
-! leanprover-community/mathlib commit bcfa726826abd57587355b4b5b7e78ad6527b7e4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.UniformSpace.UniformConvergence
 import Mathlib.Topology.UniformSpace.UniformEmbedding
@@ -15,6 +10,8 @@ import Mathlib.Topology.UniformSpace.Compact
 import Mathlib.Topology.Algebra.Group.Basic
 import Mathlib.Tactic.Abel
 
+#align_import topology.algebra.uniform_group from "leanprover-community/mathlib"@"bcfa726826abd57587355b4b5b7e78ad6527b7e4"
+
 /-!
 # Uniform structure on topological groups
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -220,7 +220,7 @@ variable [Group β]
 theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
     @UniformGroup β (sInf us) _ :=
   -- Porting note: {_} does not find `sInf us` instance, see `continuousSMul_sInf`
-  @UniformGroup.mk β (_) _  <|
+  @UniformGroup.mk β (_) _ <|
     uniformContinuous_sInf_rng fun u hu =>
       uniformContinuous_sInf_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu))
 #align uniform_group_Inf uniformGroup_sInf
@@ -559,7 +559,7 @@ commutative additive groups (see `comm_topologicalAddGroup_is_uniform`) and for
 additive groups (see `topologicalAddGroup_is_uniform_of_compactSpace`)."]
 def TopologicalGroup.toUniformSpace : UniformSpace G where
   uniformity := comap (fun p : G × G => p.2 / p.1) (𝓝 1)
-  refl :=  (Tendsto.mono_right (by simp) (pure_le_nhds _)).le_comap
+  refl := (Tendsto.mono_right (by simp) (pure_le_nhds _)).le_comap
   symm :=
     have : Tendsto (fun p : G × G ↦ (p.2 / p.1)⁻¹) (comap (fun p : G × G ↦ p.2 / p.1) (𝓝 1))
       (𝓝 1⁻¹) := tendsto_id.inv.comp tendsto_comap
chore: fix many typos (#4535)

Run codespell Mathlib and keep some suggestions.

Diff
@@ -1010,7 +1010,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
 #align quotient_add_group.complete_space' QuotientAddGroup.completeSpace'
 
 /-- The quotient `G ⧸ N` of a complete first countable uniform group `G` by a normal subgroup
-is itself complete. In constrast to `QuotientGroup.completeSpace'`, in this version `G` is
+is itself complete. In contrast to `QuotientGroup.completeSpace'`, in this version `G` is
 already equipped with a uniform structure.
 [N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]
 
@@ -1020,7 +1020,7 @@ In the most common use cases, this coincides (definitionally) with the uniform s
 quotient obtained via other means.  -/
 @[to_additive "The quotient `G ⧸ N` of a complete first countable uniform additive group
 `G` by a normal additive subgroup is itself complete. Consequently, quotients of Banach spaces by
-subspaces are complete. In constrast to `QuotientAddGroup.completeSpace'`, in this version
+subspaces are complete. In contrast to `QuotientAddGroup.completeSpace'`, in this version
 `G` is already equipped with a uniform structure.
 [N. Bourbaki, *General Topology*, IX.3.1 Proposition 4][bourbaki1966b]
 
refactor: use the typeclass SProd to implement overloaded notation · ×ˢ · (#4200)

Currently, the following notations are changed from · ×ˢ · because Lean 4 can't deal with ambiguous notations. | Definition | Notation | | :

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>

Diff
@@ -802,7 +802,7 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) : ∃ U₂ ∈ comap
   let Nx := 𝓝 x₀
   let ee := fun u : β × β => (e u.1, e u.2)
   have lim1 : Tendsto (fun a : β × β => (a.2 - a.1, y₁))
-      (comap e Nx ×ᶠ comap e Nx) (𝓝 (0, y₁)) := by
+      (comap e Nx ×ˢ comap e Nx) (𝓝 (0, y₁)) := by
     have := Tendsto.prod_mk (tendsto_sub_comap_self de x₀)
       (tendsto_const_nhds : Tendsto (fun _ : β × β => y₁) (comap ee <| 𝓝 (x₀, x₀)) (𝓝 y₁))
     rw [nhds_prod_eq, prod_comap_comap_eq, ← nhds_prod_eq]
@@ -824,10 +824,10 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) : ∃ U ∈ comap e (
     simpa using hφ.tendsto (0, 0)
   have lim_φ_sub_sub :
     Tendsto (fun p : (β × β) × δ × δ => (fun p : β × δ => φ p.1 p.2) (p.1.2 - p.1.1, p.2.2 - p.2.1))
-      ((comap ee <| 𝓝 (x₀, x₀)) ×ᶠ (comap ff <| 𝓝 (y₀, y₀))) (𝓝 0) := by
+      ((comap ee <| 𝓝 (x₀, x₀)) ×ˢ (comap ff <| 𝓝 (y₀, y₀))) (𝓝 0) := by
     have lim_sub_sub :
       Tendsto (fun p : (β × β) × δ × δ => (p.1.2 - p.1.1, p.2.2 - p.2.1))
-        (comap ee (𝓝 (x₀, x₀)) ×ᶠ comap ff (𝓝 (y₀, y₀))) (𝓝 0 ×ᶠ 𝓝 0) := by
+        (comap ee (𝓝 (x₀, x₀)) ×ˢ comap ff (𝓝 (y₀, y₀))) (𝓝 0 ×ˢ 𝓝 0) := by
       have := Filter.prod_mono (tendsto_sub_comap_self de x₀) (tendsto_sub_comap_self df y₀)
       rwa [prod_map_map_eq] at this
     rw [← nhds_prod_eq] at lim_sub_sub
@@ -882,7 +882,7 @@ theorem extend_Z_bilin : Continuous (extend (de.prod df) (fun p : β × δ => φ
   · suffices map (fun p : (β × δ) × β × δ => (fun p : β × δ => φ p.1 p.2) p.2 -
       (fun p : β × δ => φ p.1 p.2) p.1)
         (comap (fun p : (β × δ) × β × δ => ((e p.1.1, f p.1.2), (e p.2.1, f p.2.2)))
-        (𝓝 (x₀, y₀) ×ᶠ 𝓝 (x₀, y₀))) ≤ 𝓝 0 by
+        (𝓝 (x₀, y₀) ×ˢ 𝓝 (x₀, y₀))) ≤ 𝓝 0 by
       rwa [uniformity_eq_comap_nhds_zero G, prod_map_map_eq, ← map_le_iff_le_comap, Filter.map_map,
         prod_comap_comap_eq]
     intro W' W'_nhd
feat: port Topology.Algebra.Module.FiniteDimension (#3796)

Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -203,10 +203,12 @@ end MulOpposite
 namespace Subgroup
 
 @[to_additive]
-instance (S : Subgroup α) : UniformGroup S :=
+instance uniformGroup (S : Subgroup α) : UniformGroup S :=
   ⟨uniformContinuous_comap'
       (uniformContinuous_div.comp <|
         uniformContinuous_subtype_val.prod_map uniformContinuous_subtype_val)⟩
+#align subgroup.uniform_group Subgroup.uniformGroup
+#align add_subgroup.uniform_add_group AddSubgroup.uniformAddGroup
 
 end Subgroup
 
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
@@ -215,28 +215,28 @@ section LatticeOps
 variable [Group β]
 
 @[to_additive]
-theorem uniformGroup_infₛ {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
-    @UniformGroup β (infₛ us) _ :=
-  -- Porting note: {_} does not find `infₛ us` instance, see `continuousSMul_infₛ`
+theorem uniformGroup_sInf {us : Set (UniformSpace β)} (h : ∀ u ∈ us, @UniformGroup β u _) :
+    @UniformGroup β (sInf us) _ :=
+  -- Porting note: {_} does not find `sInf us` instance, see `continuousSMul_sInf`
   @UniformGroup.mk β (_) _  <|
-    uniformContinuous_infₛ_rng fun u hu =>
-      uniformContinuous_infₛ_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu))
-#align uniform_group_Inf uniformGroup_infₛ
-#align uniform_add_group_Inf uniformAddGroup_infₛ
+    uniformContinuous_sInf_rng fun u hu =>
+      uniformContinuous_sInf_dom₂ hu hu (@UniformGroup.uniformContinuous_div β u _ (h u hu))
+#align uniform_group_Inf uniformGroup_sInf
+#align uniform_add_group_Inf uniformAddGroup_sInf
 
 @[to_additive]
-theorem uniformGroup_infᵢ {ι : Sort _} {us' : ι → UniformSpace β}
+theorem uniformGroup_iInf {ι : Sort _} {us' : ι → UniformSpace β}
     (h' : ∀ i, @UniformGroup β (us' i) _) : @UniformGroup β (⨅ i, us' i) _ := by
-  rw [← infₛ_range]
-  exact uniformGroup_infₛ (Set.forall_range_iff.mpr h')
-#align uniform_group_infi uniformGroup_infᵢ
-#align uniform_add_group_infi uniformAddGroup_infᵢ
+  rw [← sInf_range]
+  exact uniformGroup_sInf (Set.forall_range_iff.mpr h')
+#align uniform_group_infi uniformGroup_iInf
+#align uniform_add_group_infi uniformAddGroup_iInf
 
 @[to_additive]
 theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β u₁ _)
     (h₂ : @UniformGroup β u₂ _) : @UniformGroup β (u₁ ⊓ u₂) _ := by
-  rw [inf_eq_infᵢ]
-  refine' uniformGroup_infᵢ fun b => _
+  rw [inf_eq_iInf]
+  refine' uniformGroup_iInf fun b => _
   cases b <;> assumption
 #align uniform_group_inf uniformGroup_inf
 #align uniform_add_group_inf uniformAddGroup_inf
@@ -244,7 +244,7 @@ theorem uniformGroup_inf {u₁ u₂ : UniformSpace β} (h₁ : @UniformGroup β
 @[to_additive]
 theorem uniformGroup_comap {γ : Type _} [Group γ] {u : UniformSpace γ} [UniformGroup γ] {F : Type _}
     [MonoidHomClass F β γ] (f : F) : @UniformGroup β (u.comap f) _ :=
-  -- Porting note: {_} does not find `u.comap f` instance, see `continuousSMul_infₛ`
+  -- Porting note: {_} does not find `u.comap f` instance, see `continuousSMul_sInf`
   @UniformGroup.mk β (_) _ <| by
     letI : UniformSpace β := u.comap f
     refine' uniformContinuous_comap' _
@@ -373,7 +373,7 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι →
 theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y ∈ closure ({1} : Set α) :=
   have : Embedding fun a => a * (y / x) := (uniformEmbedding_translate_mul (y / x)).embedding
   show (x, y) ∈ ⋂₀ (𝓤 α).sets ↔ x / y ∈ closure ({1} : Set α) by
-    rw [this.closure_eq_preimage_closure_image, uniformity_eq_comap_nhds_one α, interₛ_comap_sets]
+    rw [this.closure_eq_preimage_closure_image, uniformity_eq_comap_nhds_one α, sInter_comap_sets]
     simp [mem_closure_iff_nhds, inter_singleton_nonempty, sub_eq_add_neg, add_assoc]
 #align group_separation_rel group_separationRel
 #align add_group_separation_rel addGroup_separationRel
@@ -463,12 +463,12 @@ theorem CauchySeq.inv {ι : Type _} [SemilatticeSup ι] {u : ι → α} (h : Cau
 #align cauchy_seq.neg CauchySeq.neg
 
 @[to_additive]
-theorem totallyBounded_iff_subset_finite_unionᵢ_nhds_one {s : Set α} :
+theorem totallyBounded_iff_subset_finite_iUnion_nhds_one {s : Set α} :
     TotallyBounded s ↔ ∀ U ∈ 𝓝 (1 : α), ∃ t : Set α, t.Finite ∧ s ⊆ ⋃ y ∈ t, y • U :=
   (𝓝 (1 : α)).basis_sets.uniformity_of_nhds_one_inv_mul_swapped.totallyBounded_iff.trans <| by
     simp [← preimage_smul_inv, preimage]
-#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_unionᵢ_nhds_one
-#align totally_bounded_iff_subset_finite_Union_nhds_zero totallyBounded_iff_subset_finite_unionᵢ_nhds_zero
+#align totally_bounded_iff_subset_finite_Union_nhds_one totallyBounded_iff_subset_finite_iUnion_nhds_one
+#align totally_bounded_iff_subset_finite_Union_nhds_zero totallyBounded_iff_subset_finite_iUnion_nhds_zero
 
 section UniformConvergence
 
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
@@ -335,8 +335,8 @@ end
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2 / x.1 ∈ U i } :=
-  by
+    (h : (𝓝 (1 : α)).HasBasis p U) :
+    (𝓤 α).HasBasis p fun i => { x : α × α | x.2 / x.1 ∈ U i } := by
   rw [uniformity_eq_comap_nhds_one]
   exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one Filter.HasBasis.uniformity_of_nhds_one
@@ -344,8 +344,8 @@ theorem Filter.HasBasis.uniformity_of_nhds_one {ι} {p : ι → Prop} {U : ι 
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1⁻¹ * x.2 ∈ U i } :=
-  by
+    (h : (𝓝 (1 : α)).HasBasis p U) :
+    (𝓤 α).HasBasis p fun i => { x : α × α | x.1⁻¹ * x.2 ∈ U i } := by
   rw [uniformity_eq_comap_inv_mul_nhds_one]
   exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul Filter.HasBasis.uniformity_of_nhds_one_inv_mul
@@ -353,8 +353,8 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul {ι} {p : ι → Prop} {U
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.1 / x.2 ∈ U i } :=
-  by
+    (h : (𝓝 (1 : α)).HasBasis p U) :
+    (𝓤 α).HasBasis p fun i => { x : α × α | x.1 / x.2 ∈ U i } := by
   rw [uniformity_eq_comap_nhds_one_swapped]
   exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_swapped Filter.HasBasis.uniformity_of_nhds_one_swapped
@@ -362,8 +362,8 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_swapped {ι} {p : ι → Prop} {U
 
 @[to_additive]
 theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι → Prop} {U : ι → Set α}
-    (h : (𝓝 (1 : α)).HasBasis p U) : (𝓤 α).HasBasis p fun i => { x : α × α | x.2⁻¹ * x.1 ∈ U i } :=
-  by
+    (h : (𝓝 (1 : α)).HasBasis p U) :
+    (𝓤 α).HasBasis p fun i => { x : α × α | x.2⁻¹ * x.1 ∈ U i } := by
   rw [uniformity_eq_comap_inv_mul_nhds_one_swapped]
   exact h.comap _
 #align filter.has_basis.uniformity_of_nhds_one_inv_mul_swapped Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped
@@ -372,8 +372,7 @@ theorem Filter.HasBasis.uniformity_of_nhds_one_inv_mul_swapped {ι} {p : ι →
 @[to_additive]
 theorem group_separationRel (x y : α) : (x, y) ∈ separationRel α ↔ x / y ∈ closure ({1} : Set α) :=
   have : Embedding fun a => a * (y / x) := (uniformEmbedding_translate_mul (y / x)).embedding
-  show (x, y) ∈ ⋂₀ (𝓤 α).sets ↔ x / y ∈ closure ({1} : Set α)
-    by
+  show (x, y) ∈ ⋂₀ (𝓤 α).sets ↔ x / y ∈ closure ({1} : Set α) by
     rw [this.closure_eq_preimage_closure_image, uniformity_eq_comap_nhds_one α, interₛ_comap_sets]
     simp [mem_closure_iff_nhds, inter_singleton_nonempty, sub_eq_add_neg, add_assoc]
 #align group_separation_rel group_separationRel
@@ -755,10 +754,8 @@ variable [MonoidHomClass hom β α] {e : hom} (de : DenseInducing e)
 theorem tendsto_div_comap_self (x₀ : α) :
     Tendsto (fun t : β × β => t.2 / t.1) ((comap fun p : β × β => (e p.1, e p.2)) <| 𝓝 (x₀, x₀))
       (𝓝 1) := by
-  have comm :
-    ((fun x : α × α => x.2 / x.1) ∘ fun t : β × β => (e t.1, e t.2)) =
-      e ∘ fun t : β × β => t.2 / t.1 :=
-    by
+  have comm : ((fun x : α × α => x.2 / x.1) ∘ fun t : β × β => (e t.1, e t.2)) =
+      e ∘ fun t : β × β => t.2 / t.1 := by
     ext t
     change e t.2 / e t.1 = e (t.2 / t.1)
     rw [← map_div e t.2 t.1]
@@ -802,11 +799,10 @@ private theorem extend_Z_bilin_aux (x₀ : α) (y₁ : δ) : ∃ U₂ ∈ comap
     (x') (_ : x' ∈ U₂), (fun p : β × δ => φ p.1 p.2) (x' - x, y₁) ∈ W' := by
   let Nx := 𝓝 x₀
   let ee := fun u : β × β => (e u.1, e u.2)
-  have lim1 : Tendsto (fun a : β × β => (a.2 - a.1, y₁)) (comap e Nx ×ᶠ comap e Nx) (𝓝 (0, y₁)) :=
-    by
-    have :=
-      Tendsto.prod_mk (tendsto_sub_comap_self de x₀)
-        (tendsto_const_nhds : Tendsto (fun _ : β × β => y₁) (comap ee <| 𝓝 (x₀, x₀)) (𝓝 y₁))
+  have lim1 : Tendsto (fun a : β × β => (a.2 - a.1, y₁))
+      (comap e Nx ×ᶠ comap e Nx) (𝓝 (0, y₁)) := by
+    have := Tendsto.prod_mk (tendsto_sub_comap_self de x₀)
+      (tendsto_const_nhds : Tendsto (fun _ : β × β => y₁) (comap ee <| 𝓝 (x₀, x₀)) (𝓝 y₁))
     rw [nhds_prod_eq, prod_comap_comap_eq, ← nhds_prod_eq]
     exact (this : _)
   have lim2 : Tendsto (fun p : β × δ => φ p.1 p.2) (𝓝 (0, y₁)) (𝓝 0) := by
@@ -826,12 +822,10 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) : ∃ U ∈ comap e (
     simpa using hφ.tendsto (0, 0)
   have lim_φ_sub_sub :
     Tendsto (fun p : (β × β) × δ × δ => (fun p : β × δ => φ p.1 p.2) (p.1.2 - p.1.1, p.2.2 - p.2.1))
-      ((comap ee <| 𝓝 (x₀, x₀)) ×ᶠ (comap ff <| 𝓝 (y₀, y₀))) (𝓝 0) :=
-    by
+      ((comap ee <| 𝓝 (x₀, x₀)) ×ᶠ (comap ff <| 𝓝 (y₀, y₀))) (𝓝 0) := by
     have lim_sub_sub :
       Tendsto (fun p : (β × β) × δ × δ => (p.1.2 - p.1.1, p.2.2 - p.2.1))
-        (comap ee (𝓝 (x₀, x₀)) ×ᶠ comap ff (𝓝 (y₀, y₀))) (𝓝 0 ×ᶠ 𝓝 0) :=
-      by
+        (comap ee (𝓝 (x₀, x₀)) ×ᶠ comap ff (𝓝 (y₀, y₀))) (𝓝 0 ×ᶠ 𝓝 0) := by
       have := Filter.prod_mono (tendsto_sub_comap_self de x₀) (tendsto_sub_comap_self df y₀)
       rwa [prod_map_map_eq] at this
     rw [← nhds_prod_eq] at lim_sub_sub
@@ -850,8 +844,7 @@ private theorem extend_Z_bilin_key (x₀ : α) (y₀ : γ) : ∃ U ∈ comap e (
   rcases this with ⟨U₁, U₁_nhd, V₁, V₁_nhd, H⟩
   obtain ⟨x₁, x₁_in⟩ : U₁.Nonempty := (de.comap_nhds_neBot _).nonempty_of_mem U₁_nhd
   obtain ⟨y₁, y₁_in⟩ : V₁.Nonempty := (df.comap_nhds_neBot _).nonempty_of_mem V₁_nhd
-  have cont_flip : Continuous fun p : δ × β => φ.flip p.1 p.2 :=
-    by
+  have cont_flip : Continuous fun p : δ × β => φ.flip p.1 p.2 := by
     show Continuous ((fun p : β × δ => φ p.1 p.2) ∘ Prod.swap)
     exact hφ.comp continuous_swap
   rcases extend_Z_bilin_aux de hφ W_nhd x₀ y₁ with ⟨U₂, U₂_nhd, HU⟩
@@ -951,11 +944,8 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
   refine' UniformSpace.complete_of_cauchySeq_tendsto fun x hx => _
   /- Given `n : ℕ`, for sufficiently large `a b : ℕ`, given any lift of `x b`, we can find a lift
     of `x a` such that the quotient of the lifts lies in `u n`. -/
-  have key₀ :
-    ∀ i j : ℕ,
-      ∃ M : ℕ,
-        j < M ∧ ∀ a b : ℕ, M ≤ a → M ≤ b → ∀ g : G, x b = g → ∃ g' : G, g / g' ∈ u i ∧ x a = g' :=
-    by
+  have key₀ : ∀ i j : ℕ, ∃ M : ℕ, j < M ∧ ∀ a b : ℕ, M ≤ a → M ≤ b →
+      ∀ g : G, x b = g → ∃ g' : G, g / g' ∈ u i ∧ x a = g' := by
     have h𝓤GN : (𝓤 (G ⧸ N)).HasBasis (fun _ => True) fun i => { x | x.snd / x.fst ∈ (↑) '' u i } :=
       by simpa [uniformity_eq_comap_nhds_one'] using hv.comap _
     rw [h𝓤GN.cauchySeq_iff] at hx
@@ -994,8 +984,7 @@ instance QuotientGroup.completeSpace' (G : Type u) [Group G] [TopologicalSpace G
     (choose_spec <| (hφ n).2 _ _ (hφ (n + 1)).1.le le_rfl (x' n).fst (x' n).snd).1
   /- The sequence `x'` is Cauchy. This is where we exploit the condition on `u`. The key idea
     is to show by decreasing induction that `x' m / x' n ∈ u m` if `m ≤ n`. -/
-  have x'_cauchy : CauchySeq fun n => (x' n).fst :=
-    by
+  have x'_cauchy : CauchySeq fun n => (x' n).fst := by
     have h𝓤G : (𝓤 G).HasBasis (fun _ => True) fun i => { x | x.snd / x.fst ∈ u i } := by
       simpa [uniformity_eq_comap_nhds_one'] using hu.toHasBasis.comap _
     rw [h𝓤G.cauchySeq_iff']
Diff
@@ -679,8 +679,8 @@ theorem comm_topologicalGroup_is_uniform : UniformGroup G := by
   rw [UniformContinuous, uniformity_prod_eq_prod, tendsto_map'_iff, uniformity_eq_comap_nhds_one' G,
     tendsto_comap_iff, prod_comap_comap_eq]
   simp only [Function.comp, div_eq_mul_inv, mul_inv_rev, inv_inv, mul_comm, mul_left_comm] at *
-  simp [mul_inv_cancel, ←mul_assoc] at this
-  simp_rw [←mul_assoc, ←mul_assoc, mul_comm]
+  simp only [inv_one, mul_one, ← mul_assoc] at this
+  simp_rw [←mul_assoc, mul_comm]
   assumption
 #align topological_comm_group_is_uniform comm_topologicalGroup_is_uniform
 #align topological_add_comm_group_is_uniform comm_topologicalAddGroup_is_uniform
chore: golf (#3473)
  • Golf TopologicalGroup.toUniformSpace.
  • Slightly golf GroupSeminorm.toSeminormedGroup
Diff
@@ -556,53 +556,20 @@ Warning: in general the right and left uniformities do not coincide and so one d
 `UniformAddGroup` structure. Two important special cases where they _do_ coincide are for
 commutative additive groups (see `comm_topologicalAddGroup_is_uniform`) and for compact
 additive groups (see `topologicalAddGroup_is_uniform_of_compactSpace`)."]
-def TopologicalGroup.toUniformSpace : UniformSpace G
-    where
+def TopologicalGroup.toUniformSpace : UniformSpace G where
   uniformity := comap (fun p : G × G => p.2 / p.1) (𝓝 1)
-  refl := by
-    refine' map_le_iff_le_comap.1 (le_trans _ (pure_le_nhds 1));
-      simp (config := { contextual := true }) [Set.subset_def]
+  refl :=  (Tendsto.mono_right (by simp) (pure_le_nhds _)).le_comap
   symm :=
-    by
-    suffices
-      Tendsto (fun p : G × G => (p.2 / p.1)⁻¹) (comap (fun p : G × G => p.2 / p.1) (𝓝 1)) (𝓝 1⁻¹)
-      by simpa [tendsto_comap_iff]
-    exact tendsto_id.inv.comp tendsto_comap
-  comp := by
-    intro D H
-    rw [mem_lift'_sets]
-    · rcases H with ⟨U, U_nhds, U_sub⟩
-      rcases exists_nhds_one_split U_nhds with ⟨V, ⟨V_nhds, V_sum⟩⟩
-      exists (fun p : G × G => p.2 / p.1) ⁻¹' V
-      have H :
-        (fun p : G × G => p.2 / p.1) ⁻¹' V ∈ comap (fun p : G × G => p.2 / p.1) (𝓝 (1 : G)) := by
-        exists V, V_nhds
-      exists H
-      have comp_rel_sub :
-        compRel ((fun p : G × G => p.2 / p.1) ⁻¹' V) ((fun p => p.2 / p.1) ⁻¹' V) ⊆
-          (fun p : G × G => p.2 / p.1) ⁻¹' U :=
-        by
-        intro p p_comp_rel
-        rcases p_comp_rel with ⟨z, ⟨Hz1, Hz2⟩⟩
-        simpa using V_sum _ Hz2 _ Hz1
-      exact Set.Subset.trans comp_rel_sub U_sub
-    · exact monotone_id.compRel monotone_id
-  isOpen_uniformity := by
-    intro S
-    let S' x := { p : G × G | p.1 = x → p.2 ∈ S }
-    show IsOpen S ↔ ∀ x : G, x ∈ S → S' x ∈ comap (fun p : G × G => p.2 / p.1) (𝓝 (1 : G))
-    rw [isOpen_iff_mem_nhds]
-    refine' forall₂_congr fun a ha => _
-    rw [← nhds_translation_div, mem_comap, mem_comap]
-    refine exists_congr fun t => (and_congr_right fun _ => ?_)
-    -- Porting note: was
-    --refine' exists₂_congr fun t ht => _
-    show (fun y : G => y / a) ⁻¹' t ⊆ S ↔ (fun p : G × G => p.snd / p.fst) ⁻¹' t ⊆ S' a
-    constructor
-    · rintro h ⟨x, y⟩ hx rfl
-      exact h hx
-    · rintro h x hx
-      exact @h (a, x) hx rfl
+    have : Tendsto (fun p : G × G ↦ (p.2 / p.1)⁻¹) (comap (fun p : G × G ↦ p.2 / p.1) (𝓝 1))
+      (𝓝 1⁻¹) := tendsto_id.inv.comp tendsto_comap
+    by simpa [tendsto_comap_iff]
+  comp := Tendsto.le_comap <| fun U H ↦ by
+    rcases exists_nhds_one_split H with ⟨V, V_nhds, V_mul⟩
+    refine mem_map.2 (mem_of_superset (mem_lift' <| preimage_mem_comap V_nhds) ?_)
+    rintro ⟨x, y⟩ ⟨z, hz₁, hz₂⟩
+    simpa using V_mul _ hz₂ _ hz₁
+  isOpen_uniformity S := by
+    simp only [isOpen_iff_mem_nhds, ← mem_comap_prod_mk, comap_comap, (· ∘ ·), nhds_translation_div]
 #align topological_group.to_uniform_space TopologicalGroup.toUniformSpace
 #align topological_add_group.to_uniform_space TopologicalAddGroup.toUniformSpace
 
feat: port Topology.Algebra.UniformGroup (#2480)

Co-authored-by: Arien Malec <arien.malec@gmail.com>

Dependencies 9 + 399

400 files ported (97.8%)
175989 lines ported (97.2%)
Show graph

The unported dependencies are