topology.algebra.group.basicMathlib.Topology.Algebra.Group.Basic

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)

(last sync)

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

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

In summary we generalise:

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

and their additivised versions.

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

Diff
@@ -414,7 +414,7 @@ end zpow
 
 section ordered_comm_group
 
-variables [topological_space H] [ordered_comm_group H] [topological_group H]
+variables [topological_space H] [ordered_comm_group H] [has_continuous_inv H]
 
 @[to_additive] lemma tendsto_inv_nhds_within_Ioi {a : H} :
   tendsto has_inv.inv (𝓝[>] a) (𝓝[<] (a⁻¹)) :=
@@ -463,7 +463,7 @@ instance pi.topological_group {C : β → Type*} [∀ b, topological_space (C b)
 open mul_opposite
 
 @[to_additive]
-instance [group α] [has_continuous_inv α] : has_continuous_inv αᵐᵒᵖ :=
+instance [has_inv α] [has_continuous_inv α] : has_continuous_inv αᵐᵒᵖ :=
 op_homeomorph.symm.inducing.has_continuous_inv unop_inv
 
 /-- If multiplication is continuous in `α`, then it also is in `αᵐᵒᵖ`. -/
@@ -1049,12 +1049,17 @@ class add_group_with_zero_nhd (G : Type u) extends add_comm_group G :=
 section filter_mul
 
 section
-variables (G) [topological_space G] [group G] [topological_group G]
+variables (G) [topological_space G] [group G] [has_continuous_mul G]
 
 @[to_additive]
 lemma topological_group.t1_space (h : @is_closed G _ {1}) : t1_space G :=
 ⟨assume x, by { convert is_closed_map_mul_right x _ h, simp }⟩
 
+end
+
+section
+variables (G) [topological_space G] [group G] [topological_group G]
+
 @[priority 100, to_additive]
 instance topological_group.regular_space : regular_space G :=
 begin
@@ -1071,22 +1076,21 @@ begin
 end
 
 @[to_additive]
-lemma topological_group.t3_space [t1_space G] : t3_space G := ⟨⟩
+lemma topological_group.t3_space [t0_space G] : t3_space G := ⟨⟩
 
 @[to_additive]
-lemma topological_group.t2_space [t1_space G] : t2_space G :=
+lemma topological_group.t2_space [t0_space G] : t2_space G :=
 by { haveI := topological_group.t3_space G, apply_instance }
 
 variables {G} (S : subgroup G) [subgroup.normal S] [is_closed (S : set G)]
 
 @[to_additive]
 instance subgroup.t3_quotient_of_is_closed
-  (S : subgroup G) [subgroup.normal S] [is_closed (S : set G)] : t3_space (G ⧸ S) :=
+  (S : subgroup G) [subgroup.normal S] [hS : is_closed (S : set G)] : t3_space (G ⧸ S) :=
 begin
-  suffices : t1_space (G ⧸ S), { exact @topological_group.t3_space _ _ _ _ this, },
-  have hS : is_closed (S : set G) := infer_instance,
   rw ← quotient_group.ker_mk S at hS,
-  exact topological_group.t1_space (G ⧸ S) ((quotient_map_quotient_mk.is_closed_preimage).mp hS),
+  haveI := topological_group.t1_space (G ⧸ S) (quotient_map_quotient_mk.is_closed_preimage.mp hS),
+  exact topological_group.t3_space _,
 end
 
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
@@ -1141,7 +1145,7 @@ section
 
 /-! Some results about an open set containing the product of two sets in a topological group. -/
 
-variables [topological_space G] [group G] [topological_group G]
+variables [topological_space G] [mul_one_class G] [has_continuous_mul G]
 
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `K * V ⊆ U`. -/
@@ -1183,6 +1187,11 @@ begin
     preimage_image_eq _ op_injective] at hV'
 end
 
+end
+
+section
+variables [topological_space G] [group G] [topological_group G]
+
 /-- A compact set is covered by finitely many left multiplicative translates of a set
   with non-empty interior. -/
 @[to_additive "A compact set is covered by finitely many left additive translates of a set
@@ -1293,7 +1302,7 @@ instance {G} [topological_space G] [add_group G] [topological_add_group G] :
 { continuous_inv := @continuous_neg G _ _ _ }
 
 section quotient
-variables [group G] [topological_space G] [topological_group G] {Γ : subgroup G}
+variables [group G] [topological_space G] [has_continuous_mul G] {Γ : subgroup G}
 
 @[to_additive]
 instance quotient_group.has_continuous_const_smul : has_continuous_const_smul G (G ⧸ Γ) :=

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

refactor(topology/algebra/field): drop topological_space_units (#18536)

See Zulip chat

Also generalize TC assumptions in inv_mem_iff.

Diff
@@ -1316,6 +1316,14 @@ has_continuous_const_smul.second_countable_topology
 
 end quotient
 
+/-- If `G` is a group with topological `⁻¹`, then it is homeomorphic to its units. -/
+@[to_additive " If `G` is an additive group with topological negation, then it is homeomorphic to
+its additive units."]
+def to_units_homeomorph [group G] [topological_space G] [has_continuous_inv G] : G ≃ₜ Gˣ :=
+{ to_equiv := to_units.to_equiv,
+  continuous_to_fun := units.continuous_iff.2 ⟨continuous_id, continuous_inv⟩,
+  continuous_inv_fun := units.continuous_coe }
+
 namespace units
 
 open mul_opposite (continuous_op continuous_unop)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -1058,7 +1058,7 @@ theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [Topolog
 theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _)
     (h : @nhds G t 1 = @nhds G t' 1) : t = t' :=
-  eq_of_nhds_eq_nhds fun x => by
+  TopologicalSpace.ext_nhds fun x => by
     rw [← @nhds_translation_mul_inv G t _ _ x, ← @nhds_translation_mul_inv G t' _ _ x, ← h]
 #align topological_group.ext TopologicalGroup.ext
 #align topological_add_group.ext TopologicalAddGroup.ext
Diff
@@ -768,7 +768,7 @@ theorem nhds_one_symm' : map Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
 #print inv_mem_nhds_one /-
 @[to_additive]
 theorem inv_mem_nhds_one {S : Set G} (hS : S ∈ (𝓝 1 : Filter G)) : S⁻¹ ∈ 𝓝 (1 : G) := by
-  rwa [← nhds_one_symm'] at hS 
+  rwa [← nhds_one_symm'] at hS
 #align inv_mem_nhds_one inv_mem_nhds_one
 #align neg_mem_nhds_zero neg_mem_nhds_zero
 -/
@@ -1213,7 +1213,7 @@ theorem TopologicalGroup.exists_antitone_basis_nhds_one :
     ((hu.prod_nhds hu).tendsto_iffₓ hu).mp
       (by simpa only [mul_one] using continuous_mul.tendsto ((1, 1) : G × G))
   simp only [and_self_iff, mem_prod, and_imp, Prod.forall, exists_true_left, Prod.exists,
-    forall_true_left] at this 
+    forall_true_left] at this
   have event_mul : ∀ n : ℕ, ∀ᶠ m in at_top, u m * u m ⊆ u n :=
     by
     intro n
@@ -1521,7 +1521,7 @@ theorem subset_interior_mul : interior s * interior t ⊆ interior (s * t) :=
 #print singleton_mul_mem_nhds /-
 @[to_additive]
 theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s ∈ 𝓝 (a * b) := by
-  have := smul_mem_nhds a h; rwa [← singleton_smul] at this 
+  have := smul_mem_nhds a h; rwa [← singleton_smul] at this
 #align singleton_mul_mem_nhds singleton_mul_mem_nhds
 #align singleton_add_mem_nhds singleton_add_mem_nhds
 -/
@@ -1633,7 +1633,7 @@ theorem subset_interior_div : interior s / interior t ⊆ interior (s / t) :=
 theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t :=
   by
   refine' (mul_subset_iff.2 fun a ha b hb => _).antisymm (mul_subset_mul_left subset_closure)
-  rw [mem_closure_iff] at hb 
+  rw [mem_closure_iff] at hb
   have hbU : b ∈ s⁻¹ * {a * b} := ⟨a⁻¹, a * b, Set.inv_mem_inv.2 ha, rfl, inv_mul_cancel_left _ _⟩
   obtain ⟨_, ⟨c, d, hc, rfl : d = _, rfl⟩, hcs⟩ := hb _ hs.inv.mul_right hbU
   exact ⟨c⁻¹, _, hc, hcs, inv_mul_cancel_left _ _⟩
@@ -1709,7 +1709,7 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
   have : tendsto (fun p : G × G => p.1 * p.2) (𝓝 (a, 1)) (𝓝 a) :=
     continuous_mul.tendsto' _ _ (mul_one a)
   rcases mem_nhds_prod_iff.mp (this hs) with ⟨U, hU, V, hV, hUV⟩
-  rw [← image_subset_iff, image_prod] at hUV 
+  rw [← image_subset_iff, image_prod] at hUV
   refine' ⟨closure U, mem_of_superset hU subset_closure, isClosed_closure, _⟩
   calc
     closure U ⊆ closure U * interior V := subset_mul_left _ (mem_interior_iff_mem_nhds.2 hV)
@@ -1744,7 +1744,7 @@ variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
     [hS : IsClosed (S : Set G)] : T3Space (G ⧸ S) :=
   by
-  rw [← QuotientGroup.ker_mk' S] at hS 
+  rw [← QuotientGroup.ker_mk' S] at hS
   haveI := TopologicalGroup.t1Space (G ⧸ S) (quotient_map_quotient_mk.is_closed_preimage.mp hS)
   exact inferInstance _
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
@@ -1763,7 +1763,7 @@ theorem Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite (S : Subgroup G)
     finiteₓ_disjoint_inter_image := by
       intro K L hK hL
       have H : Set.Finite _ := hS ((hL.prod hK).image continuous_div').compl_mem_cocompact
-      rw [preimage_compl, compl_compl] at H 
+      rw [preimage_compl, compl_compl] at H
       convert H
       ext x
       simpa only [image_smul, mem_image, Prod.exists] using Set.smul_inter_ne_empty_iff' }
@@ -1790,7 +1790,7 @@ theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Sub
       have : Continuous fun p : G × G => (p.1⁻¹, p.2) := continuous_inv.prod_map continuous_id
       have H : Set.Finite _ :=
         hS ((hK.prod hL).image (continuous_mul.comp this)).compl_mem_cocompact
-      rw [preimage_compl, compl_compl] at H 
+      rw [preimage_compl, compl_compl] at H
       convert H
       ext x
       simpa only [image_smul, mem_image, Prod.exists] using Set.op_smul_inter_ne_empty_iff }
@@ -1827,9 +1827,9 @@ theorem compact_open_separated_mul_right {K U : Set G} (hK : IsCompact K) (hU :
         ((mul_subset_mul_left (V.inter_subset_right W)).trans hW')
   · intro x hx
     have := tendsto_mul (show U ∈ 𝓝 (x * 1) by simpa using hU.mem_nhds (hKU hx))
-    rw [nhds_prod_eq, mem_map, mem_prod_iff] at this 
+    rw [nhds_prod_eq, mem_map, mem_prod_iff] at this
     rcases this with ⟨t, ht, s, hs, h⟩
-    rw [← image_subset_iff, image_mul_prod] at h 
+    rw [← image_subset_iff, image_mul_prod] at h
     exact ⟨t, mem_nhdsWithin_of_mem_nhds ht, s, hs, h⟩
 #align compact_open_separated_mul_right compact_open_separated_mul_right
 #align compact_open_separated_add_right compact_open_separated_add_right
@@ -1850,7 +1850,7 @@ theorem compact_open_separated_mul_left {K U : Set G} (hK : IsCompact K) (hU : I
     ⟨V, hV : V ∈ 𝓝 (op (1 : G)), hV' : op '' K * V ⊆ op '' U⟩
   refine' ⟨op ⁻¹' V, continuous_op.continuous_at hV, _⟩
   rwa [← image_preimage_eq V op_surjective, ← image_op_mul, image_subset_iff,
-    preimage_image_eq _ op_injective] at hV' 
+    preimage_image_eq _ op_injective] at hV'
 #align compact_open_separated_mul_left compact_open_separated_mul_left
 #align compact_open_separated_add_left compact_open_separated_add_left
 -/
@@ -1896,7 +1896,7 @@ instance (priority := 100) SeparableWeaklyLocallyCompactGroup.sigmaCompactSpace
   · refine' Union_eq_univ_iff.2 fun x => _
     obtain ⟨_, ⟨n, rfl⟩, hn⟩ : (range (dense_seq G) ∩ (fun y => x * y) ⁻¹' L).Nonempty :=
       by
-      rw [← (Homeomorph.mulLeft x).apply_symm_apply 1] at hL1 
+      rw [← (Homeomorph.mulLeft x).apply_symm_apply 1] at hL1
       exact
         (dense_range_dense_seq G).inter_nhds_nonempty
           ((Homeomorph.mulLeft x).Continuous.ContinuousAt <| hL1)
@@ -2275,7 +2275,7 @@ local notation "cont" => @Continuous _ _
 @[to_additive "Infimum of a collection of additive group topologies"]
 instance : InfSet (GroupTopology α)
     where sInf S :=
-    ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| ball_image_iff.2 fun t ht => t.2⟩
+    ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| forall_mem_image.2 fun t ht => t.2⟩
 
 #print GroupTopology.toTopologicalSpace_sInf /-
 @[simp, to_additive]
Diff
@@ -1705,7 +1705,7 @@ variable (G) [TopologicalSpace G] [Group G] [TopologicalGroup G]
 @[to_additive]
 instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
   by
-  refine' RegularSpace.ofExistsMemNhdsIsClosedSubset fun a s hs => _
+  refine' RegularSpace.of_exists_mem_nhds_isClosed_subset fun a s hs => _
   have : tendsto (fun p : G × G => p.1 * p.2) (𝓝 (a, 1)) (𝓝 a) :=
     continuous_mul.tendsto' _ _ (mul_one a)
   rcases mem_nhds_prod_iff.mp (this hs) with ⟨U, hU, V, hV, hUV⟩
Diff
@@ -1760,7 +1760,7 @@ it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See a
 theorem Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite (S : Subgroup G)
     (hS : Tendsto S.Subtype cofinite (cocompact G)) : ProperlyDiscontinuousSMul S G :=
   {
-    finite_disjoint_inter_image := by
+    finiteₓ_disjoint_inter_image := by
       intro K L hK hL
       have H : Set.Finite _ := hS ((hL.prod hK).image continuous_div').compl_mem_cocompact
       rw [preimage_compl, compl_compl] at H 
@@ -1785,7 +1785,7 @@ to show that the quotient group `G ⧸ S` is Hausdorff. -/
 theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Subgroup G)
     (hS : Tendsto S.Subtype cofinite (cocompact G)) : ProperlyDiscontinuousSMul S.opEquiv G :=
   {
-    finite_disjoint_inter_image := by
+    finiteₓ_disjoint_inter_image := by
       intro K L hK hL
       have : Continuous fun p : G × G => (p.1⁻¹, p.2) := continuous_inv.prod_map continuous_id
       have H : Set.Finite _ :=
Diff
@@ -1668,7 +1668,7 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 
 end TopologicalGroup
 
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
 
Diff
@@ -1720,23 +1720,21 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 -/
 
-/- warning: topological_group.t3_space clashes with infer_instance -> inferInstance
-Case conversion may be inaccurate. Consider using '#align topological_group.t3_space inferInstanceₓ'. -/
 #print inferInstance /-
 @[to_additive]
 theorem inferInstance [T0Space G] : T3Space G :=
   ⟨⟩
 #align topological_group.t3_space inferInstance
-#align infer_instance inferInstance
+#align topological_group.t3_space inferInstance
 -/
 
-/- warning: topological_group.t2_space clashes with infer_instance -> inferInstance
+/- warning: topological_group.t2_space clashes with topological_group.t3_space -> inferInstance
 Case conversion may be inaccurate. Consider using '#align topological_group.t2_space inferInstanceₓ'. -/
 #print inferInstance /-
 @[to_additive]
 theorem inferInstance [T0Space G] : T2Space G := by haveI := inferInstance G; infer_instance
 #align topological_group.t2_space inferInstance
-#align infer_instance inferInstance
+#align topological_group.t3_space inferInstance
 -/
 
 variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
Diff
@@ -1668,7 +1668,7 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 
 end TopologicalGroup
 
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
 
Diff
@@ -93,7 +93,7 @@ theorem isOpenMap_mul_left (a : G) : IsOpenMap fun x => a * x :=
 
 #print IsOpen.leftCoset /-
 @[to_additive IsOpen.left_addCoset]
-theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset x U) :=
+theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (HSMul.hSMul x U) :=
   isOpenMap_mul_left x _ h
 #align is_open.left_coset IsOpen.leftCoset
 #align is_open.left_add_coset IsOpen.left_addCoset
@@ -109,7 +109,7 @@ theorem isClosedMap_mul_left (a : G) : IsClosedMap fun x => a * x :=
 
 #print IsClosed.leftCoset /-
 @[to_additive IsClosed.left_addCoset]
-theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (leftCoset x U) :=
+theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (HSMul.hSMul x U) :=
   isClosedMap_mul_left x _ h
 #align is_closed.left_coset IsClosed.leftCoset
 #align is_closed.left_add_coset IsClosed.left_addCoset
Diff
@@ -174,9 +174,9 @@ theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rig
 #align is_closed.right_add_coset IsClosed.right_addCoset
 -/
 
-#print discreteTopology_of_open_singleton_one /-
+#print discreteTopology_of_isOpen_singleton_one /-
 @[to_additive]
-theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : DiscreteTopology G :=
+theorem discreteTopology_of_isOpen_singleton_one (h : IsOpen ({1} : Set G)) : DiscreteTopology G :=
   by
   rw [← singletons_open_iff_discrete]
   intro g
@@ -184,16 +184,16 @@ theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : Disc
     exact (continuous_mul_left g⁻¹).isOpen_preimage _ h
   simp only [mul_one, Set.preimage_mul_left_singleton, eq_self_iff_true, inv_inv,
     Set.singleton_eq_singleton_iff]
-#align discrete_topology_of_open_singleton_one discreteTopology_of_open_singleton_one
-#align discrete_topology_of_open_singleton_zero discreteTopology_of_open_singleton_zero
+#align discrete_topology_of_open_singleton_one discreteTopology_of_isOpen_singleton_one
+#align discrete_topology_of_open_singleton_zero discreteTopology_of_isOpen_singleton_zero
 -/
 
-#print discreteTopology_iff_open_singleton_one /-
+#print discreteTopology_iff_isOpen_singleton_one /-
 @[to_additive]
-theorem discreteTopology_iff_open_singleton_one : DiscreteTopology G ↔ IsOpen ({1} : Set G) :=
-  ⟨fun h => forall_open_iff_discrete.mpr h {1}, discreteTopology_of_open_singleton_one⟩
-#align discrete_topology_iff_open_singleton_one discreteTopology_iff_open_singleton_one
-#align discrete_topology_iff_open_singleton_zero discreteTopology_iff_open_singleton_zero
+theorem discreteTopology_iff_isOpen_singleton_one : DiscreteTopology G ↔ IsOpen ({1} : Set G) :=
+  ⟨fun h => forall_open_iff_discrete.mpr h {1}, discreteTopology_of_isOpen_singleton_one⟩
+#align discrete_topology_iff_open_singleton_one discreteTopology_iff_isOpen_singleton_one
+#align discrete_topology_iff_open_singleton_zero discreteTopology_iff_isOpen_singleton_zero
 -/
 
 end ContinuousMulGroup
Diff
@@ -1785,7 +1785,7 @@ to show that the quotient group `G ⧸ S` is Hausdorff. -/
 @[to_additive
       "A subgroup `S` of an additive topological group `G` acts on `G` properly\ndiscontinuously on the right, if it is discrete in the sense that `S ∩ K` is finite for all compact\n`K`. (See also `discrete_topology`.)\n\nIf `G` is Hausdorff, this can be combined with `t2_space_of_properly_discontinuous_vadd_of_t2_space`\nto show that the quotient group `G ⧸ S` is Hausdorff."]
 theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Subgroup G)
-    (hS : Tendsto S.Subtype cofinite (cocompact G)) : ProperlyDiscontinuousSMul S.opposite G :=
+    (hS : Tendsto S.Subtype cofinite (cocompact G)) : ProperlyDiscontinuousSMul S.opEquiv G :=
   {
     finite_disjoint_inter_image := by
       intro K L hK hL
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
 -/
-import Mathbin.GroupTheory.GroupAction.ConjAct
-import Mathbin.GroupTheory.GroupAction.Quotient
-import Mathbin.GroupTheory.QuotientGroup
-import Mathbin.Topology.Algebra.Monoid
-import Mathbin.Topology.Algebra.Constructions
+import GroupTheory.GroupAction.ConjAct
+import GroupTheory.GroupAction.Quotient
+import GroupTheory.QuotientGroup
+import Topology.Algebra.Monoid
+import Topology.Algebra.Constructions
 
 #align_import topology.algebra.group.basic from "leanprover-community/mathlib"@"3b1890e71632be9e3b2086ab512c3259a7e9a3ef"
 
@@ -1668,7 +1668,7 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 
 end TopologicalGroup
 
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
 
@@ -1953,7 +1953,7 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
       _ ⊆ V * V := (mul_subset_mul_right interior_subset)
       _ ⊆ L := by rintro x ⟨y, z, yv, zv, rfl⟩; exact hV _ yv _ zv
   exact
-    ⟨closure V, isCompact_of_isClosed_subset Lcomp isClosed_closure VL, isClosed_closure,
+    ⟨closure V, IsCompact.of_isClosed_subset Lcomp isClosed_closure VL, isClosed_closure,
       VL.trans LU, interior_mono subset_closure (mem_interior_iff_mem_nhds.2 Vnhds)⟩
 #align local_is_compact_is_closed_nhds_of_group local_isCompact_isClosed_nhds_of_group
 #align local_is_compact_is_closed_nhds_of_add_group local_isCompact_isClosed_nhds_of_addGroup
Diff
@@ -1720,20 +1720,23 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 -/
 
-#print TopologicalGroup.t3Space /-
+/- warning: topological_group.t3_space clashes with infer_instance -> inferInstance
+Case conversion may be inaccurate. Consider using '#align topological_group.t3_space inferInstanceₓ'. -/
+#print inferInstance /-
 @[to_additive]
-theorem TopologicalGroup.t3Space [T0Space G] : T3Space G :=
+theorem inferInstance [T0Space G] : T3Space G :=
   ⟨⟩
-#align topological_group.t3_space TopologicalGroup.t3Space
-#align topological_add_group.t3_space TopologicalAddGroup.t3Space
+#align topological_group.t3_space inferInstance
+#align infer_instance inferInstance
 -/
 
-#print TopologicalGroup.t2Space /-
+/- warning: topological_group.t2_space clashes with infer_instance -> inferInstance
+Case conversion may be inaccurate. Consider using '#align topological_group.t2_space inferInstanceₓ'. -/
+#print inferInstance /-
 @[to_additive]
-theorem TopologicalGroup.t2Space [T0Space G] : T2Space G := by haveI := TopologicalGroup.t3Space G;
-  infer_instance
-#align topological_group.t2_space TopologicalGroup.t2Space
-#align topological_add_group.t2_space TopologicalAddGroup.t2Space
+theorem inferInstance [T0Space G] : T2Space G := by haveI := inferInstance G; infer_instance
+#align topological_group.t2_space inferInstance
+#align infer_instance inferInstance
 -/
 
 variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
@@ -1745,7 +1748,7 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
   by
   rw [← QuotientGroup.ker_mk' S] at hS 
   haveI := TopologicalGroup.t1Space (G ⧸ S) (quotient_map_quotient_mk.is_closed_preimage.mp hS)
-  exact TopologicalGroup.t3Space _
+  exact inferInstance _
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
 -/
Diff
@@ -1881,15 +1881,15 @@ theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
 #align compact_covered_by_add_left_translates compact_covered_by_add_left_translates
 -/
 
-#print SeparableLocallyCompactGroup.sigmaCompactSpace /-
+#print SeparableWeaklyLocallyCompactGroup.sigmaCompactSpace /-
 /-- Every locally compact separable topological group is σ-compact.
   Note: this is not true if we drop the topological group hypothesis. -/
-@[to_additive SeparableLocallyCompactAddGroup.sigmaCompactSpace
+@[to_additive SeparableWeaklyLocallyCompactAddGroup.sigmaCompactSpace
       "Every locally\ncompact separable topological group is σ-compact.\nNote: this is not true if we drop the topological group hypothesis."]
-instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [SeparableSpace G]
+instance (priority := 100) SeparableWeaklyLocallyCompactGroup.sigmaCompactSpace [SeparableSpace G]
     [LocallyCompactSpace G] : SigmaCompactSpace G :=
   by
-  obtain ⟨L, hLc, hL1⟩ := exists_compact_mem_nhds (1 : G)
+  obtain ⟨L, hLc, hL1⟩ := WeaklyLocallyCompactSpace.exists_compact_mem_nhds (1 : G)
   refine' ⟨⟨fun n => (fun x => x * dense_seq G n) ⁻¹' L, _, _⟩⟩
   · intro n; exact (Homeomorph.mulRight _).isCompact_preimage.mpr hLc
   · refine' Union_eq_univ_iff.2 fun x => _
@@ -1900,8 +1900,8 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
         (dense_range_dense_seq G).inter_nhds_nonempty
           ((Homeomorph.mulLeft x).Continuous.ContinuousAt <| hL1)
     exact ⟨n, hn⟩
-#align separable_locally_compact_group.sigma_compact_space SeparableLocallyCompactGroup.sigmaCompactSpace
-#align separable_locally_compact_add_group.sigma_compact_space SeparableLocallyCompactAddGroup.sigmaCompactSpace
+#align separable_locally_compact_group.sigma_compact_space SeparableWeaklyLocallyCompactGroup.sigmaCompactSpace
+#align separable_locally_compact_add_group.sigma_compact_space SeparableWeaklyLocallyCompactAddGroup.sigmaCompactSpace
 -/
 
 #print exists_disjoint_smul_of_isCompact /-
Diff
@@ -2191,7 +2191,7 @@ theorem toTopologicalSpace_injective :
 #print GroupTopology.ext' /-
 @[ext, to_additive]
 theorem ext' {f g : GroupTopology α} (h : f.IsOpen = g.IsOpen) : f = g :=
-  toTopologicalSpace_injective <| topologicalSpace_eq h
+  toTopologicalSpace_injective <| TopologicalSpace.ext h
 #align group_topology.ext' GroupTopology.ext'
 #align add_group_topology.ext' AddGroupTopology.ext'
 -/
Diff
@@ -947,7 +947,7 @@ def Subgroup.connectedComponentOfOne (G : Type _) [TopologicalSpace G] [Group G]
     where
   carrier := connectedComponent (1 : G)
   one_mem' := mem_connectedComponent
-  mul_mem' g h hg hh := mul_mem_connectedComponent_one hg hh
+  hMul_mem' g h hg hh := mul_mem_connectedComponent_one hg hh
   inv_mem' g hg := inv_mem_connectedComponent_one hg
 #align subgroup.connected_component_of_one Subgroup.connectedComponentOfOne
 #align add_subgroup.connected_component_of_zero AddSubgroup.connectedComponentOfZero
@@ -1171,7 +1171,7 @@ theorem QuotientGroup.isOpenMap_coe : IsOpenMap (coe : G → G ⧸ N) :=
 @[to_additive]
 instance topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N)
     where
-  continuous_mul :=
+  continuous_hMul :=
     by
     have cont : Continuous ((coe : G → G ⧸ N) ∘ fun p : G × G => p.fst * p.snd) :=
       continuous_quot_mk.comp continuous_mul
@@ -2215,7 +2215,7 @@ theorem toTopologicalSpace_le {x y : GroupTopology α} :
 @[to_additive]
 instance : Top (GroupTopology α) :=
   ⟨{  toTopologicalSpace := ⊤
-      continuous_mul := continuous_top
+      continuous_hMul := continuous_top
       continuous_inv := continuous_top }⟩
 
 #print GroupTopology.toTopologicalSpace_top /-
@@ -2229,7 +2229,7 @@ theorem toTopologicalSpace_top : (⊤ : GroupTopology α).toTopologicalSpace = 
 @[to_additive]
 instance : Bot (GroupTopology α) :=
   ⟨{  toTopologicalSpace := ⊥
-      continuous_mul := by letI : TopologicalSpace α := ⊥; haveI := discreteTopology_bot α;
+      continuous_hMul := by letI : TopologicalSpace α := ⊥; haveI := discreteTopology_bot α;
         continuity
       continuous_inv := continuous_bot }⟩
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
-
-! This file was ported from Lean 3 source module topology.algebra.group.basic
-! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.GroupTheory.GroupAction.ConjAct
 import Mathbin.GroupTheory.GroupAction.Quotient
@@ -14,6 +9,8 @@ import Mathbin.GroupTheory.QuotientGroup
 import Mathbin.Topology.Algebra.Monoid
 import Mathbin.Topology.Algebra.Constructions
 
+#align_import topology.algebra.group.basic from "leanprover-community/mathlib"@"3b1890e71632be9e3b2086ab512c3259a7e9a3ef"
+
 /-!
 # Topological groups
 
Diff
@@ -1671,7 +1671,6 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 
 end TopologicalGroup
 
-#print AddGroupWithZeroNhd /-
 /- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
@@ -1684,7 +1683,6 @@ class AddGroupWithZeroNhd (G : Type u) extends AddCommGroup G where
   zero_z : pure 0 ≤ Z
   sub_z : Tendsto (fun p : G × G => p.1 - p.2) (Z ×ᶠ Z) Z
 #align add_group_with_zero_nhd AddGroupWithZeroNhd
--/
 
 section FilterMul
 
Diff
@@ -1184,7 +1184,7 @@ instance topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N)
       · exact (QuotientGroup.isOpenMap_coe N).Prod (QuotientGroup.isOpenMap_coe N)
       · exact continuous_quot_mk.prod_map continuous_quot_mk
       · exact (surjective_quot_mk _).Prod_map (surjective_quot_mk _)
-    exact (QuotientMap.continuous_iff Quot).2 cont
+    exact (QuotientMap.continuous_iff Quot).2 Cont
   continuous_inv := by convert (@continuous_inv G _ _ _).quotient_map' _
 #align topological_group_quotient topologicalGroup_quotient
 #align topological_add_group_quotient topologicalAddGroup_quotient
Diff
@@ -59,6 +59,7 @@ In this section we prove a few statements about groups with continuous `(*)`.
 
 variable [TopologicalSpace G] [Group G] [ContinuousMul G]
 
+#print Homeomorph.mulLeft /-
 /-- Multiplication from the left in a topological group as a homeomorphism. -/
 @[to_additive "Addition from the left in a topological additive group as a homeomorphism."]
 protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
@@ -67,43 +68,57 @@ protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
     continuous_invFun := continuous_const.mul continuous_id }
 #align homeomorph.mul_left Homeomorph.mulLeft
 #align homeomorph.add_left Homeomorph.addLeft
+-/
 
+#print Homeomorph.coe_mulLeft /-
 @[simp, to_additive]
 theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (· * ·) a :=
   rfl
 #align homeomorph.coe_mul_left Homeomorph.coe_mulLeft
 #align homeomorph.coe_add_left Homeomorph.coe_addLeft
+-/
 
+#print Homeomorph.mulLeft_symm /-
 @[to_additive]
 theorem Homeomorph.mulLeft_symm (a : G) : (Homeomorph.mulLeft a).symm = Homeomorph.mulLeft a⁻¹ := by
   ext; rfl
 #align homeomorph.mul_left_symm Homeomorph.mulLeft_symm
 #align homeomorph.add_left_symm Homeomorph.addLeft_symm
+-/
 
+#print isOpenMap_mul_left /-
 @[to_additive]
 theorem isOpenMap_mul_left (a : G) : IsOpenMap fun x => a * x :=
   (Homeomorph.mulLeft a).IsOpenMap
 #align is_open_map_mul_left isOpenMap_mul_left
 #align is_open_map_add_left isOpenMap_add_left
+-/
 
+#print IsOpen.leftCoset /-
 @[to_additive IsOpen.left_addCoset]
 theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset x U) :=
   isOpenMap_mul_left x _ h
 #align is_open.left_coset IsOpen.leftCoset
 #align is_open.left_add_coset IsOpen.left_addCoset
+-/
 
+#print isClosedMap_mul_left /-
 @[to_additive]
 theorem isClosedMap_mul_left (a : G) : IsClosedMap fun x => a * x :=
   (Homeomorph.mulLeft a).IsClosedMap
 #align is_closed_map_mul_left isClosedMap_mul_left
 #align is_closed_map_add_left isClosedMap_add_left
+-/
 
+#print IsClosed.leftCoset /-
 @[to_additive IsClosed.left_addCoset]
 theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (leftCoset x U) :=
   isClosedMap_mul_left x _ h
 #align is_closed.left_coset IsClosed.leftCoset
 #align is_closed.left_add_coset IsClosed.left_addCoset
+-/
 
+#print Homeomorph.mulRight /-
 /-- Multiplication from the right in a topological group as a homeomorphism. -/
 @[to_additive "Addition from the right in a topological additive group as a homeomorphism."]
 protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
@@ -112,43 +127,57 @@ protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
     continuous_invFun := continuous_id.mul continuous_const }
 #align homeomorph.mul_right Homeomorph.mulRight
 #align homeomorph.add_right Homeomorph.addRight
+-/
 
+#print Homeomorph.coe_mulRight /-
 @[simp, to_additive]
 theorem Homeomorph.coe_mulRight (a : G) : ⇑(Homeomorph.mulRight a) = fun g => g * a :=
   rfl
 #align homeomorph.coe_mul_right Homeomorph.coe_mulRight
 #align homeomorph.coe_add_right Homeomorph.coe_addRight
+-/
 
+#print Homeomorph.mulRight_symm /-
 @[to_additive]
 theorem Homeomorph.mulRight_symm (a : G) : (Homeomorph.mulRight a).symm = Homeomorph.mulRight a⁻¹ :=
   by ext; rfl
 #align homeomorph.mul_right_symm Homeomorph.mulRight_symm
 #align homeomorph.add_right_symm Homeomorph.addRight_symm
+-/
 
+#print isOpenMap_mul_right /-
 @[to_additive]
 theorem isOpenMap_mul_right (a : G) : IsOpenMap fun x => x * a :=
   (Homeomorph.mulRight a).IsOpenMap
 #align is_open_map_mul_right isOpenMap_mul_right
 #align is_open_map_add_right isOpenMap_add_right
+-/
 
+#print IsOpen.rightCoset /-
 @[to_additive IsOpen.right_addCoset]
 theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (rightCoset U x) :=
   isOpenMap_mul_right x _ h
 #align is_open.right_coset IsOpen.rightCoset
 #align is_open.right_add_coset IsOpen.right_addCoset
+-/
 
+#print isClosedMap_mul_right /-
 @[to_additive]
 theorem isClosedMap_mul_right (a : G) : IsClosedMap fun x => x * a :=
   (Homeomorph.mulRight a).IsClosedMap
 #align is_closed_map_mul_right isClosedMap_mul_right
 #align is_closed_map_add_right isClosedMap_add_right
+-/
 
+#print IsClosed.rightCoset /-
 @[to_additive IsClosed.right_addCoset]
 theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rightCoset U x) :=
   isClosedMap_mul_right x _ h
 #align is_closed.right_coset IsClosed.rightCoset
 #align is_closed.right_add_coset IsClosed.right_addCoset
+-/
 
+#print discreteTopology_of_open_singleton_one /-
 @[to_additive]
 theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : DiscreteTopology G :=
   by
@@ -160,12 +189,15 @@ theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : Disc
     Set.singleton_eq_singleton_iff]
 #align discrete_topology_of_open_singleton_one discreteTopology_of_open_singleton_one
 #align discrete_topology_of_open_singleton_zero discreteTopology_of_open_singleton_zero
+-/
 
+#print discreteTopology_iff_open_singleton_one /-
 @[to_additive]
 theorem discreteTopology_iff_open_singleton_one : DiscreteTopology G ↔ IsOpen ({1} : Set G) :=
   ⟨fun h => forall_open_iff_discrete.mpr h {1}, discreteTopology_of_open_singleton_one⟩
 #align discrete_topology_iff_open_singleton_one discreteTopology_iff_open_singleton_one
 #align discrete_topology_iff_open_singleton_zero discreteTopology_iff_open_singleton_zero
+-/
 
 end ContinuousMulGroup
 
@@ -321,6 +353,7 @@ section PointwiseLimits
 
 variable (G₁ G₂ : Type _) [TopologicalSpace G₂] [T2Space G₂]
 
+#print isClosed_setOf_map_inv /-
 @[to_additive]
 theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
     IsClosed {f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹} :=
@@ -329,6 +362,7 @@ theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
   refine' isClosed_iInter fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
 #align is_closed_set_of_map_inv isClosed_setOf_map_inv
 #align is_closed_set_of_map_neg isClosed_setOf_map_neg
+-/
 
 end PointwiseLimits
 
@@ -344,14 +378,17 @@ section ContinuousInvolutiveInv
 
 variable [TopologicalSpace G] [InvolutiveInv G] [ContinuousInv G] {s : Set G}
 
+#print IsCompact.inv /-
 @[to_additive]
 theorem IsCompact.inv (hs : IsCompact s) : IsCompact s⁻¹ := by rw [← image_inv];
   exact hs.image continuous_inv
 #align is_compact.inv IsCompact.inv
 #align is_compact.neg IsCompact.neg
+-/
 
 variable (G)
 
+#print Homeomorph.inv /-
 /-- Inversion in a topological group as a homeomorphism. -/
 @[to_additive "Negation in a topological group as a homeomorphism."]
 protected def Homeomorph.inv (G : Type _) [TopologicalSpace G] [InvolutiveInv G] [ContinuousInv G] :
@@ -361,38 +398,49 @@ protected def Homeomorph.inv (G : Type _) [TopologicalSpace G] [InvolutiveInv G]
     continuous_invFun := continuous_inv }
 #align homeomorph.inv Homeomorph.inv
 #align homeomorph.neg Homeomorph.neg
+-/
 
+#print isOpenMap_inv /-
 @[to_additive]
 theorem isOpenMap_inv : IsOpenMap (Inv.inv : G → G) :=
   (Homeomorph.inv _).IsOpenMap
 #align is_open_map_inv isOpenMap_inv
 #align is_open_map_neg isOpenMap_neg
+-/
 
+#print isClosedMap_inv /-
 @[to_additive]
 theorem isClosedMap_inv : IsClosedMap (Inv.inv : G → G) :=
   (Homeomorph.inv _).IsClosedMap
 #align is_closed_map_inv isClosedMap_inv
 #align is_closed_map_neg isClosedMap_neg
+-/
 
 variable {G}
 
+#print IsOpen.inv /-
 @[to_additive]
 theorem IsOpen.inv (hs : IsOpen s) : IsOpen s⁻¹ :=
   hs.Preimage continuous_inv
 #align is_open.inv IsOpen.inv
 #align is_open.neg IsOpen.neg
+-/
 
+#print IsClosed.inv /-
 @[to_additive]
 theorem IsClosed.inv (hs : IsClosed s) : IsClosed s⁻¹ :=
   hs.Preimage continuous_inv
 #align is_closed.inv IsClosed.inv
 #align is_closed.neg IsClosed.neg
+-/
 
+#print inv_closure /-
 @[to_additive]
 theorem inv_closure : ∀ s : Set G, (closure s)⁻¹ = closure s⁻¹ :=
   (Homeomorph.inv G).preimage_closure
 #align inv_closure inv_closure
 #align neg_closure neg_closure
+-/
 
 end ContinuousInvolutiveInv
 
@@ -400,6 +448,7 @@ section LatticeOps
 
 variable {ι' : Sort _} [Inv G]
 
+#print continuousInv_sInf /-
 @[to_additive]
 theorem continuousInv_sInf {ts : Set (TopologicalSpace G)} (h : ∀ t ∈ ts, @ContinuousInv G t _) :
     @ContinuousInv G (sInf ts) _ :=
@@ -409,23 +458,29 @@ theorem continuousInv_sInf {ts : Set (TopologicalSpace G)} (h : ∀ t ∈ ts, @C
         continuous_sInf_dom ht (@ContinuousInv.continuous_inv G t _ (h t ht)) }
 #align has_continuous_inv_Inf continuousInv_sInf
 #align has_continuous_neg_Inf continuousNeg_sInf
+-/
 
+#print continuousInv_iInf /-
 @[to_additive]
 theorem continuousInv_iInf {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @ContinuousInv G (ts' i) _) :
     @ContinuousInv G (⨅ i, ts' i) _ := by rw [← sInf_range];
   exact continuousInv_sInf (set.forall_range_iff.mpr h')
 #align has_continuous_inv_infi continuousInv_iInf
 #align has_continuous_neg_infi continuousNeg_iInf
+-/
 
+#print continuousInv_inf /-
 @[to_additive]
 theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousInv G t₁ _)
     (h₂ : @ContinuousInv G t₂ _) : @ContinuousInv G (t₁ ⊓ t₂) _ := by rw [inf_eq_iInf];
   refine' continuousInv_iInf fun b => _; cases b <;> assumption
 #align has_continuous_inv_inf continuousInv_inf
 #align has_continuous_neg_inf continuousNeg_inf
+-/
 
 end LatticeOps
 
+#print Inducing.continuousInv /-
 @[to_additive]
 theorem Inducing.continuousInv {G H : Type _} [Inv G] [Inv H] [TopologicalSpace G]
     [TopologicalSpace H] [ContinuousInv H] {f : G → H} (hf : Inducing f)
@@ -433,6 +488,7 @@ theorem Inducing.continuousInv {G H : Type _} [Inv G] [Inv H] [TopologicalSpace
   ⟨hf.continuous_iff.2 <| by simpa only [(· ∘ ·), hf_inv] using hf.continuous.inv⟩
 #align inducing.has_continuous_inv Inducing.continuousInv
 #align inducing.has_continuous_neg Inducing.continuousNeg
+-/
 
 section TopologicalGroup
 
@@ -469,13 +525,16 @@ class TopologicalGroup (G : Type _) [TopologicalSpace G] [Group G] extends Conti
 
 section Conj
 
+#print ConjAct.units_continuousConstSMul /-
 instance ConjAct.units_continuousConstSMul {M} [Monoid M] [TopologicalSpace M] [ContinuousMul M] :
     ContinuousConstSMul (ConjAct Mˣ) M :=
   ⟨fun m => (continuous_const.mul continuous_id).mul continuous_const⟩
 #align conj_act.units_has_continuous_const_smul ConjAct.units_continuousConstSMul
+-/
 
 variable [TopologicalSpace G] [Inv G] [Mul G] [ContinuousMul G]
 
+#print TopologicalGroup.continuous_conj_prod /-
 /-- Conjugation is jointly continuous on `G × G` when both `mul` and `inv` are continuous. -/
 @[to_additive
       "Conjugation is jointly continuous on `G × G` when both `mul` and `inv` are\ncontinuous."]
@@ -484,6 +543,7 @@ theorem TopologicalGroup.continuous_conj_prod [ContinuousInv G] :
   continuous_mul.mul (continuous_inv.comp continuous_fst)
 #align topological_group.continuous_conj_prod TopologicalGroup.continuous_conj_prod
 #align topological_add_group.continuous_conj_sum TopologicalAddGroup.continuous_conj_sum
+-/
 
 #print TopologicalGroup.continuous_conj /-
 /-- Conjugation by a fixed element is continuous when `mul` is continuous. -/
@@ -529,10 +589,12 @@ instance AddGroup.continuousConstSMul_int {A} [AddGroup A] [TopologicalSpace A]
 #align add_group.has_continuous_const_smul_int AddGroup.continuousConstSMul_int
 -/
 
+#print AddGroup.continuousSMul_int /-
 instance AddGroup.continuousSMul_int {A} [AddGroup A] [TopologicalSpace A] [TopologicalAddGroup A] :
     ContinuousSMul ℤ A :=
   ⟨continuous_uncurry_of_discreteTopology continuous_zsmul⟩
 #align add_group.has_continuous_smul_int AddGroup.continuousSMul_int
+-/
 
 #print Continuous.zpow /-
 @[continuity, to_additive]
@@ -558,12 +620,14 @@ theorem continuousAt_zpow (x : G) (z : ℤ) : ContinuousAt (fun x => x ^ z) x :=
 #align continuous_at_zsmul continuousAt_zsmul
 -/
 
+#print Filter.Tendsto.zpow /-
 @[to_additive]
 theorem Filter.Tendsto.zpow {α} {l : Filter α} {f : α → G} {x : G} (hf : Tendsto f l (𝓝 x))
     (z : ℤ) : Tendsto (fun x => f x ^ z) l (𝓝 (x ^ z)) :=
   (continuousAt_zpow _ _).Tendsto.comp hf
 #align filter.tendsto.zpow Filter.Tendsto.zpow
 #align filter.tendsto.zsmul Filter.Tendsto.zsmul
+-/
 
 #print ContinuousWithinAt.zpow /-
 @[to_additive]
@@ -597,53 +661,69 @@ section OrderedCommGroup
 
 variable [TopologicalSpace H] [OrderedCommGroup H] [ContinuousInv H]
 
+#print tendsto_inv_nhdsWithin_Ioi /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi {a : H} : Tendsto Inv.inv (𝓝[>] a) (𝓝[<] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Ioi tendsto_inv_nhdsWithin_Ioi
 #align tendsto_neg_nhds_within_Ioi tendsto_neg_nhdsWithin_Ioi
+-/
 
+#print tendsto_inv_nhdsWithin_Iio /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio {a : H} : Tendsto Inv.inv (𝓝[<] a) (𝓝[>] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Iio tendsto_inv_nhdsWithin_Iio
 #align tendsto_neg_nhds_within_Iio tendsto_neg_nhdsWithin_Iio
+-/
 
+#print tendsto_inv_nhdsWithin_Ioi_inv /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi_inv {a : H} : Tendsto Inv.inv (𝓝[>] a⁻¹) (𝓝[<] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Ioi _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Ioi_inv tendsto_inv_nhdsWithin_Ioi_inv
 #align tendsto_neg_nhds_within_Ioi_neg tendsto_neg_nhdsWithin_Ioi_neg
+-/
 
+#print tendsto_inv_nhdsWithin_Iio_inv /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio_inv {a : H} : Tendsto Inv.inv (𝓝[<] a⁻¹) (𝓝[>] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iio _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Iio_inv tendsto_inv_nhdsWithin_Iio_inv
 #align tendsto_neg_nhds_within_Iio_neg tendsto_neg_nhdsWithin_Iio_neg
+-/
 
+#print tendsto_inv_nhdsWithin_Ici /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici {a : H} : Tendsto Inv.inv (𝓝[≥] a) (𝓝[≤] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Ici tendsto_inv_nhdsWithin_Ici
 #align tendsto_neg_nhds_within_Ici tendsto_neg_nhdsWithin_Ici
+-/
 
+#print tendsto_inv_nhdsWithin_Iic /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic {a : H} : Tendsto Inv.inv (𝓝[≤] a) (𝓝[≥] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Iic tendsto_inv_nhdsWithin_Iic
 #align tendsto_neg_nhds_within_Iic tendsto_neg_nhdsWithin_Iic
+-/
 
+#print tendsto_inv_nhdsWithin_Ici_inv /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici_inv {a : H} : Tendsto Inv.inv (𝓝[≥] a⁻¹) (𝓝[≤] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Ici _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Ici_inv tendsto_inv_nhdsWithin_Ici_inv
 #align tendsto_neg_nhds_within_Ici_neg tendsto_neg_nhdsWithin_Ici_neg
+-/
 
+#print tendsto_inv_nhdsWithin_Iic_inv /-
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic_inv {a : H} : Tendsto Inv.inv (𝓝[≤] a⁻¹) (𝓝[≥] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iic _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Iic_inv tendsto_inv_nhdsWithin_Iic_inv
 #align tendsto_neg_nhds_within_Iic_neg tendsto_neg_nhdsWithin_Iic_neg
+-/
 
 end OrderedCommGroup
 
@@ -672,24 +752,31 @@ instance [Group α] [TopologicalGroup α] : TopologicalGroup αᵐᵒᵖ where
 
 variable (G)
 
+#print nhds_one_symm /-
 @[to_additive]
 theorem nhds_one_symm : comap Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
   ((Homeomorph.inv G).comap_nhds_eq _).trans (congr_arg nhds inv_one)
 #align nhds_one_symm nhds_one_symm
 #align nhds_zero_symm nhds_zero_symm
+-/
 
+#print nhds_one_symm' /-
 @[to_additive]
 theorem nhds_one_symm' : map Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
   ((Homeomorph.inv G).map_nhds_eq _).trans (congr_arg nhds inv_one)
 #align nhds_one_symm' nhds_one_symm'
 #align nhds_zero_symm' nhds_zero_symm'
+-/
 
+#print inv_mem_nhds_one /-
 @[to_additive]
 theorem inv_mem_nhds_one {S : Set G} (hS : S ∈ (𝓝 1 : Filter G)) : S⁻¹ ∈ 𝓝 (1 : G) := by
   rwa [← nhds_one_symm'] at hS 
 #align inv_mem_nhds_one inv_mem_nhds_one
 #align neg_mem_nhds_zero neg_mem_nhds_zero
+-/
 
+#print Homeomorph.shearMulRight /-
 /-- The map `(x, y) ↦ (x, xy)` as a homeomorphism. This is a shear mapping. -/
 @[to_additive "The map `(x, y) ↦ (x, x + y)` as a homeomorphism.\nThis is a shear mapping."]
 protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
@@ -700,23 +787,29 @@ protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
     continuous_invFun := continuous_fst.prod_mk <| continuous_fst.inv.mul continuous_snd }
 #align homeomorph.shear_mul_right Homeomorph.shearMulRight
 #align homeomorph.shear_add_right Homeomorph.shearAddRight
+-/
 
+#print Homeomorph.shearMulRight_coe /-
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_coe :
     ⇑(Homeomorph.shearMulRight G) = fun z : G × G => (z.1, z.1 * z.2) :=
   rfl
 #align homeomorph.shear_mul_right_coe Homeomorph.shearMulRight_coe
 #align homeomorph.shear_add_right_coe Homeomorph.shearAddRight_coe
+-/
 
+#print Homeomorph.shearMulRight_symm_coe /-
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_symm_coe :
     ⇑(Homeomorph.shearMulRight G).symm = fun z : G × G => (z.1, z.1⁻¹ * z.2) :=
   rfl
 #align homeomorph.shear_mul_right_symm_coe Homeomorph.shearMulRight_symm_coe
 #align homeomorph.shear_add_right_symm_coe Homeomorph.shearAddRight_symm_coe
+-/
 
 variable {G}
 
+#print Inducing.topologicalGroup /-
 @[to_additive]
 protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalSpace H]
     [MonoidHomClass F H G] (f : F) (hf : Inducing f) : TopologicalGroup H :=
@@ -724,7 +817,9 @@ protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalS
     to_continuousInv := hf.ContinuousInv (map_inv f) }
 #align inducing.topological_group Inducing.topologicalGroup
 #align inducing.topological_add_group Inducing.topologicalAddGroup
+-/
 
+#print topologicalGroup_induced /-
 @[to_additive]
 protected theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClass F H G] (f : F) :
     @TopologicalGroup H (induced f ‹_›) _ :=
@@ -732,6 +827,7 @@ protected theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClas
   Inducing.topologicalGroup f ⟨rfl⟩
 #align topological_group_induced topologicalGroup_induced
 #align topological_add_group_induced topologicalAddGroup_induced
+-/
 
 namespace Subgroup
 
@@ -755,32 +851,41 @@ def Subgroup.topologicalClosure (s : Subgroup G) : Subgroup G :=
 #align add_subgroup.topological_closure AddSubgroup.topologicalClosure
 -/
 
+#print Subgroup.topologicalClosure_coe /-
 @[simp, to_additive]
 theorem Subgroup.topologicalClosure_coe {s : Subgroup G} :
     (s.topologicalClosure : Set G) = closure s :=
   rfl
 #align subgroup.topological_closure_coe Subgroup.topologicalClosure_coe
 #align add_subgroup.topological_closure_coe AddSubgroup.topologicalClosure_coe
+-/
 
+#print Subgroup.le_topologicalClosure /-
 @[to_additive]
 theorem Subgroup.le_topologicalClosure (s : Subgroup G) : s ≤ s.topologicalClosure :=
   subset_closure
 #align subgroup.le_topological_closure Subgroup.le_topologicalClosure
 #align add_subgroup.le_topological_closure AddSubgroup.le_topologicalClosure
+-/
 
+#print Subgroup.isClosed_topologicalClosure /-
 @[to_additive]
 theorem Subgroup.isClosed_topologicalClosure (s : Subgroup G) :
     IsClosed (s.topologicalClosure : Set G) := by convert isClosed_closure
 #align subgroup.is_closed_topological_closure Subgroup.isClosed_topologicalClosure
 #align add_subgroup.is_closed_topological_closure AddSubgroup.isClosed_topologicalClosure
+-/
 
+#print Subgroup.topologicalClosure_minimal /-
 @[to_additive]
 theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h : s ≤ t)
     (ht : IsClosed (t : Set G)) : s.topologicalClosure ≤ t :=
   closure_minimal h ht
 #align subgroup.topological_closure_minimal Subgroup.topologicalClosure_minimal
 #align add_subgroup.topological_closure_minimal AddSubgroup.topologicalClosure_minimal
+-/
 
+#print DenseRange.topologicalClosure_map_subgroup /-
 @[to_additive]
 theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H]
     [TopologicalGroup H] {f : G →* H} (hf : Continuous f) (hf' : DenseRange f) {s : Subgroup G}
@@ -791,6 +896,7 @@ theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H
   exact hf'.dense_image hf hs
 #align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroup
 #align dense_range.topological_closure_map_add_subgroup DenseRange.topologicalClosure_map_addSubgroup
+-/
 
 #print Subgroup.is_normal_topologicalClosure /-
 /-- The topological closure of a normal subgroup is normal.-/
@@ -806,6 +912,7 @@ theorem Subgroup.is_normal_topologicalClosure {G : Type _} [TopologicalSpace G]
 #align add_subgroup.is_normal_topological_closure AddSubgroup.is_normal_topologicalClosure
 -/
 
+#print mul_mem_connectedComponent_one /-
 @[to_additive]
 theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOneClass G]
     [ContinuousMul G] {g h : G} (hg : g ∈ connectedComponent (1 : G))
@@ -820,7 +927,9 @@ theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOne
   simpa [← connectedComponent_eq hmul] using mem_connectedComponent
 #align mul_mem_connected_component_one mul_mem_connectedComponent_one
 #align add_mem_connected_component_zero add_mem_connectedComponent_zero
+-/
 
+#print inv_mem_connectedComponent_one /-
 @[to_additive]
 theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group G]
     [TopologicalGroup G] {g : G} (hg : g ∈ connectedComponent (1 : G)) :
@@ -831,6 +940,7 @@ theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group
       ((Set.mem_image _ _ _).mp ⟨g, hg, rfl⟩)
 #align inv_mem_connected_component_one inv_mem_connectedComponent_one
 #align neg_mem_connected_component_zero neg_mem_connectedComponent_zero
+-/
 
 #print Subgroup.connectedComponentOfOne /-
 /-- The connected component of 1 is a subgroup of `G`. -/
@@ -846,6 +956,7 @@ def Subgroup.connectedComponentOfOne (G : Type _) [TopologicalSpace G] [Group G]
 #align add_subgroup.connected_component_of_zero AddSubgroup.connectedComponentOfZero
 -/
 
+#print Subgroup.commGroupTopologicalClosure /-
 /-- If a subgroup of a topological group is commutative, then so is its topological closure. -/
 @[to_additive
       "If a subgroup of an additive topological group is commutative, then so is its\ntopological closure."]
@@ -854,7 +965,9 @@ def Subgroup.commGroupTopologicalClosure [T2Space G] (s : Subgroup G)
   { s.topologicalClosure.toGroup, s.toSubmonoid.commMonoidTopologicalClosure hs with }
 #align subgroup.comm_group_topological_closure Subgroup.commGroupTopologicalClosure
 #align add_subgroup.add_comm_group_topological_closure AddSubgroup.addCommGroupTopologicalClosure
+-/
 
+#print exists_nhds_split_inv /-
 @[to_additive exists_nhds_half_neg]
 theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
     ∃ V ∈ 𝓝 (1 : G), ∀ v ∈ V, ∀ w ∈ V, v / w ∈ s :=
@@ -865,35 +978,47 @@ theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
     this
 #align exists_nhds_split_inv exists_nhds_split_inv
 #align exists_nhds_half_neg exists_nhds_half_neg
+-/
 
+#print nhds_translation_mul_inv /-
 @[to_additive]
 theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝 1) = 𝓝 x :=
   ((Homeomorph.mulRight x⁻¹).comap_nhds_eq 1).trans <| show 𝓝 (1 * x⁻¹⁻¹) = 𝓝 x by simp
 #align nhds_translation_mul_inv nhds_translation_mul_inv
 #align nhds_translation_add_neg nhds_translation_add_neg
+-/
 
+#print map_mul_left_nhds /-
 @[simp, to_additive]
 theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
   (Homeomorph.mulLeft x).map_nhds_eq y
 #align map_mul_left_nhds map_mul_left_nhds
 #align map_add_left_nhds map_add_left_nhds
+-/
 
+#print map_mul_left_nhds_one /-
 @[to_additive]
 theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_left_nhds_one map_mul_left_nhds_one
 #align map_add_left_nhds_zero map_add_left_nhds_zero
+-/
 
+#print map_mul_right_nhds /-
 @[simp, to_additive]
 theorem map_mul_right_nhds (x y : G) : map (fun z => z * x) (𝓝 y) = 𝓝 (y * x) :=
   (Homeomorph.mulRight x).map_nhds_eq y
 #align map_mul_right_nhds map_mul_right_nhds
 #align map_add_right_nhds map_add_right_nhds
+-/
 
+#print map_mul_right_nhds_one /-
 @[to_additive]
 theorem map_mul_right_nhds_one (x : G) : map (fun y => y * x) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_right_nhds_one map_mul_right_nhds_one
 #align map_add_right_nhds_zero map_add_right_nhds_zero
+-/
 
+#print Filter.HasBasis.nhds_of_one /-
 @[to_additive]
 theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι → Set G}
     (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) : HasBasis (𝓝 x) p fun i => {y | y / x ∈ s i} :=
@@ -903,7 +1028,9 @@ theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι →
   exact hb.comap _
 #align filter.has_basis.nhds_of_one Filter.HasBasis.nhds_of_one
 #align filter.has_basis.nhds_of_zero Filter.HasBasis.nhds_of_zero
+-/
 
+#print mem_closure_iff_nhds_one /-
 @[to_additive]
 theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
     x ∈ closure s ↔ ∀ U ∈ (𝓝 1 : Filter G), ∃ y ∈ s, y / x ∈ U :=
@@ -912,7 +1039,9 @@ theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
   rfl
 #align mem_closure_iff_nhds_one mem_closure_iff_nhds_one
 #align mem_closure_iff_nhds_zero mem_closure_iff_nhds_zero
+-/
 
+#print continuous_of_continuousAt_one /-
 /-- A monoid homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) from a
 topological group to a topological monoid is continuous provided that it is continuous at one. See
 also `uniform_continuous_of_continuous_at_one`. -/
@@ -925,7 +1054,9 @@ theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [Topolog
       map_one, mul_one] using hf.tendsto.const_mul (f x)
 #align continuous_of_continuous_at_one continuous_of_continuousAt_one
 #align continuous_of_continuous_at_zero continuous_of_continuousAt_zero
+-/
 
+#print TopologicalGroup.ext /-
 @[to_additive]
 theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _)
@@ -934,7 +1065,9 @@ theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
     rw [← @nhds_translation_mul_inv G t _ _ x, ← @nhds_translation_mul_inv G t' _ _ x, ← h]
 #align topological_group.ext TopologicalGroup.ext
 #align topological_add_group.ext TopologicalAddGroup.ext
+-/
 
+#print TopologicalGroup.ext_iff /-
 @[to_additive]
 theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _) :
@@ -942,7 +1075,9 @@ theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace
   ⟨fun h => h ▸ rfl, tg.ext tg'⟩
 #align topological_group.ext_iff TopologicalGroup.ext_iff
 #align topological_add_group.ext_iff TopologicalAddGroup.ext_iff
+-/
 
+#print ContinuousInv.of_nhds_one /-
 @[to_additive]
 theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
@@ -956,7 +1091,9 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
     inv_mul_cancel_left] using this
 #align has_continuous_inv.of_nhds_one ContinuousInv.of_nhds_one
 #align has_continuous_neg.of_nhds_zero ContinuousNeg.of_nhds_zero
+-/
 
+#print TopologicalGroup.of_nhds_one' /-
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -973,7 +1110,9 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
             simp [(· ∘ ·)]) }
 #align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'
 #align topological_add_group.of_nhds_zero' TopologicalAddGroup.of_nhds_zero'
+-/
 
+#print TopologicalGroup.of_nhds_one /-
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -989,7 +1128,9 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
   simpa [(· ∘ ·)] using hleft _
 #align topological_group.of_nhds_one TopologicalGroup.of_nhds_one
 #align topological_add_group.of_nhds_zero TopologicalAddGroup.of_nhds_zero
+-/
 
+#print TopologicalGroup.of_comm_of_nhds_one /-
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -998,6 +1139,7 @@ theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [Topolog
   TopologicalGroup.of_nhds_one hmul hinv hleft (by simpa using tendsto_id)
 #align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_one
 #align topological_add_group.of_comm_of_nhds_zero TopologicalAddGroup.of_comm_of_nhds_zero
+-/
 
 end TopologicalGroup
 
@@ -1060,6 +1202,7 @@ theorem QuotientGroup.nhds_eq (x : G) : 𝓝 (x : G ⧸ N) = map coe (𝓝 x) :=
 
 variable (G) [FirstCountableTopology G]
 
+#print TopologicalGroup.exists_antitone_basis_nhds_one /-
 /-- Any first countable topological group has an antitone neighborhood basis `u : ℕ → set G` for
 which `(u (n + 1)) ^ 2 ⊆ u n`. The existence of such a neighborhood basis is a key tool for
 `quotient_group.complete_space` -/
@@ -1085,9 +1228,9 @@ theorem TopologicalGroup.exists_antitone_basis_nhds_one :
   exact ⟨u ∘ φ, φ_anti_basis, fun n => hφ n.lt_succ_self⟩
 #align topological_group.exists_antitone_basis_nhds_one TopologicalGroup.exists_antitone_basis_nhds_one
 #align topological_add_group.exists_antitone_basis_nhds_zero TopologicalAddGroup.exists_antitone_basis_nhds_zero
+-/
 
-include n
-
+#print QuotientGroup.nhds_one_isCountablyGenerated /-
 /-- In a first countable topological group `G` with normal subgroup `N`, `1 : G ⧸ N` has a
 countable neighborhood basis. -/
 @[to_additive
@@ -1096,6 +1239,7 @@ instance QuotientGroup.nhds_one_isCountablyGenerated : (𝓝 (1 : G ⧸ N)).IsCo
   (QuotientGroup.nhds_eq N 1).symm ▸ map.isCountablyGenerated _ _
 #align quotient_group.nhds_one_is_countably_generated QuotientGroup.nhds_one_isCountablyGenerated
 #align quotient_add_group.nhds_zero_is_countably_generated QuotientAddGroup.nhds_zero_isCountablyGenerated
+-/
 
 end QuotientTopologicalGroup
 
@@ -1118,6 +1262,7 @@ class ContinuousDiv (G : Type _) [TopologicalSpace G] [Div G] : Prop where
 #align has_continuous_sub ContinuousSub
 -/
 
+#print TopologicalGroup.to_continuousDiv /-
 -- see Note [lower instance priority]
 @[to_additive]
 instance (priority := 100) TopologicalGroup.to_continuousDiv [TopologicalSpace G] [Group G]
@@ -1125,6 +1270,7 @@ instance (priority := 100) TopologicalGroup.to_continuousDiv [TopologicalSpace G
   ⟨by simp only [div_eq_mul_inv]; exact continuous_fst.mul continuous_snd.inv⟩
 #align topological_group.to_has_continuous_div TopologicalGroup.to_continuousDiv
 #align topological_add_group.to_has_continuous_sub TopologicalAddGroup.to_continuousSub
+-/
 
 export ContinuousSub (continuous_sub)
 
@@ -1231,17 +1377,21 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 #align homeomorph.sub_left Homeomorph.subLeft
 -/
 
+#print isOpenMap_div_left /-
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
   (Homeomorph.divLeft _).IsOpenMap
 #align is_open_map_div_left isOpenMap_div_left
 #align is_open_map_sub_left isOpenMap_sub_left
+-/
 
+#print isClosedMap_div_left /-
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
   (Homeomorph.divLeft _).IsClosedMap
 #align is_closed_map_div_left isClosedMap_div_left
 #align is_closed_map_sub_left isClosedMap_sub_left
+-/
 
 #print Homeomorph.divRight /-
 /-- A version of `homeomorph.mul_right a⁻¹ b` that is defeq to `b / a`. -/
@@ -1255,18 +1405,23 @@ def Homeomorph.divRight (x : G) : G ≃ₜ G :=
 #align homeomorph.sub_right Homeomorph.subRight
 -/
 
+#print isOpenMap_div_right /-
 @[to_additive]
 theorem isOpenMap_div_right (a : G) : IsOpenMap fun x => x / a :=
   (Homeomorph.divRight a).IsOpenMap
 #align is_open_map_div_right isOpenMap_div_right
 #align is_open_map_sub_right isOpenMap_sub_right
+-/
 
+#print isClosedMap_div_right /-
 @[to_additive]
 theorem isClosedMap_div_right (a : G) : IsClosedMap fun x => x / a :=
   (Homeomorph.divRight a).IsClosedMap
 #align is_closed_map_div_right isClosedMap_div_right
 #align is_closed_map_sub_right isClosedMap_sub_right
+-/
 
+#print tendsto_div_nhds_one_iff /-
 @[to_additive]
 theorem tendsto_div_nhds_one_iff {α : Type _} {l : Filter α} {x : G} {u : α → G} :
     Tendsto (fun n => u n / x) l (𝓝 1) ↔ Tendsto u l (𝓝 x) :=
@@ -1274,12 +1429,15 @@ theorem tendsto_div_nhds_one_iff {α : Type _} {l : Filter α} {x : G} {u : α 
   ⟨fun h => by simpa using h.mul A, fun h => by simpa using h.div' A⟩
 #align tendsto_div_nhds_one_iff tendsto_div_nhds_one_iff
 #align tendsto_sub_nhds_zero_iff tendsto_sub_nhds_zero_iff
+-/
 
+#print nhds_translation_div /-
 @[to_additive]
 theorem nhds_translation_div (x : G) : comap (· / x) (𝓝 1) = 𝓝 x := by
   simpa only [div_eq_mul_inv] using nhds_translation_mul_inv x
 #align nhds_translation_div nhds_translation_div
 #align nhds_translation_sub nhds_translation_sub
+-/
 
 end DivInTopologicalGroup
 
@@ -1339,35 +1497,45 @@ section ContinuousConstSMul
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul α α] {s t : Set α}
 
+#print IsOpen.mul_left /-
 @[to_additive]
 theorem IsOpen.mul_left : IsOpen t → IsOpen (s * t) :=
   IsOpen.smul_left
 #align is_open.mul_left IsOpen.mul_left
 #align is_open.add_left IsOpen.add_left
+-/
 
+#print subset_interior_mul_right /-
 @[to_additive]
 theorem subset_interior_mul_right : s * interior t ⊆ interior (s * t) :=
   subset_interior_smul_right
 #align subset_interior_mul_right subset_interior_mul_right
 #align subset_interior_add_right subset_interior_add_right
+-/
 
+#print subset_interior_mul /-
 @[to_additive]
 theorem subset_interior_mul : interior s * interior t ⊆ interior (s * t) :=
   subset_interior_smul
 #align subset_interior_mul subset_interior_mul
 #align subset_interior_add subset_interior_add
+-/
 
+#print singleton_mul_mem_nhds /-
 @[to_additive]
 theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s ∈ 𝓝 (a * b) := by
   have := smul_mem_nhds a h; rwa [← singleton_smul] at this 
 #align singleton_mul_mem_nhds singleton_mul_mem_nhds
 #align singleton_add_mem_nhds singleton_add_mem_nhds
+-/
 
+#print singleton_mul_mem_nhds_of_nhds_one /-
 @[to_additive]
 theorem singleton_mul_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) : {a} * s ∈ 𝓝 a := by
   simpa only [mul_one] using singleton_mul_mem_nhds a h
 #align singleton_mul_mem_nhds_of_nhds_one singleton_mul_mem_nhds_of_nhds_one
 #align singleton_add_mem_nhds_of_nhds_zero singleton_add_mem_nhds_of_nhds_zero
+-/
 
 end ContinuousConstSMul
 
@@ -1375,24 +1543,31 @@ section HasContinuousConstSmulOp
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul αᵐᵒᵖ α] {s t : Set α}
 
+#print IsOpen.mul_right /-
 @[to_additive]
 theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) := by rw [← bUnion_op_smul_set];
   exact isOpen_biUnion fun a _ => hs.smul _
 #align is_open.mul_right IsOpen.mul_right
 #align is_open.add_right IsOpen.add_right
+-/
 
+#print subset_interior_mul_left /-
 @[to_additive]
 theorem subset_interior_mul_left : interior s * t ⊆ interior (s * t) :=
   interior_maximal (Set.mul_subset_mul_right interior_subset) isOpen_interior.mulRight
 #align subset_interior_mul_left subset_interior_mul_left
 #align subset_interior_add_left subset_interior_add_left
+-/
 
+#print subset_interior_mul' /-
 @[to_additive]
 theorem subset_interior_mul' : interior s * interior t ⊆ interior (s * t) :=
   (Set.mul_subset_mul_left interior_subset).trans subset_interior_mul_left
 #align subset_interior_mul' subset_interior_mul'
 #align subset_interior_add' subset_interior_add'
+-/
 
+#print mul_singleton_mem_nhds /-
 @[to_additive]
 theorem mul_singleton_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : s * {a} ∈ 𝓝 (b * a) :=
   by
@@ -1400,12 +1575,15 @@ theorem mul_singleton_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : s * {a} 
   exact smul_mem_nhds _ h
 #align mul_singleton_mem_nhds mul_singleton_mem_nhds
 #align add_singleton_mem_nhds add_singleton_mem_nhds
+-/
 
+#print mul_singleton_mem_nhds_of_nhds_one /-
 @[to_additive]
 theorem mul_singleton_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) : s * {a} ∈ 𝓝 a := by
   simpa only [one_mul] using mul_singleton_mem_nhds a h
 #align mul_singleton_mem_nhds_of_nhds_one mul_singleton_mem_nhds_of_nhds_one
 #align add_singleton_mem_nhds_of_nhds_zero add_singleton_mem_nhds_of_nhds_zero
+-/
 
 end HasContinuousConstSmulOp
 
@@ -1413,36 +1591,47 @@ section TopologicalGroup
 
 variable [TopologicalSpace α] [Group α] [TopologicalGroup α] {s t : Set α}
 
+#print IsOpen.div_left /-
 @[to_additive]
 theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) := by rw [← Union_div_left_image];
   exact isOpen_biUnion fun a ha => isOpenMap_div_left a t ht
 #align is_open.div_left IsOpen.div_left
 #align is_open.sub_left IsOpen.sub_left
+-/
 
+#print IsOpen.div_right /-
 @[to_additive]
 theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) := by rw [← Union_div_right_image];
   exact isOpen_biUnion fun a ha => isOpenMap_div_right a s hs
 #align is_open.div_right IsOpen.div_right
 #align is_open.sub_right IsOpen.sub_right
+-/
 
+#print subset_interior_div_left /-
 @[to_additive]
 theorem subset_interior_div_left : interior s / t ⊆ interior (s / t) :=
   interior_maximal (div_subset_div_right interior_subset) isOpen_interior.divRight
 #align subset_interior_div_left subset_interior_div_left
 #align subset_interior_sub_left subset_interior_sub_left
+-/
 
+#print subset_interior_div_right /-
 @[to_additive]
 theorem subset_interior_div_right : s / interior t ⊆ interior (s / t) :=
   interior_maximal (div_subset_div_left interior_subset) isOpen_interior.divLeft
 #align subset_interior_div_right subset_interior_div_right
 #align subset_interior_sub_right subset_interior_sub_right
+-/
 
+#print subset_interior_div /-
 @[to_additive]
 theorem subset_interior_div : interior s / interior t ⊆ interior (s / t) :=
   (div_subset_div_left interior_subset).trans subset_interior_div_left
 #align subset_interior_div subset_interior_div
 #align subset_interior_sub subset_interior_sub
+-/
 
+#print IsOpen.mul_closure /-
 @[to_additive]
 theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t :=
   by
@@ -1453,30 +1642,37 @@ theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t
   exact ⟨c⁻¹, _, hc, hcs, inv_mul_cancel_left _ _⟩
 #align is_open.mul_closure IsOpen.mul_closure
 #align is_open.add_closure IsOpen.add_closure
+-/
 
+#print IsOpen.closure_mul /-
 @[to_additive]
 theorem IsOpen.closure_mul (ht : IsOpen t) (s : Set α) : closure s * t = s * t := by
   rw [← inv_inv (closure s * t), mul_inv_rev, inv_closure, ht.inv.mul_closure, mul_inv_rev, inv_inv,
     inv_inv]
 #align is_open.closure_mul IsOpen.closure_mul
 #align is_open.closure_add IsOpen.closure_add
+-/
 
+#print IsOpen.div_closure /-
 @[to_additive]
 theorem IsOpen.div_closure (hs : IsOpen s) (t : Set α) : s / closure t = s / t := by
   simp_rw [div_eq_mul_inv, inv_closure, hs.mul_closure]
 #align is_open.div_closure IsOpen.div_closure
 #align is_open.sub_closure IsOpen.sub_closure
+-/
 
+#print IsOpen.closure_div /-
 @[to_additive]
 theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t := by
   simp_rw [div_eq_mul_inv, ht.inv.closure_mul]
 #align is_open.closure_div IsOpen.closure_div
 #align is_open.closure_sub IsOpen.closure_sub
+-/
 
 end TopologicalGroup
 
 #print AddGroupWithZeroNhd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
 
@@ -1496,11 +1692,13 @@ section
 
 variable (G) [TopologicalSpace G] [Group G] [ContinuousMul G]
 
+#print TopologicalGroup.t1Space /-
 @[to_additive]
 theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
   ⟨fun x => by convert isClosedMap_mul_right x _ h; simp⟩
 #align topological_group.t1_space TopologicalGroup.t1Space
 #align topological_add_group.t1_space TopologicalAddGroup.t1Space
+-/
 
 end
 
@@ -1545,6 +1743,7 @@ theorem TopologicalGroup.t2Space [T0Space G] : T2Space G := by haveI := Topologi
 
 variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
+#print Subgroup.t3_quotient_of_isClosed /-
 @[to_additive]
 instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
     [hS : IsClosed (S : Set G)] : T3Space (G ⧸ S) :=
@@ -1554,7 +1753,9 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
   exact TopologicalGroup.t3Space _
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
+-/
 
+#print Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite /-
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
 `discrete_topology`.) -/
@@ -1572,9 +1773,11 @@ theorem Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite (S : Subgroup G)
       simpa only [image_smul, mem_image, Prod.exists] using Set.smul_inter_ne_empty_iff' }
 #align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite
 #align add_subgroup.properly_discontinuous_vadd_of_tendsto_cofinite AddSubgroup.properlyDiscontinuousVAdd_of_tendsto_cofinite
+-/
 
 attribute [local semireducible] MulOpposite
 
+#print Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite /-
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
 `discrete_topology`.)
@@ -1597,6 +1800,7 @@ theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Sub
       simpa only [image_smul, mem_image, Prod.exists] using Set.op_smul_inter_ne_empty_iff }
 #align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite
 #align add_subgroup.properly_discontinuous_vadd_opposite_of_tendsto_cofinite AddSubgroup.properlyDiscontinuousVAdd_opposite_of_tendsto_cofinite
+-/
 
 end
 
@@ -1607,6 +1811,7 @@ section
 
 variable [TopologicalSpace G] [MulOneClass G] [ContinuousMul G]
 
+#print compact_open_separated_mul_right /-
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `K * V ⊆ U`. -/
 @[to_additive
@@ -1632,9 +1837,11 @@ theorem compact_open_separated_mul_right {K U : Set G} (hK : IsCompact K) (hU :
     exact ⟨t, mem_nhdsWithin_of_mem_nhds ht, s, hs, h⟩
 #align compact_open_separated_mul_right compact_open_separated_mul_right
 #align compact_open_separated_add_right compact_open_separated_add_right
+-/
 
 open MulOpposite
 
+#print compact_open_separated_mul_left /-
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `V * K ⊆ U`. -/
 @[to_additive
@@ -1650,6 +1857,7 @@ theorem compact_open_separated_mul_left {K U : Set G} (hK : IsCompact K) (hU : I
     preimage_image_eq _ op_injective] at hV' 
 #align compact_open_separated_mul_left compact_open_separated_mul_left
 #align compact_open_separated_add_left compact_open_separated_add_left
+-/
 
 end
 
@@ -1657,6 +1865,7 @@ section
 
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
+#print compact_covered_by_mul_left_translates /-
 /-- A compact set is covered by finitely many left multiplicative translates of a set
   with non-empty interior. -/
 @[to_additive
@@ -1675,6 +1884,7 @@ theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
   exact ⟨t, subset.trans ht <| Union₂_mono fun g hg => interior_subset⟩
 #align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translates
 #align compact_covered_by_add_left_translates compact_covered_by_add_left_translates
+-/
 
 #print SeparableLocallyCompactGroup.sigmaCompactSpace /-
 /-- Every locally compact separable topological group is σ-compact.
@@ -1699,6 +1909,7 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
 #align separable_locally_compact_add_group.sigma_compact_space SeparableLocallyCompactAddGroup.sigmaCompactSpace
 -/
 
+#print exists_disjoint_smul_of_isCompact /-
 /-- Given two compact sets in a noncompact topological group, there is a translate of the second
 one that is disjoint from the first one. -/
 @[to_additive
@@ -1715,7 +1926,9 @@ theorem exists_disjoint_smul_of_isCompact [NoncompactSpace G] {K L : Set G} (hK
   simp only [smul_eq_mul, mul_inv_cancel_right]
 #align exists_disjoint_smul_of_is_compact exists_disjoint_smul_of_isCompact
 #align exists_disjoint_vadd_of_is_compact exists_disjoint_vadd_of_isCompact
+-/
 
+#print local_isCompact_isClosed_nhds_of_group /-
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
 neighborhood of the identity, even without separation assumptions on the space. -/
 @[to_additive
@@ -1746,6 +1959,7 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
       VL.trans LU, interior_mono subset_closure (mem_interior_iff_mem_nhds.2 Vnhds)⟩
 #align local_is_compact_is_closed_nhds_of_group local_isCompact_isClosed_nhds_of_group
 #align local_is_compact_is_closed_nhds_of_add_group local_isCompact_isClosed_nhds_of_addGroup
+-/
 
 end
 
@@ -1753,6 +1967,7 @@ section
 
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
+#print nhds_mul /-
 @[to_additive]
 theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
   calc
@@ -1764,7 +1979,9 @@ theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
         map₂_map_right]
 #align nhds_mul nhds_mul
 #align nhds_add nhds_add
+-/
 
+#print nhdsMulHom /-
 /-- On a topological group, `𝓝 : G → filter G` can be promoted to a `mul_hom`. -/
 @[to_additive
       "On an additive topological group, `𝓝 : G → filter G` can be promoted to an\n`add_hom`.",
@@ -1774,6 +1991,7 @@ def nhdsMulHom : G →ₙ* Filter G where
   map_mul' _ _ := nhds_mul _ _
 #align nhds_mul_hom nhdsMulHom
 #align nhds_add_hom nhdsAddHom
+-/
 
 end
 
@@ -1789,13 +2007,16 @@ section Quotient
 
 variable [Group G] [TopologicalSpace G] [ContinuousMul G] {Γ : Subgroup G}
 
+#print QuotientGroup.continuousConstSMul /-
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
     where continuous_const_smul g := by
     convert ((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
 #align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMul
 #align quotient_add_group.has_continuous_const_vadd QuotientAddGroup.continuousConstVAdd
+-/
 
+#print QuotientGroup.continuous_smul₁ /-
 @[to_additive]
 theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G => g • x :=
   by
@@ -1803,7 +2024,9 @@ theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G =
   exact continuous_quotient_mk.comp (continuous_mul_right x)
 #align quotient_group.continuous_smul₁ QuotientGroup.continuous_smul₁
 #align quotient_add_group.continuous_smul₁ QuotientAddGroup.continuous_smul₁
+-/
 
+#print QuotientGroup.secondCountableTopology /-
 /-- The quotient of a second countable topological group by a subgroup is second countable. -/
 @[to_additive
       "The quotient of a second countable additive topological group by a subgroup is second\ncountable."]
@@ -1812,9 +2035,11 @@ instance QuotientGroup.secondCountableTopology [SecondCountableTopology G] :
   ContinuousConstSMul.secondCountableTopology
 #align quotient_group.second_countable_topology QuotientGroup.secondCountableTopology
 #align quotient_add_group.second_countable_topology QuotientAddGroup.secondCountableTopology
+-/
 
 end Quotient
 
+#print toUnits_homeomorph /-
 /-- If `G` is a group with topological `⁻¹`, then it is homeomorphic to its units. -/
 @[to_additive
       " If `G` is an additive group with topological negation, then it is homeomorphic to\nits additive units."]
@@ -1825,6 +2050,7 @@ def toUnits_homeomorph [Group G] [TopologicalSpace G] [ContinuousInv G] : G ≃
   continuous_invFun := Units.continuous_val
 #align to_units_homeomorph toUnits_homeomorph
 #align to_add_units_homeomorph toAddUnits_homeomorph
+-/
 
 namespace Units
 
@@ -1836,6 +2062,7 @@ variable [Monoid α] [TopologicalSpace α] [Monoid β] [TopologicalSpace β]
 instance [ContinuousMul α] : TopologicalGroup αˣ
     where continuous_inv := Units.continuous_iff.2 <| ⟨continuous_coe_inv, continuous_val⟩
 
+#print Units.Homeomorph.prodUnits /-
 /-- The topological group isomorphism between the units of a product of two monoids, and the product
 of the units of each monoid. -/
 @[to_additive
@@ -1852,6 +2079,7 @@ def Homeomorph.prodUnits : (α × β)ˣ ≃ₜ αˣ × βˣ
   toEquiv := MulEquiv.prodUnits.toEquiv
 #align units.homeomorph.prod_units Units.Homeomorph.prodUnits
 #align add_units.homeomorph.sum_add_units AddUnits.Homeomorph.sumAddUnits
+-/
 
 end Units
 
@@ -1859,6 +2087,7 @@ section LatticeOps
 
 variable {ι : Sort _} [Group G]
 
+#print topologicalGroup_sInf /-
 @[to_additive]
 theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
     (h : ∀ t ∈ ts, @TopologicalGroup G t _) : @TopologicalGroup G (sInf ts) _ :=
@@ -1868,20 +2097,25 @@ theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
       @continuousMul_sInf _ _ _ fun t ht => @TopologicalGroup.to_continuousMul G t _ <| h t ht }
 #align topological_group_Inf topologicalGroup_sInf
 #align topological_add_group_Inf topologicalAddGroup_sInf
+-/
 
+#print topologicalGroup_iInf /-
 @[to_additive]
 theorem topologicalGroup_iInf {ts' : ι → TopologicalSpace G}
     (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ := by
   rw [← sInf_range]; exact topologicalGroup_sInf (set.forall_range_iff.mpr h')
 #align topological_group_infi topologicalGroup_iInf
 #align topological_add_group_infi topologicalAddGroup_iInf
+-/
 
+#print topologicalGroup_inf /-
 @[to_additive]
 theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @TopologicalGroup G t₁ _)
     (h₂ : @TopologicalGroup G t₂ _) : @TopologicalGroup G (t₁ ⊓ t₂) _ := by rw [inf_eq_iInf];
   refine' topologicalGroup_iInf fun b => _; cases b <;> assumption
 #align topological_group_inf topologicalGroup_inf
 #align topological_add_group_inf topologicalAddGroup_inf
+-/
 
 end LatticeOps
 
@@ -1922,6 +2156,7 @@ namespace GroupTopology
 
 variable [Group α]
 
+#print GroupTopology.continuous_mul' /-
 /-- A version of the global `continuous_mul` suitable for dot notation. -/
 @[to_additive "A version of the global `continuous_add` suitable for dot notation."]
 theorem continuous_mul' (g : GroupTopology α) :
@@ -1933,7 +2168,9 @@ theorem continuous_mul' (g : GroupTopology α) :
   exact continuous_mul
 #align group_topology.continuous_mul' GroupTopology.continuous_mul'
 #align add_group_topology.continuous_add' AddGroupTopology.continuous_add'
+-/
 
+#print GroupTopology.continuous_inv' /-
 /-- A version of the global `continuous_inv` suitable for dot notation. -/
 @[to_additive "A version of the global `continuous_neg` suitable for dot notation."]
 theorem continuous_inv' (g : GroupTopology α) :
@@ -1945,6 +2182,7 @@ theorem continuous_inv' (g : GroupTopology α) :
   exact continuous_inv
 #align group_topology.continuous_inv' GroupTopology.continuous_inv'
 #align add_group_topology.continuous_neg' AddGroupTopology.continuous_neg'
+-/
 
 #print GroupTopology.toTopologicalSpace_injective /-
 @[to_additive]
@@ -1970,12 +2208,14 @@ in `t` (`t` is finer than `s`). -/
 instance : PartialOrder (GroupTopology α) :=
   PartialOrder.lift toTopologicalSpace toTopologicalSpace_injective
 
+#print GroupTopology.toTopologicalSpace_le /-
 @[simp, to_additive]
 theorem toTopologicalSpace_le {x y : GroupTopology α} :
     x.toTopologicalSpace ≤ y.toTopologicalSpace ↔ x ≤ y :=
   Iff.rfl
 #align group_topology.to_topological_space_le GroupTopology.toTopologicalSpace_le
 #align add_group_topology.to_topological_space_le AddGroupTopology.toTopologicalSpace_le
+-/
 
 @[to_additive]
 instance : Top (GroupTopology α) :=
@@ -1983,11 +2223,13 @@ instance : Top (GroupTopology α) :=
       continuous_mul := continuous_top
       continuous_inv := continuous_top }⟩
 
+#print GroupTopology.toTopologicalSpace_top /-
 @[simp, to_additive]
 theorem toTopologicalSpace_top : (⊤ : GroupTopology α).toTopologicalSpace = ⊤ :=
   rfl
 #align group_topology.to_topological_space_top GroupTopology.toTopologicalSpace_top
 #align add_group_topology.to_topological_space_top AddGroupTopology.toTopologicalSpace_top
+-/
 
 @[to_additive]
 instance : Bot (GroupTopology α) :=
@@ -1996,11 +2238,13 @@ instance : Bot (GroupTopology α) :=
         continuity
       continuous_inv := continuous_bot }⟩
 
+#print GroupTopology.toTopologicalSpace_bot /-
 @[simp, to_additive]
 theorem toTopologicalSpace_bot : (⊥ : GroupTopology α).toTopologicalSpace = ⊥ :=
   rfl
 #align group_topology.to_topological_space_bot GroupTopology.toTopologicalSpace_bot
 #align add_group_topology.to_topological_space_bot AddGroupTopology.toTopologicalSpace_bot
+-/
 
 @[to_additive]
 instance : BoundedOrder (GroupTopology α) where
@@ -2012,12 +2256,14 @@ instance : BoundedOrder (GroupTopology α) where
 @[to_additive]
 instance : Inf (GroupTopology α) where inf x y := ⟨x.1 ⊓ y.1, topologicalGroup_inf x.2 y.2⟩
 
+#print GroupTopology.toTopologicalSpace_inf /-
 @[simp, to_additive]
 theorem toTopologicalSpace_inf (x y : GroupTopology α) :
     (x ⊓ y).toTopologicalSpace = x.toTopologicalSpace ⊓ y.toTopologicalSpace :=
   rfl
 #align group_topology.to_topological_space_inf GroupTopology.toTopologicalSpace_inf
 #align add_group_topology.to_topological_space_inf AddGroupTopology.toTopologicalSpace_inf
+-/
 
 @[to_additive]
 instance : SemilatticeInf (GroupTopology α) :=
@@ -2027,7 +2273,6 @@ instance : SemilatticeInf (GroupTopology α) :=
 instance : Inhabited (GroupTopology α) :=
   ⟨⊤⟩
 
--- mathport name: exprcont
 local notation "cont" => @Continuous _ _
 
 /-- Infimum of a collection of group topologies. -/
@@ -2036,19 +2281,23 @@ instance : InfSet (GroupTopology α)
     where sInf S :=
     ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| ball_image_iff.2 fun t ht => t.2⟩
 
+#print GroupTopology.toTopologicalSpace_sInf /-
 @[simp, to_additive]
 theorem toTopologicalSpace_sInf (s : Set (GroupTopology α)) :
     (sInf s).toTopologicalSpace = sInf (toTopologicalSpace '' s) :=
   rfl
 #align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_sInf
 #align add_group_topology.to_topological_space_Inf AddGroupTopology.toTopologicalSpace_sInf
+-/
 
+#print GroupTopology.toTopologicalSpace_iInf /-
 @[simp, to_additive]
 theorem toTopologicalSpace_iInf {ι} (s : ι → GroupTopology α) :
     (⨅ i, s i).toTopologicalSpace = ⨅ i, (s i).toTopologicalSpace :=
   congr_arg sInf (range_comp _ _).symm
 #align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_iInf
 #align add_group_topology.to_topological_space_infi AddGroupTopology.toTopologicalSpace_iInf
+-/
 
 /-- Group topologies on `γ` form a complete lattice, with `⊥` the discrete topology and `⊤` the
 indiscrete topology.
@@ -2090,6 +2339,7 @@ def coinduced {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α →
 #align add_group_topology.coinduced AddGroupTopology.coinduced
 -/
 
+#print GroupTopology.coinduced_continuous /-
 @[to_additive]
 theorem coinduced_continuous {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) :
     cont t (coinduced f).toTopologicalSpace f :=
@@ -2099,6 +2349,7 @@ theorem coinduced_continuous {α β : Type _} [t : TopologicalSpace α] [Group 
   exact continuous_iff_coinduced_le.2 ht'
 #align group_topology.coinduced_continuous GroupTopology.coinduced_continuous
 #align add_group_topology.coinduced_continuous AddGroupTopology.coinduced_continuous
+-/
 
 end GroupTopology
 
Diff
@@ -1523,7 +1523,6 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
     _ = U * interior V := (is_open_interior.closure_mul U)
     _ ⊆ U * V := (mul_subset_mul_left interior_subset)
     _ ⊆ s := hUV
-    
 #align topological_group.regular_space TopologicalGroup.regularSpace
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 -/
@@ -1742,7 +1741,6 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
       _ = interior V * V := (is_open_interior.mul_closure _)
       _ ⊆ V * V := (mul_subset_mul_right interior_subset)
       _ ⊆ L := by rintro x ⟨y, z, yv, zv, rfl⟩; exact hV _ yv _ zv
-      
   exact
     ⟨closure V, isCompact_of_isClosed_subset Lcomp isClosed_closure VL, isClosed_closure,
       VL.trans LU, interior_mono subset_closure (mem_interior_iff_mem_nhds.2 Vnhds)⟩
@@ -1764,7 +1762,6 @@ theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
     _ = 𝓝 x * 𝓝 y := by
       rw [← map_mul_left_nhds_one x, ← map_mul_right_nhds_one y, ← map₂_mul, map₂_map_left,
         map₂_map_right]
-    
 #align nhds_mul nhds_mul
 #align nhds_add nhds_add
 
Diff
@@ -323,7 +323,7 @@ variable (G₁ G₂ : Type _) [TopologicalSpace G₂] [T2Space G₂]
 
 @[to_additive]
 theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
-    IsClosed { f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹ } :=
+    IsClosed {f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹} :=
   by
   simp only [set_of_forall]
   refine' isClosed_iInter fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
@@ -896,7 +896,7 @@ theorem map_mul_right_nhds_one (x : G) : map (fun y => y * x) (𝓝 1) = 𝓝 x
 
 @[to_additive]
 theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι → Set G}
-    (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) : HasBasis (𝓝 x) p fun i => { y | y / x ∈ s i } :=
+    (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) : HasBasis (𝓝 x) p fun i => {y | y / x ∈ s i} :=
   by
   rw [← nhds_translation_mul_inv]
   simp_rw [div_eq_mul_inv]
@@ -1043,7 +1043,7 @@ instance topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N)
       · exact continuous_quot_mk.prod_map continuous_quot_mk
       · exact (surjective_quot_mk _).Prod_map (surjective_quot_mk _)
     exact (QuotientMap.continuous_iff Quot).2 cont
-  continuous_inv := by convert(@continuous_inv G _ _ _).quotient_map' _
+  continuous_inv := by convert (@continuous_inv G _ _ _).quotient_map' _
 #align topological_group_quotient topologicalGroup_quotient
 #align topological_add_group_quotient topologicalAddGroup_quotient
 -/
@@ -1476,7 +1476,7 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 end TopologicalGroup
 
 #print AddGroupWithZeroNhd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
 
@@ -1795,7 +1795,7 @@ variable [Group G] [TopologicalSpace G] [ContinuousMul G] {Γ : Subgroup G}
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
     where continuous_const_smul g := by
-    convert((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
+    convert ((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
 #align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMul
 #align quotient_add_group.has_continuous_const_vadd QuotientAddGroup.continuousConstVAdd
 
@@ -2088,7 +2088,7 @@ topology such that `f` is continuous and `β` is a topological group. -/
 @[to_additive
       "Given `f : α → β` and a topology on `α`, the coinduced additive group topology on `β`\nis the finest topology such that `f` is continuous and `β` is a topological additive group."]
 def coinduced {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) : GroupTopology β :=
-  sInf { b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace }
+  sInf {b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace}
 #align group_topology.coinduced GroupTopology.coinduced
 #align add_group_topology.coinduced AddGroupTopology.coinduced
 -/
Diff
@@ -449,7 +449,7 @@ that the division operation `λ x y, x * y⁻¹` (resp., subtraction) is continu
 /-- A topological (additive) group is a group in which the addition and negation operations are
 continuous. -/
 class TopologicalAddGroup (G : Type u) [TopologicalSpace G] [AddGroup G] extends ContinuousAdd G,
-  ContinuousNeg G : Prop
+    ContinuousNeg G : Prop
 #align topological_add_group TopologicalAddGroup
 -/
 
@@ -462,7 +462,7 @@ you should also provide an instance of `uniform_space` and `uniform_group` using
 `topological_group.to_uniform_space` and `topological_comm_group_is_uniform`. -/
 @[to_additive]
 class TopologicalGroup (G : Type _) [TopologicalSpace G] [Group G] extends ContinuousMul G,
-  ContinuousInv G : Prop
+    ContinuousInv G : Prop
 #align topological_group TopologicalGroup
 #align topological_add_group TopologicalAddGroup
 -/
@@ -686,7 +686,7 @@ theorem nhds_one_symm' : map Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
 
 @[to_additive]
 theorem inv_mem_nhds_one {S : Set G} (hS : S ∈ (𝓝 1 : Filter G)) : S⁻¹ ∈ 𝓝 (1 : G) := by
-  rwa [← nhds_one_symm'] at hS
+  rwa [← nhds_one_symm'] at hS 
 #align inv_mem_nhds_one inv_mem_nhds_one
 #align neg_mem_nhds_zero neg_mem_nhds_zero
 
@@ -786,8 +786,8 @@ theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H
     [TopologicalGroup H] {f : G →* H} (hf : Continuous f) (hf' : DenseRange f) {s : Subgroup G}
     (hs : s.topologicalClosure = ⊤) : (s.map f).topologicalClosure = ⊤ :=
   by
-  rw [SetLike.ext'_iff] at hs⊢
-  simp only [Subgroup.topologicalClosure_coe, Subgroup.coe_top, ← dense_iff_closure_eq] at hs⊢
+  rw [SetLike.ext'_iff] at hs ⊢
+  simp only [Subgroup.topologicalClosure_coe, Subgroup.coe_top, ← dense_iff_closure_eq] at hs ⊢
   exact hf'.dense_image hf hs
 #align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroup
 #align dense_range.topological_closure_map_add_subgroup DenseRange.topologicalClosure_map_addSubgroup
@@ -1073,7 +1073,7 @@ theorem TopologicalGroup.exists_antitone_basis_nhds_one :
     ((hu.prod_nhds hu).tendsto_iffₓ hu).mp
       (by simpa only [mul_one] using continuous_mul.tendsto ((1, 1) : G × G))
   simp only [and_self_iff, mem_prod, and_imp, Prod.forall, exists_true_left, Prod.exists,
-    forall_true_left] at this
+    forall_true_left] at this 
   have event_mul : ∀ n : ℕ, ∀ᶠ m in at_top, u m * u m ⊆ u n :=
     by
     intro n
@@ -1359,7 +1359,7 @@ theorem subset_interior_mul : interior s * interior t ⊆ interior (s * t) :=
 
 @[to_additive]
 theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s ∈ 𝓝 (a * b) := by
-  have := smul_mem_nhds a h; rwa [← singleton_smul] at this
+  have := smul_mem_nhds a h; rwa [← singleton_smul] at this 
 #align singleton_mul_mem_nhds singleton_mul_mem_nhds
 #align singleton_add_mem_nhds singleton_add_mem_nhds
 
@@ -1447,7 +1447,7 @@ theorem subset_interior_div : interior s / interior t ⊆ interior (s / t) :=
 theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t :=
   by
   refine' (mul_subset_iff.2 fun a ha b hb => _).antisymm (mul_subset_mul_left subset_closure)
-  rw [mem_closure_iff] at hb
+  rw [mem_closure_iff] at hb 
   have hbU : b ∈ s⁻¹ * {a * b} := ⟨a⁻¹, a * b, Set.inv_mem_inv.2 ha, rfl, inv_mul_cancel_left _ _⟩
   obtain ⟨_, ⟨c, d, hc, rfl : d = _, rfl⟩, hcs⟩ := hb _ hs.inv.mul_right hbU
   exact ⟨c⁻¹, _, hc, hcs, inv_mul_cancel_left _ _⟩
@@ -1516,7 +1516,7 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
   have : tendsto (fun p : G × G => p.1 * p.2) (𝓝 (a, 1)) (𝓝 a) :=
     continuous_mul.tendsto' _ _ (mul_one a)
   rcases mem_nhds_prod_iff.mp (this hs) with ⟨U, hU, V, hV, hUV⟩
-  rw [← image_subset_iff, image_prod] at hUV
+  rw [← image_subset_iff, image_prod] at hUV 
   refine' ⟨closure U, mem_of_superset hU subset_closure, isClosed_closure, _⟩
   calc
     closure U ⊆ closure U * interior V := subset_mul_left _ (mem_interior_iff_mem_nhds.2 hV)
@@ -1550,7 +1550,7 @@ variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
     [hS : IsClosed (S : Set G)] : T3Space (G ⧸ S) :=
   by
-  rw [← QuotientGroup.ker_mk' S] at hS
+  rw [← QuotientGroup.ker_mk' S] at hS 
   haveI := TopologicalGroup.t1Space (G ⧸ S) (quotient_map_quotient_mk.is_closed_preimage.mp hS)
   exact TopologicalGroup.t3Space _
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
@@ -1567,7 +1567,7 @@ theorem Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite (S : Subgroup G)
     finite_disjoint_inter_image := by
       intro K L hK hL
       have H : Set.Finite _ := hS ((hL.prod hK).image continuous_div').compl_mem_cocompact
-      rw [preimage_compl, compl_compl] at H
+      rw [preimage_compl, compl_compl] at H 
       convert H
       ext x
       simpa only [image_smul, mem_image, Prod.exists] using Set.smul_inter_ne_empty_iff' }
@@ -1592,7 +1592,7 @@ theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Sub
       have : Continuous fun p : G × G => (p.1⁻¹, p.2) := continuous_inv.prod_map continuous_id
       have H : Set.Finite _ :=
         hS ((hK.prod hL).image (continuous_mul.comp this)).compl_mem_cocompact
-      rw [preimage_compl, compl_compl] at H
+      rw [preimage_compl, compl_compl] at H 
       convert H
       ext x
       simpa only [image_smul, mem_image, Prod.exists] using Set.op_smul_inter_ne_empty_iff }
@@ -1627,9 +1627,9 @@ theorem compact_open_separated_mul_right {K U : Set G} (hK : IsCompact K) (hU :
         ((mul_subset_mul_left (V.inter_subset_right W)).trans hW')
   · intro x hx
     have := tendsto_mul (show U ∈ 𝓝 (x * 1) by simpa using hU.mem_nhds (hKU hx))
-    rw [nhds_prod_eq, mem_map, mem_prod_iff] at this
+    rw [nhds_prod_eq, mem_map, mem_prod_iff] at this 
     rcases this with ⟨t, ht, s, hs, h⟩
-    rw [← image_subset_iff, image_mul_prod] at h
+    rw [← image_subset_iff, image_mul_prod] at h 
     exact ⟨t, mem_nhdsWithin_of_mem_nhds ht, s, hs, h⟩
 #align compact_open_separated_mul_right compact_open_separated_mul_right
 #align compact_open_separated_add_right compact_open_separated_add_right
@@ -1648,7 +1648,7 @@ theorem compact_open_separated_mul_left {K U : Set G} (hK : IsCompact K) (hU : I
     ⟨V, hV : V ∈ 𝓝 (op (1 : G)), hV' : op '' K * V ⊆ op '' U⟩
   refine' ⟨op ⁻¹' V, continuous_op.continuous_at hV, _⟩
   rwa [← image_preimage_eq V op_surjective, ← image_op_mul, image_subset_iff,
-    preimage_image_eq _ op_injective] at hV'
+    preimage_image_eq _ op_injective] at hV' 
 #align compact_open_separated_mul_left compact_open_separated_mul_left
 #align compact_open_separated_add_left compact_open_separated_add_left
 
@@ -1691,7 +1691,7 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
   · refine' Union_eq_univ_iff.2 fun x => _
     obtain ⟨_, ⟨n, rfl⟩, hn⟩ : (range (dense_seq G) ∩ (fun y => x * y) ⁻¹' L).Nonempty :=
       by
-      rw [← (Homeomorph.mulLeft x).apply_symm_apply 1] at hL1
+      rw [← (Homeomorph.mulLeft x).apply_symm_apply 1] at hL1 
       exact
         (dense_range_dense_seq G).inter_nhds_nonempty
           ((Homeomorph.mulLeft x).Continuous.ContinuousAt <| hL1)
@@ -1724,7 +1724,7 @@ neighborhood of the identity, even without separation assumptions on the space.
 theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set G}
     (hU : U ∈ 𝓝 (1 : G)) : ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ U ∧ (1 : G) ∈ interior K :=
   by
-  obtain ⟨L, Lint, LU, Lcomp⟩ : ∃ (L : Set G)(H : L ∈ 𝓝 (1 : G)), L ⊆ U ∧ IsCompact L
+  obtain ⟨L, Lint, LU, Lcomp⟩ : ∃ (L : Set G) (H : L ∈ 𝓝 (1 : G)), L ⊆ U ∧ IsCompact L
   exact local_compact_nhds hU
   obtain ⟨V, Vnhds, hV⟩ : ∃ V ∈ 𝓝 (1 : G), ∀ v ∈ V, ∀ w ∈ V, v * w ∈ L :=
     by
@@ -1907,7 +1907,7 @@ The additive version `add_group_topology α` and corresponding results are provi
 /-- A group topology on a group `α` is a topology for which multiplication and inversion
 are continuous. -/
 structure GroupTopology (α : Type u) [Group α] extends TopologicalSpace α, TopologicalGroup α :
-  Type u
+    Type u
 #align group_topology GroupTopology
 -/
 
@@ -1915,7 +1915,7 @@ structure GroupTopology (α : Type u) [Group α] extends TopologicalSpace α, To
 /-- An additive group topology on an additive group `α` is a topology for which addition and
   negation are continuous. -/
 structure AddGroupTopology (α : Type u) [AddGroup α] extends TopologicalSpace α,
-  TopologicalAddGroup α : Type u
+    TopologicalAddGroup α : Type u
 #align add_group_topology AddGroupTopology
 -/
 
Diff
@@ -42,7 +42,7 @@ topological space, group, topological group
 
 open Classical Set Filter TopologicalSpace Function
 
-open Classical Topology Filter Pointwise
+open scoped Classical Topology Filter Pointwise
 
 universe u v w x
 
Diff
@@ -59,12 +59,6 @@ In this section we prove a few statements about groups with continuous `(*)`.
 
 variable [TopologicalSpace G] [Group G] [ContinuousMul G]
 
-/- warning: homeomorph.mul_left -> Homeomorph.mulLeft is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
-Case conversion may be inaccurate. Consider using '#align homeomorph.mul_left Homeomorph.mulLeftₓ'. -/
 /-- Multiplication from the left in a topological group as a homeomorphism. -/
 @[to_additive "Addition from the left in a topological additive group as a homeomorphism."]
 protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
@@ -74,84 +68,42 @@ protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
 #align homeomorph.mul_left Homeomorph.mulLeft
 #align homeomorph.add_left Homeomorph.addLeft
 
-/- warning: homeomorph.coe_mul_left -> Homeomorph.coe_mulLeft is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113) a)
-Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_left Homeomorph.coe_mulLeftₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (· * ·) a :=
   rfl
 #align homeomorph.coe_mul_left Homeomorph.coe_mulLeft
 #align homeomorph.coe_add_left Homeomorph.coe_addLeft
 
-/- warning: homeomorph.mul_left_symm -> Homeomorph.mulLeft_symm is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a))
-Case conversion may be inaccurate. Consider using '#align homeomorph.mul_left_symm Homeomorph.mulLeft_symmₓ'. -/
 @[to_additive]
 theorem Homeomorph.mulLeft_symm (a : G) : (Homeomorph.mulLeft a).symm = Homeomorph.mulLeft a⁻¹ := by
   ext; rfl
 #align homeomorph.mul_left_symm Homeomorph.mulLeft_symm
 #align homeomorph.add_left_symm Homeomorph.addLeft_symm
 
-/- warning: is_open_map_mul_left -> isOpenMap_mul_left is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
-Case conversion may be inaccurate. Consider using '#align is_open_map_mul_left isOpenMap_mul_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_mul_left (a : G) : IsOpenMap fun x => a * x :=
   (Homeomorph.mulLeft a).IsOpenMap
 #align is_open_map_mul_left isOpenMap_mul_left
 #align is_open_map_add_left isOpenMap_add_left
 
-/- warning: is_open.left_coset -> IsOpen.leftCoset is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
-Case conversion may be inaccurate. Consider using '#align is_open.left_coset IsOpen.leftCosetₓ'. -/
 @[to_additive IsOpen.left_addCoset]
 theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset x U) :=
   isOpenMap_mul_left x _ h
 #align is_open.left_coset IsOpen.leftCoset
 #align is_open.left_add_coset IsOpen.left_addCoset
 
-/- warning: is_closed_map_mul_left -> isClosedMap_mul_left is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
-Case conversion may be inaccurate. Consider using '#align is_closed_map_mul_left isClosedMap_mul_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_mul_left (a : G) : IsClosedMap fun x => a * x :=
   (Homeomorph.mulLeft a).IsClosedMap
 #align is_closed_map_mul_left isClosedMap_mul_left
 #align is_closed_map_add_left isClosedMap_add_left
 
-/- warning: is_closed.left_coset -> IsClosed.leftCoset is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
-Case conversion may be inaccurate. Consider using '#align is_closed.left_coset IsClosed.leftCosetₓ'. -/
 @[to_additive IsClosed.left_addCoset]
 theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (leftCoset x U) :=
   isClosedMap_mul_left x _ h
 #align is_closed.left_coset IsClosed.leftCoset
 #align is_closed.left_add_coset IsClosed.left_addCoset
 
-/- warning: homeomorph.mul_right -> Homeomorph.mulRight is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
-Case conversion may be inaccurate. Consider using '#align homeomorph.mul_right Homeomorph.mulRightₓ'. -/
 /-- Multiplication from the right in a topological group as a homeomorphism. -/
 @[to_additive "Addition from the right in a topological additive group as a homeomorphism."]
 protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
@@ -161,84 +113,42 @@ protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
 #align homeomorph.mul_right Homeomorph.mulRight
 #align homeomorph.add_right Homeomorph.addRight
 
-/- warning: homeomorph.coe_mul_right -> Homeomorph.coe_mulRight is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (fun (g : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g a)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (fun (g : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g a)
-Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_right Homeomorph.coe_mulRightₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulRight (a : G) : ⇑(Homeomorph.mulRight a) = fun g => g * a :=
   rfl
 #align homeomorph.coe_mul_right Homeomorph.coe_mulRight
 #align homeomorph.coe_add_right Homeomorph.coe_addRight
 
-/- warning: homeomorph.mul_right_symm -> Homeomorph.mulRight_symm is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a))
-Case conversion may be inaccurate. Consider using '#align homeomorph.mul_right_symm Homeomorph.mulRight_symmₓ'. -/
 @[to_additive]
 theorem Homeomorph.mulRight_symm (a : G) : (Homeomorph.mulRight a).symm = Homeomorph.mulRight a⁻¹ :=
   by ext; rfl
 #align homeomorph.mul_right_symm Homeomorph.mulRight_symm
 #align homeomorph.add_right_symm Homeomorph.addRight_symm
 
-/- warning: is_open_map_mul_right -> isOpenMap_mul_right is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
-Case conversion may be inaccurate. Consider using '#align is_open_map_mul_right isOpenMap_mul_rightₓ'. -/
 @[to_additive]
 theorem isOpenMap_mul_right (a : G) : IsOpenMap fun x => x * a :=
   (Homeomorph.mulRight a).IsOpenMap
 #align is_open_map_mul_right isOpenMap_mul_right
 #align is_open_map_add_right isOpenMap_add_right
 
-/- warning: is_open.right_coset -> IsOpen.rightCoset is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
-Case conversion may be inaccurate. Consider using '#align is_open.right_coset IsOpen.rightCosetₓ'. -/
 @[to_additive IsOpen.right_addCoset]
 theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (rightCoset U x) :=
   isOpenMap_mul_right x _ h
 #align is_open.right_coset IsOpen.rightCoset
 #align is_open.right_add_coset IsOpen.right_addCoset
 
-/- warning: is_closed_map_mul_right -> isClosedMap_mul_right is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
-Case conversion may be inaccurate. Consider using '#align is_closed_map_mul_right isClosedMap_mul_rightₓ'. -/
 @[to_additive]
 theorem isClosedMap_mul_right (a : G) : IsClosedMap fun x => x * a :=
   (Homeomorph.mulRight a).IsClosedMap
 #align is_closed_map_mul_right isClosedMap_mul_right
 #align is_closed_map_add_right isClosedMap_add_right
 
-/- warning: is_closed.right_coset -> IsClosed.rightCoset is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
-Case conversion may be inaccurate. Consider using '#align is_closed.right_coset IsClosed.rightCosetₓ'. -/
 @[to_additive IsClosed.right_addCoset]
 theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rightCoset U x) :=
   isClosedMap_mul_right x _ h
 #align is_closed.right_coset IsClosed.rightCoset
 #align is_closed.right_add_coset IsClosed.right_addCoset
 
-/- warning: discrete_topology_of_open_singleton_one -> discreteTopology_of_open_singleton_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsOpen.{u1} G _inst_1 (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 _inst_2))))))))) -> (DiscreteTopology.{u1} G _inst_1)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsOpen.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2)))))))) -> (DiscreteTopology.{u1} G _inst_1)
-Case conversion may be inaccurate. Consider using '#align discrete_topology_of_open_singleton_one discreteTopology_of_open_singleton_oneₓ'. -/
 @[to_additive]
 theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : DiscreteTopology G :=
   by
@@ -251,12 +161,6 @@ theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : Disc
 #align discrete_topology_of_open_singleton_one discreteTopology_of_open_singleton_one
 #align discrete_topology_of_open_singleton_zero discreteTopology_of_open_singleton_zero
 
-/- warning: discrete_topology_iff_open_singleton_one -> discreteTopology_iff_open_singleton_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], Iff (DiscreteTopology.{u1} G _inst_1) (IsOpen.{u1} G _inst_1 (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 _inst_2)))))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], Iff (DiscreteTopology.{u1} G _inst_1) (IsOpen.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align discrete_topology_iff_open_singleton_one discreteTopology_iff_open_singleton_oneₓ'. -/
 @[to_additive]
 theorem discreteTopology_iff_open_singleton_one : DiscreteTopology G ↔ IsOpen ({1} : Set G) :=
   ⟨fun h => forall_open_iff_discrete.mpr h {1}, discreteTopology_of_open_singleton_one⟩
@@ -417,12 +321,6 @@ section PointwiseLimits
 
 variable (G₁ G₂ : Type _) [TopologicalSpace G₂] [T2Space G₂]
 
-/- warning: is_closed_set_of_map_inv -> isClosed_setOf_map_inv is a dubious translation:
-lean 3 declaration is
-  forall (G₁ : Type.{u1}) (G₂ : Type.{u2}) [_inst_5 : TopologicalSpace.{u2} G₂] [_inst_6 : T2Space.{u2} G₂ _inst_5] [_inst_7 : Inv.{u1} G₁] [_inst_8 : Inv.{u2} G₂] [_inst_9 : ContinuousInv.{u2} G₂ _inst_5 _inst_8], IsClosed.{max u1 u2} (G₁ -> G₂) (Pi.topologicalSpace.{u1, u2} G₁ (fun (ᾰ : G₁) => G₂) (fun (a : G₁) => _inst_5)) (setOf.{max u1 u2} (G₁ -> G₂) (fun (f : G₁ -> G₂) => forall (x : G₁), Eq.{succ u2} G₂ (f (Inv.inv.{u1} G₁ _inst_7 x)) (Inv.inv.{u2} G₂ _inst_8 (f x))))
-but is expected to have type
-  forall (G₁ : Type.{u2}) (G₂ : Type.{u1}) [_inst_5 : TopologicalSpace.{u1} G₂] [_inst_6 : T2Space.{u1} G₂ _inst_5] [_inst_7 : Inv.{u2} G₁] [_inst_8 : Inv.{u1} G₂] [_inst_9 : ContinuousInv.{u1} G₂ _inst_5 _inst_8], IsClosed.{max u2 u1} (G₁ -> G₂) (Pi.topologicalSpace.{u2, u1} G₁ (fun (ᾰ : G₁) => G₂) (fun (a : G₁) => _inst_5)) (setOf.{max u2 u1} (G₁ -> G₂) (fun (f : G₁ -> G₂) => forall (x : G₁), Eq.{succ u1} G₂ (f (Inv.inv.{u2} G₁ _inst_7 x)) (Inv.inv.{u1} G₂ _inst_8 (f x))))
-Case conversion may be inaccurate. Consider using '#align is_closed_set_of_map_inv isClosed_setOf_map_invₓ'. -/
 @[to_additive]
 theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
     IsClosed { f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹ } :=
@@ -446,12 +344,6 @@ section ContinuousInvolutiveInv
 
 variable [TopologicalSpace G] [InvolutiveInv G] [ContinuousInv G] {s : Set G}
 
-/- warning: is_compact.inv -> IsCompact.inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsCompact.{u1} G _inst_1 s) -> (IsCompact.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsCompact.{u1} G _inst_1 s) -> (IsCompact.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
-Case conversion may be inaccurate. Consider using '#align is_compact.inv IsCompact.invₓ'. -/
 @[to_additive]
 theorem IsCompact.inv (hs : IsCompact s) : IsCompact s⁻¹ := by rw [← image_inv];
   exact hs.image continuous_inv
@@ -460,12 +352,6 @@ theorem IsCompact.inv (hs : IsCompact s) : IsCompact s⁻¹ := by rw [← image_
 
 variable (G)
 
-/- warning: homeomorph.inv -> Homeomorph.inv is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_4 : TopologicalSpace.{u1} G] [_inst_5 : InvolutiveInv.{u1} G] [_inst_6 : ContinuousInv.{u1} G _inst_4 (InvolutiveInv.toHasInv.{u1} G _inst_5)], Homeomorph.{u1, u1} G G _inst_4 _inst_4
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_4 : TopologicalSpace.{u1} G] [_inst_5 : InvolutiveInv.{u1} G] [_inst_6 : ContinuousInv.{u1} G _inst_4 (InvolutiveInv.toInv.{u1} G _inst_5)], Homeomorph.{u1, u1} G G _inst_4 _inst_4
-Case conversion may be inaccurate. Consider using '#align homeomorph.inv Homeomorph.invₓ'. -/
 /-- Inversion in a topological group as a homeomorphism. -/
 @[to_additive "Negation in a topological group as a homeomorphism."]
 protected def Homeomorph.inv (G : Type _) [TopologicalSpace G] [InvolutiveInv G] [ContinuousInv G] :
@@ -476,24 +362,12 @@ protected def Homeomorph.inv (G : Type _) [TopologicalSpace G] [InvolutiveInv G]
 #align homeomorph.inv Homeomorph.inv
 #align homeomorph.neg Homeomorph.neg
 
-/- warning: is_open_map_inv -> isOpenMap_inv is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)], IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)], IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2))
-Case conversion may be inaccurate. Consider using '#align is_open_map_inv isOpenMap_invₓ'. -/
 @[to_additive]
 theorem isOpenMap_inv : IsOpenMap (Inv.inv : G → G) :=
   (Homeomorph.inv _).IsOpenMap
 #align is_open_map_inv isOpenMap_inv
 #align is_open_map_neg isOpenMap_neg
 
-/- warning: is_closed_map_inv -> isClosedMap_inv is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)], IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)], IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2))
-Case conversion may be inaccurate. Consider using '#align is_closed_map_inv isClosedMap_invₓ'. -/
 @[to_additive]
 theorem isClosedMap_inv : IsClosedMap (Inv.inv : G → G) :=
   (Homeomorph.inv _).IsClosedMap
@@ -502,36 +376,18 @@ theorem isClosedMap_inv : IsClosedMap (Inv.inv : G → G) :=
 
 variable {G}
 
-/- warning: is_open.inv -> IsOpen.inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsOpen.{u1} G _inst_1 s) -> (IsOpen.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsOpen.{u1} G _inst_1 s) -> (IsOpen.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
-Case conversion may be inaccurate. Consider using '#align is_open.inv IsOpen.invₓ'. -/
 @[to_additive]
 theorem IsOpen.inv (hs : IsOpen s) : IsOpen s⁻¹ :=
   hs.Preimage continuous_inv
 #align is_open.inv IsOpen.inv
 #align is_open.neg IsOpen.neg
 
-/- warning: is_closed.inv -> IsClosed.inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsClosed.{u1} G _inst_1 s) -> (IsClosed.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsClosed.{u1} G _inst_1 s) -> (IsClosed.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
-Case conversion may be inaccurate. Consider using '#align is_closed.inv IsClosed.invₓ'. -/
 @[to_additive]
 theorem IsClosed.inv (hs : IsClosed s) : IsClosed s⁻¹ :=
   hs.Preimage continuous_inv
 #align is_closed.inv IsClosed.inv
 #align is_closed.neg IsClosed.neg
 
-/- warning: inv_closure -> inv_closure is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] (s : Set.{u1} G), Eq.{succ u1} (Set.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) (closure.{u1} G _inst_1 s)) (closure.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] (s : Set.{u1} G), Eq.{succ u1} (Set.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) (closure.{u1} G _inst_1 s)) (closure.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
-Case conversion may be inaccurate. Consider using '#align inv_closure inv_closureₓ'. -/
 @[to_additive]
 theorem inv_closure : ∀ s : Set G, (closure s)⁻¹ = closure s⁻¹ :=
   (Homeomorph.inv G).preimage_closure
@@ -544,12 +400,6 @@ section LatticeOps
 
 variable {ι' : Sort _} [Inv G]
 
-/- warning: has_continuous_inv_Inf -> continuousInv_sInf is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
-Case conversion may be inaccurate. Consider using '#align has_continuous_inv_Inf continuousInv_sInfₓ'. -/
 @[to_additive]
 theorem continuousInv_sInf {ts : Set (TopologicalSpace G)} (h : ∀ t ∈ ts, @ContinuousInv G t _) :
     @ContinuousInv G (sInf ts) _ :=
@@ -560,12 +410,6 @@ theorem continuousInv_sInf {ts : Set (TopologicalSpace G)} (h : ∀ t ∈ ts, @C
 #align has_continuous_inv_Inf continuousInv_sInf
 #align has_continuous_neg_Inf continuousNeg_sInf
 
-/- warning: has_continuous_inv_infi -> continuousInv_iInf is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {ι' : Sort.{u2}} [_inst_1 : Inv.{u1} G] {ts' : ι' -> (TopologicalSpace.{u1} G)}, (forall (i : ι'), ContinuousInv.{u1} G (ts' i) _inst_1) -> (ContinuousInv.{u1} G (iInf.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
-but is expected to have type
-  forall {G : Type.{u2}} {ι' : Sort.{u1}} [_inst_1 : Inv.{u2} G] {ts' : ι' -> (TopologicalSpace.{u2} G)}, (forall (i : ι'), ContinuousInv.{u2} G (ts' i) _inst_1) -> (ContinuousInv.{u2} G (iInf.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
-Case conversion may be inaccurate. Consider using '#align has_continuous_inv_infi continuousInv_iInfₓ'. -/
 @[to_additive]
 theorem continuousInv_iInf {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @ContinuousInv G (ts' i) _) :
     @ContinuousInv G (⨅ i, ts' i) _ := by rw [← sInf_range];
@@ -573,12 +417,6 @@ theorem continuousInv_iInf {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @Cont
 #align has_continuous_inv_infi continuousInv_iInf
 #align has_continuous_neg_infi continuousNeg_iInf
 
-/- warning: has_continuous_inv_inf -> continuousInv_inf is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
-Case conversion may be inaccurate. Consider using '#align has_continuous_inv_inf continuousInv_infₓ'. -/
 @[to_additive]
 theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousInv G t₁ _)
     (h₂ : @ContinuousInv G t₂ _) : @ContinuousInv G (t₁ ⊓ t₂) _ := by rw [inf_eq_iInf];
@@ -588,12 +426,6 @@ theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousIn
 
 end LatticeOps
 
-/- warning: inducing.has_continuous_inv -> Inducing.continuousInv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : Inv.{u1} G] [_inst_2 : Inv.{u2} H] [_inst_3 : TopologicalSpace.{u1} G] [_inst_4 : TopologicalSpace.{u2} H] [_inst_5 : ContinuousInv.{u2} H _inst_4 _inst_2] {f : G -> H}, (Inducing.{u1, u2} G H _inst_3 _inst_4 f) -> (forall (x : G), Eq.{succ u2} H (f (Inv.inv.{u1} G _inst_1 x)) (Inv.inv.{u2} H _inst_2 (f x))) -> (ContinuousInv.{u1} G _inst_3 _inst_1)
-but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u1}} [_inst_1 : Inv.{u2} G] [_inst_2 : Inv.{u1} H] [_inst_3 : TopologicalSpace.{u2} G] [_inst_4 : TopologicalSpace.{u1} H] [_inst_5 : ContinuousInv.{u1} H _inst_4 _inst_2] {f : G -> H}, (Inducing.{u2, u1} G H _inst_3 _inst_4 f) -> (forall (x : G), Eq.{succ u1} H (f (Inv.inv.{u2} G _inst_1 x)) (Inv.inv.{u1} H _inst_2 (f x))) -> (ContinuousInv.{u2} G _inst_3 _inst_1)
-Case conversion may be inaccurate. Consider using '#align inducing.has_continuous_inv Inducing.continuousInvₓ'. -/
 @[to_additive]
 theorem Inducing.continuousInv {G H : Type _} [Inv G] [Inv H] [TopologicalSpace G]
     [TopologicalSpace H] [ContinuousInv H] {f : G → H} (hf : Inducing f)
@@ -637,12 +469,6 @@ class TopologicalGroup (G : Type _) [TopologicalSpace G] [Group G] extends Conti
 
 section Conj
 
-/- warning: conj_act.units_has_continuous_const_smul -> ConjAct.units_continuousConstSMul is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u1} M] [_inst_3 : ContinuousMul.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], ContinuousConstSMul.{u1, u1} (ConjAct.{u1} (Units.{u1} M _inst_1)) M _inst_2 (ConjAct.unitsScalar.{u1} M _inst_1)
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u1} M] [_inst_3 : ContinuousMul.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], ContinuousConstSMul.{u1, u1} (ConjAct.{u1} (Units.{u1} M _inst_1)) M _inst_2 (ConjAct.unitsScalar.{u1} M _inst_1)
-Case conversion may be inaccurate. Consider using '#align conj_act.units_has_continuous_const_smul ConjAct.units_continuousConstSMulₓ'. -/
 instance ConjAct.units_continuousConstSMul {M} [Monoid M] [TopologicalSpace M] [ContinuousMul M] :
     ContinuousConstSMul (ConjAct Mˣ) M :=
   ⟨fun m => (continuous_const.mul continuous_id).mul continuous_const⟩
@@ -650,12 +476,6 @@ instance ConjAct.units_continuousConstSMul {M} [Monoid M] [TopologicalSpace M] [
 
 variable [TopologicalSpace G] [Inv G] [Mul G] [ContinuousMul G]
 
-/- warning: topological_group.continuous_conj_prod -> TopologicalGroup.continuous_conj_prod is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Inv.{u1} G] [_inst_3 : Mul.{u1} G] [_inst_4 : ContinuousMul.{u1} G _inst_1 _inst_3] [_inst_5 : ContinuousInv.{u1} G _inst_1 _inst_2], Continuous.{u1, u1} (Prod.{u1, u1} G G) G (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) _inst_1 (fun (g : Prod.{u1, u1} G G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (Prod.fst.{u1, u1} G G g) (Prod.snd.{u1, u1} G G g)) (Inv.inv.{u1} G _inst_2 (Prod.fst.{u1, u1} G G g)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Inv.{u1} G] [_inst_3 : Mul.{u1} G] [_inst_4 : ContinuousMul.{u1} G _inst_1 _inst_3] [_inst_5 : ContinuousInv.{u1} G _inst_1 _inst_2], Continuous.{u1, u1} (Prod.{u1, u1} G G) G (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) _inst_1 (fun (g : Prod.{u1, u1} G G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (Prod.fst.{u1, u1} G G g) (Prod.snd.{u1, u1} G G g)) (Inv.inv.{u1} G _inst_2 (Prod.fst.{u1, u1} G G g)))
-Case conversion may be inaccurate. Consider using '#align topological_group.continuous_conj_prod TopologicalGroup.continuous_conj_prodₓ'. -/
 /-- Conjugation is jointly continuous on `G × G` when both `mul` and `inv` are continuous. -/
 @[to_additive
       "Conjugation is jointly continuous on `G × G` when both `mul` and `inv` are\ncontinuous."]
@@ -709,12 +529,6 @@ instance AddGroup.continuousConstSMul_int {A} [AddGroup A] [TopologicalSpace A]
 #align add_group.has_continuous_const_smul_int AddGroup.continuousConstSMul_int
 -/
 
-/- warning: add_group.has_continuous_smul_int -> AddGroup.continuousSMul_int is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} [_inst_5 : AddGroup.{u1} A] [_inst_6 : TopologicalSpace.{u1} A] [_inst_7 : TopologicalAddGroup.{u1} A _inst_6 _inst_5], ContinuousSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_5)) Int.topologicalSpace _inst_6
-but is expected to have type
-  forall {A : Type.{u1}} [_inst_5 : AddGroup.{u1} A] [_inst_6 : TopologicalSpace.{u1} A] [_inst_7 : TopologicalAddGroup.{u1} A _inst_6 _inst_5], ContinuousSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_5)) instTopologicalSpaceInt _inst_6
-Case conversion may be inaccurate. Consider using '#align add_group.has_continuous_smul_int AddGroup.continuousSMul_intₓ'. -/
 instance AddGroup.continuousSMul_int {A} [AddGroup A] [TopologicalSpace A] [TopologicalAddGroup A] :
     ContinuousSMul ℤ A :=
   ⟨continuous_uncurry_of_discreteTopology continuous_zsmul⟩
@@ -744,12 +558,6 @@ theorem continuousAt_zpow (x : G) (z : ℤ) : ContinuousAt (fun x => x ^ z) x :=
 #align continuous_at_zsmul continuousAt_zsmul
 -/
 
-/- warning: filter.tendsto.zpow -> Filter.Tendsto.zpow is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {α : Type.{u2}} {l : Filter.{u2} α} {f : α -> G} {x : G}, (Filter.Tendsto.{u2, u1} α G f l (nhds.{u1} G _inst_1 x)) -> (forall (z : Int), Filter.Tendsto.{u2, u1} α G (fun (x : α) => HPow.hPow.{u1, 0, u1} G Int G (instHPow.{u1, 0} G Int (DivInvMonoid.Pow.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (f x) z) l (nhds.{u1} G _inst_1 (HPow.hPow.{u1, 0, u1} G Int G (instHPow.{u1, 0} G Int (DivInvMonoid.Pow.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) x z)))
-but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {α : Type.{u1}} {l : Filter.{u1} α} {f : α -> G} {x : G}, (Filter.Tendsto.{u1, u2} α G f l (nhds.{u2} G _inst_1 x)) -> (forall (z : Int), Filter.Tendsto.{u1, u2} α G (fun (x : α) => HPow.hPow.{u2, 0, u2} G Int G (instHPow.{u2, 0} G Int (DivInvMonoid.Pow.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) (f x) z) l (nhds.{u2} G _inst_1 (HPow.hPow.{u2, 0, u2} G Int G (instHPow.{u2, 0} G Int (DivInvMonoid.Pow.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) x z)))
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.zpow Filter.Tendsto.zpowₓ'. -/
 @[to_additive]
 theorem Filter.Tendsto.zpow {α} {l : Filter α} {f : α → G} {x : G} (hf : Tendsto f l (𝓝 x))
     (z : ℤ) : Tendsto (fun x => f x ^ z) l (𝓝 (x ^ z)) :=
@@ -789,96 +597,48 @@ section OrderedCommGroup
 
 variable [TopologicalSpace H] [OrderedCommGroup H] [ContinuousInv H]
 
-/- warning: tendsto_inv_nhds_within_Ioi -> tendsto_inv_nhdsWithin_Ioi is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi tendsto_inv_nhdsWithin_Ioiₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi {a : H} : Tendsto Inv.inv (𝓝[>] a) (𝓝[<] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Ioi tendsto_inv_nhdsWithin_Ioi
 #align tendsto_neg_nhds_within_Ioi tendsto_neg_nhdsWithin_Ioi
 
-/- warning: tendsto_inv_nhds_within_Iio -> tendsto_inv_nhdsWithin_Iio is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio tendsto_inv_nhdsWithin_Iioₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio {a : H} : Tendsto Inv.inv (𝓝[<] a) (𝓝[>] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Iio tendsto_inv_nhdsWithin_Iio
 #align tendsto_neg_nhds_within_Iio tendsto_neg_nhdsWithin_Iio
 
-/- warning: tendsto_inv_nhds_within_Ioi_inv -> tendsto_inv_nhdsWithin_Ioi_inv is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi_inv tendsto_inv_nhdsWithin_Ioi_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi_inv {a : H} : Tendsto Inv.inv (𝓝[>] a⁻¹) (𝓝[<] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Ioi _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Ioi_inv tendsto_inv_nhdsWithin_Ioi_inv
 #align tendsto_neg_nhds_within_Ioi_neg tendsto_neg_nhdsWithin_Ioi_neg
 
-/- warning: tendsto_inv_nhds_within_Iio_inv -> tendsto_inv_nhdsWithin_Iio_inv is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio_inv tendsto_inv_nhdsWithin_Iio_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio_inv {a : H} : Tendsto Inv.inv (𝓝[<] a⁻¹) (𝓝[>] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iio _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Iio_inv tendsto_inv_nhdsWithin_Iio_inv
 #align tendsto_neg_nhds_within_Iio_neg tendsto_neg_nhdsWithin_Iio_neg
 
-/- warning: tendsto_inv_nhds_within_Ici -> tendsto_inv_nhdsWithin_Ici is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici tendsto_inv_nhdsWithin_Iciₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici {a : H} : Tendsto Inv.inv (𝓝[≥] a) (𝓝[≤] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Ici tendsto_inv_nhdsWithin_Ici
 #align tendsto_neg_nhds_within_Ici tendsto_neg_nhdsWithin_Ici
 
-/- warning: tendsto_inv_nhds_within_Iic -> tendsto_inv_nhdsWithin_Iic is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic tendsto_inv_nhdsWithin_Iicₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic {a : H} : Tendsto Inv.inv (𝓝[≤] a) (𝓝[≥] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Iic tendsto_inv_nhdsWithin_Iic
 #align tendsto_neg_nhds_within_Iic tendsto_neg_nhdsWithin_Iic
 
-/- warning: tendsto_inv_nhds_within_Ici_inv -> tendsto_inv_nhdsWithin_Ici_inv is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici_inv tendsto_inv_nhdsWithin_Ici_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici_inv {a : H} : Tendsto Inv.inv (𝓝[≥] a⁻¹) (𝓝[≤] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Ici _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Ici_inv tendsto_inv_nhdsWithin_Ici_inv
 #align tendsto_neg_nhds_within_Ici_neg tendsto_neg_nhdsWithin_Ici_neg
 
-/- warning: tendsto_inv_nhds_within_Iic_inv -> tendsto_inv_nhdsWithin_Iic_inv is a dubious translation:
-lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
-Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic_inv tendsto_inv_nhdsWithin_Iic_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic_inv {a : H} : Tendsto Inv.inv (𝓝[≤] a⁻¹) (𝓝[≥] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iic _ _ _ _ a⁻¹
@@ -912,48 +672,24 @@ instance [Group α] [TopologicalGroup α] : TopologicalGroup αᵐᵒᵖ where
 
 variable (G)
 
-/- warning: nhds_one_symm -> nhds_one_symm is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 (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_2))))))))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2))))) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 (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_2)))))))
-Case conversion may be inaccurate. Consider using '#align nhds_one_symm nhds_one_symmₓ'. -/
 @[to_additive]
 theorem nhds_one_symm : comap Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
   ((Homeomorph.inv G).comap_nhds_eq _).trans (congr_arg nhds inv_one)
 #align nhds_one_symm nhds_one_symm
 #align nhds_zero_symm nhds_zero_symm
 
-/- warning: nhds_one_symm' -> nhds_one_symm' is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 (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_2))))))))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2))))) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 (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_2)))))))
-Case conversion may be inaccurate. Consider using '#align nhds_one_symm' nhds_one_symm'ₓ'. -/
 @[to_additive]
 theorem nhds_one_symm' : map Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
   ((Homeomorph.inv G).map_nhds_eq _).trans (congr_arg nhds inv_one)
 #align nhds_one_symm' nhds_one_symm'
 #align nhds_zero_symm' nhds_zero_symm'
 
-/- warning: inv_mem_nhds_one -> inv_mem_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {S : Set.{u1} G}, (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) S (nhds.{u1} G _inst_1 (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_2))))))))) -> (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) S) (nhds.{u1} G _inst_1 (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_2)))))))))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {S : Set.{u1} G}, (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) S (nhds.{u1} G _inst_1 (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_2)))))))) -> (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2))))) S) (nhds.{u1} G _inst_1 (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_2))))))))
-Case conversion may be inaccurate. Consider using '#align inv_mem_nhds_one inv_mem_nhds_oneₓ'. -/
 @[to_additive]
 theorem inv_mem_nhds_one {S : Set G} (hS : S ∈ (𝓝 1 : Filter G)) : S⁻¹ ∈ 𝓝 (1 : G) := by
   rwa [← nhds_one_symm'] at hS
 #align inv_mem_nhds_one inv_mem_nhds_one
 #align neg_mem_nhds_zero neg_mem_nhds_zero
 
-/- warning: homeomorph.shear_mul_right -> Homeomorph.shearMulRight is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)
-Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right Homeomorph.shearMulRightₓ'. -/
 /-- The map `(x, y) ↦ (x, xy)` as a homeomorphism. This is a shear mapping. -/
 @[to_additive "The map `(x, y) ↦ (x, x + y)` as a homeomorphism.\nThis is a shear mapping."]
 protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
@@ -965,12 +701,6 @@ protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
 #align homeomorph.shear_mul_right Homeomorph.shearMulRight
 #align homeomorph.shear_add_right Homeomorph.shearAddRight
 
-/- warning: homeomorph.shear_mul_right_coe -> Homeomorph.shearMulRight_coe is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (fun (_x : Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) => (Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (Homeomorph.hasCoeToFun.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3)) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Prod.fst.{u1, u1} G G z) (Prod.snd.{u1, u1} G G z)))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3)) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Prod.fst.{u1, u1} G G z) (Prod.snd.{u1, u1} G G z)))
-Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right_coe Homeomorph.shearMulRight_coeₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_coe :
     ⇑(Homeomorph.shearMulRight G) = fun z : G × G => (z.1, z.1 * z.2) :=
@@ -978,12 +708,6 @@ theorem Homeomorph.shearMulRight_coe :
 #align homeomorph.shear_mul_right_coe Homeomorph.shearMulRight_coe
 #align homeomorph.shear_add_right_coe Homeomorph.shearAddRight_coe
 
-/- warning: homeomorph.shear_mul_right_symm_coe -> Homeomorph.shearMulRight_symm_coe is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (fun (_x : Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) => (Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (Homeomorph.hasCoeToFun.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (Homeomorph.symm.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3))) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Prod.fst.{u1, u1} G G z)) (Prod.snd.{u1, u1} G G z)))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.symm.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3))) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) (Prod.fst.{u1, u1} G G z)) (Prod.snd.{u1, u1} G G z)))
-Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right_symm_coe Homeomorph.shearMulRight_symm_coeₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_symm_coe :
     ⇑(Homeomorph.shearMulRight G).symm = fun z : G × G => (z.1, z.1⁻¹ * z.2) :=
@@ -993,12 +717,6 @@ theorem Homeomorph.shearMulRight_symm_coe :
 
 variable {G}
 
-/- warning: inducing.topological_group -> Inducing.topologicalGroup is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), (Inducing.{u2, u1} H G _inst_6 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_7))) f)) -> (TopologicalGroup.{u2} H _inst_6 _inst_5)
-but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
-Case conversion may be inaccurate. Consider using '#align inducing.topological_group Inducing.topologicalGroupₓ'. -/
 @[to_additive]
 protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalSpace H]
     [MonoidHomClass F H G] (f : F) (hf : Inducing f) : TopologicalGroup H :=
@@ -1007,12 +725,6 @@ protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalS
 #align inducing.topological_group Inducing.topologicalGroup
 #align inducing.topological_add_group Inducing.topologicalAddGroup
 
-/- warning: topological_group_induced -> topologicalGroup_induced is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), TopologicalGroup.{u2} H (TopologicalSpace.induced.{u2, u1} H G (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_6))) f) _inst_1) _inst_5
-but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
-Case conversion may be inaccurate. Consider using '#align topological_group_induced topologicalGroup_inducedₓ'. -/
 @[to_additive]
 protected theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClass F H G] (f : F) :
     @TopologicalGroup H (induced f ‹_›) _ :=
@@ -1043,12 +755,6 @@ def Subgroup.topologicalClosure (s : Subgroup G) : Subgroup G :=
 #align add_subgroup.topological_closure AddSubgroup.topologicalClosure
 -/
 
-/- warning: subgroup.topological_closure_coe -> Subgroup.topologicalClosure_coe is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Subgroup.{u1} G _inst_2}, Eq.{succ u1} (Set.{u1} G) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)) (closure.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Subgroup.{u1} G _inst_2}, Eq.{succ u1} (Set.{u1} G) (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)) (closure.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) s))
-Case conversion may be inaccurate. Consider using '#align subgroup.topological_closure_coe Subgroup.topologicalClosure_coeₓ'. -/
 @[simp, to_additive]
 theorem Subgroup.topologicalClosure_coe {s : Subgroup G} :
     (s.topologicalClosure : Set G) = closure s :=
@@ -1056,36 +762,18 @@ theorem Subgroup.topologicalClosure_coe {s : Subgroup G} :
 #align subgroup.topological_closure_coe Subgroup.topologicalClosure_coe
 #align add_subgroup.topological_closure_coe AddSubgroup.topologicalClosure_coe
 
-/- warning: subgroup.le_topological_closure -> Subgroup.le_topologicalClosure is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) s (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)
-Case conversion may be inaccurate. Consider using '#align subgroup.le_topological_closure Subgroup.le_topologicalClosureₓ'. -/
 @[to_additive]
 theorem Subgroup.le_topologicalClosure (s : Subgroup G) : s ≤ s.topologicalClosure :=
   subset_closure
 #align subgroup.le_topological_closure Subgroup.le_topologicalClosure
 #align add_subgroup.le_topological_closure AddSubgroup.le_topologicalClosure
 
-/- warning: subgroup.is_closed_topological_closure -> Subgroup.isClosed_topologicalClosure is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s))
-Case conversion may be inaccurate. Consider using '#align subgroup.is_closed_topological_closure Subgroup.isClosed_topologicalClosureₓ'. -/
 @[to_additive]
 theorem Subgroup.isClosed_topologicalClosure (s : Subgroup G) :
     IsClosed (s.topologicalClosure : Set G) := by convert isClosed_closure
 #align subgroup.is_closed_topological_closure Subgroup.isClosed_topologicalClosure
 #align add_subgroup.is_closed_topological_closure AddSubgroup.isClosed_topologicalClosure
 
-/- warning: subgroup.topological_closure_minimal -> Subgroup.topologicalClosure_minimal is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2) {t : Subgroup.{u1} G _inst_2}, (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s t) -> (IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) t)) -> (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) t)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2) {t : Subgroup.{u1} G _inst_2}, (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) s t) -> (IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) t)) -> (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) t)
-Case conversion may be inaccurate. Consider using '#align subgroup.topological_closure_minimal Subgroup.topologicalClosure_minimalₓ'. -/
 @[to_additive]
 theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h : s ≤ t)
     (ht : IsClosed (t : Set G)) : s.topologicalClosure ≤ t :=
@@ -1093,12 +781,6 @@ theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h
 #align subgroup.topological_closure_minimal Subgroup.topologicalClosure_minimal
 #align add_subgroup.topological_closure_minimal AddSubgroup.topologicalClosure_minimal
 
-/- warning: dense_range.topological_closure_map_subgroup -> DenseRange.topologicalClosure_map_subgroup is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.hasTop.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.hasTop.{u2} H _inst_5))))
-but is expected to have type
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
-Case conversion may be inaccurate. Consider using '#align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroupₓ'. -/
 @[to_additive]
 theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H]
     [TopologicalGroup H] {f : G →* H} (hf : Continuous f) (hf' : DenseRange f) {s : Subgroup G}
@@ -1124,12 +806,6 @@ theorem Subgroup.is_normal_topologicalClosure {G : Type _} [TopologicalSpace G]
 #align add_subgroup.is_normal_topological_closure AddSubgroup.is_normal_topologicalClosure
 -/
 
-/- warning: mul_mem_connected_component_one -> mul_mem_connectedComponent_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : MulOneClass.{u1} G] [_inst_7 : ContinuousMul.{u1} G _inst_5 (MulOneClass.toHasMul.{u1} G _inst_6)] {g : G} {h : G}, (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) g (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_6)))))) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) h (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_6)))))) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_6)) g h) (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_6))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : MulOneClass.{u1} G] [_inst_7 : ContinuousMul.{u1} G _inst_5 (MulOneClass.toMul.{u1} G _inst_6)] {g : G} {h : G}, (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) g (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_6))))) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) h (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_6))))) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G _inst_6)) g h) (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_6)))))
-Case conversion may be inaccurate. Consider using '#align mul_mem_connected_component_one mul_mem_connectedComponent_oneₓ'. -/
 @[to_additive]
 theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOneClass G]
     [ContinuousMul G] {g h : G} (hg : g ∈ connectedComponent (1 : G))
@@ -1145,12 +821,6 @@ theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOne
 #align mul_mem_connected_component_one mul_mem_connectedComponent_one
 #align add_mem_connected_component_zero add_mem_connectedComponent_zero
 
-/- warning: inv_mem_connected_component_one -> inv_mem_connectedComponent_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : Group.{u1} G] [_inst_7 : TopologicalGroup.{u1} G _inst_5 _inst_6] {g : G}, (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) g (connectedComponent.{u1} G _inst_5 (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_6))))))))) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_6)) g) (connectedComponent.{u1} G _inst_5 (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_6)))))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : Group.{u1} G] [_inst_7 : TopologicalGroup.{u1} G _inst_5 _inst_6] {g : G}, (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) g (connectedComponent.{u1} G _inst_5 (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_6)))))))) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_6)))) g) (connectedComponent.{u1} G _inst_5 (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_6))))))))
-Case conversion may be inaccurate. Consider using '#align inv_mem_connected_component_one inv_mem_connectedComponent_oneₓ'. -/
 @[to_additive]
 theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group G]
     [TopologicalGroup G] {g : G} (hg : g ∈ connectedComponent (1 : G)) :
@@ -1176,12 +846,6 @@ def Subgroup.connectedComponentOfOne (G : Type _) [TopologicalSpace G] [Group G]
 #align add_subgroup.connected_component_of_zero AddSubgroup.connectedComponentOfZero
 -/
 
-/- warning: subgroup.comm_group_topological_closure -> Subgroup.commGroupTopologicalClosure is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : T2Space.{u1} G _inst_1] (s : Subgroup.{u1} G _inst_2), (forall (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (y : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s), Eq.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (HMul.hMul.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (instHMul.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (Subgroup.mul.{u1} G _inst_2 s)) x y) (HMul.hMul.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (instHMul.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (Subgroup.mul.{u1} G _inst_2 s)) y x)) -> (CommGroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : T2Space.{u1} G _inst_1] (s : Subgroup.{u1} G _inst_2), (forall (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (y : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)), Eq.{succ u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (HMul.hMul.{u1, u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (instHMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subgroup.mul.{u1} G _inst_2 s)) x y) (HMul.hMul.{u1, u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (instHMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subgroup.mul.{u1} G _inst_2 s)) y x)) -> (CommGroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s))))
-Case conversion may be inaccurate. Consider using '#align subgroup.comm_group_topological_closure Subgroup.commGroupTopologicalClosureₓ'. -/
 /-- If a subgroup of a topological group is commutative, then so is its topological closure. -/
 @[to_additive
       "If a subgroup of an additive topological group is commutative, then so is its\ntopological closure."]
@@ -1191,12 +855,6 @@ def Subgroup.commGroupTopologicalClosure [T2Space G] (s : Subgroup G)
 #align subgroup.comm_group_topological_closure Subgroup.commGroupTopologicalClosure
 #align add_subgroup.add_comm_group_topological_closure AddSubgroup.addCommGroupTopologicalClosure
 
-/- warning: exists_nhds_split_inv -> exists_nhds_split_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Set.{u1} G}, (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) s (nhds.{u1} G _inst_1 (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_2))))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) => forall (v : G), (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) v V) -> (forall (w : G), (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) w V) -> (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_2))) v w) s)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Set.{u1} G}, (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) s (nhds.{u1} G _inst_1 (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_2)))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (forall (v : G), (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) v V) -> (forall (w : G), (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) w V) -> (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_2))) v w) s)))))
-Case conversion may be inaccurate. Consider using '#align exists_nhds_split_inv exists_nhds_split_invₓ'. -/
 @[to_additive exists_nhds_half_neg]
 theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
     ∃ V ∈ 𝓝 (1 : G), ∀ v ∈ V, ∀ w ∈ V, v / w ∈ s :=
@@ -1208,70 +866,34 @@ theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
 #align exists_nhds_split_inv exists_nhds_split_inv
 #align exists_nhds_half_neg exists_nhds_half_neg
 
-/- warning: nhds_translation_mul_inv -> nhds_translation_mul_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x)) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x)) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
-Case conversion may be inaccurate. Consider using '#align nhds_translation_mul_inv nhds_translation_mul_invₓ'. -/
 @[to_additive]
 theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝 1) = 𝓝 x :=
   ((Homeomorph.mulRight x⁻¹).comap_nhds_eq 1).trans <| show 𝓝 (1 * x⁻¹⁻¹) = 𝓝 x by simp
 #align nhds_translation_mul_inv nhds_translation_mul_inv
 #align nhds_translation_add_neg nhds_translation_add_neg
 
-/- warning: map_mul_left_nhds -> map_mul_left_nhds is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5924 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5926 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5924 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5926) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
-Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds map_mul_left_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
   (Homeomorph.mulLeft x).map_nhds_eq y
 #align map_mul_left_nhds map_mul_left_nhds
 #align map_add_left_nhds map_add_left_nhds
 
-/- warning: map_mul_left_nhds_one -> map_mul_left_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5997 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5999 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5997 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5999) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
-Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds_one map_mul_left_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_left_nhds_one map_mul_left_nhds_one
 #align map_add_left_nhds_zero map_add_left_nhds_zero
 
-/- warning: map_mul_right_nhds -> map_mul_right_nhds is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (z : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) z x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (z : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) z x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x))
-Case conversion may be inaccurate. Consider using '#align map_mul_right_nhds map_mul_right_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_right_nhds (x y : G) : map (fun z => z * x) (𝓝 y) = 𝓝 (y * x) :=
   (Homeomorph.mulRight x).map_nhds_eq y
 #align map_mul_right_nhds map_mul_right_nhds
 #align map_add_right_nhds map_add_right_nhds
 
-/- warning: map_mul_right_nhds_one -> map_mul_right_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
-Case conversion may be inaccurate. Consider using '#align map_mul_right_nhds_one map_mul_right_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_right_nhds_one (x : G) : map (fun y => y * x) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_right_nhds_one map_mul_right_nhds_one
 #align map_add_right_nhds_zero map_add_right_nhds_zero
 
-/- warning: filter.has_basis.nhds_of_one -> Filter.HasBasis.nhds_of_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} G)}, (Filter.HasBasis.{u1, u2} G ι (nhds.{u1} G _inst_1 (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_2)))))))) p s) -> (forall (x : G), Filter.HasBasis.{u1, u2} G ι (nhds.{u1} G _inst_1 x) p (fun (i : ι) => setOf.{u1} G (fun (y : G) => 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_2))) y x) (s i))))
-but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {ι : Sort.{u1}} {p : ι -> Prop} {s : ι -> (Set.{u2} G)}, (Filter.HasBasis.{u2, u1} G ι (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (InvOneClass.toOne.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2))))))) p s) -> (forall (x : G), Filter.HasBasis.{u2, u1} G ι (nhds.{u2} G _inst_1 x) p (fun (i : ι) => setOf.{u2} G (fun (y : G) => Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) (HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G (DivInvMonoid.toDiv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) y x) (s i))))
-Case conversion may be inaccurate. Consider using '#align filter.has_basis.nhds_of_one Filter.HasBasis.nhds_of_oneₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι → Set G}
     (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) : HasBasis (𝓝 x) p fun i => { y | y / x ∈ s i } :=
@@ -1282,12 +904,6 @@ theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι →
 #align filter.has_basis.nhds_of_one Filter.HasBasis.nhds_of_one
 #align filter.has_basis.nhds_of_zero Filter.HasBasis.nhds_of_zero
 
-/- warning: mem_closure_iff_nhds_one -> mem_closure_iff_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {x : G} {s : Set.{u1} G}, Iff (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) x (closure.{u1} G _inst_1 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_1 (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_2))))))))) -> (Exists.{succ u1} G (fun (y : G) => Exists.{0} (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) y s) (fun (H : Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) y 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_2))) y x) U))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {x : G} {s : Set.{u1} G}, Iff (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) x (closure.{u1} G _inst_1 s)) (forall (U : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) U (nhds.{u1} G _inst_1 (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_2)))))))) -> (Exists.{succ u1} G (fun (y : G) => And (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) y 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_2))) y x) U))))
-Case conversion may be inaccurate. Consider using '#align mem_closure_iff_nhds_one mem_closure_iff_nhds_oneₓ'. -/
 @[to_additive]
 theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
     x ∈ closure s ↔ ∀ U ∈ (𝓝 1 : Filter G), ∃ y ∈ s, y / x ∈ U :=
@@ -1297,12 +913,6 @@ theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
 #align mem_closure_iff_nhds_one mem_closure_iff_nhds_one
 #align mem_closure_iff_nhds_zero mem_closure_iff_nhds_zero
 
-/- warning: continuous_of_continuous_at_one -> continuous_of_continuousAt_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u3}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toHasMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f) (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_2)))))))) -> (Continuous.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f))
-but is expected to have type
-  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
-Case conversion may be inaccurate. Consider using '#align continuous_of_continuous_at_one continuous_of_continuousAt_oneₓ'. -/
 /-- A monoid homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) from a
 topological group to a topological monoid is continuous provided that it is continuous at one. See
 also `uniform_continuous_of_continuous_at_one`. -/
@@ -1316,12 +926,6 @@ theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [Topolog
 #align continuous_of_continuous_at_one continuous_of_continuousAt_one
 #align continuous_of_continuous_at_zero continuous_of_continuousAt_zero
 
-/- warning: topological_group.ext -> TopologicalGroup.ext is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5)))))))) (nhds.{u1} G t' (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_5))))))))) -> (Eq.{succ u1} (TopologicalSpace.{u1} G) t t')
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5))))))) (nhds.{u1} G t' (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_5)))))))) -> (Eq.{succ u1} (TopologicalSpace.{u1} G) t t')
-Case conversion may be inaccurate. Consider using '#align topological_group.ext TopologicalGroup.extₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _)
@@ -1331,12 +935,6 @@ theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
 #align topological_group.ext TopologicalGroup.ext
 #align topological_add_group.ext TopologicalAddGroup.ext
 
-/- warning: topological_group.ext_iff -> TopologicalGroup.ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Iff (Eq.{succ u1} (TopologicalSpace.{u1} G) t t') (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5)))))))) (nhds.{u1} G t' (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_5))))))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Iff (Eq.{succ u1} (TopologicalSpace.{u1} G) t t') (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5))))))) (nhds.{u1} G t' (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_5)))))))))
-Case conversion may be inaccurate. Consider using '#align topological_group.ext_iff TopologicalGroup.ext_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _) :
@@ -1345,12 +943,6 @@ theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace
 #align topological_group.ext_iff TopologicalGroup.ext_iff
 #align topological_add_group.ext_iff TopologicalAddGroup.ext_iff
 
-/- warning: has_continuous_inv.of_nhds_one -> ContinuousInv.of_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (ContinuousInv.{u1} G _inst_6 (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (ContinuousInv.{u1} G _inst_6 (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))))
-Case conversion may be inaccurate. Consider using '#align has_continuous_inv.of_nhds_one ContinuousInv.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
@@ -1365,12 +957,6 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 #align has_continuous_inv.of_nhds_one ContinuousInv.of_nhds_one
 #align has_continuous_neg.of_nhds_zero ContinuousNeg.of_nhds_zero
 
-/- warning: topological_group.of_nhds_one' -> TopologicalGroup.of_nhds_one' is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
-Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -1388,12 +974,6 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 #align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'
 #align topological_add_group.of_nhds_zero' TopologicalAddGroup.of_nhds_zero'
 
-/- warning: topological_group.of_nhds_one -> TopologicalGroup.of_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
-Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -1410,12 +990,6 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 #align topological_group.of_nhds_one TopologicalGroup.of_nhds_one
 #align topological_add_group.of_nhds_zero TopologicalAddGroup.of_nhds_zero
 
-/- warning: topological_group.of_comm_of_nhds_one -> TopologicalGroup.of_comm_of_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
-Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -1486,12 +1060,6 @@ theorem QuotientGroup.nhds_eq (x : G) : 𝓝 (x : G ⧸ N) = map coe (𝓝 x) :=
 
 variable (G) [FirstCountableTopology G]
 
-/- warning: topological_group.exists_antitone_basis_nhds_one -> TopologicalGroup.exists_antitone_basis_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Exists.{succ u1} (Nat -> (Set.{u1} G)) (fun (u : Nat -> (Set.{u1} G)) => And (Filter.HasAntitoneBasis.{u1, 0} G Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} G _inst_1 (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_2)))))))) u) (forall (n : Nat), HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (u n)))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Exists.{succ u1} (Nat -> (Set.{u1} G)) (fun (u : Nat -> (Set.{u1} G)) => And (Filter.HasAntitoneBasis.{u1, 0} G Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (nhds.{u1} G _inst_1 (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_2))))))) u) (forall (n : Nat), HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (u n)))
-Case conversion may be inaccurate. Consider using '#align topological_group.exists_antitone_basis_nhds_one TopologicalGroup.exists_antitone_basis_nhds_oneₓ'. -/
 /-- Any first countable topological group has an antitone neighborhood basis `u : ℕ → set G` for
 which `(u (n + 1)) ^ 2 ⊆ u n`. The existence of such a neighborhood basis is a key tool for
 `quotient_group.complete_space` -/
@@ -1520,12 +1088,6 @@ theorem TopologicalGroup.exists_antitone_basis_nhds_one :
 
 include n
 
-/- warning: quotient_group.nhds_one_is_countably_generated -> QuotientGroup.nhds_one_isCountablyGenerated is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (N : Subgroup.{u1} G _inst_2) (n : Subgroup.Normal.{u1} G _inst_2 N) [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Filter.IsCountablyGenerated.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (nhds.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 N) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) 1 (OfNat.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) 1 (One.one.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (MulOneClass.toHasOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (QuotientGroup.Quotient.group.{u1} G _inst_2 N n)))))))))
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (N : Subgroup.{u1} G _inst_2) (n : Subgroup.Normal.{u1} G _inst_2 N) [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Filter.IsCountablyGenerated.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (nhds.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 N) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) 1 (One.toOfNat1.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (InvOneClass.toOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (DivInvOneMonoid.toInvOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (DivisionMonoid.toDivInvOneMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (Group.toDivisionMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (QuotientGroup.Quotient.group.{u1} G _inst_2 N n))))))))
-Case conversion may be inaccurate. Consider using '#align quotient_group.nhds_one_is_countably_generated QuotientGroup.nhds_one_isCountablyGeneratedₓ'. -/
 /-- In a first countable topological group `G` with normal subgroup `N`, `1 : G ⧸ N` has a
 countable neighborhood basis. -/
 @[to_additive
@@ -1556,12 +1118,6 @@ class ContinuousDiv (G : Type _) [TopologicalSpace G] [Div G] : Prop where
 #align has_continuous_sub ContinuousSub
 -/
 
-/- warning: topological_group.to_has_continuous_div -> TopologicalGroup.to_continuousDiv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], ContinuousDiv.{u1} G _inst_1 (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], ContinuousDiv.{u1} G _inst_1 (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))
-Case conversion may be inaccurate. Consider using '#align topological_group.to_has_continuous_div TopologicalGroup.to_continuousDivₓ'. -/
 -- see Note [lower instance priority]
 @[to_additive]
 instance (priority := 100) TopologicalGroup.to_continuousDiv [TopologicalSpace G] [Group G]
@@ -1675,24 +1231,12 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 #align homeomorph.sub_left Homeomorph.subLeft
 -/
 
-/- warning: is_open_map_div_left -> isOpenMap_div_left 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
-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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551) a)
-Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
   (Homeomorph.divLeft _).IsOpenMap
 #align is_open_map_div_left isOpenMap_div_left
 #align is_open_map_sub_left isOpenMap_sub_left
 
-/- warning: is_closed_map_div_left -> isClosedMap_div_left 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
-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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593) a)
-Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
   (Homeomorph.divLeft _).IsClosedMap
@@ -1711,36 +1255,18 @@ def Homeomorph.divRight (x : G) : G ≃ₜ G :=
 #align homeomorph.sub_right Homeomorph.subRight
 -/
 
-/- warning: is_open_map_div_right -> isOpenMap_div_right 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
-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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
-Case conversion may be inaccurate. Consider using '#align is_open_map_div_right isOpenMap_div_rightₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_right (a : G) : IsOpenMap fun x => x / a :=
   (Homeomorph.divRight a).IsOpenMap
 #align is_open_map_div_right isOpenMap_div_right
 #align is_open_map_sub_right isOpenMap_sub_right
 
-/- warning: is_closed_map_div_right -> isClosedMap_div_right 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
-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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
-Case conversion may be inaccurate. Consider using '#align is_closed_map_div_right isClosedMap_div_rightₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_right (a : G) : IsClosedMap fun x => x / a :=
   (Homeomorph.divRight a).IsClosedMap
 #align is_closed_map_div_right isClosedMap_div_right
 #align is_closed_map_sub_right isClosedMap_sub_right
 
-/- warning: tendsto_div_nhds_one_iff -> tendsto_div_nhds_one_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}} {l : Filter.{u2} α} {x : G} {u : α -> G}, Iff (Filter.Tendsto.{u2, u1} α G (fun (n : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (u n) x) l (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.Tendsto.{u2, u1} α G u l (nhds.{u1} G _inst_2 x))
-but is expected to have type
-  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] [_inst_2 : TopologicalSpace.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_2 _inst_1] {α : Type.{u1}} {l : Filter.{u1} α} {x : G} {u : α -> G}, Iff (Filter.Tendsto.{u1, u2} α G (fun (n : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G (DivInvMonoid.toDiv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (u n) x) l (nhds.{u2} G _inst_2 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (InvOneClass.toOne.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_1)))))))) (Filter.Tendsto.{u1, u2} α G u l (nhds.{u2} G _inst_2 x))
-Case conversion may be inaccurate. Consider using '#align tendsto_div_nhds_one_iff tendsto_div_nhds_one_iffₓ'. -/
 @[to_additive]
 theorem tendsto_div_nhds_one_iff {α : Type _} {l : Filter α} {x : G} {u : α → G} :
     Tendsto (fun n => u n / x) l (𝓝 1) ↔ Tendsto u l (𝓝 x) :=
@@ -1749,12 +1275,6 @@ theorem tendsto_div_nhds_one_iff {α : Type _} {l : Filter α} {x : G} {u : α 
 #align tendsto_div_nhds_one_iff tendsto_div_nhds_one_iff
 #align tendsto_sub_nhds_zero_iff tendsto_sub_nhds_zero_iff
 
-/- warning: nhds_translation_div -> nhds_translation_div 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] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (_x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _x x) (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))))))))) (nhds.{u1} G _inst_2 x)
-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] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (_x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _x x) (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)))))))) (nhds.{u1} G _inst_2 x)
-Case conversion may be inaccurate. Consider using '#align nhds_translation_div nhds_translation_divₓ'. -/
 @[to_additive]
 theorem nhds_translation_div (x : G) : comap (· / x) (𝓝 1) = 𝓝 x := by
   simpa only [div_eq_mul_inv] using nhds_translation_mul_inv x
@@ -1819,60 +1339,30 @@ section ContinuousConstSMul
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul α α] {s t : Set α}
 
-/- warning: is_open.mul_left -> IsOpen.mul_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.mul_left IsOpen.mul_leftₓ'. -/
 @[to_additive]
 theorem IsOpen.mul_left : IsOpen t → IsOpen (s * t) :=
   IsOpen.smul_left
 #align is_open.mul_left IsOpen.mul_left
 #align is_open.add_left IsOpen.add_left
 
-/- warning: subset_interior_mul_right -> subset_interior_mul_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align subset_interior_mul_right subset_interior_mul_rightₓ'. -/
 @[to_additive]
 theorem subset_interior_mul_right : s * interior t ⊆ interior (s * t) :=
   subset_interior_smul_right
 #align subset_interior_mul_right subset_interior_mul_right
 #align subset_interior_add_right subset_interior_add_right
 
-/- warning: subset_interior_mul -> subset_interior_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align subset_interior_mul subset_interior_mulₓ'. -/
 @[to_additive]
 theorem subset_interior_mul : interior s * interior t ⊆ interior (s * t) :=
   subset_interior_smul
 #align subset_interior_mul subset_interior_mul
 #align subset_interior_add subset_interior_add
 
-/- warning: singleton_mul_mem_nhds -> singleton_mul_mem_nhds is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a) s) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) a b)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a) s) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) a b)))
-Case conversion may be inaccurate. Consider using '#align singleton_mul_mem_nhds singleton_mul_mem_nhdsₓ'. -/
 @[to_additive]
 theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s ∈ 𝓝 (a * b) := by
   have := smul_mem_nhds a h; rwa [← singleton_smul] at this
 #align singleton_mul_mem_nhds singleton_mul_mem_nhds
 #align singleton_add_mem_nhds singleton_add_mem_nhds
 
-/- warning: singleton_mul_mem_nhds_of_nhds_one -> singleton_mul_mem_nhds_of_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{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))))))))) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a) s) (nhds.{u1} α _inst_1 a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} (a : α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a) s) (nhds.{u1} α _inst_1 a))
-Case conversion may be inaccurate. Consider using '#align singleton_mul_mem_nhds_of_nhds_one singleton_mul_mem_nhds_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem singleton_mul_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) : {a} * s ∈ 𝓝 a := by
   simpa only [mul_one] using singleton_mul_mem_nhds a h
@@ -1885,48 +1375,24 @@ section HasContinuousConstSmulOp
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul αᵐᵒᵖ α] {s t : Set α}
 
-/- warning: is_open.mul_right -> IsOpen.mul_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.mul_right IsOpen.mul_rightₓ'. -/
 @[to_additive]
 theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) := by rw [← bUnion_op_smul_set];
   exact isOpen_biUnion fun a _ => hs.smul _
 #align is_open.mul_right IsOpen.mul_right
 #align is_open.add_right IsOpen.add_right
 
-/- warning: subset_interior_mul_left -> subset_interior_mul_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align subset_interior_mul_left subset_interior_mul_leftₓ'. -/
 @[to_additive]
 theorem subset_interior_mul_left : interior s * t ⊆ interior (s * t) :=
   interior_maximal (Set.mul_subset_mul_right interior_subset) isOpen_interior.mulRight
 #align subset_interior_mul_left subset_interior_mul_left
 #align subset_interior_add_left subset_interior_add_left
 
-/- warning: subset_interior_mul' -> subset_interior_mul' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align subset_interior_mul' subset_interior_mul'ₓ'. -/
 @[to_additive]
 theorem subset_interior_mul' : interior s * interior t ⊆ interior (s * t) :=
   (Set.mul_subset_mul_left interior_subset).trans subset_interior_mul_left
 #align subset_interior_mul' subset_interior_mul'
 #align subset_interior_add' subset_interior_add'
 
-/- warning: mul_singleton_mem_nhds -> mul_singleton_mem_nhds is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a)) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) b a)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a)) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) b a)))
-Case conversion may be inaccurate. Consider using '#align mul_singleton_mem_nhds mul_singleton_mem_nhdsₓ'. -/
 @[to_additive]
 theorem mul_singleton_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : s * {a} ∈ 𝓝 (b * a) :=
   by
@@ -1935,12 +1401,6 @@ theorem mul_singleton_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : s * {a} 
 #align mul_singleton_mem_nhds mul_singleton_mem_nhds
 #align add_singleton_mem_nhds add_singleton_mem_nhds
 
-/- warning: mul_singleton_mem_nhds_of_nhds_one -> mul_singleton_mem_nhds_of_nhds_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{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))))))))) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a)) (nhds.{u1} α _inst_1 a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a)) (nhds.{u1} α _inst_1 a))
-Case conversion may be inaccurate. Consider using '#align mul_singleton_mem_nhds_of_nhds_one mul_singleton_mem_nhds_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem mul_singleton_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) : s * {a} ∈ 𝓝 a := by
   simpa only [one_mul] using mul_singleton_mem_nhds a h
@@ -1953,72 +1413,36 @@ section TopologicalGroup
 
 variable [TopologicalSpace α] [Group α] [TopologicalGroup α] {s t : Set α}
 
-/- warning: is_open.div_left -> IsOpen.div_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.div_left IsOpen.div_leftₓ'. -/
 @[to_additive]
 theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) := by rw [← Union_div_left_image];
   exact isOpen_biUnion fun a ha => isOpenMap_div_left a t ht
 #align is_open.div_left IsOpen.div_left
 #align is_open.sub_left IsOpen.sub_left
 
-/- warning: is_open.div_right -> IsOpen.div_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.div_right IsOpen.div_rightₓ'. -/
 @[to_additive]
 theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) := by rw [← Union_div_right_image];
   exact isOpen_biUnion fun a ha => isOpenMap_div_right a s hs
 #align is_open.div_right IsOpen.div_right
 #align is_open.sub_right IsOpen.sub_right
 
-/- warning: subset_interior_div_left -> subset_interior_div_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-Case conversion may be inaccurate. Consider using '#align subset_interior_div_left subset_interior_div_leftₓ'. -/
 @[to_additive]
 theorem subset_interior_div_left : interior s / t ⊆ interior (s / t) :=
   interior_maximal (div_subset_div_right interior_subset) isOpen_interior.divRight
 #align subset_interior_div_left subset_interior_div_left
 #align subset_interior_sub_left subset_interior_sub_left
 
-/- warning: subset_interior_div_right -> subset_interior_div_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-Case conversion may be inaccurate. Consider using '#align subset_interior_div_right subset_interior_div_rightₓ'. -/
 @[to_additive]
 theorem subset_interior_div_right : s / interior t ⊆ interior (s / t) :=
   interior_maximal (div_subset_div_left interior_subset) isOpen_interior.divLeft
 #align subset_interior_div_right subset_interior_div_right
 #align subset_interior_sub_right subset_interior_sub_right
 
-/- warning: subset_interior_div -> subset_interior_div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-Case conversion may be inaccurate. Consider using '#align subset_interior_div subset_interior_divₓ'. -/
 @[to_additive]
 theorem subset_interior_div : interior s / interior t ⊆ interior (s / t) :=
   (div_subset_div_left interior_subset).trans subset_interior_div_left
 #align subset_interior_div subset_interior_div
 #align subset_interior_sub subset_interior_sub
 
-/- warning: is_open.mul_closure -> IsOpen.mul_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (closure.{u1} α _inst_1 t)) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (closure.{u1} α _inst_1 t)) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.mul_closure IsOpen.mul_closureₓ'. -/
 @[to_additive]
 theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t :=
   by
@@ -2030,12 +1454,6 @@ theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t
 #align is_open.mul_closure IsOpen.mul_closure
 #align is_open.add_closure IsOpen.add_closure
 
-/- warning: is_open.closure_mul -> IsOpen.closure_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (closure.{u1} α _inst_1 s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (closure.{u1} α _inst_1 s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.closure_mul IsOpen.closure_mulₓ'. -/
 @[to_additive]
 theorem IsOpen.closure_mul (ht : IsOpen t) (s : Set α) : closure s * t = s * t := by
   rw [← inv_inv (closure s * t), mul_inv_rev, inv_closure, ht.inv.mul_closure, mul_inv_rev, inv_inv,
@@ -2043,24 +1461,12 @@ theorem IsOpen.closure_mul (ht : IsOpen t) (s : Set α) : closure s * t = s * t
 #align is_open.closure_mul IsOpen.closure_mul
 #align is_open.closure_add IsOpen.closure_add
 
-/- warning: is_open.div_closure -> IsOpen.div_closure is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (closure.{u1} α _inst_1 t)) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (closure.{u1} α _inst_1 t)) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.div_closure IsOpen.div_closureₓ'. -/
 @[to_additive]
 theorem IsOpen.div_closure (hs : IsOpen s) (t : Set α) : s / closure t = s / t := by
   simp_rw [div_eq_mul_inv, inv_closure, hs.mul_closure]
 #align is_open.div_closure IsOpen.div_closure
 #align is_open.sub_closure IsOpen.sub_closure
 
-/- warning: is_open.closure_div -> IsOpen.closure_div is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (closure.{u1} α _inst_1 s) t) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (closure.{u1} α _inst_1 s) t) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
-Case conversion may be inaccurate. Consider using '#align is_open.closure_div IsOpen.closure_divₓ'. -/
 @[to_additive]
 theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t := by
   simp_rw [div_eq_mul_inv, ht.inv.closure_mul]
@@ -2090,12 +1496,6 @@ section
 
 variable (G) [TopologicalSpace G] [Group G] [ContinuousMul G]
 
-/- warning: topological_group.t1_space -> TopologicalGroup.t1Space is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsClosed.{u1} G _inst_1 (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 _inst_2))))))))) -> (T1Space.{u1} G _inst_1)
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsClosed.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2)))))))) -> (T1Space.{u1} G _inst_1)
-Case conversion may be inaccurate. Consider using '#align topological_group.t1_space TopologicalGroup.t1Spaceₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
   ⟨fun x => by convert isClosedMap_mul_right x _ h; simp⟩
@@ -2146,12 +1546,6 @@ theorem TopologicalGroup.t2Space [T0Space G] : T2Space G := by haveI := Topologi
 
 variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
-/- warning: subgroup.t3_quotient_of_is_closed -> Subgroup.t3_quotient_of_isClosed is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [hS : IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [hS : IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
-Case conversion may be inaccurate. Consider using '#align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosedₓ'. -/
 @[to_additive]
 instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
     [hS : IsClosed (S : Set G)] : T3Space (G ⧸ S) :=
@@ -2162,9 +1556,6 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
 
-/- warning: subgroup.properly_discontinuous_smul_of_tendsto_cofinite -> Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
 `discrete_topology`.) -/
@@ -2185,9 +1576,6 @@ theorem Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite (S : Subgroup G)
 
 attribute [local semireducible] MulOpposite
 
-/- warning: subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite -> Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
 `discrete_topology`.)
@@ -2220,12 +1608,6 @@ section
 
 variable [TopologicalSpace G] [MulOneClass G] [ContinuousMul G]
 
-/- warning: compact_open_separated_mul_right -> compact_open_separated_mul_right is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_2))) K V) U)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_2))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G _inst_2))) K V) U)))
-Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_right compact_open_separated_mul_rightₓ'. -/
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `K * V ⊆ U`. -/
 @[to_additive
@@ -2254,12 +1636,6 @@ theorem compact_open_separated_mul_right {K U : Set G} (hK : IsCompact K) (hU :
 
 open MulOpposite
 
-/- warning: compact_open_separated_mul_left -> compact_open_separated_mul_left is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_2))) V K) U)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_2))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G _inst_2))) V K) U)))
-Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_left compact_open_separated_mul_leftₓ'. -/
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `V * K ⊆ U`. -/
 @[to_additive
@@ -2282,12 +1658,6 @@ section
 
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
-/- warning: compact_covered_by_mul_left_translates -> compact_covered_by_mul_left_translates is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K (Set.iUnion.{u1, succ u1} G G (fun (g : G) => Set.iUnion.{u1, 0} G (Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) (fun (H : Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K (Set.iUnion.{u1, succ u1} G G (fun (g : G) => Set.iUnion.{u1, 0} G (Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) (fun (H : Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
-Case conversion may be inaccurate. Consider using '#align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translatesₓ'. -/
 /-- A compact set is covered by finitely many left multiplicative translates of a set
   with non-empty interior. -/
 @[to_additive
@@ -2330,12 +1700,6 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
 #align separable_locally_compact_add_group.sigma_compact_space SeparableLocallyCompactAddGroup.sigmaCompactSpace
 -/
 
-/- warning: exists_disjoint_smul_of_is_compact -> exists_disjoint_smul_of_isCompact is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : NoncompactSpace.{u1} G _inst_1] {K : Set.{u1} G} {L : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsCompact.{u1} G _inst_1 L) -> (Exists.{succ u1} G (fun (g : G) => Disjoint.{u1} (Set.{u1} G) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.completeBooleanAlgebra.{u1} G)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} G) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} G) (Set.booleanAlgebra.{u1} G))) K (SMul.smul.{u1, u1} G (Set.{u1} G) (Set.smulSet.{u1, u1} G G (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) g L)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : NoncompactSpace.{u1} G _inst_1] {K : Set.{u1} G} {L : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsCompact.{u1} G _inst_1 L) -> (Exists.{succ u1} G (fun (g : G) => Disjoint.{u1} (Set.{u1} G) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.instCompleteBooleanAlgebraSet.{u1} G)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} G) (Preorder.toLE.{u1} (Set.{u1} G) (PartialOrder.toPreorder.{u1} (Set.{u1} G) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.instCompleteBooleanAlgebraSet.{u1} G)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.instCompleteBooleanAlgebraSet.{u1} G)))))) K (HSMul.hSMul.{u1, u1, u1} G (Set.{u1} G) (Set.{u1} G) (instHSMul.{u1, u1} G (Set.{u1} G) (Set.smulSet.{u1, u1} G G (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) g L)))
-Case conversion may be inaccurate. Consider using '#align exists_disjoint_smul_of_is_compact exists_disjoint_smul_of_isCompactₓ'. -/
 /-- Given two compact sets in a noncompact topological group, there is a translate of the second
 one that is disjoint from the first one. -/
 @[to_additive
@@ -2353,12 +1717,6 @@ theorem exists_disjoint_smul_of_isCompact [NoncompactSpace G] {K L : Set G} (hK
 #align exists_disjoint_smul_of_is_compact exists_disjoint_smul_of_isCompact
 #align exists_disjoint_vadd_of_is_compact exists_disjoint_vadd_of_isCompact
 
-/- warning: local_is_compact_is_closed_nhds_of_group -> local_isCompact_isClosed_nhds_of_group is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : LocallyCompactSpace.{u1} G _inst_1] {U : Set.{u1} G}, (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) U (nhds.{u1} G _inst_1 (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_2))))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (K : Set.{u1} G) => And (IsCompact.{u1} G _inst_1 K) (And (IsClosed.{u1} G _inst_1 K) (And (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{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 _inst_2))))))) (interior.{u1} G _inst_1 K))))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : LocallyCompactSpace.{u1} G _inst_1] {U : Set.{u1} G}, (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) U (nhds.{u1} G _inst_1 (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_2)))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (K : Set.{u1} G) => And (IsCompact.{u1} G _inst_1 K) (And (IsClosed.{u1} G _inst_1 K) (And (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (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_2)))))) (interior.{u1} G _inst_1 K))))))
-Case conversion may be inaccurate. Consider using '#align local_is_compact_is_closed_nhds_of_group local_isCompact_isClosed_nhds_of_groupₓ'. -/
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
 neighborhood of the identity, even without separation assumptions on the space. -/
 @[to_additive
@@ -2397,12 +1755,6 @@ section
 
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
-/- warning: nhds_mul -> nhds_mul is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y)) (HMul.hMul.{u1, u1, u1} (Filter.{u1} G) (Filter.{u1} G) (Filter.{u1} G) (instHMul.{u1} (Filter.{u1} G) (Filter.instMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (nhds.{u1} G _inst_1 x) (nhds.{u1} G _inst_1 y))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y)) (HMul.hMul.{u1, u1, u1} (Filter.{u1} G) (Filter.{u1} G) (Filter.{u1} G) (instHMul.{u1} (Filter.{u1} G) (Filter.instMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (nhds.{u1} G _inst_1 x) (nhds.{u1} G _inst_1 y))
-Case conversion may be inaccurate. Consider using '#align nhds_mul nhds_mulₓ'. -/
 @[to_additive]
 theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
   calc
@@ -2416,12 +1768,6 @@ theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
 #align nhds_mul nhds_mul
 #align nhds_add nhds_add
 
-/- warning: nhds_mul_hom -> nhdsMulHom is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], MulHom.{u1, u1} G (Filter.{u1} G) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Filter.instMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], MulHom.{u1, u1} G (Filter.{u1} G) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Filter.instMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align nhds_mul_hom nhdsMulHomₓ'. -/
 /-- On a topological group, `𝓝 : G → filter G` can be promoted to a `mul_hom`. -/
 @[to_additive
       "On an additive topological group, `𝓝 : G → filter G` can be promoted to an\n`add_hom`.",
@@ -2446,12 +1792,6 @@ section Quotient
 
 variable [Group G] [TopologicalSpace G] [ContinuousMul G] {Γ : Subgroup G}
 
-/- warning: quotient_group.has_continuous_const_smul -> QuotientGroup.continuousConstSMul is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1}, ContinuousConstSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (MulAction.toHasSmul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{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 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1}, ContinuousConstSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))
-Case conversion may be inaccurate. Consider using '#align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMulₓ'. -/
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
     where continuous_const_smul g := by
@@ -2459,12 +1799,6 @@ instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
 #align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMul
 #align quotient_add_group.has_continuous_const_vadd QuotientAddGroup.continuousConstVAdd
 
-/- warning: quotient_group.continuous_smul₁ -> QuotientGroup.continuous_smul₁ is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ), Continuous.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) _inst_2 (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (fun (g : G) => SMul.smul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (MulAction.toHasSmul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ))) g x)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ), Continuous.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) _inst_2 (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (fun (g : G) => HSMul.hSMul.{u1, u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (instHSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))) g x)
-Case conversion may be inaccurate. Consider using '#align quotient_group.continuous_smul₁ QuotientGroup.continuous_smul₁ₓ'. -/
 @[to_additive]
 theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G => g • x :=
   by
@@ -2473,12 +1807,6 @@ theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G =
 #align quotient_group.continuous_smul₁ QuotientGroup.continuous_smul₁
 #align quotient_add_group.continuous_smul₁ QuotientAddGroup.continuous_smul₁
 
-/- warning: quotient_group.second_countable_topology -> QuotientGroup.secondCountableTopology is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} [_inst_4 : TopologicalSpace.SecondCountableTopology.{u1} G _inst_2], TopologicalSpace.SecondCountableTopology.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (Quotient.topologicalSpace.{u1} G (MulAction.orbitRel.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ)) G (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ)) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ))) _inst_2)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} [_inst_4 : TopologicalSpace.SecondCountableTopology.{u1} G _inst_2], TopologicalSpace.SecondCountableTopology.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ)
-Case conversion may be inaccurate. Consider using '#align quotient_group.second_countable_topology QuotientGroup.secondCountableTopologyₓ'. -/
 /-- The quotient of a second countable topological group by a subgroup is second countable. -/
 @[to_additive
       "The quotient of a second countable additive topological group by a subgroup is second\ncountable."]
@@ -2490,12 +1818,6 @@ instance QuotientGroup.secondCountableTopology [SecondCountableTopology G] :
 
 end Quotient
 
-/- warning: to_units_homeomorph -> toUnits_homeomorph is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_2 (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))], Homeomorph.{u1, u1} G (Units.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _inst_2 (Units.topologicalSpace.{u1} G _inst_2 (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 : ContinuousInv.{u1} G _inst_2 (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1))))], Homeomorph.{u1, u1} G (Units.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _inst_2 (Units.instTopologicalSpaceUnits.{u1} G _inst_2 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))
-Case conversion may be inaccurate. Consider using '#align to_units_homeomorph toUnits_homeomorphₓ'. -/
 /-- If `G` is a group with topological `⁻¹`, then it is homeomorphic to its units. -/
 @[to_additive
       " If `G` is an additive group with topological negation, then it is homeomorphic to\nits additive units."]
@@ -2517,12 +1839,6 @@ variable [Monoid α] [TopologicalSpace α] [Monoid β] [TopologicalSpace β]
 instance [ContinuousMul α] : TopologicalGroup αˣ
     where continuous_inv := Units.continuous_iff.2 <| ⟨continuous_coe_inv, continuous_val⟩
 
-/- warning: units.homeomorph.prod_units -> Units.Homeomorph.prodUnits is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : Monoid.{u2} β] [_inst_4 : TopologicalSpace.{u2} β], Homeomorph.{max u1 u2, max u1 u2} (Units.{max u1 u2} (Prod.{u1, u2} α β) (Prod.monoid.{u1, u2} α β _inst_1 _inst_3)) (Prod.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3)) (Units.topologicalSpace.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_2 _inst_4) (Prod.monoid.{u1, u2} α β _inst_1 _inst_3)) (Prod.topologicalSpace.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3) (Units.topologicalSpace.{u1} α _inst_2 _inst_1) (Units.topologicalSpace.{u2} β _inst_4 _inst_3))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : Monoid.{u2} β] [_inst_4 : TopologicalSpace.{u2} β], Homeomorph.{max u2 u1, max u2 u1} (Units.{max u2 u1} (Prod.{u1, u2} α β) (Prod.instMonoidProd.{u1, u2} α β _inst_1 _inst_3)) (Prod.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3)) (Units.instTopologicalSpaceUnits.{max u1 u2} (Prod.{u1, u2} α β) (instTopologicalSpaceProd.{u1, u2} α β _inst_2 _inst_4) (Prod.instMonoidProd.{u1, u2} α β _inst_1 _inst_3)) (instTopologicalSpaceProd.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3) (Units.instTopologicalSpaceUnits.{u1} α _inst_2 _inst_1) (Units.instTopologicalSpaceUnits.{u2} β _inst_4 _inst_3))
-Case conversion may be inaccurate. Consider using '#align units.homeomorph.prod_units Units.Homeomorph.prodUnitsₓ'. -/
 /-- The topological group isomorphism between the units of a product of two monoids, and the product
 of the units of each monoid. -/
 @[to_additive
@@ -2546,12 +1862,6 @@ section LatticeOps
 
 variable {ι : Sort _} [Group G]
 
-/- warning: topological_group_Inf -> topologicalGroup_sInf is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
-Case conversion may be inaccurate. Consider using '#align topological_group_Inf topologicalGroup_sInfₓ'. -/
 @[to_additive]
 theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
     (h : ∀ t ∈ ts, @TopologicalGroup G t _) : @TopologicalGroup G (sInf ts) _ :=
@@ -2562,12 +1872,6 @@ theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
 #align topological_group_Inf topologicalGroup_sInf
 #align topological_add_group_Inf topologicalAddGroup_sInf
 
-/- warning: topological_group_infi -> topologicalGroup_iInf is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : Group.{u1} G] {ts' : ι -> (TopologicalSpace.{u1} G)}, (forall (i : ι), TopologicalGroup.{u1} G (ts' i) _inst_1) -> (TopologicalGroup.{u1} G (iInf.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι (fun (i : ι) => ts' i)) _inst_1)
-but is expected to have type
-  forall {G : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : Group.{u2} G] {ts' : ι -> (TopologicalSpace.{u2} G)}, (forall (i : ι), TopologicalGroup.{u2} G (ts' i) _inst_1) -> (TopologicalGroup.{u2} G (iInf.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι (fun (i : ι) => ts' i)) _inst_1)
-Case conversion may be inaccurate. Consider using '#align topological_group_infi topologicalGroup_iInfₓ'. -/
 @[to_additive]
 theorem topologicalGroup_iInf {ts' : ι → TopologicalSpace G}
     (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ := by
@@ -2575,12 +1879,6 @@ theorem topologicalGroup_iInf {ts' : ι → TopologicalSpace G}
 #align topological_group_infi topologicalGroup_iInf
 #align topological_add_group_infi topologicalAddGroup_iInf
 
-/- warning: topological_group_inf -> topologicalGroup_inf is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
-Case conversion may be inaccurate. Consider using '#align topological_group_inf topologicalGroup_infₓ'. -/
 @[to_additive]
 theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @TopologicalGroup G t₁ _)
     (h₂ : @TopologicalGroup G t₂ _) : @TopologicalGroup G (t₁ ⊓ t₂) _ := by rw [inf_eq_iInf];
@@ -2627,12 +1925,6 @@ namespace GroupTopology
 
 variable [Group α]
 
-/- warning: group_topology.continuous_mul' -> GroupTopology.continuous_mul' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.topologicalSpace.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g)) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (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_1))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} (Prod.{u1, u1} α α) α (instTopologicalSpaceProd.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g)) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (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_1))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
-Case conversion may be inaccurate. Consider using '#align group_topology.continuous_mul' GroupTopology.continuous_mul'ₓ'. -/
 /-- A version of the global `continuous_mul` suitable for dot notation. -/
 @[to_additive "A version of the global `continuous_add` suitable for dot notation."]
 theorem continuous_mul' (g : GroupTopology α) :
@@ -2645,12 +1937,6 @@ theorem continuous_mul' (g : GroupTopology α) :
 #align group_topology.continuous_mul' GroupTopology.continuous_mul'
 #align add_group_topology.continuous_add' AddGroupTopology.continuous_add'
 
-/- warning: group_topology.continuous_inv' -> GroupTopology.continuous_inv' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align group_topology.continuous_inv' GroupTopology.continuous_inv'ₓ'. -/
 /-- A version of the global `continuous_inv` suitable for dot notation. -/
 @[to_additive "A version of the global `continuous_neg` suitable for dot notation."]
 theorem continuous_inv' (g : GroupTopology α) :
@@ -2687,12 +1973,6 @@ in `t` (`t` is finer than `s`). -/
 instance : PartialOrder (GroupTopology α) :=
   PartialOrder.lift toTopologicalSpace toTopologicalSpace_injective
 
-/- warning: group_topology.to_topological_space_le -> GroupTopology.toTopologicalSpace_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {x : GroupTopology.{u1} α _inst_1} {y : GroupTopology.{u1} α _inst_1}, Iff (LE.le.{u1} (TopologicalSpace.{u1} α) (Preorder.toHasLe.{u1} (TopologicalSpace.{u1} α) (PartialOrder.toPreorder.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.partialOrder.{u1} α))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y)) (LE.le.{u1} (GroupTopology.{u1} α _inst_1) (Preorder.toHasLe.{u1} (GroupTopology.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.partialOrder.{u1} α _inst_1))) x y)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {x : GroupTopology.{u1} α _inst_1} {y : GroupTopology.{u1} α _inst_1}, Iff (LE.le.{u1} (TopologicalSpace.{u1} α) (Preorder.toLE.{u1} (TopologicalSpace.{u1} α) (PartialOrder.toPreorder.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instPartialOrderTopologicalSpace.{u1} α))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y)) (LE.le.{u1} (GroupTopology.{u1} α _inst_1) (Preorder.toLE.{u1} (GroupTopology.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instPartialOrderGroupTopology.{u1} α _inst_1))) x y)
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_le GroupTopology.toTopologicalSpace_leₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_le {x y : GroupTopology α} :
     x.toTopologicalSpace ≤ y.toTopologicalSpace ↔ x ≤ y :=
@@ -2706,12 +1986,6 @@ instance : Top (GroupTopology α) :=
       continuous_mul := continuous_top
       continuous_inv := continuous_top }⟩
 
-/- warning: group_topology.to_topological_space_top -> GroupTopology.toTopologicalSpace_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Top.top.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasTop.{u1} α _inst_1))) (Top.top.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Top.top.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instTopGroupTopology.{u1} α _inst_1))) (Top.top.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toTop.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_top GroupTopology.toTopologicalSpace_topₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_top : (⊤ : GroupTopology α).toTopologicalSpace = ⊤ :=
   rfl
@@ -2725,12 +1999,6 @@ instance : Bot (GroupTopology α) :=
         continuity
       continuous_inv := continuous_bot }⟩
 
-/- warning: group_topology.to_topological_space_bot -> GroupTopology.toTopologicalSpace_bot is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Bot.bot.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasBot.{u1} α _inst_1))) (Bot.bot.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toHasBot.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α)))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Bot.bot.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instBotGroupTopology.{u1} α _inst_1))) (Bot.bot.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toBot.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_bot GroupTopology.toTopologicalSpace_botₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_bot : (⊥ : GroupTopology α).toTopologicalSpace = ⊥ :=
   rfl
@@ -2747,12 +2015,6 @@ instance : BoundedOrder (GroupTopology α) where
 @[to_additive]
 instance : Inf (GroupTopology α) where inf x y := ⟨x.1 ⊓ y.1, topologicalGroup_inf x.2 y.2⟩
 
-/- warning: group_topology.to_topological_space_inf -> GroupTopology.toTopologicalSpace_inf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Inf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} (TopologicalSpace.{u1} α) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} α) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Inf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instInfGroupTopology.{u1} α _inst_1) x y)) (Inf.inf.{u1} (TopologicalSpace.{u1} α) (Lattice.toInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_inf GroupTopology.toTopologicalSpace_infₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_inf (x y : GroupTopology α) :
     (x ⊓ y).toTopologicalSpace = x.toTopologicalSpace ⊓ y.toTopologicalSpace :=
@@ -2777,12 +2039,6 @@ instance : InfSet (GroupTopology α)
     where sInf S :=
     ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| ball_image_iff.2 fun t ht => t.2⟩
 
-/- warning: group_topology.to_topological_space_Inf -> GroupTopology.toTopologicalSpace_sInf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.sInf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) s)) (InfSet.sInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.sInf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u1} α _inst_1) s)) (InfSet.sInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_sInfₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_sInf (s : Set (GroupTopology α)) :
     (sInf s).toTopologicalSpace = sInf (toTopologicalSpace '' s) :=
@@ -2790,12 +2046,6 @@ theorem toTopologicalSpace_sInf (s : Set (GroupTopology α)) :
 #align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_sInf
 #align add_group_topology.to_topological_space_Inf AddGroupTopology.toTopologicalSpace_sInf
 
-/- warning: group_topology.to_topological_space_infi -> GroupTopology.toTopologicalSpace_iInf is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {ι : Sort.{u2}} (s : ι -> (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (iInf.{u1, u2} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) ι (fun (i : ι) => s i))) (iInf.{u1, u2} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u1} α _inst_1 (s i)))
-but is expected to have type
-  forall {α : Type.{u2}} [_inst_1 : Group.{u2} α] {ι : Sort.{u1}} (s : ι -> (GroupTopology.{u2} α _inst_1)), Eq.{succ u2} (TopologicalSpace.{u2} α) (GroupTopology.toTopologicalSpace.{u2} α _inst_1 (iInf.{u2, u1} (GroupTopology.{u2} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u2} α _inst_1) ι (fun (i : ι) => s i))) (iInf.{u2, u1} (TopologicalSpace.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u2} α _inst_1 (s i)))
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_iInfₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_iInf {ι} (s : ι → GroupTopology α) :
     (⨅ i, s i).toTopologicalSpace = ⨅ i, (s i).toTopologicalSpace :=
@@ -2843,12 +2093,6 @@ def coinduced {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α →
 #align add_group_topology.coinduced AddGroupTopology.coinduced
 -/
 
-/- warning: group_topology.coinduced_continuous -> GroupTopology.coinduced_continuous is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [t : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} β] (f : α -> β), Continuous.{u1, u2} α β t (GroupTopology.toTopologicalSpace.{u2} β _inst_2 (GroupTopology.coinduced.{u1, u2} α β t _inst_2 f)) f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [t : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} β] (f : α -> β), Continuous.{u2, u1} α β t (GroupTopology.toTopologicalSpace.{u1} β _inst_2 (GroupTopology.coinduced.{u2, u1} α β t _inst_2 f)) f
-Case conversion may be inaccurate. Consider using '#align group_topology.coinduced_continuous GroupTopology.coinduced_continuousₓ'. -/
 @[to_additive]
 theorem coinduced_continuous {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) :
     cont t (coinduced f).toTopologicalSpace f :=
Diff
@@ -93,10 +93,8 @@ but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a))
 Case conversion may be inaccurate. Consider using '#align homeomorph.mul_left_symm Homeomorph.mulLeft_symmₓ'. -/
 @[to_additive]
-theorem Homeomorph.mulLeft_symm (a : G) : (Homeomorph.mulLeft a).symm = Homeomorph.mulLeft a⁻¹ :=
-  by
-  ext
-  rfl
+theorem Homeomorph.mulLeft_symm (a : G) : (Homeomorph.mulLeft a).symm = Homeomorph.mulLeft a⁻¹ := by
+  ext; rfl
 #align homeomorph.mul_left_symm Homeomorph.mulLeft_symm
 #align homeomorph.add_left_symm Homeomorph.addLeft_symm
 
@@ -183,9 +181,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align homeomorph.mul_right_symm Homeomorph.mulRight_symmₓ'. -/
 @[to_additive]
 theorem Homeomorph.mulRight_symm (a : G) : (Homeomorph.mulRight a).symm = Homeomorph.mulRight a⁻¹ :=
-  by
-  ext
-  rfl
+  by ext; rfl
 #align homeomorph.mul_right_symm Homeomorph.mulRight_symm
 #align homeomorph.add_right_symm Homeomorph.addRight_symm
 
@@ -248,9 +244,7 @@ theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : Disc
   by
   rw [← singletons_open_iff_discrete]
   intro g
-  suffices {g} = (fun x : G => g⁻¹ * x) ⁻¹' {1}
-    by
-    rw [this]
+  suffices {g} = (fun x : G => g⁻¹ * x) ⁻¹' {1} by rw [this];
     exact (continuous_mul_left g⁻¹).isOpen_preimage _ h
   simp only [mul_one, Set.preimage_mul_left_singleton, eq_self_iff_true, inv_inv,
     Set.singleton_eq_singleton_iff]
@@ -459,9 +453,7 @@ but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsCompact.{u1} G _inst_1 s) -> (IsCompact.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
 Case conversion may be inaccurate. Consider using '#align is_compact.inv IsCompact.invₓ'. -/
 @[to_additive]
-theorem IsCompact.inv (hs : IsCompact s) : IsCompact s⁻¹ :=
-  by
-  rw [← image_inv]
+theorem IsCompact.inv (hs : IsCompact s) : IsCompact s⁻¹ := by rw [← image_inv];
   exact hs.image continuous_inv
 #align is_compact.inv IsCompact.inv
 #align is_compact.neg IsCompact.neg
@@ -576,8 +568,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align has_continuous_inv_infi continuousInv_iInfₓ'. -/
 @[to_additive]
 theorem continuousInv_iInf {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @ContinuousInv G (ts' i) _) :
-    @ContinuousInv G (⨅ i, ts' i) _ := by
-  rw [← sInf_range]
+    @ContinuousInv G (⨅ i, ts' i) _ := by rw [← sInf_range];
   exact continuousInv_sInf (set.forall_range_iff.mpr h')
 #align has_continuous_inv_infi continuousInv_iInf
 #align has_continuous_neg_infi continuousNeg_iInf
@@ -590,11 +581,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align has_continuous_inv_inf continuousInv_infₓ'. -/
 @[to_additive]
 theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousInv G t₁ _)
-    (h₂ : @ContinuousInv G t₂ _) : @ContinuousInv G (t₁ ⊓ t₂) _ :=
-  by
-  rw [inf_eq_iInf]
-  refine' continuousInv_iInf fun b => _
-  cases b <;> assumption
+    (h₂ : @ContinuousInv G t₂ _) : @ContinuousInv G (t₁ ⊓ t₂) _ := by rw [inf_eq_iInf];
+  refine' continuousInv_iInf fun b => _; cases b <;> assumption
 #align has_continuous_inv_inf continuousInv_inf
 #align has_continuous_neg_inf continuousNeg_inf
 
@@ -1416,11 +1404,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
   refine' TopologicalGroup.of_nhds_one' hmul hinv hleft fun x₀ => _
   replace hconj : ∀ x₀ : G, map (fun x => x₀ * x * x₀⁻¹) (𝓝 1) = 𝓝 1
   exact fun x₀ =>
-    map_eq_of_inverse (fun x => x₀⁻¹ * x * x₀⁻¹⁻¹)
-      (by
-        ext
-        simp [mul_assoc])
-      (hconj _) (hconj _)
+    map_eq_of_inverse (fun x => x₀⁻¹ * x * x₀⁻¹⁻¹) (by ext; simp [mul_assoc]) (hconj _) (hconj _)
   rw [← hconj x₀]
   simpa [(· ∘ ·)] using hleft _
 #align topological_group.of_nhds_one TopologicalGroup.of_nhds_one
@@ -1582,9 +1566,7 @@ Case conversion may be inaccurate. Consider using '#align topological_group.to_h
 @[to_additive]
 instance (priority := 100) TopologicalGroup.to_continuousDiv [TopologicalSpace G] [Group G]
     [TopologicalGroup G] : ContinuousDiv G :=
-  ⟨by
-    simp only [div_eq_mul_inv]
-    exact continuous_fst.mul continuous_snd.inv⟩
+  ⟨by simp only [div_eq_mul_inv]; exact continuous_fst.mul continuous_snd.inv⟩
 #align topological_group.to_has_continuous_div TopologicalGroup.to_continuousDiv
 #align topological_add_group.to_has_continuous_sub TopologicalAddGroup.to_continuousSub
 
@@ -1797,9 +1779,7 @@ variable [TopologicalSpace β] [Group α] [MulAction α β] [ContinuousConstSMul
 
 #print IsOpen.smul_left /-
 @[to_additive]
-theorem IsOpen.smul_left (ht : IsOpen t) : IsOpen (s • t) :=
-  by
-  rw [← bUnion_smul_set]
+theorem IsOpen.smul_left (ht : IsOpen t) : IsOpen (s • t) := by rw [← bUnion_smul_set];
   exact isOpen_biUnion fun a _ => ht.smul _
 #align is_open.smul_left IsOpen.smul_left
 #align is_open.vadd_left IsOpen.vadd_left
@@ -1882,10 +1862,8 @@ but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a) s) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) a b)))
 Case conversion may be inaccurate. Consider using '#align singleton_mul_mem_nhds singleton_mul_mem_nhdsₓ'. -/
 @[to_additive]
-theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s ∈ 𝓝 (a * b) :=
-  by
-  have := smul_mem_nhds a h
-  rwa [← singleton_smul] at this
+theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s ∈ 𝓝 (a * b) := by
+  have := smul_mem_nhds a h; rwa [← singleton_smul] at this
 #align singleton_mul_mem_nhds singleton_mul_mem_nhds
 #align singleton_add_mem_nhds singleton_add_mem_nhds
 
@@ -1914,9 +1892,7 @@ but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
 Case conversion may be inaccurate. Consider using '#align is_open.mul_right IsOpen.mul_rightₓ'. -/
 @[to_additive]
-theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) :=
-  by
-  rw [← bUnion_op_smul_set]
+theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) := by rw [← bUnion_op_smul_set];
   exact isOpen_biUnion fun a _ => hs.smul _
 #align is_open.mul_right IsOpen.mul_right
 #align is_open.add_right IsOpen.add_right
@@ -1984,9 +1960,7 @@ but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
 Case conversion may be inaccurate. Consider using '#align is_open.div_left IsOpen.div_leftₓ'. -/
 @[to_additive]
-theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) :=
-  by
-  rw [← Union_div_left_image]
+theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) := by rw [← Union_div_left_image];
   exact isOpen_biUnion fun a ha => isOpenMap_div_left a t ht
 #align is_open.div_left IsOpen.div_left
 #align is_open.sub_left IsOpen.sub_left
@@ -1998,9 +1972,7 @@ but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
 Case conversion may be inaccurate. Consider using '#align is_open.div_right IsOpen.div_rightₓ'. -/
 @[to_additive]
-theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) :=
-  by
-  rw [← Union_div_right_image]
+theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) := by rw [← Union_div_right_image];
   exact isOpen_biUnion fun a ha => isOpenMap_div_right a s hs
 #align is_open.div_right IsOpen.div_right
 #align is_open.sub_right IsOpen.sub_right
@@ -2126,9 +2098,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align topological_group.t1_space TopologicalGroup.t1Spaceₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
-  ⟨fun x => by
-    convert isClosedMap_mul_right x _ h
-    simp⟩
+  ⟨fun x => by convert isClosedMap_mul_right x _ h; simp⟩
 #align topological_group.t1_space TopologicalGroup.t1Space
 #align topological_add_group.t1_space TopologicalAddGroup.t1Space
 
@@ -2168,9 +2138,7 @@ theorem TopologicalGroup.t3Space [T0Space G] : T3Space G :=
 
 #print TopologicalGroup.t2Space /-
 @[to_additive]
-theorem TopologicalGroup.t2Space [T0Space G] : T2Space G :=
-  by
-  haveI := TopologicalGroup.t3Space G
+theorem TopologicalGroup.t2Space [T0Space G] : T2Space G := by haveI := TopologicalGroup.t3Space G;
   infer_instance
 #align topological_group.t2_space TopologicalGroup.t2Space
 #align topological_add_group.t2_space TopologicalAddGroup.t2Space
@@ -2349,8 +2317,7 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
   by
   obtain ⟨L, hLc, hL1⟩ := exists_compact_mem_nhds (1 : G)
   refine' ⟨⟨fun n => (fun x => x * dense_seq G n) ⁻¹' L, _, _⟩⟩
-  · intro n
-    exact (Homeomorph.mulRight _).isCompact_preimage.mpr hLc
+  · intro n; exact (Homeomorph.mulRight _).isCompact_preimage.mpr hLc
   · refine' Union_eq_univ_iff.2 fun x => _
     obtain ⟨_, ⟨n, rfl⟩, hn⟩ : (range (dense_seq G) ∩ (fun y => x * y) ⁻¹' L).Nonempty :=
       by
@@ -2377,9 +2344,7 @@ theorem exists_disjoint_smul_of_isCompact [NoncompactSpace G] {K L : Set G} (hK
     (hL : IsCompact L) : ∃ g : G, Disjoint K (g • L) :=
   by
   have A : ¬K * L⁻¹ = univ := (hK.mul hL.inv).ne_univ
-  obtain ⟨g, hg⟩ : ∃ g, g ∉ K * L⁻¹ := by
-    contrapose! A
-    exact eq_univ_iff_forall.2 A
+  obtain ⟨g, hg⟩ : ∃ g, g ∉ K * L⁻¹ := by contrapose! A; exact eq_univ_iff_forall.2 A
   refine' ⟨g, _⟩
   apply disjoint_left.2 fun a ha h'a => hg _
   rcases h'a with ⟨b, bL, rfl⟩
@@ -2418,9 +2383,7 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
           (by simpa only [singleton_subset_iff] using mem_interior_iff_mem_nhds.2 Vnhds))
       _ = interior V * V := (is_open_interior.mul_closure _)
       _ ⊆ V * V := (mul_subset_mul_right interior_subset)
-      _ ⊆ L := by
-        rintro x ⟨y, z, yv, zv, rfl⟩
-        exact hV _ yv _ zv
+      _ ⊆ L := by rintro x ⟨y, z, yv, zv, rfl⟩; exact hV _ yv _ zv
       
   exact
     ⟨closure V, isCompact_of_isClosed_subset Lcomp isClosed_closure VL, isClosed_closure,
@@ -2607,10 +2570,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align topological_group_infi topologicalGroup_iInfₓ'. -/
 @[to_additive]
 theorem topologicalGroup_iInf {ts' : ι → TopologicalSpace G}
-    (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ :=
-  by
-  rw [← sInf_range]
-  exact topologicalGroup_sInf (set.forall_range_iff.mpr h')
+    (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ := by
+  rw [← sInf_range]; exact topologicalGroup_sInf (set.forall_range_iff.mpr h')
 #align topological_group_infi topologicalGroup_iInf
 #align topological_add_group_infi topologicalAddGroup_iInf
 
@@ -2622,11 +2583,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align topological_group_inf topologicalGroup_infₓ'. -/
 @[to_additive]
 theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @TopologicalGroup G t₁ _)
-    (h₂ : @TopologicalGroup G t₂ _) : @TopologicalGroup G (t₁ ⊓ t₂) _ :=
-  by
-  rw [inf_eq_iInf]
-  refine' topologicalGroup_iInf fun b => _
-  cases b <;> assumption
+    (h₂ : @TopologicalGroup G t₂ _) : @TopologicalGroup G (t₁ ⊓ t₂) _ := by rw [inf_eq_iInf];
+  refine' topologicalGroup_iInf fun b => _; cases b <;> assumption
 #align topological_group_inf topologicalGroup_inf
 #align topological_add_group_inf topologicalAddGroup_inf
 
@@ -2709,10 +2667,7 @@ theorem continuous_inv' (g : GroupTopology α) :
 @[to_additive]
 theorem toTopologicalSpace_injective :
     Function.Injective (toTopologicalSpace : GroupTopology α → TopologicalSpace α) := fun f g h =>
-  by
-  cases f
-  cases g
-  congr
+  by cases f; cases g; congr
 #align group_topology.to_topological_space_injective GroupTopology.toTopologicalSpace_injective
 #align add_group_topology.to_topological_space_injective AddGroupTopology.toTopologicalSpace_injective
 -/
@@ -2766,9 +2721,7 @@ theorem toTopologicalSpace_top : (⊤ : GroupTopology α).toTopologicalSpace = 
 @[to_additive]
 instance : Bot (GroupTopology α) :=
   ⟨{  toTopologicalSpace := ⊥
-      continuous_mul := by
-        letI : TopologicalSpace α := ⊥
-        haveI := discreteTopology_bot α
+      continuous_mul := by letI : TopologicalSpace α := ⊥; haveI := discreteTopology_bot α;
         continuity
       continuous_inv := continuous_bot }⟩
 
Diff
@@ -2195,10 +2195,7 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
 
 /- warning: subgroup.properly_discontinuous_smul_of_tendsto_cofinite -> Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S))) (Subgroup.mulAction.{u1, u1} G _inst_2 G (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) S)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
@@ -2221,10 +2218,7 @@ theorem Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite (S : Subgroup G)
 attribute [local semireducible] MulOpposite
 
 /- warning: subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite -> Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)))) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
Diff
@@ -1009,7 +1009,7 @@ variable {G}
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), (Inducing.{u2, u1} H G _inst_6 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_7))) f)) -> (TopologicalGroup.{u2} H _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align inducing.topological_group Inducing.topologicalGroupₓ'. -/
 @[to_additive]
 protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalSpace H]
@@ -1023,7 +1023,7 @@ protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalS
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), TopologicalGroup.{u2} H (TopologicalSpace.induced.{u2, u1} H G (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_6))) f) _inst_1) _inst_5
 but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
 Case conversion may be inaccurate. Consider using '#align topological_group_induced topologicalGroup_inducedₓ'. -/
 @[to_additive]
 protected theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClass F H G] (f : F) :
@@ -1109,7 +1109,7 @@ theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.hasTop.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.hasTop.{u2} H _inst_5))))
 but is expected to have type
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
 Case conversion may be inaccurate. Consider using '#align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroupₓ'. -/
 @[to_additive]
 theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H]
@@ -1313,7 +1313,7 @@ theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u3}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toHasMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f) (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_2)))))))) -> (Continuous.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f))
 but is expected to have type
-  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
+  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
 Case conversion may be inaccurate. Consider using '#align continuous_of_continuous_at_one continuous_of_continuousAt_oneₓ'. -/
 /-- A monoid homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) from a
 topological group to a topological monoid is continuous provided that it is continuous at one. See
@@ -2198,7 +2198,7 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S))) (Subgroup.mulAction.{u1, u1} G _inst_2 G (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) S)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
@@ -2224,7 +2224,7 @@ attribute [local semireducible] MulOpposite
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)))) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
Diff
@@ -1236,7 +1236,7 @@ theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5920 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5922 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5920 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5922) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5924 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5926 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5924 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5926) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds map_mul_left_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
@@ -1248,7 +1248,7 @@ theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5993 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5995 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5993 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5995) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5997 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5999 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5997 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5999) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds_one map_mul_left_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
@@ -1381,7 +1381,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7126 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7128 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7126 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7128)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
@@ -1404,7 +1404,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7414 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7416 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7414 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7416)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
@@ -1430,7 +1430,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7732 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7734 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7732 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7734)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9545 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9547 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9545 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9547) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9587 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9589 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9587 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9589) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
Diff
@@ -1070,7 +1070,7 @@ theorem Subgroup.topologicalClosure_coe {s : Subgroup G} :
 
 /- warning: subgroup.le_topological_closure -> Subgroup.le_topologicalClosure is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) s (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)
 Case conversion may be inaccurate. Consider using '#align subgroup.le_topological_closure Subgroup.le_topologicalClosureₓ'. -/
@@ -1094,7 +1094,7 @@ theorem Subgroup.isClosed_topologicalClosure (s : Subgroup G) :
 
 /- warning: subgroup.topological_closure_minimal -> Subgroup.topologicalClosure_minimal is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2) {t : Subgroup.{u1} G _inst_2}, (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s t) -> (IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) t)) -> (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) t)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2) {t : Subgroup.{u1} G _inst_2}, (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s t) -> (IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) t)) -> (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toHasLe.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) t)
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2) {t : Subgroup.{u1} G _inst_2}, (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) s t) -> (IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) t)) -> (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) t)
 Case conversion may be inaccurate. Consider using '#align subgroup.topological_closure_minimal Subgroup.topologicalClosure_minimalₓ'. -/
@@ -2740,7 +2740,7 @@ instance : PartialOrder (GroupTopology α) :=
 
 /- warning: group_topology.to_topological_space_le -> GroupTopology.toTopologicalSpace_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {x : GroupTopology.{u1} α _inst_1} {y : GroupTopology.{u1} α _inst_1}, Iff (LE.le.{u1} (TopologicalSpace.{u1} α) (Preorder.toLE.{u1} (TopologicalSpace.{u1} α) (PartialOrder.toPreorder.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.partialOrder.{u1} α))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y)) (LE.le.{u1} (GroupTopology.{u1} α _inst_1) (Preorder.toLE.{u1} (GroupTopology.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.partialOrder.{u1} α _inst_1))) x y)
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {x : GroupTopology.{u1} α _inst_1} {y : GroupTopology.{u1} α _inst_1}, Iff (LE.le.{u1} (TopologicalSpace.{u1} α) (Preorder.toHasLe.{u1} (TopologicalSpace.{u1} α) (PartialOrder.toPreorder.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.partialOrder.{u1} α))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y)) (LE.le.{u1} (GroupTopology.{u1} α _inst_1) (Preorder.toHasLe.{u1} (GroupTopology.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.partialOrder.{u1} α _inst_1))) x y)
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {x : GroupTopology.{u1} α _inst_1} {y : GroupTopology.{u1} α _inst_1}, Iff (LE.le.{u1} (TopologicalSpace.{u1} α) (Preorder.toLE.{u1} (TopologicalSpace.{u1} α) (PartialOrder.toPreorder.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instPartialOrderTopologicalSpace.{u1} α))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y)) (LE.le.{u1} (GroupTopology.{u1} α _inst_1) (Preorder.toLE.{u1} (GroupTopology.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instPartialOrderGroupTopology.{u1} α _inst_1))) x y)
 Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_le GroupTopology.toTopologicalSpace_leₓ'. -/
Diff
@@ -434,7 +434,7 @@ theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
     IsClosed { f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹ } :=
   by
   simp only [set_of_forall]
-  refine' isClosed_interᵢ fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
+  refine' isClosed_iInter fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
 #align is_closed_set_of_map_inv isClosed_setOf_map_inv
 #align is_closed_set_of_map_neg isClosed_setOf_map_neg
 
@@ -552,35 +552,35 @@ section LatticeOps
 
 variable {ι' : Sort _} [Inv G]
 
-/- warning: has_continuous_inv_Inf -> continuousInv_infₛ is a dubious translation:
+/- warning: has_continuous_inv_Inf -> continuousInv_sInf is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
-Case conversion may be inaccurate. Consider using '#align has_continuous_inv_Inf continuousInv_infₛₓ'. -/
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
+Case conversion may be inaccurate. Consider using '#align has_continuous_inv_Inf continuousInv_sInfₓ'. -/
 @[to_additive]
-theorem continuousInv_infₛ {ts : Set (TopologicalSpace G)} (h : ∀ t ∈ ts, @ContinuousInv G t _) :
-    @ContinuousInv G (infₛ ts) _ :=
+theorem continuousInv_sInf {ts : Set (TopologicalSpace G)} (h : ∀ t ∈ ts, @ContinuousInv G t _) :
+    @ContinuousInv G (sInf ts) _ :=
   {
     continuous_inv :=
-      continuous_infₛ_rng.2 fun t ht =>
-        continuous_infₛ_dom ht (@ContinuousInv.continuous_inv G t _ (h t ht)) }
-#align has_continuous_inv_Inf continuousInv_infₛ
-#align has_continuous_neg_Inf continuousNeg_infₛ
+      continuous_sInf_rng.2 fun t ht =>
+        continuous_sInf_dom ht (@ContinuousInv.continuous_inv G t _ (h t ht)) }
+#align has_continuous_inv_Inf continuousInv_sInf
+#align has_continuous_neg_Inf continuousNeg_sInf
 
-/- warning: has_continuous_inv_infi -> continuousInv_infᵢ is a dubious translation:
+/- warning: has_continuous_inv_infi -> continuousInv_iInf is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} {ι' : Sort.{u2}} [_inst_1 : Inv.{u1} G] {ts' : ι' -> (TopologicalSpace.{u1} G)}, (forall (i : ι'), ContinuousInv.{u1} G (ts' i) _inst_1) -> (ContinuousInv.{u1} G (infᵢ.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
+  forall {G : Type.{u1}} {ι' : Sort.{u2}} [_inst_1 : Inv.{u1} G] {ts' : ι' -> (TopologicalSpace.{u1} G)}, (forall (i : ι'), ContinuousInv.{u1} G (ts' i) _inst_1) -> (ContinuousInv.{u1} G (iInf.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
 but is expected to have type
-  forall {G : Type.{u2}} {ι' : Sort.{u1}} [_inst_1 : Inv.{u2} G] {ts' : ι' -> (TopologicalSpace.{u2} G)}, (forall (i : ι'), ContinuousInv.{u2} G (ts' i) _inst_1) -> (ContinuousInv.{u2} G (infᵢ.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
-Case conversion may be inaccurate. Consider using '#align has_continuous_inv_infi continuousInv_infᵢₓ'. -/
+  forall {G : Type.{u2}} {ι' : Sort.{u1}} [_inst_1 : Inv.{u2} G] {ts' : ι' -> (TopologicalSpace.{u2} G)}, (forall (i : ι'), ContinuousInv.{u2} G (ts' i) _inst_1) -> (ContinuousInv.{u2} G (iInf.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
+Case conversion may be inaccurate. Consider using '#align has_continuous_inv_infi continuousInv_iInfₓ'. -/
 @[to_additive]
-theorem continuousInv_infᵢ {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @ContinuousInv G (ts' i) _) :
+theorem continuousInv_iInf {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @ContinuousInv G (ts' i) _) :
     @ContinuousInv G (⨅ i, ts' i) _ := by
-  rw [← infₛ_range]
-  exact continuousInv_infₛ (set.forall_range_iff.mpr h')
-#align has_continuous_inv_infi continuousInv_infᵢ
-#align has_continuous_neg_infi continuousNeg_infᵢ
+  rw [← sInf_range]
+  exact continuousInv_sInf (set.forall_range_iff.mpr h')
+#align has_continuous_inv_infi continuousInv_iInf
+#align has_continuous_neg_infi continuousNeg_iInf
 
 /- warning: has_continuous_inv_inf -> continuousInv_inf is a dubious translation:
 lean 3 declaration is
@@ -592,8 +592,8 @@ Case conversion may be inaccurate. Consider using '#align has_continuous_inv_inf
 theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousInv G t₁ _)
     (h₂ : @ContinuousInv G t₂ _) : @ContinuousInv G (t₁ ⊓ t₂) _ :=
   by
-  rw [inf_eq_infᵢ]
-  refine' continuousInv_infᵢ fun b => _
+  rw [inf_eq_iInf]
+  refine' continuousInv_iInf fun b => _
   cases b <;> assumption
 #align has_continuous_inv_inf continuousInv_inf
 #align has_continuous_neg_inf continuousNeg_inf
@@ -1465,7 +1465,7 @@ theorem QuotientGroup.isOpenMap_coe : IsOpenMap (coe : G → G ⧸ N) :=
   intro s s_op
   change IsOpen ((coe : G → G ⧸ N) ⁻¹' (coe '' s))
   rw [QuotientGroup.preimage_image_mk N s]
-  exact isOpen_unionᵢ fun n => (continuous_mul_right _).isOpen_preimage s s_op
+  exact isOpen_iUnion fun n => (continuous_mul_right _).isOpen_preimage s s_op
 #align quotient_group.is_open_map_coe QuotientGroup.isOpenMap_coe
 #align quotient_add_group.is_open_map_coe QuotientAddGroup.isOpenMap_coe
 -/
@@ -1800,7 +1800,7 @@ variable [TopologicalSpace β] [Group α] [MulAction α β] [ContinuousConstSMul
 theorem IsOpen.smul_left (ht : IsOpen t) : IsOpen (s • t) :=
   by
   rw [← bUnion_smul_set]
-  exact isOpen_bunionᵢ fun a _ => ht.smul _
+  exact isOpen_biUnion fun a _ => ht.smul _
 #align is_open.smul_left IsOpen.smul_left
 #align is_open.vadd_left IsOpen.vadd_left
 -/
@@ -1917,7 +1917,7 @@ Case conversion may be inaccurate. Consider using '#align is_open.mul_right IsOp
 theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) :=
   by
   rw [← bUnion_op_smul_set]
-  exact isOpen_bunionᵢ fun a _ => hs.smul _
+  exact isOpen_biUnion fun a _ => hs.smul _
 #align is_open.mul_right IsOpen.mul_right
 #align is_open.add_right IsOpen.add_right
 
@@ -1987,7 +1987,7 @@ Case conversion may be inaccurate. Consider using '#align is_open.div_left IsOpe
 theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) :=
   by
   rw [← Union_div_left_image]
-  exact isOpen_bunionᵢ fun a ha => isOpenMap_div_left a t ht
+  exact isOpen_biUnion fun a ha => isOpenMap_div_left a t ht
 #align is_open.div_left IsOpen.div_left
 #align is_open.sub_left IsOpen.sub_left
 
@@ -2001,7 +2001,7 @@ Case conversion may be inaccurate. Consider using '#align is_open.div_right IsOp
 theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) :=
   by
   rw [← Union_div_right_image]
-  exact isOpen_bunionᵢ fun a ha => isOpenMap_div_right a s hs
+  exact isOpen_biUnion fun a ha => isOpenMap_div_right a s hs
 #align is_open.div_right IsOpen.div_right
 #align is_open.sub_right IsOpen.sub_right
 
@@ -2322,9 +2322,9 @@ variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
 /- warning: compact_covered_by_mul_left_translates -> compact_covered_by_mul_left_translates is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K (Set.unionᵢ.{u1, succ u1} G G (fun (g : G) => Set.unionᵢ.{u1, 0} G (Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) (fun (H : Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K (Set.iUnion.{u1, succ u1} G G (fun (g : G) => Set.iUnion.{u1, 0} G (Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) (fun (H : Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K (Set.unionᵢ.{u1, succ u1} G G (fun (g : G) => Set.unionᵢ.{u1, 0} G (Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) (fun (H : Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K (Set.iUnion.{u1, succ u1} G G (fun (g : G) => Set.iUnion.{u1, 0} G (Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) (fun (H : Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
 Case conversion may be inaccurate. Consider using '#align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translatesₓ'. -/
 /-- A compact set is covered by finitely many left multiplicative translates of a set
   with non-empty interior. -/
@@ -2589,36 +2589,36 @@ section LatticeOps
 
 variable {ι : Sort _} [Group G]
 
-/- warning: topological_group_Inf -> topologicalGroup_infₛ is a dubious translation:
+/- warning: topological_group_Inf -> topologicalGroup_sInf is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
-Case conversion may be inaccurate. Consider using '#align topological_group_Inf topologicalGroup_infₛₓ'. -/
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.sInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
+Case conversion may be inaccurate. Consider using '#align topological_group_Inf topologicalGroup_sInfₓ'. -/
 @[to_additive]
-theorem topologicalGroup_infₛ {ts : Set (TopologicalSpace G)}
-    (h : ∀ t ∈ ts, @TopologicalGroup G t _) : @TopologicalGroup G (infₛ ts) _ :=
+theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
+    (h : ∀ t ∈ ts, @TopologicalGroup G t _) : @TopologicalGroup G (sInf ts) _ :=
   { to_continuousInv :=
-      @continuousInv_infₛ _ _ _ fun t ht => @TopologicalGroup.to_continuousInv G t _ <| h t ht
+      @continuousInv_sInf _ _ _ fun t ht => @TopologicalGroup.to_continuousInv G t _ <| h t ht
     to_continuousMul :=
-      @continuousMul_infₛ _ _ _ fun t ht => @TopologicalGroup.to_continuousMul G t _ <| h t ht }
-#align topological_group_Inf topologicalGroup_infₛ
-#align topological_add_group_Inf topologicalAddGroup_infₛ
+      @continuousMul_sInf _ _ _ fun t ht => @TopologicalGroup.to_continuousMul G t _ <| h t ht }
+#align topological_group_Inf topologicalGroup_sInf
+#align topological_add_group_Inf topologicalAddGroup_sInf
 
-/- warning: topological_group_infi -> topologicalGroup_infᵢ is a dubious translation:
+/- warning: topological_group_infi -> topologicalGroup_iInf is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : Group.{u1} G] {ts' : ι -> (TopologicalSpace.{u1} G)}, (forall (i : ι), TopologicalGroup.{u1} G (ts' i) _inst_1) -> (TopologicalGroup.{u1} G (infᵢ.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι (fun (i : ι) => ts' i)) _inst_1)
+  forall {G : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : Group.{u1} G] {ts' : ι -> (TopologicalSpace.{u1} G)}, (forall (i : ι), TopologicalGroup.{u1} G (ts' i) _inst_1) -> (TopologicalGroup.{u1} G (iInf.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι (fun (i : ι) => ts' i)) _inst_1)
 but is expected to have type
-  forall {G : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : Group.{u2} G] {ts' : ι -> (TopologicalSpace.{u2} G)}, (forall (i : ι), TopologicalGroup.{u2} G (ts' i) _inst_1) -> (TopologicalGroup.{u2} G (infᵢ.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι (fun (i : ι) => ts' i)) _inst_1)
-Case conversion may be inaccurate. Consider using '#align topological_group_infi topologicalGroup_infᵢₓ'. -/
+  forall {G : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : Group.{u2} G] {ts' : ι -> (TopologicalSpace.{u2} G)}, (forall (i : ι), TopologicalGroup.{u2} G (ts' i) _inst_1) -> (TopologicalGroup.{u2} G (iInf.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι (fun (i : ι) => ts' i)) _inst_1)
+Case conversion may be inaccurate. Consider using '#align topological_group_infi topologicalGroup_iInfₓ'. -/
 @[to_additive]
-theorem topologicalGroup_infᵢ {ts' : ι → TopologicalSpace G}
+theorem topologicalGroup_iInf {ts' : ι → TopologicalSpace G}
     (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ :=
   by
-  rw [← infₛ_range]
-  exact topologicalGroup_infₛ (set.forall_range_iff.mpr h')
-#align topological_group_infi topologicalGroup_infᵢ
-#align topological_add_group_infi topologicalAddGroup_infᵢ
+  rw [← sInf_range]
+  exact topologicalGroup_sInf (set.forall_range_iff.mpr h')
+#align topological_group_infi topologicalGroup_iInf
+#align topological_add_group_infi topologicalAddGroup_iInf
 
 /- warning: topological_group_inf -> topologicalGroup_inf is a dubious translation:
 lean 3 declaration is
@@ -2630,8 +2630,8 @@ Case conversion may be inaccurate. Consider using '#align topological_group_inf
 theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @TopologicalGroup G t₁ _)
     (h₂ : @TopologicalGroup G t₂ _) : @TopologicalGroup G (t₁ ⊓ t₂) _ :=
   by
-  rw [inf_eq_infᵢ]
-  refine' topologicalGroup_infᵢ fun b => _
+  rw [inf_eq_iInf]
+  refine' topologicalGroup_iInf fun b => _
   cases b <;> assumption
 #align topological_group_inf topologicalGroup_inf
 #align topological_add_group_inf topologicalAddGroup_inf
@@ -2827,34 +2827,34 @@ local notation "cont" => @Continuous _ _
 /-- Infimum of a collection of group topologies. -/
 @[to_additive "Infimum of a collection of additive group topologies"]
 instance : InfSet (GroupTopology α)
-    where infₛ S :=
-    ⟨infₛ (toTopologicalSpace '' S), topologicalGroup_infₛ <| ball_image_iff.2 fun t ht => t.2⟩
+    where sInf S :=
+    ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| ball_image_iff.2 fun t ht => t.2⟩
 
-/- warning: group_topology.to_topological_space_Inf -> GroupTopology.toTopologicalSpace_infₛ is a dubious translation:
+/- warning: group_topology.to_topological_space_Inf -> GroupTopology.toTopologicalSpace_sInf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.infₛ.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) s)) (InfSet.infₛ.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.sInf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) s)) (InfSet.sInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.infₛ.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u1} α _inst_1) s)) (InfSet.infₛ.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_infₛₓ'. -/
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.sInf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u1} α _inst_1) s)) (InfSet.sInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_sInfₓ'. -/
 @[simp, to_additive]
-theorem toTopologicalSpace_infₛ (s : Set (GroupTopology α)) :
-    (infₛ s).toTopologicalSpace = infₛ (toTopologicalSpace '' s) :=
+theorem toTopologicalSpace_sInf (s : Set (GroupTopology α)) :
+    (sInf s).toTopologicalSpace = sInf (toTopologicalSpace '' s) :=
   rfl
-#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_infₛ
-#align add_group_topology.to_topological_space_Inf AddGroupTopology.toTopologicalSpace_infₛ
+#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_sInf
+#align add_group_topology.to_topological_space_Inf AddGroupTopology.toTopologicalSpace_sInf
 
-/- warning: group_topology.to_topological_space_infi -> GroupTopology.toTopologicalSpace_infᵢ is a dubious translation:
+/- warning: group_topology.to_topological_space_infi -> GroupTopology.toTopologicalSpace_iInf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {ι : Sort.{u2}} (s : ι -> (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (infᵢ.{u1, u2} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) ι (fun (i : ι) => s i))) (infᵢ.{u1, u2} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u1} α _inst_1 (s i)))
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {ι : Sort.{u2}} (s : ι -> (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (iInf.{u1, u2} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) ι (fun (i : ι) => s i))) (iInf.{u1, u2} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u1} α _inst_1 (s i)))
 but is expected to have type
-  forall {α : Type.{u2}} [_inst_1 : Group.{u2} α] {ι : Sort.{u1}} (s : ι -> (GroupTopology.{u2} α _inst_1)), Eq.{succ u2} (TopologicalSpace.{u2} α) (GroupTopology.toTopologicalSpace.{u2} α _inst_1 (infᵢ.{u2, u1} (GroupTopology.{u2} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u2} α _inst_1) ι (fun (i : ι) => s i))) (infᵢ.{u2, u1} (TopologicalSpace.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u2} α _inst_1 (s i)))
-Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_infᵢₓ'. -/
+  forall {α : Type.{u2}} [_inst_1 : Group.{u2} α] {ι : Sort.{u1}} (s : ι -> (GroupTopology.{u2} α _inst_1)), Eq.{succ u2} (TopologicalSpace.{u2} α) (GroupTopology.toTopologicalSpace.{u2} α _inst_1 (iInf.{u2, u1} (GroupTopology.{u2} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u2} α _inst_1) ι (fun (i : ι) => s i))) (iInf.{u2, u1} (TopologicalSpace.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u2} α _inst_1 (s i)))
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_iInfₓ'. -/
 @[simp, to_additive]
-theorem toTopologicalSpace_infᵢ {ι} (s : ι → GroupTopology α) :
+theorem toTopologicalSpace_iInf {ι} (s : ι → GroupTopology α) :
     (⨅ i, s i).toTopologicalSpace = ⨅ i, (s i).toTopologicalSpace :=
-  congr_arg infₛ (range_comp _ _).symm
-#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_infᵢ
-#align add_group_topology.to_topological_space_infi AddGroupTopology.toTopologicalSpace_infᵢ
+  congr_arg sInf (range_comp _ _).symm
+#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_iInf
+#align add_group_topology.to_topological_space_infi AddGroupTopology.toTopologicalSpace_iInf
 
 /-- Group topologies on `γ` form a complete lattice, with `⊥` the discrete topology and `⊤` the
 indiscrete topology.
@@ -2869,7 +2869,7 @@ topologies contained in the intersection of `s` and `t`. -/
 instance : CompleteSemilatticeInf (GroupTopology α) :=
   { GroupTopology.hasInf,
     GroupTopology.partialOrder with
-    inf_le := fun S a haS => toTopologicalSpace_le.1 <| infₛ_le ⟨a, haS, rfl⟩
+    inf_le := fun S a haS => toTopologicalSpace_le.1 <| sInf_le ⟨a, haS, rfl⟩
     le_inf := by
       intro S a hab
       apply topological_space.complete_lattice.le_Inf
@@ -2891,7 +2891,7 @@ topology such that `f` is continuous and `β` is a topological group. -/
 @[to_additive
       "Given `f : α → β` and a topology on `α`, the coinduced additive group topology on `β`\nis the finest topology such that `f` is continuous and `β` is a topological additive group."]
 def coinduced {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) : GroupTopology β :=
-  infₛ { b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace }
+  sInf { b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace }
 #align group_topology.coinduced GroupTopology.coinduced
 #align add_group_topology.coinduced AddGroupTopology.coinduced
 -/
@@ -2906,7 +2906,7 @@ Case conversion may be inaccurate. Consider using '#align group_topology.coinduc
 theorem coinduced_continuous {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) :
     cont t (coinduced f).toTopologicalSpace f :=
   by
-  rw [continuous_infₛ_rng]
+  rw [continuous_sInf_rng]
   rintro _ ⟨t', ht', rfl⟩
   exact continuous_iff_coinduced_le.2 ht'
 #align group_topology.coinduced_continuous GroupTopology.coinduced_continuous
Diff
@@ -1381,7 +1381,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7126 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7128 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7126 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7128)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
@@ -1404,7 +1404,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7414 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7416 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7414 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7416)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
@@ -1430,7 +1430,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7732 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7734 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7732 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7734)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9545 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9547 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9545 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9547) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9587 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9589 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9587 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9589) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
Diff
@@ -2098,7 +2098,7 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 end TopologicalGroup
 
 #print AddGroupWithZeroNhd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
 
Diff
@@ -118,11 +118,11 @@ lean 3 declaration is
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
 Case conversion may be inaccurate. Consider using '#align is_open.left_coset IsOpen.leftCosetₓ'. -/
-@[to_additive IsOpen.left_add_coset]
+@[to_additive IsOpen.left_addCoset]
 theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset x U) :=
   isOpenMap_mul_left x _ h
 #align is_open.left_coset IsOpen.leftCoset
-#align is_open.left_add_coset IsOpen.left_add_coset
+#align is_open.left_add_coset IsOpen.left_addCoset
 
 /- warning: is_closed_map_mul_left -> isClosedMap_mul_left is a dubious translation:
 lean 3 declaration is
@@ -142,11 +142,11 @@ lean 3 declaration is
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
 Case conversion may be inaccurate. Consider using '#align is_closed.left_coset IsClosed.leftCosetₓ'. -/
-@[to_additive IsClosed.left_add_coset]
+@[to_additive IsClosed.left_addCoset]
 theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (leftCoset x U) :=
   isClosedMap_mul_left x _ h
 #align is_closed.left_coset IsClosed.leftCoset
-#align is_closed.left_add_coset IsClosed.left_add_coset
+#align is_closed.left_add_coset IsClosed.left_addCoset
 
 /- warning: homeomorph.mul_right -> Homeomorph.mulRight is a dubious translation:
 lean 3 declaration is
@@ -207,11 +207,11 @@ lean 3 declaration is
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
 Case conversion may be inaccurate. Consider using '#align is_open.right_coset IsOpen.rightCosetₓ'. -/
-@[to_additive IsOpen.right_add_coset]
+@[to_additive IsOpen.right_addCoset]
 theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (rightCoset U x) :=
   isOpenMap_mul_right x _ h
 #align is_open.right_coset IsOpen.rightCoset
-#align is_open.right_add_coset IsOpen.right_add_coset
+#align is_open.right_add_coset IsOpen.right_addCoset
 
 /- warning: is_closed_map_mul_right -> isClosedMap_mul_right is a dubious translation:
 lean 3 declaration is
@@ -231,11 +231,11 @@ lean 3 declaration is
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
 Case conversion may be inaccurate. Consider using '#align is_closed.right_coset IsClosed.rightCosetₓ'. -/
-@[to_additive IsClosed.right_add_coset]
+@[to_additive IsClosed.right_addCoset]
 theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rightCoset U x) :=
   isClosedMap_mul_right x _ h
 #align is_closed.right_coset IsClosed.rightCoset
-#align is_closed.right_add_coset IsClosed.right_add_coset
+#align is_closed.right_add_coset IsClosed.right_addCoset
 
 /- warning: discrete_topology_of_open_singleton_one -> discreteTopology_of_open_singleton_one is a dubious translation:
 lean 3 declaration is
@@ -721,16 +721,16 @@ instance AddGroup.continuousConstSMul_int {A} [AddGroup A] [TopologicalSpace A]
 #align add_group.has_continuous_const_smul_int AddGroup.continuousConstSMul_int
 -/
 
-/- warning: add_group.has_continuous_smul_int -> AddGroup.continuousSmul_int is a dubious translation:
+/- warning: add_group.has_continuous_smul_int -> AddGroup.continuousSMul_int is a dubious translation:
 lean 3 declaration is
   forall {A : Type.{u1}} [_inst_5 : AddGroup.{u1} A] [_inst_6 : TopologicalSpace.{u1} A] [_inst_7 : TopologicalAddGroup.{u1} A _inst_6 _inst_5], ContinuousSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_5)) Int.topologicalSpace _inst_6
 but is expected to have type
   forall {A : Type.{u1}} [_inst_5 : AddGroup.{u1} A] [_inst_6 : TopologicalSpace.{u1} A] [_inst_7 : TopologicalAddGroup.{u1} A _inst_6 _inst_5], ContinuousSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_5)) instTopologicalSpaceInt _inst_6
-Case conversion may be inaccurate. Consider using '#align add_group.has_continuous_smul_int AddGroup.continuousSmul_intₓ'. -/
-instance AddGroup.continuousSmul_int {A} [AddGroup A] [TopologicalSpace A] [TopologicalAddGroup A] :
+Case conversion may be inaccurate. Consider using '#align add_group.has_continuous_smul_int AddGroup.continuousSMul_intₓ'. -/
+instance AddGroup.continuousSMul_int {A} [AddGroup A] [TopologicalSpace A] [TopologicalAddGroup A] :
     ContinuousSMul ℤ A :=
   ⟨continuous_uncurry_of_discreteTopology continuous_zsmul⟩
-#align add_group.has_continuous_smul_int AddGroup.continuousSmul_int
+#align add_group.has_continuous_smul_int AddGroup.continuousSMul_int
 
 #print Continuous.zpow /-
 @[continuity, to_additive]
@@ -1381,7 +1381,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7129 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7131 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7129 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7131)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7130 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7132)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
@@ -1404,7 +1404,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7417 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7419 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7417 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7419)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7418 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7420)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
@@ -1430,7 +1430,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7733 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7735 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7733 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7735)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7736 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7738)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9548 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9548) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9549 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9551) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9588 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9590 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9588 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9590) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9591 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9593) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
Diff
@@ -805,7 +805,7 @@ variable [TopologicalSpace H] [OrderedCommGroup H] [ContinuousInv H]
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi tendsto_inv_nhdsWithin_Ioiₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi {a : H} : Tendsto Inv.inv (𝓝[>] a) (𝓝[<] a⁻¹) :=
@@ -817,7 +817,7 @@ theorem tendsto_inv_nhdsWithin_Ioi {a : H} : Tendsto Inv.inv (𝓝[>] a) (𝓝[<
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio tendsto_inv_nhdsWithin_Iioₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio {a : H} : Tendsto Inv.inv (𝓝[<] a) (𝓝[>] a⁻¹) :=
@@ -829,7 +829,7 @@ theorem tendsto_inv_nhdsWithin_Iio {a : H} : Tendsto Inv.inv (𝓝[<] a) (𝓝[>
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi_inv tendsto_inv_nhdsWithin_Ioi_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi_inv {a : H} : Tendsto Inv.inv (𝓝[>] a⁻¹) (𝓝[<] a) := by
@@ -841,7 +841,7 @@ theorem tendsto_inv_nhdsWithin_Ioi_inv {a : H} : Tendsto Inv.inv (𝓝[>] a⁻¹
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio_inv tendsto_inv_nhdsWithin_Iio_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio_inv {a : H} : Tendsto Inv.inv (𝓝[<] a⁻¹) (𝓝[>] a) := by
@@ -853,7 +853,7 @@ theorem tendsto_inv_nhdsWithin_Iio_inv {a : H} : Tendsto Inv.inv (𝓝[<] a⁻¹
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici tendsto_inv_nhdsWithin_Iciₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici {a : H} : Tendsto Inv.inv (𝓝[≥] a) (𝓝[≤] a⁻¹) :=
@@ -865,7 +865,7 @@ theorem tendsto_inv_nhdsWithin_Ici {a : H} : Tendsto Inv.inv (𝓝[≥] a) (𝓝
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic tendsto_inv_nhdsWithin_Iicₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic {a : H} : Tendsto Inv.inv (𝓝[≤] a) (𝓝[≥] a⁻¹) :=
@@ -877,7 +877,7 @@ theorem tendsto_inv_nhdsWithin_Iic {a : H} : Tendsto Inv.inv (𝓝[≤] a) (𝓝
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici_inv tendsto_inv_nhdsWithin_Ici_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici_inv {a : H} : Tendsto Inv.inv (𝓝[≥] a⁻¹) (𝓝[≤] a) := by
@@ -889,7 +889,7 @@ theorem tendsto_inv_nhdsWithin_Ici_inv {a : H} : Tendsto Inv.inv (𝓝[≥] a⁻
 lean 3 declaration is
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic_inv tendsto_inv_nhdsWithin_Iic_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic_inv {a : H} : Tendsto Inv.inv (𝓝[≤] a⁻¹) (𝓝[≥] a) := by
@@ -2122,7 +2122,7 @@ variable (G) [TopologicalSpace G] [Group G] [ContinuousMul G]
 lean 3 declaration is
   forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsClosed.{u1} G _inst_1 (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 _inst_2))))))))) -> (T1Space.{u1} G _inst_1)
 but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], (IsClosed.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2)))))))) -> (T1Space.{u1} G _inst_1)
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsClosed.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2)))))))) -> (T1Space.{u1} G _inst_1)
 Case conversion may be inaccurate. Consider using '#align topological_group.t1_space TopologicalGroup.t1Spaceₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
@@ -2158,24 +2158,15 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 -/
 
-/- warning: topological_group.t3_space -> TopologicalGroup.t3Space is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T0Space.{u1} G _inst_1], T3Space.{u1} G _inst_1
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T1Space.{u1} G _inst_1], T3Space.{u1} G _inst_1
-Case conversion may be inaccurate. Consider using '#align topological_group.t3_space TopologicalGroup.t3Spaceₓ'. -/
+#print TopologicalGroup.t3Space /-
 @[to_additive]
 theorem TopologicalGroup.t3Space [T0Space G] : T3Space G :=
   ⟨⟩
 #align topological_group.t3_space TopologicalGroup.t3Space
 #align topological_add_group.t3_space TopologicalAddGroup.t3Space
+-/
 
-/- warning: topological_group.t2_space -> TopologicalGroup.t2Space is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T0Space.{u1} G _inst_1], T2Space.{u1} G _inst_1
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T1Space.{u1} G _inst_1], T2Space.{u1} G _inst_1
-Case conversion may be inaccurate. Consider using '#align topological_group.t2_space TopologicalGroup.t2Spaceₓ'. -/
+#print TopologicalGroup.t2Space /-
 @[to_additive]
 theorem TopologicalGroup.t2Space [T0Space G] : T2Space G :=
   by
@@ -2183,6 +2174,7 @@ theorem TopologicalGroup.t2Space [T0Space G] : T2Space G :=
   infer_instance
 #align topological_group.t2_space TopologicalGroup.t2Space
 #align topological_add_group.t2_space TopologicalAddGroup.t2Space
+-/
 
 variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
@@ -2270,7 +2262,7 @@ variable [TopologicalSpace G] [MulOneClass G] [ContinuousMul G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_2))) K V) U)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) K V) U)))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_2))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G _inst_2))) K V) U)))
 Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_right compact_open_separated_mul_rightₓ'. -/
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `K * V ⊆ U`. -/
@@ -2304,7 +2296,7 @@ open MulOpposite
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_2))) V K) U)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) V K) U)))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_2))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G _inst_2))) V K) U)))
 Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_left compact_open_separated_mul_leftₓ'. -/
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `V * K ⊆ U`. -/
@@ -2501,7 +2493,7 @@ variable [Group G] [TopologicalSpace G] [ContinuousMul G] {Γ : Subgroup G}
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1}, ContinuousConstSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (MulAction.toHasSmul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{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] {Γ : Subgroup.{u1} G _inst_1}, ContinuousConstSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1}, ContinuousConstSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))
 Case conversion may be inaccurate. Consider using '#align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMulₓ'. -/
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
@@ -2514,7 +2506,7 @@ instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ), Continuous.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) _inst_2 (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (fun (g : G) => SMul.smul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (MulAction.toHasSmul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ))) g x)
 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] {Γ : Subgroup.{u1} G _inst_1} (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ), Continuous.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) _inst_2 (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (fun (g : G) => HSMul.hSMul.{u1, u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (instHSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))) g x)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ), Continuous.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) _inst_2 (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (fun (g : G) => HSMul.hSMul.{u1, u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (instHSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))) g x)
 Case conversion may be inaccurate. Consider using '#align quotient_group.continuous_smul₁ QuotientGroup.continuous_smul₁ₓ'. -/
 @[to_additive]
 theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G => g • x :=
@@ -2528,7 +2520,7 @@ theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G =
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} [_inst_4 : TopologicalSpace.SecondCountableTopology.{u1} G _inst_2], TopologicalSpace.SecondCountableTopology.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (Quotient.topologicalSpace.{u1} G (MulAction.orbitRel.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ)) G (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ)) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ))) _inst_2)
 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] {Γ : Subgroup.{u1} G _inst_1} [_inst_4 : TopologicalSpace.SecondCountableTopology.{u1} G _inst_2], TopologicalSpace.SecondCountableTopology.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} [_inst_4 : TopologicalSpace.SecondCountableTopology.{u1} G _inst_2], TopologicalSpace.SecondCountableTopology.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ)
 Case conversion may be inaccurate. Consider using '#align quotient_group.second_countable_topology QuotientGroup.secondCountableTopologyₓ'. -/
 /-- The quotient of a second countable topological group by a subgroup is second countable. -/
 @[to_additive
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
 
 ! This file was ported from Lean 3 source module topology.algebra.group.basic
-! leanprover-community/mathlib commit c10e724be91096453ee3db13862b9fb9a992fef2
+! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -799,11 +799,11 @@ end Zpow
 
 section OrderedCommGroup
 
-variable [TopologicalSpace H] [OrderedCommGroup H] [TopologicalGroup H]
+variable [TopologicalSpace H] [OrderedCommGroup H] [ContinuousInv H]
 
 /- warning: tendsto_inv_nhds_within_Ioi -> tendsto_inv_nhdsWithin_Ioi is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi tendsto_inv_nhdsWithin_Ioiₓ'. -/
@@ -815,7 +815,7 @@ theorem tendsto_inv_nhdsWithin_Ioi {a : H} : Tendsto Inv.inv (𝓝[>] a) (𝓝[<
 
 /- warning: tendsto_inv_nhds_within_Iio -> tendsto_inv_nhdsWithin_Iio is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio tendsto_inv_nhdsWithin_Iioₓ'. -/
@@ -827,7 +827,7 @@ theorem tendsto_inv_nhdsWithin_Iio {a : H} : Tendsto Inv.inv (𝓝[<] a) (𝓝[>
 
 /- warning: tendsto_inv_nhds_within_Ioi_inv -> tendsto_inv_nhdsWithin_Ioi_inv is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi_inv tendsto_inv_nhdsWithin_Ioi_invₓ'. -/
@@ -839,7 +839,7 @@ theorem tendsto_inv_nhdsWithin_Ioi_inv {a : H} : Tendsto Inv.inv (𝓝[>] a⁻¹
 
 /- warning: tendsto_inv_nhds_within_Iio_inv -> tendsto_inv_nhdsWithin_Iio_inv is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio_inv tendsto_inv_nhdsWithin_Iio_invₓ'. -/
@@ -851,7 +851,7 @@ theorem tendsto_inv_nhdsWithin_Iio_inv {a : H} : Tendsto Inv.inv (𝓝[<] a⁻¹
 
 /- warning: tendsto_inv_nhds_within_Ici -> tendsto_inv_nhdsWithin_Ici is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici tendsto_inv_nhdsWithin_Iciₓ'. -/
@@ -863,7 +863,7 @@ theorem tendsto_inv_nhdsWithin_Ici {a : H} : Tendsto Inv.inv (𝓝[≥] a) (𝓝
 
 /- warning: tendsto_inv_nhds_within_Iic -> tendsto_inv_nhdsWithin_Iic is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic tendsto_inv_nhdsWithin_Iicₓ'. -/
@@ -875,7 +875,7 @@ theorem tendsto_inv_nhdsWithin_Iic {a : H} : Tendsto Inv.inv (𝓝[≤] a) (𝓝
 
 /- warning: tendsto_inv_nhds_within_Ici_inv -> tendsto_inv_nhdsWithin_Ici_inv is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici_inv tendsto_inv_nhdsWithin_Ici_invₓ'. -/
@@ -887,7 +887,7 @@ theorem tendsto_inv_nhdsWithin_Ici_inv {a : H} : Tendsto Inv.inv (𝓝[≥] a⁻
 
 /- warning: tendsto_inv_nhds_within_Iic_inv -> tendsto_inv_nhdsWithin_Iic_inv is a dubious translation:
 lean 3 declaration is
-  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : ContinuousInv.{u1} H _inst_5 (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 but is expected to have type
   forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
 Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic_inv tendsto_inv_nhdsWithin_Iic_invₓ'. -/
@@ -915,7 +915,7 @@ instance Pi.topologicalGroup {C : β → Type _} [∀ b, TopologicalSpace (C b)]
 open MulOpposite
 
 @[to_additive]
-instance [Group α] [ContinuousInv α] : ContinuousInv αᵐᵒᵖ :=
+instance [Inv α] [ContinuousInv α] : ContinuousInv αᵐᵒᵖ :=
   opHomeomorph.symm.Inducing.ContinuousInv unop_inv
 
 /-- If multiplication is continuous in `α`, then it also is in `αᵐᵒᵖ`. -/
@@ -2116,11 +2116,11 @@ section FilterMul
 
 section
 
-variable (G) [TopologicalSpace G] [Group G] [TopologicalGroup G]
+variable (G) [TopologicalSpace G] [Group G] [ContinuousMul G]
 
 /- warning: topological_group.t1_space -> TopologicalGroup.t1Space is a dubious translation:
 lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], (IsClosed.{u1} G _inst_1 (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 _inst_2))))))))) -> (T1Space.{u1} G _inst_1)
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsClosed.{u1} G _inst_1 (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 _inst_2))))))))) -> (T1Space.{u1} G _inst_1)
 but is expected to have type
   forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], (IsClosed.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2)))))))) -> (T1Space.{u1} G _inst_1)
 Case conversion may be inaccurate. Consider using '#align topological_group.t1_space TopologicalGroup.t1Spaceₓ'. -/
@@ -2132,6 +2132,12 @@ theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
 #align topological_group.t1_space TopologicalGroup.t1Space
 #align topological_add_group.t1_space TopologicalAddGroup.t1Space
 
+end
+
+section
+
+variable (G) [TopologicalSpace G] [Group G] [TopologicalGroup G]
+
 #print TopologicalGroup.regularSpace /-
 @[to_additive]
 instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
@@ -2152,40 +2158,47 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 -/
 
-#print TopologicalGroup.t3Space /-
+/- warning: topological_group.t3_space -> TopologicalGroup.t3Space is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T0Space.{u1} G _inst_1], T3Space.{u1} G _inst_1
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T1Space.{u1} G _inst_1], T3Space.{u1} G _inst_1
+Case conversion may be inaccurate. Consider using '#align topological_group.t3_space TopologicalGroup.t3Spaceₓ'. -/
 @[to_additive]
-theorem TopologicalGroup.t3Space [T1Space G] : T3Space G :=
+theorem TopologicalGroup.t3Space [T0Space G] : T3Space G :=
   ⟨⟩
 #align topological_group.t3_space TopologicalGroup.t3Space
 #align topological_add_group.t3_space TopologicalAddGroup.t3Space
--/
 
-#print TopologicalGroup.t2Space /-
+/- warning: topological_group.t2_space -> TopologicalGroup.t2Space is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T0Space.{u1} G _inst_1], T2Space.{u1} G _inst_1
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : T1Space.{u1} G _inst_1], T2Space.{u1} G _inst_1
+Case conversion may be inaccurate. Consider using '#align topological_group.t2_space TopologicalGroup.t2Spaceₓ'. -/
 @[to_additive]
-theorem TopologicalGroup.t2Space [T1Space G] : T2Space G :=
+theorem TopologicalGroup.t2Space [T0Space G] : T2Space G :=
   by
   haveI := TopologicalGroup.t3Space G
   infer_instance
 #align topological_group.t2_space TopologicalGroup.t2Space
 #align topological_add_group.t2_space TopologicalAddGroup.t2Space
--/
 
 variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
 /- warning: subgroup.t3_quotient_of_is_closed -> Subgroup.t3_quotient_of_isClosed is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [_inst_7 : IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [hS : IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [_inst_7 : IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [hS : IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
 Case conversion may be inaccurate. Consider using '#align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosedₓ'. -/
 @[to_additive]
 instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
-    [IsClosed (S : Set G)] : T3Space (G ⧸ S) :=
+    [hS : IsClosed (S : Set G)] : T3Space (G ⧸ S) :=
   by
-  suffices T1Space (G ⧸ S) by exact @TopologicalGroup.t3Space _ _ _ _ this
-  have hS : IsClosed (S : Set G) := inferInstance
   rw [← QuotientGroup.ker_mk' S] at hS
-  exact TopologicalGroup.t1Space (G ⧸ S) (quotient_map_quotient_mk.is_closed_preimage.mp hS)
+  haveI := TopologicalGroup.t1Space (G ⧸ S) (quotient_map_quotient_mk.is_closed_preimage.mp hS)
+  exact TopologicalGroup.t3Space _
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
 
@@ -2251,11 +2264,11 @@ section
 /-! Some results about an open set containing the product of two sets in a topological group. -/
 
 
-variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
+variable [TopologicalSpace G] [MulOneClass G] [ContinuousMul G]
 
 /- warning: compact_open_separated_mul_right -> compact_open_separated_mul_right is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) K V) U)))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_2))) K V) U)))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) K V) U)))
 Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_right compact_open_separated_mul_rightₓ'. -/
@@ -2289,7 +2302,7 @@ open MulOpposite
 
 /- warning: compact_open_separated_mul_left -> compact_open_separated_mul_left is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) V K) U)))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : MulOneClass.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G _inst_2)] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_2)))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_2))) V K) U)))
 but is expected to have type
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) V K) U)))
 Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_left compact_open_separated_mul_leftₓ'. -/
@@ -2309,6 +2322,12 @@ theorem compact_open_separated_mul_left {K U : Set G} (hK : IsCompact K) (hU : I
 #align compact_open_separated_mul_left compact_open_separated_mul_left
 #align compact_open_separated_add_left compact_open_separated_add_left
 
+end
+
+section
+
+variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
+
 /- warning: compact_covered_by_mul_left_translates -> compact_covered_by_mul_left_translates is a dubious translation:
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K (Set.unionᵢ.{u1, succ u1} G G (fun (g : G) => Set.unionᵢ.{u1, 0} G (Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) (fun (H : Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
@@ -2476,18 +2495,27 @@ instance {G} [TopologicalSpace G] [AddGroup G] [TopologicalAddGroup G] :
 
 section Quotient
 
-variable [Group G] [TopologicalSpace G] [TopologicalGroup G] {Γ : Subgroup G}
+variable [Group G] [TopologicalSpace G] [ContinuousMul G] {Γ : Subgroup G}
 
-#print QuotientGroup.continuousConstSMul /-
+/- warning: quotient_group.has_continuous_const_smul -> QuotientGroup.continuousConstSMul is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1}, ContinuousConstSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (MulAction.toHasSmul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{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] {Γ : Subgroup.{u1} G _inst_1}, ContinuousConstSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))
+Case conversion may be inaccurate. Consider using '#align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMulₓ'. -/
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
     where continuous_const_smul g := by
     convert((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
 #align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMul
 #align quotient_add_group.has_continuous_const_vadd QuotientAddGroup.continuousConstVAdd
--/
 
-#print QuotientGroup.continuous_smul₁ /-
+/- warning: quotient_group.continuous_smul₁ -> QuotientGroup.continuous_smul₁ is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ), Continuous.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) _inst_2 (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (fun (g : G) => SMul.smul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (MulAction.toHasSmul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ))) g x)
+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] {Γ : Subgroup.{u1} G _inst_1} (x : HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ), Continuous.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) _inst_2 (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ) (fun (g : G) => HSMul.hSMul.{u1, u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (instHSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (MulAction.toSMul.{u1, u1} G (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (MulAction.quotient.{u1, u1} G G _inst_1 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) Γ (MulAction.left_quotientAction.{u1} G _inst_1 Γ)))) g x)
+Case conversion may be inaccurate. Consider using '#align quotient_group.continuous_smul₁ QuotientGroup.continuous_smul₁ₓ'. -/
 @[to_additive]
 theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G => g • x :=
   by
@@ -2495,9 +2523,13 @@ theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G =
   exact continuous_quotient_mk.comp (continuous_mul_right x)
 #align quotient_group.continuous_smul₁ QuotientGroup.continuous_smul₁
 #align quotient_add_group.continuous_smul₁ QuotientAddGroup.continuous_smul₁
--/
 
-#print QuotientGroup.secondCountableTopology /-
+/- warning: quotient_group.second_countable_topology -> QuotientGroup.secondCountableTopology is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_2 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] {Γ : Subgroup.{u1} G _inst_1} [_inst_4 : TopologicalSpace.SecondCountableTopology.{u1} G _inst_2], TopologicalSpace.SecondCountableTopology.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_1) Γ) (Quotient.topologicalSpace.{u1} G (MulAction.orbitRel.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ)) G (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ)) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) => (Subgroup.{u1} G _inst_1) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_1) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_1))) (Subgroup.opposite.{u1} G _inst_1) Γ))) _inst_2)
+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] {Γ : Subgroup.{u1} G _inst_1} [_inst_4 : TopologicalSpace.SecondCountableTopology.{u1} G _inst_2], TopologicalSpace.SecondCountableTopology.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_1) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_1) Γ) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_1 _inst_2 Γ)
+Case conversion may be inaccurate. Consider using '#align quotient_group.second_countable_topology QuotientGroup.secondCountableTopologyₓ'. -/
 /-- The quotient of a second countable topological group by a subgroup is second countable. -/
 @[to_additive
       "The quotient of a second countable additive topological group by a subgroup is second\ncountable."]
@@ -2506,7 +2538,6 @@ instance QuotientGroup.secondCountableTopology [SecondCountableTopology G] :
   ContinuousConstSMul.secondCountableTopology
 #align quotient_group.second_countable_topology QuotientGroup.secondCountableTopology
 #align quotient_add_group.second_countable_topology QuotientAddGroup.secondCountableTopology
--/
 
 end Quotient
 
Diff
@@ -1236,7 +1236,7 @@ theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5916 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5918 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5916 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5918) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5920 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5922 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5920 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5922) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds map_mul_left_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
@@ -1248,7 +1248,7 @@ theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5989 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5991 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5989 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5991) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5993 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5995 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5993 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5995) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds_one map_mul_left_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
@@ -1381,7 +1381,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7125 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7127 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7125 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7127)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7129 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7131 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7129 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7131)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
@@ -1404,7 +1404,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7413 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7415 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7413 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7415)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7417 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7419 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7417 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7419)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
@@ -1430,7 +1430,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7729 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7731 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7729 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7731)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7733 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7735 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7733 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7735)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9542 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9542 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9548 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9548) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9584 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9586 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9584 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9586) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9588 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9590 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9588 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9590) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
Diff
@@ -2219,7 +2219,7 @@ attribute [local semireducible] MulOpposite
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)))) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
Diff
@@ -1485,7 +1485,7 @@ instance topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N)
       · exact continuous_quot_mk.prod_map continuous_quot_mk
       · exact (surjective_quot_mk _).Prod_map (surjective_quot_mk _)
     exact (QuotientMap.continuous_iff Quot).2 cont
-  continuous_inv := by convert (@continuous_inv G _ _ _).quotient_map' _
+  continuous_inv := by convert(@continuous_inv G _ _ _).quotient_map' _
 #align topological_group_quotient topologicalGroup_quotient
 #align topological_add_group_quotient topologicalAddGroup_quotient
 -/
@@ -2482,7 +2482,7 @@ variable [Group G] [TopologicalSpace G] [TopologicalGroup G] {Γ : Subgroup G}
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
     where continuous_const_smul g := by
-    convert ((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
+    convert((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
 #align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMul
 #align quotient_add_group.has_continuous_const_vadd QuotientAddGroup.continuousConstVAdd
 -/
Diff
@@ -78,7 +78,7 @@ protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113) a)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113) a)
 Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_left Homeomorph.coe_mulLeftₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (· * ·) a :=
@@ -167,7 +167,7 @@ protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (fun (g : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g a)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (fun (g : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g a)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (fun (g : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g a)
 Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_right Homeomorph.coe_mulRightₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulRight (a : G) : ⇑(Homeomorph.mulRight a) = fun g => g * a :=
@@ -981,7 +981,7 @@ protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
 lean 3 declaration is
   forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (fun (_x : Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) => (Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (Homeomorph.hasCoeToFun.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3)) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Prod.fst.{u1, u1} G G z) (Prod.snd.{u1, u1} G G z)))
 but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (forall (ᾰ : Prod.{u1, u1} G G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3)) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Prod.fst.{u1, u1} G G z) (Prod.snd.{u1, u1} G G z)))
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3)) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Prod.fst.{u1, u1} G G z) (Prod.snd.{u1, u1} G G z)))
 Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right_coe Homeomorph.shearMulRight_coeₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_coe :
@@ -994,7 +994,7 @@ theorem Homeomorph.shearMulRight_coe :
 lean 3 declaration is
   forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (fun (_x : Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) => (Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (Homeomorph.hasCoeToFun.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (Homeomorph.symm.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3))) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Prod.fst.{u1, u1} G G z)) (Prod.snd.{u1, u1} G G z)))
 but is expected to have type
-  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (forall (ᾰ : Prod.{u1, u1} G G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.symm.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3))) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) (Prod.fst.{u1, u1} G G z)) (Prod.snd.{u1, u1} G G z)))
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.symm.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3))) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) (Prod.fst.{u1, u1} G G z)) (Prod.snd.{u1, u1} G G z)))
 Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right_symm_coe Homeomorph.shearMulRight_symm_coeₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_symm_coe :
Diff
@@ -78,7 +78,7 @@ protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.110 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.112 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.110 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.112) a)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113) a)
 Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_left Homeomorph.coe_mulLeftₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (· * ·) a :=
@@ -1009,7 +1009,7 @@ variable {G}
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), (Inducing.{u2, u1} H G _inst_6 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_7))) f)) -> (TopologicalGroup.{u2} H _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align inducing.topological_group Inducing.topologicalGroupₓ'. -/
 @[to_additive]
 protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalSpace H]
@@ -1023,7 +1023,7 @@ protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalS
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), TopologicalGroup.{u2} H (TopologicalSpace.induced.{u2, u1} H G (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_6))) f) _inst_1) _inst_5
 but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
 Case conversion may be inaccurate. Consider using '#align topological_group_induced topologicalGroup_inducedₓ'. -/
 @[to_additive]
 protected theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClass F H G] (f : F) :
@@ -1109,7 +1109,7 @@ theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.hasTop.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.hasTop.{u2} H _inst_5))))
 but is expected to have type
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
 Case conversion may be inaccurate. Consider using '#align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroupₓ'. -/
 @[to_additive]
 theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H]
@@ -1236,7 +1236,7 @@ theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5907 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5909 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5907 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5909) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5916 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5918 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5916 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5918) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds map_mul_left_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
@@ -1248,7 +1248,7 @@ theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5980 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5982 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5980 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5982) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5989 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5991 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5989 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5991) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds_one map_mul_left_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
@@ -1313,7 +1313,7 @@ theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u3}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toHasMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f) (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_2)))))))) -> (Continuous.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f))
 but is expected to have type
-  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
+  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
 Case conversion may be inaccurate. Consider using '#align continuous_of_continuous_at_one continuous_of_continuousAt_oneₓ'. -/
 /-- A monoid homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) from a
 topological group to a topological monoid is continuous provided that it is continuous at one. See
@@ -1381,7 +1381,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7105 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7107 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7105 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7107)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7125 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7127 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7125 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7127)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
@@ -1404,7 +1404,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7393 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7395 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7393 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7395)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7413 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7415 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7413 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7415)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
@@ -1430,7 +1430,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7709 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7711 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7709 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7711)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7729 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7731 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7729 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7731)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9522 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9524 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9522 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9524) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9542 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9542 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9564 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9566 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9564 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9566) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9584 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9586 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9584 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9586) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
@@ -2193,7 +2193,7 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S))) (Subgroup.mulAction.{u1, u1} G _inst_2 G (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) S)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
@@ -2219,7 +2219,7 @@ attribute [local semireducible] MulOpposite
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)))) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
Diff
@@ -1009,7 +1009,7 @@ variable {G}
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), (Inducing.{u2, u1} H G _inst_6 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_7))) f)) -> (TopologicalGroup.{u2} H _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align inducing.topological_group Inducing.topologicalGroupₓ'. -/
 @[to_additive]
 protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalSpace H]
@@ -1023,7 +1023,7 @@ protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalS
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), TopologicalGroup.{u2} H (TopologicalSpace.induced.{u2, u1} H G (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_6))) f) _inst_1) _inst_5
 but is expected to have type
-  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
 Case conversion may be inaccurate. Consider using '#align topological_group_induced topologicalGroup_inducedₓ'. -/
 @[to_additive]
 protected theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClass F H G] (f : F) :
@@ -1109,7 +1109,7 @@ theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h
 lean 3 declaration is
   forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.hasTop.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.hasTop.{u2} H _inst_5))))
 but is expected to have type
-  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
 Case conversion may be inaccurate. Consider using '#align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroupₓ'. -/
 @[to_additive]
 theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H]
@@ -1313,7 +1313,7 @@ theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u3}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toHasMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f) (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_2)))))))) -> (Continuous.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f))
 but is expected to have type
-  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
+  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
 Case conversion may be inaccurate. Consider using '#align continuous_of_continuous_at_one continuous_of_continuousAt_oneₓ'. -/
 /-- A monoid homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) from a
 topological group to a topological monoid is continuous provided that it is continuous at one. See
@@ -2193,7 +2193,7 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S))) (Subgroup.mulAction.{u1, u1} G _inst_2 G (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) S)))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
@@ -2219,7 +2219,7 @@ attribute [local semireducible] MulOpposite
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)))) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
 Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
Diff
@@ -78,7 +78,7 @@ protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113) a)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.110 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.112 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.110 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.112) a)
 Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_left Homeomorph.coe_mulLeftₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (· * ·) a :=
@@ -1236,7 +1236,7 @@ theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5908 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5910 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5908 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5910) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5907 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5909 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5907 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5909) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds map_mul_left_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
@@ -1248,7 +1248,7 @@ theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5981 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5983 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5981 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5983) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5980 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5982 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5980 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5982) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
 Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds_one map_mul_left_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
@@ -1381,7 +1381,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7106 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7108 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7106 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7108)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7105 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7107 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7105 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7107)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
@@ -1404,7 +1404,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7394 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7396 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7394 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7396)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7393 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7395 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7393 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7395)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
@@ -1430,7 +1430,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7710 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7712 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7710 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7712)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7709 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7711 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7709 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7711)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9523 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9525 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9523 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9525) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9522 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9524 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9522 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9524) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9565 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9567 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9565 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9567) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9564 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9566 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9564 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9566) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
Diff
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9502 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9504 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9502 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9504) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9523 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9525 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9523 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9525) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9565 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9567 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9565 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9567) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
Diff
@@ -1381,7 +1381,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6927 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6929 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6927 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6929)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7106 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7108 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7106 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7108)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
@@ -1404,7 +1404,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7215 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7217 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7215 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7217)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7394 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7396 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7394 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7396)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
 Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
@@ -1430,7 +1430,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7531 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7533 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7531 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7533)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7710 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7712 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7710 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7712)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
 Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
@@ -1697,7 +1697,7 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9323 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9325 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9323 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9325) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9502 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9504 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9502 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9504) a)
 Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
@@ -1709,7 +1709,7 @@ theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9365 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9367 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9365 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9367) a)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_2 _inst_1] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9544 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9546) a)
 Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
 
 ! This file was ported from Lean 3 source module topology.algebra.group.basic
-! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
+! leanprover-community/mathlib commit c10e724be91096453ee3db13862b9fb9a992fef2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -2510,6 +2510,23 @@ instance QuotientGroup.secondCountableTopology [SecondCountableTopology G] :
 
 end Quotient
 
+/- warning: to_units_homeomorph -> toUnits_homeomorph is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : TopologicalSpace.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_2 (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))], Homeomorph.{u1, u1} G (Units.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _inst_2 (Units.topologicalSpace.{u1} G _inst_2 (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 : ContinuousInv.{u1} G _inst_2 (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1))))], Homeomorph.{u1, u1} G (Units.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _inst_2 (Units.instTopologicalSpaceUnits.{u1} G _inst_2 (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))
+Case conversion may be inaccurate. Consider using '#align to_units_homeomorph toUnits_homeomorphₓ'. -/
+/-- If `G` is a group with topological `⁻¹`, then it is homeomorphic to its units. -/
+@[to_additive
+      " If `G` is an additive group with topological negation, then it is homeomorphic to\nits additive units."]
+def toUnits_homeomorph [Group G] [TopologicalSpace G] [ContinuousInv G] : G ≃ₜ Gˣ
+    where
+  toEquiv := toUnits.toEquiv
+  continuous_toFun := Units.continuous_iff.2 ⟨continuous_id, continuous_inv⟩
+  continuous_invFun := Units.continuous_val
+#align to_units_homeomorph toUnits_homeomorph
+#align to_add_units_homeomorph toAddUnits_homeomorph
+
 namespace Units
 
 open MulOpposite (continuous_op continuous_unop)
Diff
@@ -2144,8 +2144,8 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
   refine' ⟨closure U, mem_of_superset hU subset_closure, isClosed_closure, _⟩
   calc
     closure U ⊆ closure U * interior V := subset_mul_left _ (mem_interior_iff_mem_nhds.2 hV)
-    _ = U * interior V := is_open_interior.closure_mul U
-    _ ⊆ U * V := mul_subset_mul_left interior_subset
+    _ = U * interior V := (is_open_interior.closure_mul U)
+    _ ⊆ U * V := (mul_subset_mul_left interior_subset)
     _ ⊆ s := hUV
     
 #align topological_group.regular_space TopologicalGroup.regularSpace
@@ -2409,10 +2409,10 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
     calc
       closure V = {(1 : G)} * closure V := by simp only [singleton_mul, one_mul, image_id']
       _ ⊆ interior V * closure V :=
-        mul_subset_mul_right
-          (by simpa only [singleton_subset_iff] using mem_interior_iff_mem_nhds.2 Vnhds)
-      _ = interior V * V := is_open_interior.mul_closure _
-      _ ⊆ V * V := mul_subset_mul_right interior_subset
+        (mul_subset_mul_right
+          (by simpa only [singleton_subset_iff] using mem_interior_iff_mem_nhds.2 Vnhds))
+      _ = interior V * V := (is_open_interior.mul_closure _)
+      _ ⊆ V * V := (mul_subset_mul_right interior_subset)
       _ ⊆ L := by
         rintro x ⟨y, z, yv, zv, rfl⟩
         exact hV _ yv _ zv
Diff
@@ -584,9 +584,9 @@ theorem continuousInv_infᵢ {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @Co
 
 /- warning: has_continuous_inv_inf -> continuousInv_inf is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
 Case conversion may be inaccurate. Consider using '#align has_continuous_inv_inf continuousInv_infₓ'. -/
 @[to_additive]
 theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousInv G t₁ _)
@@ -2582,9 +2582,9 @@ theorem topologicalGroup_infᵢ {ts' : ι → TopologicalSpace G}
 
 /- warning: topological_group_inf -> topologicalGroup_inf is a dubious translation:
 lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (Inf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
 Case conversion may be inaccurate. Consider using '#align topological_group_inf topologicalGroup_infₓ'. -/
 @[to_additive]
 theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @TopologicalGroup G t₁ _)
@@ -2758,13 +2758,13 @@ instance : BoundedOrder (GroupTopology α) where
   bot_le x := show ⊥ ≤ x.toTopologicalSpace from bot_le
 
 @[to_additive]
-instance : HasInf (GroupTopology α) where inf x y := ⟨x.1 ⊓ y.1, topologicalGroup_inf x.2 y.2⟩
+instance : Inf (GroupTopology α) where inf x y := ⟨x.1 ⊓ y.1, topologicalGroup_inf x.2 y.2⟩
 
 /- warning: group_topology.to_topological_space_inf -> GroupTopology.toTopologicalSpace_inf is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (HasInf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) x y)) (HasInf.inf.{u1} (TopologicalSpace.{u1} α) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} α) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Inf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) x y)) (Inf.inf.{u1} (TopologicalSpace.{u1} α) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} α) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (HasInf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instHasInfGroupTopology.{u1} α _inst_1) x y)) (HasInf.inf.{u1} (TopologicalSpace.{u1} α) (Lattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Inf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instInfGroupTopology.{u1} α _inst_1) x y)) (Inf.inf.{u1} (TopologicalSpace.{u1} α) (Lattice.toInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
 Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_inf GroupTopology.toTopologicalSpace_infₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_inf (x y : GroupTopology α) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
 
 ! This file was ported from Lean 3 source module topology.algebra.group.basic
-! leanprover-community/mathlib commit 8c8c544bf24ced19b1e76c34bb3262bdae620f82
+! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -17,6 +17,9 @@ import Mathbin.Topology.Algebra.Constructions
 /-!
 # Topological groups
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines the following typeclasses:
 
 * `topological_group`, `topological_add_group`: multiplicative and additive topological groups,
Diff
@@ -56,6 +56,12 @@ In this section we prove a few statements about groups with continuous `(*)`.
 
 variable [TopologicalSpace G] [Group G] [ContinuousMul G]
 
+/- warning: homeomorph.mul_left -> Homeomorph.mulLeft is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
+Case conversion may be inaccurate. Consider using '#align homeomorph.mul_left Homeomorph.mulLeftₓ'. -/
 /-- Multiplication from the left in a topological group as a homeomorphism. -/
 @[to_additive "Addition from the left in a topological additive group as a homeomorphism."]
 protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
@@ -65,44 +71,86 @@ protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
 #align homeomorph.mul_left Homeomorph.mulLeft
 #align homeomorph.add_left Homeomorph.addLeft
 
+/- warning: homeomorph.coe_mul_left -> Homeomorph.coe_mulLeft is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.111 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.113) a)
+Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_left Homeomorph.coe_mulLeftₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (· * ·) a :=
   rfl
 #align homeomorph.coe_mul_left Homeomorph.coe_mulLeft
-#align homeomorph.coe_add_left Homeomorph.coe_add_left
+#align homeomorph.coe_add_left Homeomorph.coe_addLeft
 
+/- warning: homeomorph.mul_left_symm -> Homeomorph.mulLeft_symm is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulLeft.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a))
+Case conversion may be inaccurate. Consider using '#align homeomorph.mul_left_symm Homeomorph.mulLeft_symmₓ'. -/
 @[to_additive]
 theorem Homeomorph.mulLeft_symm (a : G) : (Homeomorph.mulLeft a).symm = Homeomorph.mulLeft a⁻¹ :=
   by
   ext
   rfl
 #align homeomorph.mul_left_symm Homeomorph.mulLeft_symm
-#align homeomorph.add_left_symm Homeomorph.add_left_symm
+#align homeomorph.add_left_symm Homeomorph.addLeft_symm
 
+/- warning: is_open_map_mul_left -> isOpenMap_mul_left is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
+Case conversion may be inaccurate. Consider using '#align is_open_map_mul_left isOpenMap_mul_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_mul_left (a : G) : IsOpenMap fun x => a * x :=
   (Homeomorph.mulLeft a).IsOpenMap
 #align is_open_map_mul_left isOpenMap_mul_left
 #align is_open_map_add_left isOpenMap_add_left
 
+/- warning: is_open.left_coset -> IsOpen.leftCoset is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
+Case conversion may be inaccurate. Consider using '#align is_open.left_coset IsOpen.leftCosetₓ'. -/
 @[to_additive IsOpen.left_add_coset]
 theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset x U) :=
   isOpenMap_mul_left x _ h
 #align is_open.left_coset IsOpen.leftCoset
 #align is_open.left_add_coset IsOpen.left_add_coset
 
+/- warning: is_closed_map_mul_left -> isClosedMap_mul_left is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a x)
+Case conversion may be inaccurate. Consider using '#align is_closed_map_mul_left isClosedMap_mul_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_mul_left (a : G) : IsClosedMap fun x => a * x :=
   (Homeomorph.mulLeft a).IsClosedMap
 #align is_closed_map_mul_left isClosedMap_mul_left
 #align is_closed_map_add_left isClosedMap_add_left
 
+/- warning: is_closed.left_coset -> IsClosed.leftCoset is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (leftCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) x U))
+Case conversion may be inaccurate. Consider using '#align is_closed.left_coset IsClosed.leftCosetₓ'. -/
 @[to_additive IsClosed.left_add_coset]
 theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (leftCoset x U) :=
   isClosedMap_mul_left x _ h
 #align is_closed.left_coset IsClosed.leftCoset
 #align is_closed.left_add_coset IsClosed.left_add_coset
 
+/- warning: homeomorph.mul_right -> Homeomorph.mulRight is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (Homeomorph.{u1, u1} G G _inst_1 _inst_1)
+Case conversion may be inaccurate. Consider using '#align homeomorph.mul_right Homeomorph.mulRightₓ'. -/
 /-- Multiplication from the right in a topological group as a homeomorphism. -/
 @[to_additive "Addition from the right in a topological additive group as a homeomorphism."]
 protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
@@ -112,44 +160,86 @@ protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
 #align homeomorph.mul_right Homeomorph.mulRight
 #align homeomorph.add_right Homeomorph.addRight
 
+/- warning: homeomorph.coe_mul_right -> Homeomorph.coe_mulRight is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (G -> G) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (fun (_x : Homeomorph.{u1, u1} G G _inst_1 _inst_1) => G -> G) (Homeomorph.hasCoeToFun.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (fun (g : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g a)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (forall (ᾰ : G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G (fun (_x : G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : G) => G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) G G (Homeomorph.instEquivLikeHomeomorph.{u1, u1} G G _inst_1 _inst_1))) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (fun (g : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g a)
+Case conversion may be inaccurate. Consider using '#align homeomorph.coe_mul_right Homeomorph.coe_mulRightₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.coe_mulRight (a : G) : ⇑(Homeomorph.mulRight a) = fun g => g * a :=
   rfl
 #align homeomorph.coe_mul_right Homeomorph.coe_mulRight
-#align homeomorph.coe_add_right Homeomorph.coe_add_right
+#align homeomorph.coe_add_right Homeomorph.coe_addRight
 
+/- warning: homeomorph.mul_right_symm -> Homeomorph.mulRight_symm is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), Eq.{succ u1} (Homeomorph.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.symm.{u1, u1} G G _inst_1 _inst_1 (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 a)) (Homeomorph.mulRight.{u1} G _inst_1 _inst_2 _inst_3 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a))
+Case conversion may be inaccurate. Consider using '#align homeomorph.mul_right_symm Homeomorph.mulRight_symmₓ'. -/
 @[to_additive]
 theorem Homeomorph.mulRight_symm (a : G) : (Homeomorph.mulRight a).symm = Homeomorph.mulRight a⁻¹ :=
   by
   ext
   rfl
 #align homeomorph.mul_right_symm Homeomorph.mulRight_symm
-#align homeomorph.add_right_symm Homeomorph.add_right_symm
+#align homeomorph.add_right_symm Homeomorph.addRight_symm
 
+/- warning: is_open_map_mul_right -> isOpenMap_mul_right is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
+Case conversion may be inaccurate. Consider using '#align is_open_map_mul_right isOpenMap_mul_rightₓ'. -/
 @[to_additive]
 theorem isOpenMap_mul_right (a : G) : IsOpenMap fun x => x * a :=
   (Homeomorph.mulRight a).IsOpenMap
 #align is_open_map_mul_right isOpenMap_mul_right
 #align is_open_map_add_right isOpenMap_add_right
 
+/- warning: is_open.right_coset -> IsOpen.rightCoset is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsOpen.{u1} G _inst_1 U) -> (forall (x : G), IsOpen.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
+Case conversion may be inaccurate. Consider using '#align is_open.right_coset IsOpen.rightCosetₓ'. -/
 @[to_additive IsOpen.right_add_coset]
 theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (rightCoset U x) :=
   isOpenMap_mul_right x _ h
 #align is_open.right_coset IsOpen.rightCoset
 #align is_open.right_add_coset IsOpen.right_add_coset
 
+/- warning: is_closed_map_mul_right -> isClosedMap_mul_right is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G), IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a)
+Case conversion may be inaccurate. Consider using '#align is_closed_map_mul_right isClosedMap_mul_rightₓ'. -/
 @[to_additive]
 theorem isClosedMap_mul_right (a : G) : IsClosedMap fun x => x * a :=
   (Homeomorph.mulRight a).IsClosedMap
 #align is_closed_map_mul_right isClosedMap_mul_right
 #align is_closed_map_add_right isClosedMap_add_right
 
+/- warning: is_closed.right_coset -> IsClosed.rightCoset is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] {U : Set.{u1} G}, (IsClosed.{u1} G _inst_1 U) -> (forall (x : G), IsClosed.{u1} G _inst_1 (rightCoset.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) U x))
+Case conversion may be inaccurate. Consider using '#align is_closed.right_coset IsClosed.rightCosetₓ'. -/
 @[to_additive IsClosed.right_add_coset]
 theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rightCoset U x) :=
   isClosedMap_mul_right x _ h
 #align is_closed.right_coset IsClosed.rightCoset
 #align is_closed.right_add_coset IsClosed.right_add_coset
 
+/- warning: discrete_topology_of_open_singleton_one -> discreteTopology_of_open_singleton_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsOpen.{u1} G _inst_1 (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 _inst_2))))))))) -> (DiscreteTopology.{u1} G _inst_1)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], (IsOpen.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2)))))))) -> (DiscreteTopology.{u1} G _inst_1)
+Case conversion may be inaccurate. Consider using '#align discrete_topology_of_open_singleton_one discreteTopology_of_open_singleton_oneₓ'. -/
 @[to_additive]
 theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : DiscreteTopology G :=
   by
@@ -164,6 +254,12 @@ theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : Disc
 #align discrete_topology_of_open_singleton_one discreteTopology_of_open_singleton_one
 #align discrete_topology_of_open_singleton_zero discreteTopology_of_open_singleton_zero
 
+/- warning: discrete_topology_iff_open_singleton_one -> discreteTopology_iff_open_singleton_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], Iff (DiscreteTopology.{u1} G _inst_1) (IsOpen.{u1} G _inst_1 (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 _inst_2)))))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : ContinuousMul.{u1} G _inst_1 (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], Iff (DiscreteTopology.{u1} G _inst_1) (IsOpen.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align discrete_topology_iff_open_singleton_one discreteTopology_iff_open_singleton_oneₓ'. -/
 @[to_additive]
 theorem discreteTopology_iff_open_singleton_one : DiscreteTopology G ↔ IsOpen ({1} : Set G) :=
   ⟨fun h => forall_open_iff_discrete.mpr h {1}, discreteTopology_of_open_singleton_one⟩
@@ -177,54 +273,67 @@ end ContinuousMulGroup
 -/
 
 
+#print ContinuousNeg /-
 /-- Basic hypothesis to talk about a topological additive group. A topological additive group
 over `M`, for example, is obtained by requiring the instances `add_group M` and
 `has_continuous_add M` and `has_continuous_neg M`. -/
-class HasContinuousNeg (G : Type u) [TopologicalSpace G] [Neg G] : Prop where
+class ContinuousNeg (G : Type u) [TopologicalSpace G] [Neg G] : Prop where
   continuous_neg : Continuous fun a : G => -a
-#align has_continuous_neg HasContinuousNeg
+#align has_continuous_neg ContinuousNeg
+-/
 
+#print ContinuousInv /-
 /-- Basic hypothesis to talk about a topological group. A topological group over `M`, for example,
 is obtained by requiring the instances `group M` and `has_continuous_mul M` and
 `has_continuous_inv M`. -/
 @[to_additive]
-class HasContinuousInv (G : Type u) [TopologicalSpace G] [Inv G] : Prop where
+class ContinuousInv (G : Type u) [TopologicalSpace G] [Inv G] : Prop where
   continuous_inv : Continuous fun a : G => a⁻¹
-#align has_continuous_inv HasContinuousInv
-#align has_continuous_neg HasContinuousNeg
+#align has_continuous_inv ContinuousInv
+#align has_continuous_neg ContinuousNeg
+-/
 
-export HasContinuousInv (continuous_inv)
+export ContinuousInv (continuous_inv)
 
-export HasContinuousNeg (continuous_neg)
+export ContinuousNeg (continuous_neg)
 
 section ContinuousInv
 
-variable [TopologicalSpace G] [Inv G] [HasContinuousInv G]
+variable [TopologicalSpace G] [Inv G] [ContinuousInv G]
 
+#print continuousOn_inv /-
 @[to_additive]
 theorem continuousOn_inv {s : Set G} : ContinuousOn Inv.inv s :=
   continuous_inv.ContinuousOn
 #align continuous_on_inv continuousOn_inv
 #align continuous_on_neg continuousOn_neg
+-/
 
+#print continuousWithinAt_inv /-
 @[to_additive]
 theorem continuousWithinAt_inv {s : Set G} {x : G} : ContinuousWithinAt Inv.inv s x :=
   continuous_inv.ContinuousWithinAt
 #align continuous_within_at_inv continuousWithinAt_inv
 #align continuous_within_at_neg continuousWithinAt_neg
+-/
 
+#print continuousAt_inv /-
 @[to_additive]
 theorem continuousAt_inv {x : G} : ContinuousAt Inv.inv x :=
   continuous_inv.ContinuousAt
 #align continuous_at_inv continuousAt_inv
 #align continuous_at_neg continuousAt_neg
+-/
 
+#print tendsto_inv /-
 @[to_additive]
 theorem tendsto_inv (a : G) : Tendsto Inv.inv (𝓝 a) (𝓝 a⁻¹) :=
   continuousAt_inv
 #align tendsto_inv tendsto_inv
 #align tendsto_neg tendsto_neg
+-/
 
+#print Filter.Tendsto.inv /-
 /-- If a function converges to a value in a multiplicative topological group, then its inverse
 converges to the inverse of this value. For the version in normed fields assuming additionally
 that the limit is nonzero, use `tendsto.inv'`. -/
@@ -235,69 +344,90 @@ theorem Filter.Tendsto.inv {f : α → G} {l : Filter α} {y : G} (h : Tendsto f
   (continuous_inv.Tendsto y).comp h
 #align filter.tendsto.inv Filter.Tendsto.inv
 #align filter.tendsto.neg Filter.Tendsto.neg
+-/
 
 variable [TopologicalSpace α] {f : α → G} {s : Set α} {x : α}
 
+#print Continuous.inv /-
 @[continuity, to_additive]
 theorem Continuous.inv (hf : Continuous f) : Continuous fun x => (f x)⁻¹ :=
   continuous_inv.comp hf
 #align continuous.inv Continuous.inv
 #align continuous.neg Continuous.neg
+-/
 
+#print ContinuousAt.inv /-
 @[to_additive]
 theorem ContinuousAt.inv (hf : ContinuousAt f x) : ContinuousAt (fun x => (f x)⁻¹) x :=
   continuousAt_inv.comp hf
 #align continuous_at.inv ContinuousAt.inv
 #align continuous_at.neg ContinuousAt.neg
+-/
 
+#print ContinuousOn.inv /-
 @[to_additive]
 theorem ContinuousOn.inv (hf : ContinuousOn f s) : ContinuousOn (fun x => (f x)⁻¹) s :=
   continuous_inv.comp_continuousOn hf
 #align continuous_on.inv ContinuousOn.inv
 #align continuous_on.neg ContinuousOn.neg
+-/
 
+#print ContinuousWithinAt.inv /-
 @[to_additive]
 theorem ContinuousWithinAt.inv (hf : ContinuousWithinAt f s x) :
     ContinuousWithinAt (fun x => (f x)⁻¹) s x :=
   hf.inv
 #align continuous_within_at.inv ContinuousWithinAt.inv
 #align continuous_within_at.neg ContinuousWithinAt.neg
+-/
 
 @[to_additive]
-instance [TopologicalSpace H] [Inv H] [HasContinuousInv H] : HasContinuousInv (G × H) :=
+instance [TopologicalSpace H] [Inv H] [ContinuousInv H] : ContinuousInv (G × H) :=
   ⟨continuous_inv.fst'.prod_mk continuous_inv.snd'⟩
 
 variable {ι : Type _}
 
+#print Pi.continuousInv /-
 @[to_additive]
-instance Pi.hasContinuousInv {C : ι → Type _} [∀ i, TopologicalSpace (C i)] [∀ i, Inv (C i)]
-    [∀ i, HasContinuousInv (C i)] : HasContinuousInv (∀ i, C i)
+instance Pi.continuousInv {C : ι → Type _} [∀ i, TopologicalSpace (C i)] [∀ i, Inv (C i)]
+    [∀ i, ContinuousInv (C i)] : ContinuousInv (∀ i, C i)
     where continuous_inv := continuous_pi fun i => (continuous_apply i).inv
-#align pi.has_continuous_inv Pi.hasContinuousInv
-#align pi.has_continuous_neg Pi.has_continuous_neg
+#align pi.has_continuous_inv Pi.continuousInv
+#align pi.has_continuous_neg Pi.continuousNeg
+-/
 
+#print Pi.has_continuous_inv' /-
 /-- A version of `pi.has_continuous_inv` for non-dependent functions. It is needed because sometimes
 Lean fails to use `pi.has_continuous_inv` for non-dependent functions. -/
 @[to_additive
       "A version of `pi.has_continuous_neg` for non-dependent functions. It is needed\nbecause sometimes Lean fails to use `pi.has_continuous_neg` for non-dependent functions."]
-instance Pi.has_continuous_inv' : HasContinuousInv (ι → G) :=
-  Pi.hasContinuousInv
+instance Pi.has_continuous_inv' : ContinuousInv (ι → G) :=
+  Pi.continuousInv
 #align pi.has_continuous_inv' Pi.has_continuous_inv'
 #align pi.has_continuous_neg' Pi.has_continuous_neg'
+-/
 
+#print continuousInv_of_discreteTopology /-
 @[to_additive]
-instance (priority := 100) hasContinuousInv_of_discreteTopology [TopologicalSpace H] [Inv H]
-    [DiscreteTopology H] : HasContinuousInv H :=
+instance (priority := 100) continuousInv_of_discreteTopology [TopologicalSpace H] [Inv H]
+    [DiscreteTopology H] : ContinuousInv H :=
   ⟨continuous_of_discreteTopology⟩
-#align has_continuous_inv_of_discrete_topology hasContinuousInv_of_discreteTopology
-#align has_continuous_neg_of_discrete_topology has_continuous_neg_of_discreteTopology
+#align has_continuous_inv_of_discrete_topology continuousInv_of_discreteTopology
+#align has_continuous_neg_of_discrete_topology continuousNeg_of_discreteTopology
+-/
 
 section PointwiseLimits
 
 variable (G₁ G₂ : Type _) [TopologicalSpace G₂] [T2Space G₂]
 
+/- warning: is_closed_set_of_map_inv -> isClosed_setOf_map_inv is a dubious translation:
+lean 3 declaration is
+  forall (G₁ : Type.{u1}) (G₂ : Type.{u2}) [_inst_5 : TopologicalSpace.{u2} G₂] [_inst_6 : T2Space.{u2} G₂ _inst_5] [_inst_7 : Inv.{u1} G₁] [_inst_8 : Inv.{u2} G₂] [_inst_9 : ContinuousInv.{u2} G₂ _inst_5 _inst_8], IsClosed.{max u1 u2} (G₁ -> G₂) (Pi.topologicalSpace.{u1, u2} G₁ (fun (ᾰ : G₁) => G₂) (fun (a : G₁) => _inst_5)) (setOf.{max u1 u2} (G₁ -> G₂) (fun (f : G₁ -> G₂) => forall (x : G₁), Eq.{succ u2} G₂ (f (Inv.inv.{u1} G₁ _inst_7 x)) (Inv.inv.{u2} G₂ _inst_8 (f x))))
+but is expected to have type
+  forall (G₁ : Type.{u2}) (G₂ : Type.{u1}) [_inst_5 : TopologicalSpace.{u1} G₂] [_inst_6 : T2Space.{u1} G₂ _inst_5] [_inst_7 : Inv.{u2} G₁] [_inst_8 : Inv.{u1} G₂] [_inst_9 : ContinuousInv.{u1} G₂ _inst_5 _inst_8], IsClosed.{max u2 u1} (G₁ -> G₂) (Pi.topologicalSpace.{u2, u1} G₁ (fun (ᾰ : G₁) => G₂) (fun (a : G₁) => _inst_5)) (setOf.{max u2 u1} (G₁ -> G₂) (fun (f : G₁ -> G₂) => forall (x : G₁), Eq.{succ u1} G₂ (f (Inv.inv.{u2} G₁ _inst_7 x)) (Inv.inv.{u1} G₂ _inst_8 (f x))))
+Case conversion may be inaccurate. Consider using '#align is_closed_set_of_map_inv isClosed_setOf_map_invₓ'. -/
 @[to_additive]
-theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [HasContinuousInv G₂] :
+theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
     IsClosed { f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹ } :=
   by
   simp only [set_of_forall]
@@ -307,18 +437,24 @@ theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [HasContinuousInv G₂] :
 
 end PointwiseLimits
 
-instance [TopologicalSpace H] [Inv H] [HasContinuousInv H] : HasContinuousNeg (Additive H)
+instance [TopologicalSpace H] [Inv H] [ContinuousInv H] : ContinuousNeg (Additive H)
     where continuous_neg := @continuous_inv H _ _ _
 
-instance [TopologicalSpace H] [Neg H] [HasContinuousNeg H] : HasContinuousInv (Multiplicative H)
+instance [TopologicalSpace H] [Neg H] [ContinuousNeg H] : ContinuousInv (Multiplicative H)
     where continuous_inv := @continuous_neg H _ _ _
 
 end ContinuousInv
 
 section ContinuousInvolutiveInv
 
-variable [TopologicalSpace G] [InvolutiveInv G] [HasContinuousInv G] {s : Set G}
+variable [TopologicalSpace G] [InvolutiveInv G] [ContinuousInv G] {s : Set G}
 
+/- warning: is_compact.inv -> IsCompact.inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsCompact.{u1} G _inst_1 s) -> (IsCompact.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsCompact.{u1} G _inst_1 s) -> (IsCompact.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
+Case conversion may be inaccurate. Consider using '#align is_compact.inv IsCompact.invₓ'. -/
 @[to_additive]
 theorem IsCompact.inv (hs : IsCompact s) : IsCompact s⁻¹ :=
   by
@@ -329,22 +465,40 @@ theorem IsCompact.inv (hs : IsCompact s) : IsCompact s⁻¹ :=
 
 variable (G)
 
+/- warning: homeomorph.inv -> Homeomorph.inv is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_4 : TopologicalSpace.{u1} G] [_inst_5 : InvolutiveInv.{u1} G] [_inst_6 : ContinuousInv.{u1} G _inst_4 (InvolutiveInv.toHasInv.{u1} G _inst_5)], Homeomorph.{u1, u1} G G _inst_4 _inst_4
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_4 : TopologicalSpace.{u1} G] [_inst_5 : InvolutiveInv.{u1} G] [_inst_6 : ContinuousInv.{u1} G _inst_4 (InvolutiveInv.toInv.{u1} G _inst_5)], Homeomorph.{u1, u1} G G _inst_4 _inst_4
+Case conversion may be inaccurate. Consider using '#align homeomorph.inv Homeomorph.invₓ'. -/
 /-- Inversion in a topological group as a homeomorphism. -/
 @[to_additive "Negation in a topological group as a homeomorphism."]
-protected def Homeomorph.inv (G : Type _) [TopologicalSpace G] [InvolutiveInv G]
-    [HasContinuousInv G] : G ≃ₜ G :=
+protected def Homeomorph.inv (G : Type _) [TopologicalSpace G] [InvolutiveInv G] [ContinuousInv G] :
+    G ≃ₜ G :=
   { Equiv.inv G with
     continuous_toFun := continuous_inv
     continuous_invFun := continuous_inv }
 #align homeomorph.inv Homeomorph.inv
 #align homeomorph.neg Homeomorph.neg
 
+/- warning: is_open_map_inv -> isOpenMap_inv is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)], IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)], IsOpenMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2))
+Case conversion may be inaccurate. Consider using '#align is_open_map_inv isOpenMap_invₓ'. -/
 @[to_additive]
 theorem isOpenMap_inv : IsOpenMap (Inv.inv : G → G) :=
   (Homeomorph.inv _).IsOpenMap
 #align is_open_map_inv isOpenMap_inv
 #align is_open_map_neg isOpenMap_neg
 
+/- warning: is_closed_map_inv -> isClosedMap_inv is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)], IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)], IsClosedMap.{u1, u1} G G _inst_1 _inst_1 (Inv.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2))
+Case conversion may be inaccurate. Consider using '#align is_closed_map_inv isClosedMap_invₓ'. -/
 @[to_additive]
 theorem isClosedMap_inv : IsClosedMap (Inv.inv : G → G) :=
   (Homeomorph.inv _).IsClosedMap
@@ -353,18 +507,36 @@ theorem isClosedMap_inv : IsClosedMap (Inv.inv : G → G) :=
 
 variable {G}
 
+/- warning: is_open.inv -> IsOpen.inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsOpen.{u1} G _inst_1 s) -> (IsOpen.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsOpen.{u1} G _inst_1 s) -> (IsOpen.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
+Case conversion may be inaccurate. Consider using '#align is_open.inv IsOpen.invₓ'. -/
 @[to_additive]
 theorem IsOpen.inv (hs : IsOpen s) : IsOpen s⁻¹ :=
   hs.Preimage continuous_inv
 #align is_open.inv IsOpen.inv
 #align is_open.neg IsOpen.neg
 
+/- warning: is_closed.inv -> IsClosed.inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsClosed.{u1} G _inst_1 s) -> (IsClosed.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] {s : Set.{u1} G}, (IsClosed.{u1} G _inst_1 s) -> (IsClosed.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
+Case conversion may be inaccurate. Consider using '#align is_closed.inv IsClosed.invₓ'. -/
 @[to_additive]
 theorem IsClosed.inv (hs : IsClosed s) : IsClosed s⁻¹ :=
   hs.Preimage continuous_inv
 #align is_closed.inv IsClosed.inv
 #align is_closed.neg IsClosed.neg
 
+/- warning: inv_closure -> inv_closure is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toHasInv.{u1} G _inst_2)] (s : Set.{u1} G), Eq.{succ u1} (Set.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) (closure.{u1} G _inst_1 s)) (closure.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toHasInv.{u1} G _inst_2)) s))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : InvolutiveInv.{u1} G] [_inst_3 : ContinuousInv.{u1} G _inst_1 (InvolutiveInv.toInv.{u1} G _inst_2)] (s : Set.{u1} G), Eq.{succ u1} (Set.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) (closure.{u1} G _inst_1 s)) (closure.{u1} G _inst_1 (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvolutiveInv.toInv.{u1} G _inst_2)) s))
+Case conversion may be inaccurate. Consider using '#align inv_closure inv_closureₓ'. -/
 @[to_additive]
 theorem inv_closure : ∀ s : Set G, (closure s)⁻¹ = closure s⁻¹ :=
   (Homeomorph.inv G).preimage_closure
@@ -377,44 +549,67 @@ section LatticeOps
 
 variable {ι' : Sort _} [Inv G]
 
+/- warning: has_continuous_inv_Inf -> continuousInv_infₛ is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (ContinuousInv.{u1} G t _inst_1)) -> (ContinuousInv.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
+Case conversion may be inaccurate. Consider using '#align has_continuous_inv_Inf continuousInv_infₛₓ'. -/
 @[to_additive]
-theorem hasContinuousInv_infₛ {ts : Set (TopologicalSpace G)}
-    (h : ∀ t ∈ ts, @HasContinuousInv G t _) : @HasContinuousInv G (infₛ ts) _ :=
+theorem continuousInv_infₛ {ts : Set (TopologicalSpace G)} (h : ∀ t ∈ ts, @ContinuousInv G t _) :
+    @ContinuousInv G (infₛ ts) _ :=
   {
     continuous_inv :=
       continuous_infₛ_rng.2 fun t ht =>
-        continuous_infₛ_dom ht (@HasContinuousInv.continuous_inv G t _ (h t ht)) }
-#align has_continuous_inv_Inf hasContinuousInv_infₛ
-#align has_continuous_neg_Inf has_continuous_neg_infₛ
-
-@[to_additive]
-theorem hasContinuousInv_infᵢ {ts' : ι' → TopologicalSpace G}
-    (h' : ∀ i, @HasContinuousInv G (ts' i) _) : @HasContinuousInv G (⨅ i, ts' i) _ :=
-  by
+        continuous_infₛ_dom ht (@ContinuousInv.continuous_inv G t _ (h t ht)) }
+#align has_continuous_inv_Inf continuousInv_infₛ
+#align has_continuous_neg_Inf continuousNeg_infₛ
+
+/- warning: has_continuous_inv_infi -> continuousInv_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {ι' : Sort.{u2}} [_inst_1 : Inv.{u1} G] {ts' : ι' -> (TopologicalSpace.{u1} G)}, (forall (i : ι'), ContinuousInv.{u1} G (ts' i) _inst_1) -> (ContinuousInv.{u1} G (infᵢ.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
+but is expected to have type
+  forall {G : Type.{u2}} {ι' : Sort.{u1}} [_inst_1 : Inv.{u2} G] {ts' : ι' -> (TopologicalSpace.{u2} G)}, (forall (i : ι'), ContinuousInv.{u2} G (ts' i) _inst_1) -> (ContinuousInv.{u2} G (infᵢ.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι' (fun (i : ι') => ts' i)) _inst_1)
+Case conversion may be inaccurate. Consider using '#align has_continuous_inv_infi continuousInv_infᵢₓ'. -/
+@[to_additive]
+theorem continuousInv_infᵢ {ts' : ι' → TopologicalSpace G} (h' : ∀ i, @ContinuousInv G (ts' i) _) :
+    @ContinuousInv G (⨅ i, ts' i) _ := by
   rw [← infₛ_range]
-  exact hasContinuousInv_infₛ (set.forall_range_iff.mpr h')
-#align has_continuous_inv_infi hasContinuousInv_infᵢ
-#align has_continuous_neg_infi has_continuous_neg_infᵢ
-
-@[to_additive]
-theorem hasContinuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @HasContinuousInv G t₁ _)
-    (h₂ : @HasContinuousInv G t₂ _) : @HasContinuousInv G (t₁ ⊓ t₂) _ :=
+  exact continuousInv_infₛ (set.forall_range_iff.mpr h')
+#align has_continuous_inv_infi continuousInv_infᵢ
+#align has_continuous_neg_infi continuousNeg_infᵢ
+
+/- warning: has_continuous_inv_inf -> continuousInv_inf is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Inv.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (ContinuousInv.{u1} G t₁ _inst_1) -> (ContinuousInv.{u1} G t₂ _inst_1) -> (ContinuousInv.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
+Case conversion may be inaccurate. Consider using '#align has_continuous_inv_inf continuousInv_infₓ'. -/
+@[to_additive]
+theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousInv G t₁ _)
+    (h₂ : @ContinuousInv G t₂ _) : @ContinuousInv G (t₁ ⊓ t₂) _ :=
   by
   rw [inf_eq_infᵢ]
-  refine' hasContinuousInv_infᵢ fun b => _
+  refine' continuousInv_infᵢ fun b => _
   cases b <;> assumption
-#align has_continuous_inv_inf hasContinuousInv_inf
-#align has_continuous_neg_inf has_continuous_neg_inf
+#align has_continuous_inv_inf continuousInv_inf
+#align has_continuous_neg_inf continuousNeg_inf
 
 end LatticeOps
 
+/- warning: inducing.has_continuous_inv -> Inducing.continuousInv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : Inv.{u1} G] [_inst_2 : Inv.{u2} H] [_inst_3 : TopologicalSpace.{u1} G] [_inst_4 : TopologicalSpace.{u2} H] [_inst_5 : ContinuousInv.{u2} H _inst_4 _inst_2] {f : G -> H}, (Inducing.{u1, u2} G H _inst_3 _inst_4 f) -> (forall (x : G), Eq.{succ u2} H (f (Inv.inv.{u1} G _inst_1 x)) (Inv.inv.{u2} H _inst_2 (f x))) -> (ContinuousInv.{u1} G _inst_3 _inst_1)
+but is expected to have type
+  forall {G : Type.{u2}} {H : Type.{u1}} [_inst_1 : Inv.{u2} G] [_inst_2 : Inv.{u1} H] [_inst_3 : TopologicalSpace.{u2} G] [_inst_4 : TopologicalSpace.{u1} H] [_inst_5 : ContinuousInv.{u1} H _inst_4 _inst_2] {f : G -> H}, (Inducing.{u2, u1} G H _inst_3 _inst_4 f) -> (forall (x : G), Eq.{succ u1} H (f (Inv.inv.{u2} G _inst_1 x)) (Inv.inv.{u1} H _inst_2 (f x))) -> (ContinuousInv.{u2} G _inst_3 _inst_1)
+Case conversion may be inaccurate. Consider using '#align inducing.has_continuous_inv Inducing.continuousInvₓ'. -/
 @[to_additive]
-theorem Inducing.hasContinuousInv {G H : Type _} [Inv G] [Inv H] [TopologicalSpace G]
-    [TopologicalSpace H] [HasContinuousInv H] {f : G → H} (hf : Inducing f)
-    (hf_inv : ∀ x, f x⁻¹ = (f x)⁻¹) : HasContinuousInv G :=
+theorem Inducing.continuousInv {G H : Type _} [Inv G] [Inv H] [TopologicalSpace G]
+    [TopologicalSpace H] [ContinuousInv H] {f : G → H} (hf : Inducing f)
+    (hf_inv : ∀ x, f x⁻¹ = (f x)⁻¹) : ContinuousInv G :=
   ⟨hf.continuous_iff.2 <| by simpa only [(· ∘ ·), hf_inv] using hf.continuous.inv⟩
-#align inducing.has_continuous_inv Inducing.hasContinuousInv
-#align inducing.has_continuous_neg Inducing.has_continuous_neg
+#align inducing.has_continuous_inv Inducing.continuousInv
+#align inducing.has_continuous_neg Inducing.continuousNeg
 
 section TopologicalGroup
 
@@ -427,12 +622,15 @@ that the division operation `λ x y, x * y⁻¹` (resp., subtraction) is continu
 -/
 
 
+#print TopologicalAddGroup /-
 /-- A topological (additive) group is a group in which the addition and negation operations are
 continuous. -/
 class TopologicalAddGroup (G : Type u) [TopologicalSpace G] [AddGroup G] extends ContinuousAdd G,
-  HasContinuousNeg G : Prop
+  ContinuousNeg G : Prop
 #align topological_add_group TopologicalAddGroup
+-/
 
+#print TopologicalGroup /-
 /-- A topological group is a group in which the multiplication and inversion operations are
 continuous.
 
@@ -441,12 +639,19 @@ you should also provide an instance of `uniform_space` and `uniform_group` using
 `topological_group.to_uniform_space` and `topological_comm_group_is_uniform`. -/
 @[to_additive]
 class TopologicalGroup (G : Type _) [TopologicalSpace G] [Group G] extends ContinuousMul G,
-  HasContinuousInv G : Prop
+  ContinuousInv G : Prop
 #align topological_group TopologicalGroup
 #align topological_add_group TopologicalAddGroup
+-/
 
 section Conj
 
+/- warning: conj_act.units_has_continuous_const_smul -> ConjAct.units_continuousConstSMul is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u1} M] [_inst_3 : ContinuousMul.{u1} M _inst_2 (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], ContinuousConstSMul.{u1, u1} (ConjAct.{u1} (Units.{u1} M _inst_1)) M _inst_2 (ConjAct.unitsScalar.{u1} M _inst_1)
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u1} M] [_inst_3 : ContinuousMul.{u1} M _inst_2 (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M _inst_1))], ContinuousConstSMul.{u1, u1} (ConjAct.{u1} (Units.{u1} M _inst_1)) M _inst_2 (ConjAct.unitsScalar.{u1} M _inst_1)
+Case conversion may be inaccurate. Consider using '#align conj_act.units_has_continuous_const_smul ConjAct.units_continuousConstSMulₓ'. -/
 instance ConjAct.units_continuousConstSMul {M} [Monoid M] [TopologicalSpace M] [ContinuousMul M] :
     ContinuousConstSMul (ConjAct Mˣ) M :=
   ⟨fun m => (continuous_const.mul continuous_id).mul continuous_const⟩
@@ -454,31 +659,41 @@ instance ConjAct.units_continuousConstSMul {M} [Monoid M] [TopologicalSpace M] [
 
 variable [TopologicalSpace G] [Inv G] [Mul G] [ContinuousMul G]
 
+/- warning: topological_group.continuous_conj_prod -> TopologicalGroup.continuous_conj_prod is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Inv.{u1} G] [_inst_3 : Mul.{u1} G] [_inst_4 : ContinuousMul.{u1} G _inst_1 _inst_3] [_inst_5 : ContinuousInv.{u1} G _inst_1 _inst_2], Continuous.{u1, u1} (Prod.{u1, u1} G G) G (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) _inst_1 (fun (g : Prod.{u1, u1} G G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (Prod.fst.{u1, u1} G G g) (Prod.snd.{u1, u1} G G g)) (Inv.inv.{u1} G _inst_2 (Prod.fst.{u1, u1} G G g)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Inv.{u1} G] [_inst_3 : Mul.{u1} G] [_inst_4 : ContinuousMul.{u1} G _inst_1 _inst_3] [_inst_5 : ContinuousInv.{u1} G _inst_1 _inst_2], Continuous.{u1, u1} (Prod.{u1, u1} G G) G (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) _inst_1 (fun (g : Prod.{u1, u1} G G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G _inst_3) (Prod.fst.{u1, u1} G G g) (Prod.snd.{u1, u1} G G g)) (Inv.inv.{u1} G _inst_2 (Prod.fst.{u1, u1} G G g)))
+Case conversion may be inaccurate. Consider using '#align topological_group.continuous_conj_prod TopologicalGroup.continuous_conj_prodₓ'. -/
 /-- Conjugation is jointly continuous on `G × G` when both `mul` and `inv` are continuous. -/
 @[to_additive
       "Conjugation is jointly continuous on `G × G` when both `mul` and `inv` are\ncontinuous."]
-theorem TopologicalGroup.continuous_conj_prod [HasContinuousInv G] :
+theorem TopologicalGroup.continuous_conj_prod [ContinuousInv G] :
     Continuous fun g : G × G => g.fst * g.snd * g.fst⁻¹ :=
   continuous_mul.mul (continuous_inv.comp continuous_fst)
 #align topological_group.continuous_conj_prod TopologicalGroup.continuous_conj_prod
 #align topological_add_group.continuous_conj_sum TopologicalAddGroup.continuous_conj_sum
 
+#print TopologicalGroup.continuous_conj /-
 /-- Conjugation by a fixed element is continuous when `mul` is continuous. -/
 @[to_additive "Conjugation by a fixed element is continuous when `add` is continuous."]
 theorem TopologicalGroup.continuous_conj (g : G) : Continuous fun h : G => g * h * g⁻¹ :=
   (continuous_mul_right g⁻¹).comp (continuous_mul_left g)
 #align topological_group.continuous_conj TopologicalGroup.continuous_conj
 #align topological_add_group.continuous_conj TopologicalAddGroup.continuous_conj
+-/
 
+#print TopologicalGroup.continuous_conj' /-
 /-- Conjugation acting on fixed element of the group is continuous when both `mul` and
 `inv` are continuous. -/
 @[to_additive
       "Conjugation acting on fixed element of the additive group is continuous when both\n  `add` and `neg` are continuous."]
-theorem TopologicalGroup.continuous_conj' [HasContinuousInv G] (h : G) :
+theorem TopologicalGroup.continuous_conj' [ContinuousInv G] (h : G) :
     Continuous fun g : G => g * h * g⁻¹ :=
   (continuous_mul_right h).mul continuous_inv
 #align topological_group.continuous_conj' TopologicalGroup.continuous_conj'
 #align topological_add_group.continuous_conj' TopologicalAddGroup.continuous_conj'
+-/
 
 end Conj
 
@@ -487,41 +702,63 @@ variable [TopologicalSpace G] [Group G] [TopologicalGroup G] [TopologicalSpace 
 
 section Zpow
 
+#print continuous_zpow /-
 @[continuity, to_additive]
 theorem continuous_zpow : ∀ z : ℤ, Continuous fun a : G => a ^ z
   | Int.ofNat n => by simpa using continuous_pow n
   | -[n+1] => by simpa using (continuous_pow (n + 1)).inv
 #align continuous_zpow continuous_zpow
 #align continuous_zsmul continuous_zsmul
+-/
 
+#print AddGroup.continuousConstSMul_int /-
 instance AddGroup.continuousConstSMul_int {A} [AddGroup A] [TopologicalSpace A]
     [TopologicalAddGroup A] : ContinuousConstSMul ℤ A :=
   ⟨continuous_zsmul⟩
 #align add_group.has_continuous_const_smul_int AddGroup.continuousConstSMul_int
+-/
 
-instance AddGroup.continuousSMul_int {A} [AddGroup A] [TopologicalSpace A] [TopologicalAddGroup A] :
+/- warning: add_group.has_continuous_smul_int -> AddGroup.continuousSmul_int is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} [_inst_5 : AddGroup.{u1} A] [_inst_6 : TopologicalSpace.{u1} A] [_inst_7 : TopologicalAddGroup.{u1} A _inst_6 _inst_5], ContinuousSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_5)) Int.topologicalSpace _inst_6
+but is expected to have type
+  forall {A : Type.{u1}} [_inst_5 : AddGroup.{u1} A] [_inst_6 : TopologicalSpace.{u1} A] [_inst_7 : TopologicalAddGroup.{u1} A _inst_6 _inst_5], ContinuousSMul.{0, u1} Int A (SubNegMonoid.SMulInt.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_5)) instTopologicalSpaceInt _inst_6
+Case conversion may be inaccurate. Consider using '#align add_group.has_continuous_smul_int AddGroup.continuousSmul_intₓ'. -/
+instance AddGroup.continuousSmul_int {A} [AddGroup A] [TopologicalSpace A] [TopologicalAddGroup A] :
     ContinuousSMul ℤ A :=
   ⟨continuous_uncurry_of_discreteTopology continuous_zsmul⟩
-#align add_group.has_continuous_smul_int AddGroup.continuousSMul_int
+#align add_group.has_continuous_smul_int AddGroup.continuousSmul_int
 
+#print Continuous.zpow /-
 @[continuity, to_additive]
 theorem Continuous.zpow {f : α → G} (h : Continuous f) (z : ℤ) : Continuous fun b => f b ^ z :=
   (continuous_zpow z).comp h
 #align continuous.zpow Continuous.zpow
 #align continuous.zsmul Continuous.zsmul
+-/
 
+#print continuousOn_zpow /-
 @[to_additive]
 theorem continuousOn_zpow {s : Set G} (z : ℤ) : ContinuousOn (fun x => x ^ z) s :=
   (continuous_zpow z).ContinuousOn
 #align continuous_on_zpow continuousOn_zpow
 #align continuous_on_zsmul continuousOn_zsmul
+-/
 
+#print continuousAt_zpow /-
 @[to_additive]
 theorem continuousAt_zpow (x : G) (z : ℤ) : ContinuousAt (fun x => x ^ z) x :=
   (continuous_zpow z).ContinuousAt
 #align continuous_at_zpow continuousAt_zpow
 #align continuous_at_zsmul continuousAt_zsmul
+-/
 
+/- warning: filter.tendsto.zpow -> Filter.Tendsto.zpow is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {α : Type.{u2}} {l : Filter.{u2} α} {f : α -> G} {x : G}, (Filter.Tendsto.{u2, u1} α G f l (nhds.{u1} G _inst_1 x)) -> (forall (z : Int), Filter.Tendsto.{u2, u1} α G (fun (x : α) => HPow.hPow.{u1, 0, u1} G Int G (instHPow.{u1, 0} G Int (DivInvMonoid.Pow.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (f x) z) l (nhds.{u1} G _inst_1 (HPow.hPow.{u1, 0, u1} G Int G (instHPow.{u1, 0} G Int (DivInvMonoid.Pow.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) x z)))
+but is expected to have type
+  forall {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {α : Type.{u1}} {l : Filter.{u1} α} {f : α -> G} {x : G}, (Filter.Tendsto.{u1, u2} α G f l (nhds.{u2} G _inst_1 x)) -> (forall (z : Int), Filter.Tendsto.{u1, u2} α G (fun (x : α) => HPow.hPow.{u2, 0, u2} G Int G (instHPow.{u2, 0} G Int (DivInvMonoid.Pow.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) (f x) z) l (nhds.{u2} G _inst_1 (HPow.hPow.{u2, 0, u2} G Int G (instHPow.{u2, 0} G Int (DivInvMonoid.Pow.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) x z)))
+Case conversion may be inaccurate. Consider using '#align filter.tendsto.zpow Filter.Tendsto.zpowₓ'. -/
 @[to_additive]
 theorem Filter.Tendsto.zpow {α} {l : Filter α} {f : α → G} {x : G} (hf : Tendsto f l (𝓝 x))
     (z : ℤ) : Tendsto (fun x => f x ^ z) l (𝓝 (x ^ z)) :=
@@ -529,25 +766,31 @@ theorem Filter.Tendsto.zpow {α} {l : Filter α} {f : α → G} {x : G} (hf : Te
 #align filter.tendsto.zpow Filter.Tendsto.zpow
 #align filter.tendsto.zsmul Filter.Tendsto.zsmul
 
+#print ContinuousWithinAt.zpow /-
 @[to_additive]
 theorem ContinuousWithinAt.zpow {f : α → G} {x : α} {s : Set α} (hf : ContinuousWithinAt f s x)
     (z : ℤ) : ContinuousWithinAt (fun x => f x ^ z) s x :=
   hf.zpow z
 #align continuous_within_at.zpow ContinuousWithinAt.zpow
 #align continuous_within_at.zsmul ContinuousWithinAt.zsmul
+-/
 
+#print ContinuousAt.zpow /-
 @[to_additive]
 theorem ContinuousAt.zpow {f : α → G} {x : α} (hf : ContinuousAt f x) (z : ℤ) :
     ContinuousAt (fun x => f x ^ z) x :=
   hf.zpow z
 #align continuous_at.zpow ContinuousAt.zpow
 #align continuous_at.zsmul ContinuousAt.zsmul
+-/
 
+#print ContinuousOn.zpow /-
 @[to_additive ContinuousOn.zsmul]
 theorem ContinuousOn.zpow {f : α → G} {s : Set α} (hf : ContinuousOn f s) (z : ℤ) :
     ContinuousOn (fun x => f x ^ z) s := fun x hx => (hf x hx).zpow z
 #align continuous_on.zpow ContinuousOn.zpow
 #align continuous_on.zsmul ContinuousOn.zsmul
+-/
 
 end Zpow
 
@@ -555,48 +798,96 @@ section OrderedCommGroup
 
 variable [TopologicalSpace H] [OrderedCommGroup H] [TopologicalGroup H]
 
+/- warning: tendsto_inv_nhds_within_Ioi -> tendsto_inv_nhdsWithin_Ioi is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi tendsto_inv_nhdsWithin_Ioiₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi {a : H} : Tendsto Inv.inv (𝓝[>] a) (𝓝[<] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Ioi tendsto_inv_nhdsWithin_Ioi
 #align tendsto_neg_nhds_within_Ioi tendsto_neg_nhdsWithin_Ioi
 
+/- warning: tendsto_inv_nhds_within_Iio -> tendsto_inv_nhdsWithin_Iio is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio tendsto_inv_nhdsWithin_Iioₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio {a : H} : Tendsto Inv.inv (𝓝[<] a) (𝓝[>] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Iio tendsto_inv_nhdsWithin_Iio
 #align tendsto_neg_nhds_within_Iio tendsto_neg_nhdsWithin_Iio
 
+/- warning: tendsto_inv_nhds_within_Ioi_inv -> tendsto_inv_nhdsWithin_Ioi_inv is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ioi_inv tendsto_inv_nhdsWithin_Ioi_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi_inv {a : H} : Tendsto Inv.inv (𝓝[>] a⁻¹) (𝓝[<] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Ioi _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Ioi_inv tendsto_inv_nhdsWithin_Ioi_inv
 #align tendsto_neg_nhds_within_Ioi_neg tendsto_neg_nhdsWithin_Ioi_neg
 
+/- warning: tendsto_inv_nhds_within_Iio_inv -> tendsto_inv_nhdsWithin_Iio_inv is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iio.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ioi.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iio_inv tendsto_inv_nhdsWithin_Iio_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iio_inv {a : H} : Tendsto Inv.inv (𝓝[<] a⁻¹) (𝓝[>] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iio _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Iio_inv tendsto_inv_nhdsWithin_Iio_inv
 #align tendsto_neg_nhds_within_Iio_neg tendsto_neg_nhdsWithin_Iio_neg
 
+/- warning: tendsto_inv_nhds_within_Ici -> tendsto_inv_nhdsWithin_Ici is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici tendsto_inv_nhdsWithin_Iciₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici {a : H} : Tendsto Inv.inv (𝓝[≥] a) (𝓝[≤] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Ici tendsto_inv_nhdsWithin_Ici
 #align tendsto_neg_nhds_within_Ici tendsto_neg_nhdsWithin_Ici
 
+/- warning: tendsto_inv_nhds_within_Iic -> tendsto_inv_nhdsWithin_Iic is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a)))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a)) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a)))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic tendsto_inv_nhdsWithin_Iicₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic {a : H} : Tendsto Inv.inv (𝓝[≤] a) (𝓝[≥] a⁻¹) :=
   (continuous_inv.Tendsto a).inf <| by simp [tendsto_principal_principal]
 #align tendsto_inv_nhds_within_Iic tendsto_inv_nhdsWithin_Iic
 #align tendsto_neg_nhds_within_Iic tendsto_neg_nhdsWithin_Iic
 
+/- warning: tendsto_inv_nhds_within_Ici_inv -> tendsto_inv_nhdsWithin_Ici_inv is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Ici_inv tendsto_inv_nhdsWithin_Ici_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ici_inv {a : H} : Tendsto Inv.inv (𝓝[≥] a⁻¹) (𝓝[≤] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Ici _ _ _ _ a⁻¹
 #align tendsto_inv_nhds_within_Ici_inv tendsto_inv_nhdsWithin_Ici_inv
 #align tendsto_neg_nhds_within_Ici_neg tendsto_neg_nhdsWithin_Ici_neg
 
+/- warning: tendsto_inv_nhds_within_Iic_inv -> tendsto_inv_nhdsWithin_Iic_inv is a dubious translation:
+lean 3 declaration is
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (DivInvMonoid.toHasInv.{u1} H (Group.toDivInvMonoid.{u1} H (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+but is expected to have type
+  forall {H : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} H] [_inst_6 : OrderedCommGroup.{u1} H] [_inst_7 : TopologicalGroup.{u1} H _inst_5 (CommGroup.toGroup.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))] {a : H}, Filter.Tendsto.{u1, u1} H H (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6))))))) (nhdsWithin.{u1} H _inst_5 (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a) (Set.Iic.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) (Inv.inv.{u1} H (InvOneClass.toInv.{u1} H (DivInvOneMonoid.toInvOneClass.{u1} H (DivisionMonoid.toDivInvOneMonoid.{u1} H (DivisionCommMonoid.toDivisionMonoid.{u1} H (CommGroup.toDivisionCommMonoid.{u1} H (OrderedCommGroup.toCommGroup.{u1} H _inst_6)))))) a))) (nhdsWithin.{u1} H _inst_5 a (Set.Ici.{u1} H (PartialOrder.toPreorder.{u1} H (OrderedCommGroup.toPartialOrder.{u1} H _inst_6)) a))
+Case conversion may be inaccurate. Consider using '#align tendsto_inv_nhds_within_Iic_inv tendsto_inv_nhdsWithin_Iic_invₓ'. -/
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Iic_inv {a : H} : Tendsto Inv.inv (𝓝[≤] a⁻¹) (𝓝[≥] a) := by
   simpa only [inv_inv] using @tendsto_inv_nhdsWithin_Iic _ _ _ _ a⁻¹
@@ -609,18 +900,20 @@ end OrderedCommGroup
 instance [TopologicalSpace H] [Group H] [TopologicalGroup H] : TopologicalGroup (G × H)
     where continuous_inv := continuous_inv.Prod_map continuous_inv
 
+#print Pi.topologicalGroup /-
 @[to_additive]
 instance Pi.topologicalGroup {C : β → Type _} [∀ b, TopologicalSpace (C b)] [∀ b, Group (C b)]
     [∀ b, TopologicalGroup (C b)] : TopologicalGroup (∀ b, C b)
     where continuous_inv := continuous_pi fun i => (continuous_apply i).inv
 #align pi.topological_group Pi.topologicalGroup
-#align pi.topological_add_group Pi.topological_add_group
+#align pi.topological_add_group Pi.topologicalAddGroup
+-/
 
 open MulOpposite
 
 @[to_additive]
-instance [Group α] [HasContinuousInv α] : HasContinuousInv αᵐᵒᵖ :=
-  opHomeomorph.symm.Inducing.HasContinuousInv unop_inv
+instance [Group α] [ContinuousInv α] : ContinuousInv αᵐᵒᵖ :=
+  opHomeomorph.symm.Inducing.ContinuousInv unop_inv
 
 /-- If multiplication is continuous in `α`, then it also is in `αᵐᵒᵖ`. -/
 @[to_additive "If addition is continuous in `α`, then it also is in `αᵃᵒᵖ`."]
@@ -628,24 +921,48 @@ instance [Group α] [TopologicalGroup α] : TopologicalGroup αᵐᵒᵖ where
 
 variable (G)
 
+/- warning: nhds_one_symm -> nhds_one_symm is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 (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_2))))))))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2))))) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 (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_2)))))))
+Case conversion may be inaccurate. Consider using '#align nhds_one_symm nhds_one_symmₓ'. -/
 @[to_additive]
 theorem nhds_one_symm : comap Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
   ((Homeomorph.inv G).comap_nhds_eq _).trans (congr_arg nhds inv_one)
 #align nhds_one_symm nhds_one_symm
 #align nhds_zero_symm nhds_zero_symm
 
+/- warning: nhds_one_symm' -> nhds_one_symm' is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 (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_2))))))))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2))))) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 (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_2)))))))
+Case conversion may be inaccurate. Consider using '#align nhds_one_symm' nhds_one_symm'ₓ'. -/
 @[to_additive]
 theorem nhds_one_symm' : map Inv.inv (𝓝 (1 : G)) = 𝓝 (1 : G) :=
   ((Homeomorph.inv G).map_nhds_eq _).trans (congr_arg nhds inv_one)
 #align nhds_one_symm' nhds_one_symm'
 #align nhds_zero_symm' nhds_zero_symm'
 
+/- warning: inv_mem_nhds_one -> inv_mem_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {S : Set.{u1} G}, (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) S (nhds.{u1} G _inst_1 (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_2))))))))) -> (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) S) (nhds.{u1} G _inst_1 (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_2)))))))))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {S : Set.{u1} G}, (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) S (nhds.{u1} G _inst_1 (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_2)))))))) -> (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) (Inv.inv.{u1} (Set.{u1} G) (Set.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2))))) S) (nhds.{u1} G _inst_1 (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_2))))))))
+Case conversion may be inaccurate. Consider using '#align inv_mem_nhds_one inv_mem_nhds_oneₓ'. -/
 @[to_additive]
 theorem inv_mem_nhds_one {S : Set G} (hS : S ∈ (𝓝 1 : Filter G)) : S⁻¹ ∈ 𝓝 (1 : G) := by
   rwa [← nhds_one_symm'] at hS
 #align inv_mem_nhds_one inv_mem_nhds_one
 #align neg_mem_nhds_zero neg_mem_nhds_zero
 
+/- warning: homeomorph.shear_mul_right -> Homeomorph.shearMulRight is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)
+Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right Homeomorph.shearMulRightₓ'. -/
 /-- The map `(x, y) ↦ (x, xy)` as a homeomorphism. This is a shear mapping. -/
 @[to_additive "The map `(x, y) ↦ (x, x + y)` as a homeomorphism.\nThis is a shear mapping."]
 protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
@@ -657,37 +974,61 @@ protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
 #align homeomorph.shear_mul_right Homeomorph.shearMulRight
 #align homeomorph.shear_add_right Homeomorph.shearAddRight
 
+/- warning: homeomorph.shear_mul_right_coe -> Homeomorph.shearMulRight_coe is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (fun (_x : Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) => (Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (Homeomorph.hasCoeToFun.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3)) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Prod.fst.{u1, u1} G G z) (Prod.snd.{u1, u1} G G z)))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (forall (ᾰ : Prod.{u1, u1} G G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3)) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Prod.fst.{u1, u1} G G z) (Prod.snd.{u1, u1} G G z)))
+Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right_coe Homeomorph.shearMulRight_coeₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_coe :
     ⇑(Homeomorph.shearMulRight G) = fun z : G × G => (z.1, z.1 * z.2) :=
   rfl
 #align homeomorph.shear_mul_right_coe Homeomorph.shearMulRight_coe
-#align homeomorph.shear_add_right_coe Homeomorph.shear_add_right_coe
-
+#align homeomorph.shear_add_right_coe Homeomorph.shearAddRight_coe
+
+/- warning: homeomorph.shear_mul_right_symm_coe -> Homeomorph.shearMulRight_symm_coe is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} ((Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (fun (_x : Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) => (Prod.{u1, u1} G G) -> (Prod.{u1, u1} G G)) (Homeomorph.hasCoeToFun.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1)) (Homeomorph.symm.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Prod.topologicalSpace.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3))) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Prod.fst.{u1, u1} G G z)) (Prod.snd.{u1, u1} G G z)))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], Eq.{succ u1} (forall (ᾰ : Prod.{u1, u1} G G), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (fun (_x : Prod.{u1, u1} G G) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Prod.{u1, u1} G G) => Prod.{u1, u1} G G) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)) (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1)))) (Homeomorph.symm.{u1, u1} (Prod.{u1, u1} G G) (Prod.{u1, u1} G G) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (instTopologicalSpaceProd.{u1, u1} G G _inst_1 _inst_1) (Homeomorph.shearMulRight.{u1} G _inst_1 _inst_2 _inst_3))) (fun (z : Prod.{u1, u1} G G) => Prod.mk.{u1, u1} G G (Prod.fst.{u1, u1} G G z) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) (Prod.fst.{u1, u1} G G z)) (Prod.snd.{u1, u1} G G z)))
+Case conversion may be inaccurate. Consider using '#align homeomorph.shear_mul_right_symm_coe Homeomorph.shearMulRight_symm_coeₓ'. -/
 @[simp, to_additive]
 theorem Homeomorph.shearMulRight_symm_coe :
     ⇑(Homeomorph.shearMulRight G).symm = fun z : G × G => (z.1, z.1⁻¹ * z.2) :=
   rfl
 #align homeomorph.shear_mul_right_symm_coe Homeomorph.shearMulRight_symm_coe
-#align homeomorph.shear_add_right_symm_coe Homeomorph.shear_add_right_symm_coe
+#align homeomorph.shear_add_right_symm_coe Homeomorph.shearAddRight_symm_coe
 
 variable {G}
 
+/- warning: inducing.topological_group -> Inducing.topologicalGroup is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), (Inducing.{u2, u1} H G _inst_6 _inst_1 (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_7))) f)) -> (TopologicalGroup.{u2} H _inst_6 _inst_5)
+but is expected to have type
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : TopologicalSpace.{u3} H] [_inst_7 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), (Inducing.{u3, u2} H G _inst_6 _inst_1 (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_7)) f)) -> (TopologicalGroup.{u3} H _inst_6 _inst_5)
+Case conversion may be inaccurate. Consider using '#align inducing.topological_group Inducing.topologicalGroupₓ'. -/
 @[to_additive]
 protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalSpace H]
     [MonoidHomClass F H G] (f : F) (hf : Inducing f) : TopologicalGroup H :=
   { to_continuousMul := hf.ContinuousMul _
-    to_hasContinuousInv := hf.HasContinuousInv (map_inv f) }
+    to_continuousInv := hf.ContinuousInv (map_inv f) }
 #align inducing.topological_group Inducing.topologicalGroup
-#align inducing.topological_add_group Inducing.topological_add_group
+#align inducing.topological_add_group Inducing.topologicalAddGroup
 
+/- warning: topological_group_induced -> topologicalGroup_induced is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {F : Type.{u3}} [_inst_5 : Group.{u2} H] [_inst_6 : MonoidHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))] (f : F), TopologicalGroup.{u2} H (TopologicalSpace.induced.{u2, u1} H G (coeFn.{succ u3, max (succ u2) (succ u1)} F (fun (_x : F) => H -> G) (FunLike.hasCoeToFun.{succ u3, succ u2, succ u1} F H (fun (_x : H) => G) (MulHomClass.toFunLike.{u3, u2, u1} F H G (MulOneClass.toHasMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F H G (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_6))) f) _inst_1) _inst_5
+but is expected to have type
+  forall {G : Type.{u2}} {H : Type.{u3}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {F : Type.{u1}} [_inst_5 : Group.{u3} H] [_inst_6 : MonoidHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))] (f : F), TopologicalGroup.{u3} H (TopologicalSpace.induced.{u3, u2} H G (FunLike.coe.{succ u1, succ u3, succ u2} F H (fun (_x : H) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : H) => G) _x) (MulHomClass.toFunLike.{u1, u3, u2} F H G (MulOneClass.toMul.{u3} H (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5)))) (MulOneClass.toMul.{u2} G (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F H G (Monoid.toMulOneClass.{u3} H (DivInvMonoid.toMonoid.{u3} H (Group.toDivInvMonoid.{u3} H _inst_5))) (Monoid.toMulOneClass.{u2} G (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) _inst_6)) f) _inst_1) _inst_5
+Case conversion may be inaccurate. Consider using '#align topological_group_induced topologicalGroup_inducedₓ'. -/
 @[to_additive]
 protected theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClass F H G] (f : F) :
     @TopologicalGroup H (induced f ‹_›) _ :=
   letI := induced f ‹_›
   Inducing.topologicalGroup f ⟨rfl⟩
 #align topological_group_induced topologicalGroup_induced
-#align topological_add_group_induced topological_add_group_induced
+#align topological_add_group_induced topologicalAddGroup_induced
 
 namespace Subgroup
 
@@ -697,6 +1038,7 @@ instance (S : Subgroup G) : TopologicalGroup S :=
 
 end Subgroup
 
+#print Subgroup.topologicalClosure /-
 /-- The (topological-space) closure of a subgroup of a space `M` with `has_continuous_mul` is
 itself a subgroup. -/
 @[to_additive
@@ -708,7 +1050,14 @@ def Subgroup.topologicalClosure (s : Subgroup G) : Subgroup G :=
     inv_mem' := fun g m => by simpa [← Set.mem_inv, inv_closure] using m }
 #align subgroup.topological_closure Subgroup.topologicalClosure
 #align add_subgroup.topological_closure AddSubgroup.topologicalClosure
+-/
 
+/- warning: subgroup.topological_closure_coe -> Subgroup.topologicalClosure_coe is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Subgroup.{u1} G _inst_2}, Eq.{succ u1} (Set.{u1} G) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)) (closure.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Subgroup.{u1} G _inst_2}, Eq.{succ u1} (Set.{u1} G) (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)) (closure.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) s))
+Case conversion may be inaccurate. Consider using '#align subgroup.topological_closure_coe Subgroup.topologicalClosure_coeₓ'. -/
 @[simp, to_additive]
 theorem Subgroup.topologicalClosure_coe {s : Subgroup G} :
     (s.topologicalClosure : Set G) = closure s :=
@@ -716,18 +1065,36 @@ theorem Subgroup.topologicalClosure_coe {s : Subgroup G} :
 #align subgroup.topological_closure_coe Subgroup.topologicalClosure_coe
 #align add_subgroup.topological_closure_coe AddSubgroup.topologicalClosure_coe
 
+/- warning: subgroup.le_topological_closure -> Subgroup.le_topologicalClosure is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) s (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)
+Case conversion may be inaccurate. Consider using '#align subgroup.le_topological_closure Subgroup.le_topologicalClosureₓ'. -/
 @[to_additive]
 theorem Subgroup.le_topologicalClosure (s : Subgroup G) : s ≤ s.topologicalClosure :=
   subset_closure
 #align subgroup.le_topological_closure Subgroup.le_topologicalClosure
 #align add_subgroup.le_topological_closure AddSubgroup.le_topologicalClosure
 
+/- warning: subgroup.is_closed_topological_closure -> Subgroup.isClosed_topologicalClosure is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2), IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s))
+Case conversion may be inaccurate. Consider using '#align subgroup.is_closed_topological_closure Subgroup.isClosed_topologicalClosureₓ'. -/
 @[to_additive]
 theorem Subgroup.isClosed_topologicalClosure (s : Subgroup G) :
     IsClosed (s.topologicalClosure : Set G) := by convert isClosed_closure
 #align subgroup.is_closed_topological_closure Subgroup.isClosed_topologicalClosure
 #align add_subgroup.is_closed_topological_closure AddSubgroup.isClosed_topologicalClosure
 
+/- warning: subgroup.topological_closure_minimal -> Subgroup.topologicalClosure_minimal is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2) {t : Subgroup.{u1} G _inst_2}, (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) s t) -> (IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) t)) -> (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (SetLike.partialOrder.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) t)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (s : Subgroup.{u1} G _inst_2) {t : Subgroup.{u1} G _inst_2}, (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) s t) -> (IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) t)) -> (LE.le.{u1} (Subgroup.{u1} G _inst_2) (Preorder.toLE.{u1} (Subgroup.{u1} G _inst_2) (PartialOrder.toPreorder.{u1} (Subgroup.{u1} G _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subgroup.{u1} G _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instCompleteLatticeSubgroup.{u1} G _inst_2))))) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) t)
+Case conversion may be inaccurate. Consider using '#align subgroup.topological_closure_minimal Subgroup.topologicalClosure_minimalₓ'. -/
 @[to_additive]
 theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h : s ≤ t)
     (ht : IsClosed (t : Set G)) : s.topologicalClosure ≤ t :=
@@ -735,6 +1102,12 @@ theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h
 #align subgroup.topological_closure_minimal Subgroup.topologicalClosure_minimal
 #align add_subgroup.topological_closure_minimal AddSubgroup.topologicalClosure_minimal
 
+/- warning: dense_range.topological_closure_map_subgroup -> DenseRange.topologicalClosure_map_subgroup is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (fun (_x : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) => G -> H) (MonoidHom.hasCoeToFun.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.hasTop.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.hasTop.{u2} H _inst_5))))
+but is expected to have type
+  forall {G : Type.{u1}} {H : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : Group.{u2} H] [_inst_6 : TopologicalSpace.{u2} H] [_inst_7 : TopologicalGroup.{u2} H _inst_6 _inst_5] {f : MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))}, (Continuous.{u1, u2} G H _inst_1 _inst_6 (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (DenseRange.{u2, u1} H _inst_6 G (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => H) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toMul.{u2} H (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) (MonoidHomClass.toMulHomClass.{max u1 u2, u1, u2} (MonoidHom.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))) G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5))) (MonoidHom.monoidHomClass.{u1, u2} G H (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Monoid.toMulOneClass.{u2} H (DivInvMonoid.toMonoid.{u2} H (Group.toDivInvMonoid.{u2} H _inst_5)))))) f)) -> (forall {s : Subgroup.{u1} G _inst_2}, (Eq.{succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s) (Top.top.{u1} (Subgroup.{u1} G _inst_2) (Subgroup.instTopSubgroup.{u1} G _inst_2))) -> (Eq.{succ u2} (Subgroup.{u2} H _inst_5) (Subgroup.topologicalClosure.{u2} H _inst_6 _inst_5 _inst_7 (Subgroup.map.{u1, u2} G _inst_2 H _inst_5 f s)) (Top.top.{u2} (Subgroup.{u2} H _inst_5) (Subgroup.instTopSubgroup.{u2} H _inst_5))))
+Case conversion may be inaccurate. Consider using '#align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroupₓ'. -/
 @[to_additive]
 theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H]
     [TopologicalGroup H] {f : G →* H} (hf : Continuous f) (hf' : DenseRange f) {s : Subgroup G}
@@ -744,8 +1117,9 @@ theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H
   simp only [Subgroup.topologicalClosure_coe, Subgroup.coe_top, ← dense_iff_closure_eq] at hs⊢
   exact hf'.dense_image hf hs
 #align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroup
-#align dense_range.topological_closure_map_add_subgroup DenseRange.topologicalClosure_map_add_subgroup
+#align dense_range.topological_closure_map_add_subgroup DenseRange.topologicalClosure_map_addSubgroup
 
+#print Subgroup.is_normal_topologicalClosure /-
 /-- The topological closure of a normal subgroup is normal.-/
 @[to_additive "The topological closure of a normal additive subgroup is normal."]
 theorem Subgroup.is_normal_topologicalClosure {G : Type _} [TopologicalSpace G] [Group G]
@@ -757,7 +1131,14 @@ theorem Subgroup.is_normal_topologicalClosure {G : Type _} [TopologicalSpace G]
       exact fun m hm => Subgroup.Normal.conj_mem inferInstance m hm g }
 #align subgroup.is_normal_topological_closure Subgroup.is_normal_topologicalClosure
 #align add_subgroup.is_normal_topological_closure AddSubgroup.is_normal_topologicalClosure
+-/
 
+/- warning: mul_mem_connected_component_one -> mul_mem_connectedComponent_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : MulOneClass.{u1} G] [_inst_7 : ContinuousMul.{u1} G _inst_5 (MulOneClass.toHasMul.{u1} G _inst_6)] {g : G} {h : G}, (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) g (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_6)))))) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) h (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_6)))))) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G _inst_6)) g h) (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (OfNat.mk.{u1} G 1 (One.one.{u1} G (MulOneClass.toHasOne.{u1} G _inst_6))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : MulOneClass.{u1} G] [_inst_7 : ContinuousMul.{u1} G _inst_5 (MulOneClass.toMul.{u1} G _inst_6)] {g : G} {h : G}, (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) g (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_6))))) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) h (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_6))))) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G _inst_6)) g h) (connectedComponent.{u1} G _inst_5 (OfNat.ofNat.{u1} G 1 (One.toOfNat1.{u1} G (MulOneClass.toOne.{u1} G _inst_6)))))
+Case conversion may be inaccurate. Consider using '#align mul_mem_connected_component_one mul_mem_connectedComponent_oneₓ'. -/
 @[to_additive]
 theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOneClass G]
     [ContinuousMul G] {g h : G} (hg : g ∈ connectedComponent (1 : G))
@@ -773,6 +1154,12 @@ theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOne
 #align mul_mem_connected_component_one mul_mem_connectedComponent_one
 #align add_mem_connected_component_zero add_mem_connectedComponent_zero
 
+/- warning: inv_mem_connected_component_one -> inv_mem_connectedComponent_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : Group.{u1} G] [_inst_7 : TopologicalGroup.{u1} G _inst_5 _inst_6] {g : G}, (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) g (connectedComponent.{u1} G _inst_5 (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_6))))))))) -> (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_6)) g) (connectedComponent.{u1} G _inst_5 (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_6)))))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : TopologicalSpace.{u1} G] [_inst_6 : Group.{u1} G] [_inst_7 : TopologicalGroup.{u1} G _inst_5 _inst_6] {g : G}, (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) g (connectedComponent.{u1} G _inst_5 (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_6)))))))) -> (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_6)))) g) (connectedComponent.{u1} G _inst_5 (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_6))))))))
+Case conversion may be inaccurate. Consider using '#align inv_mem_connected_component_one inv_mem_connectedComponent_oneₓ'. -/
 @[to_additive]
 theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group G]
     [TopologicalGroup G] {g : G} (hg : g ∈ connectedComponent (1 : G)) :
@@ -784,6 +1171,7 @@ theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group
 #align inv_mem_connected_component_one inv_mem_connectedComponent_one
 #align neg_mem_connected_component_zero neg_mem_connectedComponent_zero
 
+#print Subgroup.connectedComponentOfOne /-
 /-- The connected component of 1 is a subgroup of `G`. -/
 @[to_additive "The connected component of 0 is a subgroup of `G`."]
 def Subgroup.connectedComponentOfOne (G : Type _) [TopologicalSpace G] [Group G]
@@ -795,7 +1183,14 @@ def Subgroup.connectedComponentOfOne (G : Type _) [TopologicalSpace G] [Group G]
   inv_mem' g hg := inv_mem_connectedComponent_one hg
 #align subgroup.connected_component_of_one Subgroup.connectedComponentOfOne
 #align add_subgroup.connected_component_of_zero AddSubgroup.connectedComponentOfZero
+-/
 
+/- warning: subgroup.comm_group_topological_closure -> Subgroup.commGroupTopologicalClosure is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : T2Space.{u1} G _inst_1] (s : Subgroup.{u1} G _inst_2), (forall (x : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (y : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s), Eq.{succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (HMul.hMul.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (instHMul.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (Subgroup.mul.{u1} G _inst_2 s)) x y) (HMul.hMul.{u1, u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (instHMul.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) s) (Subgroup.mul.{u1} G _inst_2 s)) y x)) -> (CommGroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_5 : T2Space.{u1} G _inst_1] (s : Subgroup.{u1} G _inst_2), (forall (x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (y : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)), Eq.{succ u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (HMul.hMul.{u1, u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (instHMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subgroup.mul.{u1} G _inst_2 s)) x y) (HMul.hMul.{u1, u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (instHMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x s)) (Subgroup.mul.{u1} G _inst_2 s)) y x)) -> (CommGroup.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x (Subgroup.topologicalClosure.{u1} G _inst_1 _inst_2 _inst_3 s))))
+Case conversion may be inaccurate. Consider using '#align subgroup.comm_group_topological_closure Subgroup.commGroupTopologicalClosureₓ'. -/
 /-- If a subgroup of a topological group is commutative, then so is its topological closure. -/
 @[to_additive
       "If a subgroup of an additive topological group is commutative, then so is its\ntopological closure."]
@@ -805,6 +1200,12 @@ def Subgroup.commGroupTopologicalClosure [T2Space G] (s : Subgroup G)
 #align subgroup.comm_group_topological_closure Subgroup.commGroupTopologicalClosure
 #align add_subgroup.add_comm_group_topological_closure AddSubgroup.addCommGroupTopologicalClosure
 
+/- warning: exists_nhds_split_inv -> exists_nhds_split_inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Set.{u1} G}, (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) s (nhds.{u1} G _inst_1 (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_2))))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) => forall (v : G), (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) v V) -> (forall (w : G), (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) w V) -> (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_2))) v w) s)))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {s : Set.{u1} G}, (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) s (nhds.{u1} G _inst_1 (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_2)))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (forall (v : G), (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) v V) -> (forall (w : G), (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) w V) -> (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_2))) v w) s)))))
+Case conversion may be inaccurate. Consider using '#align exists_nhds_split_inv exists_nhds_split_invₓ'. -/
 @[to_additive exists_nhds_half_neg]
 theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
     ∃ V ∈ 𝓝 (1 : G), ∀ v ∈ V, ∀ w ∈ V, v / w ∈ s :=
@@ -816,34 +1217,70 @@ theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
 #align exists_nhds_split_inv exists_nhds_split_inv
 #align exists_nhds_half_neg exists_nhds_half_neg
 
+/- warning: nhds_translation_mul_inv -> nhds_translation_mul_inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x)) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x)) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
+Case conversion may be inaccurate. Consider using '#align nhds_translation_mul_inv nhds_translation_mul_invₓ'. -/
 @[to_additive]
 theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝 1) = 𝓝 x :=
   ((Homeomorph.mulRight x⁻¹).comap_nhds_eq 1).trans <| show 𝓝 (1 * x⁻¹⁻¹) = 𝓝 x by simp
 #align nhds_translation_mul_inv nhds_translation_mul_inv
 #align nhds_translation_add_neg nhds_translation_add_neg
 
+/- warning: map_mul_left_nhds -> map_mul_left_nhds is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5908 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5910 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5908 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5910) x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y))
+Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds map_mul_left_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
   (Homeomorph.mulLeft x).map_nhds_eq y
 #align map_mul_left_nhds map_mul_left_nhds
 #align map_add_left_nhds map_add_left_nhds
 
+/- warning: map_mul_left_nhds_one -> map_mul_left_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5981 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5983 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5981 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.5983) x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
+Case conversion may be inaccurate. Consider using '#align map_mul_left_nhds_one map_mul_left_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_left_nhds_one map_mul_left_nhds_one
 #align map_add_left_nhds_zero map_add_left_nhds_zero
 
+/- warning: map_mul_right_nhds -> map_mul_right_nhds is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (z : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) z x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (z : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) z x) (nhds.{u1} G _inst_1 y)) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x))
+Case conversion may be inaccurate. Consider using '#align map_mul_right_nhds map_mul_right_nhdsₓ'. -/
 @[simp, to_additive]
 theorem map_mul_right_nhds (x y : G) : map (fun z => z * x) (𝓝 y) = 𝓝 (y * x) :=
   (Homeomorph.mulRight x).map_nhds_eq y
 #align map_mul_right_nhds map_mul_right_nhds
 #align map_add_right_nhds map_add_right_nhds
 
+/- warning: map_mul_right_nhds_one -> map_mul_right_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x) (nhds.{u1} G _inst_1 (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_2))))))))) (nhds.{u1} G _inst_1 x)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.map.{u1, u1} G G (fun (y : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) y x) (nhds.{u1} G _inst_1 (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_2)))))))) (nhds.{u1} G _inst_1 x)
+Case conversion may be inaccurate. Consider using '#align map_mul_right_nhds_one map_mul_right_nhds_oneₓ'. -/
 @[to_additive]
 theorem map_mul_right_nhds_one (x : G) : map (fun y => y * x) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_right_nhds_one map_mul_right_nhds_one
 #align map_add_right_nhds_zero map_add_right_nhds_zero
 
+/- warning: filter.has_basis.nhds_of_one -> Filter.HasBasis.nhds_of_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {ι : Sort.{u2}} {p : ι -> Prop} {s : ι -> (Set.{u1} G)}, (Filter.HasBasis.{u1, u2} G ι (nhds.{u1} G _inst_1 (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_2)))))))) p s) -> (forall (x : G), Filter.HasBasis.{u1, u2} G ι (nhds.{u1} G _inst_1 x) p (fun (i : ι) => setOf.{u1} G (fun (y : G) => 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_2))) y x) (s i))))
+but is expected to have type
+  forall {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u2} G] [_inst_2 : Group.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_1 _inst_2] {ι : Sort.{u1}} {p : ι -> Prop} {s : ι -> (Set.{u2} G)}, (Filter.HasBasis.{u2, u1} G ι (nhds.{u2} G _inst_1 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (InvOneClass.toOne.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_2))))))) p s) -> (forall (x : G), Filter.HasBasis.{u2, u1} G ι (nhds.{u2} G _inst_1 x) p (fun (i : ι) => setOf.{u2} G (fun (y : G) => Membership.mem.{u2, u2} G (Set.{u2} G) (Set.instMembershipSet.{u2} G) (HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G (DivInvMonoid.toDiv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))) y x) (s i))))
+Case conversion may be inaccurate. Consider using '#align filter.has_basis.nhds_of_one Filter.HasBasis.nhds_of_oneₓ'. -/
 @[to_additive]
 theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι → Set G}
     (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) : HasBasis (𝓝 x) p fun i => { y | y / x ∈ s i } :=
@@ -854,6 +1291,12 @@ theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι →
 #align filter.has_basis.nhds_of_one Filter.HasBasis.nhds_of_one
 #align filter.has_basis.nhds_of_zero Filter.HasBasis.nhds_of_zero
 
+/- warning: mem_closure_iff_nhds_one -> mem_closure_iff_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {x : G} {s : Set.{u1} G}, Iff (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) x (closure.{u1} G _inst_1 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_1 (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_2))))))))) -> (Exists.{succ u1} G (fun (y : G) => Exists.{0} (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) y s) (fun (H : Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{u1} G) y 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_2))) y x) U))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {x : G} {s : Set.{u1} G}, Iff (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) x (closure.{u1} G _inst_1 s)) (forall (U : Set.{u1} G), (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) U (nhds.{u1} G _inst_1 (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_2)))))))) -> (Exists.{succ u1} G (fun (y : G) => And (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) y 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_2))) y x) U))))
+Case conversion may be inaccurate. Consider using '#align mem_closure_iff_nhds_one mem_closure_iff_nhds_oneₓ'. -/
 @[to_additive]
 theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
     x ∈ closure s ↔ ∀ U ∈ (𝓝 1 : Filter G), ∃ y ∈ s, y / x ∈ U :=
@@ -863,6 +1306,12 @@ theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
 #align mem_closure_iff_nhds_one mem_closure_iff_nhds_one
 #align mem_closure_iff_nhds_zero mem_closure_iff_nhds_zero
 
+/- warning: continuous_of_continuous_at_one -> continuous_of_continuousAt_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u3}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toHasMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f) (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_2)))))))) -> (Continuous.{u1, u2} G M _inst_1 _inst_6 (coeFn.{succ u3, max (succ u1) (succ u2)} hom (fun (_x : hom) => G -> M) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} hom G (fun (_x : G) => M) (MulHomClass.toFunLike.{u3, u1, u2} hom G M (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MulOneClass.toHasMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u3, u1, u2} hom G M (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) _inst_5 _inst_8))) f))
+but is expected to have type
+  forall {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u3} G] [_inst_2 : Group.{u3} G] [_inst_3 : TopologicalGroup.{u3} G _inst_1 _inst_2] {M : Type.{u2}} {hom : Type.{u1}} [_inst_5 : MulOneClass.{u2} M] [_inst_6 : TopologicalSpace.{u2} M] [_inst_7 : ContinuousMul.{u2} M _inst_6 (MulOneClass.toMul.{u2} M _inst_5)] [_inst_8 : MonoidHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5] (f : hom), (ContinuousAt.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f) (OfNat.ofNat.{u3} G 1 (One.toOfNat1.{u3} G (InvOneClass.toOne.{u3} G (DivInvOneMonoid.toInvOneClass.{u3} G (DivisionMonoid.toDivInvOneMonoid.{u3} G (Group.toDivisionMonoid.{u3} G _inst_2))))))) -> (Continuous.{u3, u2} G M _inst_1 _inst_6 (FunLike.coe.{succ u1, succ u3, succ u2} hom G (fun (_x : G) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : G) => M) _x) (MulHomClass.toFunLike.{u1, u3, u2} hom G M (MulOneClass.toMul.{u3} G (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)))) (MulOneClass.toMul.{u2} M _inst_5) (MonoidHomClass.toMulHomClass.{u1, u3, u2} hom G M (Monoid.toMulOneClass.{u3} G (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))) _inst_5 _inst_8)) f))
+Case conversion may be inaccurate. Consider using '#align continuous_of_continuous_at_one continuous_of_continuousAt_oneₓ'. -/
 /-- A monoid homomorphism (a bundled morphism of a type that implements `monoid_hom_class`) from a
 topological group to a topological monoid is continuous provided that it is continuous at one. See
 also `uniform_continuous_of_continuous_at_one`. -/
@@ -874,8 +1323,14 @@ theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [Topolog
     simpa only [ContinuousAt, ← map_mul_left_nhds_one x, tendsto_map'_iff, (· ∘ ·), map_mul,
       map_one, mul_one] using hf.tendsto.const_mul (f x)
 #align continuous_of_continuous_at_one continuous_of_continuousAt_one
-#align continuous_of_continuous_at_zero continuous_of_continuous_at_zero
+#align continuous_of_continuous_at_zero continuous_of_continuousAt_zero
 
+/- warning: topological_group.ext -> TopologicalGroup.ext is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5)))))))) (nhds.{u1} G t' (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_5))))))))) -> (Eq.{succ u1} (TopologicalSpace.{u1} G) t t')
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5))))))) (nhds.{u1} G t' (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_5)))))))) -> (Eq.{succ u1} (TopologicalSpace.{u1} G) t t')
+Case conversion may be inaccurate. Consider using '#align topological_group.ext TopologicalGroup.extₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _)
@@ -885,6 +1340,12 @@ theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
 #align topological_group.ext TopologicalGroup.ext
 #align topological_add_group.ext TopologicalAddGroup.ext
 
+/- warning: topological_group.ext_iff -> TopologicalGroup.ext_iff is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Iff (Eq.{succ u1} (TopologicalSpace.{u1} G) t t') (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5)))))))) (nhds.{u1} G t' (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_5))))))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] {t : TopologicalSpace.{u1} G} {t' : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t _inst_5) -> (TopologicalGroup.{u1} G t' _inst_5) -> (Iff (Eq.{succ u1} (TopologicalSpace.{u1} G) t t') (Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G t (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_5))))))) (nhds.{u1} G t' (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_5)))))))))
+Case conversion may be inaccurate. Consider using '#align topological_group.ext_iff TopologicalGroup.ext_iffₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _) :
@@ -893,20 +1354,32 @@ theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace
 #align topological_group.ext_iff TopologicalGroup.ext_iff
 #align topological_add_group.ext_iff TopologicalAddGroup.ext_iff
 
+/- warning: has_continuous_inv.of_nhds_one -> ContinuousInv.of_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (ContinuousInv.{u1} G _inst_6 (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (ContinuousInv.{u1} G _inst_6 (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))))
+Case conversion may be inaccurate. Consider using '#align has_continuous_inv.of_nhds_one ContinuousInv.of_nhds_oneₓ'. -/
 @[to_additive]
-theorem HasContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
+theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x : G => x₀ * x) (𝓝 1))
-    (hconj : ∀ x₀ : G, Tendsto (fun x : G => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)) : HasContinuousInv G :=
+    (hconj : ∀ x₀ : G, Tendsto (fun x : G => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)) : ContinuousInv G :=
   by
   refine' ⟨continuous_iff_continuousAt.2 fun x₀ => _⟩
   have : tendsto (fun x => x₀⁻¹ * (x₀ * x⁻¹ * x₀⁻¹)) (𝓝 1) (map ((· * ·) x₀⁻¹) (𝓝 1)) :=
     (tendsto_map.comp <| hconj x₀).comp hinv
   simpa only [ContinuousAt, hleft x₀, hleft x₀⁻¹, tendsto_map'_iff, (· ∘ ·), mul_assoc, mul_inv_rev,
     inv_mul_cancel_left] using this
-#align has_continuous_inv.of_nhds_one HasContinuousInv.of_nhds_one
-#align has_continuous_neg.of_nhds_zero HasContinuousNeg.of_nhds_zero
+#align has_continuous_inv.of_nhds_one ContinuousInv.of_nhds_one
+#align has_continuous_neg.of_nhds_zero ContinuousNeg.of_nhds_zero
 
+/- warning: topological_group.of_nhds_one' -> TopologicalGroup.of_nhds_one' is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6927 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6929 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6927 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.6929)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x x₀) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'ₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -914,8 +1387,8 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1))
     (hright : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x * x₀) (𝓝 1)) : TopologicalGroup G :=
   { to_continuousMul := ContinuousMul.of_nhds_one hmul hleft hright
-    to_hasContinuousInv :=
-      HasContinuousInv.of_nhds_one hinv hleft fun x₀ =>
+    to_continuousInv :=
+      ContinuousInv.of_nhds_one hinv hleft fun x₀ =>
         le_of_eq
           (by
             rw [show (fun x => x₀ * x * x₀⁻¹) = (fun x => x * x₀⁻¹) ∘ fun x => x₀ * x from rfl, ←
@@ -924,6 +1397,12 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 #align topological_group.of_nhds_one' TopologicalGroup.of_nhds_one'
 #align topological_add_group.of_nhds_zero' TopologicalAddGroup.of_nhds_zero'
 
+/- warning: topological_group.of_nhds_one -> TopologicalGroup.of_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5)) x₀)) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : Group.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7215 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7217 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7215 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7217)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Filter.Tendsto.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_5))))) x₀ x) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_5)))) x₀)) (nhds.{u1} G _inst_6 (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_5))))))) (nhds.{u1} G _inst_6 (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_5)))))))) -> (TopologicalGroup.{u1} G _inst_6 _inst_5)
+Case conversion may be inaccurate. Consider using '#align topological_group.of_nhds_one TopologicalGroup.of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -944,6 +1423,12 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 #align topological_group.of_nhds_one TopologicalGroup.of_nhds_one
 #align topological_add_group.of_nhds_zero TopologicalAddGroup.of_nhds_zero
 
+/- warning: topological_group.of_comm_of_nhds_one -> TopologicalGroup.of_comm_of_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))))) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5))) x) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5))))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_5 : CommGroup.{u1} G] [_inst_6 : TopologicalSpace.{u1} G], (Filter.Tendsto.{u1, u1} (Prod.{u1, u1} G G) G (Function.uncurry.{u1, u1, u1} G G G (fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7531 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7533 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7531 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.7533)) (Filter.prod.{u1, u1} G G (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (Filter.Tendsto.{u1, u1} G G (fun (x : G) => Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (DivisionCommMonoid.toDivisionMonoid.{u1} G (CommGroup.toDivisionCommMonoid.{u1} G _inst_5))))) x) (nhds.{u1} G _inst_6 (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_5)))))))) (nhds.{u1} G _inst_6 (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_5))))))))) -> (forall (x₀ : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_6 x₀) (Filter.map.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G (CommGroup.toGroup.{u1} G _inst_5)))))) x₀ x) (nhds.{u1} G _inst_6 (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_5)))))))))) -> (TopologicalGroup.{u1} G _inst_6 (CommGroup.toGroup.{u1} G _inst_5))
+Case conversion may be inaccurate. Consider using '#align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
@@ -959,15 +1444,18 @@ section QuotientTopologicalGroup
 
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G] (N : Subgroup G) (n : N.Normal)
 
+#print QuotientGroup.Quotient.topologicalSpace /-
 @[to_additive]
 instance QuotientGroup.Quotient.topologicalSpace {G : Type _} [Group G] [TopologicalSpace G]
     (N : Subgroup G) : TopologicalSpace (G ⧸ N) :=
   Quotient.topologicalSpace
 #align quotient_group.quotient.topological_space QuotientGroup.Quotient.topologicalSpace
-#align quotient_add_group.quotient.topological_space quotientAddGroup.Quotient.topologicalSpace
+#align quotient_add_group.quotient.topological_space QuotientAddGroup.Quotient.topologicalSpace
+-/
 
 open QuotientGroup
 
+#print QuotientGroup.isOpenMap_coe /-
 @[to_additive]
 theorem QuotientGroup.isOpenMap_coe : IsOpenMap (coe : G → G ⧸ N) :=
   by
@@ -976,8 +1464,10 @@ theorem QuotientGroup.isOpenMap_coe : IsOpenMap (coe : G → G ⧸ N) :=
   rw [QuotientGroup.preimage_image_mk N s]
   exact isOpen_unionᵢ fun n => (continuous_mul_right _).isOpen_preimage s s_op
 #align quotient_group.is_open_map_coe QuotientGroup.isOpenMap_coe
-#align quotient_add_group.is_open_map_coe quotientAddGroup.isOpenMap_coe
+#align quotient_add_group.is_open_map_coe QuotientAddGroup.isOpenMap_coe
+-/
 
+#print topologicalGroup_quotient /-
 @[to_additive]
 instance topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N)
     where
@@ -994,18 +1484,27 @@ instance topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N)
     exact (QuotientMap.continuous_iff Quot).2 cont
   continuous_inv := by convert (@continuous_inv G _ _ _).quotient_map' _
 #align topological_group_quotient topologicalGroup_quotient
-#align topological_add_group_quotient topological_add_group_quotient
+#align topological_add_group_quotient topologicalAddGroup_quotient
+-/
 
+#print QuotientGroup.nhds_eq /-
 /-- Neighborhoods in the quotient are precisely the map of neighborhoods in the prequotient. -/
 @[to_additive
       "Neighborhoods in the quotient are precisely the map of neighborhoods in\nthe prequotient."]
 theorem QuotientGroup.nhds_eq (x : G) : 𝓝 (x : G ⧸ N) = map coe (𝓝 x) :=
   le_antisymm ((QuotientGroup.isOpenMap_coe N).nhds_le x) continuous_quot_mk.ContinuousAt
 #align quotient_group.nhds_eq QuotientGroup.nhds_eq
-#align quotient_add_group.nhds_eq quotientAddGroup.nhds_eq
+#align quotient_add_group.nhds_eq QuotientAddGroup.nhds_eq
+-/
 
 variable (G) [FirstCountableTopology G]
 
+/- warning: topological_group.exists_antitone_basis_nhds_one -> TopologicalGroup.exists_antitone_basis_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Exists.{succ u1} (Nat -> (Set.{u1} G)) (fun (u : Nat -> (Set.{u1} G)) => And (Filter.HasAntitoneBasis.{u1, 0} G Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (nhds.{u1} G _inst_1 (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_2)))))))) u) (forall (n : Nat), HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (u n)))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Exists.{succ u1} (Nat -> (Set.{u1} G)) (fun (u : Nat -> (Set.{u1} G)) => And (Filter.HasAntitoneBasis.{u1, 0} G Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (nhds.{u1} G _inst_1 (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_2))))))) u) (forall (n : Nat), HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (u (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (u n)))
+Case conversion may be inaccurate. Consider using '#align topological_group.exists_antitone_basis_nhds_one TopologicalGroup.exists_antitone_basis_nhds_oneₓ'. -/
 /-- Any first countable topological group has an antitone neighborhood basis `u : ℕ → set G` for
 which `(u (n + 1)) ^ 2 ⊆ u n`. The existence of such a neighborhood basis is a key tool for
 `quotient_group.complete_space` -/
@@ -1034,6 +1533,12 @@ theorem TopologicalGroup.exists_antitone_basis_nhds_one :
 
 include n
 
+/- warning: quotient_group.nhds_one_is_countably_generated -> QuotientGroup.nhds_one_isCountablyGenerated is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (N : Subgroup.{u1} G _inst_2) (n : Subgroup.Normal.{u1} G _inst_2 N) [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Filter.IsCountablyGenerated.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (nhds.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 N) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) 1 (OfNat.mk.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) 1 (One.one.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (MulOneClass.toHasOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (Monoid.toMulOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (DivInvMonoid.toMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (Group.toDivInvMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) N) (QuotientGroup.Quotient.group.{u1} G _inst_2 N n)))))))))
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (N : Subgroup.{u1} G _inst_2) (n : Subgroup.Normal.{u1} G _inst_2 N) [_inst_4 : TopologicalSpace.FirstCountableTopology.{u1} G _inst_1], Filter.IsCountablyGenerated.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (nhds.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 N) (OfNat.ofNat.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) 1 (One.toOfNat1.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (InvOneClass.toOne.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (DivInvOneMonoid.toInvOneClass.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (DivisionMonoid.toDivInvOneMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (Group.toDivisionMonoid.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) N) (QuotientGroup.Quotient.group.{u1} G _inst_2 N n))))))))
+Case conversion may be inaccurate. Consider using '#align quotient_group.nhds_one_is_countably_generated QuotientGroup.nhds_one_isCountablyGeneratedₓ'. -/
 /-- In a first countable topological group `G` with normal subgroup `N`, `1 : G ⧸ N` has a
 countable neighborhood basis. -/
 @[to_additive
@@ -1041,110 +1546,139 @@ countable neighborhood basis. -/
 instance QuotientGroup.nhds_one_isCountablyGenerated : (𝓝 (1 : G ⧸ N)).IsCountablyGenerated :=
   (QuotientGroup.nhds_eq N 1).symm ▸ map.isCountablyGenerated _ _
 #align quotient_group.nhds_one_is_countably_generated QuotientGroup.nhds_one_isCountablyGenerated
-#align quotient_add_group.nhds_zero_is_countably_generated quotientAddGroup.nhds_zero_isCountablyGenerated
+#align quotient_add_group.nhds_zero_is_countably_generated QuotientAddGroup.nhds_zero_isCountablyGenerated
 
 end QuotientTopologicalGroup
 
+#print ContinuousSub /-
 /-- A typeclass saying that `λ p : G × G, p.1 - p.2` is a continuous function. This property
 automatically holds for topological additive groups but it also holds, e.g., for `ℝ≥0`. -/
-class HasContinuousSub (G : Type _) [TopologicalSpace G] [Sub G] : Prop where
+class ContinuousSub (G : Type _) [TopologicalSpace G] [Sub G] : Prop where
   continuous_sub : Continuous fun p : G × G => p.1 - p.2
-#align has_continuous_sub HasContinuousSub
+#align has_continuous_sub ContinuousSub
+-/
 
+#print ContinuousDiv /-
 /-- A typeclass saying that `λ p : G × G, p.1 / p.2` is a continuous function. This property
 automatically holds for topological groups. Lemmas using this class have primes.
 The unprimed version is for `group_with_zero`. -/
 @[to_additive]
-class HasContinuousDiv (G : Type _) [TopologicalSpace G] [Div G] : Prop where
+class ContinuousDiv (G : Type _) [TopologicalSpace G] [Div G] : Prop where
   continuous_div' : Continuous fun p : G × G => p.1 / p.2
-#align has_continuous_div HasContinuousDiv
-#align has_continuous_sub HasContinuousSub
+#align has_continuous_div ContinuousDiv
+#align has_continuous_sub ContinuousSub
+-/
 
+/- warning: topological_group.to_has_continuous_div -> TopologicalGroup.to_continuousDiv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], ContinuousDiv.{u1} G _inst_1 (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], ContinuousDiv.{u1} G _inst_1 (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))
+Case conversion may be inaccurate. Consider using '#align topological_group.to_has_continuous_div TopologicalGroup.to_continuousDivₓ'. -/
 -- see Note [lower instance priority]
 @[to_additive]
-instance (priority := 100) TopologicalGroup.to_hasContinuousDiv [TopologicalSpace G] [Group G]
-    [TopologicalGroup G] : HasContinuousDiv G :=
+instance (priority := 100) TopologicalGroup.to_continuousDiv [TopologicalSpace G] [Group G]
+    [TopologicalGroup G] : ContinuousDiv G :=
   ⟨by
     simp only [div_eq_mul_inv]
     exact continuous_fst.mul continuous_snd.inv⟩
-#align topological_group.to_has_continuous_div TopologicalGroup.to_hasContinuousDiv
-#align topological_add_group.to_has_continuous_sub TopologicalAddGroup.to_has_continuous_sub
+#align topological_group.to_has_continuous_div TopologicalGroup.to_continuousDiv
+#align topological_add_group.to_has_continuous_sub TopologicalAddGroup.to_continuousSub
 
-export HasContinuousSub (continuous_sub)
+export ContinuousSub (continuous_sub)
 
-export HasContinuousDiv (continuous_div')
+export ContinuousDiv (continuous_div')
 
-section HasContinuousDiv
+section ContinuousDiv
 
-variable [TopologicalSpace G] [Div G] [HasContinuousDiv G]
+variable [TopologicalSpace G] [Div G] [ContinuousDiv G]
 
+#print Filter.Tendsto.div' /-
 @[to_additive sub]
 theorem Filter.Tendsto.div' {f g : α → G} {l : Filter α} {a b : G} (hf : Tendsto f l (𝓝 a))
     (hg : Tendsto g l (𝓝 b)) : Tendsto (fun x => f x / g x) l (𝓝 (a / b)) :=
   (continuous_div'.Tendsto (a, b)).comp (hf.prod_mk_nhds hg)
 #align filter.tendsto.div' Filter.Tendsto.div'
 #align filter.tendsto.sub Filter.Tendsto.sub
+-/
 
+#print Filter.Tendsto.const_div' /-
 @[to_additive const_sub]
 theorem Filter.Tendsto.const_div' (b : G) {c : G} {f : α → G} {l : Filter α}
     (h : Tendsto f l (𝓝 c)) : Tendsto (fun k : α => b / f k) l (𝓝 (b / c)) :=
   tendsto_const_nhds.div' h
 #align filter.tendsto.const_div' Filter.Tendsto.const_div'
 #align filter.tendsto.const_sub Filter.Tendsto.const_sub
+-/
 
+#print Filter.Tendsto.div_const' /-
 @[to_additive sub_const]
 theorem Filter.Tendsto.div_const' {c : G} {f : α → G} {l : Filter α} (h : Tendsto f l (𝓝 c))
     (b : G) : Tendsto (fun k : α => f k / b) l (𝓝 (c / b)) :=
   h.div' tendsto_const_nhds
 #align filter.tendsto.div_const' Filter.Tendsto.div_const'
 #align filter.tendsto.sub_const Filter.Tendsto.sub_const
+-/
 
 variable [TopologicalSpace α] {f g : α → G} {s : Set α} {x : α}
 
+#print Continuous.div' /-
 @[continuity, to_additive sub]
 theorem Continuous.div' (hf : Continuous f) (hg : Continuous g) : Continuous fun x => f x / g x :=
   continuous_div'.comp (hf.prod_mk hg : _)
 #align continuous.div' Continuous.div'
 #align continuous.sub Continuous.sub
+-/
 
+#print continuous_div_left' /-
 @[to_additive continuous_sub_left]
 theorem continuous_div_left' (a : G) : Continuous fun b : G => a / b :=
   continuous_const.div' continuous_id
 #align continuous_div_left' continuous_div_left'
 #align continuous_sub_left continuous_sub_left
+-/
 
+#print continuous_div_right' /-
 @[to_additive continuous_sub_right]
 theorem continuous_div_right' (a : G) : Continuous fun b : G => b / a :=
   continuous_id.div' continuous_const
 #align continuous_div_right' continuous_div_right'
 #align continuous_sub_right continuous_sub_right
+-/
 
+#print ContinuousAt.div' /-
 @[to_additive sub]
 theorem ContinuousAt.div' {f g : α → G} {x : α} (hf : ContinuousAt f x) (hg : ContinuousAt g x) :
     ContinuousAt (fun x => f x / g x) x :=
   hf.div' hg
 #align continuous_at.div' ContinuousAt.div'
 #align continuous_at.sub ContinuousAt.sub
+-/
 
+#print ContinuousWithinAt.div' /-
 @[to_additive sub]
 theorem ContinuousWithinAt.div' (hf : ContinuousWithinAt f s x) (hg : ContinuousWithinAt g s x) :
     ContinuousWithinAt (fun x => f x / g x) s x :=
   hf.div' hg
 #align continuous_within_at.div' ContinuousWithinAt.div'
 #align continuous_within_at.sub ContinuousWithinAt.sub
+-/
 
+#print ContinuousOn.div' /-
 @[to_additive sub]
 theorem ContinuousOn.div' (hf : ContinuousOn f s) (hg : ContinuousOn g s) :
     ContinuousOn (fun x => f x / g x) s := fun x hx => (hf x hx).div' (hg x hx)
 #align continuous_on.div' ContinuousOn.div'
 #align continuous_on.sub ContinuousOn.sub
+-/
 
-end HasContinuousDiv
+end ContinuousDiv
 
 section DivInTopologicalGroup
 
 variable [Group G] [TopologicalSpace G] [TopologicalGroup G]
 
+#print Homeomorph.divLeft /-
 /-- A version of `homeomorph.mul_left a b⁻¹` that is defeq to `a / b`. -/
 @[to_additive " A version of `homeomorph.add_left a (-b)` that is defeq to `a - b`. ",
   simps (config := { simpRhs := true })]
@@ -1154,19 +1688,33 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
     continuous_invFun := continuous_inv.mul continuous_const }
 #align homeomorph.div_left Homeomorph.divLeft
 #align homeomorph.sub_left Homeomorph.subLeft
+-/
 
+/- warning: is_open_map_div_left -> isOpenMap_div_left 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
+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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9323 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9325 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9323 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9325) a)
+Case conversion may be inaccurate. Consider using '#align is_open_map_div_left isOpenMap_div_leftₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
   (Homeomorph.divLeft _).IsOpenMap
 #align is_open_map_div_left isOpenMap_div_left
 #align is_open_map_sub_left isOpenMap_sub_left
 
+/- warning: is_closed_map_div_left -> isClosedMap_div_left 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a)
+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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 ((fun (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9365 : G) (x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9367 : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9365 x._@.Mathlib.Topology.Algebra.Group.Basic._hyg.9367) a)
+Case conversion may be inaccurate. Consider using '#align is_closed_map_div_left isClosedMap_div_leftₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
   (Homeomorph.divLeft _).IsClosedMap
 #align is_closed_map_div_left isClosedMap_div_left
 #align is_closed_map_sub_left isClosedMap_sub_left
 
+#print Homeomorph.divRight /-
 /-- A version of `homeomorph.mul_right a⁻¹ b` that is defeq to `b / a`. -/
 @[to_additive " A version of `homeomorph.add_right (-a) b` that is defeq to `b - a`. ",
   simps (config := { simpRhs := true })]
@@ -1176,19 +1724,38 @@ def Homeomorph.divRight (x : G) : G ≃ₜ G :=
     continuous_invFun := continuous_id.mul continuous_const }
 #align homeomorph.div_right Homeomorph.divRight
 #align homeomorph.sub_right Homeomorph.subRight
+-/
 
+/- warning: is_open_map_div_right -> isOpenMap_div_right 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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
+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] (a : G), IsOpenMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
+Case conversion may be inaccurate. Consider using '#align is_open_map_div_right isOpenMap_div_rightₓ'. -/
 @[to_additive]
 theorem isOpenMap_div_right (a : G) : IsOpenMap fun x => x / a :=
   (Homeomorph.divRight a).IsOpenMap
 #align is_open_map_div_right isOpenMap_div_right
 #align is_open_map_sub_right isOpenMap_sub_right
 
+/- warning: is_closed_map_div_right -> isClosedMap_div_right 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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
+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] (a : G), IsClosedMap.{u1, u1} G G _inst_2 _inst_2 (fun (x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) x a)
+Case conversion may be inaccurate. Consider using '#align is_closed_map_div_right isClosedMap_div_rightₓ'. -/
 @[to_additive]
 theorem isClosedMap_div_right (a : G) : IsClosedMap fun x => x / a :=
   (Homeomorph.divRight a).IsClosedMap
 #align is_closed_map_div_right isClosedMap_div_right
 #align is_closed_map_sub_right isClosedMap_sub_right
 
+/- warning: tendsto_div_nhds_one_iff -> tendsto_div_nhds_one_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}} {l : Filter.{u2} α} {x : G} {u : α -> G}, Iff (Filter.Tendsto.{u2, u1} α G (fun (n : α) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) (u n) x) l (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.Tendsto.{u2, u1} α G u l (nhds.{u1} G _inst_2 x))
+but is expected to have type
+  forall {G : Type.{u2}} [_inst_1 : Group.{u2} G] [_inst_2 : TopologicalSpace.{u2} G] [_inst_3 : TopologicalGroup.{u2} G _inst_2 _inst_1] {α : Type.{u1}} {l : Filter.{u1} α} {x : G} {u : α -> G}, Iff (Filter.Tendsto.{u1, u2} α G (fun (n : α) => HDiv.hDiv.{u2, u2, u2} G G G (instHDiv.{u2} G (DivInvMonoid.toDiv.{u2} G (Group.toDivInvMonoid.{u2} G _inst_1))) (u n) x) l (nhds.{u2} G _inst_2 (OfNat.ofNat.{u2} G 1 (One.toOfNat1.{u2} G (InvOneClass.toOne.{u2} G (DivInvOneMonoid.toInvOneClass.{u2} G (DivisionMonoid.toDivInvOneMonoid.{u2} G (Group.toDivisionMonoid.{u2} G _inst_1)))))))) (Filter.Tendsto.{u1, u2} α G u l (nhds.{u2} G _inst_2 x))
+Case conversion may be inaccurate. Consider using '#align tendsto_div_nhds_one_iff tendsto_div_nhds_one_iffₓ'. -/
 @[to_additive]
 theorem tendsto_div_nhds_one_iff {α : Type _} {l : Filter α} {x : G} {u : α → G} :
     Tendsto (fun n => u n / x) l (𝓝 1) ↔ Tendsto u l (𝓝 x) :=
@@ -1197,6 +1764,12 @@ theorem tendsto_div_nhds_one_iff {α : Type _} {l : Filter α} {x : G} {u : α 
 #align tendsto_div_nhds_one_iff tendsto_div_nhds_one_iff
 #align tendsto_sub_nhds_zero_iff tendsto_sub_nhds_zero_iff
 
+/- warning: nhds_translation_div -> nhds_translation_div 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] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (_x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _x x) (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))))))))) (nhds.{u1} G _inst_2 x)
+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] (x : G), Eq.{succ u1} (Filter.{u1} G) (Filter.comap.{u1, u1} G G (fun (_x : G) => HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) _x x) (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)))))))) (nhds.{u1} G _inst_2 x)
+Case conversion may be inaccurate. Consider using '#align nhds_translation_div nhds_translation_divₓ'. -/
 @[to_additive]
 theorem nhds_translation_div (x : G) : comap (· / x) (𝓝 1) = 𝓝 x := by
   simpa only [div_eq_mul_inv] using nhds_translation_mul_inv x
@@ -1219,6 +1792,7 @@ section ContinuousConstSMul
 variable [TopologicalSpace β] [Group α] [MulAction α β] [ContinuousConstSMul α β] {s : Set α}
   {t : Set β}
 
+#print IsOpen.smul_left /-
 @[to_additive]
 theorem IsOpen.smul_left (ht : IsOpen t) : IsOpen (s • t) :=
   by
@@ -1226,13 +1800,17 @@ theorem IsOpen.smul_left (ht : IsOpen t) : IsOpen (s • t) :=
   exact isOpen_bunionᵢ fun a _ => ht.smul _
 #align is_open.smul_left IsOpen.smul_left
 #align is_open.vadd_left IsOpen.vadd_left
+-/
 
+#print subset_interior_smul_right /-
 @[to_additive]
 theorem subset_interior_smul_right : s • interior t ⊆ interior (s • t) :=
   interior_maximal (Set.smul_subset_smul_left interior_subset) isOpen_interior.smul_left
 #align subset_interior_smul_right subset_interior_smul_right
 #align subset_interior_vadd_right subset_interior_vadd_right
+-/
 
+#print smul_mem_nhds /-
 @[to_additive]
 theorem smul_mem_nhds (a : α) {x : β} (ht : t ∈ 𝓝 x) : a • t ∈ 𝓝 (a • x) :=
   by
@@ -1240,14 +1818,17 @@ theorem smul_mem_nhds (a : α) {x : β} (ht : t ∈ 𝓝 x) : a • t ∈ 𝓝 (
   exact mem_nhds_iff.2 ⟨a • u, smul_set_mono ut, u_open.smul a, smul_mem_smul_set hu⟩
 #align smul_mem_nhds smul_mem_nhds
 #align vadd_mem_nhds vadd_mem_nhds
+-/
 
 variable [TopologicalSpace α]
 
+#print subset_interior_smul /-
 @[to_additive]
 theorem subset_interior_smul : interior s • interior t ⊆ interior (s • t) :=
   (Set.smul_subset_smul_right interior_subset).trans subset_interior_smul_right
 #align subset_interior_smul subset_interior_smul
 #align subset_interior_vadd subset_interior_vadd
+-/
 
 end ContinuousConstSMul
 
@@ -1255,24 +1836,48 @@ section ContinuousConstSMul
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul α α] {s t : Set α}
 
+/- warning: is_open.mul_left -> IsOpen.mul_left is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.mul_left IsOpen.mul_leftₓ'. -/
 @[to_additive]
 theorem IsOpen.mul_left : IsOpen t → IsOpen (s * t) :=
   IsOpen.smul_left
 #align is_open.mul_left IsOpen.mul_left
 #align is_open.add_left IsOpen.add_left
 
+/- warning: subset_interior_mul_right -> subset_interior_mul_right is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align subset_interior_mul_right subset_interior_mul_rightₓ'. -/
 @[to_additive]
 theorem subset_interior_mul_right : s * interior t ⊆ interior (s * t) :=
   subset_interior_smul_right
 #align subset_interior_mul_right subset_interior_mul_right
 #align subset_interior_add_right subset_interior_add_right
 
+/- warning: subset_interior_mul -> subset_interior_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align subset_interior_mul subset_interior_mulₓ'. -/
 @[to_additive]
 theorem subset_interior_mul : interior s * interior t ⊆ interior (s * t) :=
   subset_interior_smul
 #align subset_interior_mul subset_interior_mul
 #align subset_interior_add subset_interior_add
 
+/- warning: singleton_mul_mem_nhds -> singleton_mul_mem_nhds is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a) s) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) a b)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a) s) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) a b)))
+Case conversion may be inaccurate. Consider using '#align singleton_mul_mem_nhds singleton_mul_mem_nhdsₓ'. -/
 @[to_additive]
 theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s ∈ 𝓝 (a * b) :=
   by
@@ -1281,6 +1886,12 @@ theorem singleton_mul_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : {a} * s 
 #align singleton_mul_mem_nhds singleton_mul_mem_nhds
 #align singleton_add_mem_nhds singleton_add_mem_nhds
 
+/- warning: singleton_mul_mem_nhds_of_nhds_one -> singleton_mul_mem_nhds_of_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (Mul.toSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{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))))))))) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a) s) (nhds.{u1} α _inst_1 a))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} α α _inst_1 (MulAction.toSMul.{u1, u1} α α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)) (Monoid.toMulAction.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))] {s : Set.{u1} α} (a : α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a) s) (nhds.{u1} α _inst_1 a))
+Case conversion may be inaccurate. Consider using '#align singleton_mul_mem_nhds_of_nhds_one singleton_mul_mem_nhds_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem singleton_mul_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) : {a} * s ∈ 𝓝 a := by
   simpa only [mul_one] using singleton_mul_mem_nhds a h
@@ -1293,6 +1904,12 @@ section HasContinuousConstSmulOp
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul αᵐᵒᵖ α] {s t : Set α}
 
+/- warning: is_open.mul_right -> IsOpen.mul_right is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.mul_right IsOpen.mul_rightₓ'. -/
 @[to_additive]
 theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) :=
   by
@@ -1301,18 +1918,36 @@ theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) :=
 #align is_open.mul_right IsOpen.mul_right
 #align is_open.add_right IsOpen.add_right
 
+/- warning: subset_interior_mul_left -> subset_interior_mul_left is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align subset_interior_mul_left subset_interior_mul_leftₓ'. -/
 @[to_additive]
 theorem subset_interior_mul_left : interior s * t ⊆ interior (s * t) :=
   interior_maximal (Set.mul_subset_mul_right interior_subset) isOpen_interior.mulRight
 #align subset_interior_mul_left subset_interior_mul_left
 #align subset_interior_add_left subset_interior_add_left
 
+/- warning: subset_interior_mul' -> subset_interior_mul' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align subset_interior_mul' subset_interior_mul'ₓ'. -/
 @[to_additive]
 theorem subset_interior_mul' : interior s * interior t ⊆ interior (s * t) :=
   (Set.mul_subset_mul_left interior_subset).trans subset_interior_mul_left
 #align subset_interior_mul' subset_interior_mul'
 #align subset_interior_add' subset_interior_add'
 
+/- warning: mul_singleton_mem_nhds -> mul_singleton_mem_nhds is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a)) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) b a)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α) {b : α}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 b)) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a)) (nhds.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2))))) b a)))
+Case conversion may be inaccurate. Consider using '#align mul_singleton_mem_nhds mul_singleton_mem_nhdsₓ'. -/
 @[to_additive]
 theorem mul_singleton_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : s * {a} ∈ 𝓝 (b * a) :=
   by
@@ -1321,6 +1956,12 @@ theorem mul_singleton_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : s * {a} 
 #align mul_singleton_mem_nhds mul_singleton_mem_nhds
 #align add_singleton_mem_nhds add_singleton_mem_nhds
 
+/- warning: mul_singleton_mem_nhds_of_nhds_one -> mul_singleton_mem_nhds_of_nhds_one is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{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))))))))) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) a)) (nhds.{u1} α _inst_1 a))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : ContinuousConstSMul.{u1, u1} (MulOpposite.{u1} α) α _inst_1 (Mul.toHasOppositeSMul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))] {s : Set.{u1} α} (a : α), (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) s (nhds.{u1} α _inst_1 (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (InvOneClass.toOne.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_2)))))))) -> (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) a)) (nhds.{u1} α _inst_1 a))
+Case conversion may be inaccurate. Consider using '#align mul_singleton_mem_nhds_of_nhds_one mul_singleton_mem_nhds_of_nhds_oneₓ'. -/
 @[to_additive]
 theorem mul_singleton_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) : s * {a} ∈ 𝓝 a := by
   simpa only [one_mul] using mul_singleton_mem_nhds a h
@@ -1333,6 +1974,12 @@ section TopologicalGroup
 
 variable [TopologicalSpace α] [Group α] [TopologicalGroup α] {s t : Set α}
 
+/- warning: is_open.div_left -> IsOpen.div_left is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.div_left IsOpen.div_leftₓ'. -/
 @[to_additive]
 theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) :=
   by
@@ -1341,6 +1988,12 @@ theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) :=
 #align is_open.div_left IsOpen.div_left
 #align is_open.sub_left IsOpen.sub_left
 
+/- warning: is_open.div_right -> IsOpen.div_right is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (IsOpen.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.div_right IsOpen.div_rightₓ'. -/
 @[to_additive]
 theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) :=
   by
@@ -1349,24 +2002,48 @@ theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) :=
 #align is_open.div_right IsOpen.div_right
 #align is_open.sub_right IsOpen.sub_right
 
+/- warning: subset_interior_div_left -> subset_interior_div_left is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) t) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+Case conversion may be inaccurate. Consider using '#align subset_interior_div_left subset_interior_div_leftₓ'. -/
 @[to_additive]
 theorem subset_interior_div_left : interior s / t ⊆ interior (s / t) :=
   interior_maximal (div_subset_div_right interior_subset) isOpen_interior.divRight
 #align subset_interior_div_left subset_interior_div_left
 #align subset_interior_sub_left subset_interior_sub_left
 
+/- warning: subset_interior_div_right -> subset_interior_div_right is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+Case conversion may be inaccurate. Consider using '#align subset_interior_div_right subset_interior_div_rightₓ'. -/
 @[to_additive]
 theorem subset_interior_div_right : s / interior t ⊆ interior (s / t) :=
   interior_maximal (div_subset_div_left interior_subset) isOpen_interior.divLeft
 #align subset_interior_div_right subset_interior_div_right
 #align subset_interior_sub_right subset_interior_sub_right
 
+/- warning: subset_interior_div -> subset_interior_div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α} {t : Set.{u1} α}, HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (interior.{u1} α _inst_1 s) (interior.{u1} α _inst_1 t)) (interior.{u1} α _inst_1 (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+Case conversion may be inaccurate. Consider using '#align subset_interior_div subset_interior_divₓ'. -/
 @[to_additive]
 theorem subset_interior_div : interior s / interior t ⊆ interior (s / t) :=
   (div_subset_div_left interior_subset).trans subset_interior_div_left
 #align subset_interior_div subset_interior_div
 #align subset_interior_sub subset_interior_sub
 
+/- warning: is_open.mul_closure -> IsOpen.mul_closure is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (closure.{u1} α _inst_1 t)) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s (closure.{u1} α _inst_1 t)) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.mul_closure IsOpen.mul_closureₓ'. -/
 @[to_additive]
 theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t :=
   by
@@ -1378,6 +2055,12 @@ theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t
 #align is_open.mul_closure IsOpen.mul_closure
 #align is_open.add_closure IsOpen.add_closure
 
+/- warning: is_open.closure_mul -> IsOpen.closure_mul is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (closure.{u1} α _inst_1 s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) (closure.{u1} α _inst_1 s) t) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.closure_mul IsOpen.closure_mulₓ'. -/
 @[to_additive]
 theorem IsOpen.closure_mul (ht : IsOpen t) (s : Set α) : closure s * t = s * t := by
   rw [← inv_inv (closure s * t), mul_inv_rev, inv_closure, ht.inv.mul_closure, mul_inv_rev, inv_inv,
@@ -1385,12 +2068,24 @@ theorem IsOpen.closure_mul (ht : IsOpen t) (s : Set α) : closure s * t = s * t
 #align is_open.closure_mul IsOpen.closure_mul
 #align is_open.closure_add IsOpen.closure_add
 
+/- warning: is_open.div_closure -> IsOpen.div_closure is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (closure.{u1} α _inst_1 t)) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s (closure.{u1} α _inst_1 t)) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.div_closure IsOpen.div_closureₓ'. -/
 @[to_additive]
 theorem IsOpen.div_closure (hs : IsOpen s) (t : Set α) : s / closure t = s / t := by
   simp_rw [div_eq_mul_inv, inv_closure, hs.mul_closure]
 #align is_open.div_closure IsOpen.div_closure
 #align is_open.sub_closure IsOpen.sub_closure
 
+/- warning: is_open.closure_div -> IsOpen.closure_div is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (closure.{u1} α _inst_1 s) t) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toHasDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u1} α] [_inst_3 : TopologicalGroup.{u1} α _inst_1 _inst_2] {t : Set.{u1} α}, (IsOpen.{u1} α _inst_1 t) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) (closure.{u1} α _inst_1 s) t) (HDiv.hDiv.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHDiv.{u1} (Set.{u1} α) (Set.div.{u1} α (DivInvMonoid.toDiv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_2)))) s t))
+Case conversion may be inaccurate. Consider using '#align is_open.closure_div IsOpen.closure_divₓ'. -/
 @[to_additive]
 theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t := by
   simp_rw [div_eq_mul_inv, ht.inv.closure_mul]
@@ -1399,6 +2094,7 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 
 end TopologicalGroup
 
+#print AddGroupWithZeroNhd /-
 /- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`z] [] -/
 /-- additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
@@ -1411,6 +2107,7 @@ class AddGroupWithZeroNhd (G : Type u) extends AddCommGroup G where
   zero_z : pure 0 ≤ Z
   sub_z : Tendsto (fun p : G × G => p.1 - p.2) (Z ×ᶠ Z) Z
 #align add_group_with_zero_nhd AddGroupWithZeroNhd
+-/
 
 section FilterMul
 
@@ -1418,6 +2115,12 @@ section
 
 variable (G) [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
+/- warning: topological_group.t1_space -> TopologicalGroup.t1Space is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], (IsClosed.{u1} G _inst_1 (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 _inst_2))))))))) -> (T1Space.{u1} G _inst_1)
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], (IsClosed.{u1} G _inst_1 (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 (Group.toDivisionMonoid.{u1} G _inst_2)))))))) -> (T1Space.{u1} G _inst_1)
+Case conversion may be inaccurate. Consider using '#align topological_group.t1_space TopologicalGroup.t1Spaceₓ'. -/
 @[to_additive]
 theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
   ⟨fun x => by
@@ -1426,6 +2129,7 @@ theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
 #align topological_group.t1_space TopologicalGroup.t1Space
 #align topological_add_group.t1_space TopologicalAddGroup.t1Space
 
+#print TopologicalGroup.regularSpace /-
 @[to_additive]
 instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
   by
@@ -1443,13 +2147,17 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G :=
     
 #align topological_group.regular_space TopologicalGroup.regularSpace
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
+-/
 
+#print TopologicalGroup.t3Space /-
 @[to_additive]
 theorem TopologicalGroup.t3Space [T1Space G] : T3Space G :=
   ⟨⟩
 #align topological_group.t3_space TopologicalGroup.t3Space
 #align topological_add_group.t3_space TopologicalAddGroup.t3Space
+-/
 
+#print TopologicalGroup.t2Space /-
 @[to_additive]
 theorem TopologicalGroup.t2Space [T1Space G] : T2Space G :=
   by
@@ -1457,9 +2165,16 @@ theorem TopologicalGroup.t2Space [T1Space G] : T2Space G :=
   infer_instance
 #align topological_group.t2_space TopologicalGroup.t2Space
 #align topological_add_group.t2_space TopologicalAddGroup.t2Space
+-/
 
 variable {G} (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
+/- warning: subgroup.t3_quotient_of_is_closed -> Subgroup.t3_quotient_of_isClosed is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [_inst_7 : IsClosed.{u1} G _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subgroup.{u1} G _inst_2) (Set.{u1} G) (HasLiftT.mk.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (CoeTCₓ.coe.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Set.{u1} G) (SetLike.Set.hasCoeT.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)))) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.Subgroup.hasQuotient.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2) [_inst_6 : Subgroup.Normal.{u1} G _inst_2 S] [_inst_7 : IsClosed.{u1} G _inst_1 (SetLike.coe.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2) S)], T3Space.{u1} (HasQuotient.Quotient.{u1, u1} G (Subgroup.{u1} G _inst_2) (QuotientGroup.instHasQuotientSubgroup.{u1} G _inst_2) S) (QuotientGroup.Quotient.topologicalSpace.{u1} G _inst_2 _inst_1 S)
+Case conversion may be inaccurate. Consider using '#align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosedₓ'. -/
 @[to_additive]
 instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
     [IsClosed (S : Set G)] : T3Space (G ⧸ S) :=
@@ -1471,6 +2186,12 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
 
+/- warning: subgroup.properly_discontinuous_smul_of_tendsto_cofinite -> Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S))) (Subgroup.mulAction.{u1, u1} G _inst_2 G (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) S)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G _inst_1 (Submonoid.smul.{u1, u1} G G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)))
+Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the left, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
 `discrete_topology`.) -/
@@ -1487,10 +2208,16 @@ theorem Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite (S : Subgroup G)
       ext x
       simpa only [image_smul, mem_image, Prod.exists] using Set.smul_inter_ne_empty_iff' }
 #align subgroup.properly_discontinuous_smul_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_of_tendsto_cofinite
-#align add_subgroup.properly_discontinuous_vadd_of_tendsto_cofinite AddSubgroup.properly_discontinuous_vadd_of_tendsto_cofinite
+#align add_subgroup.properly_discontinuous_vadd_of_tendsto_cofinite AddSubgroup.properlyDiscontinuousVAdd_of_tendsto_cofinite
 
 attribute [local semireducible] MulOpposite
 
+/- warning: subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite -> Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (coeFn.{succ u1, succ u1} (MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (fun (_x : MonoidHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) => (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) -> G) (MonoidHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) G (Monoid.toMulOneClass.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S) (Subgroup.toGroup.{u1} G _inst_2 S)))) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} G _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.setLike.{u1} G _inst_2)) S)) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G _inst_1 (MulAction.toHasSmul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) G (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2)) (MulOpposite.{u1} G) (Subgroup.setLike.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)) (Subgroup.toGroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S)))) (Subgroup.mulAction.{u1, u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2) G (Monoid.toOppositeMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (coeFn.{succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (fun (_x : Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) => (Subgroup.{u1} G _inst_2) -> (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Equiv.hasCoeToFun.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.group.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (S : Subgroup.{u1} G _inst_2), (Filter.Tendsto.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (FunLike.coe.{succ u1, succ u1, succ u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (fun (_x : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) => G) _x) (MulHomClass.toFunLike.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (MulOneClass.toMul.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S))) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (MonoidHomClass.toMulHomClass.{u1, u1, u1} (MonoidHom.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (MonoidHom.monoidHomClass.{u1, u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S)) G (Submonoid.toMulOneClass.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) (Subgroup.toSubmonoid.{u1} G _inst_2 S)) (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (Subgroup.subtype.{u1} G _inst_2 S)) (Filter.cofinite.{u1} (Subtype.{succ u1} G (fun (x : G) => Membership.mem.{u1, u1} G (Subgroup.{u1} G _inst_2) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} G _inst_2) G (Subgroup.instSetLikeSubgroup.{u1} G _inst_2)) x S))) (Filter.cocompact.{u1} G _inst_1)) -> (ProperlyDiscontinuousSMul.{u1, u1} (Subtype.{succ u1} (MulOpposite.{u1} G) (fun (x : MulOpposite.{u1} G) => Membership.mem.{u1, u1} (MulOpposite.{u1} G) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (SetLike.instMembership.{u1, u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) S) (MulOpposite.{u1} G) (Subgroup.instSetLikeSubgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) x (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (a : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) a) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))) G _inst_1 (Submonoid.smul.{u1, u1} (MulOpposite.{u1} G) G (Monoid.toMulOneClass.{u1} (MulOpposite.{u1} G) (DivInvMonoid.toMonoid.{u1} (MulOpposite.{u1} G) (Group.toDivInvMonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)))) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Subgroup.toSubmonoid.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.{u1} G _inst_2) (fun (_x : Subgroup.{u1} G _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Subgroup.{u1} G _inst_2) => Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2)) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Subgroup.{u1} G _inst_2) (Subgroup.{u1} (MulOpposite.{u1} G) (MulOpposite.instGroupMulOpposite.{u1} G _inst_2))) (Subgroup.opposite.{u1} G _inst_2) S))))
+Case conversion may be inaccurate. Consider using '#align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofiniteₓ'. -/
 /-- A subgroup `S` of a topological group `G` acts on `G` properly discontinuously on the right, if
 it is discrete in the sense that `S ∩ K` is finite for all compact `K`. (See also
 `discrete_topology`.)
@@ -1512,7 +2239,7 @@ theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Sub
       ext x
       simpa only [image_smul, mem_image, Prod.exists] using Set.op_smul_inter_ne_empty_iff }
 #align subgroup.properly_discontinuous_smul_opposite_of_tendsto_cofinite Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite
-#align add_subgroup.properly_discontinuous_vadd_opposite_of_tendsto_cofinite AddSubgroup.properly_discontinuous_vadd_opposite_of_tendsto_cofinite
+#align add_subgroup.properly_discontinuous_vadd_opposite_of_tendsto_cofinite AddSubgroup.properlyDiscontinuousVAdd_opposite_of_tendsto_cofinite
 
 end
 
@@ -1523,6 +2250,12 @@ section
 
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
+/- warning: compact_open_separated_mul_right -> compact_open_separated_mul_right is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) K V) U)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) K V) U)))
+Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_right compact_open_separated_mul_rightₓ'. -/
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `K * V ⊆ U`. -/
 @[to_additive
@@ -1551,6 +2284,12 @@ theorem compact_open_separated_mul_right {K U : Set G} (hK : IsCompact K) (hU :
 
 open MulOpposite
 
+/- warning: compact_open_separated_mul_left -> compact_open_separated_mul_left is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) V (nhds.{u1} G _inst_1 (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_2))))))))) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) V K) U)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {U : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsOpen.{u1} G _inst_1 U) -> (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) -> (Exists.{succ u1} (Set.{u1} G) (fun (V : Set.{u1} G) => And (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) V (nhds.{u1} G _inst_1 (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_2)))))))) (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) (HMul.hMul.{u1, u1, u1} (Set.{u1} G) (Set.{u1} G) (Set.{u1} G) (instHMul.{u1} (Set.{u1} G) (Set.mul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) V K) U)))
+Case conversion may be inaccurate. Consider using '#align compact_open_separated_mul_left compact_open_separated_mul_leftₓ'. -/
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `V * K ⊆ U`. -/
 @[to_additive
@@ -1567,6 +2306,12 @@ theorem compact_open_separated_mul_left {K U : Set G} (hK : IsCompact K) (hU : I
 #align compact_open_separated_mul_left compact_open_separated_mul_left
 #align compact_open_separated_add_left compact_open_separated_add_left
 
+/- warning: compact_covered_by_mul_left_translates -> compact_covered_by_mul_left_translates is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K (Set.unionᵢ.{u1, succ u1} G G (fun (g : G) => Set.unionᵢ.{u1, 0} G (Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) (fun (H : Membership.Mem.{u1, u1} G (Finset.{u1} G) (Finset.hasMem.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] {K : Set.{u1} G} {V : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (Set.Nonempty.{u1} G (interior.{u1} G _inst_1 V)) -> (Exists.{succ u1} (Finset.{u1} G) (fun (t : Finset.{u1} G) => HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K (Set.unionᵢ.{u1, succ u1} G G (fun (g : G) => Set.unionᵢ.{u1, 0} G (Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) (fun (H : Membership.mem.{u1, u1} G (Finset.{u1} G) (Finset.instMembershipFinset.{u1} G) g t) => Set.preimage.{u1, u1} G G (fun (h : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) g h) V)))))
+Case conversion may be inaccurate. Consider using '#align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translatesₓ'. -/
 /-- A compact set is covered by finitely many left multiplicative translates of a set
   with non-empty interior. -/
 @[to_additive
@@ -1586,6 +2331,7 @@ theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
 #align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translates
 #align compact_covered_by_add_left_translates compact_covered_by_add_left_translates
 
+#print SeparableLocallyCompactGroup.sigmaCompactSpace /-
 /-- Every locally compact separable topological group is σ-compact.
   Note: this is not true if we drop the topological group hypothesis. -/
 @[to_additive SeparableLocallyCompactAddGroup.sigmaCompactSpace
@@ -1607,7 +2353,14 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
     exact ⟨n, hn⟩
 #align separable_locally_compact_group.sigma_compact_space SeparableLocallyCompactGroup.sigmaCompactSpace
 #align separable_locally_compact_add_group.sigma_compact_space SeparableLocallyCompactAddGroup.sigmaCompactSpace
+-/
 
+/- warning: exists_disjoint_smul_of_is_compact -> exists_disjoint_smul_of_isCompact is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : NoncompactSpace.{u1} G _inst_1] {K : Set.{u1} G} {L : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsCompact.{u1} G _inst_1 L) -> (Exists.{succ u1} G (fun (g : G) => Disjoint.{u1} (Set.{u1} G) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.completeBooleanAlgebra.{u1} G)))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} G) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} G) (Set.booleanAlgebra.{u1} G))) K (SMul.smul.{u1, u1} G (Set.{u1} G) (Set.smulSet.{u1, u1} G G (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) g L)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : NoncompactSpace.{u1} G _inst_1] {K : Set.{u1} G} {L : Set.{u1} G}, (IsCompact.{u1} G _inst_1 K) -> (IsCompact.{u1} G _inst_1 L) -> (Exists.{succ u1} G (fun (g : G) => Disjoint.{u1} (Set.{u1} G) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.instCompleteBooleanAlgebraSet.{u1} G)))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} G) (Preorder.toLE.{u1} (Set.{u1} G) (PartialOrder.toPreorder.{u1} (Set.{u1} G) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.instCompleteBooleanAlgebraSet.{u1} G)))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} G) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} G) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} G) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} G) (Set.instCompleteBooleanAlgebraSet.{u1} G)))))) K (HSMul.hSMul.{u1, u1, u1} G (Set.{u1} G) (Set.{u1} G) (instHSMul.{u1, u1} G (Set.{u1} G) (Set.smulSet.{u1, u1} G G (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) g L)))
+Case conversion may be inaccurate. Consider using '#align exists_disjoint_smul_of_is_compact exists_disjoint_smul_of_isCompactₓ'. -/
 /-- Given two compact sets in a noncompact topological group, there is a translate of the second
 one that is disjoint from the first one. -/
 @[to_additive
@@ -1625,8 +2378,14 @@ theorem exists_disjoint_smul_of_isCompact [NoncompactSpace G] {K L : Set G} (hK
   refine' ⟨g * b, b⁻¹, ha, by simpa only [Set.mem_inv, inv_inv] using bL, _⟩
   simp only [smul_eq_mul, mul_inv_cancel_right]
 #align exists_disjoint_smul_of_is_compact exists_disjoint_smul_of_isCompact
-#align exists_disjoint_vadd_of_is_compact exists_disjoint_vadd_of_is_compact
-
+#align exists_disjoint_vadd_of_is_compact exists_disjoint_vadd_of_isCompact
+
+/- warning: local_is_compact_is_closed_nhds_of_group -> local_isCompact_isClosed_nhds_of_group is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : LocallyCompactSpace.{u1} G _inst_1] {U : Set.{u1} G}, (Membership.Mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (Filter.hasMem.{u1} G) U (nhds.{u1} G _inst_1 (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_2))))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (K : Set.{u1} G) => And (IsCompact.{u1} G _inst_1 K) (And (IsClosed.{u1} G _inst_1 K) (And (HasSubset.Subset.{u1} (Set.{u1} G) (Set.hasSubset.{u1} G) K U) (Membership.Mem.{u1, u1} G (Set.{u1} G) (Set.hasMem.{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 _inst_2))))))) (interior.{u1} G _inst_1 K))))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] [_inst_4 : LocallyCompactSpace.{u1} G _inst_1] {U : Set.{u1} G}, (Membership.mem.{u1, u1} (Set.{u1} G) (Filter.{u1} G) (instMembershipSetFilter.{u1} G) U (nhds.{u1} G _inst_1 (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_2)))))))) -> (Exists.{succ u1} (Set.{u1} G) (fun (K : Set.{u1} G) => And (IsCompact.{u1} G _inst_1 K) (And (IsClosed.{u1} G _inst_1 K) (And (HasSubset.Subset.{u1} (Set.{u1} G) (Set.instHasSubsetSet.{u1} G) K U) (Membership.mem.{u1, u1} G (Set.{u1} G) (Set.instMembershipSet.{u1} G) (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_2)))))) (interior.{u1} G _inst_1 K))))))
+Case conversion may be inaccurate. Consider using '#align local_is_compact_is_closed_nhds_of_group local_isCompact_isClosed_nhds_of_groupₓ'. -/
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
 neighborhood of the identity, even without separation assumptions on the space. -/
 @[to_additive
@@ -1659,7 +2418,7 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
     ⟨closure V, isCompact_of_isClosed_subset Lcomp isClosed_closure VL, isClosed_closure,
       VL.trans LU, interior_mono subset_closure (mem_interior_iff_mem_nhds.2 Vnhds)⟩
 #align local_is_compact_is_closed_nhds_of_group local_isCompact_isClosed_nhds_of_group
-#align local_is_compact_is_closed_nhds_of_add_group local_isCompact_isClosed_nhds_of_add_group
+#align local_is_compact_is_closed_nhds_of_add_group local_isCompact_isClosed_nhds_of_addGroup
 
 end
 
@@ -1667,6 +2426,12 @@ section
 
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
+/- warning: nhds_mul -> nhds_mul is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y)) (HMul.hMul.{u1, u1, u1} (Filter.{u1} G) (Filter.{u1} G) (Filter.{u1} G) (instHMul.{u1} (Filter.{u1} G) (Filter.instMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (nhds.{u1} G _inst_1 x) (nhds.{u1} G _inst_1 y))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2] (x : G) (y : G), Eq.{succ u1} (Filter.{u1} G) (nhds.{u1} G _inst_1 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x y)) (HMul.hMul.{u1, u1, u1} (Filter.{u1} G) (Filter.{u1} G) (Filter.{u1} G) (instHMul.{u1} (Filter.{u1} G) (Filter.instMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))) (nhds.{u1} G _inst_1 x) (nhds.{u1} G _inst_1 y))
+Case conversion may be inaccurate. Consider using '#align nhds_mul nhds_mulₓ'. -/
 @[to_additive]
 theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
   calc
@@ -1680,6 +2445,12 @@ theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
 #align nhds_mul nhds_mul
 #align nhds_add nhds_add
 
+/- warning: nhds_mul_hom -> nhdsMulHom is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], MulHom.{u1, u1} G (Filter.{u1} G) (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Filter.instMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u1} G] [_inst_2 : Group.{u1} G] [_inst_3 : TopologicalGroup.{u1} G _inst_1 _inst_2], MulHom.{u1, u1} G (Filter.{u1} G) (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))) (Filter.instMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align nhds_mul_hom nhdsMulHomₓ'. -/
 /-- On a topological group, `𝓝 : G → filter G` can be promoted to a `mul_hom`. -/
 @[to_additive
       "On an additive topological group, `𝓝 : G → filter G` can be promoted to an\n`add_hom`.",
@@ -1704,21 +2475,26 @@ section Quotient
 
 variable [Group G] [TopologicalSpace G] [TopologicalGroup G] {Γ : Subgroup G}
 
+#print QuotientGroup.continuousConstSMul /-
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ)
     where continuous_const_smul g := by
     convert ((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
 #align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMul
-#align quotient_add_group.has_continuous_const_vadd quotientAddGroup.has_continuous_const_vadd
+#align quotient_add_group.has_continuous_const_vadd QuotientAddGroup.continuousConstVAdd
+-/
 
+#print QuotientGroup.continuous_smul₁ /-
 @[to_additive]
 theorem QuotientGroup.continuous_smul₁ (x : G ⧸ Γ) : Continuous fun g : G => g • x :=
   by
   induction x using QuotientGroup.induction_on
   exact continuous_quotient_mk.comp (continuous_mul_right x)
 #align quotient_group.continuous_smul₁ QuotientGroup.continuous_smul₁
-#align quotient_add_group.continuous_smul₁ quotientAddGroup.continuous_smul₁
+#align quotient_add_group.continuous_smul₁ QuotientAddGroup.continuous_smul₁
+-/
 
+#print QuotientGroup.secondCountableTopology /-
 /-- The quotient of a second countable topological group by a subgroup is second countable. -/
 @[to_additive
       "The quotient of a second countable additive topological group by a subgroup is second\ncountable."]
@@ -1726,7 +2502,8 @@ instance QuotientGroup.secondCountableTopology [SecondCountableTopology G] :
     SecondCountableTopology (G ⧸ Γ) :=
   ContinuousConstSMul.secondCountableTopology
 #align quotient_group.second_countable_topology QuotientGroup.secondCountableTopology
-#align quotient_add_group.second_countable_topology quotientAddGroup.second_countable_topology
+#align quotient_add_group.second_countable_topology QuotientAddGroup.secondCountableTopology
+-/
 
 end Quotient
 
@@ -1740,6 +2517,12 @@ variable [Monoid α] [TopologicalSpace α] [Monoid β] [TopologicalSpace β]
 instance [ContinuousMul α] : TopologicalGroup αˣ
     where continuous_inv := Units.continuous_iff.2 <| ⟨continuous_coe_inv, continuous_val⟩
 
+/- warning: units.homeomorph.prod_units -> Units.Homeomorph.prodUnits is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : Monoid.{u2} β] [_inst_4 : TopologicalSpace.{u2} β], Homeomorph.{max u1 u2, max u1 u2} (Units.{max u1 u2} (Prod.{u1, u2} α β) (Prod.monoid.{u1, u2} α β _inst_1 _inst_3)) (Prod.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3)) (Units.topologicalSpace.{max u1 u2} (Prod.{u1, u2} α β) (Prod.topologicalSpace.{u1, u2} α β _inst_2 _inst_4) (Prod.monoid.{u1, u2} α β _inst_1 _inst_3)) (Prod.topologicalSpace.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3) (Units.topologicalSpace.{u1} α _inst_2 _inst_1) (Units.topologicalSpace.{u2} β _inst_4 _inst_3))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u1} α] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : Monoid.{u2} β] [_inst_4 : TopologicalSpace.{u2} β], Homeomorph.{max u2 u1, max u2 u1} (Units.{max u2 u1} (Prod.{u1, u2} α β) (Prod.instMonoidProd.{u1, u2} α β _inst_1 _inst_3)) (Prod.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3)) (Units.instTopologicalSpaceUnits.{max u1 u2} (Prod.{u1, u2} α β) (instTopologicalSpaceProd.{u1, u2} α β _inst_2 _inst_4) (Prod.instMonoidProd.{u1, u2} α β _inst_1 _inst_3)) (instTopologicalSpaceProd.{u1, u2} (Units.{u1} α _inst_1) (Units.{u2} β _inst_3) (Units.instTopologicalSpaceUnits.{u1} α _inst_2 _inst_1) (Units.instTopologicalSpaceUnits.{u2} β _inst_4 _inst_3))
+Case conversion may be inaccurate. Consider using '#align units.homeomorph.prod_units Units.Homeomorph.prodUnitsₓ'. -/
 /-- The topological group isomorphism between the units of a product of two monoids, and the product
 of the units of each monoid. -/
 @[to_additive
@@ -1763,16 +2546,28 @@ section LatticeOps
 
 variable {ι : Sort _} [Group G]
 
+/- warning: topological_group_Inf -> topologicalGroup_infₛ is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.Mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.hasMem.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ts) _inst_1)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {ts : Set.{u1} (TopologicalSpace.{u1} G)}, (forall (t : TopologicalSpace.{u1} G), (Membership.mem.{u1, u1} (TopologicalSpace.{u1} G) (Set.{u1} (TopologicalSpace.{u1} G)) (Set.instMembershipSet.{u1} (TopologicalSpace.{u1} G)) t ts) -> (TopologicalGroup.{u1} G t _inst_1)) -> (TopologicalGroup.{u1} G (InfSet.infₛ.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G))) ts) _inst_1)
+Case conversion may be inaccurate. Consider using '#align topological_group_Inf topologicalGroup_infₛₓ'. -/
 @[to_additive]
 theorem topologicalGroup_infₛ {ts : Set (TopologicalSpace G)}
     (h : ∀ t ∈ ts, @TopologicalGroup G t _) : @TopologicalGroup G (infₛ ts) _ :=
-  { to_hasContinuousInv :=
-      @hasContinuousInv_infₛ _ _ _ fun t ht => @TopologicalGroup.to_hasContinuousInv G t _ <| h t ht
+  { to_continuousInv :=
+      @continuousInv_infₛ _ _ _ fun t ht => @TopologicalGroup.to_continuousInv G t _ <| h t ht
     to_continuousMul :=
       @continuousMul_infₛ _ _ _ fun t ht => @TopologicalGroup.to_continuousMul G t _ <| h t ht }
 #align topological_group_Inf topologicalGroup_infₛ
-#align topological_add_group_Inf topological_add_group_infₛ
+#align topological_add_group_Inf topologicalAddGroup_infₛ
 
+/- warning: topological_group_infi -> topologicalGroup_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {ι : Sort.{u2}} [_inst_1 : Group.{u1} G] {ts' : ι -> (TopologicalSpace.{u1} G)}, (forall (i : ι), TopologicalGroup.{u1} G (ts' i) _inst_1) -> (TopologicalGroup.{u1} G (infᵢ.{u1, u2} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))) ι (fun (i : ι) => ts' i)) _inst_1)
+but is expected to have type
+  forall {G : Type.{u2}} {ι : Sort.{u1}} [_inst_1 : Group.{u2} G] {ts' : ι -> (TopologicalSpace.{u2} G)}, (forall (i : ι), TopologicalGroup.{u2} G (ts' i) _inst_1) -> (TopologicalGroup.{u2} G (infᵢ.{u2, u1} (TopologicalSpace.{u2} G) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} G) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} G))) ι (fun (i : ι) => ts' i)) _inst_1)
+Case conversion may be inaccurate. Consider using '#align topological_group_infi topologicalGroup_infᵢₓ'. -/
 @[to_additive]
 theorem topologicalGroup_infᵢ {ts' : ι → TopologicalSpace G}
     (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ :=
@@ -1780,8 +2575,14 @@ theorem topologicalGroup_infᵢ {ts' : ι → TopologicalSpace G}
   rw [← infₛ_range]
   exact topologicalGroup_infₛ (set.forall_range_iff.mpr h')
 #align topological_group_infi topologicalGroup_infᵢ
-#align topological_add_group_infi topological_add_group_infᵢ
+#align topological_add_group_infi topologicalAddGroup_infᵢ
 
+/- warning: topological_group_inf -> topologicalGroup_inf is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} G) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.completeLattice.{u1} G))))) t₁ t₂) _inst_1)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] {t₁ : TopologicalSpace.{u1} G} {t₂ : TopologicalSpace.{u1} G}, (TopologicalGroup.{u1} G t₁ _inst_1) -> (TopologicalGroup.{u1} G t₂ _inst_1) -> (TopologicalGroup.{u1} G (HasInf.inf.{u1} (TopologicalSpace.{u1} G) (Lattice.toHasInf.{u1} (TopologicalSpace.{u1} G) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} G) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} G) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} G)))) t₁ t₂) _inst_1)
+Case conversion may be inaccurate. Consider using '#align topological_group_inf topologicalGroup_infₓ'. -/
 @[to_additive]
 theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @TopologicalGroup G t₁ _)
     (h₂ : @TopologicalGroup G t₂ _) : @TopologicalGroup G (t₁ ⊓ t₂) _ :=
@@ -1790,7 +2591,7 @@ theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @Topologic
   refine' topologicalGroup_infᵢ fun b => _
   cases b <;> assumption
 #align topological_group_inf topologicalGroup_inf
-#align topological_add_group_inf topological_add_group_inf
+#align topological_add_group_inf topologicalAddGroup_inf
 
 end LatticeOps
 
@@ -1809,17 +2610,21 @@ The additive version `add_group_topology α` and corresponding results are provi
 -/
 
 
+#print GroupTopology /-
 /-- A group topology on a group `α` is a topology for which multiplication and inversion
 are continuous. -/
 structure GroupTopology (α : Type u) [Group α] extends TopologicalSpace α, TopologicalGroup α :
   Type u
 #align group_topology GroupTopology
+-/
 
+#print AddGroupTopology /-
 /-- An additive group topology on an additive group `α` is a topology for which addition and
   negation are continuous. -/
 structure AddGroupTopology (α : Type u) [AddGroup α] extends TopologicalSpace α,
   TopologicalAddGroup α : Type u
 #align add_group_topology AddGroupTopology
+-/
 
 attribute [to_additive] GroupTopology
 
@@ -1827,6 +2632,12 @@ namespace GroupTopology
 
 variable [Group α]
 
+/- warning: group_topology.continuous_mul' -> GroupTopology.continuous_mul' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} (Prod.{u1, u1} α α) α (Prod.topologicalSpace.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g)) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (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_1))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} (Prod.{u1, u1} α α) α (instTopologicalSpaceProd.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g)) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (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_1))))) (Prod.fst.{u1, u1} α α p) (Prod.snd.{u1, u1} α α p))
+Case conversion may be inaccurate. Consider using '#align group_topology.continuous_mul' GroupTopology.continuous_mul'ₓ'. -/
 /-- A version of the global `continuous_mul` suitable for dot notation. -/
 @[to_additive "A version of the global `continuous_add` suitable for dot notation."]
 theorem continuous_mul' (g : GroupTopology α) :
@@ -1839,6 +2650,12 @@ theorem continuous_mul' (g : GroupTopology α) :
 #align group_topology.continuous_mul' GroupTopology.continuous_mul'
 #align add_group_topology.continuous_add' AddGroupTopology.continuous_add'
 
+/- warning: group_topology.continuous_inv' -> GroupTopology.continuous_inv' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (Inv.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (g : GroupTopology.{u1} α _inst_1), Continuous.{u1, u1} α α (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 g) (Inv.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align group_topology.continuous_inv' GroupTopology.continuous_inv'ₓ'. -/
 /-- A version of the global `continuous_inv` suitable for dot notation. -/
 @[to_additive "A version of the global `continuous_neg` suitable for dot notation."]
 theorem continuous_inv' (g : GroupTopology α) :
@@ -1851,6 +2668,7 @@ theorem continuous_inv' (g : GroupTopology α) :
 #align group_topology.continuous_inv' GroupTopology.continuous_inv'
 #align add_group_topology.continuous_neg' AddGroupTopology.continuous_neg'
 
+#print GroupTopology.toTopologicalSpace_injective /-
 @[to_additive]
 theorem toTopologicalSpace_injective :
     Function.Injective (toTopologicalSpace : GroupTopology α → TopologicalSpace α) := fun f g h =>
@@ -1860,12 +2678,15 @@ theorem toTopologicalSpace_injective :
   congr
 #align group_topology.to_topological_space_injective GroupTopology.toTopologicalSpace_injective
 #align add_group_topology.to_topological_space_injective AddGroupTopology.toTopologicalSpace_injective
+-/
 
+#print GroupTopology.ext' /-
 @[ext, to_additive]
 theorem ext' {f g : GroupTopology α} (h : f.IsOpen = g.IsOpen) : f = g :=
   toTopologicalSpace_injective <| topologicalSpace_eq h
 #align group_topology.ext' GroupTopology.ext'
 #align add_group_topology.ext' AddGroupTopology.ext'
+-/
 
 /-- The ordering on group topologies on the group `γ`. `t ≤ s` if every set open in `s` is also open
 in `t` (`t` is finer than `s`). -/
@@ -1874,6 +2695,12 @@ in `t` (`t` is finer than `s`). -/
 instance : PartialOrder (GroupTopology α) :=
   PartialOrder.lift toTopologicalSpace toTopologicalSpace_injective
 
+/- warning: group_topology.to_topological_space_le -> GroupTopology.toTopologicalSpace_le is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {x : GroupTopology.{u1} α _inst_1} {y : GroupTopology.{u1} α _inst_1}, Iff (LE.le.{u1} (TopologicalSpace.{u1} α) (Preorder.toLE.{u1} (TopologicalSpace.{u1} α) (PartialOrder.toPreorder.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.partialOrder.{u1} α))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y)) (LE.le.{u1} (GroupTopology.{u1} α _inst_1) (Preorder.toLE.{u1} (GroupTopology.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.partialOrder.{u1} α _inst_1))) x y)
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {x : GroupTopology.{u1} α _inst_1} {y : GroupTopology.{u1} α _inst_1}, Iff (LE.le.{u1} (TopologicalSpace.{u1} α) (Preorder.toLE.{u1} (TopologicalSpace.{u1} α) (PartialOrder.toPreorder.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instPartialOrderTopologicalSpace.{u1} α))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y)) (LE.le.{u1} (GroupTopology.{u1} α _inst_1) (Preorder.toLE.{u1} (GroupTopology.{u1} α _inst_1) (PartialOrder.toPreorder.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instPartialOrderGroupTopology.{u1} α _inst_1))) x y)
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_le GroupTopology.toTopologicalSpace_leₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_le {x y : GroupTopology α} :
     x.toTopologicalSpace ≤ y.toTopologicalSpace ↔ x ≤ y :=
@@ -1887,6 +2714,12 @@ instance : Top (GroupTopology α) :=
       continuous_mul := continuous_top
       continuous_inv := continuous_top }⟩
 
+/- warning: group_topology.to_topological_space_top -> GroupTopology.toTopologicalSpace_top is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Top.top.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasTop.{u1} α _inst_1))) (Top.top.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Top.top.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instTopGroupTopology.{u1} α _inst_1))) (Top.top.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toTop.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_top GroupTopology.toTopologicalSpace_topₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_top : (⊤ : GroupTopology α).toTopologicalSpace = ⊤ :=
   rfl
@@ -1902,6 +2735,12 @@ instance : Bot (GroupTopology α) :=
         continuity
       continuous_inv := continuous_bot }⟩
 
+/- warning: group_topology.to_topological_space_bot -> GroupTopology.toTopologicalSpace_bot is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Bot.bot.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasBot.{u1} α _inst_1))) (Bot.bot.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toHasBot.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α)))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α], Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (Bot.bot.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instBotGroupTopology.{u1} α _inst_1))) (Bot.bot.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toBot.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_bot GroupTopology.toTopologicalSpace_botₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_bot : (⊥ : GroupTopology α).toTopologicalSpace = ⊥ :=
   rfl
@@ -1918,6 +2757,12 @@ instance : BoundedOrder (GroupTopology α) where
 @[to_additive]
 instance : HasInf (GroupTopology α) where inf x y := ⟨x.1 ⊓ y.1, topologicalGroup_inf x.2 y.2⟩
 
+/- warning: group_topology.to_topological_space_inf -> GroupTopology.toTopologicalSpace_inf is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (HasInf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) x y)) (HasInf.inf.{u1} (TopologicalSpace.{u1} α) (SemilatticeInf.toHasInf.{u1} (TopologicalSpace.{u1} α) (Lattice.toSemilatticeInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (x : GroupTopology.{u1} α _inst_1) (y : GroupTopology.{u1} α _inst_1), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (HasInf.inf.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instHasInfGroupTopology.{u1} α _inst_1) x y)) (HasInf.inf.{u1} (TopologicalSpace.{u1} α) (Lattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toLattice.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α)))) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 x) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 y))
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_inf GroupTopology.toTopologicalSpace_infₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_inf (x y : GroupTopology α) :
     (x ⊓ y).toTopologicalSpace = x.toTopologicalSpace ⊓ y.toTopologicalSpace :=
@@ -1942,19 +2787,31 @@ instance : InfSet (GroupTopology α)
     where infₛ S :=
     ⟨infₛ (toTopologicalSpace '' S), topologicalGroup_infₛ <| ball_image_iff.2 fun t ht => t.2⟩
 
+/- warning: group_topology.to_topological_space_Inf -> GroupTopology.toTopologicalSpace_infₛ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.infₛ.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) s)) (InfSet.infₛ.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
+but is expected to have type
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] (s : Set.{u1} (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (InfSet.infₛ.{u1} (GroupTopology.{u1} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u1} α _inst_1) s)) (InfSet.infₛ.{u1} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toInfSet.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u1} α))) (Set.image.{u1, u1} (GroupTopology.{u1} α _inst_1) (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1) s))
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_infₛₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_infₛ (s : Set (GroupTopology α)) :
     (infₛ s).toTopologicalSpace = infₛ (toTopologicalSpace '' s) :=
   rfl
 #align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_infₛ
-#align add_group_topology.to_topological_space_Inf AddGroupTopology.to_topological_space_Inf
-
+#align add_group_topology.to_topological_space_Inf AddGroupTopology.toTopologicalSpace_infₛ
+
+/- warning: group_topology.to_topological_space_infi -> GroupTopology.toTopologicalSpace_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] {ι : Sort.{u2}} (s : ι -> (GroupTopology.{u1} α _inst_1)), Eq.{succ u1} (TopologicalSpace.{u1} α) (GroupTopology.toTopologicalSpace.{u1} α _inst_1 (infᵢ.{u1, u2} (GroupTopology.{u1} α _inst_1) (GroupTopology.hasInf.{u1} α _inst_1) ι (fun (i : ι) => s i))) (infᵢ.{u1, u2} (TopologicalSpace.{u1} α) (ConditionallyCompleteLattice.toHasInf.{u1} (TopologicalSpace.{u1} α) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.{u1} α) (TopologicalSpace.completeLattice.{u1} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u1} α _inst_1 (s i)))
+but is expected to have type
+  forall {α : Type.{u2}} [_inst_1 : Group.{u2} α] {ι : Sort.{u1}} (s : ι -> (GroupTopology.{u2} α _inst_1)), Eq.{succ u2} (TopologicalSpace.{u2} α) (GroupTopology.toTopologicalSpace.{u2} α _inst_1 (infᵢ.{u2, u1} (GroupTopology.{u2} α _inst_1) (GroupTopology.instInfSetGroupTopology.{u2} α _inst_1) ι (fun (i : ι) => s i))) (infᵢ.{u2, u1} (TopologicalSpace.{u2} α) (ConditionallyCompleteLattice.toInfSet.{u2} (TopologicalSpace.{u2} α) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.{u2} α) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{u2} α))) ι (fun (i : ι) => GroupTopology.toTopologicalSpace.{u2} α _inst_1 (s i)))
+Case conversion may be inaccurate. Consider using '#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_infᵢₓ'. -/
 @[simp, to_additive]
 theorem toTopologicalSpace_infᵢ {ι} (s : ι → GroupTopology α) :
     (⨅ i, s i).toTopologicalSpace = ⨅ i, (s i).toTopologicalSpace :=
   congr_arg infₛ (range_comp _ _).symm
 #align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_infᵢ
-#align add_group_topology.to_topological_space_infi AddGroupTopology.to_topological_space_infi
+#align add_group_topology.to_topological_space_infi AddGroupTopology.toTopologicalSpace_infᵢ
 
 /-- Group topologies on `γ` form a complete lattice, with `⊥` the discrete topology and `⊤` the
 indiscrete topology.
@@ -1985,6 +2842,7 @@ instance : CompleteLattice (GroupTopology α) :=
     top := ⊤
     bot := ⊥ }
 
+#print GroupTopology.coinduced /-
 /-- Given `f : α → β` and a topology on `α`, the coinduced group topology on `β` is the finest
 topology such that `f` is continuous and `β` is a topological group. -/
 @[to_additive
@@ -1993,7 +2851,14 @@ def coinduced {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α →
   infₛ { b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace }
 #align group_topology.coinduced GroupTopology.coinduced
 #align add_group_topology.coinduced AddGroupTopology.coinduced
+-/
 
+/- warning: group_topology.coinduced_continuous -> GroupTopology.coinduced_continuous is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [t : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} β] (f : α -> β), Continuous.{u1, u2} α β t (GroupTopology.toTopologicalSpace.{u2} β _inst_2 (GroupTopology.coinduced.{u1, u2} α β t _inst_2 f)) f
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [t : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} β] (f : α -> β), Continuous.{u2, u1} α β t (GroupTopology.toTopologicalSpace.{u1} β _inst_2 (GroupTopology.coinduced.{u2, u1} α β t _inst_2 f)) f
+Case conversion may be inaccurate. Consider using '#align group_topology.coinduced_continuous GroupTopology.coinduced_continuousₓ'. -/
 @[to_additive]
 theorem coinduced_continuous {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) :
     cont t (coinduced f).toTopologicalSpace f :=

Changes in mathlib4

mathlib3
mathlib4
feat(Topology/Algebra): add Inseparable.{smul,mul,inv} (#12142)

Add dot notation lemmas for algebraic operations on Specializes and Inseparable.

Diff
@@ -196,6 +196,26 @@ section ContinuousInv
 
 variable [TopologicalSpace G] [Inv G] [ContinuousInv G]
 
+@[to_additive]
+protected theorem Specializes.inv {x y : G} (h : x ⤳ y) : (x⁻¹) ⤳ (y⁻¹) :=
+  h.map continuous_inv
+
+@[to_additive]
+protected theorem Inseparable.inv {x y : G} (h : Inseparable x y) : Inseparable (x⁻¹) (y⁻¹) :=
+  h.map continuous_inv
+
+@[to_additive]
+protected theorem Specializes.zpow {G : Type*} [DivInvMonoid G] [TopologicalSpace G]
+    [ContinuousMul G] [ContinuousInv G] {x y : G} (h : x ⤳ y) : ∀ m : ℤ, (x ^ m) ⤳ (y ^ m)
+  | .ofNat n => by simpa using h.pow n
+  | .negSucc n => by simpa using (h.pow (n + 1)).inv
+
+@[to_additive]
+protected theorem Inseparable.zpow {G : Type*} [DivInvMonoid G] [TopologicalSpace G]
+    [ContinuousMul G] [ContinuousInv G] {x y : G} (h : Inseparable x y) (m : ℤ) :
+    Inseparable (x ^ m) (y ^ m) :=
+  (h.specializes.zpow m).antisymm (h.specializes'.zpow m)
+
 @[to_additive]
 instance : ContinuousInv (ULift G) :=
   ⟨continuous_uLift_up.comp (continuous_inv.comp continuous_uLift_down)⟩
@@ -1176,7 +1196,7 @@ theorem ContinuousOn.div' (hf : ContinuousOn f s) (hg : ContinuousOn g s) :
 
 end ContinuousDiv
 
-section DivInTopologicalGroup
+section DivInvTopologicalGroup
 
 variable [Group G] [TopologicalSpace G] [TopologicalGroup G]
 
@@ -1236,7 +1256,7 @@ theorem nhds_translation_div (x : G) : comap (· / x) (𝓝 1) = 𝓝 x := by
 #align nhds_translation_div nhds_translation_div
 #align nhds_translation_sub nhds_translation_sub
 
-end DivInTopologicalGroup
+end DivInvTopologicalGroup
 
 /-!
 ### Topological operations on pointwise sums and products
style: replace '.-/' by '. -/' (#11938)

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

Diff
@@ -753,7 +753,7 @@ theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H
 #align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroup
 #align dense_range.topological_closure_map_add_subgroup DenseRange.topologicalClosure_map_addSubgroup
 
-/-- The topological closure of a normal subgroup is normal.-/
+/-- The topological closure of a normal subgroup is normal. -/
 @[to_additive "The topological closure of a normal additive subgroup is normal."]
 theorem Subgroup.is_normal_topologicalClosure {G : Type*} [TopologicalSpace G] [Group G]
     [TopologicalGroup G] (N : Subgroup G) [N.Normal] : (Subgroup.topologicalClosure N).Normal where
feat: instances for actions of ulifted spaces (#11777)
Diff
@@ -196,6 +196,10 @@ section ContinuousInv
 
 variable [TopologicalSpace G] [Inv G] [ContinuousInv G]
 
+@[to_additive]
+instance : ContinuousInv (ULift G) :=
+  ⟨continuous_uLift_up.comp (continuous_inv.comp continuous_uLift_down)⟩
+
 @[to_additive]
 theorem continuousOn_inv {s : Set G} : ContinuousOn Inv.inv s :=
   continuous_inv.continuousOn
@@ -487,6 +491,8 @@ end Conj
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G] [TopologicalSpace α] {f : α → G}
   {s : Set α} {x : α}
 
+instance : TopologicalGroup (ULift G) where
+
 section ZPow
 
 @[to_additive (attr := continuity)]
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11813)
Diff
@@ -1602,7 +1602,7 @@ theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U 
     T2Space G := by
   suffices T1Space G from inferInstance
   refine t1Space_iff_specializes_imp_eq.2 fun x y hspec ↦ by_contra fun hne ↦ ?_
-  rcases H (x * y⁻¹) (by rwa [Ne.def, mul_inv_eq_one]) with ⟨U, hU₁, hU⟩
+  rcases H (x * y⁻¹) (by rwa [Ne, mul_inv_eq_one]) with ⟨U, hU₁, hU⟩
   exact hU <| mem_of_mem_nhds <| hspec.map (continuous_mul_right y⁻¹) (by rwa [mul_inv_self])
 #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
chore: simplify some proofs for the 2024-03-16 nightly (#11547)

Some small changes to adapt to the 2024-03-16 nightly that can land in advance.

Diff
@@ -1757,7 +1757,7 @@ theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
     cases' hV with g₀ hg₀
     refine' fun g _ => mem_iUnion.2 ⟨g₀ * g⁻¹, _⟩
     refine' preimage_interior_subset_interior_preimage (continuous_const.mul continuous_id) _
-    rwa [mem_preimage, id_def, inv_mul_cancel_right]
+    rwa [mem_preimage, Function.id_def, inv_mul_cancel_right]
   exact ⟨t, Subset.trans ht <| iUnion₂_mono fun g _ => interior_subset⟩
 #align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translates
 #align compact_covered_by_add_left_translates compact_covered_by_add_left_translates
chore: classify new theorem / theorem porting notes (#11432)

Classifies by adding issue number #10756 to porting notes claiming anything equivalent to:

  • "added theorem"
  • "added theorems"
  • "new theorem"
  • "new theorems"
  • "added lemma"
  • "new lemma"
  • "new lemmas"
Diff
@@ -881,7 +881,7 @@ theorem continuous_of_continuousAt_one {M hom : Type*} [MulOneClass M] [Topologi
 #align continuous_of_continuous_at_one continuous_of_continuousAt_one
 #align continuous_of_continuous_at_zero continuous_of_continuousAt_zero
 
--- Porting note: new theorem
+-- Porting note (#10756): new theorem
 @[to_additive continuous_of_continuousAt_zero₂]
 theorem continuous_of_continuousAt_one₂ {H M : Type*} [CommMonoid M] [TopologicalSpace M]
     [ContinuousMul M] [Group H] [TopologicalSpace H] [TopologicalGroup H] (f : G →* H →* M)
feat: review and expand API on behavior of topological bases under some constructions (#10732)

The main addition is IsTopologicalBasis.inf (see https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there-code-for-X.3F/topic/Inf.20of.20a.20pair.20of.20topologies/near/419989448), and I also reordered things to be in the more typical order (deducing the Pi version from the iInf version rather than the converse).

Also a few extra golfs and variations.

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com>

Diff
@@ -898,7 +898,7 @@ theorem continuous_of_continuousAt_one₂ {H M : Type*} [CommMonoid M] [Topologi
 theorem TopologicalGroup.ext {G : Type*} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _)
     (h : @nhds G t 1 = @nhds G t' 1) : t = t' :=
-  eq_of_nhds_eq_nhds fun x => by
+  TopologicalSpace.ext_nhds fun x ↦ by
     rw [← @nhds_translation_mul_inv G t _ _ x, ← @nhds_translation_mul_inv G t' _ _ x, ← h]
 #align topological_group.ext TopologicalGroup.ext
 #align topological_add_group.ext TopologicalAddGroup.ext
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
@@ -1582,6 +1582,14 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G := by
 
 variable {G}
 
+@[to_additive]
+theorem group_inseparable_iff {x y : G} : Inseparable x y ↔ x / y ∈ closure (1 : Set G) := by
+  rw [← singleton_one, ← specializes_iff_mem_closure, specializes_comm, specializes_iff_inseparable,
+    ← (Homeomorph.mulRight y⁻¹).embedding.inseparable_iff]
+  simp [div_eq_mul_inv]
+#align group_separation_rel group_inseparable_iff
+#align add_group_separation_rel addGroup_inseparable_iff
+
 @[to_additive]
 theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) :=
   ⟨fun _ ↦ isClosed_singleton, fun h ↦
chore: classify todo porting notes (#11216)

Classifies by adding issue number #11215 to porting notes claiming "TODO".

Diff
@@ -424,7 +424,8 @@ continuous. Topological additive groups are defined in the same way. Equivalentl
 that the division operation `x y ↦ x * y⁻¹` (resp., subtraction) is continuous.
 -/
 
--- Porting note: TODO should this docstring be extended to match the multiplicative version?
+-- Porting note (#11215): TODO should this docstring be extended
+-- to match the multiplicative version?
 /-- A topological (additive) group is a group in which the addition and negation operations are
 continuous. -/
 class TopologicalAddGroup (G : Type u) [TopologicalSpace G] [AddGroup G] extends
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
@@ -391,7 +391,7 @@ theorem continuousInv_sInf {ts : Set (TopologicalSpace G)}
 theorem continuousInv_iInf {ts' : ι' → TopologicalSpace G}
     (h' : ∀ i, @ContinuousInv G (ts' i) _) : @ContinuousInv G (⨅ i, ts' i) _ := by
   rw [← sInf_range]
-  exact continuousInv_sInf (Set.forall_range_iff.mpr h')
+  exact continuousInv_sInf (Set.forall_mem_range.mpr h')
 #align has_continuous_inv_infi continuousInv_iInf
 #align has_continuous_neg_infi continuousNeg_iInf
 
@@ -2013,7 +2013,7 @@ theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
 theorem topologicalGroup_iInf {ts' : ι → TopologicalSpace G}
     (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ := by
   rw [← sInf_range]
-  exact topologicalGroup_sInf (Set.forall_range_iff.mpr h')
+  exact topologicalGroup_sInf (Set.forall_mem_range.mpr h')
 #align topological_group_infi topologicalGroup_iInf
 #align topological_add_group_infi topologicalAddGroup_iInf
 
@@ -2171,7 +2171,7 @@ local notation "cont" => @Continuous _ _
 @[to_additive "Infimum of a collection of additive group topologies"]
 instance : InfSet (GroupTopology α) where
   sInf S :=
-    ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| ball_image_iff.2 fun t _ => t.2⟩
+    ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| forall_mem_image.2 fun t _ => t.2⟩
 
 @[to_additive (attr := simp)]
 theorem toTopologicalSpace_sInf (s : Set (GroupTopology α)) :
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
@@ -34,7 +34,8 @@ topological space, group, topological group
 -/
 
 
-open Classical Set Filter TopologicalSpace Function Topology Pointwise MulOpposite
+open scoped Classical
+open Set Filter TopologicalSpace Function Topology Pointwise MulOpposite
 
 universe u v w x
 
chore(Separation): rename some lemmas (#11054)

Mathport chose wrong names for these constructors.

Diff
@@ -1558,7 +1558,7 @@ variable (G) [TopologicalSpace G] [Group G] [TopologicalGroup G]
 
 @[to_additive]
 instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G := by
-  refine' RegularSpace.ofExistsMemNhdsIsClosedSubset fun a s hs => _
+  refine .of_exists_mem_nhds_isClosed_subset fun a s hs ↦ ?_
   have : Tendsto (fun p : G × G => p.1 * p.2) (𝓝 (a, 1)) (𝓝 a) :=
     continuous_mul.tendsto' _ _ (mul_one a)
   rcases mem_nhds_prod_iff.mp (this hs) with ⟨U, hU, V, hV, hUV⟩
feat: add versions of the monotone convergence theorem for the Bochner integral (#10793)
Diff
@@ -1100,6 +1100,13 @@ theorem Filter.Tendsto.const_div' (b : G) {c : G} {f : α → G} {l : Filter α}
 #align filter.tendsto.const_div' Filter.Tendsto.const_div'
 #align filter.tendsto.const_sub Filter.Tendsto.const_sub
 
+@[to_additive]
+lemma Filter.tendsto_const_div_iff {G : Type*} [CommGroup G] [TopologicalSpace G] [ContinuousDiv G]
+    (b : G) {c : G} {f : α → G} {l : Filter α} :
+    Tendsto (fun k : α ↦ b / f k) l (𝓝 (b / c)) ↔ Tendsto f l (𝓝 c) := by
+  refine ⟨fun h ↦ ?_, Filter.Tendsto.const_div' b⟩
+  convert h.const_div' b with k <;> rw [div_div_cancel]
+
 @[to_additive sub_const]
 theorem Filter.Tendsto.div_const' {c : G} {f : α → G} {l : Filter α} (h : Tendsto f l (𝓝 c))
     (b : G) : Tendsto (f · / b) l (𝓝 (c / b)) :=
@@ -1107,6 +1114,20 @@ theorem Filter.Tendsto.div_const' {c : G} {f : α → G} {l : Filter α} (h : Te
 #align filter.tendsto.div_const' Filter.Tendsto.div_const'
 #align filter.tendsto.sub_const Filter.Tendsto.sub_const
 
+lemma Filter.tendsto_div_const_iff {G : Type*}
+    [CommGroupWithZero G] [TopologicalSpace G] [ContinuousDiv G]
+    {b : G} (hb : b ≠ 0) {c : G} {f : α → G} {l : Filter α} :
+    Tendsto (f · / b) l (𝓝 (c / b)) ↔ Tendsto f l (𝓝 c) := by
+  refine ⟨fun h ↦ ?_, fun h ↦ Filter.Tendsto.div_const' h b⟩
+  convert h.div_const' b⁻¹ with k <;> rw [div_div, mul_inv_cancel hb, div_one]
+
+lemma Filter.tendsto_sub_const_iff {G : Type*}
+    [AddCommGroup G] [TopologicalSpace G] [ContinuousSub G]
+    (b : G) {c : G} {f : α → G} {l : Filter α} :
+    Tendsto (f · - b) l (𝓝 (c - b)) ↔ Tendsto f l (𝓝 c) := by
+  refine ⟨fun h ↦ ?_, fun h ↦ Filter.Tendsto.sub_const h b⟩
+  convert h.sub_const (-b) with k <;> rw [sub_sub, ← sub_eq_add_neg, sub_self, sub_zero]
+
 variable [TopologicalSpace α] {f g : α → G} {s : Set α} {x : α}
 
 @[to_additive (attr := continuity, fun_prop) sub]
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -297,7 +297,7 @@ variable (G₁ G₂ : Type*) [TopologicalSpace G₂] [T2Space G₂]
 theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
     IsClosed { f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹ } := by
   simp only [setOf_forall]
-  refine' isClosed_iInter fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
+  exact isClosed_iInter fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
 #align is_closed_set_of_map_inv isClosed_setOf_map_inv
 #align is_closed_set_of_map_neg isClosed_setOf_map_neg
 
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

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

This follows on from #6964.

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

Diff
@@ -946,9 +946,8 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (x₀ * ·) (𝓝 1))
     (hconj : ∀ x₀ : G, Tendsto (x₀ * · * x₀⁻¹) (𝓝 1) (𝓝 1)) : TopologicalGroup G := by
   refine' TopologicalGroup.of_nhds_one' hmul hinv hleft fun x₀ => _
-  replace hconj : ∀ x₀ : G, map (x₀ * · * x₀⁻¹) (𝓝 1) = 𝓝 1
-  · exact fun x₀ =>
-      map_eq_of_inverse (x₀⁻¹ * · * x₀⁻¹⁻¹) (by ext; simp [mul_assoc]) (hconj _) (hconj _)
+  replace hconj : ∀ x₀ : G, map (x₀ * · * x₀⁻¹) (𝓝 1) = 𝓝 1 :=
+    fun x₀ => map_eq_of_inverse (x₀⁻¹ * · * x₀⁻¹⁻¹) (by ext; simp [mul_assoc]) (hconj _) (hconj _)
   rw [← hconj x₀]
   simpa [(· ∘ ·)] using hleft _
 #align topological_group.of_nhds_one TopologicalGroup.of_nhds_one
chore: redistribute tags for fun_prop regarding continuity across the library (#10494)

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

Diff
@@ -233,19 +233,19 @@ theorem Filter.Tendsto.inv {f : α → G} {l : Filter α} {y : G} (h : Tendsto f
 
 variable [TopologicalSpace α] {f : α → G} {s : Set α} {x : α}
 
-@[to_additive (attr := continuity)]
+@[to_additive (attr := continuity, fun_prop)]
 theorem Continuous.inv (hf : Continuous f) : Continuous fun x => (f x)⁻¹ :=
   continuous_inv.comp hf
 #align continuous.inv Continuous.inv
 #align continuous.neg Continuous.neg
 
-@[to_additive]
+@[to_additive (attr := fun_prop)]
 theorem ContinuousAt.inv (hf : ContinuousAt f x) : ContinuousAt (fun x => (f x)⁻¹) x :=
   continuousAt_inv.comp hf
 #align continuous_at.inv ContinuousAt.inv
 #align continuous_at.neg ContinuousAt.neg
 
-@[to_additive]
+@[to_additive (attr := fun_prop)]
 theorem ContinuousOn.inv (hf : ContinuousOn f s) : ContinuousOn (fun x => (f x)⁻¹) s :=
   continuous_inv.comp_continuousOn hf
 #align continuous_on.inv ContinuousOn.inv
@@ -504,7 +504,7 @@ instance AddGroup.continuousSMul_int {A} [AddGroup A] [TopologicalSpace A]
   ⟨continuous_prod_of_discrete_left.mpr continuous_zsmul⟩
 #align add_group.has_continuous_smul_int AddGroup.continuousSMul_int
 
-@[to_additive (attr := continuity)]
+@[to_additive (attr := continuity, fun_prop)]
 theorem Continuous.zpow {f : α → G} (h : Continuous f) (z : ℤ) : Continuous fun b => f b ^ z :=
   (continuous_zpow z).comp h
 #align continuous.zpow Continuous.zpow
@@ -536,14 +536,14 @@ theorem ContinuousWithinAt.zpow {f : α → G} {x : α} {s : Set α} (hf : Conti
 #align continuous_within_at.zpow ContinuousWithinAt.zpow
 #align continuous_within_at.zsmul ContinuousWithinAt.zsmul
 
-@[to_additive]
+@[to_additive (attr := fun_prop)]
 theorem ContinuousAt.zpow {f : α → G} {x : α} (hf : ContinuousAt f x) (z : ℤ) :
     ContinuousAt (fun x => f x ^ z) x :=
   Filter.Tendsto.zpow hf z
 #align continuous_at.zpow ContinuousAt.zpow
 #align continuous_at.zsmul ContinuousAt.zsmul
 
-@[to_additive]
+@[to_additive (attr := fun_prop)]
 theorem ContinuousOn.zpow {f : α → G} {s : Set α} (hf : ContinuousOn f s) (z : ℤ) :
     ContinuousOn (fun x => f x ^ z) s := fun x hx => (hf x hx).zpow z
 #align continuous_on.zpow ContinuousOn.zpow
@@ -1110,7 +1110,7 @@ theorem Filter.Tendsto.div_const' {c : G} {f : α → G} {l : Filter α} (h : Te
 
 variable [TopologicalSpace α] {f g : α → G} {s : Set α} {x : α}
 
-@[to_additive (attr := continuity) sub]
+@[to_additive (attr := continuity, fun_prop) sub]
 theorem Continuous.div' (hf : Continuous f) (hg : Continuous g) : Continuous fun x => f x / g x :=
   continuous_div'.comp (hf.prod_mk hg : _)
 #align continuous.div' Continuous.div'
@@ -1126,7 +1126,7 @@ lemma continuous_div_right' (a : G) : Continuous (· / a) := continuous_id.div'
 #align continuous_div_right' continuous_div_right'
 #align continuous_sub_right continuous_sub_right
 
-@[to_additive sub]
+@[to_additive (attr := fun_prop) sub]
 theorem ContinuousAt.div' {f g : α → G} {x : α} (hf : ContinuousAt f x) (hg : ContinuousAt g x) :
     ContinuousAt (fun x => f x / g x) x :=
   Filter.Tendsto.div' hf hg
@@ -1140,7 +1140,7 @@ theorem ContinuousWithinAt.div' (hf : ContinuousWithinAt f s x) (hg : Continuous
 #align continuous_within_at.div' ContinuousWithinAt.div'
 #align continuous_within_at.sub ContinuousWithinAt.sub
 
-@[to_additive sub]
+@[to_additive (attr := fun_prop) sub]
 theorem ContinuousOn.div' (hf : ContinuousOn f s) (hg : ContinuousOn g s) :
     ContinuousOn (fun x => f x / g x) s := fun x hx => (hf x hx).div' (hg x hx)
 #align continuous_on.div' ContinuousOn.div'
chore: tidy various files (#10362)
Diff
@@ -1808,11 +1808,8 @@ theorem eq_zero_or_locallyCompactSpace_of_support_subset_isCompact_of_group
     [TopologicalSpace α] [Zero α] [T1Space α]
     {f : G → α} {k : Set G} (hk : IsCompact k) (hf : support f ⊆ k) (h'f : Continuous f) :
     f = 0 ∨ LocallyCompactSpace G := by
-  by_cases h : ∀ x, f x = 0
-  · apply Or.inl
-    ext x
-    exact h x
-  apply Or.inr
+  refine or_iff_not_imp_left.mpr fun h => ?_
+  simp_rw [funext_iff, Pi.zero_apply] at h
   push_neg at h
   obtain ⟨x, hx⟩ : ∃ x, f x ≠ 0 := h
   have : k ∈ 𝓝 x :=
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
@@ -673,7 +673,7 @@ variable {G}
 
 @[to_additive]
 protected theorem Inducing.topologicalGroup {F : Type*} [Group H] [TopologicalSpace H]
-    [MonoidHomClass F H G] (f : F) (hf : Inducing f) : TopologicalGroup H :=
+    [FunLike F H G] [MonoidHomClass F H G] (f : F) (hf : Inducing f) : TopologicalGroup H :=
   { toContinuousMul := hf.continuousMul _
     toContinuousInv := hf.continuousInv (map_inv f) }
 #align inducing.topological_group Inducing.topologicalGroup
@@ -681,7 +681,8 @@ protected theorem Inducing.topologicalGroup {F : Type*} [Group H] [TopologicalSp
 
 @[to_additive]
 -- Porting note: removed `protected` (needs to be in namespace)
-theorem topologicalGroup_induced {F : Type*} [Group H] [MonoidHomClass F H G] (f : F) :
+theorem topologicalGroup_induced {F : Type*} [Group H] [FunLike F H G] [MonoidHomClass F H G]
+    (f : F) :
     @TopologicalGroup H (induced f ‹_›) _ :=
   letI := induced f ‹_›
   Inducing.topologicalGroup f ⟨rfl⟩
@@ -869,7 +870,8 @@ also `uniformContinuous_of_continuousAt_one`. -/
   continuous provided that it is continuous at zero. See also
   `uniformContinuous_of_continuousAt_zero`."]
 theorem continuous_of_continuousAt_one {M hom : Type*} [MulOneClass M] [TopologicalSpace M]
-    [ContinuousMul M] [MonoidHomClass hom G M] (f : hom) (hf : ContinuousAt f 1) :
+    [ContinuousMul M] [FunLike hom G M] [MonoidHomClass hom G M] (f : hom)
+    (hf : ContinuousAt f 1) :
     Continuous f :=
   continuous_iff_continuousAt.2 fun x => by
     simpa only [ContinuousAt, ← map_mul_left_nhds_one x, tendsto_map'_iff, (· ∘ ·), map_mul,
feat(Topology/Separation): define R₁ spaces, review API (#10085)

Main API changes

  • Define R1Space, a.k.a. preregular space.
  • Drop T2OrLocallyCompactRegularSpace.
  • Generalize all existing theorems about T2OrLocallyCompactRegularSpace to R1Space.
  • Drop the [T2OrLocallyCompactRegularSpace _] assumption if the space is known to be regular for other reason (e.g., because it's a topological group).

New theorems

  • Specializes.not_disjoint: if x ⤳ y, then 𝓝 x and 𝓝 y aren't disjoint;
  • specializes_iff_not_disjoint, Specializes.inseparable, disjoint_nhds_nhds_iff_not_inseparable, r1Space_iff_inseparable_or_disjoint_nhds: basic API about R1Spaces;
  • Inducing.r1Space, R1Space.induced, R1Space.sInf, R1Space.iInf, R1Space.inf, instances for Subtype _, X × Y, and ∀ i, X i: basic instances for R1Space;
  • IsCompact.mem_closure_iff_exists_inseparable, IsCompact.closure_eq_biUnion_inseparable: characterizations of the closure of a compact set in a preregular space;
  • Inseparable.mem_measurableSet_iff: topologically inseparable points can't be separated by a Borel measurable set;
  • IsCompact.closure_subset_measurableSet, IsCompact.measure_closure: in a preregular space, a measurable superset of a compact set includes its closure as well; as a corollary, closure K has the same measure as K.
  • exists_mem_nhds_isCompact_mapsTo_of_isCompact_mem_nhds: an auxiliary lemma extracted from a LocallyCompactPair instance;
  • IsCompact.isCompact_isClosed_basis_nhds: if x admits a compact neighborhood, then it admits a basis of compact closed neighborhoods; in particular, a weakly locally compact preregular space is a locally compact regular space;
  • isCompact_isClosed_basis_nhds: a version of the previous theorem for weakly locally compact spaces;
  • exists_mem_nhds_isCompact_isClosed: in a locally compact regular space, each point admits a compact closed neighborhood.

Deprecated theorems

Some theorems about topological groups are true for any (pre)regular space, so we deprecate the special cases.

  • exists_isCompact_isClosed_subset_isCompact_nhds_one: use new IsCompact.isCompact_isClosed_basis_nhds instead;
  • instLocallyCompactSpaceOfWeaklyOfGroup, instLocallyCompactSpaceOfWeaklyOfAddGroup: are now implied by WeaklyLocallyCompactSpace.locallyCompactSpace;
  • local_isCompact_isClosed_nhds_of_group, local_isCompact_isClosed_nhds_of_addGroup: use isCompact_isClosed_basis_nhds instead;
  • exists_isCompact_isClosed_nhds_one, exists_isCompact_isClosed_nhds_zero: use exists_mem_nhds_isCompact_isClosed instead.

Renamed/moved theorems

For each renamed theorem, the old theorem is redefined as a deprecated alias.

  • isOpen_setOf_disjoint_nhds_nhds: moved to Constructions;
  • isCompact_closure_of_subset_compact -> IsCompact.closure_of_subset;
  • IsCompact.measure_eq_infi_isOpen -> IsCompact.measure_eq_iInf_isOpen;
  • exists_compact_superset_iff -> exists_isCompact_superset_iff;
  • separatedNhds_of_isCompact_isCompact_isClosed -> SeparatedNhds.of_isCompact_isCompact_isClosed;
  • separatedNhds_of_isCompact_isCompact -> SeparatedNhds.of_isCompact_isCompact;
  • separatedNhds_of_finset_finset -> SeparatedNhds.of_finset_finset;
  • point_disjoint_finset_opens_of_t2 -> SeparatedNhds.of_singleton_finset;
  • separatedNhds_of_isCompact_isClosed -> SeparatedNhds.of_isCompact_isClosed;
  • exists_open_superset_and_isCompact_closure -> exists_isOpen_superset_and_isCompact_closure;
  • exists_open_with_compact_closure -> exists_isOpen_mem_isCompact_closure;
Diff
@@ -1771,35 +1771,31 @@ theorem exists_disjoint_smul_of_isCompact [NoncompactSpace G] {K L : Set G} (hK
 
 /-- A compact neighborhood of `1` in a topological group admits a closed compact subset
 that is a neighborhood of `1`. -/
-@[to_additive "A compact neighborhood of `0` in a topological additive group
+@[to_additive (attr := deprecated IsCompact.isCompact_isClosed_basis_nhds) -- Since 28 Jan 2024
+  "A compact neighborhood of `0` in a topological additive group
 admits a closed compact subset that is a neighborhood of `0`."]
 theorem exists_isCompact_isClosed_subset_isCompact_nhds_one
     {L : Set G} (Lcomp : IsCompact L) (L1 : L ∈ 𝓝 (1 : G)) :
-    ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ L ∧ K ∈ 𝓝 (1 : G) := by
-  rcases exists_mem_nhds_isClosed_subset L1 with ⟨K, hK, K_closed, KL⟩
-  exact ⟨K, Lcomp.of_isClosed_subset K_closed KL, K_closed, KL, hK⟩
+    ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ L ∧ K ∈ 𝓝 (1 : G) :=
+  let ⟨K, ⟨hK, hK₁, hK₂⟩, hKL⟩ := (Lcomp.isCompact_isClosed_basis_nhds L1).mem_iff.1 L1
+  ⟨K, hK₁, hK₂, hKL, hK⟩
 
 /-- If a point in a topological group has a compact neighborhood, then the group is
 locally compact. -/
 @[to_additive]
 theorem IsCompact.locallyCompactSpace_of_mem_nhds_of_group {K : Set G} (hK : IsCompact K) {x : G}
     (h : K ∈ 𝓝 x) : LocallyCompactSpace G := by
-  refine ⟨fun y n hn ↦ ?_⟩
-  have A : (y * x⁻¹) • K ∈ 𝓝 y := by
-    rw [← preimage_smul_inv]
+  suffices WeaklyLocallyCompactSpace G from inferInstance
+  refine ⟨fun y ↦ ⟨(y * x⁻¹) • K, ?_, ?_⟩⟩
+  · exact hK.smul _
+  · rw [← preimage_smul_inv]
     exact (continuous_const_smul _).continuousAt.preimage_mem_nhds (by simpa using h)
-  rcases exists_mem_nhds_isClosed_subset (inter_mem A hn) with ⟨L, hL, L_closed, LK⟩
-  refine ⟨L, hL, LK.trans (inter_subset_right _ _), ?_⟩
-  exact (hK.smul (y * x⁻¹)).of_isClosed_subset L_closed (LK.trans (inter_subset_left _ _))
 
--- The next instance creates a loop between weakly locally compact space and locally compact space
--- for topological groups. Hopefully, it shouldn't create problems.
 /-- A topological group which is weakly locally compact is automatically locally compact. -/
-@[to_additive]
-instance (priority := 90) instLocallyCompactSpaceOfWeaklyOfGroup [WeaklyLocallyCompactSpace G] :
-    LocallyCompactSpace G := by
-  rcases exists_compact_mem_nhds (1 : G) with ⟨K, K_comp, hK⟩
-  exact K_comp.locallyCompactSpace_of_mem_nhds_of_group hK
+@[to_additive (attr := deprecated WeaklyLocallyCompactSpace.locallyCompactSpace)] -- 28 Jan 2024
+theorem instLocallyCompactSpaceOfWeaklyOfGroup [WeaklyLocallyCompactSpace G] :
+    LocallyCompactSpace G :=
+  WeaklyLocallyCompactSpace.locallyCompactSpace
 
 /-- If a function defined on a topological group has a support contained in a
 compact set, then either the function is trivial or the group is locally compact. -/
@@ -1834,34 +1830,31 @@ theorem HasCompactSupport.eq_zero_or_locallyCompactSpace_of_group
 
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
 neighborhood of the identity, even without separation assumptions on the space. -/
-@[to_additive
+@[to_additive (attr := deprecated isCompact_isClosed_basis_nhds) -- Since 28 Jan 2024
   "In a locally compact additive group, any neighborhood of the identity contains a
   compact closed neighborhood of the identity, even without separation assumptions on the space."]
 theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set G}
     (hU : U ∈ 𝓝 (1 : G)) :
-    ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ U ∧ (1 : G) ∈ interior K := by
-  obtain ⟨L, L1, LU, Lcomp⟩ : ∃ (L : Set G), L ∈ 𝓝 (1 : G) ∧ L ⊆ U ∧ IsCompact L :=
-    local_compact_nhds hU
-  obtain ⟨K, Kcomp, Kcl, KL, K1⟩ := exists_isCompact_isClosed_subset_isCompact_nhds_one Lcomp L1
-  exact ⟨K, Kcomp, Kcl, KL.trans LU, mem_interior_iff_mem_nhds.2 K1⟩
+    ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ U ∧ (1 : G) ∈ interior K :=
+  let ⟨K, ⟨hK₁, hKco, hKcl⟩, hKU⟩ := (isCompact_isClosed_basis_nhds (1 : G)).mem_iff.1 hU
+  ⟨K, hKco, hKcl, hKU, mem_interior_iff_mem_nhds.2 hK₁⟩
 #align local_is_compact_is_closed_nhds_of_group local_isCompact_isClosed_nhds_of_group
 #align local_is_compact_is_closed_nhds_of_add_group local_isCompact_isClosed_nhds_of_addGroup
 
 variable (G)
 
-@[to_additive]
+@[to_additive (attr := deprecated exists_mem_nhds_isCompact_isClosed)] -- Since 28 Jan 2024
 theorem exists_isCompact_isClosed_nhds_one [WeaklyLocallyCompactSpace G] :
     ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ∈ 𝓝 1 :=
-  let ⟨_L, Lcomp, L1⟩ := exists_compact_mem_nhds (1 : G)
-  let ⟨K, Kcl, Kcomp, _, K1⟩ := exists_isCompact_isClosed_subset_isCompact_nhds_one Lcomp L1
-  ⟨K, Kcl, Kcomp, K1⟩
+  let ⟨K, hK₁, hKcomp, hKcl⟩ := exists_mem_nhds_isCompact_isClosed (1 : G)
+  ⟨K, hKcomp, hKcl, hK₁⟩
 
 /-- A quotient of a locally compact group is locally compact. -/
 @[to_additive]
 instance [LocallyCompactSpace G] (N : Subgroup G) : LocallyCompactSpace (G ⧸ N) := by
   refine ⟨fun x n hn ↦ ?_⟩
   let π := ((↑) : G → G ⧸ N)
-  have C : Continuous π := continuous_coinduced_rng
+  have C : Continuous π := continuous_quotient_mk'
   obtain ⟨y, rfl⟩ : ∃ y, π y = x := Quot.exists_rep x
   have : π ⁻¹' n ∈ 𝓝 y := preimage_nhds_coinduced hn
   rcases local_compact_nhds this with ⟨s, s_mem, hs, s_comp⟩
feat: three tiny homeomorph lemmas (#9166)
Diff
@@ -334,6 +334,10 @@ protected def Homeomorph.inv (G : Type*) [TopologicalSpace G] [InvolutiveInv G]
 #align homeomorph.inv Homeomorph.inv
 #align homeomorph.neg Homeomorph.neg
 
+@[to_additive (attr := simp)]
+lemma Homeomorph.coe_inv {G : Type*} [TopologicalSpace G] [InvolutiveInv G] [ContinuousInv G] :
+    ⇑(Homeomorph.inv G) = Inv.inv := rfl
+
 @[to_additive]
 theorem isOpenMap_inv : IsOpenMap (Inv.inv : G → G) :=
   (Homeomorph.inv _).isOpenMap
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
@@ -1030,7 +1030,7 @@ theorem TopologicalGroup.exists_antitone_basis_nhds_one :
     intro n
     rcases this n with ⟨j, k, -, h⟩
     refine' atTop_basis.eventually_iff.mpr ⟨max j k, True.intro, fun m hm => _⟩
-    rintro - ⟨a, b, ha, hb, rfl⟩
+    rintro - ⟨a, ha, b, hb, rfl⟩
     exact h a b (u_anti ((le_max_left _ _).trans hm) ha) (u_anti ((le_max_right _ _).trans hm) hb)
   obtain ⟨φ, -, hφ, φ_anti_basis⟩ := HasAntitoneBasis.subbasis_with_rel ⟨hu, u_anti⟩ event_mul
   exact ⟨u ∘ φ, φ_anti_basis, fun n => hφ n.lt_succ_self⟩
@@ -1257,7 +1257,7 @@ variable [TopologicalSpace α] [TopologicalSpace β] [Group α] [MulAction α β
 theorem IsClosed.smul_left_of_isCompact (ht : IsClosed t) (hs : IsCompact s) :
     IsClosed (s • t) := by
   have : ∀ x ∈ s • t, ∃ g ∈ s, g⁻¹ • x ∈ t := by
-    rintro x ⟨g, y, hgs, hyt, rfl⟩
+    rintro x ⟨g, hgs, y, hyt, rfl⟩
     refine ⟨g, hgs, ?_⟩
     rwa [inv_smul_smul]
   choose! f hf using this
@@ -1269,7 +1269,7 @@ theorem IsClosed.smul_left_of_isCompact (ht : IsClosed t) (hs : IsCompact s) :
       _ ≤ 𝓟 s := principal_mono.mpr (image_subset_iff.mpr (fun x hx ↦ (hf x hx).1))
   rcases hs.ultrafilter_le_nhds (Ultrafilter.map f u) this with ⟨g, hg, hug⟩
   suffices g⁻¹ • x ∈ t from
-    ⟨g, g⁻¹ • x, hg, this, smul_inv_smul _ _⟩
+    ⟨g, hg, g⁻¹ • x, this, smul_inv_smul _ _⟩
   exact ht.mem_of_tendsto ((Tendsto.inv hug).smul hux)
     (Eventually.mono hust (fun y hy ↦ (hf y hy).2))
 
@@ -1414,9 +1414,9 @@ theorem subset_interior_div : interior s / interior t ⊆ interior (s / t) :=
 theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set G) : s * closure t = s * t := by
   refine' (mul_subset_iff.2 fun a ha b hb => _).antisymm (mul_subset_mul_left subset_closure)
   rw [mem_closure_iff] at hb
-  have hbU : b ∈ s⁻¹ * {a * b} := ⟨a⁻¹, a * b, Set.inv_mem_inv.2 ha, rfl, inv_mul_cancel_left _ _⟩
-  obtain ⟨_, ⟨c, d, hc, rfl : d = _, rfl⟩, hcs⟩ := hb _ hs.inv.mul_right hbU
-  exact ⟨c⁻¹, _, hc, hcs, inv_mul_cancel_left _ _⟩
+  have hbU : b ∈ s⁻¹ * {a * b} := ⟨a⁻¹, Set.inv_mem_inv.2 ha, a * b, rfl, inv_mul_cancel_left _ _⟩
+  obtain ⟨_, ⟨c, hc, d, rfl : d = _, rfl⟩, hcs⟩ := hb _ hs.inv.mul_right hbU
+  exact ⟨c⁻¹, hc, _, hcs, inv_mul_cancel_left _ _⟩
 #align is_open.mul_closure IsOpen.mul_closure
 #align is_open.add_closure IsOpen.add_closure
 
@@ -1491,12 +1491,12 @@ lemma IsClosed.mul_closure_one_eq {F : Set G} (hF : IsClosed F) :
 lemma compl_mul_closure_one_eq {t : Set G} (ht : t * (closure {1} : Set G) = t) :
     tᶜ * (closure {1} : Set G) = tᶜ := by
   refine Subset.antisymm ?_ (subset_mul_closure_one tᶜ)
-  rintro - ⟨x, g, hx, hg, rfl⟩
+  rintro - ⟨x, hx, g, hg, rfl⟩
   by_contra H
   have : x ∈ t * (closure {1} : Set G) := by
     rw [← Subgroup.coe_topologicalClosure_bot G] at hg ⊢
     simp only [smul_eq_mul, mem_compl_iff, not_not] at H
-    exact ⟨x * g, g⁻¹, H, Subgroup.inv_mem _ hg, by simp⟩
+    exact ⟨x * g, H, g⁻¹, Subgroup.inv_mem _ hg, by simp⟩
   rw [ht] at this
   exact hx this
 
@@ -1760,7 +1760,7 @@ theorem exists_disjoint_smul_of_isCompact [NoncompactSpace G] {K L : Set G} (hK
   refine' ⟨g, _⟩
   refine disjoint_left.2 fun a ha h'a => hg ?_
   rcases h'a with ⟨b, bL, rfl⟩
-  refine' ⟨g * b, b⁻¹, ha, by simpa only [Set.mem_inv, inv_inv] using bL, _⟩
+  refine' ⟨g * b, ha, b⁻¹, by simpa only [Set.mem_inv, inv_inv] using bL, _⟩
   simp only [smul_eq_mul, mul_inv_cancel_right]
 #align exists_disjoint_smul_of_is_compact exists_disjoint_smul_of_isCompact
 #align exists_disjoint_vadd_of_is_compact exists_disjoint_vadd_of_isCompact
chore(*): use rintro to golf some proofs (#9204)
Diff
@@ -1257,10 +1257,9 @@ variable [TopologicalSpace α] [TopologicalSpace β] [Group α] [MulAction α β
 theorem IsClosed.smul_left_of_isCompact (ht : IsClosed t) (hs : IsCompact s) :
     IsClosed (s • t) := by
   have : ∀ x ∈ s • t, ∃ g ∈ s, g⁻¹ • x ∈ t := by
-    intro x ⟨g, y, hgs, hyt, hgyx⟩
+    rintro x ⟨g, y, hgs, hyt, rfl⟩
     refine ⟨g, hgs, ?_⟩
-    convert hyt
-    rwa [inv_smul_eq_iff, eq_comm]
+    rwa [inv_smul_smul]
   choose! f hf using this
   refine isClosed_of_closure_subset (fun x hx ↦ ?_)
   rcases mem_closure_iff_ultrafilter.mp hx with ⟨u, hust, hux⟩
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -481,7 +481,7 @@ end Conj
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G] [TopologicalSpace α] {f : α → G}
   {s : Set α} {x : α}
 
-section Zpow
+section ZPow
 
 @[to_additive (attr := continuity)]
 theorem continuous_zpow : ∀ z : ℤ, Continuous fun a : G => a ^ z
@@ -545,7 +545,7 @@ theorem ContinuousOn.zpow {f : α → G} {s : Set α} (hf : ContinuousOn f s) (z
 #align continuous_on.zpow ContinuousOn.zpow
 #align continuous_on.zsmul ContinuousOn.zsmul
 
-end Zpow
+end ZPow
 
 section OrderedCommGroup
 
@@ -1276,7 +1276,7 @@ theorem IsClosed.smul_left_of_isCompact (ht : IsClosed t) (hs : IsCompact s) :
 
 /-! One may expect a version of `IsClosed.smul_left_of_isCompact` where `t` is compact and `s` is
 closed, but such a lemma can't be true in this level of generality. For a counterexample, consider
-`ℚ` acting on `ℝ` by translation, and let `s : set ℚ := univ`, `t : set ℝ := {0}`. Then `s` is
+`ℚ` acting on `ℝ` by translation, and let `s : Set ℚ := univ`, `t : set ℝ := {0}`. Then `s` is
 closed and `t` is compact, but `s +ᵥ t` is the set of all rationals, which is definitely not
 closed in `ℝ`.
 To fix the proof, we would need to make two additional assumptions:
refactor: Remove leftCoset/rightCoset (#8877)

Those two definitions are completely obsolete now that we have the pointwise API. This PR removes them but not the corresponding API. A much more tedious subsequent PR will be needed to merge the two API.

Note that I need to tweak simp lemmas to keep confluence since I'm merging two pairs of head keys together.

Diff
@@ -79,7 +79,7 @@ lemma isOpenMap_mul_left (a : G) : IsOpenMap (a * ·) := (Homeomorph.mulLeft a).
 #align is_open_map_add_left isOpenMap_add_left
 
 @[to_additive IsOpen.left_addCoset]
-theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset x U) :=
+theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (x • U) :=
   isOpenMap_mul_left x _ h
 #align is_open.left_coset IsOpen.leftCoset
 #align is_open.left_add_coset IsOpen.left_addCoset
@@ -90,7 +90,7 @@ lemma isClosedMap_mul_left (a : G) : IsClosedMap (a * ·) := (Homeomorph.mulLeft
 #align is_closed_map_add_left isClosedMap_add_left
 
 @[to_additive IsClosed.left_addCoset]
-theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (leftCoset x U) :=
+theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (x • U) :=
   isClosedMap_mul_left x _ h
 #align is_closed.left_coset IsClosed.leftCoset
 #align is_closed.left_add_coset IsClosed.left_addCoset
@@ -124,7 +124,7 @@ theorem isOpenMap_mul_right (a : G) : IsOpenMap (· * a) :=
 #align is_open_map_add_right isOpenMap_add_right
 
 @[to_additive IsOpen.right_addCoset]
-theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (rightCoset U x) :=
+theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (op x • U) :=
   isOpenMap_mul_right x _ h
 #align is_open.right_coset IsOpen.rightCoset
 #align is_open.right_add_coset IsOpen.right_addCoset
@@ -136,7 +136,7 @@ theorem isClosedMap_mul_right (a : G) : IsClosedMap (· * a) :=
 #align is_closed_map_add_right isClosedMap_add_right
 
 @[to_additive IsClosed.right_addCoset]
-theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rightCoset U x) :=
+theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (op x • U) :=
   isClosedMap_mul_right x _ h
 #align is_closed.right_coset IsClosed.rightCoset
 #align is_closed.right_add_coset IsClosed.right_addCoset
chore: Replace (· op ·) a by (a op ·) (#8843)

I used the regex \(\(· (.) ·\) (.)\), replacing with ($2 $1 ·).

Diff
@@ -61,7 +61,7 @@ protected def Homeomorph.mulLeft (a : G) : G ≃ₜ G :=
 #align homeomorph.add_left Homeomorph.addLeft
 
 @[to_additive (attr := simp)]
-theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (· * ·) a :=
+theorem Homeomorph.coe_mulLeft (a : G) : ⇑(Homeomorph.mulLeft a) = (a * ·) :=
   rfl
 #align homeomorph.coe_mul_left Homeomorph.coe_mulLeft
 #align homeomorph.coe_add_left Homeomorph.coe_addLeft
@@ -74,8 +74,7 @@ theorem Homeomorph.mulLeft_symm (a : G) : (Homeomorph.mulLeft a).symm = Homeomor
 #align homeomorph.add_left_symm Homeomorph.addLeft_symm
 
 @[to_additive]
-theorem isOpenMap_mul_left (a : G) : IsOpenMap fun x => a * x :=
-  (Homeomorph.mulLeft a).isOpenMap
+lemma isOpenMap_mul_left (a : G) : IsOpenMap (a * ·) := (Homeomorph.mulLeft a).isOpenMap
 #align is_open_map_mul_left isOpenMap_mul_left
 #align is_open_map_add_left isOpenMap_add_left
 
@@ -86,8 +85,7 @@ theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset
 #align is_open.left_add_coset IsOpen.left_addCoset
 
 @[to_additive]
-theorem isClosedMap_mul_left (a : G) : IsClosedMap fun x => a * x :=
-  (Homeomorph.mulLeft a).isClosedMap
+lemma isClosedMap_mul_left (a : G) : IsClosedMap (a * ·) := (Homeomorph.mulLeft a).isClosedMap
 #align is_closed_map_mul_left isClosedMap_mul_left
 #align is_closed_map_add_left isClosedMap_add_left
 
@@ -107,8 +105,7 @@ protected def Homeomorph.mulRight (a : G) : G ≃ₜ G :=
 #align homeomorph.add_right Homeomorph.addRight
 
 @[to_additive (attr := simp)]
-theorem Homeomorph.coe_mulRight (a : G) : ⇑(Homeomorph.mulRight a) = fun g => g * a :=
-  rfl
+lemma Homeomorph.coe_mulRight (a : G) : ⇑(Homeomorph.mulRight a) = (· * a) := rfl
 #align homeomorph.coe_mul_right Homeomorph.coe_mulRight
 #align homeomorph.coe_add_right Homeomorph.coe_addRight
 
@@ -121,7 +118,7 @@ theorem Homeomorph.mulRight_symm (a : G) :
 #align homeomorph.add_right_symm Homeomorph.addRight_symm
 
 @[to_additive]
-theorem isOpenMap_mul_right (a : G) : IsOpenMap fun x => x * a :=
+theorem isOpenMap_mul_right (a : G) : IsOpenMap (· * a) :=
   (Homeomorph.mulRight a).isOpenMap
 #align is_open_map_mul_right isOpenMap_mul_right
 #align is_open_map_add_right isOpenMap_add_right
@@ -133,7 +130,7 @@ theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (rightCose
 #align is_open.right_add_coset IsOpen.right_addCoset
 
 @[to_additive]
-theorem isClosedMap_mul_right (a : G) : IsClosedMap fun x => x * a :=
+theorem isClosedMap_mul_right (a : G) : IsClosedMap (· * a) :=
   (Homeomorph.mulRight a).isClosedMap
 #align is_closed_map_mul_right isClosedMap_mul_right
 #align is_closed_map_add_right isClosedMap_add_right
@@ -149,7 +146,7 @@ theorem discreteTopology_of_isOpen_singleton_one (h : IsOpen ({1} : Set G)) :
     DiscreteTopology G := by
   rw [← singletons_open_iff_discrete]
   intro g
-  suffices {g} = (fun x : G => g⁻¹ * x) ⁻¹' {1} by
+  suffices {g} = (g⁻¹ * ·) ⁻¹' {1} by
     rw [this]
     exact (continuous_mul_left g⁻¹).isOpen_preimage _ h
   simp only [mul_one, Set.preimage_mul_left_singleton, eq_self_iff_true, inv_inv,
@@ -814,30 +811,30 @@ theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
 #align exists_nhds_half_neg exists_nhds_half_neg
 
 @[to_additive]
-theorem nhds_translation_mul_inv (x : G) : comap (fun y : G => y * x⁻¹) (𝓝 1) = 𝓝 x :=
+theorem nhds_translation_mul_inv (x : G) : comap (· * x⁻¹) (𝓝 1) = 𝓝 x :=
   ((Homeomorph.mulRight x⁻¹).comap_nhds_eq 1).trans <| show 𝓝 (1 * x⁻¹⁻¹) = 𝓝 x by simp
 #align nhds_translation_mul_inv nhds_translation_mul_inv
 #align nhds_translation_add_neg nhds_translation_add_neg
 
 @[to_additive (attr := simp)]
-theorem map_mul_left_nhds (x y : G) : map ((· * ·) x) (𝓝 y) = 𝓝 (x * y) :=
+theorem map_mul_left_nhds (x y : G) : map (x * ·) (𝓝 y) = 𝓝 (x * y) :=
   (Homeomorph.mulLeft x).map_nhds_eq y
 #align map_mul_left_nhds map_mul_left_nhds
 #align map_add_left_nhds map_add_left_nhds
 
 @[to_additive]
-theorem map_mul_left_nhds_one (x : G) : map ((· * ·) x) (𝓝 1) = 𝓝 x := by simp
+theorem map_mul_left_nhds_one (x : G) : map (x * ·) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_left_nhds_one map_mul_left_nhds_one
 #align map_add_left_nhds_zero map_add_left_nhds_zero
 
 @[to_additive (attr := simp)]
-theorem map_mul_right_nhds (x y : G) : map (fun z => z * x) (𝓝 y) = 𝓝 (y * x) :=
+theorem map_mul_right_nhds (x y : G) : map (· * x) (𝓝 y) = 𝓝 (y * x) :=
   (Homeomorph.mulRight x).map_nhds_eq y
 #align map_mul_right_nhds map_mul_right_nhds
 #align map_add_right_nhds map_add_right_nhds
 
 @[to_additive]
-theorem map_mul_right_nhds_one (x : G) : map (fun y => y * x) (𝓝 1) = 𝓝 x := by simp
+theorem map_mul_right_nhds_one (x : G) : map (· * x) (𝓝 1) = 𝓝 x := by simp
 #align map_mul_right_nhds_one map_mul_right_nhds_one
 #align map_add_right_nhds_zero map_add_right_nhds_zero
 
@@ -881,7 +878,7 @@ theorem continuous_of_continuousAt_one {M hom : Type*} [MulOneClass M] [Topologi
 theorem continuous_of_continuousAt_one₂ {H M : Type*} [CommMonoid M] [TopologicalSpace M]
     [ContinuousMul M] [Group H] [TopologicalSpace H] [TopologicalGroup H] (f : G →* H →* M)
     (hf : ContinuousAt (fun x : G × H ↦ f x.1 x.2) (1, 1))
-    (hl : ∀ x, ContinuousAt (f x) 1) (hr : ∀ y, ContinuousAt (fun x => f x y) 1) :
+    (hl : ∀ x, ContinuousAt (f x) 1) (hr : ∀ y, ContinuousAt (f · y) 1) :
     Continuous (fun x : G × H ↦ f x.1 x.2) := continuous_iff_continuousAt.2 fun (x, y) => by
   simp only [ContinuousAt, nhds_prod_eq, ← map_mul_left_nhds_one x, ← map_mul_left_nhds_one y,
     prod_map_map_eq, tendsto_map'_iff, (· ∘ ·), map_mul, MonoidHom.mul_apply] at *
@@ -912,7 +909,7 @@ theorem ContinuousInv.of_nhds_one {G : Type*} [Group G] [TopologicalSpace G]
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x : G => x₀ * x) (𝓝 1))
     (hconj : ∀ x₀ : G, Tendsto (fun x : G => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)) : ContinuousInv G := by
   refine' ⟨continuous_iff_continuousAt.2 fun x₀ => _⟩
-  have : Tendsto (fun x => x₀⁻¹ * (x₀ * x⁻¹ * x₀⁻¹)) (𝓝 1) (map ((· * ·) x₀⁻¹) (𝓝 1)) :=
+  have : Tendsto (fun x => x₀⁻¹ * (x₀ * x⁻¹ * x₀⁻¹)) (𝓝 1) (map (x₀⁻¹ * ·) (𝓝 1)) :=
     (tendsto_map.comp <| hconj x₀).comp hinv
   simpa only [ContinuousAt, hleft x₀, hleft x₀⁻¹, tendsto_map'_iff, (· ∘ ·), mul_assoc, mul_inv_rev,
     inv_mul_cancel_left] using this
@@ -940,12 +937,12 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ˢ 𝓝 1) (𝓝 1))
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
-    (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1))
-    (hconj : ∀ x₀ : G, Tendsto (fun x => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)) : TopologicalGroup G := by
+    (hleft : ∀ x₀ : G, 𝓝 x₀ = map (x₀ * ·) (𝓝 1))
+    (hconj : ∀ x₀ : G, Tendsto (x₀ * · * x₀⁻¹) (𝓝 1) (𝓝 1)) : TopologicalGroup G := by
   refine' TopologicalGroup.of_nhds_one' hmul hinv hleft fun x₀ => _
-  replace hconj : ∀ x₀ : G, map (fun x => x₀ * x * x₀⁻¹) (𝓝 1) = 𝓝 1
+  replace hconj : ∀ x₀ : G, map (x₀ * · * x₀⁻¹) (𝓝 1) = 𝓝 1
   · exact fun x₀ =>
-      map_eq_of_inverse (fun x => x₀⁻¹ * x * x₀⁻¹⁻¹) (by ext; simp [mul_assoc]) (hconj _) (hconj _)
+      map_eq_of_inverse (x₀⁻¹ * · * x₀⁻¹⁻¹) (by ext; simp [mul_assoc]) (hconj _) (hconj _)
   rw [← hconj x₀]
   simpa [(· ∘ ·)] using hleft _
 #align topological_group.of_nhds_one TopologicalGroup.of_nhds_one
@@ -955,7 +952,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
     (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ˢ 𝓝 1) (𝓝 1))
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
-    (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1)) : TopologicalGroup G :=
+    (hleft : ∀ x₀ : G, 𝓝 x₀ = map (x₀ * ·) (𝓝 1)) : TopologicalGroup G :=
   TopologicalGroup.of_nhds_one hmul hinv hleft (by simpa using tendsto_id)
 #align topological_group.of_comm_of_nhds_one TopologicalGroup.of_comm_of_nhds_one
 #align topological_add_group.of_comm_of_nhds_zero TopologicalAddGroup.of_comm_of_nhds_zero
@@ -1100,7 +1097,7 @@ theorem Filter.Tendsto.const_div' (b : G) {c : G} {f : α → G} {l : Filter α}
 
 @[to_additive sub_const]
 theorem Filter.Tendsto.div_const' {c : G} {f : α → G} {l : Filter α} (h : Tendsto f l (𝓝 c))
-    (b : G) : Tendsto (fun k : α => f k / b) l (𝓝 (c / b)) :=
+    (b : G) : Tendsto (f · / b) l (𝓝 (c / b)) :=
   h.div' tendsto_const_nhds
 #align filter.tendsto.div_const' Filter.Tendsto.div_const'
 #align filter.tendsto.sub_const Filter.Tendsto.sub_const
@@ -1114,14 +1111,12 @@ theorem Continuous.div' (hf : Continuous f) (hg : Continuous g) : Continuous fun
 #align continuous.sub Continuous.sub
 
 @[to_additive (attr := continuity) continuous_sub_left]
-theorem continuous_div_left' (a : G) : Continuous fun b : G => a / b :=
-  continuous_const.div' continuous_id
+lemma continuous_div_left' (a : G) : Continuous (a / ·) := continuous_const.div' continuous_id
 #align continuous_div_left' continuous_div_left'
 #align continuous_sub_left continuous_sub_left
 
 @[to_additive (attr := continuity) continuous_sub_right]
-theorem continuous_div_right' (a : G) : Continuous fun b : G => b / a :=
-  continuous_id.div' continuous_const
+lemma continuous_div_right' (a : G) : Continuous (· / a) := continuous_id.div' continuous_const
 #align continuous_div_right' continuous_div_right'
 #align continuous_sub_right continuous_sub_right
 
@@ -1162,13 +1157,13 @@ def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
 #align homeomorph.sub_left Homeomorph.subLeft
 
 @[to_additive]
-theorem isOpenMap_div_left (a : G) : IsOpenMap ((· / ·) a) :=
+theorem isOpenMap_div_left (a : G) : IsOpenMap (a / ·) :=
   (Homeomorph.divLeft _).isOpenMap
 #align is_open_map_div_left isOpenMap_div_left
 #align is_open_map_sub_left isOpenMap_sub_left
 
 @[to_additive]
-theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
+theorem isClosedMap_div_left (a : G) : IsClosedMap (a / ·) :=
   (Homeomorph.divLeft _).isClosedMap
 #align is_closed_map_div_left isClosedMap_div_left
 #align is_closed_map_sub_left isClosedMap_sub_left
@@ -1184,20 +1179,18 @@ def Homeomorph.divRight (x : G) : G ≃ₜ G :=
 #align homeomorph.sub_right Homeomorph.subRight
 
 @[to_additive]
-theorem isOpenMap_div_right (a : G) : IsOpenMap fun x => x / a :=
-  (Homeomorph.divRight a).isOpenMap
+lemma isOpenMap_div_right (a : G) : IsOpenMap (· / a) := (Homeomorph.divRight a).isOpenMap
 #align is_open_map_div_right isOpenMap_div_right
 #align is_open_map_sub_right isOpenMap_sub_right
 
 @[to_additive]
-theorem isClosedMap_div_right (a : G) : IsClosedMap fun x => x / a :=
-  (Homeomorph.divRight a).isClosedMap
+lemma isClosedMap_div_right (a : G) : IsClosedMap (· / a) := (Homeomorph.divRight a).isClosedMap
 #align is_closed_map_div_right isClosedMap_div_right
 #align is_closed_map_sub_right isClosedMap_sub_right
 
 @[to_additive]
 theorem tendsto_div_nhds_one_iff {α : Type*} {l : Filter α} {x : G} {u : α → G} :
-    Tendsto (fun n => u n / x) l (𝓝 1) ↔ Tendsto u l (𝓝 x) :=
+    Tendsto (u · / x) l (𝓝 1) ↔ Tendsto u l (𝓝 x) :=
   haveI A : Tendsto (fun _ : α => x) l (𝓝 x) := tendsto_const_nhds
   ⟨fun h => by simpa using h.mul A, fun h => by simpa using h.div' A⟩
 #align tendsto_div_nhds_one_iff tendsto_div_nhds_one_iff
@@ -1722,10 +1715,10 @@ variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
   "A compact set is covered by finitely many left additive translates of a set
     with non-empty interior."]
 theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
-    (hV : (interior V).Nonempty) : ∃ t : Finset G, K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' V := by
-  obtain ⟨t, ht⟩ : ∃ t : Finset G, K ⊆ ⋃ x ∈ t, interior ((· * ·) x ⁻¹' V) := by
+    (hV : (interior V).Nonempty) : ∃ t : Finset G, K ⊆ ⋃ g ∈ t, (g * ·) ⁻¹' V := by
+  obtain ⟨t, ht⟩ : ∃ t : Finset G, K ⊆ ⋃ x ∈ t, interior ((x * ·) ⁻¹' V) := by
     refine'
-      hK.elim_finite_subcover (fun x => interior <| (· * ·) x ⁻¹' V) (fun x => isOpen_interior) _
+      hK.elim_finite_subcover (fun x => interior <| (x * ·) ⁻¹' V) (fun x => isOpen_interior) _
     cases' hV with g₀ hg₀
     refine' fun g _ => mem_iUnion.2 ⟨g₀ * g⁻¹, _⟩
     refine' preimage_interior_subset_interior_preimage (continuous_const.mul continuous_id) _
chore: rename lemmas containing "of_open" to match the naming convention (#8229)

Mostly, this means replacing "of_open" by "of_isOpen". A few lemmas names were misleading and are corrected differently. Zulip discussion.

Diff
@@ -145,7 +145,8 @@ theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rig
 #align is_closed.right_add_coset IsClosed.right_addCoset
 
 @[to_additive]
-theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : DiscreteTopology G := by
+theorem discreteTopology_of_isOpen_singleton_one (h : IsOpen ({1} : Set G)) :
+    DiscreteTopology G := by
   rw [← singletons_open_iff_discrete]
   intro g
   suffices {g} = (fun x : G => g⁻¹ * x) ⁻¹' {1} by
@@ -153,14 +154,14 @@ theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : Disc
     exact (continuous_mul_left g⁻¹).isOpen_preimage _ h
   simp only [mul_one, Set.preimage_mul_left_singleton, eq_self_iff_true, inv_inv,
     Set.singleton_eq_singleton_iff]
-#align discrete_topology_of_open_singleton_one discreteTopology_of_open_singleton_one
-#align discrete_topology_of_open_singleton_zero discreteTopology_of_open_singleton_zero
+#align discrete_topology_of_open_singleton_one discreteTopology_of_isOpen_singleton_one
+#align discrete_topology_of_open_singleton_zero discreteTopology_of_isOpen_singleton_zero
 
 @[to_additive]
-theorem discreteTopology_iff_open_singleton_one : DiscreteTopology G ↔ IsOpen ({1} : Set G) :=
-  ⟨fun h => forall_open_iff_discrete.mpr h {1}, discreteTopology_of_open_singleton_one⟩
-#align discrete_topology_iff_open_singleton_one discreteTopology_iff_open_singleton_one
-#align discrete_topology_iff_open_singleton_zero discreteTopology_iff_open_singleton_zero
+theorem discreteTopology_iff_isOpen_singleton_one : DiscreteTopology G ↔ IsOpen ({1} : Set G) :=
+  ⟨fun h => forall_open_iff_discrete.mpr h {1}, discreteTopology_of_isOpen_singleton_one⟩
+#align discrete_topology_iff_open_singleton_one discreteTopology_iff_isOpen_singleton_one
+#align discrete_topology_iff_open_singleton_zero discreteTopology_iff_isOpen_singleton_zero
 
 end ContinuousMulGroup
 
chore(Topology/{Compactness/Compact}, Irreducible}): rename type variables (#7591)

X, Y, Z are standard mathematical names for topological spaces. As discussed on zulip, let us rename them.

As a drive-by commit, re-use the declared variables $\iota$, $s$ and $t$ (more) when stating theorems.

Co-authored-by: grunweg <grunweg@posteo.de>

Diff
@@ -1300,7 +1300,7 @@ theorem MulAction.isClosedMap_quotient [CompactSpace α] :
     IsClosedMap (Quotient.mk' : β → Quotient (orbitRel α β)) := by
   intro t ht
   rw [← quotientMap_quotient_mk'.isClosed_preimage, MulAction.quotient_preimage_image_eq_union_mul]
-  convert ht.smul_left_of_isCompact (isCompact_univ (α := α))
+  convert ht.smul_left_of_isCompact (isCompact_univ (X := α))
   rw [← biUnion_univ, ← iUnion_smul_left_image]
   rfl
 
style: cleanup by putting by on the same line as := (#8407)

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

Diff
@@ -1883,8 +1883,8 @@ theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
     𝓝 (x * y) = map (x * ·) (map (· * y) (𝓝 1 * 𝓝 1)) := by simp
     _ = map₂ (fun a b => x * (a * b * y)) (𝓝 1) (𝓝 1) := by rw [← map₂_mul, map_map₂, map_map₂]
     _ = map₂ (fun a b => x * a * (b * y)) (𝓝 1) (𝓝 1) := by simp only [mul_assoc]
-    _ = 𝓝 x * 𝓝 y :=
-    by rw [← map_mul_left_nhds_one x, ← map_mul_right_nhds_one y, ← map₂_mul, map₂_map_left,
+    _ = 𝓝 x * 𝓝 y := by
+      rw [← map_mul_left_nhds_one x, ← map_mul_right_nhds_one y, ← map₂_mul, map₂_map_left,
         map₂_map_right]
 #align nhds_mul nhds_mul
 #align nhds_add nhds_add
feat: multiplication by closure {1} in topological groups does not change closed and open subsets (#7858)
Diff
@@ -694,11 +694,11 @@ instance (S : Subgroup G) : TopologicalGroup S :=
 
 end Subgroup
 
-/-- The (topological-space) closure of a subgroup of a space `M` with `ContinuousMul` is
+/-- The (topological-space) closure of a subgroup of a topological group is
 itself a subgroup. -/
 @[to_additive
-  "The (topological-space) closure of an additive subgroup of a space `M` with
-  `ContinuousAdd` is itself an additive subgroup."]
+  "The (topological-space) closure of an additive subgroup of an additive topological group is
+  itself an additive subgroup."]
 def Subgroup.topologicalClosure (s : Subgroup G) : Subgroup G :=
   { s.toSubmonoid.topologicalClosure with
     carrier := _root_.closure (s : Set G)
@@ -797,6 +797,11 @@ def Subgroup.commGroupTopologicalClosure [T2Space G] (s : Subgroup G)
 #align subgroup.comm_group_topological_closure Subgroup.commGroupTopologicalClosure
 #align add_subgroup.add_comm_group_topological_closure AddSubgroup.addCommGroupTopologicalClosure
 
+variable (G) in
+@[to_additive]
+lemma Subgroup.coe_topologicalClosure_bot :
+    ((⊥ : Subgroup G).topologicalClosure : Set G) = _root_.closure ({1} : Set G) := by simp
+
 @[to_additive exists_nhds_half_neg]
 theorem exists_nhds_split_inv {s : Set G} (hs : s ∈ 𝓝 (1 : G)) :
     ∃ V ∈ 𝓝 (1 : G), ∀ v ∈ V, ∀ w ∈ V, v / w ∈ s := by
@@ -1378,7 +1383,7 @@ end ContinuousConstSMulOp
 
 section TopologicalGroup
 
-variable [TopologicalSpace α] [Group α] [TopologicalGroup α] {s t : Set α}
+variable [TopologicalSpace G] [Group G] [TopologicalGroup G] {s t : Set G}
 
 @[to_additive]
 theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) := by
@@ -1413,7 +1418,7 @@ theorem subset_interior_div : interior s / interior t ⊆ interior (s / t) :=
 #align subset_interior_sub subset_interior_sub
 
 @[to_additive]
-theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t := by
+theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set G) : s * closure t = s * t := by
   refine' (mul_subset_iff.2 fun a ha b hb => _).antisymm (mul_subset_mul_left subset_closure)
   rw [mem_closure_iff] at hb
   have hbU : b ∈ s⁻¹ * {a * b} := ⟨a⁻¹, a * b, Set.inv_mem_inv.2 ha, rfl, inv_mul_cancel_left _ _⟩
@@ -1423,20 +1428,20 @@ theorem IsOpen.mul_closure (hs : IsOpen s) (t : Set α) : s * closure t = s * t
 #align is_open.add_closure IsOpen.add_closure
 
 @[to_additive]
-theorem IsOpen.closure_mul (ht : IsOpen t) (s : Set α) : closure s * t = s * t := by
+theorem IsOpen.closure_mul (ht : IsOpen t) (s : Set G) : closure s * t = s * t := by
   rw [← inv_inv (closure s * t), mul_inv_rev, inv_closure, ht.inv.mul_closure, mul_inv_rev, inv_inv,
     inv_inv]
 #align is_open.closure_mul IsOpen.closure_mul
 #align is_open.closure_add IsOpen.closure_add
 
 @[to_additive]
-theorem IsOpen.div_closure (hs : IsOpen s) (t : Set α) : s / closure t = s / t := by
+theorem IsOpen.div_closure (hs : IsOpen s) (t : Set G) : s / closure t = s / t := by
   simp_rw [div_eq_mul_inv, inv_closure, hs.mul_closure]
 #align is_open.div_closure IsOpen.div_closure
 #align is_open.sub_closure IsOpen.sub_closure
 
 @[to_additive]
-theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t := by
+theorem IsOpen.closure_div (ht : IsOpen t) (s : Set G) : closure s / t = s / t := by
   simp_rw [div_eq_mul_inv, ht.inv.closure_mul]
 #align is_open.closure_div IsOpen.closure_div
 #align is_open.closure_sub IsOpen.closure_sub
@@ -1452,8 +1457,8 @@ theorem IsClosed.mul_right_of_isCompact (ht : IsClosed t) (hs : IsCompact s) :
   exact IsClosed.smul_left_of_isCompact ht (hs.image continuous_op)
 
 @[to_additive]
-theorem QuotientGroup.isClosedMap_coe {H : Subgroup α} (hH : IsCompact (H : Set α)) :
-    IsClosedMap ((↑) : α → α ⧸ H) := by
+theorem QuotientGroup.isClosedMap_coe {H : Subgroup G} (hH : IsCompact (H : Set G)) :
+    IsClosedMap ((↑) : G → G ⧸ H) := by
   intro t ht
   rw [← quotientMap_quotient_mk'.isClosed_preimage]
   convert ht.mul_right_of_isCompact hH
@@ -1461,6 +1466,57 @@ theorem QuotientGroup.isClosedMap_coe {H : Subgroup α} (hH : IsCompact (H : Set
   rw [iUnion_subtype, ← iUnion_mul_right_image]
   rfl
 
+@[to_additive]
+lemma subset_mul_closure_one (s : Set G) : s ⊆ s * (closure {1} : Set G) := by
+  have : s ⊆ s * ({1} : Set G) := by simpa using Subset.rfl
+  exact this.trans (smul_subset_smul_left subset_closure)
+
+@[to_additive]
+lemma IsCompact.mul_closure_one_eq_closure {K : Set G} (hK : IsCompact K) :
+    K * (closure {1} : Set G) = closure K := by
+  apply Subset.antisymm ?_ ?_
+  · calc
+    K * (closure {1} : Set G) ⊆ closure K * (closure {1} : Set G) :=
+      smul_subset_smul_right subset_closure
+    _ ⊆ closure (K * ({1} : Set G)) := smul_set_closure_subset _ _
+    _ = closure K := by simp
+  · have : IsClosed (K * (closure {1} : Set G)) :=
+      IsClosed.smul_left_of_isCompact isClosed_closure hK
+    rw [IsClosed.closure_subset_iff this]
+    exact subset_mul_closure_one K
+
+@[to_additive]
+lemma IsClosed.mul_closure_one_eq {F : Set G} (hF : IsClosed F) :
+    F * (closure {1} : Set G) = F := by
+  refine Subset.antisymm ?_ (subset_mul_closure_one F)
+  calc
+  F * (closure {1} : Set G) = closure F * closure ({1} : Set G) := by rw [hF.closure_eq]
+  _ ⊆ closure (F * ({1} : Set G)) := smul_set_closure_subset _ _
+  _ = F := by simp [hF.closure_eq]
+
+@[to_additive]
+lemma compl_mul_closure_one_eq {t : Set G} (ht : t * (closure {1} : Set G) = t) :
+    tᶜ * (closure {1} : Set G) = tᶜ := by
+  refine Subset.antisymm ?_ (subset_mul_closure_one tᶜ)
+  rintro - ⟨x, g, hx, hg, rfl⟩
+  by_contra H
+  have : x ∈ t * (closure {1} : Set G) := by
+    rw [← Subgroup.coe_topologicalClosure_bot G] at hg ⊢
+    simp only [smul_eq_mul, mem_compl_iff, not_not] at H
+    exact ⟨x * g, g⁻¹, H, Subgroup.inv_mem _ hg, by simp⟩
+  rw [ht] at this
+  exact hx this
+
+@[to_additive]
+lemma compl_mul_closure_one_eq_iff {t : Set G} :
+    tᶜ * (closure {1} : Set G) = tᶜ ↔ t * (closure {1} : Set G) = t :=
+  ⟨fun h ↦ by simpa using compl_mul_closure_one_eq h, fun h ↦ compl_mul_closure_one_eq h⟩
+
+@[to_additive]
+lemma IsOpen.mul_closure_one_eq {U : Set G} (hU : IsOpen U) :
+    U * (closure {1} : Set G) = U :=
+  compl_mul_closure_one_eq_iff.1 (hU.isClosed_compl.mul_closure_one_eq)
+
 end TopologicalGroup
 
 section FilterMul
@@ -1726,6 +1782,59 @@ theorem exists_isCompact_isClosed_subset_isCompact_nhds_one
   rcases exists_mem_nhds_isClosed_subset L1 with ⟨K, hK, K_closed, KL⟩
   exact ⟨K, Lcomp.of_isClosed_subset K_closed KL, K_closed, KL, hK⟩
 
+/-- If a point in a topological group has a compact neighborhood, then the group is
+locally compact. -/
+@[to_additive]
+theorem IsCompact.locallyCompactSpace_of_mem_nhds_of_group {K : Set G} (hK : IsCompact K) {x : G}
+    (h : K ∈ 𝓝 x) : LocallyCompactSpace G := by
+  refine ⟨fun y n hn ↦ ?_⟩
+  have A : (y * x⁻¹) • K ∈ 𝓝 y := by
+    rw [← preimage_smul_inv]
+    exact (continuous_const_smul _).continuousAt.preimage_mem_nhds (by simpa using h)
+  rcases exists_mem_nhds_isClosed_subset (inter_mem A hn) with ⟨L, hL, L_closed, LK⟩
+  refine ⟨L, hL, LK.trans (inter_subset_right _ _), ?_⟩
+  exact (hK.smul (y * x⁻¹)).of_isClosed_subset L_closed (LK.trans (inter_subset_left _ _))
+
+-- The next instance creates a loop between weakly locally compact space and locally compact space
+-- for topological groups. Hopefully, it shouldn't create problems.
+/-- A topological group which is weakly locally compact is automatically locally compact. -/
+@[to_additive]
+instance (priority := 90) instLocallyCompactSpaceOfWeaklyOfGroup [WeaklyLocallyCompactSpace G] :
+    LocallyCompactSpace G := by
+  rcases exists_compact_mem_nhds (1 : G) with ⟨K, K_comp, hK⟩
+  exact K_comp.locallyCompactSpace_of_mem_nhds_of_group hK
+
+/-- If a function defined on a topological group has a support contained in a
+compact set, then either the function is trivial or the group is locally compact. -/
+@[to_additive
+      "If a function defined on a topological additive group has a support contained in a compact
+      set, then either the function is trivial or the group is locally compact."]
+theorem eq_zero_or_locallyCompactSpace_of_support_subset_isCompact_of_group
+    [TopologicalSpace α] [Zero α] [T1Space α]
+    {f : G → α} {k : Set G} (hk : IsCompact k) (hf : support f ⊆ k) (h'f : Continuous f) :
+    f = 0 ∨ LocallyCompactSpace G := by
+  by_cases h : ∀ x, f x = 0
+  · apply Or.inl
+    ext x
+    exact h x
+  apply Or.inr
+  push_neg at h
+  obtain ⟨x, hx⟩ : ∃ x, f x ≠ 0 := h
+  have : k ∈ 𝓝 x :=
+    mem_of_superset (h'f.isOpen_support.mem_nhds hx) hf
+  exact IsCompact.locallyCompactSpace_of_mem_nhds_of_group hk this
+
+/-- If a function defined on a topological group has compact support, then either
+the function is trivial or the group is locally compact. -/
+@[to_additive
+      "If a function defined on a topological additive group has compact support,
+      then either the function is trivial or the group is locally compact."]
+theorem HasCompactSupport.eq_zero_or_locallyCompactSpace_of_group
+    [TopologicalSpace α] [Zero α] [T1Space α]
+    {f : G → α} (hf : HasCompactSupport f) (h'f : Continuous f) :
+    f = 0 ∨ LocallyCompactSpace G :=
+  eq_zero_or_locallyCompactSpace_of_support_subset_isCompact_of_group hf (subset_tsupport f) h'f
+
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
 neighborhood of the identity, even without separation assumptions on the space. -/
 @[to_additive
@@ -1750,6 +1859,18 @@ theorem exists_isCompact_isClosed_nhds_one [WeaklyLocallyCompactSpace G] :
   let ⟨K, Kcl, Kcomp, _, K1⟩ := exists_isCompact_isClosed_subset_isCompact_nhds_one Lcomp L1
   ⟨K, Kcl, Kcomp, K1⟩
 
+/-- A quotient of a locally compact group is locally compact. -/
+@[to_additive]
+instance [LocallyCompactSpace G] (N : Subgroup G) : LocallyCompactSpace (G ⧸ N) := by
+  refine ⟨fun x n hn ↦ ?_⟩
+  let π := ((↑) : G → G ⧸ N)
+  have C : Continuous π := continuous_coinduced_rng
+  obtain ⟨y, rfl⟩ : ∃ y, π y = x := Quot.exists_rep x
+  have : π ⁻¹' n ∈ 𝓝 y := preimage_nhds_coinduced hn
+  rcases local_compact_nhds this with ⟨s, s_mem, hs, s_comp⟩
+  exact ⟨π '' s, (QuotientGroup.isOpenMap_coe N).image_mem_nhds s_mem, mapsTo'.mp hs,
+    s_comp.image C⟩
+
 end
 
 section
chore: reorder variables for to_additive (#7856)

to_additive heuristics work best when the type to be additivized comes first. We make sure this is the case for later applications.

Diff
@@ -38,7 +38,7 @@ open Classical Set Filter TopologicalSpace Function Topology Pointwise MulOpposi
 
 universe u v w x
 
-variable {α : Type u} {β : Type v} {G : Type w} {H : Type x}
+variable {G : Type w} {H : Type x} {α : Type u} {β : Type v}
 
 section ContinuousMulGroup
 
chore: missing spaces after rcases, convert and congrm (#7725)

Replace rcases( with rcases (. Same thing for convert( and congrm(. No other change.

Diff
@@ -1017,7 +1017,7 @@ which `(u (n + 1)) ^ 2 ⊆ u n`. The existence of such a neighborhood basis is a
   The existence of such a neighborhood basis is a key tool for `QuotientAddGroup.completeSpace`"]
 theorem TopologicalGroup.exists_antitone_basis_nhds_one :
     ∃ u : ℕ → Set G, (𝓝 1).HasAntitoneBasis u ∧ ∀ n, u (n + 1) * u (n + 1) ⊆ u n := by
-  rcases(𝓝 (1 : G)).exists_antitone_basis with ⟨u, hu, u_anti⟩
+  rcases (𝓝 (1 : G)).exists_antitone_basis with ⟨u, hu, u_anti⟩
   have :=
     ((hu.prod_nhds hu).tendsto_iff hu).mp
       (by simpa only [mul_one] using continuous_mul.tendsto ((1, 1) : G × G))
feat: open mapping theorem for surjective morphisms between locally compact groups (#7356)
Diff
@@ -1522,6 +1522,22 @@ theorem TopologicalGroup.t2Space_of_one_sep (H : ∀ x : G, x ≠ 1 → ∃ U 
 #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
 
+/-- Given a neighborhood `U` of the identity, one may find a neighborhood `V` of the identity which
+is closed, symmetric, and satisfies `V * V ⊆ U`. -/
+@[to_additive "Given a neighborhood `U` of the identity, one may find a neighborhood `V` of the
+identity which is closed, symmetric, and satisfies `V + V ⊆ U`."]
+theorem exists_closed_nhds_one_inv_eq_mul_subset {U : Set G} (hU : U ∈ 𝓝 1) :
+    ∃ V ∈ 𝓝 1, IsClosed V ∧ V⁻¹ = V ∧ V * V ⊆ U := by
+  rcases exists_open_nhds_one_mul_subset hU with ⟨V, V_open, V_mem, hV⟩
+  rcases exists_mem_nhds_isClosed_subset (V_open.mem_nhds V_mem) with ⟨W, W_mem, W_closed, hW⟩
+  refine ⟨W ∩ W⁻¹, Filter.inter_mem W_mem (inv_mem_nhds_one G W_mem), W_closed.inter W_closed.inv,
+    by simp [inter_comm], ?_⟩
+  calc
+  W ∩ W⁻¹ * (W ∩ W⁻¹)
+    ⊆ W * W := mul_subset_mul (inter_subset_left _ _) (inter_subset_left _ _)
+  _ ⊆ V * V := mul_subset_mul hW hW
+  _ ⊆ U := hV
+
 variable (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
 @[to_additive]
@@ -1707,16 +1723,8 @@ admits a closed compact subset that is a neighborhood of `0`."]
 theorem exists_isCompact_isClosed_subset_isCompact_nhds_one
     {L : Set G} (Lcomp : IsCompact L) (L1 : L ∈ 𝓝 (1 : G)) :
     ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ L ∧ K ∈ 𝓝 (1 : G) := by
-  rcases exists_open_nhds_one_mul_subset L1 with ⟨V, hVo, hV₁, hVL⟩
-  have hcVL : closure V ⊆ L :=
-    calc
-      closure V = 1 * closure V := (one_mul _).symm
-      _ ⊆ V * closure V :=
-        mul_subset_mul_right <| singleton_subset_iff.2 hV₁
-      _ = V * V := hVo.mul_closure _
-      _ ⊆ L := hVL
-  exact ⟨closure V, Lcomp.of_isClosed_subset isClosed_closure hcVL, isClosed_closure,
-    hcVL, mem_of_superset (hVo.mem_nhds hV₁) subset_closure⟩
+  rcases exists_mem_nhds_isClosed_subset L1 with ⟨K, hK, K_closed, KL⟩
+  exact ⟨K, Lcomp.of_isClosed_subset K_closed KL, K_closed, KL, hK⟩
 
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
 neighborhood of the identity, even without separation assumptions on the space. -/
feat(Topology): continuity from a product with a discrete space (#7511)
  • Add four pairs of lemmas continuous((Within)At/On)_prod_of_discrete_left/right in ContinuousOn.lean: to check continuity of a function from X × Y to Z with X discrete, it suffices to check continuity of every slice of it with x : X fixed.

  • Remove duplicate lemmas continuous_uncurry_of_discreteTopology(_left) from Constructions.lean in favor of the more general (iff) version.

  • Move the lemma continuous_iff_continuousOn_univ up.

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

Diff
@@ -499,7 +499,7 @@ instance AddGroup.continuousConstSMul_int {A} [AddGroup A] [TopologicalSpace A]
 
 instance AddGroup.continuousSMul_int {A} [AddGroup A] [TopologicalSpace A]
     [TopologicalAddGroup A] : ContinuousSMul ℤ A :=
-  ⟨continuous_uncurry_of_discreteTopology continuous_zsmul⟩
+  ⟨continuous_prod_of_discrete_left.mpr continuous_zsmul⟩
 #align add_group.has_continuous_smul_int AddGroup.continuousSMul_int
 
 @[to_additive (attr := continuity)]
feat(GroupTheory/Submonoid): add opposite submonoids (#7415)

We already have API for the multiplicative opposite of subgroups.

This tidies the API for subgroups by introducing separate .op and .unop definitions (as dot notation on .opposite worked in Lean 3 but not Lean 4), and adds the same API for submonoids.

Diff
@@ -1569,14 +1569,14 @@ to show that the quotient group `G ⧸ S` is Hausdorff. -/
   If `G` is Hausdorff, this can be combined with `t2Space_of_properlyDiscontinuousVAdd_of_t2Space`
   to show that the quotient group `G ⧸ S` is Hausdorff."]
 theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Subgroup G)
-    (hS : Tendsto S.subtype cofinite (cocompact G)) : ProperlyDiscontinuousSMul (opposite S) G :=
+    (hS : Tendsto S.subtype cofinite (cocompact G)) : ProperlyDiscontinuousSMul S.op G :=
   { finite_disjoint_inter_image := by
       intro K L hK hL
       have : Continuous fun p : G × G => (p.1⁻¹, p.2) := continuous_inv.prod_map continuous_id
       have H : Set.Finite _ :=
         hS ((hK.prod hL).image (continuous_mul.comp this)).compl_mem_cocompact
       simp only [preimage_compl, compl_compl, coeSubtype, comp_apply] at H
-      apply Finite.of_preimage _ (oppositeEquiv S).surjective
+      apply Finite.of_preimage _ (equivOp S).surjective
       convert H using 1
       ext x
       simp only [image_smul, mem_setOf_eq, coeSubtype, mem_preimage, mem_image, Prod.exists]
chore(Topology/SubsetProperties): rename isCompact_of_isClosed_subset (#7298)

As discussed on Zulip.

Co-authored-by: grunweg <grunweg@posteo.de>

Diff
@@ -1715,7 +1715,7 @@ theorem exists_isCompact_isClosed_subset_isCompact_nhds_one
         mul_subset_mul_right <| singleton_subset_iff.2 hV₁
       _ = V * V := hVo.mul_closure _
       _ ⊆ L := hVL
-  exact ⟨closure V, isCompact_of_isClosed_subset Lcomp isClosed_closure hcVL, isClosed_closure,
+  exact ⟨closure V, Lcomp.of_isClosed_subset isClosed_closure hcVL, isClosed_closure,
     hcVL, mem_of_superset (hVo.mem_nhds hV₁) subset_closure⟩
 
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
style: fix wrapping of where (#7149)
Diff
@@ -269,8 +269,8 @@ variable {ι : Type*}
 
 @[to_additive]
 instance Pi.continuousInv {C : ι → Type*} [∀ i, TopologicalSpace (C i)] [∀ i, Inv (C i)]
-    [∀ i, ContinuousInv (C i)] : ContinuousInv (∀ i, C i)
-    where continuous_inv := continuous_pi fun i => (continuous_apply i).inv
+    [∀ i, ContinuousInv (C i)] : ContinuousInv (∀ i, C i) where
+  continuous_inv := continuous_pi fun i => (continuous_apply i).inv
 #align pi.has_continuous_inv Pi.continuousInv
 #align pi.has_continuous_neg Pi.continuousNeg
 
@@ -305,11 +305,11 @@ theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
 
 end PointwiseLimits
 
-instance [TopologicalSpace H] [Inv H] [ContinuousInv H] : ContinuousNeg (Additive H)
-    where continuous_neg := @continuous_inv H _ _ _
+instance [TopologicalSpace H] [Inv H] [ContinuousInv H] : ContinuousNeg (Additive H) where
+  continuous_neg := @continuous_inv H _ _ _
 
-instance [TopologicalSpace H] [Neg H] [ContinuousNeg H] : ContinuousInv (Multiplicative H)
-    where continuous_inv := @continuous_neg H _ _ _
+instance [TopologicalSpace H] [Neg H] [ContinuousNeg H] : ContinuousInv (Multiplicative H) where
+  continuous_inv := @continuous_neg H _ _ _
 
 end ContinuousInv
 
@@ -604,8 +604,8 @@ theorem tendsto_inv_nhdsWithin_Iic_inv {a : H} : Tendsto Inv.inv (𝓝[≤] a⁻
 end OrderedCommGroup
 
 @[to_additive]
-instance [TopologicalSpace H] [Group H] [TopologicalGroup H] : TopologicalGroup (G × H)
-    where continuous_inv := continuous_inv.prod_map continuous_inv
+instance [TopologicalSpace H] [Group H] [TopologicalGroup H] : TopologicalGroup (G × H) where
+  continuous_inv := continuous_inv.prod_map continuous_inv
 
 @[to_additive]
 instance Pi.topologicalGroup {C : β → Type*} [∀ b, TopologicalSpace (C b)] [∀ b, Group (C b)]
@@ -1773,11 +1773,13 @@ end
 
 end FilterMul
 
-instance {G} [TopologicalSpace G] [Group G] [TopologicalGroup G] : TopologicalAddGroup (Additive G)
-    where continuous_neg := @continuous_inv G _ _ _
+instance {G} [TopologicalSpace G] [Group G] [TopologicalGroup G] :
+    TopologicalAddGroup (Additive G) where
+  continuous_neg := @continuous_inv G _ _ _
 
 instance {G} [TopologicalSpace G] [AddGroup G] [TopologicalAddGroup G] :
-    TopologicalGroup (Multiplicative G) where continuous_inv := @continuous_neg G _ _ _
+    TopologicalGroup (Multiplicative G) where
+  continuous_inv := @continuous_neg G _ _ _
 
 section Quotient
 
@@ -1830,8 +1832,8 @@ open MulOpposite (continuous_op continuous_unop)
 variable [Monoid α] [TopologicalSpace α] [Monoid β] [TopologicalSpace β]
 
 @[to_additive]
-instance [ContinuousMul α] : TopologicalGroup αˣ
-    where continuous_inv := Units.continuous_iff.2 <| ⟨continuous_coe_inv, continuous_val⟩
+instance [ContinuousMul α] : TopologicalGroup αˣ where
+  continuous_inv := Units.continuous_iff.2 <| ⟨continuous_coe_inv, continuous_val⟩
 
 /-- The topological group isomorphism between the units of a product of two monoids, and the product
 of the units of each monoid. -/
feat: add an instance for T3Space (#6861)

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

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

Diff
@@ -1497,32 +1497,25 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G := by
 #align topological_group.regular_space TopologicalGroup.regularSpace
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 
-@[to_additive]
-theorem TopologicalGroup.t3Space [T0Space G] : T3Space G :=
-  ⟨⟩
-#align topological_group.t3_space TopologicalGroup.t3Space
-#align topological_add_group.t3_space TopologicalAddGroup.t3Space
-
-@[to_additive]
-theorem TopologicalGroup.t2Space [T0Space G] : T2Space G := by
-  haveI := TopologicalGroup.t3Space G
-  infer_instance
-#align topological_group.t2_space TopologicalGroup.t2Space
-#align topological_add_group.t2_space TopologicalAddGroup.t2Space
+-- `inferInstance` can find these instances now
+#align topological_group.t3_space inferInstance
+#align topological_add_group.t3_space inferInstance
+#align topological_group.t2_space inferInstance
+#align topological_add_group.t2_space inferInstance
 
 variable {G}
 
 @[to_additive]
 theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) :=
   ⟨fun _ ↦ isClosed_singleton, fun h ↦
-    have := TopologicalGroup.t1Space G h; TopologicalGroup.t2Space G⟩
+    have := TopologicalGroup.t1Space G h; inferInstance⟩
 #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 ∈ 𝓝 (1 : G), x ∉ U) :
     T2Space G := by
-  suffices T1Space G from TopologicalGroup.t2Space G
+  suffices T1Space G from inferInstance
   refine t1Space_iff_specializes_imp_eq.2 fun x y hspec ↦ by_contra fun hne ↦ ?_
   rcases H (x * y⁻¹) (by rwa [Ne.def, mul_inv_eq_one]) with ⟨U, hU₁, hU⟩
   exact hU <| mem_of_mem_nhds <| hspec.map (continuous_mul_right y⁻¹) (by rwa [mul_inv_self])
@@ -1536,7 +1529,7 @@ instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
     [hS : IsClosed (S : Set G)] : T3Space (G ⧸ S) := by
   rw [← QuotientGroup.ker_mk' S] at hS
   haveI := TopologicalGroup.t1Space (G ⧸ S) (quotientMap_quotient_mk'.isClosed_preimage.mp hS)
-  exact TopologicalGroup.t3Space _
+  infer_instance
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
 
feat: define weakly locally compact spaces (#6770)
Diff
@@ -1668,14 +1668,13 @@ theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
 #align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translates
 #align compact_covered_by_add_left_translates compact_covered_by_add_left_translates
 
-/-- Every locally compact separable topological group is σ-compact.
+/-- Every weakly locally compact separable topological group is σ-compact.
   Note: this is not true if we drop the topological group hypothesis. -/
-@[to_additive SeparableLocallyCompactAddGroup.sigmaCompactSpace
-  "Every locally
-  compact separable topological group is σ-compact.
+@[to_additive SeparableWeaklyLocallyCompactAddGroup.sigmaCompactSpace
+  "Every weakly locally compact separable topological additive group is σ-compact.
   Note: this is not true if we drop the topological group hypothesis."]
-instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [SeparableSpace G]
-    [LocallyCompactSpace G] : SigmaCompactSpace G := by
+instance (priority := 100) SeparableWeaklyLocallyCompactGroup.sigmaCompactSpace [SeparableSpace G]
+    [WeaklyLocallyCompactSpace G] : SigmaCompactSpace G := by
   obtain ⟨L, hLc, hL1⟩ := exists_compact_mem_nhds (1 : G)
   refine' ⟨⟨fun n => (fun x => x * denseSeq G n) ⁻¹' L, _, _⟩⟩
   · intro n
@@ -1686,8 +1685,8 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
       exact (denseRange_denseSeq G).inter_nhds_nonempty
           ((Homeomorph.mulLeft x).continuous.continuousAt <| hL1)
     exact ⟨n, hn⟩
-#align separable_locally_compact_group.sigma_compact_space SeparableLocallyCompactGroup.sigmaCompactSpace
-#align separable_locally_compact_add_group.sigma_compact_space SeparableLocallyCompactAddGroup.sigmaCompactSpace
+#align separable_locally_compact_group.sigma_compact_space SeparableWeaklyLocallyCompactGroup.sigmaCompactSpace
+#align separable_locally_compact_add_group.sigma_compact_space SeparableWeaklyLocallyCompactAddGroup.sigmaCompactSpace
 
 /-- Given two compact sets in a noncompact topological group, there is a translate of the second
 one that is disjoint from the first one. -/
@@ -1744,7 +1743,7 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
 variable (G)
 
 @[to_additive]
-theorem exists_isCompact_isClosed_nhds_one [LocallyCompactSpace G] :
+theorem exists_isCompact_isClosed_nhds_one [WeaklyLocallyCompactSpace G] :
     ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ∈ 𝓝 1 :=
   let ⟨_L, Lcomp, L1⟩ := exists_compact_mem_nhds (1 : G)
   let ⟨K, Kcl, Kcomp, _, K1⟩ := exists_isCompact_isClosed_subset_isCompact_nhds_one Lcomp L1
chore(Topology/Algebra/Group): golf, move (#6820)

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

Diff
@@ -1471,9 +1471,7 @@ variable (G) [TopologicalSpace G] [Group G] [ContinuousMul G]
 
 @[to_additive]
 theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
-  ⟨fun x => by
-    convert isClosedMap_mul_right x _ h
-    simp⟩
+  ⟨fun x => by simpa using isClosedMap_mul_right x _ h⟩
 #align topological_group.t1_space TopologicalGroup.t1Space
 #align topological_add_group.t1_space TopologicalAddGroup.t1Space
 
@@ -1513,6 +1511,24 @@ theorem TopologicalGroup.t2Space [T0Space G] : T2Space G := by
 #align topological_add_group.t2_space TopologicalAddGroup.t2Space
 
 variable {G}
+
+@[to_additive]
+theorem TopologicalGroup.t2Space_iff_one_closed : T2Space G ↔ IsClosed ({1} : Set G) :=
+  ⟨fun _ ↦ isClosed_singleton, fun h ↦
+    have := TopologicalGroup.t1Space G h; TopologicalGroup.t2Space G⟩
+#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 ∈ 𝓝 (1 : G), x ∉ U) :
+    T2Space G := by
+  suffices T1Space G from TopologicalGroup.t2Space G
+  refine t1Space_iff_specializes_imp_eq.2 fun x y hspec ↦ by_contra fun hne ↦ ?_
+  rcases H (x * y⁻¹) (by rwa [Ne.def, mul_inv_eq_one]) with ⟨U, hU₁, hU⟩
+  exact hU <| mem_of_mem_nhds <| hspec.map (continuous_mul_right y⁻¹) (by rwa [mul_inv_self])
+#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
+
 variable (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
 @[to_additive]
chore: golf some proofs, add helper lemmas (#6769)
Diff
@@ -1692,6 +1692,24 @@ theorem exists_disjoint_smul_of_isCompact [NoncompactSpace G] {K L : Set G} (hK
 #align exists_disjoint_smul_of_is_compact exists_disjoint_smul_of_isCompact
 #align exists_disjoint_vadd_of_is_compact exists_disjoint_vadd_of_isCompact
 
+/-- A compact neighborhood of `1` in a topological group admits a closed compact subset
+that is a neighborhood of `1`. -/
+@[to_additive "A compact neighborhood of `0` in a topological additive group
+admits a closed compact subset that is a neighborhood of `0`."]
+theorem exists_isCompact_isClosed_subset_isCompact_nhds_one
+    {L : Set G} (Lcomp : IsCompact L) (L1 : L ∈ 𝓝 (1 : G)) :
+    ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ L ∧ K ∈ 𝓝 (1 : G) := by
+  rcases exists_open_nhds_one_mul_subset L1 with ⟨V, hVo, hV₁, hVL⟩
+  have hcVL : closure V ⊆ L :=
+    calc
+      closure V = 1 * closure V := (one_mul _).symm
+      _ ⊆ V * closure V :=
+        mul_subset_mul_right <| singleton_subset_iff.2 hV₁
+      _ = V * V := hVo.mul_closure _
+      _ ⊆ L := hVL
+  exact ⟨closure V, isCompact_of_isClosed_subset Lcomp isClosed_closure hcVL, isClosed_closure,
+    hcVL, mem_of_superset (hVo.mem_nhds hV₁) subset_closure⟩
+
 /-- In a locally compact group, any neighborhood of the identity contains a compact closed
 neighborhood of the identity, even without separation assumptions on the space. -/
 @[to_additive
@@ -1700,32 +1718,22 @@ neighborhood of the identity, even without separation assumptions on the space.
 theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set G}
     (hU : U ∈ 𝓝 (1 : G)) :
     ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ U ∧ (1 : G) ∈ interior K := by
-  obtain ⟨L, Lint, LU, Lcomp⟩ : ∃ (L : Set G), L ∈ 𝓝 (1 : G) ∧ L ⊆ U ∧ IsCompact L :=
+  obtain ⟨L, L1, LU, Lcomp⟩ : ∃ (L : Set G), L ∈ 𝓝 (1 : G) ∧ L ⊆ U ∧ IsCompact L :=
     local_compact_nhds hU
-  obtain ⟨V, Vnhds, hV⟩ : ∃ V ∈ 𝓝 (1 : G), ∀ v ∈ V, ∀ w ∈ V, v * w ∈ L := by
-    have : (fun p : G × G => p.1 * p.2) ⁻¹' L ∈ 𝓝 ((1, 1) : G × G) := by
-      refine' continuousAt_fst.mul continuousAt_snd _
-      simpa only [mul_one] using Lint
-    simpa only [div_eq_mul_inv, nhds_prod_eq, mem_prod_self_iff, prod_subset_iff, mem_preimage]
-      using this
-  have VL : closure V ⊆ L :=
-    calc
-      closure V = {(1 : G)} * closure V := by simp only [singleton_mul, one_mul, image_id']
-      _ ⊆ interior V * closure V :=
-        mul_subset_mul_right
-          (by simpa only [singleton_subset_iff] using mem_interior_iff_mem_nhds.2 Vnhds)
-      _ = interior V * V := isOpen_interior.mul_closure _
-      _ ⊆ V * V := mul_subset_mul_right interior_subset
-      _ ⊆ L := by
-        rintro x ⟨y, z, yv, zv, rfl⟩
-        exact hV _ yv _ zv
-
-  exact
-    ⟨closure V, isCompact_of_isClosed_subset Lcomp isClosed_closure VL, isClosed_closure,
-      VL.trans LU, interior_mono subset_closure (mem_interior_iff_mem_nhds.2 Vnhds)⟩
+  obtain ⟨K, Kcomp, Kcl, KL, K1⟩ := exists_isCompact_isClosed_subset_isCompact_nhds_one Lcomp L1
+  exact ⟨K, Kcomp, Kcl, KL.trans LU, mem_interior_iff_mem_nhds.2 K1⟩
 #align local_is_compact_is_closed_nhds_of_group local_isCompact_isClosed_nhds_of_group
 #align local_is_compact_is_closed_nhds_of_add_group local_isCompact_isClosed_nhds_of_addGroup
 
+variable (G)
+
+@[to_additive]
+theorem exists_isCompact_isClosed_nhds_one [LocallyCompactSpace G] :
+    ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ∈ 𝓝 1 :=
+  let ⟨_L, Lcomp, L1⟩ := exists_compact_mem_nhds (1 : G)
+  let ⟨K, Kcl, Kcomp, _, K1⟩ := exists_isCompact_isClosed_subset_isCompact_nhds_one Lcomp L1
+  ⟨K, Kcl, Kcomp, K1⟩
+
 end
 
 section
chore: more predictable ext lemmas for TopologicalSpace and UniformSpace (#6705)
Diff
@@ -1938,7 +1938,7 @@ theorem toTopologicalSpace_injective :
 
 @[to_additive (attr := ext)]
 theorem ext' {f g : GroupTopology α} (h : f.IsOpen = g.IsOpen) : f = g :=
-  toTopologicalSpace_injective <| topologicalSpace_eq h
+  toTopologicalSpace_injective <| TopologicalSpace.ext h
 #align group_topology.ext' GroupTopology.ext'
 #align add_group_topology.ext' AddGroupTopology.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
@@ -265,10 +265,10 @@ instance Prod.continuousInv [TopologicalSpace H] [Inv H] [ContinuousInv H] :
     ContinuousInv (G × H) :=
   ⟨continuous_inv.fst'.prod_mk continuous_inv.snd'⟩
 
-variable {ι : Type _}
+variable {ι : Type*}
 
 @[to_additive]
-instance Pi.continuousInv {C : ι → Type _} [∀ i, TopologicalSpace (C i)] [∀ i, Inv (C i)]
+instance Pi.continuousInv {C : ι → Type*} [∀ i, TopologicalSpace (C i)] [∀ i, Inv (C i)]
     [∀ i, ContinuousInv (C i)] : ContinuousInv (∀ i, C i)
     where continuous_inv := continuous_pi fun i => (continuous_apply i).inv
 #align pi.has_continuous_inv Pi.continuousInv
@@ -293,7 +293,7 @@ instance (priority := 100) continuousInv_of_discreteTopology [TopologicalSpace H
 
 section PointwiseLimits
 
-variable (G₁ G₂ : Type _) [TopologicalSpace G₂] [T2Space G₂]
+variable (G₁ G₂ : Type*) [TopologicalSpace G₂] [T2Space G₂]
 
 @[to_additive]
 theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
@@ -328,7 +328,7 @@ variable (G)
 
 /-- Inversion in a topological group as a homeomorphism. -/
 @[to_additive "Negation in a topological group as a homeomorphism."]
-protected def Homeomorph.inv (G : Type _) [TopologicalSpace G] [InvolutiveInv G]
+protected def Homeomorph.inv (G : Type*) [TopologicalSpace G] [InvolutiveInv G]
     [ContinuousInv G] : G ≃ₜ G :=
   { Equiv.inv G with
     continuous_toFun := continuous_inv
@@ -372,7 +372,7 @@ end ContinuousInvolutiveInv
 
 section LatticeOps
 
-variable {ι' : Sort _} [Inv G]
+variable {ι' : Sort*} [Inv G]
 
 @[to_additive]
 theorem continuousInv_sInf {ts : Set (TopologicalSpace G)}
@@ -404,7 +404,7 @@ theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousIn
 end LatticeOps
 
 @[to_additive]
-theorem Inducing.continuousInv {G H : Type _} [Inv G] [Inv H] [TopologicalSpace G]
+theorem Inducing.continuousInv {G H : Type*} [Inv G] [Inv H] [TopologicalSpace G]
     [TopologicalSpace H] [ContinuousInv H] {f : G → H} (hf : Inducing f)
     (hf_inv : ∀ x, f x⁻¹ = (f x)⁻¹) : ContinuousInv G :=
   ⟨hf.continuous_iff.2 <| by simpa only [(· ∘ ·), hf_inv] using hf.continuous.inv⟩
@@ -436,7 +436,7 @@ you should also provide an instance of `UniformSpace` and `UniformGroup` using
 `TopologicalGroup.toUniformSpace` and `topologicalCommGroup_isUniform`. -/
 -- Porting note: check that these ↑ names exist once they've been ported in the future.
 @[to_additive]
-class TopologicalGroup (G : Type _) [TopologicalSpace G] [Group G] extends ContinuousMul G,
+class TopologicalGroup (G : Type*) [TopologicalSpace G] [Group G] extends ContinuousMul G,
   ContinuousInv G : Prop
 #align topological_group TopologicalGroup
 --#align topological_add_group TopologicalAddGroup
@@ -608,7 +608,7 @@ instance [TopologicalSpace H] [Group H] [TopologicalGroup H] : TopologicalGroup
     where continuous_inv := continuous_inv.prod_map continuous_inv
 
 @[to_additive]
-instance Pi.topologicalGroup {C : β → Type _} [∀ b, TopologicalSpace (C b)] [∀ b, Group (C b)]
+instance Pi.topologicalGroup {C : β → Type*} [∀ b, TopologicalSpace (C b)] [∀ b, Group (C b)]
     [∀ b, TopologicalGroup (C b)] : TopologicalGroup (∀ b, C b) where
   continuous_inv := continuous_pi fun i => (continuous_apply i).inv
 #align pi.topological_group Pi.topologicalGroup
@@ -670,7 +670,7 @@ theorem Homeomorph.shearMulRight_symm_coe :
 variable {G}
 
 @[to_additive]
-protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalSpace H]
+protected theorem Inducing.topologicalGroup {F : Type*} [Group H] [TopologicalSpace H]
     [MonoidHomClass F H G] (f : F) (hf : Inducing f) : TopologicalGroup H :=
   { toContinuousMul := hf.continuousMul _
     toContinuousInv := hf.continuousInv (map_inv f) }
@@ -679,7 +679,7 @@ protected theorem Inducing.topologicalGroup {F : Type _} [Group H] [TopologicalS
 
 @[to_additive]
 -- Porting note: removed `protected` (needs to be in namespace)
-theorem topologicalGroup_induced {F : Type _} [Group H] [MonoidHomClass F H G] (f : F) :
+theorem topologicalGroup_induced {F : Type*} [Group H] [MonoidHomClass F H G] (f : F) :
     @TopologicalGroup H (induced f ‹_›) _ :=
   letI := induced f ‹_›
   Inducing.topologicalGroup f ⟨rfl⟩
@@ -744,7 +744,7 @@ theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H
 
 /-- The topological closure of a normal subgroup is normal.-/
 @[to_additive "The topological closure of a normal additive subgroup is normal."]
-theorem Subgroup.is_normal_topologicalClosure {G : Type _} [TopologicalSpace G] [Group G]
+theorem Subgroup.is_normal_topologicalClosure {G : Type*} [TopologicalSpace G] [Group G]
     [TopologicalGroup G] (N : Subgroup G) [N.Normal] : (Subgroup.topologicalClosure N).Normal where
   conj_mem n hn g := by
     apply map_mem_closure (TopologicalGroup.continuous_conj g) hn
@@ -753,7 +753,7 @@ theorem Subgroup.is_normal_topologicalClosure {G : Type _} [TopologicalSpace G]
 #align add_subgroup.is_normal_topological_closure AddSubgroup.is_normal_topologicalClosure
 
 @[to_additive]
-theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOneClass G]
+theorem mul_mem_connectedComponent_one {G : Type*} [TopologicalSpace G] [MulOneClass G]
     [ContinuousMul G] {g h : G} (hg : g ∈ connectedComponent (1 : G))
     (hh : h ∈ connectedComponent (1 : G)) : g * h ∈ connectedComponent (1 : G) := by
   rw [connectedComponent_eq hg]
@@ -766,7 +766,7 @@ theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOne
 #align add_mem_connected_component_zero add_mem_connectedComponent_zero
 
 @[to_additive]
-theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group G]
+theorem inv_mem_connectedComponent_one {G : Type*} [TopologicalSpace G] [Group G]
     [TopologicalGroup G] {g : G} (hg : g ∈ connectedComponent (1 : G)) :
     g⁻¹ ∈ connectedComponent (1 : G) := by
   rw [← inv_one]
@@ -778,7 +778,7 @@ theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group
 
 /-- The connected component of 1 is a subgroup of `G`. -/
 @[to_additive "The connected component of 0 is a subgroup of `G`."]
-def Subgroup.connectedComponentOfOne (G : Type _) [TopologicalSpace G] [Group G]
+def Subgroup.connectedComponentOfOne (G : Type*) [TopologicalSpace G] [Group G]
     [TopologicalGroup G] : Subgroup G where
   carrier := connectedComponent (1 : G)
   one_mem' := mem_connectedComponent
@@ -836,7 +836,7 @@ theorem map_mul_right_nhds_one (x : G) : map (fun y => y * x) (𝓝 1) = 𝓝 x
 #align map_add_right_nhds_zero map_add_right_nhds_zero
 
 @[to_additive]
-theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι → Set G}
+theorem Filter.HasBasis.nhds_of_one {ι : Sort*} {p : ι → Prop} {s : ι → Set G}
     (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) :
     HasBasis (𝓝 x) p fun i => { y | y / x ∈ s i } := by
   rw [← nhds_translation_mul_inv]
@@ -861,7 +861,7 @@ also `uniformContinuous_of_continuousAt_one`. -/
   `AddMonoidHomClass`) from an additive topological group to an additive topological monoid is
   continuous provided that it is continuous at zero. See also
   `uniformContinuous_of_continuousAt_zero`."]
-theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [TopologicalSpace M]
+theorem continuous_of_continuousAt_one {M hom : Type*} [MulOneClass M] [TopologicalSpace M]
     [ContinuousMul M] [MonoidHomClass hom G M] (f : hom) (hf : ContinuousAt f 1) :
     Continuous f :=
   continuous_iff_continuousAt.2 fun x => by
@@ -872,7 +872,7 @@ theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [Topolog
 
 -- Porting note: new theorem
 @[to_additive continuous_of_continuousAt_zero₂]
-theorem continuous_of_continuousAt_one₂ {H M : Type _} [CommMonoid M] [TopologicalSpace M]
+theorem continuous_of_continuousAt_one₂ {H M : Type*} [CommMonoid M] [TopologicalSpace M]
     [ContinuousMul M] [Group H] [TopologicalSpace H] [TopologicalGroup H] (f : G →* H →* M)
     (hf : ContinuousAt (fun x : G × H ↦ f x.1 x.2) (1, 1))
     (hl : ∀ x, ContinuousAt (f x) 1) (hr : ∀ y, ContinuousAt (fun x => f x y) 1) :
@@ -884,7 +884,7 @@ theorem continuous_of_continuousAt_one₂ {H M : Type _} [CommMonoid M] [Topolog
   simp only [map_one, mul_one, MonoidHom.one_apply]
 
 @[to_additive]
-theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
+theorem TopologicalGroup.ext {G : Type*} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _)
     (h : @nhds G t 1 = @nhds G t' 1) : t = t' :=
   eq_of_nhds_eq_nhds fun x => by
@@ -893,7 +893,7 @@ theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
 #align topological_add_group.ext TopologicalAddGroup.ext
 
 @[to_additive]
-theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace G}
+theorem TopologicalGroup.ext_iff {G : Type*} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _) :
     t = t' ↔ @nhds G t 1 = @nhds G t' 1 :=
   ⟨fun h => h ▸ rfl, tg.ext tg'⟩
@@ -901,7 +901,7 @@ theorem TopologicalGroup.ext_iff {G : Type _} [Group G] {t t' : TopologicalSpace
 #align topological_add_group.ext_iff TopologicalAddGroup.ext_iff
 
 @[to_additive]
-theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
+theorem ContinuousInv.of_nhds_one {G : Type*} [Group G] [TopologicalSpace G]
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x : G => x₀ * x) (𝓝 1))
     (hconj : ∀ x₀ : G, Tendsto (fun x : G => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)) : ContinuousInv G := by
@@ -961,7 +961,7 @@ section QuotientTopologicalGroup
 variable [TopologicalSpace G] [Group G] [TopologicalGroup G] (N : Subgroup G) (n : N.Normal)
 
 @[to_additive]
-instance QuotientGroup.Quotient.topologicalSpace {G : Type _} [Group G] [TopologicalSpace G]
+instance QuotientGroup.Quotient.topologicalSpace {G : Type*} [Group G] [TopologicalSpace G]
     (N : Subgroup G) : TopologicalSpace (G ⧸ N) :=
   instTopologicalSpaceQuotient
 #align quotient_group.quotient.topological_space QuotientGroup.Quotient.topologicalSpace
@@ -1048,7 +1048,7 @@ end QuotientTopologicalGroup
 
 /-- A typeclass saying that `p : G × G ↦ p.1 - p.2` is a continuous function. This property
 automatically holds for topological additive groups but it also holds, e.g., for `ℝ≥0`. -/
-class ContinuousSub (G : Type _) [TopologicalSpace G] [Sub G] : Prop where
+class ContinuousSub (G : Type*) [TopologicalSpace G] [Sub G] : Prop where
   continuous_sub : Continuous fun p : G × G => p.1 - p.2
 #align has_continuous_sub ContinuousSub
 
@@ -1056,7 +1056,7 @@ class ContinuousSub (G : Type _) [TopologicalSpace G] [Sub G] : Prop where
 automatically holds for topological groups. Lemmas using this class have primes.
 The unprimed version is for `GroupWithZero`. -/
 @[to_additive existing]
-class ContinuousDiv (G : Type _) [TopologicalSpace G] [Div G] : Prop where
+class ContinuousDiv (G : Type*) [TopologicalSpace G] [Div G] : Prop where
   continuous_div' : Continuous fun p : G × G => p.1 / p.2
 #align has_continuous_div ContinuousDiv
 
@@ -1190,7 +1190,7 @@ theorem isClosedMap_div_right (a : G) : IsClosedMap fun x => x / a :=
 #align is_closed_map_sub_right isClosedMap_sub_right
 
 @[to_additive]
-theorem tendsto_div_nhds_one_iff {α : Type _} {l : Filter α} {x : G} {u : α → G} :
+theorem tendsto_div_nhds_one_iff {α : Type*} {l : Filter α} {x : G} {u : α → G} :
     Tendsto (fun n => u n / x) l (𝓝 1) ↔ Tendsto u l (𝓝 x) :=
   haveI A : Tendsto (fun _ : α => x) l (𝓝 x) := tendsto_const_nhds
   ⟨fun h => by simpa using h.mul A, fun h => by simpa using h.div' A⟩
@@ -1838,7 +1838,7 @@ end Units
 
 section LatticeOps
 
-variable {ι : Sort _} [Group G]
+variable {ι : Sort*} [Group G]
 
 @[to_additive]
 theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
@@ -2070,13 +2070,13 @@ topology such that `f` is continuous and `β` is a topological group. -/
 @[to_additive
   "Given `f : α → β` and a topology on `α`, the coinduced additive group topology on `β`
   is the finest topology such that `f` is continuous and `β` is a topological additive group."]
-def coinduced {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) : GroupTopology β :=
+def coinduced {α β : Type*} [t : TopologicalSpace α] [Group β] (f : α → β) : GroupTopology β :=
   sInf { b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace }
 #align group_topology.coinduced GroupTopology.coinduced
 #align add_group_topology.coinduced AddGroupTopology.coinduced
 
 @[to_additive]
-theorem coinduced_continuous {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) :
+theorem coinduced_continuous {α β : Type*} [t : TopologicalSpace α] [Group β] (f : α → β) :
     Continuous[t, (coinduced f).toTopologicalSpace] f := by
   rw [continuous_sInf_rng]
   rintro _ ⟨t', ht', rfl⟩
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) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
-
-! This file was ported from Lean 3 source module topology.algebra.group.basic
-! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.GroupTheory.GroupAction.ConjAct
 import Mathlib.GroupTheory.GroupAction.Quotient
@@ -14,6 +9,8 @@ import Mathlib.GroupTheory.QuotientGroup
 import Mathlib.Topology.Algebra.Monoid
 import Mathlib.Topology.Algebra.Constructions
 
+#align_import topology.algebra.group.basic from "leanprover-community/mathlib"@"3b1890e71632be9e3b2086ab512c3259a7e9a3ef"
+
 /-!
 # Topological groups
 
feat(Topology/Algebra/Group/Basic): product of compact set and closed set is closed (#5471)

Also adds the version for group actions, and the consequence that if we quotient by a compact subgroup then the quotient map is closed.

I also made some syntax tweaks in some places, mainly making use of our great new implicit functions.

Diff
@@ -37,7 +37,7 @@ topological space, group, topological group
 -/
 
 
-open Classical Set Filter TopologicalSpace Function Topology Pointwise
+open Classical Set Filter TopologicalSpace Function Topology Pointwise MulOpposite
 
 universe u v w x
 
@@ -1252,6 +1252,58 @@ theorem subset_interior_smul : interior s • interior t ⊆ interior (s • t)
 
 end ContinuousConstSMul
 
+section ContinuousSMul
+
+variable [TopologicalSpace α] [TopologicalSpace β] [Group α] [MulAction α β] [ContinuousInv α]
+  [ContinuousSMul α β] {s : Set α} {t : Set β}
+
+@[to_additive]
+theorem IsClosed.smul_left_of_isCompact (ht : IsClosed t) (hs : IsCompact s) :
+    IsClosed (s • t) := by
+  have : ∀ x ∈ s • t, ∃ g ∈ s, g⁻¹ • x ∈ t := by
+    intro x ⟨g, y, hgs, hyt, hgyx⟩
+    refine ⟨g, hgs, ?_⟩
+    convert hyt
+    rwa [inv_smul_eq_iff, eq_comm]
+  choose! f hf using this
+  refine isClosed_of_closure_subset (fun x hx ↦ ?_)
+  rcases mem_closure_iff_ultrafilter.mp hx with ⟨u, hust, hux⟩
+  have : Ultrafilter.map f u ≤ 𝓟 s :=
+    calc Ultrafilter.map f u ≤ map f (𝓟 (s • t)) := map_mono (le_principal_iff.mpr hust)
+      _ = 𝓟 (f '' (s • t)) := map_principal
+      _ ≤ 𝓟 s := principal_mono.mpr (image_subset_iff.mpr (fun x hx ↦ (hf x hx).1))
+  rcases hs.ultrafilter_le_nhds (Ultrafilter.map f u) this with ⟨g, hg, hug⟩
+  suffices g⁻¹ • x ∈ t from
+    ⟨g, g⁻¹ • x, hg, this, smul_inv_smul _ _⟩
+  exact ht.mem_of_tendsto ((Tendsto.inv hug).smul hux)
+    (Eventually.mono hust (fun y hy ↦ (hf y hy).2))
+
+/-! One may expect a version of `IsClosed.smul_left_of_isCompact` where `t` is compact and `s` is
+closed, but such a lemma can't be true in this level of generality. For a counterexample, consider
+`ℚ` acting on `ℝ` by translation, and let `s : set ℚ := univ`, `t : set ℝ := {0}`. Then `s` is
+closed and `t` is compact, but `s +ᵥ t` is the set of all rationals, which is definitely not
+closed in `ℝ`.
+To fix the proof, we would need to make two additional assumptions:
+- for any `x ∈ t`, `s • {x}` is closed
+- for any `x ∈ t`, there is a continuous function `g : s • {x} → s` such that, for all
+  `y ∈ s • {x}`, we have `y = (g y) • x`
+These are fairly specific hypotheses so we don't state this version of the lemmas, but an
+interesting fact is that these two assumptions are verified in the case of a `NormedAddTorsor`
+(or really, any `AddTorsor` with continuous `-ᵥ`). We prove this special case in
+`IsClosed.vadd_right_of_isCompact`. -/
+
+@[to_additive]
+theorem MulAction.isClosedMap_quotient [CompactSpace α] :
+    letI := orbitRel α β
+    IsClosedMap (Quotient.mk' : β → Quotient (orbitRel α β)) := by
+  intro t ht
+  rw [← quotientMap_quotient_mk'.isClosed_preimage, MulAction.quotient_preimage_image_eq_union_mul]
+  convert ht.smul_left_of_isCompact (isCompact_univ (α := α))
+  rw [← biUnion_univ, ← iUnion_smul_left_image]
+  rfl
+
+end ContinuousSMul
+
 section ContinuousConstSMul
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul α α] {s t : Set α}
@@ -1392,6 +1444,26 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 #align is_open.closure_div IsOpen.closure_div
 #align is_open.closure_sub IsOpen.closure_sub
 
+@[to_additive]
+theorem IsClosed.mul_left_of_isCompact (ht : IsClosed t) (hs : IsCompact s) : IsClosed (s * t) :=
+  ht.smul_left_of_isCompact hs
+
+@[to_additive]
+theorem IsClosed.mul_right_of_isCompact (ht : IsClosed t) (hs : IsCompact s) :
+    IsClosed (t * s) := by
+  rw [← image_op_smul]
+  exact IsClosed.smul_left_of_isCompact ht (hs.image continuous_op)
+
+@[to_additive]
+theorem QuotientGroup.isClosedMap_coe {H : Subgroup α} (hH : IsCompact (H : Set α)) :
+    IsClosedMap ((↑) : α → α ⧸ H) := by
+  intro t ht
+  rw [← quotientMap_quotient_mk'.isClosed_preimage]
+  convert ht.mul_right_of_isCompact hH
+  refine (QuotientGroup.preimage_image_mk_eq_iUnion_image _ _).trans ?_
+  rw [iUnion_subtype, ← iUnion_mul_right_image]
+  rfl
+
 end TopologicalGroup
 
 section FilterMul
@@ -1666,7 +1738,7 @@ variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
 @[to_additive]
 theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
   calc
-    𝓝 (x * y) = map ((· * ·) x) (map (fun a => a * y) (𝓝 1 * 𝓝 1)) := by simp
+    𝓝 (x * y) = map (x * ·) (map (· * y) (𝓝 1 * 𝓝 1)) := by simp
     _ = map₂ (fun a b => x * (a * b * y)) (𝓝 1) (𝓝 1) := by rw [← map₂_mul, map_map₂, map_map₂]
     _ = map₂ (fun a b => x * a * (b * y)) (𝓝 1) (𝓝 1) := by simp only [mul_assoc]
     _ = 𝓝 x * 𝓝 y :=
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -739,8 +739,8 @@ theorem Subgroup.topologicalClosure_minimal (s : Subgroup G) {t : Subgroup G} (h
 theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H]
     [TopologicalGroup H] {f : G →* H} (hf : Continuous f) (hf' : DenseRange f) {s : Subgroup G}
     (hs : s.topologicalClosure = ⊤) : (s.map f).topologicalClosure = ⊤ := by
-  rw [SetLike.ext'_iff] at hs⊢
-  simp only [Subgroup.topologicalClosure_coe, Subgroup.coe_top, ← dense_iff_closure_eq] at hs⊢
+  rw [SetLike.ext'_iff] at hs ⊢
+  simp only [Subgroup.topologicalClosure_coe, Subgroup.coe_top, ← dense_iff_closure_eq] at hs ⊢
   exact hf'.dense_image hf hs
 #align dense_range.topological_closure_map_subgroup DenseRange.topologicalClosure_map_subgroup
 #align dense_range.topological_closure_map_add_subgroup DenseRange.topologicalClosure_map_addSubgroup
chore: remove AddGroupWithZeroNhd (#5357)

This was from the earliest days of mathlib, and has not been relevant/used for years.

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

Diff
@@ -1394,18 +1394,6 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 
 end TopologicalGroup
 
-/-- Additive group with a neighbourhood around 0.
-Only used to construct a topology and uniform space.
-
-This is currently only available for commutative groups, but it can be extended to
-non-commutative groups too.
--/
-class AddGroupWithZeroNhd (G : Type u) extends AddCommGroup G where
-  zeroNhd : Filter G
-  zero_le : pure 0 ≤ zeroNhd
-  sub_tendsto : Tendsto (fun p : G × G => p.1 - p.2) (zeroNhd ×ˢ zeroNhd) zeroNhd
-#align add_group_with_zero_nhd AddGroupWithZeroNhd
-
 section FilterMul
 
 section
chore: rename fields of AddGroupWithZeroNhd (#5279)

This definition was broken because of not noticing auto-implicits.

(Perhaps we might even just delete it: it's not used. Who wrote it?)

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

Diff
@@ -1394,16 +1394,16 @@ theorem IsOpen.closure_div (ht : IsOpen t) (s : Set α) : closure s / t = s / t
 
 end TopologicalGroup
 
-/-- additive group with a neighbourhood around 0.
+/-- Additive group with a neighbourhood around 0.
 Only used to construct a topology and uniform space.
 
 This is currently only available for commutative groups, but it can be extended to
 non-commutative groups too.
 -/
 class AddGroupWithZeroNhd (G : Type u) extends AddCommGroup G where
-  z : Filter G
-  zero_z : pure 0 ≤ z
-  sub_z : Tendsto (fun p : G × G => p.1 - p.2) (Z ×ˢ Z) Z
+  zeroNhd : Filter G
+  zero_le : pure 0 ≤ zeroNhd
+  sub_tendsto : Tendsto (fun p : G × G => p.1 - p.2) (zeroNhd ×ˢ zeroNhd) zeroNhd
 #align add_group_with_zero_nhd AddGroupWithZeroNhd
 
 section FilterMul
chore: fix grammar 3/3 (#5003)

Part 3 of #5001

Diff
@@ -1527,10 +1527,10 @@ section
 
 variable [TopologicalSpace G] [MulOneClass G] [ContinuousMul G]
 
-/-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
+/-- Given a compact set `K` inside an open set `U`, there is an open neighborhood `V` of `1`
   such that `K * V ⊆ U`. -/
 @[to_additive
-  "Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of
+  "Given a compact set `K` inside an open set `U`, there is an open neighborhood `V` of
   `0` such that `K + V ⊆ U`."]
 theorem compact_open_separated_mul_right {K U : Set G} (hK : IsCompact K) (hU : IsOpen U)
     (hKU : K ⊆ U) : ∃ V ∈ 𝓝 (1 : G), K * V ⊆ U := by
@@ -1555,10 +1555,10 @@ theorem compact_open_separated_mul_right {K U : Set G} (hK : IsCompact K) (hU :
 
 open MulOpposite
 
-/-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
+/-- Given a compact set `K` inside an open set `U`, there is an open neighborhood `V` of `1`
   such that `V * K ⊆ U`. -/
 @[to_additive
-  "Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of
+  "Given a compact set `K` inside an open set `U`, there is an open neighborhood `V` of
   `0` such that `V + K ⊆ U`."]
 theorem compact_open_separated_mul_left {K U : Set G} (hK : IsCompact K) (hU : IsOpen U)
     (hKU : K ⊆ U) : ∃ V ∈ 𝓝 (1 : G), V * K ⊆ U := by
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
@@ -918,7 +918,7 @@ theorem ContinuousInv.of_nhds_one {G : Type _} [Group G] [TopologicalSpace G]
 
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G]
-    (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
+    (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ˢ 𝓝 1) (𝓝 1))
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1))
     (hright : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x * x₀) (𝓝 1)) : TopologicalGroup G :=
@@ -935,7 +935,7 @@ theorem TopologicalGroup.of_nhds_one' {G : Type u} [Group G] [TopologicalSpace G
 
 @[to_additive]
 theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
-    (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
+    (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ˢ 𝓝 1) (𝓝 1))
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1))
     (hconj : ∀ x₀ : G, Tendsto (fun x => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)) : TopologicalGroup G := by
@@ -950,7 +950,7 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
 
 @[to_additive]
 theorem TopologicalGroup.of_comm_of_nhds_one {G : Type u} [CommGroup G] [TopologicalSpace G]
-    (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ᶠ 𝓝 1) (𝓝 1))
+    (hmul : Tendsto (uncurry ((· * ·) : G → G → G)) (𝓝 1 ×ˢ 𝓝 1) (𝓝 1))
     (hinv : Tendsto (fun x : G => x⁻¹) (𝓝 1) (𝓝 1))
     (hleft : ∀ x₀ : G, 𝓝 x₀ = map (fun x => x₀ * x) (𝓝 1)) : TopologicalGroup G :=
   TopologicalGroup.of_nhds_one hmul hinv hleft (by simpa using tendsto_id)
@@ -1403,7 +1403,7 @@ non-commutative groups too.
 class AddGroupWithZeroNhd (G : Type u) extends AddCommGroup G where
   z : Filter G
   zero_z : pure 0 ≤ z
-  sub_z : Tendsto (fun p : G × G => p.1 - p.2) (Z ×ᶠ Z) Z
+  sub_z : Tendsto (fun p : G × G => p.1 - p.2) (Z ×ˢ Z) Z
 #align add_group_with_zero_nhd AddGroupWithZeroNhd
 
 section FilterMul
feat: port Analysis.SpecialFunctions.Trigonometric.Basic (#4015)

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -178,6 +178,8 @@ over `M`, for example, is obtained by requiring the instances `AddGroup M` and
 class ContinuousNeg (G : Type u) [TopologicalSpace G] [Neg G] : Prop where
   continuous_neg : Continuous fun a : G => -a
 #align has_continuous_neg ContinuousNeg
+-- Porting note: added
+attribute [continuity] ContinuousNeg.continuous_neg
 
 /-- Basic hypothesis to talk about a topological group. A topological group over `M`, for example,
 is obtained by requiring the instances `Group M` and `ContinuousMul M` and
@@ -187,6 +189,8 @@ class ContinuousInv (G : Type u) [TopologicalSpace G] [Inv G] : Prop where
   continuous_inv : Continuous fun a : G => a⁻¹
 #align has_continuous_inv ContinuousInv
 --#align has_continuous_neg ContinuousNeg
+-- Porting note: added
+attribute [continuity] ContinuousInv.continuous_inv
 
 export ContinuousInv (continuous_inv)
 
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
@@ -298,7 +298,7 @@ variable (G₁ G₂ : Type _) [TopologicalSpace G₂] [T2Space G₂]
 theorem isClosed_setOf_map_inv [Inv G₁] [Inv G₂] [ContinuousInv G₂] :
     IsClosed { f : G₁ → G₂ | ∀ x, f x⁻¹ = (f x)⁻¹ } := by
   simp only [setOf_forall]
-  refine' isClosed_interᵢ fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
+  refine' isClosed_iInter fun i => isClosed_eq (continuous_apply _) (continuous_apply _).inv
 #align is_closed_set_of_map_inv isClosed_setOf_map_inv
 #align is_closed_set_of_map_neg isClosed_setOf_map_neg
 
@@ -374,28 +374,28 @@ section LatticeOps
 variable {ι' : Sort _} [Inv G]
 
 @[to_additive]
-theorem continuousInv_infₛ {ts : Set (TopologicalSpace G)}
-    (h : ∀ t ∈ ts, @ContinuousInv G t _) : @ContinuousInv G (infₛ ts) _ :=
-  letI := infₛ ts
+theorem continuousInv_sInf {ts : Set (TopologicalSpace G)}
+    (h : ∀ t ∈ ts, @ContinuousInv G t _) : @ContinuousInv G (sInf ts) _ :=
+  letI := sInf ts
   { continuous_inv :=
-      continuous_infₛ_rng.2 fun t ht =>
-        continuous_infₛ_dom ht (@ContinuousInv.continuous_inv G t _ (h t ht)) }
-#align has_continuous_inv_Inf continuousInv_infₛ
-#align has_continuous_neg_Inf continuousNeg_infₛ
+      continuous_sInf_rng.2 fun t ht =>
+        continuous_sInf_dom ht (@ContinuousInv.continuous_inv G t _ (h t ht)) }
+#align has_continuous_inv_Inf continuousInv_sInf
+#align has_continuous_neg_Inf continuousNeg_sInf
 
 @[to_additive]
-theorem continuousInv_infᵢ {ts' : ι' → TopologicalSpace G}
+theorem continuousInv_iInf {ts' : ι' → TopologicalSpace G}
     (h' : ∀ i, @ContinuousInv G (ts' i) _) : @ContinuousInv G (⨅ i, ts' i) _ := by
-  rw [← infₛ_range]
-  exact continuousInv_infₛ (Set.forall_range_iff.mpr h')
-#align has_continuous_inv_infi continuousInv_infᵢ
-#align has_continuous_neg_infi continuousNeg_infᵢ
+  rw [← sInf_range]
+  exact continuousInv_sInf (Set.forall_range_iff.mpr h')
+#align has_continuous_inv_infi continuousInv_iInf
+#align has_continuous_neg_infi continuousNeg_iInf
 
 @[to_additive]
 theorem continuousInv_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @ContinuousInv G t₁ _)
     (h₂ : @ContinuousInv G t₂ _) : @ContinuousInv G (t₁ ⊓ t₂) _ := by
-  rw [inf_eq_infᵢ]
-  refine' continuousInv_infᵢ fun b => _
+  rw [inf_eq_iInf]
+  refine' continuousInv_iInf fun b => _
   cases b <;> assumption
 #align has_continuous_inv_inf continuousInv_inf
 #align has_continuous_neg_inf continuousNeg_inf
@@ -973,7 +973,7 @@ theorem QuotientGroup.isOpenMap_coe : IsOpenMap ((↑) : G → G ⧸ N) := by
   intro s s_op
   change IsOpen (((↑) : G → G ⧸ N) ⁻¹' ((↑) '' s))
   rw [QuotientGroup.preimage_image_mk N s]
-  exact isOpen_unionᵢ fun n => (continuous_mul_right _).isOpen_preimage s s_op
+  exact isOpen_iUnion fun n => (continuous_mul_right _).isOpen_preimage s s_op
 #align quotient_group.is_open_map_coe QuotientGroup.isOpenMap_coe
 #align quotient_add_group.is_open_map_coe QuotientAddGroup.isOpenMap_coe
 
@@ -1220,8 +1220,8 @@ variable [TopologicalSpace β] [Group α] [MulAction α β] [ContinuousConstSMul
 
 @[to_additive]
 theorem IsOpen.smul_left (ht : IsOpen t) : IsOpen (s • t) := by
-  rw [← unionᵢ_smul_set]
-  exact isOpen_bunionᵢ fun a _ => ht.smul _
+  rw [← iUnion_smul_set]
+  exact isOpen_biUnion fun a _ => ht.smul _
 #align is_open.smul_left IsOpen.smul_left
 #align is_open.vadd_left IsOpen.vadd_left
 
@@ -1291,8 +1291,8 @@ variable [TopologicalSpace α] [Group α] [ContinuousConstSMul αᵐᵒᵖ α] {
 
 @[to_additive]
 theorem IsOpen.mul_right (hs : IsOpen s) : IsOpen (s * t) := by
-  rw [← unionᵢ_op_smul_set]
-  exact isOpen_bunionᵢ fun a _ => hs.smul _
+  rw [← iUnion_op_smul_set]
+  exact isOpen_biUnion fun a _ => hs.smul _
 #align is_open.mul_right IsOpen.mul_right
 #align is_open.add_right IsOpen.add_right
 
@@ -1310,7 +1310,7 @@ theorem subset_interior_mul' : interior s * interior t ⊆ interior (s * t) :=
 
 @[to_additive]
 theorem mul_singleton_mem_nhds (a : α) {b : α} (h : s ∈ 𝓝 b) : s * {a} ∈ 𝓝 (b * a) := by
-  simp only [← unionᵢ_op_smul_set, mem_singleton_iff, unionᵢ_unionᵢ_eq_left]
+  simp only [← iUnion_op_smul_set, mem_singleton_iff, iUnion_iUnion_eq_left]
   exact smul_mem_nhds _ h
 #align mul_singleton_mem_nhds mul_singleton_mem_nhds
 #align add_singleton_mem_nhds add_singleton_mem_nhds
@@ -1329,15 +1329,15 @@ variable [TopologicalSpace α] [Group α] [TopologicalGroup α] {s t : Set α}
 
 @[to_additive]
 theorem IsOpen.div_left (ht : IsOpen t) : IsOpen (s / t) := by
-  rw [← unionᵢ_div_left_image]
-  exact isOpen_bunionᵢ fun a _ => isOpenMap_div_left a t ht
+  rw [← iUnion_div_left_image]
+  exact isOpen_biUnion fun a _ => isOpenMap_div_left a t ht
 #align is_open.div_left IsOpen.div_left
 #align is_open.sub_left IsOpen.sub_left
 
 @[to_additive]
 theorem IsOpen.div_right (hs : IsOpen s) : IsOpen (s / t) := by
-  rw [← unionᵢ_div_right_image]
-  exact isOpen_bunionᵢ fun a _ => isOpenMap_div_right a s hs
+  rw [← iUnion_div_right_image]
+  exact isOpen_biUnion fun a _ => isOpenMap_div_right a s hs
 #align is_open.div_right IsOpen.div_right
 #align is_open.sub_right IsOpen.sub_right
 
@@ -1584,10 +1584,10 @@ theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
     refine'
       hK.elim_finite_subcover (fun x => interior <| (· * ·) x ⁻¹' V) (fun x => isOpen_interior) _
     cases' hV with g₀ hg₀
-    refine' fun g _ => mem_unionᵢ.2 ⟨g₀ * g⁻¹, _⟩
+    refine' fun g _ => mem_iUnion.2 ⟨g₀ * g⁻¹, _⟩
     refine' preimage_interior_subset_interior_preimage (continuous_const.mul continuous_id) _
     rwa [mem_preimage, id_def, inv_mul_cancel_right]
-  exact ⟨t, Subset.trans ht <| unionᵢ₂_mono fun g _ => interior_subset⟩
+  exact ⟨t, Subset.trans ht <| iUnion₂_mono fun g _ => interior_subset⟩
 #align compact_covered_by_mul_left_translates compact_covered_by_mul_left_translates
 #align compact_covered_by_add_left_translates compact_covered_by_add_left_translates
 
@@ -1603,7 +1603,7 @@ instance (priority := 100) SeparableLocallyCompactGroup.sigmaCompactSpace [Separ
   refine' ⟨⟨fun n => (fun x => x * denseSeq G n) ⁻¹' L, _, _⟩⟩
   · intro n
     exact (Homeomorph.mulRight _).isCompact_preimage.mpr hLc
-  · refine' unionᵢ_eq_univ_iff.2 fun x => _
+  · refine' iUnion_eq_univ_iff.2 fun x => _
     obtain ⟨_, ⟨n, rfl⟩, hn⟩ : (range (denseSeq G) ∩ (fun y => x * y) ⁻¹' L).Nonempty := by
       rw [← (Homeomorph.mulLeft x).apply_symm_apply 1] at hL1
       exact (denseRange_denseSeq G).inter_nhds_nonempty
@@ -1780,30 +1780,30 @@ section LatticeOps
 variable {ι : Sort _} [Group G]
 
 @[to_additive]
-theorem topologicalGroup_infₛ {ts : Set (TopologicalSpace G)}
-    (h : ∀ t ∈ ts, @TopologicalGroup G t _) : @TopologicalGroup G (infₛ ts) _ :=
-  letI := infₛ ts
+theorem topologicalGroup_sInf {ts : Set (TopologicalSpace G)}
+    (h : ∀ t ∈ ts, @TopologicalGroup G t _) : @TopologicalGroup G (sInf ts) _ :=
+  letI := sInf ts
   { toContinuousInv :=
-      @continuousInv_infₛ _ _ _ fun t ht => @TopologicalGroup.toContinuousInv G t _ <| h t ht
+      @continuousInv_sInf _ _ _ fun t ht => @TopologicalGroup.toContinuousInv G t _ <| h t ht
     toContinuousMul :=
-      @continuousMul_infₛ _ _ _ fun t ht =>
+      @continuousMul_sInf _ _ _ fun t ht =>
         @TopologicalGroup.toContinuousMul G t _ <| h t ht }
-#align topological_group_Inf topologicalGroup_infₛ
-#align topological_add_group_Inf topologicalAddGroup_infₛ
+#align topological_group_Inf topologicalGroup_sInf
+#align topological_add_group_Inf topologicalAddGroup_sInf
 
 @[to_additive]
-theorem topologicalGroup_infᵢ {ts' : ι → TopologicalSpace G}
+theorem topologicalGroup_iInf {ts' : ι → TopologicalSpace G}
     (h' : ∀ i, @TopologicalGroup G (ts' i) _) : @TopologicalGroup G (⨅ i, ts' i) _ := by
-  rw [← infₛ_range]
-  exact topologicalGroup_infₛ (Set.forall_range_iff.mpr h')
-#align topological_group_infi topologicalGroup_infᵢ
-#align topological_add_group_infi topologicalAddGroup_infᵢ
+  rw [← sInf_range]
+  exact topologicalGroup_sInf (Set.forall_range_iff.mpr h')
+#align topological_group_infi topologicalGroup_iInf
+#align topological_add_group_infi topologicalAddGroup_iInf
 
 @[to_additive]
 theorem topologicalGroup_inf {t₁ t₂ : TopologicalSpace G} (h₁ : @TopologicalGroup G t₁ _)
     (h₂ : @TopologicalGroup G t₂ _) : @TopologicalGroup G (t₁ ⊓ t₂) _ := by
-  rw [inf_eq_infᵢ]
-  refine' topologicalGroup_infᵢ fun b => _
+  rw [inf_eq_iInf]
+  refine' topologicalGroup_iInf fun b => _
   cases b <;> assumption
 #align topological_group_inf topologicalGroup_inf
 #align topological_add_group_inf topologicalAddGroup_inf
@@ -1952,21 +1952,21 @@ local notation "cont" => @Continuous _ _
 /-- Infimum of a collection of group topologies. -/
 @[to_additive "Infimum of a collection of additive group topologies"]
 instance : InfSet (GroupTopology α) where
-  infₛ S :=
-    ⟨infₛ (toTopologicalSpace '' S), topologicalGroup_infₛ <| ball_image_iff.2 fun t _ => t.2⟩
+  sInf S :=
+    ⟨sInf (toTopologicalSpace '' S), topologicalGroup_sInf <| ball_image_iff.2 fun t _ => t.2⟩
 
 @[to_additive (attr := simp)]
-theorem toTopologicalSpace_infₛ (s : Set (GroupTopology α)) :
-    (infₛ s).toTopologicalSpace = infₛ (toTopologicalSpace '' s) := rfl
-#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_infₛ
-#align add_group_topology.to_topological_space_Inf AddGroupTopology.toTopologicalSpace_infₛ
+theorem toTopologicalSpace_sInf (s : Set (GroupTopology α)) :
+    (sInf s).toTopologicalSpace = sInf (toTopologicalSpace '' s) := rfl
+#align group_topology.to_topological_space_Inf GroupTopology.toTopologicalSpace_sInf
+#align add_group_topology.to_topological_space_Inf AddGroupTopology.toTopologicalSpace_sInf
 
 @[to_additive (attr := simp)]
-theorem toTopologicalSpace_infᵢ {ι} (s : ι → GroupTopology α) :
+theorem toTopologicalSpace_iInf {ι} (s : ι → GroupTopology α) :
     (⨅ i, s i).toTopologicalSpace = ⨅ i, (s i).toTopologicalSpace :=
-  congr_arg infₛ (range_comp _ _).symm
-#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_infᵢ
-#align add_group_topology.to_topological_space_infi AddGroupTopology.toTopologicalSpace_infᵢ
+  congr_arg sInf (range_comp _ _).symm
+#align group_topology.to_topological_space_infi GroupTopology.toTopologicalSpace_iInf
+#align add_group_topology.to_topological_space_infi AddGroupTopology.toTopologicalSpace_iInf
 
 /-- Group topologies on `γ` form a complete lattice, with `⊥` the discrete topology and `⊤` the
 indiscrete topology.
@@ -1988,10 +1988,10 @@ topologies contained in the intersection of `s` and `t`. -/
 instance : CompleteSemilatticeInf (GroupTopology α) :=
   { inferInstanceAs (InfSet (GroupTopology α)),
     inferInstanceAs (PartialOrder (GroupTopology α)) with
-    infₛ_le := fun S a haS => toTopologicalSpace_le.1 <| infₛ_le ⟨a, haS, rfl⟩
-    le_infₛ := by
+    sInf_le := fun S a haS => toTopologicalSpace_le.1 <| sInf_le ⟨a, haS, rfl⟩
+    le_sInf := by
       intro S a hab
-      apply (inferInstanceAs (CompleteLattice (TopologicalSpace α))).le_infₛ
+      apply (inferInstanceAs (CompleteLattice (TopologicalSpace α))).le_sInf
       rintro _ ⟨b, hbS, rfl⟩
       exact hab b hbS }
 
@@ -2010,14 +2010,14 @@ topology such that `f` is continuous and `β` is a topological group. -/
   "Given `f : α → β` and a topology on `α`, the coinduced additive group topology on `β`
   is the finest topology such that `f` is continuous and `β` is a topological additive group."]
 def coinduced {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) : GroupTopology β :=
-  infₛ { b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace }
+  sInf { b : GroupTopology β | TopologicalSpace.coinduced f t ≤ b.toTopologicalSpace }
 #align group_topology.coinduced GroupTopology.coinduced
 #align add_group_topology.coinduced AddGroupTopology.coinduced
 
 @[to_additive]
 theorem coinduced_continuous {α β : Type _} [t : TopologicalSpace α] [Group β] (f : α → β) :
     Continuous[t, (coinduced f).toTopologicalSpace] f := by
-  rw [continuous_infₛ_rng]
+  rw [continuous_sInf_rng]
   rintro _ ⟨t', ht', rfl⟩
   exact continuous_iff_coinduced_le.2 ht'
 #align group_topology.coinduced_continuous GroupTopology.coinduced_continuous
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
@@ -116,8 +116,8 @@ theorem Homeomorph.coe_mulRight (a : G) : ⇑(Homeomorph.mulRight a) = fun g =>
 #align homeomorph.coe_add_right Homeomorph.coe_addRight
 
 @[to_additive]
-theorem Homeomorph.mulRight_symm (a : G) : (Homeomorph.mulRight a).symm = Homeomorph.mulRight a⁻¹ :=
-  by
+theorem Homeomorph.mulRight_symm (a : G) :
+    (Homeomorph.mulRight a).symm = Homeomorph.mulRight a⁻¹ := by
   ext
   rfl
 #align homeomorph.mul_right_symm Homeomorph.mulRight_symm
@@ -1637,8 +1637,8 @@ neighborhood of the identity, even without separation assumptions on the space.
   "In a locally compact additive group, any neighborhood of the identity contains a
   compact closed neighborhood of the identity, even without separation assumptions on the space."]
 theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set G}
-    (hU : U ∈ 𝓝 (1 : G)) : ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ U ∧ (1 : G) ∈ interior K :=
-  by
+    (hU : U ∈ 𝓝 (1 : G)) :
+    ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ⊆ U ∧ (1 : G) ∈ interior K := by
   obtain ⟨L, Lint, LU, Lcomp⟩ : ∃ (L : Set G), L ∈ 𝓝 (1 : G) ∧ L ⊆ U ∧ IsCompact L :=
     local_compact_nhds hU
   obtain ⟨V, Vnhds, hV⟩ : ∃ V ∈ 𝓝 (1 : G), ∀ v ∈ V, ∀ w ∈ V, v * w ∈ L := by
@@ -1655,8 +1655,7 @@ theorem local_isCompact_isClosed_nhds_of_group [LocallyCompactSpace G] {U : Set
           (by simpa only [singleton_subset_iff] using mem_interior_iff_mem_nhds.2 Vnhds)
       _ = interior V * V := isOpen_interior.mul_closure _
       _ ⊆ V * V := mul_subset_mul_right interior_subset
-      _ ⊆ L :=
-      by
+      _ ⊆ L := by
         rintro x ⟨y, z, yv, zv, rfl⟩
         exact hV _ yv _ zv
 
@@ -1868,11 +1867,11 @@ theorem continuous_inv' (g : GroupTopology α) :
 
 @[to_additive]
 theorem toTopologicalSpace_injective :
-    Function.Injective (toTopologicalSpace : GroupTopology α → TopologicalSpace α) := fun f g h =>
-  by
-  cases f
-  cases g
-  congr
+    Function.Injective (toTopologicalSpace : GroupTopology α → TopologicalSpace α) :=
+  fun f g h => by
+    cases f
+    cases g
+    congr
 #align group_topology.to_topological_space_injective GroupTopology.toTopologicalSpace_injective
 #align add_group_topology.to_topological_space_injective AddGroupTopology.toTopologicalSpace_injective
 
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -1435,7 +1435,6 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G := by
     _ = U * interior V := isOpen_interior.closure_mul U
     _ ⊆ U * V := mul_subset_mul_left interior_subset
     _ ⊆ s := hUV
-
 #align topological_group.regular_space TopologicalGroup.regularSpace
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 
@@ -1682,7 +1681,6 @@ theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
     _ = 𝓝 x * 𝓝 y :=
     by rw [← map_mul_left_nhds_one x, ← map_mul_right_nhds_one y, ← map₂_mul, map₂_map_left,
         map₂_map_right]
-
 #align nhds_mul nhds_mul
 #align nhds_add nhds_add
 
chore: tidy various files (#3474)
Diff
@@ -82,11 +82,11 @@ theorem isOpenMap_mul_left (a : G) : IsOpenMap fun x => a * x :=
 #align is_open_map_mul_left isOpenMap_mul_left
 #align is_open_map_add_left isOpenMap_add_left
 
-@[to_additive IsOpen.left_add_coset]
+@[to_additive IsOpen.left_addCoset]
 theorem IsOpen.leftCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (leftCoset x U) :=
   isOpenMap_mul_left x _ h
 #align is_open.left_coset IsOpen.leftCoset
-#align is_open.left_add_coset IsOpen.left_add_coset
+#align is_open.left_add_coset IsOpen.left_addCoset
 
 @[to_additive]
 theorem isClosedMap_mul_left (a : G) : IsClosedMap fun x => a * x :=
@@ -94,11 +94,11 @@ theorem isClosedMap_mul_left (a : G) : IsClosedMap fun x => a * x :=
 #align is_closed_map_mul_left isClosedMap_mul_left
 #align is_closed_map_add_left isClosedMap_add_left
 
-@[to_additive IsClosed.left_add_coset]
+@[to_additive IsClosed.left_addCoset]
 theorem IsClosed.leftCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (leftCoset x U) :=
   isClosedMap_mul_left x _ h
 #align is_closed.left_coset IsClosed.leftCoset
-#align is_closed.left_add_coset IsClosed.left_add_coset
+#align is_closed.left_add_coset IsClosed.left_addCoset
 
 /-- Multiplication from the right in a topological group as a homeomorphism. -/
 @[to_additive "Addition from the right in a topological additive group as a homeomorphism."]
@@ -129,11 +129,11 @@ theorem isOpenMap_mul_right (a : G) : IsOpenMap fun x => x * a :=
 #align is_open_map_mul_right isOpenMap_mul_right
 #align is_open_map_add_right isOpenMap_add_right
 
-@[to_additive IsOpen.right_add_coset]
+@[to_additive IsOpen.right_addCoset]
 theorem IsOpen.rightCoset {U : Set G} (h : IsOpen U) (x : G) : IsOpen (rightCoset U x) :=
   isOpenMap_mul_right x _ h
 #align is_open.right_coset IsOpen.rightCoset
-#align is_open.right_add_coset IsOpen.right_add_coset
+#align is_open.right_add_coset IsOpen.right_addCoset
 
 @[to_additive]
 theorem isClosedMap_mul_right (a : G) : IsClosedMap fun x => x * a :=
@@ -141,18 +141,17 @@ theorem isClosedMap_mul_right (a : G) : IsClosedMap fun x => x * a :=
 #align is_closed_map_mul_right isClosedMap_mul_right
 #align is_closed_map_add_right isClosedMap_add_right
 
-@[to_additive IsClosed.right_add_coset]
+@[to_additive IsClosed.right_addCoset]
 theorem IsClosed.rightCoset {U : Set G} (h : IsClosed U) (x : G) : IsClosed (rightCoset U x) :=
   isClosedMap_mul_right x _ h
 #align is_closed.right_coset IsClosed.rightCoset
-#align is_closed.right_add_coset IsClosed.right_add_coset
+#align is_closed.right_add_coset IsClosed.right_addCoset
 
 @[to_additive]
 theorem discreteTopology_of_open_singleton_one (h : IsOpen ({1} : Set G)) : DiscreteTopology G := by
   rw [← singletons_open_iff_discrete]
   intro g
-  suffices {g} = (fun x : G => g⁻¹ * x) ⁻¹' {1}
-    by
+  suffices {g} = (fun x : G => g⁻¹ * x) ⁻¹' {1} by
     rw [this]
     exact (continuous_mul_left g⁻¹).isOpen_preimage _ h
   simp only [mul_one, Set.preimage_mul_left_singleton, eq_self_iff_true, inv_inv,
@@ -223,7 +222,7 @@ theorem tendsto_inv (a : G) : Tendsto Inv.inv (𝓝 a) (𝓝 a⁻¹) :=
 
 /-- If a function converges to a value in a multiplicative topological group, then its inverse
 converges to the inverse of this value. For the version in normed fields assuming additionally
-that the limit is nonzero, use `tendsto.inv'`. -/
+that the limit is nonzero, use `Tendsto.inv'`. -/
 @[to_additive
   "If a function converges to a value in an additive topological group, then its
   negation converges to the negation of this value."]
@@ -378,8 +377,7 @@ variable {ι' : Sort _} [Inv G]
 theorem continuousInv_infₛ {ts : Set (TopologicalSpace G)}
     (h : ∀ t ∈ ts, @ContinuousInv G t _) : @ContinuousInv G (infₛ ts) _ :=
   letI := infₛ ts
-  {
-    continuous_inv :=
+  { continuous_inv :=
       continuous_infₛ_rng.2 fun t ht =>
         continuous_infₛ_dom ht (@ContinuousInv.continuous_inv G t _ (h t ht)) }
 #align has_continuous_inv_Inf continuousInv_infₛ
@@ -498,10 +496,10 @@ instance AddGroup.continuousConstSMul_int {A} [AddGroup A] [TopologicalSpace A]
   ⟨continuous_zsmul⟩
 #align add_group.has_continuous_const_smul_int AddGroup.continuousConstSMul_int
 
-instance AddGroup.continuousSmul_int {A} [AddGroup A] [TopologicalSpace A]
+instance AddGroup.continuousSMul_int {A} [AddGroup A] [TopologicalSpace A]
     [TopologicalAddGroup A] : ContinuousSMul ℤ A :=
   ⟨continuous_uncurry_of_discreteTopology continuous_zsmul⟩
-#align add_group.has_continuous_smul_int AddGroup.continuousSmul_int
+#align add_group.has_continuous_smul_int AddGroup.continuousSMul_int
 
 @[to_additive (attr := continuity)]
 theorem Continuous.zpow {f : α → G} (h : Continuous f) (z : ℤ) : Continuous fun b => f b ^ z :=
@@ -610,8 +608,8 @@ instance [TopologicalSpace H] [Group H] [TopologicalGroup H] : TopologicalGroup
 
 @[to_additive]
 instance Pi.topologicalGroup {C : β → Type _} [∀ b, TopologicalSpace (C b)] [∀ b, Group (C b)]
-    [∀ b, TopologicalGroup (C b)] : TopologicalGroup (∀ b, C b)
-    where continuous_inv := continuous_pi fun i => (continuous_apply i).inv
+    [∀ b, TopologicalGroup (C b)] : TopologicalGroup (∀ b, C b) where
+  continuous_inv := continuous_pi fun i => (continuous_apply i).inv
 #align pi.topological_group Pi.topologicalGroup
 #align pi.topological_add_group Pi.topologicalAddGroup
 
@@ -648,9 +646,7 @@ theorem inv_mem_nhds_one {S : Set G} (hS : S ∈ (𝓝 1 : Filter G)) : S⁻¹ 
 /-- The map `(x, y) ↦ (x, x * y)` as a homeomorphism. This is a shear mapping. -/
 @[to_additive "The map `(x, y) ↦ (x, x + y)` as a homeomorphism. This is a shear mapping."]
 protected def Homeomorph.shearMulRight : G × G ≃ₜ G × G :=
-  {
-    Equiv.prodShear (Equiv.refl _)
-      Equiv.mulLeft with
+  { Equiv.prodShear (Equiv.refl _) Equiv.mulLeft with
     continuous_toFun := continuous_fst.prod_mk continuous_mul
     continuous_invFun := continuous_fst.prod_mk <| continuous_fst.inv.mul continuous_snd }
 #align homeomorph.shear_mul_right Homeomorph.shearMulRight
@@ -748,12 +744,10 @@ theorem DenseRange.topologicalClosure_map_subgroup [Group H] [TopologicalSpace H
 /-- The topological closure of a normal subgroup is normal.-/
 @[to_additive "The topological closure of a normal additive subgroup is normal."]
 theorem Subgroup.is_normal_topologicalClosure {G : Type _} [TopologicalSpace G] [Group G]
-    [TopologicalGroup G] (N : Subgroup G) [N.Normal] : (Subgroup.topologicalClosure N).Normal :=
-  {
-    conj_mem := fun n hn g =>
-      by
-      apply map_mem_closure (TopologicalGroup.continuous_conj g) hn
-      exact fun m hm => Subgroup.Normal.conj_mem inferInstance m hm g }
+    [TopologicalGroup G] (N : Subgroup G) [N.Normal] : (Subgroup.topologicalClosure N).Normal where
+  conj_mem n hn g := by
+    apply map_mem_closure (TopologicalGroup.continuous_conj g) hn
+    exact fun m hm => Subgroup.Normal.conj_mem inferInstance m hm g
 #align subgroup.is_normal_topological_closure Subgroup.is_normal_topologicalClosure
 #align add_subgroup.is_normal_topological_closure AddSubgroup.is_normal_topologicalClosure
 
@@ -762,8 +756,7 @@ theorem mul_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [MulOne
     [ContinuousMul G] {g h : G} (hg : g ∈ connectedComponent (1 : G))
     (hh : h ∈ connectedComponent (1 : G)) : g * h ∈ connectedComponent (1 : G) := by
   rw [connectedComponent_eq hg]
-  have hmul : g ∈ connectedComponent (g * h) :=
-    by
+  have hmul : g ∈ connectedComponent (g * h) := by
     apply Continuous.image_connectedComponent_subset (continuous_mul_left g)
     rw [← connectedComponent_eq hh]
     exact ⟨(1 : G), mem_connectedComponent, by simp only [mul_one]⟩
@@ -785,8 +778,7 @@ theorem inv_mem_connectedComponent_one {G : Type _} [TopologicalSpace G] [Group
 /-- The connected component of 1 is a subgroup of `G`. -/
 @[to_additive "The connected component of 0 is a subgroup of `G`."]
 def Subgroup.connectedComponentOfOne (G : Type _) [TopologicalSpace G] [Group G]
-    [TopologicalGroup G] : Subgroup G
-    where
+    [TopologicalGroup G] : Subgroup G where
   carrier := connectedComponent (1 : G)
   one_mem' := mem_connectedComponent
   mul_mem' hg hh := mul_mem_connectedComponent_one hg hh
@@ -844,8 +836,8 @@ theorem map_mul_right_nhds_one (x : G) : map (fun y => y * x) (𝓝 1) = 𝓝 x
 
 @[to_additive]
 theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι → Set G}
-    (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) : HasBasis (𝓝 x) p fun i => { y | y / x ∈ s i } :=
-  by
+    (hb : HasBasis (𝓝 1 : Filter G) p s) (x : G) :
+    HasBasis (𝓝 x) p fun i => { y | y / x ∈ s i } := by
   rw [← nhds_translation_mul_inv]
   simp_rw [div_eq_mul_inv]
   exact hb.comap _
@@ -856,18 +848,18 @@ theorem Filter.HasBasis.nhds_of_one {ι : Sort _} {p : ι → Prop} {s : ι →
 theorem mem_closure_iff_nhds_one {x : G} {s : Set G} :
     x ∈ closure s ↔ ∀ U ∈ (𝓝 1 : Filter G), ∃ y ∈ s, y / x ∈ U := by
   rw [mem_closure_iff_nhds_basis ((𝓝 1 : Filter G).basis_sets.nhds_of_one x)]
-  rfl
+  simp_rw [Set.mem_setOf, id]
 #align mem_closure_iff_nhds_one mem_closure_iff_nhds_one
 #align mem_closure_iff_nhds_zero mem_closure_iff_nhds_zero
 
 /-- A monoid homomorphism (a bundled morphism of a type that implements `MonoidHomClass`) from a
 topological group to a topological monoid is continuous provided that it is continuous at one. See
-also `uniform_continuous_of_continuousAt_one`. -/
+also `uniformContinuous_of_continuousAt_one`. -/
 @[to_additive
   "An additive monoid homomorphism (a bundled morphism of a type that implements
   `AddMonoidHomClass`) from an additive topological group to an additive topological monoid is
   continuous provided that it is continuous at zero. See also
-  `uniform_continuous_of_continuousAt_zero`."]
+  `uniformContinuous_of_continuousAt_zero`."]
 theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [TopologicalSpace M]
     [ContinuousMul M] [MonoidHomClass hom G M] (f : hom) (hf : ContinuousAt f 1) :
     Continuous f :=
@@ -877,6 +869,7 @@ theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [Topolog
 #align continuous_of_continuous_at_one continuous_of_continuousAt_one
 #align continuous_of_continuous_at_zero continuous_of_continuousAt_zero
 
+-- Porting note: new theorem
 @[to_additive continuous_of_continuousAt_zero₂]
 theorem continuous_of_continuousAt_one₂ {H M : Type _} [CommMonoid M] [TopologicalSpace M]
     [ContinuousMul M] [Group H] [TopologicalSpace H] [TopologicalGroup H] (f : G →* H →* M)
@@ -944,12 +937,8 @@ theorem TopologicalGroup.of_nhds_one {G : Type u} [Group G] [TopologicalSpace G]
     (hconj : ∀ x₀ : G, Tendsto (fun x => x₀ * x * x₀⁻¹) (𝓝 1) (𝓝 1)) : TopologicalGroup G := by
   refine' TopologicalGroup.of_nhds_one' hmul hinv hleft fun x₀ => _
   replace hconj : ∀ x₀ : G, map (fun x => x₀ * x * x₀⁻¹) (𝓝 1) = 𝓝 1
-  exact fun x₀ =>
-    map_eq_of_inverse (fun x => x₀⁻¹ * x * x₀⁻¹⁻¹)
-      (by
-        ext
-        simp [mul_assoc])
-      (hconj _) (hconj _)
+  · exact fun x₀ =>
+      map_eq_of_inverse (fun x => x₀⁻¹ * x * x₀⁻¹⁻¹) (by ext; simp [mul_assoc]) (hconj _) (hconj _)
   rw [← hconj x₀]
   simpa [(· ∘ ·)] using hleft _
 #align topological_group.of_nhds_one TopologicalGroup.of_nhds_one
@@ -1065,11 +1054,10 @@ class ContinuousSub (G : Type _) [TopologicalSpace G] [Sub G] : Prop where
 /-- A typeclass saying that `p : G × G ↦ p.1 / p.2` is a continuous function. This property
 automatically holds for topological groups. Lemmas using this class have primes.
 The unprimed version is for `GroupWithZero`. -/
-@[to_additive]
+@[to_additive existing]
 class ContinuousDiv (G : Type _) [TopologicalSpace G] [Div G] : Prop where
   continuous_div' : Continuous fun p : G × G => p.1 / p.2
 #align has_continuous_div ContinuousDiv
--- #align has_continuous_sub ContinuousSub
 
 -- see Note [lower instance priority]
 @[to_additive]
@@ -1297,7 +1285,7 @@ theorem singleton_mul_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) :
 
 end ContinuousConstSMul
 
-section ContinuousConstSmulOp
+section ContinuousConstSMulOp
 
 variable [TopologicalSpace α] [Group α] [ContinuousConstSMul αᵐᵒᵖ α] {s t : Set α}
 
@@ -1333,7 +1321,7 @@ theorem mul_singleton_mem_nhds_of_nhds_one (a : α) (h : s ∈ 𝓝 (1 : α)) :
 #align mul_singleton_mem_nhds_of_nhds_one mul_singleton_mem_nhds_of_nhds_one
 #align add_singleton_mem_nhds_of_nhds_zero add_singleton_mem_nhds_of_nhds_zero
 
-end ContinuousConstSmulOp
+end ContinuousConstSMulOp
 
 section TopologicalGroup
 
@@ -1593,8 +1581,7 @@ variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
     with non-empty interior."]
 theorem compact_covered_by_mul_left_translates {K V : Set G} (hK : IsCompact K)
     (hV : (interior V).Nonempty) : ∃ t : Finset G, K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' V := by
-  obtain ⟨t, ht⟩ : ∃ t : Finset G, K ⊆ ⋃ x ∈ t, interior ((· * ·) x ⁻¹' V) :=
-    by
+  obtain ⟨t, ht⟩ : ∃ t : Finset G, K ⊆ ⋃ x ∈ t, interior ((· * ·) x ⁻¹' V) := by
     refine'
       hK.elim_finite_subcover (fun x => interior <| (· * ·) x ⁻¹' V) (fun x => isOpen_interior) _
     cases' hV with g₀ hg₀
@@ -1777,8 +1764,7 @@ of the units of each monoid. -/
 @[to_additive
   "The topological group isomorphism between the additive units of a product of two
   additive monoids, and the product of the additive units of each additive monoid."]
-def Homeomorph.prodUnits : (α × β)ˣ ≃ₜ αˣ × βˣ
-    where
+def Homeomorph.prodUnits : (α × β)ˣ ≃ₜ αˣ × βˣ where
   continuous_toFun :=
     (continuous_fst.units_map (MonoidHom.fst α β)).prod_mk
       (continuous_snd.units_map (MonoidHom.snd α β))
@@ -1964,7 +1950,6 @@ instance : SemilatticeInf (GroupTopology α) :=
 instance : Inhabited (GroupTopology α) :=
   ⟨⊤⟩
 
--- mathport name: exprcont
 local notation "cont" => @Continuous _ _
 
 /-- Infimum of a collection of group topologies. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
 
 ! This file was ported from Lean 3 source module topology.algebra.group.basic
-! leanprover-community/mathlib commit c10e724be91096453ee3db13862b9fb9a992fef2
+! leanprover-community/mathlib commit 3b1890e71632be9e3b2086ab512c3259a7e9a3ef
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -552,7 +552,7 @@ end Zpow
 
 section OrderedCommGroup
 
-variable [TopologicalSpace H] [OrderedCommGroup H] [TopologicalGroup H]
+variable [TopologicalSpace H] [OrderedCommGroup H] [ContinuousInv H]
 
 @[to_additive]
 theorem tendsto_inv_nhdsWithin_Ioi {a : H} : Tendsto Inv.inv (𝓝[>] a) (𝓝[<] a⁻¹) :=
@@ -618,7 +618,7 @@ instance Pi.topologicalGroup {C : β → Type _} [∀ b, TopologicalSpace (C b)]
 open MulOpposite
 
 @[to_additive]
-instance [Group α] [ContinuousInv α] : ContinuousInv αᵐᵒᵖ :=
+instance [Inv α] [ContinuousInv α] : ContinuousInv αᵐᵒᵖ :=
   opHomeomorph.symm.inducing.continuousInv unop_inv
 
 /-- If multiplication is continuous in `α`, then it also is in `αᵐᵒᵖ`. -/
@@ -1418,7 +1418,7 @@ section FilterMul
 
 section
 
-variable (G) [TopologicalSpace G] [Group G] [TopologicalGroup G]
+variable (G) [TopologicalSpace G] [Group G] [ContinuousMul G]
 
 @[to_additive]
 theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
@@ -1428,6 +1428,12 @@ theorem TopologicalGroup.t1Space (h : @IsClosed G _ {1}) : T1Space G :=
 #align topological_group.t1_space TopologicalGroup.t1Space
 #align topological_add_group.t1_space TopologicalAddGroup.t1Space
 
+end
+
+section
+
+variable (G) [TopologicalSpace G] [Group G] [TopologicalGroup G]
+
 @[to_additive]
 instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G := by
   refine' RegularSpace.ofExistsMemNhdsIsClosedSubset fun a s hs => _
@@ -1446,13 +1452,13 @@ instance (priority := 100) TopologicalGroup.regularSpace : RegularSpace G := by
 #align topological_add_group.regular_space TopologicalAddGroup.regularSpace
 
 @[to_additive]
-theorem TopologicalGroup.t3Space [T1Space G] : T3Space G :=
+theorem TopologicalGroup.t3Space [T0Space G] : T3Space G :=
   ⟨⟩
 #align topological_group.t3_space TopologicalGroup.t3Space
 #align topological_add_group.t3_space TopologicalAddGroup.t3Space
 
 @[to_additive]
-theorem TopologicalGroup.t2Space [T1Space G] : T2Space G := by
+theorem TopologicalGroup.t2Space [T0Space G] : T2Space G := by
   haveI := TopologicalGroup.t3Space G
   infer_instance
 #align topological_group.t2_space TopologicalGroup.t2Space
@@ -1463,11 +1469,10 @@ variable (S : Subgroup G) [Subgroup.Normal S] [IsClosed (S : Set G)]
 
 @[to_additive]
 instance Subgroup.t3_quotient_of_isClosed (S : Subgroup G) [Subgroup.Normal S]
-    [IsClosed (S : Set G)] : T3Space (G ⧸ S) := by
-  suffices T1Space (G ⧸ S) by exact @TopologicalGroup.t3Space _ _ _ _ this
-  have hS : IsClosed (S : Set G) := inferInstance
+    [hS : IsClosed (S : Set G)] : T3Space (G ⧸ S) := by
   rw [← QuotientGroup.ker_mk' S] at hS
-  exact TopologicalGroup.t1Space (G ⧸ S) (quotientMap_quotient_mk'.isClosed_preimage.mp hS)
+  haveI := TopologicalGroup.t1Space (G ⧸ S) (quotientMap_quotient_mk'.isClosed_preimage.mp hS)
+  exact TopologicalGroup.t3Space _
 #align subgroup.t3_quotient_of_is_closed Subgroup.t3_quotient_of_isClosed
 #align add_subgroup.t3_quotient_of_is_closed AddSubgroup.t3_quotient_of_isClosed
 
@@ -1529,7 +1534,7 @@ section
 /-! Some results about an open set containing the product of two sets in a topological group. -/
 
 
-variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
+variable [TopologicalSpace G] [MulOneClass G] [ContinuousMul G]
 
 /-- Given a compact set `K` inside an open set `U`, there is a open neighborhood `V` of `1`
   such that `K * V ⊆ U`. -/
@@ -1575,6 +1580,12 @@ theorem compact_open_separated_mul_left {K U : Set G} (hK : IsCompact K) (hU : I
 #align compact_open_separated_mul_left compact_open_separated_mul_left
 #align compact_open_separated_add_left compact_open_separated_add_left
 
+end
+
+section
+
+variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
+
 /-- A compact set is covered by finitely many left multiplicative translates of a set
   with non-empty interior. -/
 @[to_additive
@@ -1709,15 +1720,12 @@ instance {G} [TopologicalSpace G] [AddGroup G] [TopologicalAddGroup G] :
 
 section Quotient
 
-variable [Group G] [TopologicalSpace G] [TopologicalGroup G] {Γ : Subgroup G}
+variable [Group G] [TopologicalSpace G] [ContinuousMul G] {Γ : Subgroup G}
 
 @[to_additive]
 instance QuotientGroup.continuousConstSMul : ContinuousConstSMul G (G ⧸ Γ) where
   continuous_const_smul g := by
-    have quot := IsOpenMap.to_quotientMap
-      (QuotientGroup.isOpenMap_coe Γ) continuous_quot_mk (surjective_quot_mk _)
-    rw [quot.continuous_iff]
-    exact continuous_quot_mk.comp (continuous_mul_left _)
+     convert ((@continuous_const _ _ _ _ g).mul continuous_id).quotient_map' _
 #align quotient_group.has_continuous_const_smul QuotientGroup.continuousConstSMul
 #align quotient_add_group.has_continuous_const_vadd QuotientAddGroup.continuousConstVAdd
 
feat: port Topology.Instances.TrivSqZeroExt (#3275)
Diff
@@ -261,7 +261,8 @@ theorem ContinuousWithinAt.inv (hf : ContinuousWithinAt f s x) :
 #align continuous_within_at.neg ContinuousWithinAt.neg
 
 @[to_additive]
-instance [TopologicalSpace H] [Inv H] [ContinuousInv H] : ContinuousInv (G × H) :=
+instance Prod.continuousInv [TopologicalSpace H] [Inv H] [ContinuousInv H] :
+    ContinuousInv (G × H) :=
   ⟨continuous_inv.fst'.prod_mk continuous_inv.snd'⟩
 
 variable {ι : Type _}
feat: improvements to congr! and convert (#2606)
  • There is now configuration for congr!, convert, and convert_to to control parts of the congruence algorithm, in particular transparency settings when applying congruence lemmas.
  • congr! now applies congruence lemmas with reducible transparency by default. This prevents it from unfolding definitions when applying congruence lemmas. It also now tries both the LHS-biased and RHS-biased simp congruence lemmas, with a configuration option to set which it should try first.
  • There is now a new HEq congruence lemma generator that gives each hypothesis access to the proofs of previous hypotheses. This means that if you have an equality ⊢ ⟨a, x⟩ = ⟨b, y⟩ of sigma types, congr! turns this into goals ⊢ a = b and ⊢ a = b → HEq x y (note that congr! will also auto-introduce a = b for you in the second goal). This congruence lemma generator applies to more cases than the simp congruence lemma generator does.
  • congr! (and hence convert) are more careful about applying lemmas that don't force definitions to unfold. There were a number of cases in mathlib where the implementation of congr was being abused to unfold definitions.
  • With set_option trace.congr! true you can see what congr! sees when it is deciding on congruence lemmas.
  • There is also a bug fix in convert_to to do using 1 when there is no using clause, to match its documentation.

Note that congr! is more capable than congr at finding a way to equate left-hand sides and right-hand sides, so you will frequently need to limit its depth with a using clause. However, there is also a new heuristic to prevent considering unlikely-to-be-provable type equalities (controlled by the typeEqs option), which can help limit the depth automatically.

There is also a predefined configuration that you can invoke with, for example, convert (config := .unfoldSameFun) h, that causes it to behave more like congr, including using default transparency when unfolding.

Diff
@@ -1514,7 +1514,7 @@ theorem Subgroup.properlyDiscontinuousSMul_opposite_of_tendsto_cofinite (S : Sub
         hS ((hK.prod hL).image (continuous_mul.comp this)).compl_mem_cocompact
       simp only [preimage_compl, compl_compl, coeSubtype, comp_apply] at H
       apply Finite.of_preimage _ (oppositeEquiv S).surjective
-      convert H
+      convert H using 1
       ext x
       simp only [image_smul, mem_setOf_eq, coeSubtype, mem_preimage, mem_image, Prod.exists]
       exact Set.op_smul_inter_ne_empty_iff }
feat: port Topology.Algebra.Order.Field (#2626)

I made substantial changes to the proofs. To avoid backporting most of them, in leanprover-community/mathlib#18552 I add private to lemmas that are deleted in this PR. Also, I backport Homeomorph.symm_symm in leanprover-community/mathlib#18551

Diff
@@ -37,9 +37,7 @@ topological space, group, topological group
 -/
 
 
-open Classical Set Filter TopologicalSpace Function
-
-open Classical Topology Filter Pointwise
+open Classical Set Filter TopologicalSpace Function Topology Pointwise
 
 universe u v w x
 
Fix: Move more attributes to the attr argument of to_additive (#2558)
Diff
@@ -605,7 +605,7 @@ theorem tendsto_inv_nhdsWithin_Iic_inv {a : H} : Tendsto Inv.inv (𝓝[≤] a⁻
 
 end OrderedCommGroup
 
-@[instance, to_additive]
+@[to_additive]
 instance [TopologicalSpace H] [Group H] [TopologicalGroup H] : TopologicalGroup (G × H)
     where continuous_inv := continuous_inv.prod_map continuous_inv
 
@@ -1158,8 +1158,8 @@ section DivInTopologicalGroup
 variable [Group G] [TopologicalSpace G] [TopologicalGroup G]
 
 /-- A version of `Homeomorph.mulLeft a b⁻¹` that is defeq to `a / b`. -/
-@[to_additive " A version of `Homeomorph.addLeft a (-b)` that is defeq to `a - b`. ",
-  simps! (config := { simpRhs := true })]
+@[to_additive (attr := simps! (config := { simpRhs := true }))
+  " A version of `Homeomorph.addLeft a (-b)` that is defeq to `a - b`. "]
 def Homeomorph.divLeft (x : G) : G ≃ₜ G :=
   { Equiv.divLeft x with
     continuous_toFun := continuous_const.div' continuous_id
@@ -1180,8 +1180,8 @@ theorem isClosedMap_div_left (a : G) : IsClosedMap ((· / ·) a) :=
 #align is_closed_map_sub_left isClosedMap_sub_left
 
 /-- A version of `Homeomorph.mulRight a⁻¹ b` that is defeq to `b / a`. -/
-@[to_additive " A version of `Homeomorph.addRight (-a) b` that is defeq to `b - a`. ",
-  simps! (config := { simpRhs := true })]
+@[to_additive (attr := simps! (config := { simpRhs := true }))
+  "A version of `Homeomorph.addRight (-a) b` that is defeq to `b - a`. "]
 def Homeomorph.divRight (x : G) : G ≃ₜ G :=
   { Equiv.divRight x with
     continuous_toFun := continuous_id.div' continuous_const
@@ -1690,9 +1690,8 @@ theorem nhds_mul (x y : G) : 𝓝 (x * y) = 𝓝 x * 𝓝 y :=
 #align nhds_add nhds_add
 
 /-- On a topological group, `𝓝 : G → Filter G` can be promoted to a `MulHom`. -/
-@[to_additive
-  "On an additive topological group, `𝓝 : G → Filter G` can be promoted to an `AddHom`.",
-  simps]
+@[to_additive (attr := simps)
+  "On an additive topological group, `𝓝 : G → Filter G` can be promoted to an `AddHom`."]
 def nhdsMulHom : G →ₙ* Filter G where
   toFun := 𝓝
   map_mul' _ _ := nhds_mul _ _
feat: port Topology.Algebra.Ring.Basic (#2614)
Diff
@@ -878,6 +878,18 @@ theorem continuous_of_continuousAt_one {M hom : Type _} [MulOneClass M] [Topolog
 #align continuous_of_continuous_at_one continuous_of_continuousAt_one
 #align continuous_of_continuous_at_zero continuous_of_continuousAt_zero
 
+@[to_additive continuous_of_continuousAt_zero₂]
+theorem continuous_of_continuousAt_one₂ {H M : Type _} [CommMonoid M] [TopologicalSpace M]
+    [ContinuousMul M] [Group H] [TopologicalSpace H] [TopologicalGroup H] (f : G →* H →* M)
+    (hf : ContinuousAt (fun x : G × H ↦ f x.1 x.2) (1, 1))
+    (hl : ∀ x, ContinuousAt (f x) 1) (hr : ∀ y, ContinuousAt (fun x => f x y) 1) :
+    Continuous (fun x : G × H ↦ f x.1 x.2) := continuous_iff_continuousAt.2 fun (x, y) => by
+  simp only [ContinuousAt, nhds_prod_eq, ← map_mul_left_nhds_one x, ← map_mul_left_nhds_one y,
+    prod_map_map_eq, tendsto_map'_iff, (· ∘ ·), map_mul, MonoidHom.mul_apply] at *
+  refine ((tendsto_const_nhds.mul ((hr y).comp tendsto_fst)).mul
+    (((hl x).comp tendsto_snd).mul hf)).mono_right (le_of_eq ?_)
+  simp only [map_one, mul_one, MonoidHom.one_apply]
+
 @[to_additive]
 theorem TopologicalGroup.ext {G : Type _} [Group G] {t t' : TopologicalSpace G}
     (tg : @TopologicalGroup G t _) (tg' : @TopologicalGroup G t' _)
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
 
 ! This file was ported from Lean 3 source module topology.algebra.group.basic
-! leanprover-community/mathlib commit dc6c365e751e34d100e80fe6e314c3c3e0fd2988
+! leanprover-community/mathlib commit c10e724be91096453ee3db13862b9fb9a992fef2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -1730,6 +1730,20 @@ instance QuotientGroup.secondCountableTopology [SecondCountableTopology G] :
 
 end Quotient
 
+/-- If `G` is a group with topological `⁻¹`, then it is homeomorphic to its units. -/
+@[to_additive " If `G` is an additive group with topological negation, then it is homeomorphic to
+its additive units."]
+def toUnits_homeomorph [Group G] [TopologicalSpace G] [ContinuousInv G] : G ≃ₜ Gˣ where
+  toEquiv := toUnits.toEquiv
+  continuous_toFun := Units.continuous_iff.2 ⟨continuous_id, continuous_inv⟩
+  continuous_invFun := Units.continuous_val
+#align to_units_homeomorph toUnits_homeomorph
+#align to_add_units_homeomorph toAddUnits_homeomorph
+
+@[to_additive] theorem Units.embedding_val [Group G] [TopologicalSpace G] [ContinuousInv G] :
+    Embedding (val : Gˣ → G) :=
+  toUnits_homeomorph.symm.embedding
+
 namespace Units
 
 open MulOpposite (continuous_op continuous_unop)
refactor: rename HasSup/HasInf to Sup/Inf (#2475)

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

Diff
@@ -1915,7 +1915,7 @@ instance : BoundedOrder (GroupTopology α) where
   bot_le x := show ⊥ ≤ x.toTopologicalSpace from bot_le
 
 @[to_additive]
-instance : HasInf (GroupTopology α) where inf x y := ⟨x.1 ⊓ y.1, topologicalGroup_inf x.2 y.2⟩
+instance : Inf (GroupTopology α) where inf x y := ⟨x.1 ⊓ y.1, topologicalGroup_inf x.2 y.2⟩
 
 @[to_additive (attr := simp)]
 theorem toTopologicalSpace_inf (x y : GroupTopology α) :
feat: port Topology.Algebra.Group.Basic (#2267)

Co-authored-by: qawbecrdtey <qawbecrdtey@naver.com> Co-authored-by: Johan Commelin <johan@commelin.net>

Dependencies 9 + 387

388 files ported (97.7%)
168570 lines ported (97.1%)
Show graph

The unported dependencies are