topology.algebra.const_mul_actionMathlib.Topology.Algebra.ConstMulAction

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -625,7 +625,7 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Sp
   by_cases H : γ ∈ bad_Γ_set
   · exact fun h => (u_v_disjoint γ).le_bot ⟨mem_Inter₂.mp x_in_U₀₀ γ H, mem_Inter₂.mp h.1 γ H⟩
   · rintro ⟨-, h'⟩
-    simp only [image_smul, Classical.not_not, mem_set_of_eq, Ne.def] at H 
+    simp only [image_smul, Classical.not_not, mem_set_of_eq, Ne.def] at H
     exact eq_empty_iff_forall_not_mem.mp H (γ • x) ⟨mem_image_of_mem _ x_in_K₀, h'⟩
 #align t2_space_of_properly_discontinuous_smul_of_t2_space t2Space_of_properlyDiscontinuousSMul_of_t2Space
 #align t2_space_of_properly_discontinuous_vadd_of_t2_space t2Space_of_properlyDiscontinuousVAdd_of_t2Space
Diff
@@ -542,7 +542,7 @@ is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`,
 -/
 class ProperlyDiscontinuousSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] :
     Prop where
-  finite_disjoint_inter_image :
+  finiteₓ_disjoint_inter_image :
     ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite {γ : Γ | (· • ·) γ '' K ∩ L ≠ ∅}
 #align properly_discontinuous_smul ProperlyDiscontinuousSMul
 -/
@@ -554,7 +554,7 @@ is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`,
 -/
 class ProperlyDiscontinuousVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] :
     Prop where
-  finite_disjoint_inter_image :
+  finiteₓ_disjoint_inter_image :
     ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite {γ : Γ | (· +ᵥ ·) γ '' K ∩ L ≠ ∅}
 #align properly_discontinuous_vadd ProperlyDiscontinuousVAdd
 -/
@@ -567,14 +567,14 @@ variable {Γ : Type _} [Group Γ] {T : Type _} [TopologicalSpace T] [MulAction 
 /-- A finite group action is always properly discontinuous. -/
 @[to_additive "A finite group action is always properly discontinuous."]
 instance (priority := 100) Finite.to_properlyDiscontinuousSMul [Finite Γ] :
-    ProperlyDiscontinuousSMul Γ T where finite_disjoint_inter_image _ _ _ _ := Set.toFinite _
+    ProperlyDiscontinuousSMul Γ T where finiteₓ_disjoint_inter_image _ _ _ _ := Set.toFinite _
 #align finite.to_properly_discontinuous_smul Finite.to_properlyDiscontinuousSMul
 #align finite.to_properly_discontinuous_vadd Finite.to_properlyDiscontinuousVAdd
 -/
 
-export ProperlyDiscontinuousSMul (finite_disjoint_inter_image)
+export ProperlyDiscontinuousSMul (finiteₓ_disjoint_inter_image)
 
-export ProperlyDiscontinuousVAdd (finite_disjoint_inter_image)
+export ProperlyDiscontinuousVAdd (finiteₓ_disjoint_inter_image)
 
 #print isOpenMap_quotient_mk'_mul /-
 /-- The quotient map by a group action is open, i.e. the quotient by a group action is an open
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2021 Alex Kontorovich, Heather Macbeth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Alex Kontorovich, Heather Macbeth
 -/
-import Mathbin.Topology.Algebra.Constructions
-import Mathbin.Topology.Homeomorph
-import Mathbin.GroupTheory.GroupAction.Basic
-import Mathbin.Topology.Bases
-import Mathbin.Topology.Support
+import Topology.Algebra.Constructions
+import Topology.Homeomorph
+import GroupTheory.GroupAction.Basic
+import Topology.Bases
+import Topology.Support
 
 #align_import topology.algebra.const_mul_action from "leanprover-community/mathlib"@"0ebfdb71919ac6ca5d7fbc61a082fa2519556818"
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2021 Alex Kontorovich, Heather Macbeth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Alex Kontorovich, Heather Macbeth
-
-! This file was ported from Lean 3 source module topology.algebra.const_mul_action
-! leanprover-community/mathlib commit 0ebfdb71919ac6ca5d7fbc61a082fa2519556818
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.Algebra.Constructions
 import Mathbin.Topology.Homeomorph
@@ -14,6 +9,8 @@ import Mathbin.GroupTheory.GroupAction.Basic
 import Mathbin.Topology.Bases
 import Mathbin.Topology.Support
 
+#align_import topology.algebra.const_mul_action from "leanprover-community/mathlib"@"0ebfdb71919ac6ca5d7fbc61a082fa2519556818"
+
 /-!
 # Monoid actions continuous in the second variable
 
Diff
@@ -172,12 +172,14 @@ instance {ι : Type _} {γ : ι → Type _} [∀ i, TopologicalSpace (γ i)] [
     [∀ i, ContinuousConstSMul M (γ i)] : ContinuousConstSMul M (∀ i, γ i) :=
   ⟨fun _ => continuous_pi fun i => (continuous_apply i).const_smul _⟩
 
+#print IsCompact.smul /-
 @[to_additive]
 theorem IsCompact.smul {α β} [SMul α β] [TopologicalSpace β] [ContinuousConstSMul α β] (a : α)
     {s : Set β} (hs : IsCompact s) : IsCompact (a • s) :=
   hs.image (continuous_id'.const_smul a)
 #align is_compact.smul IsCompact.smul
 #align is_compact.vadd IsCompact.vadd
+-/
 
 end SMul
 
@@ -218,41 +220,51 @@ section Group
 
 variable {G : Type _} [TopologicalSpace α] [Group G] [MulAction G α] [ContinuousConstSMul G α]
 
+#print tendsto_const_smul_iff /-
 @[to_additive]
 theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} (c : G) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
   ⟨fun h => by simpa only [inv_smul_smul] using h.const_smul c⁻¹, fun h => h.const_smul _⟩
 #align tendsto_const_smul_iff tendsto_const_smul_iff
 #align tendsto_const_vadd_iff tendsto_const_vadd_iff
+-/
 
 variable [TopologicalSpace β] {f : β → α} {b : β} {s : Set β}
 
+#print continuousWithinAt_const_smul_iff /-
 @[to_additive]
 theorem continuousWithinAt_const_smul_iff (c : G) :
     ContinuousWithinAt (fun x => c • f x) s b ↔ ContinuousWithinAt f s b :=
   tendsto_const_smul_iff c
 #align continuous_within_at_const_smul_iff continuousWithinAt_const_smul_iff
 #align continuous_within_at_const_vadd_iff continuousWithinAt_const_vadd_iff
+-/
 
+#print continuousOn_const_smul_iff /-
 @[to_additive]
 theorem continuousOn_const_smul_iff (c : G) :
     ContinuousOn (fun x => c • f x) s ↔ ContinuousOn f s :=
   forall₂_congr fun b hb => continuousWithinAt_const_smul_iff c
 #align continuous_on_const_smul_iff continuousOn_const_smul_iff
 #align continuous_on_const_vadd_iff continuousOn_const_vadd_iff
+-/
 
+#print continuousAt_const_smul_iff /-
 @[to_additive]
 theorem continuousAt_const_smul_iff (c : G) :
     ContinuousAt (fun x => c • f x) b ↔ ContinuousAt f b :=
   tendsto_const_smul_iff c
 #align continuous_at_const_smul_iff continuousAt_const_smul_iff
 #align continuous_at_const_vadd_iff continuousAt_const_vadd_iff
+-/
 
+#print continuous_const_smul_iff /-
 @[to_additive]
 theorem continuous_const_smul_iff (c : G) : (Continuous fun x => c • f x) ↔ Continuous f := by
   simp only [continuous_iff_continuousAt, continuousAt_const_smul_iff]
 #align continuous_const_smul_iff continuous_const_smul_iff
 #align continuous_const_vadd_iff continuous_const_vadd_iff
+-/
 
 #print Homeomorph.smul /-
 /-- The homeomorphism given by scalar multiplication by a given element of a group `Γ` acting on
@@ -271,47 +283,61 @@ def Homeomorph.smul (γ : G) : α ≃ₜ α
   `T` is a homeomorphism from `T` to itself. -/
 add_decl_doc Homeomorph.vadd
 
+#print isOpenMap_smul /-
 @[to_additive]
 theorem isOpenMap_smul (c : G) : IsOpenMap fun x : α => c • x :=
   (Homeomorph.smul c).IsOpenMap
 #align is_open_map_smul isOpenMap_smul
 #align is_open_map_vadd isOpenMap_vadd
+-/
 
+#print IsOpen.smul /-
 @[to_additive]
 theorem IsOpen.smul {s : Set α} (hs : IsOpen s) (c : G) : IsOpen (c • s) :=
   isOpenMap_smul c s hs
 #align is_open.smul IsOpen.smul
 #align is_open.vadd IsOpen.vadd
+-/
 
+#print isClosedMap_smul /-
 @[to_additive]
 theorem isClosedMap_smul (c : G) : IsClosedMap fun x : α => c • x :=
   (Homeomorph.smul c).IsClosedMap
 #align is_closed_map_smul isClosedMap_smul
 #align is_closed_map_vadd isClosedMap_vadd
+-/
 
+#print IsClosed.smul /-
 @[to_additive]
 theorem IsClosed.smul {s : Set α} (hs : IsClosed s) (c : G) : IsClosed (c • s) :=
   isClosedMap_smul c s hs
 #align is_closed.smul IsClosed.smul
 #align is_closed.vadd IsClosed.vadd
+-/
 
+#print closure_smul /-
 @[to_additive]
 theorem closure_smul (c : G) (s : Set α) : closure (c • s) = c • closure s :=
   ((Homeomorph.smul c).image_closure s).symm
 #align closure_smul closure_smul
 #align closure_vadd closure_vadd
+-/
 
+#print Dense.smul /-
 @[to_additive]
 theorem Dense.smul (c : G) {s : Set α} (hs : Dense s) : Dense (c • s) := by
   rw [dense_iff_closure_eq] at hs ⊢ <;> rw [closure_smul, hs, smul_set_univ]
 #align dense.smul Dense.smul
 #align dense.vadd Dense.vadd
+-/
 
+#print interior_smul /-
 @[to_additive]
 theorem interior_smul (c : G) (s : Set α) : interior (c • s) = c • interior s :=
   ((Homeomorph.smul c).image_interior s).symm
 #align interior_smul interior_smul
 #align interior_vadd interior_vadd
+-/
 
 end Group
 
@@ -320,49 +346,67 @@ section GroupWithZero
 variable {G₀ : Type _} [TopologicalSpace α] [GroupWithZero G₀] [MulAction G₀ α]
   [ContinuousConstSMul G₀ α]
 
+#print tendsto_const_smul_iff₀ /-
 theorem tendsto_const_smul_iff₀ {f : β → α} {l : Filter β} {a : α} {c : G₀} (hc : c ≠ 0) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
   tendsto_const_smul_iff (Units.mk0 c hc)
 #align tendsto_const_smul_iff₀ tendsto_const_smul_iff₀
+-/
 
 variable [TopologicalSpace β] {f : β → α} {b : β} {c : G₀} {s : Set β}
 
+#print continuousWithinAt_const_smul_iff₀ /-
 theorem continuousWithinAt_const_smul_iff₀ (hc : c ≠ 0) :
     ContinuousWithinAt (fun x => c • f x) s b ↔ ContinuousWithinAt f s b :=
   tendsto_const_smul_iff (Units.mk0 c hc)
 #align continuous_within_at_const_smul_iff₀ continuousWithinAt_const_smul_iff₀
+-/
 
+#print continuousOn_const_smul_iff₀ /-
 theorem continuousOn_const_smul_iff₀ (hc : c ≠ 0) :
     ContinuousOn (fun x => c • f x) s ↔ ContinuousOn f s :=
   continuousOn_const_smul_iff (Units.mk0 c hc)
 #align continuous_on_const_smul_iff₀ continuousOn_const_smul_iff₀
+-/
 
+#print continuousAt_const_smul_iff₀ /-
 theorem continuousAt_const_smul_iff₀ (hc : c ≠ 0) :
     ContinuousAt (fun x => c • f x) b ↔ ContinuousAt f b :=
   continuousAt_const_smul_iff (Units.mk0 c hc)
 #align continuous_at_const_smul_iff₀ continuousAt_const_smul_iff₀
+-/
 
+#print continuous_const_smul_iff₀ /-
 theorem continuous_const_smul_iff₀ (hc : c ≠ 0) : (Continuous fun x => c • f x) ↔ Continuous f :=
   continuous_const_smul_iff (Units.mk0 c hc)
 #align continuous_const_smul_iff₀ continuous_const_smul_iff₀
+-/
 
+#print Homeomorph.smulOfNeZero /-
 /-- Scalar multiplication by a non-zero element of a group with zero acting on `α` is a
 homeomorphism from `α` onto itself. -/
 protected def Homeomorph.smulOfNeZero (c : G₀) (hc : c ≠ 0) : α ≃ₜ α :=
   Homeomorph.smul (Units.mk0 c hc)
 #align homeomorph.smul_of_ne_zero Homeomorph.smulOfNeZero
+-/
 
+#print isOpenMap_smul₀ /-
 theorem isOpenMap_smul₀ {c : G₀} (hc : c ≠ 0) : IsOpenMap fun x : α => c • x :=
   (Homeomorph.smulOfNeZero c hc).IsOpenMap
 #align is_open_map_smul₀ isOpenMap_smul₀
+-/
 
+#print IsOpen.smul₀ /-
 theorem IsOpen.smul₀ {c : G₀} {s : Set α} (hs : IsOpen s) (hc : c ≠ 0) : IsOpen (c • s) :=
   isOpenMap_smul₀ hc s hs
 #align is_open.smul₀ IsOpen.smul₀
+-/
 
+#print interior_smul₀ /-
 theorem interior_smul₀ {c : G₀} (hc : c ≠ 0) (s : Set α) : interior (c • s) = c • interior s :=
   ((Homeomorph.smulOfNeZero c hc).image_interior s).symm
 #align interior_smul₀ interior_smul₀
+-/
 
 #print closure_smul₀ /-
 theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpace E] [T1Space E]
@@ -376,6 +420,7 @@ theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpac
 #align closure_smul₀ closure_smul₀
 -/
 
+#print isClosedMap_smul_of_ne_zero /-
 /-- `smul` is a closed map in the second argument.
 
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
@@ -383,12 +428,16 @@ normed field) is `is_closed_map_smul_left` in `analysis.normed_space.finite_dime
 theorem isClosedMap_smul_of_ne_zero {c : G₀} (hc : c ≠ 0) : IsClosedMap fun x : α => c • x :=
   (Homeomorph.smulOfNeZero c hc).IsClosedMap
 #align is_closed_map_smul_of_ne_zero isClosedMap_smul_of_ne_zero
+-/
 
+#print IsClosed.smul_of_ne_zero /-
 theorem IsClosed.smul_of_ne_zero {c : G₀} {s : Set α} (hs : IsClosed s) (hc : c ≠ 0) :
     IsClosed (c • s) :=
   isClosedMap_smul_of_ne_zero hc s hs
 #align is_closed.smul_of_ne_zero IsClosed.smul_of_ne_zero
+-/
 
+#print isClosedMap_smul₀ /-
 /-- `smul` is a closed map in the second argument.
 
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
@@ -400,22 +449,29 @@ theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid
   · simp only [zero_smul]; exact isClosedMap_const
   · exact (Homeomorph.smulOfNeZero c hne).IsClosedMap
 #align is_closed_map_smul₀ isClosedMap_smul₀
+-/
 
+#print IsClosed.smul₀ /-
 theorem IsClosed.smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
     [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
     IsClosed (c • s) :=
   isClosedMap_smul₀ c s hs
 #align is_closed.smul₀ IsClosed.smul₀
+-/
 
+#print HasCompactMulSupport.comp_smul /-
 theorem HasCompactMulSupport.comp_smul {β : Type _} [One β] {f : α → β} (h : HasCompactMulSupport f)
     {c : G₀} (hc : c ≠ 0) : HasCompactMulSupport fun x => f (c • x) :=
   h.comp_homeomorph (Homeomorph.smulOfNeZero c hc)
 #align has_compact_mul_support.comp_smul HasCompactMulSupport.comp_smul
+-/
 
+#print HasCompactSupport.comp_smul /-
 theorem HasCompactSupport.comp_smul {β : Type _} [Zero β] {f : α → β} (h : HasCompactSupport f)
     {c : G₀} (hc : c ≠ 0) : HasCompactSupport fun x => f (c • x) :=
   h.comp_homeomorph (Homeomorph.smulOfNeZero c hc)
 #align has_compact_support.comp_smul HasCompactSupport.comp_smul
+-/
 
 attribute [to_additive HasCompactSupport.comp_smul] HasCompactMulSupport.comp_smul
 
@@ -425,46 +481,60 @@ namespace IsUnit
 
 variable [Monoid M] [TopologicalSpace α] [MulAction M α] [ContinuousConstSMul M α]
 
+#print IsUnit.tendsto_const_smul_iff /-
 theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} {c : M} (hc : IsUnit c) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
   let ⟨u, hu⟩ := hc
   hu ▸ tendsto_const_smul_iff u
 #align is_unit.tendsto_const_smul_iff IsUnit.tendsto_const_smul_iff
+-/
 
 variable [TopologicalSpace β] {f : β → α} {b : β} {c : M} {s : Set β}
 
+#print IsUnit.continuousWithinAt_const_smul_iff /-
 theorem continuousWithinAt_const_smul_iff (hc : IsUnit c) :
     ContinuousWithinAt (fun x => c • f x) s b ↔ ContinuousWithinAt f s b :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuousWithinAt_const_smul_iff u
 #align is_unit.continuous_within_at_const_smul_iff IsUnit.continuousWithinAt_const_smul_iff
+-/
 
+#print IsUnit.continuousOn_const_smul_iff /-
 theorem continuousOn_const_smul_iff (hc : IsUnit c) :
     ContinuousOn (fun x => c • f x) s ↔ ContinuousOn f s :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuousOn_const_smul_iff u
 #align is_unit.continuous_on_const_smul_iff IsUnit.continuousOn_const_smul_iff
+-/
 
+#print IsUnit.continuousAt_const_smul_iff /-
 theorem continuousAt_const_smul_iff (hc : IsUnit c) :
     ContinuousAt (fun x => c • f x) b ↔ ContinuousAt f b :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuousAt_const_smul_iff u
 #align is_unit.continuous_at_const_smul_iff IsUnit.continuousAt_const_smul_iff
+-/
 
+#print IsUnit.continuous_const_smul_iff /-
 theorem continuous_const_smul_iff (hc : IsUnit c) : (Continuous fun x => c • f x) ↔ Continuous f :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuous_const_smul_iff u
 #align is_unit.continuous_const_smul_iff IsUnit.continuous_const_smul_iff
+-/
 
+#print IsUnit.isOpenMap_smul /-
 theorem isOpenMap_smul (hc : IsUnit c) : IsOpenMap fun x : α => c • x :=
   let ⟨u, hu⟩ := hc
   hu ▸ isOpenMap_smul u
 #align is_unit.is_open_map_smul IsUnit.isOpenMap_smul
+-/
 
+#print IsUnit.isClosedMap_smul /-
 theorem isClosedMap_smul (hc : IsUnit c) : IsClosedMap fun x : α => c • x :=
   let ⟨u, hu⟩ := hc
   hu ▸ isClosedMap_smul u
 #align is_unit.is_closed_map_smul IsUnit.isClosedMap_smul
+-/
 
 end IsUnit
 
@@ -509,6 +579,7 @@ export ProperlyDiscontinuousSMul (finite_disjoint_inter_image)
 
 export ProperlyDiscontinuousVAdd (finite_disjoint_inter_image)
 
+#print isOpenMap_quotient_mk'_mul /-
 /-- The quotient map by a group action is open, i.e. the quotient by a group action is an open
   quotient. -/
 @[to_additive
@@ -521,6 +592,7 @@ theorem isOpenMap_quotient_mk'_mul [ContinuousConstSMul Γ T] :
   exact isOpen_iUnion fun γ => (Homeomorph.smul γ).IsOpenMap U hU
 #align is_open_map_quotient_mk_mul isOpenMap_quotient_mk'_mul
 #align is_open_map_quotient_mk_add isOpenMap_quotient_mk'_add
+-/
 
 #print t2Space_of_properlyDiscontinuousSMul_of_t2Space /-
 /-- The quotient by a discontinuous group action of a locally compact t2 space is t2. -/
@@ -580,6 +652,7 @@ section MulAction
 variable {G₀ : Type _} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSpace α]
   [ContinuousConstSMul G₀ α]
 
+#print set_smul_mem_nhds_smul /-
 /-- Scalar multiplication preserves neighborhoods. -/
 theorem set_smul_mem_nhds_smul {c : G₀} {s : Set α} {x : α} (hs : s ∈ 𝓝 x) (hc : c ≠ 0) :
     c • s ∈ 𝓝 (c • x : α) := by
@@ -587,7 +660,9 @@ theorem set_smul_mem_nhds_smul {c : G₀} {s : Set α} {x : α} (hs : s ∈ 𝓝
   obtain ⟨U, hs', hU, hU'⟩ := hs
   exact ⟨c • U, Set.smul_set_mono hs', hU.smul₀ hc, Set.smul_mem_smul_set hU'⟩
 #align set_smul_mem_nhds_smul set_smul_mem_nhds_smul
+-/
 
+#print set_smul_mem_nhds_smul_iff /-
 theorem set_smul_mem_nhds_smul_iff {c : G₀} {s : Set α} {x : α} (hc : c ≠ 0) :
     c • s ∈ 𝓝 (c • x : α) ↔ s ∈ 𝓝 x :=
   by
@@ -595,6 +670,7 @@ theorem set_smul_mem_nhds_smul_iff {c : G₀} {s : Set α} {x : α} (hc : c ≠
   rw [← inv_smul_smul₀ hc x, ← inv_smul_smul₀ hc s]
   exact set_smul_mem_nhds_smul h (inv_ne_zero hc)
 #align set_smul_mem_nhds_smul_iff set_smul_mem_nhds_smul_iff
+-/
 
 end MulAction
 
@@ -603,12 +679,14 @@ section DistribMulAction
 variable {G₀ : Type _} [GroupWithZero G₀] [AddMonoid α] [DistribMulAction G₀ α] [TopologicalSpace α]
   [ContinuousConstSMul G₀ α]
 
+#print set_smul_mem_nhds_zero_iff /-
 theorem set_smul_mem_nhds_zero_iff {s : Set α} {c : G₀} (hc : c ≠ 0) :
     c • s ∈ 𝓝 (0 : α) ↔ s ∈ 𝓝 (0 : α) :=
   by
   refine' Iff.trans _ (set_smul_mem_nhds_smul_iff hc)
   rw [smul_zero]
 #align set_smul_mem_nhds_zero_iff set_smul_mem_nhds_zero_iff
+-/
 
 end DistribMulAction
 
Diff
@@ -476,7 +476,7 @@ is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`,
 class ProperlyDiscontinuousSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] :
     Prop where
   finite_disjoint_inter_image :
-    ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (· • ·) γ '' K ∩ L ≠ ∅ }
+    ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite {γ : Γ | (· • ·) γ '' K ∩ L ≠ ∅}
 #align properly_discontinuous_smul ProperlyDiscontinuousSMul
 -/
 
@@ -488,7 +488,7 @@ is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`,
 class ProperlyDiscontinuousVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] :
     Prop where
   finite_disjoint_inter_image :
-    ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (· +ᵥ ·) γ '' K ∩ L ≠ ∅ }
+    ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite {γ : Γ | (· +ᵥ ·) γ '' K ∩ L ≠ ∅}
 #align properly_discontinuous_vadd ProperlyDiscontinuousVAdd
 -/
 
@@ -538,7 +538,7 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Sp
   have hx₀y₀ : x₀ ≠ y₀ := ne_of_apply_ne _ hxy
   have hγx₀y₀ : ∀ γ : Γ, γ • x₀ ≠ y₀ := not_exists.mp (mt Quotient.sound hxy.symm : _)
   obtain ⟨K₀, L₀, K₀_in, L₀_in, hK₀, hL₀, hK₀L₀⟩ := t2_separation_compact_nhds hx₀y₀
-  let bad_Γ_set := { γ : Γ | (· • ·) γ '' K₀ ∩ L₀ ≠ ∅ }
+  let bad_Γ_set := {γ : Γ | (· • ·) γ '' K₀ ∩ L₀ ≠ ∅}
   have bad_Γ_finite : bad_Γ_set.finite := finite_disjoint_inter_image hK₀ hL₀
   choose u v hu hv u_v_disjoint using fun γ => t2_separation_nhds (hγx₀y₀ γ)
   let U₀₀ := ⋂ γ ∈ bad_Γ_set, (· • ·) γ ⁻¹' u γ
Diff
@@ -303,7 +303,7 @@ theorem closure_smul (c : G) (s : Set α) : closure (c • s) = c • closure s
 
 @[to_additive]
 theorem Dense.smul (c : G) {s : Set α} (hs : Dense s) : Dense (c • s) := by
-  rw [dense_iff_closure_eq] at hs⊢ <;> rw [closure_smul, hs, smul_set_univ]
+  rw [dense_iff_closure_eq] at hs ⊢ <;> rw [closure_smul, hs, smul_set_univ]
 #align dense.smul Dense.smul
 #align dense.vadd Dense.vadd
 
@@ -474,7 +474,7 @@ is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`,
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
 -/
 class ProperlyDiscontinuousSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] :
-  Prop where
+    Prop where
   finite_disjoint_inter_image :
     ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (· • ·) γ '' K ∩ L ≠ ∅ }
 #align properly_discontinuous_smul ProperlyDiscontinuousSMul
@@ -486,7 +486,7 @@ is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`,
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
 -/
 class ProperlyDiscontinuousVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] :
-  Prop where
+    Prop where
   finite_disjoint_inter_image :
     ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (· +ᵥ ·) γ '' K ∩ L ≠ ∅ }
 #align properly_discontinuous_vadd ProperlyDiscontinuousVAdd
@@ -556,7 +556,7 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Sp
   by_cases H : γ ∈ bad_Γ_set
   · exact fun h => (u_v_disjoint γ).le_bot ⟨mem_Inter₂.mp x_in_U₀₀ γ H, mem_Inter₂.mp h.1 γ H⟩
   · rintro ⟨-, h'⟩
-    simp only [image_smul, Classical.not_not, mem_set_of_eq, Ne.def] at H
+    simp only [image_smul, Classical.not_not, mem_set_of_eq, Ne.def] at H 
     exact eq_empty_iff_forall_not_mem.mp H (γ • x) ⟨mem_image_of_mem _ x_in_K₀, h'⟩
 #align t2_space_of_properly_discontinuous_smul_of_t2_space t2Space_of_properlyDiscontinuousSMul_of_t2Space
 #align t2_space_of_properly_discontinuous_vadd_of_t2_space t2Space_of_properlyDiscontinuousVAdd_of_t2Space
@@ -583,7 +583,7 @@ variable {G₀ : Type _} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSp
 /-- Scalar multiplication preserves neighborhoods. -/
 theorem set_smul_mem_nhds_smul {c : G₀} {s : Set α} {x : α} (hs : s ∈ 𝓝 x) (hc : c ≠ 0) :
     c • s ∈ 𝓝 (c • x : α) := by
-  rw [mem_nhds_iff] at hs⊢
+  rw [mem_nhds_iff] at hs ⊢
   obtain ⟨U, hs', hU, hU'⟩ := hs
   exact ⟨c • U, Set.smul_set_mono hs', hU.smul₀ hc, Set.smul_mem_smul_set hU'⟩
 #align set_smul_mem_nhds_smul set_smul_mem_nhds_smul
Diff
@@ -46,7 +46,7 @@ Hausdorff, discrete group, properly discontinuous, quotient space
 -/
 
 
-open Topology Pointwise
+open scoped Topology Pointwise
 
 open Filter Set TopologicalSpace
 
Diff
@@ -172,12 +172,6 @@ instance {ι : Type _} {γ : ι → Type _} [∀ i, TopologicalSpace (γ i)] [
     [∀ i, ContinuousConstSMul M (γ i)] : ContinuousConstSMul M (∀ i, γ i) :=
   ⟨fun _ => continuous_pi fun i => (continuous_apply i).const_smul _⟩
 
-/- warning: is_compact.smul -> IsCompact.smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_5 : SMul.{u1, u2} α β] [_inst_6 : TopologicalSpace.{u2} β] [_inst_7 : ContinuousConstSMul.{u1, u2} α β _inst_6 _inst_5] (a : α) {s : Set.{u2} β}, (IsCompact.{u2} β _inst_6 s) -> (IsCompact.{u2} β _inst_6 (SMul.smul.{u1, u2} α (Set.{u2} β) (Set.smulSet.{u1, u2} α β _inst_5) a s))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_5 : SMul.{u2, u1} α β] [_inst_6 : TopologicalSpace.{u1} β] [_inst_7 : ContinuousConstSMul.{u2, u1} α β _inst_6 _inst_5] (a : α) {s : Set.{u1} β}, (IsCompact.{u1} β _inst_6 s) -> (IsCompact.{u1} β _inst_6 (HSMul.hSMul.{u2, u1, u1} α (Set.{u1} β) (Set.{u1} β) (instHSMul.{u2, u1} α (Set.{u1} β) (Set.smulSet.{u2, u1} α β _inst_5)) a s))
-Case conversion may be inaccurate. Consider using '#align is_compact.smul IsCompact.smulₓ'. -/
 @[to_additive]
 theorem IsCompact.smul {α β} [SMul α β] [TopologicalSpace β] [ContinuousConstSMul α β] (a : α)
     {s : Set β} (hs : IsCompact s) : IsCompact (a • s) :=
@@ -224,12 +218,6 @@ section Group
 
 variable {G : Type _} [TopologicalSpace α] [Group G] [MulAction G α] [ContinuousConstSMul G α]
 
-/- warning: tendsto_const_smul_iff -> tendsto_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u3} G] [_inst_3 : MulAction.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G α _inst_1 (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3)] {f : β -> α} {l : Filter.{u2} β} {a : α} (c : G), Iff (Filter.Tendsto.{u2, u1} β α (fun (x : β) => SMul.smul.{u3, u1} G α (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3) c (f x)) l (nhds.{u1} α _inst_1 (SMul.smul.{u3, u1} G α (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3) c a))) (Filter.Tendsto.{u2, u1} β α f l (nhds.{u1} α _inst_1 a))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] {f : β -> α} {l : Filter.{u3} β} {a : α} (c : G), Iff (Filter.Tendsto.{u3, u2} β α (fun (x : β) => HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c (f x)) l (nhds.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c a))) (Filter.Tendsto.{u3, u2} β α f l (nhds.{u2} α _inst_1 a))
-Case conversion may be inaccurate. Consider using '#align tendsto_const_smul_iff tendsto_const_smul_iffₓ'. -/
 @[to_additive]
 theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} (c : G) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
@@ -239,12 +227,6 @@ theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} (c : G)
 
 variable [TopologicalSpace β] {f : β → α} {b : β} {s : Set β}
 
-/- warning: continuous_within_at_const_smul_iff -> continuousWithinAt_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u3} G] [_inst_3 : MulAction.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G α _inst_1 (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} {s : Set.{u2} β} (c : G), Iff (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G α (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3) c (f x)) s b) (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_1 f s b)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} {b : β} {s : Set.{u3} β} (c : G), Iff (ContinuousWithinAt.{u3, u2} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c (f x)) s b) (ContinuousWithinAt.{u3, u2} β α _inst_5 _inst_1 f s b)
-Case conversion may be inaccurate. Consider using '#align continuous_within_at_const_smul_iff continuousWithinAt_const_smul_iffₓ'. -/
 @[to_additive]
 theorem continuousWithinAt_const_smul_iff (c : G) :
     ContinuousWithinAt (fun x => c • f x) s b ↔ ContinuousWithinAt f s b :=
@@ -252,12 +234,6 @@ theorem continuousWithinAt_const_smul_iff (c : G) :
 #align continuous_within_at_const_smul_iff continuousWithinAt_const_smul_iff
 #align continuous_within_at_const_vadd_iff continuousWithinAt_const_vadd_iff
 
-/- warning: continuous_on_const_smul_iff -> continuousOn_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u3} G] [_inst_3 : MulAction.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G α _inst_1 (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {s : Set.{u2} β} (c : G), Iff (ContinuousOn.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G α (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3) c (f x)) s) (ContinuousOn.{u2, u1} β α _inst_5 _inst_1 f s)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} {s : Set.{u3} β} (c : G), Iff (ContinuousOn.{u3, u2} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c (f x)) s) (ContinuousOn.{u3, u2} β α _inst_5 _inst_1 f s)
-Case conversion may be inaccurate. Consider using '#align continuous_on_const_smul_iff continuousOn_const_smul_iffₓ'. -/
 @[to_additive]
 theorem continuousOn_const_smul_iff (c : G) :
     ContinuousOn (fun x => c • f x) s ↔ ContinuousOn f s :=
@@ -265,12 +241,6 @@ theorem continuousOn_const_smul_iff (c : G) :
 #align continuous_on_const_smul_iff continuousOn_const_smul_iff
 #align continuous_on_const_vadd_iff continuousOn_const_vadd_iff
 
-/- warning: continuous_at_const_smul_iff -> continuousAt_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u3} G] [_inst_3 : MulAction.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G α _inst_1 (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} (c : G), Iff (ContinuousAt.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G α (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3) c (f x)) b) (ContinuousAt.{u2, u1} β α _inst_5 _inst_1 f b)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} {b : β} (c : G), Iff (ContinuousAt.{u3, u2} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c (f x)) b) (ContinuousAt.{u3, u2} β α _inst_5 _inst_1 f b)
-Case conversion may be inaccurate. Consider using '#align continuous_at_const_smul_iff continuousAt_const_smul_iffₓ'. -/
 @[to_additive]
 theorem continuousAt_const_smul_iff (c : G) :
     ContinuousAt (fun x => c • f x) b ↔ ContinuousAt f b :=
@@ -278,12 +248,6 @@ theorem continuousAt_const_smul_iff (c : G) :
 #align continuous_at_const_smul_iff continuousAt_const_smul_iff
 #align continuous_at_const_vadd_iff continuousAt_const_vadd_iff
 
-/- warning: continuous_const_smul_iff -> continuous_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u3} G] [_inst_3 : MulAction.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G α _inst_1 (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} (c : G), Iff (Continuous.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G α (MulAction.toHasSmul.{u3, u1} G α (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_2)) _inst_3) c (f x))) (Continuous.{u2, u1} β α _inst_5 _inst_1 f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u3}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} (c : G), Iff (Continuous.{u3, u2} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c (f x))) (Continuous.{u3, u2} β α _inst_5 _inst_1 f)
-Case conversion may be inaccurate. Consider using '#align continuous_const_smul_iff continuous_const_smul_iffₓ'. -/
 @[to_additive]
 theorem continuous_const_smul_iff (c : G) : (Continuous fun x => c • f x) ↔ Continuous f := by
   simp only [continuous_iff_continuousAt, continuousAt_const_smul_iff]
@@ -307,84 +271,42 @@ def Homeomorph.smul (γ : G) : α ≃ₜ α
   `T` is a homeomorphism from `T` to itself. -/
 add_decl_doc Homeomorph.vadd
 
-/- warning: is_open_map_smul -> isOpenMap_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} G] [_inst_3 : MulAction.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G α _inst_1 (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)] (c : G), IsOpenMap.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => SMul.smul.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3) c x)
-but is expected to have type
-  forall {α : Type.{u2}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G), IsOpenMap.{u2, u2} α α _inst_1 _inst_1 (fun (x : α) => HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c x)
-Case conversion may be inaccurate. Consider using '#align is_open_map_smul isOpenMap_smulₓ'. -/
 @[to_additive]
 theorem isOpenMap_smul (c : G) : IsOpenMap fun x : α => c • x :=
   (Homeomorph.smul c).IsOpenMap
 #align is_open_map_smul isOpenMap_smul
 #align is_open_map_vadd isOpenMap_vadd
 
-/- warning: is_open.smul -> IsOpen.smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} G] [_inst_3 : MulAction.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G α _inst_1 (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)] {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (forall (c : G), IsOpen.{u1} α _inst_1 (SMul.smul.{u2, u1} G (Set.{u1} α) (Set.smulSet.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)) c s))
-but is expected to have type
-  forall {α : Type.{u2}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] {s : Set.{u2} α}, (IsOpen.{u2} α _inst_1 s) -> (forall (c : G), IsOpen.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G (Set.{u2} α) (Set.smulSet.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3))) c s))
-Case conversion may be inaccurate. Consider using '#align is_open.smul IsOpen.smulₓ'. -/
 @[to_additive]
 theorem IsOpen.smul {s : Set α} (hs : IsOpen s) (c : G) : IsOpen (c • s) :=
   isOpenMap_smul c s hs
 #align is_open.smul IsOpen.smul
 #align is_open.vadd IsOpen.vadd
 
-/- warning: is_closed_map_smul -> isClosedMap_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} G] [_inst_3 : MulAction.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G α _inst_1 (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)] (c : G), IsClosedMap.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => SMul.smul.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3) c x)
-but is expected to have type
-  forall {α : Type.{u2}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G), IsClosedMap.{u2, u2} α α _inst_1 _inst_1 (fun (x : α) => HSMul.hSMul.{u1, u2, u2} G α α (instHSMul.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) c x)
-Case conversion may be inaccurate. Consider using '#align is_closed_map_smul isClosedMap_smulₓ'. -/
 @[to_additive]
 theorem isClosedMap_smul (c : G) : IsClosedMap fun x : α => c • x :=
   (Homeomorph.smul c).IsClosedMap
 #align is_closed_map_smul isClosedMap_smul
 #align is_closed_map_vadd isClosedMap_vadd
 
-/- warning: is_closed.smul -> IsClosed.smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} G] [_inst_3 : MulAction.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G α _inst_1 (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)] {s : Set.{u1} α}, (IsClosed.{u1} α _inst_1 s) -> (forall (c : G), IsClosed.{u1} α _inst_1 (SMul.smul.{u2, u1} G (Set.{u1} α) (Set.smulSet.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)) c s))
-but is expected to have type
-  forall {α : Type.{u2}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] {s : Set.{u2} α}, (IsClosed.{u2} α _inst_1 s) -> (forall (c : G), IsClosed.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G (Set.{u2} α) (Set.smulSet.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3))) c s))
-Case conversion may be inaccurate. Consider using '#align is_closed.smul IsClosed.smulₓ'. -/
 @[to_additive]
 theorem IsClosed.smul {s : Set α} (hs : IsClosed s) (c : G) : IsClosed (c • s) :=
   isClosedMap_smul c s hs
 #align is_closed.smul IsClosed.smul
 #align is_closed.vadd IsClosed.vadd
 
-/- warning: closure_smul -> closure_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} G] [_inst_3 : MulAction.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G α _inst_1 (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)] (c : G) (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (closure.{u1} α _inst_1 (SMul.smul.{u2, u1} G (Set.{u1} α) (Set.smulSet.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)) c s)) (SMul.smul.{u2, u1} G (Set.{u1} α) (Set.smulSet.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)) c (closure.{u1} α _inst_1 s))
-but is expected to have type
-  forall {α : Type.{u2}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (s : Set.{u2} α), Eq.{succ u2} (Set.{u2} α) (closure.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G (Set.{u2} α) (Set.smulSet.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3))) c s)) (HSMul.hSMul.{u1, u2, u2} G (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G (Set.{u2} α) (Set.smulSet.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3))) c (closure.{u2} α _inst_1 s))
-Case conversion may be inaccurate. Consider using '#align closure_smul closure_smulₓ'. -/
 @[to_additive]
 theorem closure_smul (c : G) (s : Set α) : closure (c • s) = c • closure s :=
   ((Homeomorph.smul c).image_closure s).symm
 #align closure_smul closure_smul
 #align closure_vadd closure_vadd
 
-/- warning: dense.smul -> Dense.smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} G] [_inst_3 : MulAction.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G α _inst_1 (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)] (c : G) {s : Set.{u1} α}, (Dense.{u1} α _inst_1 s) -> (Dense.{u1} α _inst_1 (SMul.smul.{u2, u1} G (Set.{u1} α) (Set.smulSet.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)) c s))
-but is expected to have type
-  forall {α : Type.{u2}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) {s : Set.{u2} α}, (Dense.{u2} α _inst_1 s) -> (Dense.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G (Set.{u2} α) (Set.smulSet.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3))) c s))
-Case conversion may be inaccurate. Consider using '#align dense.smul Dense.smulₓ'. -/
 @[to_additive]
 theorem Dense.smul (c : G) {s : Set α} (hs : Dense s) : Dense (c • s) := by
   rw [dense_iff_closure_eq] at hs⊢ <;> rw [closure_smul, hs, smul_set_univ]
 #align dense.smul Dense.smul
 #align dense.vadd Dense.vadd
 
-/- warning: interior_smul -> interior_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : Group.{u2} G] [_inst_3 : MulAction.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G α _inst_1 (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)] (c : G) (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (interior.{u1} α _inst_1 (SMul.smul.{u2, u1} G (Set.{u1} α) (Set.smulSet.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)) c s)) (SMul.smul.{u2, u1} G (Set.{u1} α) (Set.smulSet.{u2, u1} G α (MulAction.toHasSmul.{u2, u1} G α (DivInvMonoid.toMonoid.{u2} G (Group.toDivInvMonoid.{u2} G _inst_2)) _inst_3)) c (interior.{u1} α _inst_1 s))
-but is expected to have type
-  forall {α : Type.{u2}} {G : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G α _inst_1 (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (s : Set.{u2} α), Eq.{succ u2} (Set.{u2} α) (interior.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G (Set.{u2} α) (Set.smulSet.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3))) c s)) (HSMul.hSMul.{u1, u2, u2} G (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G (Set.{u2} α) (Set.smulSet.{u1, u2} G α (MulAction.toSMul.{u1, u2} G α (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3))) c (interior.{u2} α _inst_1 s))
-Case conversion may be inaccurate. Consider using '#align interior_smul interior_smulₓ'. -/
 @[to_additive]
 theorem interior_smul (c : G) (s : Set α) : interior (c • s) = c • interior s :=
   ((Homeomorph.smul c).image_interior s).symm
@@ -398,12 +320,6 @@ section GroupWithZero
 variable {G₀ : Type _} [TopologicalSpace α] [GroupWithZero G₀] [MulAction G₀ α]
   [ContinuousConstSMul G₀ α]
 
-/- warning: tendsto_const_smul_iff₀ -> tendsto_const_smul_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] {f : β -> α} {l : Filter.{u2} β} {a : α} {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)))))))) -> (Iff (Filter.Tendsto.{u2, u1} β α (fun (x : β) => SMul.smul.{u3, u1} G₀ α (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3) c (f x)) l (nhds.{u1} α _inst_1 (SMul.smul.{u3, u1} G₀ α (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3) c a))) (Filter.Tendsto.{u2, u1} β α f l (nhds.{u1} α _inst_1 a)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {f : β -> α} {l : Filter.{u3} β} {a : α} {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (Zero.toOfNat0.{u2} G₀ (MonoidWithZero.toZero.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))))) -> (Iff (Filter.Tendsto.{u3, u1} β α (fun (x : β) => HSMul.hSMul.{u2, u1, u1} G₀ α α (instHSMul.{u2, u1} G₀ α (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c (f x)) l (nhds.{u1} α _inst_1 (HSMul.hSMul.{u2, u1, u1} G₀ α α (instHSMul.{u2, u1} G₀ α (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c a))) (Filter.Tendsto.{u3, u1} β α f l (nhds.{u1} α _inst_1 a)))
-Case conversion may be inaccurate. Consider using '#align tendsto_const_smul_iff₀ tendsto_const_smul_iff₀ₓ'. -/
 theorem tendsto_const_smul_iff₀ {f : β → α} {l : Filter β} {a : α} {c : G₀} (hc : c ≠ 0) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
   tendsto_const_smul_iff (Units.mk0 c hc)
@@ -411,87 +327,39 @@ theorem tendsto_const_smul_iff₀ {f : β → α} {l : Filter β} {a : α} {c :
 
 variable [TopologicalSpace β] {f : β → α} {b : β} {c : G₀} {s : Set β}
 
-/- warning: continuous_within_at_const_smul_iff₀ -> continuousWithinAt_const_smul_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} {c : G₀} {s : Set.{u2} β}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)))))))) -> (Iff (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G₀ α (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3) c (f x)) s b) (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_1 f s b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} {c : G₀} {s : Set.{u2} β}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))))) -> (Iff (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} G₀ α α (instHSMul.{u3, u1} G₀ α (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)) c (f x)) s b) (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_1 f s b))
-Case conversion may be inaccurate. Consider using '#align continuous_within_at_const_smul_iff₀ continuousWithinAt_const_smul_iff₀ₓ'. -/
 theorem continuousWithinAt_const_smul_iff₀ (hc : c ≠ 0) :
     ContinuousWithinAt (fun x => c • f x) s b ↔ ContinuousWithinAt f s b :=
   tendsto_const_smul_iff (Units.mk0 c hc)
 #align continuous_within_at_const_smul_iff₀ continuousWithinAt_const_smul_iff₀
 
-/- warning: continuous_on_const_smul_iff₀ -> continuousOn_const_smul_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {c : G₀} {s : Set.{u2} β}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)))))))) -> (Iff (ContinuousOn.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G₀ α (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3) c (f x)) s) (ContinuousOn.{u2, u1} β α _inst_5 _inst_1 f s))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {c : G₀} {s : Set.{u2} β}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))))) -> (Iff (ContinuousOn.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} G₀ α α (instHSMul.{u3, u1} G₀ α (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)) c (f x)) s) (ContinuousOn.{u2, u1} β α _inst_5 _inst_1 f s))
-Case conversion may be inaccurate. Consider using '#align continuous_on_const_smul_iff₀ continuousOn_const_smul_iff₀ₓ'. -/
 theorem continuousOn_const_smul_iff₀ (hc : c ≠ 0) :
     ContinuousOn (fun x => c • f x) s ↔ ContinuousOn f s :=
   continuousOn_const_smul_iff (Units.mk0 c hc)
 #align continuous_on_const_smul_iff₀ continuousOn_const_smul_iff₀
 
-/- warning: continuous_at_const_smul_iff₀ -> continuousAt_const_smul_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)))))))) -> (Iff (ContinuousAt.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G₀ α (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3) c (f x)) b) (ContinuousAt.{u2, u1} β α _inst_5 _inst_1 f b))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))))) -> (Iff (ContinuousAt.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} G₀ α α (instHSMul.{u3, u1} G₀ α (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)) c (f x)) b) (ContinuousAt.{u2, u1} β α _inst_5 _inst_1 f b))
-Case conversion may be inaccurate. Consider using '#align continuous_at_const_smul_iff₀ continuousAt_const_smul_iff₀ₓ'. -/
 theorem continuousAt_const_smul_iff₀ (hc : c ≠ 0) :
     ContinuousAt (fun x => c • f x) b ↔ ContinuousAt f b :=
   continuousAt_const_smul_iff (Units.mk0 c hc)
 #align continuous_at_const_smul_iff₀ continuousAt_const_smul_iff₀
 
-/- warning: continuous_const_smul_iff₀ -> continuous_const_smul_iff₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (OfNat.mk.{u3} G₀ 0 (Zero.zero.{u3} G₀ (MulZeroClass.toHasZero.{u3} G₀ (MulZeroOneClass.toMulZeroClass.{u3} G₀ (MonoidWithZero.toMulZeroOneClass.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)))))))) -> (Iff (Continuous.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => SMul.smul.{u3, u1} G₀ α (MulAction.toHasSmul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3) c (f x))) (Continuous.{u2, u1} β α _inst_5 _inst_1 f))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {G₀ : Type.{u3}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u3} G₀] [_inst_3 : MulAction.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u3, u1} G₀ α _inst_1 (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {c : G₀}, (Ne.{succ u3} G₀ c (OfNat.ofNat.{u3} G₀ 0 (Zero.toOfNat0.{u3} G₀ (MonoidWithZero.toZero.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2))))) -> (Iff (Continuous.{u2, u1} β α _inst_5 _inst_1 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} G₀ α α (instHSMul.{u3, u1} G₀ α (MulAction.toSMul.{u3, u1} G₀ α (MonoidWithZero.toMonoid.{u3} G₀ (GroupWithZero.toMonoidWithZero.{u3} G₀ _inst_2)) _inst_3)) c (f x))) (Continuous.{u2, u1} β α _inst_5 _inst_1 f))
-Case conversion may be inaccurate. Consider using '#align continuous_const_smul_iff₀ continuous_const_smul_iff₀ₓ'. -/
 theorem continuous_const_smul_iff₀ (hc : c ≠ 0) : (Continuous fun x => c • f x) ↔ Continuous f :=
   continuous_const_smul_iff (Units.mk0 c hc)
 #align continuous_const_smul_iff₀ continuous_const_smul_iff₀
 
-/- warning: homeomorph.smul_of_ne_zero -> Homeomorph.smulOfNeZero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] (c : G₀), (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (Homeomorph.{u1, u1} α α _inst_1 _inst_1)
-but is expected to have type
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] (c : G₀), (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (Zero.toOfNat0.{u2} G₀ (MonoidWithZero.toZero.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))))) -> (Homeomorph.{u1, u1} α α _inst_1 _inst_1)
-Case conversion may be inaccurate. Consider using '#align homeomorph.smul_of_ne_zero Homeomorph.smulOfNeZeroₓ'. -/
 /-- Scalar multiplication by a non-zero element of a group with zero acting on `α` is a
 homeomorphism from `α` onto itself. -/
 protected def Homeomorph.smulOfNeZero (c : G₀) (hc : c ≠ 0) : α ≃ₜ α :=
   Homeomorph.smul (Units.mk0 c hc)
 #align homeomorph.smul_of_ne_zero Homeomorph.smulOfNeZero
 
-/- warning: is_open_map_smul₀ -> isOpenMap_smul₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (IsOpenMap.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => SMul.smul.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3) c x))
-but is expected to have type
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (Zero.toOfNat0.{u2} G₀ (MonoidWithZero.toZero.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))))) -> (IsOpenMap.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => HSMul.hSMul.{u2, u1, u1} G₀ α α (instHSMul.{u2, u1} G₀ α (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c x))
-Case conversion may be inaccurate. Consider using '#align is_open_map_smul₀ isOpenMap_smul₀ₓ'. -/
 theorem isOpenMap_smul₀ {c : G₀} (hc : c ≠ 0) : IsOpenMap fun x : α => c • x :=
   (Homeomorph.smulOfNeZero c hc).IsOpenMap
 #align is_open_map_smul₀ isOpenMap_smul₀
 
-/- warning: is_open.smul₀ -> IsOpen.smul₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀} {s : Set.{u1} α}, (IsOpen.{u1} α _inst_1 s) -> (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (IsOpen.{u1} α _inst_1 (SMul.smul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c s))
-but is expected to have type
-  forall {α : Type.{u2}} {G₀ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : GroupWithZero.{u1} G₀] [_inst_3 : MulAction.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G₀ α _inst_1 (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3)] {c : G₀} {s : Set.{u2} α}, (IsOpen.{u2} α _inst_1 s) -> (Ne.{succ u1} G₀ c (OfNat.ofNat.{u1} G₀ 0 (Zero.toOfNat0.{u1} G₀ (MonoidWithZero.toZero.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))))) -> (IsOpen.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G₀ (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G₀ (Set.{u2} α) (Set.smulSet.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3))) c s))
-Case conversion may be inaccurate. Consider using '#align is_open.smul₀ IsOpen.smul₀ₓ'. -/
 theorem IsOpen.smul₀ {c : G₀} {s : Set α} (hs : IsOpen s) (hc : c ≠ 0) : IsOpen (c • s) :=
   isOpenMap_smul₀ hc s hs
 #align is_open.smul₀ IsOpen.smul₀
 
-/- warning: interior_smul₀ -> interior_smul₀ is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (interior.{u1} α _inst_1 (SMul.smul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c s)) (SMul.smul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c (interior.{u1} α _inst_1 s)))
-but is expected to have type
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (Zero.toOfNat0.{u2} G₀ (MonoidWithZero.toZero.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))))) -> (forall (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (interior.{u1} α _inst_1 (HSMul.hSMul.{u2, u1, u1} G₀ (Set.{u1} α) (Set.{u1} α) (instHSMul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3))) c s)) (HSMul.hSMul.{u2, u1, u1} G₀ (Set.{u1} α) (Set.{u1} α) (instHSMul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3))) c (interior.{u1} α _inst_1 s)))
-Case conversion may be inaccurate. Consider using '#align interior_smul₀ interior_smul₀ₓ'. -/
 theorem interior_smul₀ {c : G₀} (hc : c ≠ 0) (s : Set α) : interior (c • s) = c • interior s :=
   ((Homeomorph.smulOfNeZero c hc).image_interior s).symm
 #align interior_smul₀ interior_smul₀
@@ -508,12 +376,6 @@ theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpac
 #align closure_smul₀ closure_smul₀
 -/
 
-/- warning: is_closed_map_smul_of_ne_zero -> isClosedMap_smul_of_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (IsClosedMap.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => SMul.smul.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3) c x))
-but is expected to have type
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (Zero.toOfNat0.{u2} G₀ (MonoidWithZero.toZero.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))))) -> (IsClosedMap.{u1, u1} α α _inst_1 _inst_1 (fun (x : α) => HSMul.hSMul.{u2, u1, u1} G₀ α α (instHSMul.{u2, u1} G₀ α (MulAction.toSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c x))
-Case conversion may be inaccurate. Consider using '#align is_closed_map_smul_of_ne_zero isClosedMap_smul_of_ne_zeroₓ'. -/
 /-- `smul` is a closed map in the second argument.
 
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
@@ -522,23 +384,11 @@ theorem isClosedMap_smul_of_ne_zero {c : G₀} (hc : c ≠ 0) : IsClosedMap fun
   (Homeomorph.smulOfNeZero c hc).IsClosedMap
 #align is_closed_map_smul_of_ne_zero isClosedMap_smul_of_ne_zero
 
-/- warning: is_closed.smul_of_ne_zero -> IsClosed.smul_of_ne_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {c : G₀} {s : Set.{u1} α}, (IsClosed.{u1} α _inst_1 s) -> (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (IsClosed.{u1} α _inst_1 (SMul.smul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)) c s))
-but is expected to have type
-  forall {α : Type.{u2}} {G₀ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : GroupWithZero.{u1} G₀] [_inst_3 : MulAction.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G₀ α _inst_1 (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3)] {c : G₀} {s : Set.{u2} α}, (IsClosed.{u2} α _inst_1 s) -> (Ne.{succ u1} G₀ c (OfNat.ofNat.{u1} G₀ 0 (Zero.toOfNat0.{u1} G₀ (MonoidWithZero.toZero.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))))) -> (IsClosed.{u2} α _inst_1 (HSMul.hSMul.{u1, u2, u2} G₀ (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G₀ (Set.{u2} α) (Set.smulSet.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3))) c s))
-Case conversion may be inaccurate. Consider using '#align is_closed.smul_of_ne_zero IsClosed.smul_of_ne_zeroₓ'. -/
 theorem IsClosed.smul_of_ne_zero {c : G₀} {s : Set α} (hs : IsClosed s) (hc : c ≠ 0) :
     IsClosed (c • s) :=
   isClosedMap_smul_of_ne_zero hc s hs
 #align is_closed.smul_of_ne_zero IsClosed.smul_of_ne_zero
 
-/- warning: is_closed_map_smul₀ -> isClosedMap_smul₀ is a dubious translation:
-lean 3 declaration is
-  forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_6 : DivisionRing.{u1} 𝕜] [_inst_7 : AddCommMonoid.{u2} M] [_inst_8 : TopologicalSpace.{u2} M] [_inst_9 : T1Space.{u2} M _inst_8] [_inst_10 : Module.{u1, u2} 𝕜 M (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)) _inst_7] [_inst_11 : ContinuousConstSMul.{u1, u2} 𝕜 M _inst_8 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (Module.toMulActionWithZero.{u1, u2} 𝕜 M (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)) _inst_7 _inst_10))))] (c : 𝕜), IsClosedMap.{u2, u2} M M _inst_8 _inst_8 (fun (x : M) => SMul.smul.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (Module.toMulActionWithZero.{u1, u2} 𝕜 M (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)) _inst_7 _inst_10)))) c x)
-but is expected to have type
-  forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_6 : DivisionRing.{u2} 𝕜] [_inst_7 : AddCommMonoid.{u1} M] [_inst_8 : TopologicalSpace.{u1} M] [_inst_9 : T1Space.{u1} M _inst_8] [_inst_10 : Module.{u2, u1} 𝕜 M (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)) _inst_7] [_inst_11 : ContinuousConstSMul.{u2, u1} 𝕜 M _inst_8 (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (Module.toMulActionWithZero.{u2, u1} 𝕜 M (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)) _inst_7 _inst_10))))] (c : 𝕜), IsClosedMap.{u1, u1} M M _inst_8 _inst_8 (fun (x : M) => HSMul.hSMul.{u2, u1, u1} 𝕜 M M (instHSMul.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (Module.toMulActionWithZero.{u2, u1} 𝕜 M (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)) _inst_7 _inst_10))))) c x)
-Case conversion may be inaccurate. Consider using '#align is_closed_map_smul₀ isClosedMap_smul₀ₓ'. -/
 /-- `smul` is a closed map in the second argument.
 
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
@@ -551,35 +401,17 @@ theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid
   · exact (Homeomorph.smulOfNeZero c hne).IsClosedMap
 #align is_closed_map_smul₀ isClosedMap_smul₀
 
-/- warning: is_closed.smul₀ -> IsClosed.smul₀ is a dubious translation:
-lean 3 declaration is
-  forall {𝕜 : Type.{u1}} {M : Type.{u2}} [_inst_6 : DivisionRing.{u1} 𝕜] [_inst_7 : AddCommMonoid.{u2} M] [_inst_8 : TopologicalSpace.{u2} M] [_inst_9 : T1Space.{u2} M _inst_8] [_inst_10 : Module.{u1, u2} 𝕜 M (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)) _inst_7] [_inst_11 : ContinuousConstSMul.{u1, u2} 𝕜 M _inst_8 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (Module.toMulActionWithZero.{u1, u2} 𝕜 M (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)) _inst_7 _inst_10))))] (c : 𝕜) {s : Set.{u2} M}, (IsClosed.{u2} M _inst_8 s) -> (IsClosed.{u2} M _inst_8 (SMul.smul.{u1, u2} 𝕜 (Set.{u2} M) (Set.smulSet.{u1, u2} 𝕜 M (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 M (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 M (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (Module.toMulActionWithZero.{u1, u2} 𝕜 M (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 _inst_6)) _inst_7 _inst_10))))) c s))
-but is expected to have type
-  forall {𝕜 : Type.{u2}} {M : Type.{u1}} [_inst_6 : DivisionRing.{u2} 𝕜] [_inst_7 : AddCommMonoid.{u1} M] [_inst_8 : TopologicalSpace.{u1} M] [_inst_9 : T1Space.{u1} M _inst_8] [_inst_10 : Module.{u2, u1} 𝕜 M (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)) _inst_7] [_inst_11 : ContinuousConstSMul.{u2, u1} 𝕜 M _inst_8 (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (Module.toMulActionWithZero.{u2, u1} 𝕜 M (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)) _inst_7 _inst_10))))] (c : 𝕜) {s : Set.{u1} M}, (IsClosed.{u1} M _inst_8 s) -> (IsClosed.{u1} M _inst_8 (HSMul.hSMul.{u2, u1, u1} 𝕜 (Set.{u1} M) (Set.{u1} M) (instHSMul.{u2, u1} 𝕜 (Set.{u1} M) (Set.smulSet.{u2, u1} 𝕜 M (SMulZeroClass.toSMul.{u2, u1} 𝕜 M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 M (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 M (Semiring.toMonoidWithZero.{u2} 𝕜 (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (Module.toMulActionWithZero.{u2, u1} 𝕜 M (DivisionSemiring.toSemiring.{u2} 𝕜 (DivisionRing.toDivisionSemiring.{u2} 𝕜 _inst_6)) _inst_7 _inst_10)))))) c s))
-Case conversion may be inaccurate. Consider using '#align is_closed.smul₀ IsClosed.smul₀ₓ'. -/
 theorem IsClosed.smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
     [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
     IsClosed (c • s) :=
   isClosedMap_smul₀ c s hs
 #align is_closed.smul₀ IsClosed.smul₀
 
-/- warning: has_compact_mul_support.comp_smul -> HasCompactMulSupport.comp_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {β : Type.{u3}} [_inst_6 : One.{u3} β] {f : α -> β}, (HasCompactMulSupport.{u1, u3} α β _inst_1 _inst_6 f) -> (forall {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (HasCompactMulSupport.{u1, u3} α β _inst_1 _inst_6 (fun (x : α) => f (SMul.smul.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3) c x))))
-but is expected to have type
-  forall {α : Type.{u2}} {G₀ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : GroupWithZero.{u1} G₀] [_inst_3 : MulAction.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G₀ α _inst_1 (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3)] {β : Type.{u3}} [_inst_6 : One.{u3} β] {f : α -> β}, (HasCompactMulSupport.{u2, u3} α β _inst_1 _inst_6 f) -> (forall {c : G₀}, (Ne.{succ u1} G₀ c (OfNat.ofNat.{u1} G₀ 0 (Zero.toOfNat0.{u1} G₀ (MonoidWithZero.toZero.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))))) -> (HasCompactMulSupport.{u2, u3} α β _inst_1 _inst_6 (fun (x : α) => f (HSMul.hSMul.{u1, u2, u2} G₀ α α (instHSMul.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3)) c x))))
-Case conversion may be inaccurate. Consider using '#align has_compact_mul_support.comp_smul HasCompactMulSupport.comp_smulₓ'. -/
 theorem HasCompactMulSupport.comp_smul {β : Type _} [One β] {f : α → β} (h : HasCompactMulSupport f)
     {c : G₀} (hc : c ≠ 0) : HasCompactMulSupport fun x => f (c • x) :=
   h.comp_homeomorph (Homeomorph.smulOfNeZero c hc)
 #align has_compact_mul_support.comp_smul HasCompactMulSupport.comp_smul
 
-/- warning: has_compact_support.comp_smul -> HasCompactSupport.comp_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : GroupWithZero.{u2} G₀] [_inst_3 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u2, u1} G₀ α _inst_1 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3)] {β : Type.{u3}} [_inst_6 : Zero.{u3} β] {f : α -> β}, (HasCompactSupport.{u1, u3} α β _inst_1 _inst_6 f) -> (forall {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)))))))) -> (HasCompactSupport.{u1, u3} α β _inst_1 _inst_6 (fun (x : α) => f (SMul.smul.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_2)) _inst_3) c x))))
-but is expected to have type
-  forall {α : Type.{u2}} {G₀ : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : GroupWithZero.{u1} G₀] [_inst_3 : MulAction.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))] [_inst_4 : ContinuousConstSMul.{u1, u2} G₀ α _inst_1 (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3)] {β : Type.{u3}} [_inst_6 : Zero.{u3} β] {f : α -> β}, (HasCompactSupport.{u2, u3} α β _inst_1 _inst_6 f) -> (forall {c : G₀}, (Ne.{succ u1} G₀ c (OfNat.ofNat.{u1} G₀ 0 (Zero.toOfNat0.{u1} G₀ (MonoidWithZero.toZero.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2))))) -> (HasCompactSupport.{u2, u3} α β _inst_1 _inst_6 (fun (x : α) => f (HSMul.hSMul.{u1, u2, u2} G₀ α α (instHSMul.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_2)) _inst_3)) c x))))
-Case conversion may be inaccurate. Consider using '#align has_compact_support.comp_smul HasCompactSupport.comp_smulₓ'. -/
 theorem HasCompactSupport.comp_smul {β : Type _} [Zero β] {f : α → β} (h : HasCompactSupport f)
     {c : G₀} (hc : c ≠ 0) : HasCompactSupport fun x => f (c • x) :=
   h.comp_homeomorph (Homeomorph.smulOfNeZero c hc)
@@ -593,12 +425,6 @@ namespace IsUnit
 
 variable [Monoid M] [TopologicalSpace α] [MulAction M α] [ContinuousConstSMul M α]
 
-/- warning: is_unit.tendsto_const_smul_iff -> IsUnit.tendsto_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : MulAction.{u1, u2} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u1, u2} M α _inst_2 (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3)] {f : β -> α} {l : Filter.{u3} β} {a : α} {c : M}, (IsUnit.{u1} M _inst_1 c) -> (Iff (Filter.Tendsto.{u3, u2} β α (fun (x : β) => SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c (f x)) l (nhds.{u2} α _inst_2 (SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c a))) (Filter.Tendsto.{u3, u2} β α f l (nhds.{u2} α _inst_2 a)))
-but is expected to have type
-  forall {M : Type.{u2}} {α : Type.{u1}} {β : Type.{u3}} [_inst_1 : Monoid.{u2} M] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : MulAction.{u2, u1} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u2, u1} M α _inst_2 (MulAction.toSMul.{u2, u1} M α _inst_1 _inst_3)] {f : β -> α} {l : Filter.{u3} β} {a : α} {c : M}, (IsUnit.{u2} M _inst_1 c) -> (Iff (Filter.Tendsto.{u3, u1} β α (fun (x : β) => HSMul.hSMul.{u2, u1, u1} M α α (instHSMul.{u2, u1} M α (MulAction.toSMul.{u2, u1} M α _inst_1 _inst_3)) c (f x)) l (nhds.{u1} α _inst_2 (HSMul.hSMul.{u2, u1, u1} M α α (instHSMul.{u2, u1} M α (MulAction.toSMul.{u2, u1} M α _inst_1 _inst_3)) c a))) (Filter.Tendsto.{u3, u1} β α f l (nhds.{u1} α _inst_2 a)))
-Case conversion may be inaccurate. Consider using '#align is_unit.tendsto_const_smul_iff IsUnit.tendsto_const_smul_iffₓ'. -/
 theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} {c : M} (hc : IsUnit c) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
   let ⟨u, hu⟩ := hc
@@ -607,70 +433,34 @@ theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} {c : M}
 
 variable [TopologicalSpace β] {f : β → α} {b : β} {c : M} {s : Set β}
 
-/- warning: is_unit.continuous_within_at_const_smul_iff -> IsUnit.continuousWithinAt_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : MulAction.{u1, u2} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u1, u2} M α _inst_2 (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} {b : β} {c : M} {s : Set.{u3} β}, (IsUnit.{u1} M _inst_1 c) -> (Iff (ContinuousWithinAt.{u3, u2} β α _inst_5 _inst_2 (fun (x : β) => SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c (f x)) s b) (ContinuousWithinAt.{u3, u2} β α _inst_5 _inst_2 f s b))
-but is expected to have type
-  forall {M : Type.{u3}} {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u3} M] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : MulAction.{u3, u1} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u3, u1} M α _inst_2 (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} {c : M} {s : Set.{u2} β}, (IsUnit.{u3} M _inst_1 c) -> (Iff (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_2 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} M α α (instHSMul.{u3, u1} M α (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)) c (f x)) s b) (ContinuousWithinAt.{u2, u1} β α _inst_5 _inst_2 f s b))
-Case conversion may be inaccurate. Consider using '#align is_unit.continuous_within_at_const_smul_iff IsUnit.continuousWithinAt_const_smul_iffₓ'. -/
 theorem continuousWithinAt_const_smul_iff (hc : IsUnit c) :
     ContinuousWithinAt (fun x => c • f x) s b ↔ ContinuousWithinAt f s b :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuousWithinAt_const_smul_iff u
 #align is_unit.continuous_within_at_const_smul_iff IsUnit.continuousWithinAt_const_smul_iff
 
-/- warning: is_unit.continuous_on_const_smul_iff -> IsUnit.continuousOn_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : MulAction.{u1, u2} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u1, u2} M α _inst_2 (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} {c : M} {s : Set.{u3} β}, (IsUnit.{u1} M _inst_1 c) -> (Iff (ContinuousOn.{u3, u2} β α _inst_5 _inst_2 (fun (x : β) => SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c (f x)) s) (ContinuousOn.{u3, u2} β α _inst_5 _inst_2 f s))
-but is expected to have type
-  forall {M : Type.{u3}} {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u3} M] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : MulAction.{u3, u1} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u3, u1} M α _inst_2 (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {c : M} {s : Set.{u2} β}, (IsUnit.{u3} M _inst_1 c) -> (Iff (ContinuousOn.{u2, u1} β α _inst_5 _inst_2 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} M α α (instHSMul.{u3, u1} M α (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)) c (f x)) s) (ContinuousOn.{u2, u1} β α _inst_5 _inst_2 f s))
-Case conversion may be inaccurate. Consider using '#align is_unit.continuous_on_const_smul_iff IsUnit.continuousOn_const_smul_iffₓ'. -/
 theorem continuousOn_const_smul_iff (hc : IsUnit c) :
     ContinuousOn (fun x => c • f x) s ↔ ContinuousOn f s :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuousOn_const_smul_iff u
 #align is_unit.continuous_on_const_smul_iff IsUnit.continuousOn_const_smul_iff
 
-/- warning: is_unit.continuous_at_const_smul_iff -> IsUnit.continuousAt_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : MulAction.{u1, u2} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u1, u2} M α _inst_2 (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} {b : β} {c : M}, (IsUnit.{u1} M _inst_1 c) -> (Iff (ContinuousAt.{u3, u2} β α _inst_5 _inst_2 (fun (x : β) => SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c (f x)) b) (ContinuousAt.{u3, u2} β α _inst_5 _inst_2 f b))
-but is expected to have type
-  forall {M : Type.{u3}} {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u3} M] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : MulAction.{u3, u1} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u3, u1} M α _inst_2 (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {b : β} {c : M}, (IsUnit.{u3} M _inst_1 c) -> (Iff (ContinuousAt.{u2, u1} β α _inst_5 _inst_2 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} M α α (instHSMul.{u3, u1} M α (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)) c (f x)) b) (ContinuousAt.{u2, u1} β α _inst_5 _inst_2 f b))
-Case conversion may be inaccurate. Consider using '#align is_unit.continuous_at_const_smul_iff IsUnit.continuousAt_const_smul_iffₓ'. -/
 theorem continuousAt_const_smul_iff (hc : IsUnit c) :
     ContinuousAt (fun x => c • f x) b ↔ ContinuousAt f b :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuousAt_const_smul_iff u
 #align is_unit.continuous_at_const_smul_iff IsUnit.continuousAt_const_smul_iff
 
-/- warning: is_unit.continuous_const_smul_iff -> IsUnit.continuous_const_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : MulAction.{u1, u2} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u1, u2} M α _inst_2 (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u3} β] {f : β -> α} {c : M}, (IsUnit.{u1} M _inst_1 c) -> (Iff (Continuous.{u3, u2} β α _inst_5 _inst_2 (fun (x : β) => SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c (f x))) (Continuous.{u3, u2} β α _inst_5 _inst_2 f))
-but is expected to have type
-  forall {M : Type.{u3}} {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : Monoid.{u3} M] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : MulAction.{u3, u1} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u3, u1} M α _inst_2 (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)] [_inst_5 : TopologicalSpace.{u2} β] {f : β -> α} {c : M}, (IsUnit.{u3} M _inst_1 c) -> (Iff (Continuous.{u2, u1} β α _inst_5 _inst_2 (fun (x : β) => HSMul.hSMul.{u3, u1, u1} M α α (instHSMul.{u3, u1} M α (MulAction.toSMul.{u3, u1} M α _inst_1 _inst_3)) c (f x))) (Continuous.{u2, u1} β α _inst_5 _inst_2 f))
-Case conversion may be inaccurate. Consider using '#align is_unit.continuous_const_smul_iff IsUnit.continuous_const_smul_iffₓ'. -/
 theorem continuous_const_smul_iff (hc : IsUnit c) : (Continuous fun x => c • f x) ↔ Continuous f :=
   let ⟨u, hu⟩ := hc
   hu ▸ continuous_const_smul_iff u
 #align is_unit.continuous_const_smul_iff IsUnit.continuous_const_smul_iff
 
-/- warning: is_unit.is_open_map_smul -> IsUnit.isOpenMap_smul is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : MulAction.{u1, u2} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u1, u2} M α _inst_2 (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3)] {c : M}, (IsUnit.{u1} M _inst_1 c) -> (IsOpenMap.{u2, u2} α α _inst_2 _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c x))
-but is expected to have type
-  forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : MulAction.{u2, u1} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u2, u1} M α _inst_2 (MulAction.toSMul.{u2, u1} M α _inst_1 _inst_3)] {c : M}, (IsUnit.{u2} M _inst_1 c) -> (IsOpenMap.{u1, u1} α α _inst_2 _inst_2 (fun (x : α) => HSMul.hSMul.{u2, u1, u1} M α α (instHSMul.{u2, u1} M α (MulAction.toSMul.{u2, u1} M α _inst_1 _inst_3)) c x))
-Case conversion may be inaccurate. Consider using '#align is_unit.is_open_map_smul IsUnit.isOpenMap_smulₓ'. -/
 theorem isOpenMap_smul (hc : IsUnit c) : IsOpenMap fun x : α => c • x :=
   let ⟨u, hu⟩ := hc
   hu ▸ isOpenMap_smul u
 #align is_unit.is_open_map_smul IsUnit.isOpenMap_smul
 
-/- warning: is_unit.is_closed_map_smul -> IsUnit.isClosedMap_smul is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {α : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : TopologicalSpace.{u2} α] [_inst_3 : MulAction.{u1, u2} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u1, u2} M α _inst_2 (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3)] {c : M}, (IsUnit.{u1} M _inst_1 c) -> (IsClosedMap.{u2, u2} α α _inst_2 _inst_2 (fun (x : α) => SMul.smul.{u1, u2} M α (MulAction.toHasSmul.{u1, u2} M α _inst_1 _inst_3) c x))
-but is expected to have type
-  forall {M : Type.{u2}} {α : Type.{u1}} [_inst_1 : Monoid.{u2} M] [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : MulAction.{u2, u1} M α _inst_1] [_inst_4 : ContinuousConstSMul.{u2, u1} M α _inst_2 (MulAction.toSMul.{u2, u1} M α _inst_1 _inst_3)] {c : M}, (IsUnit.{u2} M _inst_1 c) -> (IsClosedMap.{u1, u1} α α _inst_2 _inst_2 (fun (x : α) => HSMul.hSMul.{u2, u1, u1} M α α (instHSMul.{u2, u1} M α (MulAction.toSMul.{u2, u1} M α _inst_1 _inst_3)) c x))
-Case conversion may be inaccurate. Consider using '#align is_unit.is_closed_map_smul IsUnit.isClosedMap_smulₓ'. -/
 theorem isClosedMap_smul (hc : IsUnit c) : IsClosedMap fun x : α => c • x :=
   let ⟨u, hu⟩ := hc
   hu ▸ isClosedMap_smul u
@@ -719,12 +509,6 @@ export ProperlyDiscontinuousSMul (finite_disjoint_inter_image)
 
 export ProperlyDiscontinuousVAdd (finite_disjoint_inter_image)
 
-/- warning: is_open_map_quotient_mk_mul -> isOpenMap_quotient_mk'_mul is a dubious translation:
-lean 3 declaration is
-  forall {Γ : Type.{u1}} [_inst_1 : Group.{u1} Γ] {T : Type.{u2}} [_inst_2 : TopologicalSpace.{u2} T] [_inst_3 : MulAction.{u1, u2} Γ T (DivInvMonoid.toMonoid.{u1} Γ (Group.toDivInvMonoid.{u1} Γ _inst_1))] [_inst_4 : ContinuousConstSMul.{u1, u2} Γ T _inst_2 (MulAction.toHasSmul.{u1, u2} Γ T (DivInvMonoid.toMonoid.{u1} Γ (Group.toDivInvMonoid.{u1} Γ _inst_1)) _inst_3)], IsOpenMap.{u2, u2} T (Quotient.{succ u2} T (MulAction.orbitRel.{u1, u2} Γ T _inst_1 _inst_3)) _inst_2 (Quotient.topologicalSpace.{u2} T (MulAction.orbitRel.{u1, u2} Γ T _inst_1 _inst_3) _inst_2) (Quotient.mk'.{succ u2} T (MulAction.orbitRel.{u1, u2} Γ T _inst_1 _inst_3))
-but is expected to have type
-  forall {Γ : Type.{u2}} [_inst_1 : Group.{u2} Γ] {T : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} T] [_inst_3 : MulAction.{u2, u1} Γ T (DivInvMonoid.toMonoid.{u2} Γ (Group.toDivInvMonoid.{u2} Γ _inst_1))] [_inst_4 : ContinuousConstSMul.{u2, u1} Γ T _inst_2 (MulAction.toSMul.{u2, u1} Γ T (DivInvMonoid.toMonoid.{u2} Γ (Group.toDivInvMonoid.{u2} Γ _inst_1)) _inst_3)], IsOpenMap.{u1, u1} T (Quotient.{succ u1} T (MulAction.orbitRel.{u2, u1} Γ T _inst_1 _inst_3)) _inst_2 (instTopologicalSpaceQuotient.{u1} T (MulAction.orbitRel.{u2, u1} Γ T _inst_1 _inst_3) _inst_2) (Quotient.mk'.{succ u1} T (MulAction.orbitRel.{u2, u1} Γ T _inst_1 _inst_3))
-Case conversion may be inaccurate. Consider using '#align is_open_map_quotient_mk_mul isOpenMap_quotient_mk'_mulₓ'. -/
 /-- The quotient map by a group action is open, i.e. the quotient by a group action is an open
   quotient. -/
 @[to_additive
@@ -796,12 +580,6 @@ section MulAction
 variable {G₀ : Type _} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSpace α]
   [ContinuousConstSMul G₀ α]
 
-/- warning: set_smul_mem_nhds_smul -> set_smul_mem_nhds_smul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4))] [_inst_6 : TopologicalSpace.{u1} α] [_inst_7 : ContinuousConstSMul.{u2, u1} G₀ α _inst_6 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5)] {c : G₀} {s : Set.{u1} α} {x : α}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{u1} α _inst_6 x)) -> (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)))))))) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (SMul.smul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5)) c s) (nhds.{u1} α _inst_6 (SMul.smul.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5) c x)))
-but is expected to have type
-  forall {α : Type.{u2}} {G₀ : Type.{u1}} [_inst_4 : GroupWithZero.{u1} G₀] [_inst_5 : MulAction.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4))] [_inst_6 : TopologicalSpace.{u2} α] [_inst_7 : ContinuousConstSMul.{u1, u2} G₀ α _inst_6 (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5)] {c : G₀} {s : Set.{u2} α} {x : α}, (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) s (nhds.{u2} α _inst_6 x)) -> (Ne.{succ u1} G₀ c (OfNat.ofNat.{u1} G₀ 0 (Zero.toOfNat0.{u1} G₀ (MonoidWithZero.toZero.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4))))) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (HSMul.hSMul.{u1, u2, u2} G₀ (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G₀ (Set.{u2} α) (Set.smulSet.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5))) c s) (nhds.{u2} α _inst_6 (HSMul.hSMul.{u1, u2, u2} G₀ α α (instHSMul.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5)) c x)))
-Case conversion may be inaccurate. Consider using '#align set_smul_mem_nhds_smul set_smul_mem_nhds_smulₓ'. -/
 /-- Scalar multiplication preserves neighborhoods. -/
 theorem set_smul_mem_nhds_smul {c : G₀} {s : Set α} {x : α} (hs : s ∈ 𝓝 x) (hc : c ≠ 0) :
     c • s ∈ 𝓝 (c • x : α) := by
@@ -810,12 +588,6 @@ theorem set_smul_mem_nhds_smul {c : G₀} {s : Set α} {x : α} (hs : s ∈ 𝓝
   exact ⟨c • U, Set.smul_set_mono hs', hU.smul₀ hc, Set.smul_mem_smul_set hU'⟩
 #align set_smul_mem_nhds_smul set_smul_mem_nhds_smul
 
-/- warning: set_smul_mem_nhds_smul_iff -> set_smul_mem_nhds_smul_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : MulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4))] [_inst_6 : TopologicalSpace.{u1} α] [_inst_7 : ContinuousConstSMul.{u2, u1} G₀ α _inst_6 (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5)] {c : G₀} {s : Set.{u1} α} {x : α}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)))))))) -> (Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (SMul.smul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5)) c s) (nhds.{u1} α _inst_6 (SMul.smul.{u2, u1} G₀ α (MulAction.toHasSmul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5) c x))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{u1} α _inst_6 x)))
-but is expected to have type
-  forall {α : Type.{u2}} {G₀ : Type.{u1}} [_inst_4 : GroupWithZero.{u1} G₀] [_inst_5 : MulAction.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4))] [_inst_6 : TopologicalSpace.{u2} α] [_inst_7 : ContinuousConstSMul.{u1, u2} G₀ α _inst_6 (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5)] {c : G₀} {s : Set.{u2} α} {x : α}, (Ne.{succ u1} G₀ c (OfNat.ofNat.{u1} G₀ 0 (Zero.toOfNat0.{u1} G₀ (MonoidWithZero.toZero.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4))))) -> (Iff (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (HSMul.hSMul.{u1, u2, u2} G₀ (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G₀ (Set.{u2} α) (Set.smulSet.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5))) c s) (nhds.{u2} α _inst_6 (HSMul.hSMul.{u1, u2, u2} G₀ α α (instHSMul.{u1, u2} G₀ α (MulAction.toSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5)) c x))) (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) s (nhds.{u2} α _inst_6 x)))
-Case conversion may be inaccurate. Consider using '#align set_smul_mem_nhds_smul_iff set_smul_mem_nhds_smul_iffₓ'. -/
 theorem set_smul_mem_nhds_smul_iff {c : G₀} {s : Set α} {x : α} (hc : c ≠ 0) :
     c • s ∈ 𝓝 (c • x : α) ↔ s ∈ 𝓝 x :=
   by
@@ -831,12 +603,6 @@ section DistribMulAction
 variable {G₀ : Type _} [GroupWithZero G₀] [AddMonoid α] [DistribMulAction G₀ α] [TopologicalSpace α]
   [ContinuousConstSMul G₀ α]
 
-/- warning: set_smul_mem_nhds_zero_iff -> set_smul_mem_nhds_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {G₀ : Type.{u2}} [_inst_4 : GroupWithZero.{u2} G₀] [_inst_5 : AddMonoid.{u1} α] [_inst_6 : DistribMulAction.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5] [_inst_7 : TopologicalSpace.{u1} α] [_inst_8 : ContinuousConstSMul.{u2, u1} G₀ α _inst_7 (SMulZeroClass.toHasSmul.{u2, u1} G₀ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_5)) (DistribSMul.toSmulZeroClass.{u2, u1} G₀ α (AddMonoid.toAddZeroClass.{u1} α _inst_5) (DistribMulAction.toDistribSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5 _inst_6)))] {s : Set.{u1} α} {c : G₀}, (Ne.{succ u2} G₀ c (OfNat.ofNat.{u2} G₀ 0 (OfNat.mk.{u2} G₀ 0 (Zero.zero.{u2} G₀ (MulZeroClass.toHasZero.{u2} G₀ (MulZeroOneClass.toMulZeroClass.{u2} G₀ (MonoidWithZero.toMulZeroOneClass.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)))))))) -> (Iff (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) (SMul.smul.{u2, u1} G₀ (Set.{u1} α) (Set.smulSet.{u2, u1} G₀ α (SMulZeroClass.toHasSmul.{u2, u1} G₀ α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_5)) (DistribSMul.toSmulZeroClass.{u2, u1} G₀ α (AddMonoid.toAddZeroClass.{u1} α _inst_5) (DistribMulAction.toDistribSMul.{u2, u1} G₀ α (MonoidWithZero.toMonoid.{u2} G₀ (GroupWithZero.toMonoidWithZero.{u2} G₀ _inst_4)) _inst_5 _inst_6)))) c s) (nhds.{u1} α _inst_7 (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_5))))))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) s (nhds.{u1} α _inst_7 (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (AddZeroClass.toHasZero.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_5))))))))
-but is expected to have type
-  forall {α : Type.{u2}} {G₀ : Type.{u1}} [_inst_4 : GroupWithZero.{u1} G₀] [_inst_5 : AddMonoid.{u2} α] [_inst_6 : DistribMulAction.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5] [_inst_7 : TopologicalSpace.{u2} α] [_inst_8 : ContinuousConstSMul.{u1, u2} G₀ α _inst_7 (SMulZeroClass.toSMul.{u1, u2} G₀ α (AddMonoid.toZero.{u2} α _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} G₀ α (AddMonoid.toAddZeroClass.{u2} α _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5 _inst_6)))] {s : Set.{u2} α} {c : G₀}, (Ne.{succ u1} G₀ c (OfNat.ofNat.{u1} G₀ 0 (Zero.toOfNat0.{u1} G₀ (MonoidWithZero.toZero.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4))))) -> (Iff (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) (HSMul.hSMul.{u1, u2, u2} G₀ (Set.{u2} α) (Set.{u2} α) (instHSMul.{u1, u2} G₀ (Set.{u2} α) (Set.smulSet.{u1, u2} G₀ α (SMulZeroClass.toSMul.{u1, u2} G₀ α (AddMonoid.toZero.{u2} α _inst_5) (DistribSMul.toSMulZeroClass.{u1, u2} G₀ α (AddMonoid.toAddZeroClass.{u2} α _inst_5) (DistribMulAction.toDistribSMul.{u1, u2} G₀ α (MonoidWithZero.toMonoid.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ _inst_4)) _inst_5 _inst_6))))) c s) (nhds.{u2} α _inst_7 (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α _inst_5))))) (Membership.mem.{u2, u2} (Set.{u2} α) (Filter.{u2} α) (instMembershipSetFilter.{u2} α) s (nhds.{u2} α _inst_7 (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (AddMonoid.toZero.{u2} α _inst_5))))))
-Case conversion may be inaccurate. Consider using '#align set_smul_mem_nhds_zero_iff set_smul_mem_nhds_zero_iffₓ'. -/
 theorem set_smul_mem_nhds_zero_iff {s : Set α} {c : G₀} (hc : c ≠ 0) :
     c • s ∈ 𝓝 (0 : α) ↔ s ∈ 𝓝 (0 : α) :=
   by
Diff
@@ -503,8 +503,7 @@ theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpac
   rcases eq_or_ne c 0 with (rfl | hc)
   · rcases eq_empty_or_nonempty s with (rfl | hs)
     · simp
-    · rw [zero_smul_set hs, zero_smul_set hs.closure]
-      exact closure_singleton
+    · rw [zero_smul_set hs, zero_smul_set hs.closure]; exact closure_singleton
   · exact ((Homeomorph.smulOfNeZero c hc).image_closure s).symm
 #align closure_smul₀ closure_smul₀
 -/
@@ -548,8 +547,7 @@ theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid
     [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) : IsClosedMap fun x : M => c • x :=
   by
   rcases eq_or_ne c 0 with (rfl | hne)
-  · simp only [zero_smul]
-    exact isClosedMap_const
+  · simp only [zero_smul]; exact isClosedMap_const
   · exact (Homeomorph.smulOfNeZero c hne).IsClosedMap
 #align is_closed_map_smul₀ isClosedMap_smul₀
 
Diff
@@ -736,7 +736,7 @@ theorem isOpenMap_quotient_mk'_mul [ContinuousConstSMul Γ T] :
   by
   intro U hU
   rw [isOpen_coinduced, MulAction.quotient_preimage_image_eq_union_mul U]
-  exact isOpen_unionᵢ fun γ => (Homeomorph.smul γ).IsOpenMap U hU
+  exact isOpen_iUnion fun γ => (Homeomorph.smul γ).IsOpenMap U hU
 #align is_open_map_quotient_mk_mul isOpenMap_quotient_mk'_mul
 #align is_open_map_quotient_mk_add isOpenMap_quotient_mk'_add
 

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
@@ -157,6 +157,15 @@ theorem IsCompact.smul {α β} [SMul α β] [TopologicalSpace β] [ContinuousCon
 #align is_compact.smul IsCompact.smul
 #align is_compact.vadd IsCompact.vadd
 
+@[to_additive]
+theorem Specializes.const_smul {x y : α} (h : x ⤳ y) (c : M) : (c • x) ⤳ (c • y) :=
+  h.map (continuous_const_smul c)
+
+@[to_additive]
+theorem Inseparable.const_smul {x y : α} (h : Inseparable x y) (c : M) :
+    Inseparable (c • x) (c • y) :=
+  h.map (continuous_const_smul c)
+
 end SMul
 
 section Monoid
feat: instances for actions of ulifted spaces (#11777)
Diff
@@ -8,6 +8,7 @@ import Mathlib.Topology.Homeomorph
 import Mathlib.GroupTheory.GroupAction.Basic
 import Mathlib.Topology.Bases
 import Mathlib.Topology.Support
+import Mathlib.Algebra.Module.ULift
 
 #align_import topology.algebra.const_mul_action from "leanprover-community/mathlib"@"d90e4e186f1d18e375dcd4e5b5f6364b01cb3e46"
 
@@ -77,6 +78,9 @@ section SMul
 
 variable [TopologicalSpace α] [SMul M α] [ContinuousConstSMul M α]
 
+@[to_additive]
+instance : ContinuousConstSMul (ULift M) α := ⟨fun γ ↦ continuous_const_smul (ULift.down γ)⟩
+
 @[to_additive]
 theorem Filter.Tendsto.const_smul {f : β → α} {l : Filter β} {a : α} (hf : Tendsto f l (𝓝 a))
     (c : M) : Tendsto (fun x => c • f x) l (𝓝 (c • a)) :=
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11813)
Diff
@@ -531,7 +531,7 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Sp
   by_cases H : γ ∈ bad_Γ_set
   · exact fun h => (u_v_disjoint γ).le_bot ⟨mem_iInter₂.mp x_in_U₀₀ γ H, mem_iInter₂.mp h.1 γ H⟩
   · rintro ⟨-, h'⟩
-    simp only [bad_Γ_set, image_smul, Classical.not_not, mem_setOf_eq, Ne.def] at H
+    simp only [bad_Γ_set, image_smul, Classical.not_not, mem_setOf_eq, Ne] at H
     exact eq_empty_iff_forall_not_mem.mp H (γ • x) ⟨mem_image_of_mem _ x_in_K₀, h'⟩
 #align t2_space_of_properly_discontinuous_smul_of_t2_space t2Space_of_properlyDiscontinuousSMul_of_t2Space
 #align t2_space_of_properly_discontinuous_vadd_of_t2_space t2Space_of_properlyDiscontinuousVAdd_of_t2Space
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -158,7 +158,6 @@ end SMul
 section Monoid
 
 variable [TopologicalSpace α]
-
 variable [Monoid M] [MulAction M α] [ContinuousConstSMul M α]
 
 @[to_additive]
feat(ConstMulAction): add closure_smul₀', generalize (#10860)
  • Add closure_smul₀', a version of closure_smul₀ assuming c ≠ 0 and no T1Space.
  • Generalize some lemmas from TVS to a continuous MulActionWithZero.
Diff
@@ -343,6 +343,10 @@ theorem interior_smul₀ {c : G₀} (hc : c ≠ 0) (s : Set α) : interior (c 
   ((Homeomorph.smulOfNeZero c hc).image_interior s).symm
 #align interior_smul₀ interior_smul₀
 
+theorem closure_smul₀' {c : G₀} (hc : c ≠ 0) (s : Set α) :
+    closure (c • s) = c • closure s :=
+  ((Homeomorph.smulOfNeZero c hc).image_closure s).symm
+
 theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpace E] [T1Space E]
     [ContinuousConstSMul G₀ E] (c : G₀) (s : Set E) : closure (c • s) = c • closure s := by
   rcases eq_or_ne c 0 with (rfl | hc)
@@ -350,7 +354,7 @@ theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpac
     · simp
     · rw [zero_smul_set hs, zero_smul_set hs.closure]
       exact closure_singleton
-  · exact ((Homeomorph.smulOfNeZero c hc).image_closure s).symm
+  · exact closure_smul₀' hc s
 #align closure_smul₀ closure_smul₀
 
 /-- `smul` is a closed map in the second argument.
@@ -370,17 +374,16 @@ theorem IsClosed.smul_of_ne_zero {c : G₀} {s : Set α} (hs : IsClosed s) (hc :
 
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
 normed field) is `isClosedMap_smul_left` in `Analysis.NormedSpace.FiniteDimension`. -/
-theorem isClosedMap_smul₀ {𝕜 M : Type*} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
-    [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) :
-    IsClosedMap fun x : M => c • x := by
+theorem isClosedMap_smul₀ {E : Type*} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpace E]
+    [T1Space E] [ContinuousConstSMul G₀ E] (c : G₀) : IsClosedMap fun x : E => c • x := by
   rcases eq_or_ne c 0 with (rfl | hne)
   · simp only [zero_smul]
     exact isClosedMap_const
   · exact (Homeomorph.smulOfNeZero c hne).isClosedMap
 #align is_closed_map_smul₀ isClosedMap_smul₀
 
-theorem IsClosed.smul₀ {𝕜 M : Type*} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
-    [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
+theorem IsClosed.smul₀ {E : Type*} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpace E]
+    [T1Space E] [ContinuousConstSMul G₀ E] (c : G₀) {s : Set E} (hs : IsClosed s) :
     IsClosed (c • s) :=
   isClosedMap_smul₀ c s hs
 #align is_closed.smul₀ IsClosed.smul₀
chore: classify todo porting notes (#11216)

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

Diff
@@ -447,7 +447,7 @@ nonrec theorem isClosedMap_smul (hc : IsUnit c) : IsClosedMap fun x : α => c 
 
 end IsUnit
 
--- Porting note: todo: use `Set.Nonempty`
+-- Porting note (#11215): TODO: use `Set.Nonempty`
 /-- Class `ProperlyDiscontinuousSMul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
 is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely many
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -447,7 +447,7 @@ nonrec theorem isClosedMap_smul (hc : IsUnit c) : IsClosedMap fun x : α => c 
 
 end IsUnit
 
--- porting note: todo: use `Set.Nonempty`
+-- Porting note: todo: use `Set.Nonempty`
 /-- Class `ProperlyDiscontinuousSMul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
 is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely many
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
@@ -550,7 +550,7 @@ section MulAction
 variable {G₀ : Type*} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSpace α]
   [ContinuousConstSMul G₀ α]
 
--- porting note: generalize to a group action + `IsUnit`
+-- Porting note: generalize to a group action + `IsUnit`
 /-- Scalar multiplication preserves neighborhoods. -/
 theorem set_smul_mem_nhds_smul {c : G₀} {s : Set α} {x : α} (hs : s ∈ 𝓝 x) (hc : c ≠ 0) :
     c • s ∈ 𝓝 (c • x : α) := by
chore: more backporting of simp changes from #10995 (#11001)

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

Diff
@@ -529,7 +529,7 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Sp
   by_cases H : γ ∈ bad_Γ_set
   · exact fun h => (u_v_disjoint γ).le_bot ⟨mem_iInter₂.mp x_in_U₀₀ γ H, mem_iInter₂.mp h.1 γ H⟩
   · rintro ⟨-, h'⟩
-    simp only [image_smul, Classical.not_not, mem_setOf_eq, Ne.def] at H
+    simp only [bad_Γ_set, image_smul, Classical.not_not, mem_setOf_eq, Ne.def] at H
     exact eq_empty_iff_forall_not_mem.mp H (γ • x) ⟨mem_image_of_mem _ x_in_K₀, h'⟩
 #align t2_space_of_properly_discontinuous_smul_of_t2_space t2Space_of_properlyDiscontinuousSMul_of_t2Space
 #align t2_space_of_properly_discontinuous_vadd_of_t2_space t2Space_of_properlyDiscontinuousVAdd_of_t2Space
chore: redistribute tags for fun_prop regarding continuity across the library (#10494)

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

Diff
@@ -93,20 +93,20 @@ nonrec theorem ContinuousWithinAt.const_smul (hg : ContinuousWithinAt g s b) (c
 #align continuous_within_at.const_smul ContinuousWithinAt.const_smul
 #align continuous_within_at.const_vadd ContinuousWithinAt.const_vadd
 
-@[to_additive]
+@[to_additive (attr := fun_prop)]
 nonrec theorem ContinuousAt.const_smul (hg : ContinuousAt g b) (c : M) :
     ContinuousAt (fun x => c • g x) b :=
   hg.const_smul c
 #align continuous_at.const_smul ContinuousAt.const_smul
 #align continuous_at.const_vadd ContinuousAt.const_vadd
 
-@[to_additive]
+@[to_additive (attr := fun_prop)]
 theorem ContinuousOn.const_smul (hg : ContinuousOn g s) (c : M) :
     ContinuousOn (fun x => c • g x) s := fun x hx => (hg x hx).const_smul c
 #align continuous_on.const_smul ContinuousOn.const_smul
 #align continuous_on.const_vadd ContinuousOn.const_vadd
 
-@[to_additive (attr := continuity)]
+@[to_additive (attr := continuity, fun_prop)]
 theorem Continuous.const_smul (hg : Continuous g) (c : M) : Continuous fun x => c • g x :=
   (continuous_const_smul _).comp hg
 #align continuous.const_smul Continuous.const_smul
style: fix wrapping of where (#7149)
Diff
@@ -162,8 +162,8 @@ variable [TopologicalSpace α]
 variable [Monoid M] [MulAction M α] [ContinuousConstSMul M α]
 
 @[to_additive]
-instance Units.continuousConstSMul : ContinuousConstSMul Mˣ α
-    where continuous_const_smul m := (continuous_const_smul (m : M) : _)
+instance Units.continuousConstSMul : ContinuousConstSMul Mˣ α where
+  continuous_const_smul m := (continuous_const_smul (m : M) : _)
 #align units.has_continuous_const_smul Units.continuousConstSMul
 #align add_units.has_continuous_const_vadd AddUnits.continuousConstVAdd
 
fix: disable autoImplicit globally (#6528)

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

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

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

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

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

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

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

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

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

Diff
@@ -39,6 +39,8 @@ Hausdorff, discrete group, properly discontinuous, quotient space
 
 -/
 
+set_option autoImplicit true
+
 
 open Topology Pointwise Filter Set TopologicalSpace
 
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
@@ -48,7 +48,7 @@ actions, including (semi)modules and algebras.
 
 Note that both `ContinuousConstSMul α α` and `ContinuousConstSMul αᵐᵒᵖ α` are
 weaker versions of `ContinuousMul α`. -/
-class ContinuousConstSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] : Prop where
+class ContinuousConstSMul (Γ : Type*) (T : Type*) [TopologicalSpace T] [SMul Γ T] : Prop where
   /-- The scalar multiplication `(•) : Γ → T → T` is continuous in the second argument. -/
   continuous_const_smul : ∀ γ : Γ, Continuous fun x : T => γ • x
 #align has_continuous_const_smul ContinuousConstSMul
@@ -59,7 +59,7 @@ including (semi)modules and algebras.
 
 Note that both `ContinuousConstVAdd α α` and `ContinuousConstVAdd αᵐᵒᵖ α` are
 weaker versions of `ContinuousVAdd α`. -/
-class ContinuousConstVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] : Prop where
+class ContinuousConstVAdd (Γ : Type*) (T : Type*) [TopologicalSpace T] [VAdd Γ T] : Prop where
   /-- The additive action `(+ᵥ) : Γ → T → T` is continuous in the second argument. -/
   continuous_const_vadd : ∀ γ : Γ, Continuous fun x : T => γ +ᵥ x
 #align has_continuous_const_vadd ContinuousConstVAdd
@@ -69,7 +69,7 @@ attribute [to_additive] ContinuousConstSMul
 export ContinuousConstSMul (continuous_const_smul)
 export ContinuousConstVAdd (continuous_const_vadd)
 
-variable {M α β : Type _}
+variable {M α β : Type*}
 
 section SMul
 
@@ -140,7 +140,7 @@ instance Prod.continuousConstSMul [SMul M β] [ContinuousConstSMul M β] :
   ⟨fun _ => (continuous_fst.const_smul _).prod_mk (continuous_snd.const_smul _)⟩
 
 @[to_additive]
-instance {ι : Type _} {γ : ι → Type _} [∀ i, TopologicalSpace (γ i)] [∀ i, SMul M (γ i)]
+instance {ι : Type*} {γ : ι → Type*} [∀ i, TopologicalSpace (γ i)] [∀ i, SMul M (γ i)]
     [∀ i, ContinuousConstSMul M (γ i)] : ContinuousConstSMul M (∀ i, γ i) :=
   ⟨fun _ => continuous_pi fun i => (continuous_apply i).const_smul _⟩
 
@@ -190,7 +190,7 @@ end Monoid
 
 section Group
 
-variable {G : Type _} [TopologicalSpace α] [Group G] [MulAction G α] [ContinuousConstSMul G α]
+variable {G : Type*} [TopologicalSpace α] [Group G] [MulAction G α] [ContinuousConstSMul G α]
 
 @[to_additive]
 theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} (c : G) :
@@ -288,7 +288,7 @@ end Group
 
 section GroupWithZero
 
-variable {G₀ : Type _} [TopologicalSpace α] [GroupWithZero G₀] [MulAction G₀ α]
+variable {G₀ : Type*} [TopologicalSpace α] [GroupWithZero G₀] [MulAction G₀ α]
   [ContinuousConstSMul G₀ α]
 
 theorem tendsto_const_smul_iff₀ {f : β → α} {l : Filter β} {a : α} {c : G₀} (hc : c ≠ 0) :
@@ -368,7 +368,7 @@ theorem IsClosed.smul_of_ne_zero {c : G₀} {s : Set α} (hs : IsClosed s) (hc :
 
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
 normed field) is `isClosedMap_smul_left` in `Analysis.NormedSpace.FiniteDimension`. -/
-theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
+theorem isClosedMap_smul₀ {𝕜 M : Type*} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
     [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) :
     IsClosedMap fun x : M => c • x := by
   rcases eq_or_ne c 0 with (rfl | hne)
@@ -377,18 +377,18 @@ theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid
   · exact (Homeomorph.smulOfNeZero c hne).isClosedMap
 #align is_closed_map_smul₀ isClosedMap_smul₀
 
-theorem IsClosed.smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
+theorem IsClosed.smul₀ {𝕜 M : Type*} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
     [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
     IsClosed (c • s) :=
   isClosedMap_smul₀ c s hs
 #align is_closed.smul₀ IsClosed.smul₀
 
-theorem HasCompactMulSupport.comp_smul {β : Type _} [One β] {f : α → β} (h : HasCompactMulSupport f)
+theorem HasCompactMulSupport.comp_smul {β : Type*} [One β] {f : α → β} (h : HasCompactMulSupport f)
     {c : G₀} (hc : c ≠ 0) : HasCompactMulSupport fun x => f (c • x) :=
   h.comp_homeomorph (Homeomorph.smulOfNeZero c hc)
 #align has_compact_mul_support.comp_smul HasCompactMulSupport.comp_smul
 
-theorem HasCompactSupport.comp_smul {β : Type _} [Zero β] {f : α → β} (h : HasCompactSupport f)
+theorem HasCompactSupport.comp_smul {β : Type*} [Zero β] {f : α → β} (h : HasCompactSupport f)
     {c : G₀} (hc : c ≠ 0) : HasCompactSupport fun x => f (c • x) :=
   h.comp_homeomorph (Homeomorph.smulOfNeZero c hc)
 #align has_compact_support.comp_smul HasCompactSupport.comp_smul
@@ -450,7 +450,7 @@ end IsUnit
 is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely many
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
 -/
-class ProperlyDiscontinuousSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] :
+class ProperlyDiscontinuousSMul (Γ : Type*) (T : Type*) [TopologicalSpace T] [SMul Γ T] :
     Prop where
   /-- Given two compact sets `K` and `L`, `γ • K ∩ L` is nonempty for finitely many `γ`. -/
   finite_disjoint_inter_image :
@@ -461,7 +461,7 @@ class ProperlyDiscontinuousSMul (Γ : Type _) (T : Type _) [TopologicalSpace T]
 is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely many
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
 -/
-class ProperlyDiscontinuousVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] :
+class ProperlyDiscontinuousVAdd (Γ : Type*) (T : Type*) [TopologicalSpace T] [VAdd Γ T] :
   Prop where
   /-- Given two compact sets `K` and `L`, `γ +ᵥ K ∩ L` is nonempty for finitely many `γ`. -/
   finite_disjoint_inter_image :
@@ -470,7 +470,7 @@ class ProperlyDiscontinuousVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T]
 
 attribute [to_additive] ProperlyDiscontinuousSMul
 
-variable {Γ : Type _} [Group Γ] {T : Type _} [TopologicalSpace T] [MulAction Γ T]
+variable {Γ : Type*} [Group Γ] {T : Type*} [TopologicalSpace T] [MulAction Γ T]
 
 /-- A finite group action is always properly discontinuous. -/
 @[to_additive "A finite group action is always properly discontinuous."]
@@ -545,7 +545,7 @@ section nhds
 
 section MulAction
 
-variable {G₀ : Type _} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSpace α]
+variable {G₀ : Type*} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSpace α]
   [ContinuousConstSMul G₀ α]
 
 -- porting note: generalize to a group action + `IsUnit`
@@ -568,7 +568,7 @@ end MulAction
 
 section DistribMulAction
 
-variable {G₀ : Type _} [GroupWithZero G₀] [AddMonoid α] [DistribMulAction G₀ α] [TopologicalSpace α]
+variable {G₀ : Type*} [GroupWithZero G₀] [AddMonoid α] [DistribMulAction G₀ α] [TopologicalSpace α]
   [ContinuousConstSMul G₀ α]
 
 theorem set_smul_mem_nhds_zero_iff {s : Set α} {c : G₀} (hc : c ≠ 0) :
feat: add some missing simp lemmas (#6028)
Diff
@@ -319,10 +319,16 @@ theorem continuous_const_smul_iff₀ (hc : c ≠ 0) : (Continuous fun x => c •
 
 /-- Scalar multiplication by a non-zero element of a group with zero acting on `α` is a
 homeomorphism from `α` onto itself. -/
+@[simps! (config := .asFn) apply]
 protected def Homeomorph.smulOfNeZero (c : G₀) (hc : c ≠ 0) : α ≃ₜ α :=
   Homeomorph.smul (Units.mk0 c hc)
 #align homeomorph.smul_of_ne_zero Homeomorph.smulOfNeZero
 
+@[simp]
+theorem Homeomorph.smulOfNeZero_symm_apply {c : G₀} (hc : c ≠ 0) :
+    ⇑(Homeomorph.smulOfNeZero c hc).symm = (c⁻¹ • · : α → α) :=
+  rfl
+
 theorem isOpenMap_smul₀ {c : G₀} (hc : c ≠ 0) : IsOpenMap fun x : α => c • x :=
   (Homeomorph.smulOfNeZero c hc).isOpenMap
 #align is_open_map_smul₀ isOpenMap_smul₀
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) 2021 Alex Kontorovich, Heather Macbeth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Alex Kontorovich, Heather Macbeth
-
-! This file was ported from Lean 3 source module topology.algebra.const_mul_action
-! leanprover-community/mathlib commit d90e4e186f1d18e375dcd4e5b5f6364b01cb3e46
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.Algebra.Constructions
 import Mathlib.Topology.Homeomorph
@@ -14,6 +9,8 @@ import Mathlib.GroupTheory.GroupAction.Basic
 import Mathlib.Topology.Bases
 import Mathlib.Topology.Support
 
+#align_import topology.algebra.const_mul_action from "leanprover-community/mathlib"@"d90e4e186f1d18e375dcd4e5b5f6364b01cb3e46"
+
 /-!
 # Monoid actions continuous in the second variable
 
chore: cleanup whitespace (#5988)

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

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

Diff
@@ -451,7 +451,7 @@ class ProperlyDiscontinuousSMul (Γ : Type _) (T : Type _) [TopologicalSpace T]
     Prop where
   /-- Given two compact sets `K` and `L`, `γ • K ∩ L` is nonempty for finitely many `γ`. -/
   finite_disjoint_inter_image :
-    ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (γ • ·)  '' K ∩ L ≠ ∅ }
+    ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (γ • ·) '' K ∩ L ≠ ∅ }
 #align properly_discontinuous_smul ProperlyDiscontinuousSMul
 
 /-- Class `ProperlyDiscontinuousVAdd Γ T` says that the additive action `(+ᵥ) : Γ → T → T`
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
@@ -185,7 +185,7 @@ theorem isClosed_setOf_map_smul [Monoid N] (α β) [MulAction M α] [MulAction N
     [TopologicalSpace β] [T2Space β] [ContinuousConstSMul N β] (σ : M → N) :
     IsClosed { f : α → β | ∀ c x, f (c • x) = σ c • f x } := by
   simp only [Set.setOf_forall]
-  exact isClosed_interᵢ fun c => isClosed_interᵢ fun x =>
+  exact isClosed_iInter fun c => isClosed_iInter fun x =>
     isClosed_eq (continuous_apply _) ((continuous_apply _).const_smul _)
 #align is_closed_set_of_map_smul isClosed_setOf_map_smulₓ
 
@@ -487,7 +487,7 @@ theorem isOpenMap_quotient_mk'_mul [ContinuousConstSMul Γ T] :
     letI := MulAction.orbitRel Γ T
     IsOpenMap (Quotient.mk' : T → Quotient (MulAction.orbitRel Γ T)) := fun U hU => by
   rw [isOpen_coinduced, MulAction.quotient_preimage_image_eq_union_mul U]
-  exact isOpen_unionᵢ fun γ => isOpenMap_smul γ U hU
+  exact isOpen_iUnion fun γ => isOpenMap_smul γ U hU
 #align is_open_map_quotient_mk_mul isOpenMap_quotient_mk'_mul
 #align is_open_map_quotient_mk_add isOpenMap_quotient_mk'_add
 
@@ -515,14 +515,14 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Sp
   let V₀₀ := ⋂ γ ∈ bad_Γ_set, v γ
   let V₀ := V₀₀ ∩ L₀
   have U_nhds : f '' U₀ ∈ 𝓝 (f x₀) := by
-    refine f_op.image_mem_nhds (inter_mem ((binterᵢ_mem bad_Γ_finite).mpr fun γ _ => ?_) K₀_in)
+    refine f_op.image_mem_nhds (inter_mem ((biInter_mem bad_Γ_finite).mpr fun γ _ => ?_) K₀_in)
     exact (continuous_const_smul _).continuousAt (hu γ)
   have V_nhds : f '' V₀ ∈ 𝓝 (f y₀) :=
-    f_op.image_mem_nhds (inter_mem ((binterᵢ_mem bad_Γ_finite).mpr fun γ _ => hv γ) L₀_in)
+    f_op.image_mem_nhds (inter_mem ((biInter_mem bad_Γ_finite).mpr fun γ _ => hv γ) L₀_in)
   refine' ⟨f '' U₀, U_nhds, f '' V₀, V_nhds, MulAction.disjoint_image_image_iff.2 _⟩
   rintro x ⟨x_in_U₀₀, x_in_K₀⟩ γ
   by_cases H : γ ∈ bad_Γ_set
-  · exact fun h => (u_v_disjoint γ).le_bot ⟨mem_interᵢ₂.mp x_in_U₀₀ γ H, mem_interᵢ₂.mp h.1 γ H⟩
+  · exact fun h => (u_v_disjoint γ).le_bot ⟨mem_iInter₂.mp x_in_U₀₀ γ H, mem_iInter₂.mp h.1 γ H⟩
   · rintro ⟨-, h'⟩
     simp only [image_smul, Classical.not_not, mem_setOf_eq, Ne.def] at H
     exact eq_empty_iff_forall_not_mem.mp H (γ • x) ⟨mem_image_of_mem _ x_in_K₀, h'⟩
chore: bump to nightly-2023-04-11 (#3139)
Diff
@@ -45,8 +45,6 @@ Hausdorff, discrete group, properly discontinuous, quotient space
 
 open Topology Pointwise Filter Set TopologicalSpace
 
-attribute [local instance] MulAction.orbitRel
-
 /-- Class `ContinuousConstSMul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
 is continuous in the second argument. We use the same class for all kinds of multiplicative
 actions, including (semi)modules and algebras.
@@ -486,6 +484,7 @@ export ProperlyDiscontinuousVAdd (finite_disjoint_inter_image)
 @[to_additive "The quotient map by a group action is open, i.e. the quotient by a group
 action is an open quotient. "]
 theorem isOpenMap_quotient_mk'_mul [ContinuousConstSMul Γ T] :
+    letI := MulAction.orbitRel Γ T
     IsOpenMap (Quotient.mk' : T → Quotient (MulAction.orbitRel Γ T)) := fun U hU => by
   rw [isOpen_coinduced, MulAction.quotient_preimage_image_eq_union_mul U]
   exact isOpen_unionᵢ fun γ => isOpenMap_smul γ U hU
@@ -498,6 +497,7 @@ space is t2."]
 instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Space T]
     [LocallyCompactSpace T] [ContinuousConstSMul Γ T] [ProperlyDiscontinuousSMul Γ T] :
     T2Space (Quotient (MulAction.orbitRel Γ T)) := by
+  letI := MulAction.orbitRel Γ T
   set Q := Quotient (MulAction.orbitRel Γ T)
   rw [t2Space_iff_nhds]
   let f : T → Q := Quotient.mk'
feat: port Topology.Instances.TrivSqZeroExt (#3275)
Diff
@@ -140,7 +140,8 @@ instance OrderDual.continuousConstSMul' : ContinuousConstSMul Mᵒᵈ α :=
 #align order_dual.has_continuous_const_vadd' OrderDual.continuousConstVAdd'
 
 @[to_additive]
-instance [SMul M β] [ContinuousConstSMul M β] : ContinuousConstSMul M (α × β) :=
+instance Prod.continuousConstSMul [SMul M β] [ContinuousConstSMul M β] :
+    ContinuousConstSMul M (α × β) :=
   ⟨fun _ => (continuous_fst.const_smul _).prod_mk (continuous_snd.const_smul _)⟩
 
 @[to_additive]
feat: port Topology.Algebra.Module.Basic (#2983)

Co-authored-by: Moritz Doll <moritz.doll@googlemail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Yury Kudryashov <urkud@urkud.name> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -171,7 +171,7 @@ instance Units.continuousConstSMul : ContinuousConstSMul Mˣ α
 
 @[to_additive]
 theorem smul_closure_subset (c : M) (s : Set α) : c • closure s ⊆ closure (c • s) :=
-  ((Set.mapsTo_image _ _).closure <| continuous_id.const_smul c).image_subset
+  ((Set.mapsTo_image _ _).closure <| continuous_const_smul c).image_subset
 #align smul_closure_subset smul_closure_subset
 #align vadd_closure_subset vadd_closure_subset
 
@@ -182,6 +182,14 @@ theorem smul_closure_orbit_subset (c : M) (x : α) :
 #align smul_closure_orbit_subset smul_closure_orbit_subset
 #align vadd_closure_orbit_subset vadd_closure_orbit_subset
 
+theorem isClosed_setOf_map_smul [Monoid N] (α β) [MulAction M α] [MulAction N β]
+    [TopologicalSpace β] [T2Space β] [ContinuousConstSMul N β] (σ : M → N) :
+    IsClosed { f : α → β | ∀ c x, f (c • x) = σ c • f x } := by
+  simp only [Set.setOf_forall]
+  exact isClosed_interᵢ fun c => isClosed_interᵢ fun x =>
+    isClosed_eq (continuous_apply _) ((continuous_apply _).const_smul _)
+#align is_closed_set_of_map_smul isClosed_setOf_map_smulₓ
+
 end Monoid
 
 section Group
Fix: Move more attributes to the attr argument of to_additive (#2558)
Diff
@@ -109,7 +109,7 @@ theorem ContinuousOn.const_smul (hg : ContinuousOn g s) (c : M) :
 #align continuous_on.const_smul ContinuousOn.const_smul
 #align continuous_on.const_vadd ContinuousOn.const_vadd
 
-@[to_additive, continuity]
+@[to_additive (attr := continuity)]
 theorem Continuous.const_smul (hg : Continuous g) (c : M) : Continuous fun x => c • g x :=
   (continuous_const_smul _).comp hg
 #align continuous.const_smul Continuous.const_smul
feat: add to_additive linter checking whether additive decl exists (#1881)
  • Force the user to specify whether the additive declaration already exists.
  • Will raise a linter error if the user specified it wrongly
  • Requested on Zulip
Diff
@@ -383,7 +383,7 @@ theorem HasCompactSupport.comp_smul {β : Type _} [Zero β] {f : α → β} (h :
   h.comp_homeomorph (Homeomorph.smulOfNeZero c hc)
 #align has_compact_support.comp_smul HasCompactSupport.comp_smul
 
-attribute [to_additive HasCompactSupport.comp_smul] HasCompactMulSupport.comp_smul
+attribute [to_additive existing HasCompactSupport.comp_smul] HasCompactMulSupport.comp_smul
 
 end GroupWithZero
 
feat: port continuity tactic (#2145)

We implement the continuity tactic using aesop, this makes it more robust and reduces the code to trivial macros.

Diff
@@ -109,7 +109,7 @@ theorem ContinuousOn.const_smul (hg : ContinuousOn g s) (c : M) :
 #align continuous_on.const_smul ContinuousOn.const_smul
 #align continuous_on.const_vadd ContinuousOn.const_vadd
 
-@[to_additive] -- porting note: todo: restore `continuity`
+@[to_additive, continuity]
 theorem Continuous.const_smul (hg : Continuous g) (c : M) : Continuous fun x => c • g x :=
   (continuous_const_smul _).comp hg
 #align continuous.const_smul Continuous.const_smul
fix: rename HasContinuousConstSMul to ContinuousConstSMul (#2185)
Diff
@@ -17,13 +17,13 @@ import Mathlib.Topology.Support
 /-!
 # Monoid actions continuous in the second variable
 
-In this file we define class `HasContinuousConstSMul`. We say `HasContinuousConstSMul Γ T` if
+In this file we define class `ContinuousConstSMul`. We say `ContinuousConstSMul Γ T` if
 `Γ` acts on `T` and for each `γ`, the map `x ↦ γ • x` is continuous. (This differs from
-`HasContinuousSMul`, which requires simultaneous continuity in both variables.)
+`ContinuousSMul`, which requires simultaneous continuity in both variables.)
 
 ## Main definitions
 
-* `HasContinuousConstSMul Γ T` : typeclass saying that the map `x ↦ γ • x` is continuous on `T`;
+* `ContinuousConstSMul Γ T` : typeclass saying that the map `x ↦ γ • x` is continuous on `T`;
 * `ProperlyDiscontinuousSMul`: says that the scalar multiplication `(•) : Γ → T → T`
   is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely
   many `γ:Γ` move `K` to have nontrivial intersection with `L`.
@@ -47,38 +47,38 @@ open Topology Pointwise Filter Set TopologicalSpace
 
 attribute [local instance] MulAction.orbitRel
 
-/-- Class `HasContinuousConstSMul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
+/-- Class `ContinuousConstSMul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
 is continuous in the second argument. We use the same class for all kinds of multiplicative
 actions, including (semi)modules and algebras.
 
-Note that both `HasContinuousConstSMul α α` and `HasContinuousConstSMul αᵐᵒᵖ α` are
-weaker versions of `HasContinuousMul α`. -/
-class HasContinuousConstSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] : Prop where
+Note that both `ContinuousConstSMul α α` and `ContinuousConstSMul αᵐᵒᵖ α` are
+weaker versions of `ContinuousMul α`. -/
+class ContinuousConstSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] : Prop where
   /-- The scalar multiplication `(•) : Γ → T → T` is continuous in the second argument. -/
   continuous_const_smul : ∀ γ : Γ, Continuous fun x : T => γ • x
-#align has_continuous_const_smul HasContinuousConstSMul
+#align has_continuous_const_smul ContinuousConstSMul
 
-/-- Class `HasContinuousConstVAdd Γ T` says that the additive action `(+ᵥ) : Γ → T → T`
+/-- Class `ContinuousConstVAdd Γ T` says that the additive action `(+ᵥ) : Γ → T → T`
 is continuous in the second argument. We use the same class for all kinds of additive actions,
 including (semi)modules and algebras.
 
-Note that both `HasContinuousConstVAdd α α` and `HasContinuousConstVAdd αᵐᵒᵖ α` are
-weaker versions of `HasContinuousVAdd α`. -/
-class HasContinuousConstVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] : Prop where
+Note that both `ContinuousConstVAdd α α` and `ContinuousConstVAdd αᵐᵒᵖ α` are
+weaker versions of `ContinuousVAdd α`. -/
+class ContinuousConstVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] : Prop where
   /-- The additive action `(+ᵥ) : Γ → T → T` is continuous in the second argument. -/
   continuous_const_vadd : ∀ γ : Γ, Continuous fun x : T => γ +ᵥ x
-#align has_continuous_const_vadd HasContinuousConstVAdd
+#align has_continuous_const_vadd ContinuousConstVAdd
 
-attribute [to_additive] HasContinuousConstSMul
+attribute [to_additive] ContinuousConstSMul
 
-export HasContinuousConstSMul (continuous_const_smul)
-export HasContinuousConstVAdd (continuous_const_vadd)
+export ContinuousConstSMul (continuous_const_smul)
+export ContinuousConstVAdd (continuous_const_vadd)
 
 variable {M α β : Type _}
 
 section SMul
 
-variable [TopologicalSpace α] [SMul M α] [HasContinuousConstSMul M α]
+variable [TopologicalSpace α] [SMul M α] [ContinuousConstSMul M α]
 
 @[to_additive]
 theorem Filter.Tendsto.const_smul {f : β → α} {l : Filter β} {a : α} (hf : Tendsto f l (𝓝 a))
@@ -118,38 +118,38 @@ theorem Continuous.const_smul (hg : Continuous g) (c : M) : Continuous fun x =>
 /-- If a scalar is central, then its right action is continuous when its left action is. -/
 @[to_additive "If an additive action is central, then its right action is continuous when its left
 action is."]
-instance HasContinuousConstSMul.op [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] :
-    HasContinuousConstSMul Mᵐᵒᵖ α :=
+instance ContinuousConstSMul.op [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] :
+    ContinuousConstSMul Mᵐᵒᵖ α :=
   ⟨MulOpposite.rec' fun c => by simpa only [op_smul_eq_smul] using continuous_const_smul c⟩
-#align has_continuous_const_smul.op HasContinuousConstSMul.op
-#align has_continuous_const_vadd.op HasContinuousConstVAdd.op
+#align has_continuous_const_smul.op ContinuousConstSMul.op
+#align has_continuous_const_vadd.op ContinuousConstVAdd.op
 
 @[to_additive]
-instance MulOpposite.hasContinuousConstSMul : HasContinuousConstSMul M αᵐᵒᵖ :=
+instance MulOpposite.continuousConstSMul : ContinuousConstSMul M αᵐᵒᵖ :=
   ⟨fun c => MulOpposite.continuous_op.comp <| MulOpposite.continuous_unop.const_smul c⟩
-#align mul_opposite.has_continuous_const_smul MulOpposite.hasContinuousConstSMul
-#align add_opposite.has_continuous_const_vadd AddOpposite.hasContinuousConstVAdd
+#align mul_opposite.has_continuous_const_smul MulOpposite.continuousConstSMul
+#align add_opposite.has_continuous_const_vadd AddOpposite.continuousConstVAdd
 
 @[to_additive]
-instance : HasContinuousConstSMul M αᵒᵈ := ‹HasContinuousConstSMul M α›
+instance : ContinuousConstSMul M αᵒᵈ := ‹ContinuousConstSMul M α›
 
 @[to_additive]
-instance OrderDual.hasContinuousConstSMul' : HasContinuousConstSMul Mᵒᵈ α :=
-  ‹HasContinuousConstSMul M α›
-#align order_dual.has_continuous_const_smul' OrderDual.hasContinuousConstSMul'
-#align order_dual.has_continuous_const_vadd' OrderDual.hasContinuousConstVAdd'
+instance OrderDual.continuousConstSMul' : ContinuousConstSMul Mᵒᵈ α :=
+  ‹ContinuousConstSMul M α›
+#align order_dual.has_continuous_const_smul' OrderDual.continuousConstSMul'
+#align order_dual.has_continuous_const_vadd' OrderDual.continuousConstVAdd'
 
 @[to_additive]
-instance [SMul M β] [HasContinuousConstSMul M β] : HasContinuousConstSMul M (α × β) :=
+instance [SMul M β] [ContinuousConstSMul M β] : ContinuousConstSMul M (α × β) :=
   ⟨fun _ => (continuous_fst.const_smul _).prod_mk (continuous_snd.const_smul _)⟩
 
 @[to_additive]
 instance {ι : Type _} {γ : ι → Type _} [∀ i, TopologicalSpace (γ i)] [∀ i, SMul M (γ i)]
-    [∀ i, HasContinuousConstSMul M (γ i)] : HasContinuousConstSMul M (∀ i, γ i) :=
+    [∀ i, ContinuousConstSMul M (γ i)] : ContinuousConstSMul M (∀ i, γ i) :=
   ⟨fun _ => continuous_pi fun i => (continuous_apply i).const_smul _⟩
 
 @[to_additive]
-theorem IsCompact.smul {α β} [SMul α β] [TopologicalSpace β] [HasContinuousConstSMul α β] (a : α)
+theorem IsCompact.smul {α β} [SMul α β] [TopologicalSpace β] [ContinuousConstSMul α β] (a : α)
     {s : Set β} (hs : IsCompact s) : IsCompact (a • s) :=
   hs.image (continuous_id.const_smul a)
 #align is_compact.smul IsCompact.smul
@@ -161,13 +161,13 @@ section Monoid
 
 variable [TopologicalSpace α]
 
-variable [Monoid M] [MulAction M α] [HasContinuousConstSMul M α]
+variable [Monoid M] [MulAction M α] [ContinuousConstSMul M α]
 
 @[to_additive]
-instance Units.hasContinuousConstSMul : HasContinuousConstSMul Mˣ α
+instance Units.continuousConstSMul : ContinuousConstSMul Mˣ α
     where continuous_const_smul m := (continuous_const_smul (m : M) : _)
-#align units.has_continuous_const_smul Units.hasContinuousConstSMul
-#align add_units.has_continuous_const_vadd AddUnits.hasContinuousConstVAdd
+#align units.has_continuous_const_smul Units.continuousConstSMul
+#align add_units.has_continuous_const_vadd AddUnits.continuousConstVAdd
 
 @[to_additive]
 theorem smul_closure_subset (c : M) (s : Set α) : c • closure s ⊆ closure (c • s) :=
@@ -186,7 +186,7 @@ end Monoid
 
 section Group
 
-variable {G : Type _} [TopologicalSpace α] [Group G] [MulAction G α] [HasContinuousConstSMul G α]
+variable {G : Type _} [TopologicalSpace α] [Group G] [MulAction G α] [ContinuousConstSMul G α]
 
 @[to_additive]
 theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} (c : G) :
@@ -285,7 +285,7 @@ end Group
 section GroupWithZero
 
 variable {G₀ : Type _} [TopologicalSpace α] [GroupWithZero G₀] [MulAction G₀ α]
-  [HasContinuousConstSMul G₀ α]
+  [ContinuousConstSMul G₀ α]
 
 theorem tendsto_const_smul_iff₀ {f : β → α} {l : Filter β} {a : α} {c : G₀} (hc : c ≠ 0) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
@@ -332,7 +332,7 @@ theorem interior_smul₀ {c : G₀} (hc : c ≠ 0) (s : Set α) : interior (c 
 #align interior_smul₀ interior_smul₀
 
 theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpace E] [T1Space E]
-    [HasContinuousConstSMul G₀ E] (c : G₀) (s : Set E) : closure (c • s) = c • closure s := by
+    [ContinuousConstSMul G₀ E] (c : G₀) (s : Set E) : closure (c • s) = c • closure s := by
   rcases eq_or_ne c 0 with (rfl | hc)
   · rcases eq_empty_or_nonempty s with (rfl | hs)
     · simp
@@ -359,7 +359,7 @@ theorem IsClosed.smul_of_ne_zero {c : G₀} {s : Set α} (hs : IsClosed s) (hc :
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
 normed field) is `isClosedMap_smul_left` in `Analysis.NormedSpace.FiniteDimension`. -/
 theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
-    [T1Space M] [Module 𝕜 M] [HasContinuousConstSMul 𝕜 M] (c : 𝕜) :
+    [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) :
     IsClosedMap fun x : M => c • x := by
   rcases eq_or_ne c 0 with (rfl | hne)
   · simp only [zero_smul]
@@ -368,7 +368,7 @@ theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid
 #align is_closed_map_smul₀ isClosedMap_smul₀
 
 theorem IsClosed.smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
-    [T1Space M] [Module 𝕜 M] [HasContinuousConstSMul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
+    [T1Space M] [Module 𝕜 M] [ContinuousConstSMul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
     IsClosed (c • s) :=
   isClosedMap_smul₀ c s hs
 #align is_closed.smul₀ IsClosed.smul₀
@@ -389,7 +389,7 @@ end GroupWithZero
 
 namespace IsUnit
 
-variable [Monoid M] [TopologicalSpace α] [MulAction M α] [HasContinuousConstSMul M α]
+variable [Monoid M] [TopologicalSpace α] [MulAction M α] [ContinuousConstSMul M α]
 
 nonrec theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} {c : M} (hc : IsUnit c) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
@@ -476,7 +476,7 @@ export ProperlyDiscontinuousVAdd (finite_disjoint_inter_image)
   quotient. -/
 @[to_additive "The quotient map by a group action is open, i.e. the quotient by a group
 action is an open quotient. "]
-theorem isOpenMap_quotient_mk'_mul [HasContinuousConstSMul Γ T] :
+theorem isOpenMap_quotient_mk'_mul [ContinuousConstSMul Γ T] :
     IsOpenMap (Quotient.mk' : T → Quotient (MulAction.orbitRel Γ T)) := fun U hU => by
   rw [isOpen_coinduced, MulAction.quotient_preimage_image_eq_union_mul U]
   exact isOpen_unionᵢ fun γ => isOpenMap_smul γ U hU
@@ -487,7 +487,7 @@ theorem isOpenMap_quotient_mk'_mul [HasContinuousConstSMul Γ T] :
 @[to_additive "The quotient by a discontinuous group action of a locally compact t2
 space is t2."]
 instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Space T]
-    [LocallyCompactSpace T] [HasContinuousConstSMul Γ T] [ProperlyDiscontinuousSMul Γ T] :
+    [LocallyCompactSpace T] [ContinuousConstSMul Γ T] [ProperlyDiscontinuousSMul Γ T] :
     T2Space (Quotient (MulAction.orbitRel Γ T)) := by
   set Q := Quotient (MulAction.orbitRel Γ T)
   rw [t2Space_iff_nhds]
@@ -523,18 +523,18 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Sp
 /-- The quotient of a second countable space by a group action is second countable. -/
 @[to_additive "The quotient of a second countable space by an additive group action is second
 countable."]
-theorem HasContinuousConstSMul.secondCountableTopology [SecondCountableTopology T]
-    [HasContinuousConstSMul Γ T] : SecondCountableTopology (Quotient (MulAction.orbitRel Γ T)) :=
+theorem ContinuousConstSMul.secondCountableTopology [SecondCountableTopology T]
+    [ContinuousConstSMul Γ T] : SecondCountableTopology (Quotient (MulAction.orbitRel Γ T)) :=
   TopologicalSpace.Quotient.secondCountableTopology isOpenMap_quotient_mk'_mul
-#align has_continuous_const_smul.second_countable_topology HasContinuousConstSMul.secondCountableTopology
-#align has_continuous_const_vadd.second_countable_topology HasContinuousConstVAdd.secondCountableTopology
+#align has_continuous_const_smul.second_countable_topology ContinuousConstSMul.secondCountableTopology
+#align has_continuous_const_vadd.second_countable_topology ContinuousConstVAdd.secondCountableTopology
 
 section nhds
 
 section MulAction
 
 variable {G₀ : Type _} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSpace α]
-  [HasContinuousConstSMul G₀ α]
+  [ContinuousConstSMul G₀ α]
 
 -- porting note: generalize to a group action + `IsUnit`
 /-- Scalar multiplication preserves neighborhoods. -/
@@ -557,7 +557,7 @@ end MulAction
 section DistribMulAction
 
 variable {G₀ : Type _} [GroupWithZero G₀] [AddMonoid α] [DistribMulAction G₀ α] [TopologicalSpace α]
-  [HasContinuousConstSMul G₀ α]
+  [ContinuousConstSMul G₀ α]
 
 theorem set_smul_mem_nhds_zero_iff {s : Set α} {c : G₀} (hc : c ≠ 0) :
     c • s ∈ 𝓝 (0 : α) ↔ s ∈ 𝓝 (0 : α) := by
chore: fix naming in ConstMulAction.lean (#2047)

This corrects some Smuls introduced in #2012 to SMul.

Diff
@@ -17,14 +17,14 @@ import Mathlib.Topology.Support
 /-!
 # Monoid actions continuous in the second variable
 
-In this file we define class `HasContinuousConstSmul`. We say `HasContinuousConstSmul Γ T` if
+In this file we define class `HasContinuousConstSMul`. We say `HasContinuousConstSMul Γ T` if
 `Γ` acts on `T` and for each `γ`, the map `x ↦ γ • x` is continuous. (This differs from
-`has_continuous_smul`, which requires simultaneous continuity in both variables.)
+`HasContinuousSMul`, which requires simultaneous continuity in both variables.)
 
 ## Main definitions
 
-* `HasContinuousConstSmul Γ T` : typeclass saying that the map `x ↦ γ • x` is continuous on `T`;
-* `ProperlyDiscontinuousSmul`: says that the scalar multiplication `(•) : Γ → T → T`
+* `HasContinuousConstSMul Γ T` : typeclass saying that the map `x ↦ γ • x` is continuous on `T`;
+* `ProperlyDiscontinuousSMul`: says that the scalar multiplication `(•) : Γ → T → T`
   is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely
   many `γ:Γ` move `K` to have nontrivial intersection with `L`.
 * `Homeomorph.smul`: scalar multiplication by an element of a group `Γ` acting on `T`
@@ -33,7 +33,7 @@ In this file we define class `HasContinuousConstSmul`. We say `HasContinuousCons
 ## Main results
 
 * `isOpenMap_quotient_mk'_mul` : The quotient map by a group action is open.
-* `t2Space_of_properlyDiscontinuousSmul_of_t2Space` : The quotient by a discontinuous group
+* `t2Space_of_properlyDiscontinuousSMul_of_t2Space` : The quotient by a discontinuous group
   action of a locally compact t2 space is t2.
 
 ## Tags
@@ -47,38 +47,38 @@ open Topology Pointwise Filter Set TopologicalSpace
 
 attribute [local instance] MulAction.orbitRel
 
-/-- Class `HasContinuousConstSmul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
+/-- Class `HasContinuousConstSMul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
 is continuous in the second argument. We use the same class for all kinds of multiplicative
 actions, including (semi)modules and algebras.
 
-Note that both `HasContinuousConstSmul α α` and `HasContinuousConstSmul αᵐᵒᵖ α` are
-weaker versions of `has_continuous_mul α`. -/
-class HasContinuousConstSmul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] : Prop where
+Note that both `HasContinuousConstSMul α α` and `HasContinuousConstSMul αᵐᵒᵖ α` are
+weaker versions of `HasContinuousMul α`. -/
+class HasContinuousConstSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] : Prop where
   /-- The scalar multiplication `(•) : Γ → T → T` is continuous in the second argument. -/
   continuous_const_smul : ∀ γ : Γ, Continuous fun x : T => γ • x
-#align has_continuous_const_smul HasContinuousConstSmul
+#align has_continuous_const_smul HasContinuousConstSMul
 
-/-- Class `HasContinuousConstVadd Γ T` says that the additive action `(+ᵥ) : Γ → T → T`
+/-- Class `HasContinuousConstVAdd Γ T` says that the additive action `(+ᵥ) : Γ → T → T`
 is continuous in the second argument. We use the same class for all kinds of additive actions,
 including (semi)modules and algebras.
 
-Note that both `HasContinuousConstVadd α α` and `HasContinuousConstVadd αᵐᵒᵖ α` are
-weaker versions of `has_continuous_add α`. -/
-class HasContinuousConstVadd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] : Prop where
+Note that both `HasContinuousConstVAdd α α` and `HasContinuousConstVAdd αᵐᵒᵖ α` are
+weaker versions of `HasContinuousVAdd α`. -/
+class HasContinuousConstVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] : Prop where
   /-- The additive action `(+ᵥ) : Γ → T → T` is continuous in the second argument. -/
   continuous_const_vadd : ∀ γ : Γ, Continuous fun x : T => γ +ᵥ x
-#align has_continuous_const_vadd HasContinuousConstVadd
+#align has_continuous_const_vadd HasContinuousConstVAdd
 
-attribute [to_additive] HasContinuousConstSmul
+attribute [to_additive] HasContinuousConstSMul
 
-export HasContinuousConstSmul (continuous_const_smul)
-export HasContinuousConstVadd (continuous_const_vadd)
+export HasContinuousConstSMul (continuous_const_smul)
+export HasContinuousConstVAdd (continuous_const_vadd)
 
 variable {M α β : Type _}
 
 section SMul
 
-variable [TopologicalSpace α] [SMul M α] [HasContinuousConstSmul M α]
+variable [TopologicalSpace α] [SMul M α] [HasContinuousConstSMul M α]
 
 @[to_additive]
 theorem Filter.Tendsto.const_smul {f : β → α} {l : Filter β} {a : α} (hf : Tendsto f l (𝓝 a))
@@ -118,38 +118,38 @@ theorem Continuous.const_smul (hg : Continuous g) (c : M) : Continuous fun x =>
 /-- If a scalar is central, then its right action is continuous when its left action is. -/
 @[to_additive "If an additive action is central, then its right action is continuous when its left
 action is."]
-instance HasContinuousConstSmul.op [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] :
-    HasContinuousConstSmul Mᵐᵒᵖ α :=
+instance HasContinuousConstSMul.op [SMul Mᵐᵒᵖ α] [IsCentralScalar M α] :
+    HasContinuousConstSMul Mᵐᵒᵖ α :=
   ⟨MulOpposite.rec' fun c => by simpa only [op_smul_eq_smul] using continuous_const_smul c⟩
-#align has_continuous_const_smul.op HasContinuousConstSmul.op
-#align has_continuous_const_vadd.op HasContinuousConstVadd.op
+#align has_continuous_const_smul.op HasContinuousConstSMul.op
+#align has_continuous_const_vadd.op HasContinuousConstVAdd.op
 
 @[to_additive]
-instance MulOpposite.hasContinuousConstSmul : HasContinuousConstSmul M αᵐᵒᵖ :=
+instance MulOpposite.hasContinuousConstSMul : HasContinuousConstSMul M αᵐᵒᵖ :=
   ⟨fun c => MulOpposite.continuous_op.comp <| MulOpposite.continuous_unop.const_smul c⟩
-#align mul_opposite.has_continuous_const_smul MulOpposite.hasContinuousConstSmul
-#align add_opposite.has_continuous_const_vadd AddOpposite.hasContinuousConstVadd
+#align mul_opposite.has_continuous_const_smul MulOpposite.hasContinuousConstSMul
+#align add_opposite.has_continuous_const_vadd AddOpposite.hasContinuousConstVAdd
 
 @[to_additive]
-instance : HasContinuousConstSmul M αᵒᵈ := ‹HasContinuousConstSmul M α›
+instance : HasContinuousConstSMul M αᵒᵈ := ‹HasContinuousConstSMul M α›
 
 @[to_additive]
-instance OrderDual.has_continuous_const_smul' : HasContinuousConstSmul Mᵒᵈ α :=
-  ‹HasContinuousConstSmul M α›
-#align order_dual.has_continuous_const_smul' OrderDual.has_continuous_const_smul'
-#align order_dual.has_continuous_const_vadd' OrderDual.has_continuous_const_vadd'
+instance OrderDual.hasContinuousConstSMul' : HasContinuousConstSMul Mᵒᵈ α :=
+  ‹HasContinuousConstSMul M α›
+#align order_dual.has_continuous_const_smul' OrderDual.hasContinuousConstSMul'
+#align order_dual.has_continuous_const_vadd' OrderDual.hasContinuousConstVAdd'
 
 @[to_additive]
-instance [SMul M β] [HasContinuousConstSmul M β] : HasContinuousConstSmul M (α × β) :=
+instance [SMul M β] [HasContinuousConstSMul M β] : HasContinuousConstSMul M (α × β) :=
   ⟨fun _ => (continuous_fst.const_smul _).prod_mk (continuous_snd.const_smul _)⟩
 
 @[to_additive]
 instance {ι : Type _} {γ : ι → Type _} [∀ i, TopologicalSpace (γ i)] [∀ i, SMul M (γ i)]
-    [∀ i, HasContinuousConstSmul M (γ i)] : HasContinuousConstSmul M (∀ i, γ i) :=
+    [∀ i, HasContinuousConstSMul M (γ i)] : HasContinuousConstSMul M (∀ i, γ i) :=
   ⟨fun _ => continuous_pi fun i => (continuous_apply i).const_smul _⟩
 
 @[to_additive]
-theorem IsCompact.smul {α β} [SMul α β] [TopologicalSpace β] [HasContinuousConstSmul α β] (a : α)
+theorem IsCompact.smul {α β} [SMul α β] [TopologicalSpace β] [HasContinuousConstSMul α β] (a : α)
     {s : Set β} (hs : IsCompact s) : IsCompact (a • s) :=
   hs.image (continuous_id.const_smul a)
 #align is_compact.smul IsCompact.smul
@@ -161,13 +161,13 @@ section Monoid
 
 variable [TopologicalSpace α]
 
-variable [Monoid M] [MulAction M α] [HasContinuousConstSmul M α]
+variable [Monoid M] [MulAction M α] [HasContinuousConstSMul M α]
 
 @[to_additive]
-instance Units.hasContinuousConstSmul : HasContinuousConstSmul Mˣ α
+instance Units.hasContinuousConstSMul : HasContinuousConstSMul Mˣ α
     where continuous_const_smul m := (continuous_const_smul (m : M) : _)
-#align units.has_continuous_const_smul Units.hasContinuousConstSmul
-#align add_units.has_continuous_const_vadd AddUnits.hasContinuousConstVadd
+#align units.has_continuous_const_smul Units.hasContinuousConstSMul
+#align add_units.has_continuous_const_vadd AddUnits.hasContinuousConstVAdd
 
 @[to_additive]
 theorem smul_closure_subset (c : M) (s : Set α) : c • closure s ⊆ closure (c • s) :=
@@ -186,7 +186,7 @@ end Monoid
 
 section Group
 
-variable {G : Type _} [TopologicalSpace α] [Group G] [MulAction G α] [HasContinuousConstSmul G α]
+variable {G : Type _} [TopologicalSpace α] [Group G] [MulAction G α] [HasContinuousConstSMul G α]
 
 @[to_additive]
 theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} (c : G) :
@@ -285,7 +285,7 @@ end Group
 section GroupWithZero
 
 variable {G₀ : Type _} [TopologicalSpace α] [GroupWithZero G₀] [MulAction G₀ α]
-  [HasContinuousConstSmul G₀ α]
+  [HasContinuousConstSMul G₀ α]
 
 theorem tendsto_const_smul_iff₀ {f : β → α} {l : Filter β} {a : α} {c : G₀} (hc : c ≠ 0) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
@@ -332,7 +332,7 @@ theorem interior_smul₀ {c : G₀} (hc : c ≠ 0) (s : Set α) : interior (c 
 #align interior_smul₀ interior_smul₀
 
 theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpace E] [T1Space E]
-    [HasContinuousConstSmul G₀ E] (c : G₀) (s : Set E) : closure (c • s) = c • closure s := by
+    [HasContinuousConstSMul G₀ E] (c : G₀) (s : Set E) : closure (c • s) = c • closure s := by
   rcases eq_or_ne c 0 with (rfl | hc)
   · rcases eq_empty_or_nonempty s with (rfl | hs)
     · simp
@@ -344,7 +344,7 @@ theorem closure_smul₀ {E} [Zero E] [MulActionWithZero G₀ E] [TopologicalSpac
 /-- `smul` is a closed map in the second argument.
 
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
-normed field) is `is_closed_map_smul_left` in `analysis.normed_space.finite_dimension`. -/
+normed field) is `isClosedMap_smul_left` in `Analysis.NormedSpace.FiniteDimension`. -/
 theorem isClosedMap_smul_of_ne_zero {c : G₀} (hc : c ≠ 0) : IsClosedMap fun x : α => c • x :=
   (Homeomorph.smulOfNeZero c hc).isClosedMap
 #align is_closed_map_smul_of_ne_zero isClosedMap_smul_of_ne_zero
@@ -359,7 +359,7 @@ theorem IsClosed.smul_of_ne_zero {c : G₀} {s : Set α} (hs : IsClosed s) (hc :
 The lemma that `smul` is a closed map in the first argument (for a normed space over a complete
 normed field) is `isClosedMap_smul_left` in `Analysis.NormedSpace.FiniteDimension`. -/
 theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
-    [T1Space M] [Module 𝕜 M] [HasContinuousConstSmul 𝕜 M] (c : 𝕜) :
+    [T1Space M] [Module 𝕜 M] [HasContinuousConstSMul 𝕜 M] (c : 𝕜) :
     IsClosedMap fun x : M => c • x := by
   rcases eq_or_ne c 0 with (rfl | hne)
   · simp only [zero_smul]
@@ -368,7 +368,7 @@ theorem isClosedMap_smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid
 #align is_closed_map_smul₀ isClosedMap_smul₀
 
 theorem IsClosed.smul₀ {𝕜 M : Type _} [DivisionRing 𝕜] [AddCommMonoid M] [TopologicalSpace M]
-    [T1Space M] [Module 𝕜 M] [HasContinuousConstSmul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
+    [T1Space M] [Module 𝕜 M] [HasContinuousConstSMul 𝕜 M] (c : 𝕜) {s : Set M} (hs : IsClosed s) :
     IsClosed (c • s) :=
   isClosedMap_smul₀ c s hs
 #align is_closed.smul₀ IsClosed.smul₀
@@ -389,7 +389,7 @@ end GroupWithZero
 
 namespace IsUnit
 
-variable [Monoid M] [TopologicalSpace α] [MulAction M α] [HasContinuousConstSmul M α]
+variable [Monoid M] [TopologicalSpace α] [MulAction M α] [HasContinuousConstSMul M α]
 
 nonrec theorem tendsto_const_smul_iff {f : β → α} {l : Filter β} {a : α} {c : M} (hc : IsUnit c) :
     Tendsto (fun x => c • f x) l (𝓝 <| c • a) ↔ Tendsto f l (𝓝 a) :=
@@ -436,47 +436,47 @@ nonrec theorem isClosedMap_smul (hc : IsUnit c) : IsClosedMap fun x : α => c 
 end IsUnit
 
 -- porting note: todo: use `Set.Nonempty`
-/-- Class `ProperlyDiscontinuousSmul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
+/-- Class `ProperlyDiscontinuousSMul Γ T` says that the scalar multiplication `(•) : Γ → T → T`
 is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely many
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
 -/
-class ProperlyDiscontinuousSmul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] :
+class ProperlyDiscontinuousSMul (Γ : Type _) (T : Type _) [TopologicalSpace T] [SMul Γ T] :
     Prop where
   /-- Given two compact sets `K` and `L`, `γ • K ∩ L` is nonempty for finitely many `γ`. -/
   finite_disjoint_inter_image :
     ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (γ • ·)  '' K ∩ L ≠ ∅ }
-#align properly_discontinuous_smul ProperlyDiscontinuousSmul
+#align properly_discontinuous_smul ProperlyDiscontinuousSMul
 
-/-- Class `ProperlyDiscontinuousVadd Γ T` says that the additive action `(+ᵥ) : Γ → T → T`
+/-- Class `ProperlyDiscontinuousVAdd Γ T` says that the additive action `(+ᵥ) : Γ → T → T`
 is properly discontinuous, that is, for any pair of compact sets `K, L` in `T`, only finitely many
 `γ:Γ` move `K` to have nontrivial intersection with `L`.
 -/
-class ProperlyDiscontinuousVadd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] :
+class ProperlyDiscontinuousVAdd (Γ : Type _) (T : Type _) [TopologicalSpace T] [VAdd Γ T] :
   Prop where
   /-- Given two compact sets `K` and `L`, `γ +ᵥ K ∩ L` is nonempty for finitely many `γ`. -/
   finite_disjoint_inter_image :
     ∀ {K L : Set T}, IsCompact K → IsCompact L → Set.Finite { γ : Γ | (γ +ᵥ ·) '' K ∩ L ≠ ∅ }
-#align properly_discontinuous_vadd ProperlyDiscontinuousVadd
+#align properly_discontinuous_vadd ProperlyDiscontinuousVAdd
 
-attribute [to_additive] ProperlyDiscontinuousSmul
+attribute [to_additive] ProperlyDiscontinuousSMul
 
 variable {Γ : Type _} [Group Γ] {T : Type _} [TopologicalSpace T] [MulAction Γ T]
 
 /-- A finite group action is always properly discontinuous. -/
 @[to_additive "A finite group action is always properly discontinuous."]
-instance (priority := 100) Finite.to_properlyDiscontinuousSmul [Finite Γ] :
-    ProperlyDiscontinuousSmul Γ T where finite_disjoint_inter_image _ _ := Set.toFinite _
-#align finite.to_properly_discontinuous_smul Finite.to_properlyDiscontinuousSmul
-#align finite.to_properly_discontinuous_vadd Finite.to_properlyDiscontinuousVadd
+instance (priority := 100) Finite.to_properlyDiscontinuousSMul [Finite Γ] :
+    ProperlyDiscontinuousSMul Γ T where finite_disjoint_inter_image _ _ := Set.toFinite _
+#align finite.to_properly_discontinuous_smul Finite.to_properlyDiscontinuousSMul
+#align finite.to_properly_discontinuous_vadd Finite.to_properlyDiscontinuousVAdd
 
-export ProperlyDiscontinuousSmul (finite_disjoint_inter_image)
-export ProperlyDiscontinuousVadd (finite_disjoint_inter_image)
+export ProperlyDiscontinuousSMul (finite_disjoint_inter_image)
+export ProperlyDiscontinuousVAdd (finite_disjoint_inter_image)
 
 /-- The quotient map by a group action is open, i.e. the quotient by a group action is an open
   quotient. -/
 @[to_additive "The quotient map by a group action is open, i.e. the quotient by a group
 action is an open quotient. "]
-theorem isOpenMap_quotient_mk'_mul [HasContinuousConstSmul Γ T] :
+theorem isOpenMap_quotient_mk'_mul [HasContinuousConstSMul Γ T] :
     IsOpenMap (Quotient.mk' : T → Quotient (MulAction.orbitRel Γ T)) := fun U hU => by
   rw [isOpen_coinduced, MulAction.quotient_preimage_image_eq_union_mul U]
   exact isOpen_unionᵢ fun γ => isOpenMap_smul γ U hU
@@ -486,8 +486,8 @@ theorem isOpenMap_quotient_mk'_mul [HasContinuousConstSmul Γ T] :
 /-- The quotient by a discontinuous group action of a locally compact t2 space is t2. -/
 @[to_additive "The quotient by a discontinuous group action of a locally compact t2
 space is t2."]
-instance (priority := 100) t2Space_of_properlyDiscontinuousSmul_of_t2Space [T2Space T]
-    [LocallyCompactSpace T] [HasContinuousConstSmul Γ T] [ProperlyDiscontinuousSmul Γ T] :
+instance (priority := 100) t2Space_of_properlyDiscontinuousSMul_of_t2Space [T2Space T]
+    [LocallyCompactSpace T] [HasContinuousConstSMul Γ T] [ProperlyDiscontinuousSMul Γ T] :
     T2Space (Quotient (MulAction.orbitRel Γ T)) := by
   set Q := Quotient (MulAction.orbitRel Γ T)
   rw [t2Space_iff_nhds]
@@ -517,24 +517,24 @@ instance (priority := 100) t2Space_of_properlyDiscontinuousSmul_of_t2Space [T2Sp
   · rintro ⟨-, h'⟩
     simp only [image_smul, Classical.not_not, mem_setOf_eq, Ne.def] at H
     exact eq_empty_iff_forall_not_mem.mp H (γ • x) ⟨mem_image_of_mem _ x_in_K₀, h'⟩
-#align t2_space_of_properly_discontinuous_smul_of_t2_space t2Space_of_properlyDiscontinuousSmul_of_t2Space
-#align t2_space_of_properly_discontinuous_vadd_of_t2_space t2Space_of_properlyDiscontinuousVadd_of_t2Space
+#align t2_space_of_properly_discontinuous_smul_of_t2_space t2Space_of_properlyDiscontinuousSMul_of_t2Space
+#align t2_space_of_properly_discontinuous_vadd_of_t2_space t2Space_of_properlyDiscontinuousVAdd_of_t2Space
 
 /-- The quotient of a second countable space by a group action is second countable. -/
 @[to_additive "The quotient of a second countable space by an additive group action is second
 countable."]
-theorem HasContinuousConstSmul.secondCountableTopology [SecondCountableTopology T]
-    [HasContinuousConstSmul Γ T] : SecondCountableTopology (Quotient (MulAction.orbitRel Γ T)) :=
+theorem HasContinuousConstSMul.secondCountableTopology [SecondCountableTopology T]
+    [HasContinuousConstSMul Γ T] : SecondCountableTopology (Quotient (MulAction.orbitRel Γ T)) :=
   TopologicalSpace.Quotient.secondCountableTopology isOpenMap_quotient_mk'_mul
-#align has_continuous_const_smul.second_countable_topology HasContinuousConstSmul.secondCountableTopology
-#align has_continuous_const_vadd.second_countable_topology HasContinuousConstVadd.secondCountableTopology
+#align has_continuous_const_smul.second_countable_topology HasContinuousConstSMul.secondCountableTopology
+#align has_continuous_const_vadd.second_countable_topology HasContinuousConstVAdd.secondCountableTopology
 
 section nhds
 
 section MulAction
 
 variable {G₀ : Type _} [GroupWithZero G₀] [MulAction G₀ α] [TopologicalSpace α]
-  [HasContinuousConstSmul G₀ α]
+  [HasContinuousConstSMul G₀ α]
 
 -- porting note: generalize to a group action + `IsUnit`
 /-- Scalar multiplication preserves neighborhoods. -/
@@ -557,7 +557,7 @@ end MulAction
 section DistribMulAction
 
 variable {G₀ : Type _} [GroupWithZero G₀] [AddMonoid α] [DistribMulAction G₀ α] [TopologicalSpace α]
-  [HasContinuousConstSmul G₀ α]
+  [HasContinuousConstSMul G₀ α]
 
 theorem set_smul_mem_nhds_zero_iff {s : Set α} {c : G₀} (hc : c ≠ 0) :
     c • s ∈ 𝓝 (0 : α) ↔ s ∈ 𝓝 (0 : α) := by
feat: port Topology.Algebra.ConstMulAction (#2012)

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

Dependencies 9 + 322

323 files ported (97.3%)
143192 lines ported (96.6%)
Show graph

The unported dependencies are