topology.uniform_space.uniform_convergence_topologyMathlib.Topology.UniformSpace.UniformConvergenceTopology

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -689,8 +689,8 @@ protected theorem topologicalSpace_eq :
       ⨅ (s : Set α) (hs : s ∈ 𝔖),
         TopologicalSpace.induced s.restrict (UniformFun.topologicalSpace s β) :=
   by
-  simp only [UniformOnFun.topologicalSpace, toTopologicalSpace_iInf, toTopologicalSpace_iInf,
-    toTopologicalSpace_comap]
+  simp only [UniformOnFun.topologicalSpace, UniformSpace.toTopologicalSpace_iInf,
+    UniformSpace.toTopologicalSpace_iInf, UniformSpace.toTopologicalSpace_comap]
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
 -/
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
 -/
-import Mathbin.Topology.UniformSpace.UniformConvergence
-import Mathbin.Topology.UniformSpace.Pi
-import Mathbin.Topology.UniformSpace.Equiv
+import Topology.UniformSpace.UniformConvergence
+import Topology.UniformSpace.Pi
+import Topology.UniformSpace.Equiv
 
 #align_import topology.uniform_space.uniform_convergence_topology from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
 
Diff
@@ -471,7 +471,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   change comap (Prod.map (of_fun ∘ (· ∘ ·) f ∘ to_fun) (of_fun ∘ (· ∘ ·) f ∘ to_fun)) _ = _
   rw [← uniformity_comap] at hf ⊢
   congr
-  rw [← uniformSpace_eq hf, UniformFun.comap_eq]
+  rw [← UniformSpace.ext hf, UniformFun.comap_eq]
   rfl
 #align uniform_fun.postcomp_uniform_inducing UniformFun.postcomp_uniformInducing
 -/
@@ -878,7 +878,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   change comap (Prod.map (of_fun 𝔖 ∘ (· ∘ ·) f ∘ to_fun 𝔖) (of_fun 𝔖 ∘ (· ∘ ·) f ∘ to_fun 𝔖)) _ = _
   rw [← uniformity_comap] at hf ⊢
   congr
-  rw [← uniformSpace_eq hf, UniformOnFun.comap_eq]
+  rw [← UniformSpace.ext hf, UniformOnFun.comap_eq]
   rfl
 #align uniform_on_fun.postcomp_uniform_inducing UniformOnFun.postcomp_uniformInducing
 -/
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module topology.uniform_space.uniform_convergence_topology
-! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.UniformSpace.UniformConvergence
 import Mathbin.Topology.UniformSpace.Pi
 import Mathbin.Topology.UniformSpace.Equiv
 
+#align_import topology.uniform_space.uniform_convergence_topology from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
+
 /-!
 # Topology and uniform structure of uniform convergence
 
Diff
@@ -164,16 +164,12 @@ def UniformOnFun (α β : Type _) (𝔖 : Set (Set α)) :=
 #align uniform_on_fun UniformOnFun
 -/
 
--- mathport name: «expr →ᵤ »
 scoped[UniformConvergence] notation:25 α " →ᵤ " β:0 => UniformFun α β
 
--- mathport name: «expr →ᵤ[ ] »
 scoped[UniformConvergence] notation:25 α " →ᵤ[" 𝔖 "] " β:0 => UniformOnFun α β 𝔖
 
--- mathport name: «exprλᵘ , »
 scoped[UniformConvergence] notation3"λᵘ "(...)", "r:(scoped p => UniformFun.ofFun p) => r
 
--- mathport name: «exprλᵘ[ ] , »
 scoped[UniformConvergence] notation3"λᵘ["𝔖"] "(...)", "r:(scoped p => UniformFun.ofFun p) => r
 
 instance {α β} [Nonempty β] : Nonempty (α →ᵤ β) :=
@@ -262,11 +258,9 @@ protected def filter (𝓕 : Filter <| β × β) : Filter ((α →ᵤ β) × (α
 #align uniform_fun.filter UniformFun.filter
 -/
 
--- mathport name: exprΦ
 local notation "Φ" => fun (α β : Type _) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) =>
   (uvx.1.1 uvx.2, uvx.1.2 uvx.2)
 
--- mathport name: exprlower_adjoint
 /- This is a lower adjoint to `uniform_convergence.filter` (see `uniform_convergence.gc`).
 The exact definition of the lower adjoint `l` is not interesting; we will only use that it exists
 (in `uniform_convergence.mono` and `uniform_convergence.infi_eq`) and that
@@ -274,6 +268,7 @@ The exact definition of the lower adjoint `l` is not interesting; we will only u
 `𝓕 : filter (γ × γ)` and `f : γ → α` (in `uniform_convergence.comap_eq`). -/
 local notation "lower_adjoint" => fun 𝓐 => map (Φ α β) (𝓐 ×ᶠ ⊤)
 
+#print UniformFun.gc /-
 /-- The function `uniform_convergence.filter α β : filter (β × β) → filter ((α →ᵤ β) × (α →ᵤ β))`
 has a lower adjoint `l` (in the sense of `galois_connection`). The exact definition of `l` is not
 interesting; we will only use that it exists (in `uniform_convergence.mono` and
@@ -299,6 +294,7 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
       (forall₂_congr fun U hU => mem_prod_top.symm)
     _ ↔ lower_adjoint 𝓐 ≤ 𝓕 := Iff.rfl
 #align uniform_fun.gc UniformFun.gc
+-/
 
 variable [UniformSpace β]
 
@@ -327,15 +323,16 @@ instance : UniformSpace (α →ᵤ β) :=
 instance : TopologicalSpace (α →ᵤ β) :=
   inferInstance
 
--- mathport name: «expr𝒰( , , )»
 local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 
+#print UniformFun.hasBasis_uniformity /-
 /-- By definition, the uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}`
 for `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_uniformity :
     (𝓤 (α →ᵤ β)).HasBasis (fun V => V ∈ 𝓤 β) (UniformFun.gen α β) :=
   (UniformFun.isBasis_gen α β (𝓤 β)).HasBasis
 #align uniform_fun.has_basis_uniformity UniformFun.hasBasis_uniformity
+-/
 
 #print UniformFun.hasBasis_uniformity_of_basis /-
 /-- The uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓑` as
@@ -351,22 +348,27 @@ protected theorem hasBasis_uniformity_of_basis {ι : Sort _} {p : ι → Prop} {
 #align uniform_fun.has_basis_uniformity_of_basis UniformFun.hasBasis_uniformity_of_basis
 -/
 
+#print UniformFun.hasBasis_nhds_of_basis /-
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓑` as a filter
 basis, for any basis `𝓑` of `𝓤 β`. -/
 protected theorem hasBasis_nhds_of_basis (f) {p : ι → Prop} {s : ι → Set (β × β)}
     (h : HasBasis (𝓤 β) p s) : (𝓝 f).HasBasis p fun i => {g | (f, g) ∈ UniformFun.gen α β (s i)} :=
   nhds_basis_uniformity' (UniformFun.hasBasis_uniformity_of_basis α β h)
 #align uniform_fun.has_basis_nhds_of_basis UniformFun.hasBasis_nhds_of_basis
+-/
 
+#print UniformFun.hasBasis_nhds /-
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓤 β` as a
 filter basis. -/
 protected theorem hasBasis_nhds (f) :
     (𝓝 f).HasBasis (fun V => V ∈ 𝓤 β) fun V => {g | (f, g) ∈ UniformFun.gen α β V} :=
   UniformFun.hasBasis_nhds_of_basis α β f (Filter.basis_sets _)
 #align uniform_fun.has_basis_nhds UniformFun.hasBasis_nhds
+-/
 
 variable {α}
 
+#print UniformFun.uniformContinuous_eval /-
 /-- Evaluation at a fixed point is uniformly continuous on `α →ᵤ β`. -/
 theorem uniformContinuous_eval (x : α) :
     UniformContinuous (Function.eval x ∘ toFun : (α →ᵤ β) → β) :=
@@ -376,15 +378,19 @@ theorem uniformContinuous_eval (x : α) :
     (UniformFun.hasBasis_uniformity α β).le_basis_iffₓ ((𝓤 _).basis_sets.comap _)]
   exact fun U hU => ⟨U, hU, fun uv huv => huv x⟩
 #align uniform_fun.uniform_continuous_eval UniformFun.uniformContinuous_eval
+-/
 
 variable {β}
 
+#print UniformFun.mono /-
 /-- If `u₁` and `u₂` are two uniform structures on `γ` and `u₁ ≤ u₂`, then
 `𝒰(α, γ, u₁) ≤ 𝒰(α, γ, u₂)`. -/
 protected theorem mono : Monotone (@UniformFun.uniformSpace α γ) := fun u₁ u₂ hu =>
   (UniformFun.gc α γ).monotone_u hu
 #align uniform_fun.mono UniformFun.mono
+-/
 
+#print UniformFun.iInf_eq /-
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i)`. -/
 protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, ⨅ i, u i) = ⨅ i, 𝒰(α, γ, u i) :=
@@ -396,6 +402,7 @@ protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, ⨅ i, u i
   rw [iInf_uniformity, iInf_uniformity]
   exact (UniformFun.gc α γ).u_iInf
 #align uniform_fun.infi_eq UniformFun.iInf_eq
+-/
 
 #print UniformFun.inf_eq /-
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
@@ -410,6 +417,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} : 𝒰(α, γ, u₁ ⊓ u
 #align uniform_fun.inf_eq UniformFun.inf_eq
 -/
 
+#print UniformFun.comap_eq /-
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒰(α, γ, comap f u) = comap (λ g, f ∘ g) 𝒰(α, γ, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
@@ -432,6 +440,7 @@ protected theorem comap_eq {f : γ → β} :
   rw [map_comm this, ← prod_map_map_eq']
   rfl
 #align uniform_fun.comap_eq UniformFun.comap_eq
+-/
 
 #print UniformFun.postcomp_uniformContinuous /-
 /-- Post-composition by a uniformly continuous function is uniformly continuous on `α →ᵤ β`.
@@ -482,6 +491,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) 
 #align uniform_fun.congr_right UniformFun.congrRight
 -/
 
+#print UniformFun.precomp_uniformContinuous /-
 /-- Pre-composition by a any function is uniformly continuous for the uniform structures of
 uniform convergence.
 
@@ -498,6 +508,7 @@ protected theorem precomp_uniformContinuous {f : γ → α} :
       ((UniformFun.hasBasis_uniformity γ β).comap _)]
   exact fun U hU => ⟨U, hU, fun uv huv x => huv (f x)⟩
 #align uniform_fun.precomp_uniform_continuous UniformFun.precomp_uniformContinuous
+-/
 
 #print UniformFun.congrLeft /-
 /-- Turn a bijection `γ ≃ α` into a uniform isomorphism
@@ -519,6 +530,7 @@ instance [T2Space β] : T2Space (α →ᵤ β)
     obtain ⟨x, hx⟩ := not_forall.mp (mt funext h)
     exact separated_by_continuous (uniform_continuous_eval β x).Continuous hx
 
+#print UniformFun.uniformContinuous_toFun /-
 /-- The natural map `uniform_fun.to_fun` from `α →ᵤ β` to `α → β` is uniformly continuous.
 
 In other words, the uniform structure of uniform convergence is finer than that of pointwise
@@ -530,7 +542,9 @@ protected theorem uniformContinuous_toFun : UniformContinuous (toFun : (α →
   intro x
   exact uniform_continuous_eval β x
 #align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFun
+-/
 
+#print UniformFun.tendsto_iff_tendstoUniformly /-
 /-- The topology of uniform convergence indeed gives the same notion of convergence as
 `tendsto_uniformly`. -/
 protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α →ᵤ β} :
@@ -539,7 +553,9 @@ protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α
   rw [(UniformFun.hasBasis_nhds α β f).tendsto_right_iff, TendstoUniformly]
   exact Iff.rfl
 #align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformly
+-/
 
+#print UniformFun.uniformEquivProdArrow /-
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
 isomorphism between `α →ᵤ β × γ` and `(α →ᵤ β) × (α →ᵤ γ)`. -/
 protected def uniformEquivProdArrow [UniformSpace γ] : (α →ᵤ β × γ) ≃ᵤ (α →ᵤ β) × (α →ᵤ γ) :=
@@ -561,6 +577,7 @@ protected def uniformEquivProdArrow [UniformSpace γ] : (α →ᵤ β × γ) ≃
       rw [Prod.uniformSpace, Prod.uniformSpace, UniformSpace.comap_inf, UniformFun.inf_eq]
       congr <;> rw [← UniformSpace.comap_comap, UniformFun.comap_eq] <;> rfl)
 #align uniform_fun.uniform_equiv_prod_arrow UniformFun.uniformEquivProdArrow
+-/
 
 -- the relevant diagram commutes by definition
 variable (α) (δ : ι → Type _) [∀ i, UniformSpace (δ i)]
@@ -598,7 +615,6 @@ variable {α β : Type _} {γ ι : Type _}
 
 variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 
--- mathport name: «expr𝒰( , , )»
 local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 
 #print UniformOnFun.gen /-
@@ -611,6 +627,7 @@ protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[
 #align uniform_on_fun.gen UniformOnFun.gen
 -/
 
+#print UniformOnFun.gen_eq_preimage_restrict /-
 /-- For `S : set α` and `V : set (β × β)`, we have
 `uniform_on_fun.gen 𝔖 S V = (S.restrict × S.restrict) ⁻¹' (uniform_fun.gen S β V)`.
 This is the crucial fact for proving that the family `uniform_on_fun.gen S V` for `S ∈ 𝔖` and
@@ -622,12 +639,16 @@ protected theorem gen_eq_preimage_restrict {𝔖} (S : Set α) (V : Set (β × 
   ext uv
   exact ⟨fun h ⟨x, hx⟩ => h x hx, fun h x hx => h ⟨x, hx⟩⟩
 #align uniform_on_fun.gen_eq_preimage_restrict UniformOnFun.gen_eq_preimage_restrict
+-/
 
+#print UniformOnFun.gen_mono /-
 /-- `uniform_on_fun.gen` is antitone in the first argument and monotone in the second. -/
 protected theorem gen_mono {𝔖} {S S' : Set α} {V V' : Set (β × β)} (hS : S' ⊆ S) (hV : V ⊆ V') :
     UniformOnFun.gen 𝔖 S V ⊆ UniformOnFun.gen 𝔖 S' V' := fun uv h x hx => hV (h x <| hS hx)
 #align uniform_on_fun.gen_mono UniformOnFun.gen_mono
+-/
 
+#print UniformOnFun.isBasis_gen /-
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis on `β × β`, then the
 family `uniform_on_fun.gen 𝔖 S V` for `S ∈ 𝔖` and `V ∈ 𝓑` is a filter basis on
 `(α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β)`.
@@ -644,6 +665,7 @@ protected theorem isBasis_gen (𝔖 : Set (Set α)) (h : 𝔖.Nonempty) (h' : Di
       ⟨⟨hU₃, hV₃⟩, fun uv huv =>
         ⟨fun x hx => (hV₁₂₃ <| huv x <| hU₁₃ hx).1, fun x hx => (hV₁₂₃ <| huv x <| hU₂₃ hx).2⟩⟩⟩⟩
 #align uniform_on_fun.is_basis_gen UniformOnFun.isBasis_gen
+-/
 
 variable (α β) [UniformSpace β] (𝔖 : Set (Set α))
 
@@ -654,7 +676,6 @@ by `S.restrict`, the map of restriction to `S`, of the uniform structure `𝒰(s
 instance : UniformSpace (α →ᵤ[𝔖] β) :=
   ⨅ (s : Set α) (hs : s ∈ 𝔖), UniformSpace.comap s.restrict 𝒰(s, β, _)
 
--- mathport name: «expr𝒱( , , , )»
 local notation "𝒱(" α ", " β ", " 𝔖 ", " u ")" => @UniformOnFun.uniformSpace α β u 𝔖
 
 /-- Topology of `𝔖`-convergence, i.e uniform convergence on the elements of `𝔖`, declared as an
@@ -662,6 +683,7 @@ instance on `α →ᵤ[𝔖] β`. -/
 instance : TopologicalSpace (α →ᵤ[𝔖] β) :=
   𝒱(α, β, 𝔖, _).toTopologicalSpace
 
+#print UniformOnFun.topologicalSpace_eq /-
 /-- The topology of `𝔖`-convergence is the infimum, for `S ∈ 𝔖`, of topology induced by the map
 of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S`, where `↥S →ᵤ β` is endowed with
 the topology of uniform convergence. -/
@@ -674,7 +696,9 @@ protected theorem topologicalSpace_eq :
     toTopologicalSpace_comap]
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
+-/
 
+#print UniformOnFun.hasBasis_uniformity_of_basis_aux₁ /-
 protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι → Set (β × β)}
     (hb : HasBasis (𝓤 β) p s) (S : Set α) :
     (@uniformity (α →ᵤ[𝔖] β) ((UniformFun.uniformSpace S β).comap S.restrict)).HasBasis p fun i =>
@@ -683,7 +707,9 @@ protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι
   simp_rw [UniformOnFun.gen_eq_preimage_restrict, uniformity_comap]
   exact (UniformFun.hasBasis_uniformity_of_basis S β hb).comap _
 #align uniform_on_fun.has_basis_uniformity_of_basis_aux₁ UniformOnFun.hasBasis_uniformity_of_basis_aux₁
+-/
 
+#print UniformOnFun.hasBasis_uniformity_of_basis_aux₂ /-
 protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
     {s : ι → Set (β × β)} (hb : HasBasis (𝓤 β) p s) :
     DirectedOn
@@ -695,7 +721,9 @@ protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·
           (UniformOnFun.hasBasis_uniformity_of_basis_aux₁ α β 𝔖 hb _)).mpr
       fun V hV => ⟨V, hV, UniformOnFun.gen_mono hst subset_rfl⟩
 #align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂
+-/
 
+#print UniformOnFun.hasBasis_uniformity_of_basis /-
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis of `𝓤 β`, then the
 uniformity of `α →ᵤ[𝔖] β` admits the family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and
 `V ∈ 𝓑` as a filter basis. -/
@@ -710,7 +738,9 @@ protected theorem hasBasis_uniformity_of_basis (h : 𝔖.Nonempty) (h' : Directe
       (fun S hS => UniformOnFun.hasBasis_uniformity_of_basis_aux₁ α β 𝔖 hb S)
       (UniformOnFun.hasBasis_uniformity_of_basis_aux₂ α β 𝔖 h' hb)
 #align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basis
+-/
 
+#print UniformOnFun.hasBasis_uniformity /-
 /-- If `𝔖 : set (set α)` is nonempty and directed, then the uniformity of `α →ᵤ[𝔖] β` admits the
 family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· ⊆ ·) 𝔖) :
@@ -718,7 +748,9 @@ protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· 
       UniformOnFun.gen 𝔖 SV.1 SV.2 :=
   UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' (𝓤 β).basis_sets
 #align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformity
+-/
 
+#print UniformOnFun.hasBasis_nhds_of_basis /-
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓑` as a filter basis, for any basis
 `𝓑` of `𝓤 β`. -/
@@ -729,7 +761,9 @@ protected theorem hasBasis_nhds_of_basis (f : α →ᵤ[𝔖] β) (h : 𝔖.None
   letI : UniformSpace (α → β) := UniformOnFun.uniformSpace α β 𝔖
   nhds_basis_uniformity (UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' hb)
 #align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basis
+-/
 
+#print UniformOnFun.hasBasis_nhds /-
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h' : DirectedOn (· ⊆ ·) 𝔖) :
@@ -737,7 +771,9 @@ protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h'
       {g | (g, f) ∈ UniformOnFun.gen 𝔖 SV.1 SV.2} :=
   UniformOnFun.hasBasis_nhds_of_basis α β 𝔖 f h h' (Filter.basis_sets _)
 #align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhds
+-/
 
+#print UniformOnFun.uniformContinuous_restrict /-
 /-- If `S ∈ 𝔖`, then the restriction to `S` is a uniformly continuous map from `α →ᵤ[𝔖] β` to
 `↥S →ᵤ β`. -/
 protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
@@ -747,9 +783,11 @@ protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
   simp only [UniformOnFun.uniformSpace, map_le_iff_le_comap, iInf_uniformity]
   exact iInf₂_le s h
 #align uniform_on_fun.uniform_continuous_restrict UniformOnFun.uniformContinuous_restrict
+-/
 
 variable {α}
 
+#print UniformOnFun.mono /-
 /-- Let `u₁`, `u₂` be two uniform structures on `γ` and `𝔖₁ 𝔖₂ : set (set α)`. If `u₁ ≤ u₂` and
 `𝔖₂ ⊆ 𝔖₁` then `𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂)`. -/
 protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) ⦃𝔖₁ 𝔖₂ : Set (Set α)⦄
@@ -758,7 +796,9 @@ protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) 
     𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₁) := iInf_le_iInf_of_subset h𝔖
     _ ≤ 𝒱(α, γ, 𝔖₂, u₂) := iInf₂_mono fun i hi => UniformSpace.comap_mono <| UniformFun.mono hu
 #align uniform_on_fun.mono UniformOnFun.mono
+-/
 
+#print UniformOnFun.uniformContinuous_eval_of_mem /-
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
 `α →ᵤ[𝔖] β`. -/
 theorem uniformContinuous_eval_of_mem {x : α} (hxs : x ∈ s) (hs : s ∈ 𝔖) :
@@ -766,9 +806,11 @@ theorem uniformContinuous_eval_of_mem {x : α} (hxs : x ∈ s) (hs : s ∈ 𝔖)
   (UniformFun.uniformContinuous_eval β (⟨x, hxs⟩ : s)).comp
     (UniformOnFun.uniformContinuous_restrict α β 𝔖 hs)
 #align uniform_on_fun.uniform_continuous_eval_of_mem UniformOnFun.uniformContinuous_eval_of_mem
+-/
 
 variable {β} {𝔖}
 
+#print UniformOnFun.iInf_eq /-
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`. -/
 protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) :=
@@ -777,6 +819,7 @@ protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, ⨅
   rw [iInf_comm]
   exact iInf_congr fun s => iInf_comm
 #align uniform_on_fun.infi_eq UniformOnFun.iInf_eq
+-/
 
 #print UniformOnFun.inf_eq /-
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
@@ -790,6 +833,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 #align uniform_on_fun.inf_eq UniformOnFun.inf_eq
 -/
 
+#print UniformOnFun.comap_eq /-
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
@@ -801,6 +845,7 @@ protected theorem comap_eq {f : γ → β} :
     UniformSpace.comap_comap]
   rfl
 #align uniform_on_fun.comap_eq UniformOnFun.comap_eq
+-/
 
 #print UniformOnFun.postcomp_uniformContinuous /-
 -- by definition, `∀ S ∈ 𝔖, (f ∘ —) ∘ S.restrict = S.restrict ∘ (f ∘ —)`.
@@ -853,6 +898,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖]
 #align uniform_on_fun.congr_right UniformOnFun.congrRight
 -/
 
+#print UniformOnFun.precomp_uniformContinuous /-
 /-- Let `f : γ → α`, `𝔖 : set (set α)`, `𝔗 : set (set γ)`, and assume that `∀ T ∈ 𝔗, f '' T ∈ 𝔖`.
 Then, the function `(λ g, g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
 
@@ -885,6 +931,7 @@ protected theorem precomp_uniformContinuous {𝔗 : Set (Set γ)} {f : γ → α
   rw [← uniformContinuous_iff]
   exact UniformFun.precomp_uniformContinuous
 #align uniform_on_fun.precomp_uniform_continuous UniformOnFun.precomp_uniformContinuous
+-/
 
 #print UniformOnFun.congrLeft /-
 /-- Turn a bijection `e : γ ≃ α` such that we have both `∀ T ∈ 𝔗, e '' T ∈ 𝔖` and
@@ -918,6 +965,7 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
 #align uniform_on_fun.t2_space_of_covering UniformOnFun.t2Space_of_covering
 -/
 
+#print UniformOnFun.uniformContinuous_toFun /-
 /-- If `𝔖` covers `α`, the natural map `uniform_on_fun.to_fun` from `α →ᵤ[𝔖] β` to `α → β` is
 uniformly continuous.
 
@@ -931,7 +979,9 @@ protected theorem uniformContinuous_toFun (h : ⋃₀ 𝔖 = univ) :
   obtain ⟨s : Set α, hs : s ∈ 𝔖, hxs : x ∈ s⟩ := sUnion_eq_univ_iff.mp h x
   exact uniform_continuous_eval_of_mem β 𝔖 hxs hs
 #align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFun
+-/
 
+#print UniformOnFun.tendsto_iff_tendstoUniformlyOn /-
 /-- Convergence in the topology of `𝔖`-convergence means uniform convergence on `S` (in the sense
 of `tendsto_uniformly_on`) for all `S ∈ 𝔖`. -/
 protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β} {f : α →ᵤ[𝔖] β} :
@@ -945,6 +995,7 @@ protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β}
     UniformFun.tendsto_iff_tendstoUniformly]
   rfl
 #align uniform_on_fun.tendsto_iff_tendsto_uniformly_on UniformOnFun.tendsto_iff_tendstoUniformlyOn
+-/
 
 #print UniformOnFun.uniformEquivProdArrow /-
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
Diff
@@ -298,7 +298,6 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
             𝓐 ×ᶠ (⊤ : Filter α) :=
       (forall₂_congr fun U hU => mem_prod_top.symm)
     _ ↔ lower_adjoint 𝓐 ≤ 𝓕 := Iff.rfl
-    
 #align uniform_fun.gc UniformFun.gc
 
 variable [UniformSpace β]
@@ -448,7 +447,6 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
       𝒰(α, γ, _) ≤ 𝒰(α, γ, ‹UniformSpace β›.comap f) :=
         UniformFun.mono (uniformContinuous_iff.mp hf)
       _ = 𝒰(α, β, _).comap ((· ∘ ·) f) := UniformFun.comap_eq
-      
 #align uniform_fun.postcomp_uniform_continuous UniformFun.postcomp_uniformContinuous
 -/
 
@@ -759,7 +757,6 @@ protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) 
   calc
     𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₁) := iInf_le_iInf_of_subset h𝔖
     _ ≤ 𝒱(α, γ, 𝔖₂, u₂) := iInf₂_mono fun i hi => UniformSpace.comap_mono <| UniformFun.mono hu
-    
 #align uniform_on_fun.mono UniformOnFun.mono
 
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
@@ -821,7 +818,6 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
     𝒱(α, γ, 𝔖, _) ≤ 𝒱(α, γ, 𝔖, ‹UniformSpace β›.comap f) :=
       UniformOnFun.mono (uniform_continuous_iff.mp hf) subset_rfl
     _ = 𝒱(α, β, 𝔖, _).comap ((· ∘ ·) f) := UniformOnFun.comap_eq
-    
 #align uniform_on_fun.postcomp_uniform_continuous UniformOnFun.postcomp_uniformContinuous
 -/
 
Diff
@@ -226,7 +226,7 @@ variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 /-- Basis sets for the uniformity of uniform convergence: `gen α β V` is the set of pairs `(f, g)`
 of functions `α →ᵤ β` such that `∀ x, (f x, g x) ∈ V`. -/
 protected def gen (V : Set (β × β)) : Set ((α →ᵤ β) × (α →ᵤ β)) :=
-  { uv : (α →ᵤ β) × (α →ᵤ β) | ∀ x, (uv.1 x, uv.2 x) ∈ V }
+  {uv : (α →ᵤ β) × (α →ᵤ β) | ∀ x, (uv.1 x, uv.2 x) ∈ V}
 #align uniform_fun.gen UniformFun.gen
 -/
 
@@ -290,12 +290,11 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
     _ ↔ ∀ U ∈ 𝓕, UniformFun.gen α β U ∈ 𝓐 := image_subset_iff
     _ ↔
         ∀ U ∈ 𝓕,
-          { uv | ∀ x, (uv, x) ∈ { t : ((α →ᵤ β) × (α →ᵤ β)) × α | (t.1.1 t.2, t.1.2 t.2) ∈ U } } ∈
-            𝓐 :=
+          {uv | ∀ x, (uv, x) ∈ {t : ((α →ᵤ β) × (α →ᵤ β)) × α | (t.1.1 t.2, t.1.2 t.2) ∈ U}} ∈ 𝓐 :=
       Iff.rfl
     _ ↔
         ∀ U ∈ 𝓕,
-          { uvx : ((α →ᵤ β) × (α →ᵤ β)) × α | (uvx.1.1 uvx.2, uvx.1.2 uvx.2) ∈ U } ∈
+          {uvx : ((α →ᵤ β) × (α →ᵤ β)) × α | (uvx.1.1 uvx.2, uvx.1.2 uvx.2) ∈ U} ∈
             𝓐 ×ᶠ (⊤ : Filter α) :=
       (forall₂_congr fun U hU => mem_prod_top.symm)
     _ ↔ lower_adjoint 𝓐 ≤ 𝓕 := Iff.rfl
@@ -356,15 +355,14 @@ protected theorem hasBasis_uniformity_of_basis {ι : Sort _} {p : ι → Prop} {
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓑` as a filter
 basis, for any basis `𝓑` of `𝓤 β`. -/
 protected theorem hasBasis_nhds_of_basis (f) {p : ι → Prop} {s : ι → Set (β × β)}
-    (h : HasBasis (𝓤 β) p s) :
-    (𝓝 f).HasBasis p fun i => { g | (f, g) ∈ UniformFun.gen α β (s i) } :=
+    (h : HasBasis (𝓤 β) p s) : (𝓝 f).HasBasis p fun i => {g | (f, g) ∈ UniformFun.gen α β (s i)} :=
   nhds_basis_uniformity' (UniformFun.hasBasis_uniformity_of_basis α β h)
 #align uniform_fun.has_basis_nhds_of_basis UniformFun.hasBasis_nhds_of_basis
 
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓤 β` as a
 filter basis. -/
 protected theorem hasBasis_nhds (f) :
-    (𝓝 f).HasBasis (fun V => V ∈ 𝓤 β) fun V => { g | (f, g) ∈ UniformFun.gen α β V } :=
+    (𝓝 f).HasBasis (fun V => V ∈ 𝓤 β) fun V => {g | (f, g) ∈ UniformFun.gen α β V} :=
   UniformFun.hasBasis_nhds_of_basis α β f (Filter.basis_sets _)
 #align uniform_fun.has_basis_nhds UniformFun.hasBasis_nhds
 
@@ -611,7 +609,7 @@ local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 `∀ x ∈ S, (f x, g x) ∈ V`. Note that the family `𝔖 : set (set α)` is only used to specify which
 type alias of `α → β` to use here. -/
 protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β)) :=
-  { uv : (α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β) | ∀ x ∈ S, (uv.1 x, uv.2 x) ∈ V }
+  {uv : (α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β) | ∀ x ∈ S, (uv.1 x, uv.2 x) ∈ V}
 #align uniform_on_fun.gen UniformOnFun.gen
 -/
 
@@ -729,7 +727,7 @@ family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓑` a
 protected theorem hasBasis_nhds_of_basis (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty)
     (h' : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop} {s : ι → Set (β × β)} (hb : HasBasis (𝓤 β) p s) :
     (𝓝 f).HasBasis (fun Si : Set α × ι => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si =>
-      { g | (g, f) ∈ UniformOnFun.gen 𝔖 Si.1 (s Si.2) } :=
+      {g | (g, f) ∈ UniformOnFun.gen 𝔖 Si.1 (s Si.2)} :=
   letI : UniformSpace (α → β) := UniformOnFun.uniformSpace α β 𝔖
   nhds_basis_uniformity (UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' hb)
 #align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basis
@@ -738,7 +736,7 @@ protected theorem hasBasis_nhds_of_basis (f : α →ᵤ[𝔖] β) (h : 𝔖.None
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h' : DirectedOn (· ⊆ ·) 𝔖) :
     (𝓝 f).HasBasis (fun SV : Set α × Set (β × β) => SV.1 ∈ 𝔖 ∧ SV.2 ∈ 𝓤 β) fun SV =>
-      { g | (g, f) ∈ UniformOnFun.gen 𝔖 SV.1 SV.2 } :=
+      {g | (g, f) ∈ UniformOnFun.gen 𝔖 SV.1 SV.2} :=
   UniformOnFun.hasBasis_nhds_of_basis α β 𝔖 f h h' (Filter.basis_sets _)
 #align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhds
 
Diff
@@ -467,7 +467,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   constructor
   replace hf : (𝓤 β).comap (Prod.map f f) = _ := hf.comap_uniformity
   change comap (Prod.map (of_fun ∘ (· ∘ ·) f ∘ to_fun) (of_fun ∘ (· ∘ ·) f ∘ to_fun)) _ = _
-  rw [← uniformity_comap] at hf⊢
+  rw [← uniformity_comap] at hf ⊢
   congr
   rw [← uniformSpace_eq hf, UniformFun.comap_eq]
   rfl
@@ -840,7 +840,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   constructor
   replace hf : (𝓤 β).comap (Prod.map f f) = _ := hf.comap_uniformity
   change comap (Prod.map (of_fun 𝔖 ∘ (· ∘ ·) f ∘ to_fun 𝔖) (of_fun 𝔖 ∘ (· ∘ ·) f ∘ to_fun 𝔖)) _ = _
-  rw [← uniformity_comap] at hf⊢
+  rw [← uniformity_comap] at hf ⊢
   congr
   rw [← uniformSpace_eq hf, UniformOnFun.comap_eq]
   rfl
Diff
@@ -141,7 +141,7 @@ uniform convergence
 
 noncomputable section
 
-open Topology Classical uniformity Filter
+open scoped Topology Classical uniformity Filter
 
 open Set Filter
 
@@ -214,7 +214,7 @@ def UniformOnFun.toFun {α β} (𝔖) : (α →ᵤ[𝔖] β) ≃ (α → β) :=
 -- `f x` (because of definitional equality with `α → β`).
 end TypeAlias
 
-open UniformConvergence
+open scoped UniformConvergence
 
 namespace UniformFun
 
Diff
@@ -274,12 +274,6 @@ The exact definition of the lower adjoint `l` is not interesting; we will only u
 `𝓕 : filter (γ × γ)` and `f : γ → α` (in `uniform_convergence.comap_eq`). -/
 local notation "lower_adjoint" => fun 𝓐 => map (Φ α β) (𝓐 ×ᶠ ⊤)
 
-/- warning: uniform_fun.gc -> UniformFun.gc is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}), GaloisConnection.{max u1 u2, u2} (Filter.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Filter.{u2} (Prod.{u2, u2} β β)) (PartialOrder.toPreorder.{max u1 u2} (Filter.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Filter.partialOrder.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)))) (PartialOrder.toPreorder.{u2} (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.partialOrder.{u2} (Prod.{u2, u2} β β))) (fun (𝓐 : Filter.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) => Filter.map.{max u1 u2, u2} (Prod.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α) (Prod.{u2, u2} β β) ((fun (α : Type.{u1}) (β : Type.{u2}) (uvx : Prod.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α) => Prod.mk.{u2, u2} β β (Prod.fst.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) (Prod.fst.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx) (Prod.snd.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx)) (Prod.snd.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) (Prod.fst.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx) (Prod.snd.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx))) α β) (Filter.prod.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α 𝓐 (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α)))) (fun (𝓕 : Filter.{u2} (Prod.{u2, u2} β β)) => UniformFun.filter.{u1, u2} α β 𝓕)
-but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}), GaloisConnection.{max u2 u1, u1} (Filter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Filter.{u1} (Prod.{u1, u1} β β)) (PartialOrder.toPreorder.{max u2 u1} (Filter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Filter.instPartialOrderFilter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)))) (PartialOrder.toPreorder.{u1} (Filter.{u1} (Prod.{u1, u1} β β)) (Filter.instPartialOrderFilter.{u1} (Prod.{u1, u1} β β))) (fun (𝓐 : Filter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) => Filter.map.{max u2 u1, u1} (Prod.{max u1 u2, u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) α) (Prod.{u1, u1} β β) (UniformFun.phi.{u2, u1} α β) (Filter.prod.{max u2 u1, u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) α 𝓐 (Top.top.{u2} (Filter.{u2} α) (Filter.instTopFilter.{u2} α)))) (fun (𝓕 : Filter.{u1} (Prod.{u1, u1} β β)) => UniformFun.filter.{u2, u1} α β 𝓕)
-Case conversion may be inaccurate. Consider using '#align uniform_fun.gc UniformFun.gcₓ'. -/
 /-- The function `uniform_convergence.filter α β : filter (β × β) → filter ((α →ᵤ β) × (α →ᵤ β))`
 has a lower adjoint `l` (in the sense of `galois_connection`). The exact definition of `l` is not
 interesting; we will only use that it exists (in `uniform_convergence.mono` and
@@ -338,12 +332,6 @@ instance : TopologicalSpace (α →ᵤ β) :=
 -- mathport name: «expr𝒰( , , )»
 local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 
-/- warning: uniform_fun.has_basis_uniformity -> UniformFun.hasBasis_uniformity is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β], Filter.HasBasis.{max u1 u2, succ u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) (Set.{u2} (Prod.{u2, u2} β β)) (uniformity.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1)) (fun (V : Set.{u2} (Prod.{u2, u2} β β)) => Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) V (uniformity.{u2} β _inst_1)) (UniformFun.gen.{u1, u2} α β)
-but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β], Filter.HasBasis.{max u2 u1, succ u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Set.{u1} (Prod.{u1, u1} β β)) (uniformity.{max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1)) (fun (V : Set.{u1} (Prod.{u1, u1} β β)) => Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) V (uniformity.{u1} β _inst_1)) (UniformFun.gen.{u2, u1} α β)
-Case conversion may be inaccurate. Consider using '#align uniform_fun.has_basis_uniformity UniformFun.hasBasis_uniformityₓ'. -/
 /-- By definition, the uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}`
 for `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_uniformity :
@@ -365,12 +353,6 @@ protected theorem hasBasis_uniformity_of_basis {ι : Sort _} {p : ι → Prop} {
 #align uniform_fun.has_basis_uniformity_of_basis UniformFun.hasBasis_uniformity_of_basis
 -/
 
-/- warning: uniform_fun.has_basis_nhds_of_basis -> UniformFun.hasBasis_nhds_of_basis is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (f : UniformFun.{u1, u2} α β) {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, succ u3} (UniformFun.{u1, u2} α β) ι (nhds.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.topologicalSpace.{u1, u2} α β _inst_1) f) p (fun (i : ι) => setOf.{max u1 u2} (UniformFun.{u1, u2} α β) (fun (g : UniformFun.{u1, u2} α β) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Prod.mk.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) f g) (UniformFun.gen.{u1, u2} α β (s i)))))
-but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (f : UniformFun.{u3, u2} α β) {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, succ u1} (UniformFun.{u3, u2} α β) ι (nhds.{max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.topologicalSpace.{u3, u2} α β _inst_1) f) p (fun (i : ι) => setOf.{max u3 u2} (UniformFun.{u3, u2} α β) (fun (g : UniformFun.{u3, u2} α β) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β))) (Prod.mk.{max u3 u2, max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β) f g) (UniformFun.gen.{u3, u2} α β (s i)))))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.has_basis_nhds_of_basis UniformFun.hasBasis_nhds_of_basisₓ'. -/
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓑` as a filter
 basis, for any basis `𝓑` of `𝓤 β`. -/
 protected theorem hasBasis_nhds_of_basis (f) {p : ι → Prop} {s : ι → Set (β × β)}
@@ -379,12 +361,6 @@ protected theorem hasBasis_nhds_of_basis (f) {p : ι → Prop} {s : ι → Set (
   nhds_basis_uniformity' (UniformFun.hasBasis_uniformity_of_basis α β h)
 #align uniform_fun.has_basis_nhds_of_basis UniformFun.hasBasis_nhds_of_basis
 
-/- warning: uniform_fun.has_basis_nhds -> UniformFun.hasBasis_nhds is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (f : UniformFun.{u1, u2} α β), Filter.HasBasis.{max u1 u2, succ u2} (UniformFun.{u1, u2} α β) (Set.{u2} (Prod.{u2, u2} β β)) (nhds.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.topologicalSpace.{u1, u2} α β _inst_1) f) (fun (V : Set.{u2} (Prod.{u2, u2} β β)) => Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) V (uniformity.{u2} β _inst_1)) (fun (V : Set.{u2} (Prod.{u2, u2} β β)) => setOf.{max u1 u2} (UniformFun.{u1, u2} α β) (fun (g : UniformFun.{u1, u2} α β) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Prod.mk.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) f g) (UniformFun.gen.{u1, u2} α β V)))
-but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (f : UniformFun.{u2, u1} α β), Filter.HasBasis.{max u2 u1, succ u1} (UniformFun.{u2, u1} α β) (Set.{u1} (Prod.{u1, u1} β β)) (nhds.{max u2 u1} (UniformFun.{u2, u1} α β) (UniformFun.topologicalSpace.{u2, u1} α β _inst_1) f) (fun (V : Set.{u1} (Prod.{u1, u1} β β)) => Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) V (uniformity.{u1} β _inst_1)) (fun (V : Set.{u1} (Prod.{u1, u1} β β)) => setOf.{max u2 u1} (UniformFun.{u2, u1} α β) (fun (g : UniformFun.{u2, u1} α β) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Prod.mk.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β) f g) (UniformFun.gen.{u2, u1} α β V)))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.has_basis_nhds UniformFun.hasBasis_nhdsₓ'. -/
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓤 β` as a
 filter basis. -/
 protected theorem hasBasis_nhds (f) :
@@ -394,12 +370,6 @@ protected theorem hasBasis_nhds (f) :
 
 variable {α}
 
-/- warning: uniform_fun.uniform_continuous_eval -> UniformFun.uniformContinuous_eval is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (x : α), UniformContinuous.{max u1 u2, u2} (UniformFun.{u1, u2} α β) β (UniformFun.uniformSpace.{u1, u2} α β _inst_1) _inst_1 (Function.comp.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (UniformFun.{u1, u2} α β) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (x : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β)))
-but is expected to have type
-  forall {α : Type.{u2}} (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (x : α), UniformContinuous.{max u2 u1, u1} (UniformFun.{u2, u1} α β) β (UniformFun.uniformSpace.{u2, u1} α β _inst_1) _inst_1 (Function.comp.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u1} (UniformFun.{u2, u1} α β) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (x : α) => β) x) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_eval UniformFun.uniformContinuous_evalₓ'. -/
 /-- Evaluation at a fixed point is uniformly continuous on `α →ᵤ β`. -/
 theorem uniformContinuous_eval (x : α) :
     UniformContinuous (Function.eval x ∘ toFun : (α →ᵤ β) → β) :=
@@ -412,24 +382,12 @@ theorem uniformContinuous_eval (x : α) :
 
 variable {β}
 
-/- warning: uniform_fun.mono -> UniformFun.mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {γ : Type.{u2}}, Monotone.{u2, max u1 u2} (UniformSpace.{u2} γ) (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (UniformSpace.partialOrder.{u2} γ)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformSpace.partialOrder.{max u1 u2} (UniformFun.{u1, u2} α γ))) (UniformFun.uniformSpace.{u1, u2} α γ)
-but is expected to have type
-  forall {α : Type.{u1}} {γ : Type.{u2}}, Monotone.{u2, max u1 u2} (UniformSpace.{u2} γ) (UniformSpace.{max u2 u1} (UniformFun.{u1, u2} α γ)) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (instPartialOrderUniformSpace.{u2} γ)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u2 u1} (UniformFun.{u1, u2} α γ)) (instPartialOrderUniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ))) (UniformFun.uniformSpace.{u1, u2} α γ)
-Case conversion may be inaccurate. Consider using '#align uniform_fun.mono UniformFun.monoₓ'. -/
 /-- If `u₁` and `u₂` are two uniform structures on `γ` and `u₁ ≤ u₂`, then
 `𝒰(α, γ, u₁) ≤ 𝒰(α, γ, u₂)`. -/
 protected theorem mono : Monotone (@UniformFun.uniformSpace α γ) := fun u₁ u₂ hu =>
   (UniformFun.gc α γ).monotone_u hu
 #align uniform_fun.mono UniformFun.mono
 
-/- warning: uniform_fun.infi_eq -> UniformFun.iInf_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformFun.uniformSpace.{u1, u2} α γ (iInf.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i))) (iInf.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformSpace.hasInf.{max u1 u2} (UniformFun.{u1, u2} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u1, u2} α γ (u i)))
-but is expected to have type
-  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (UniformFun.uniformSpace.{u2, u3} α γ (iInf.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i))) (iInf.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (instInfSetUniformSpace.{max u2 u3} (UniformFun.{u2, u3} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u2, u3} α γ (u i)))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.infi_eq UniformFun.iInf_eqₓ'. -/
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i)`. -/
 protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, ⨅ i, u i) = ⨅ i, 𝒰(α, γ, u i) :=
@@ -455,12 +413,6 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} : 𝒰(α, γ, u₁ ⊓ u
 #align uniform_fun.inf_eq UniformFun.inf_eq
 -/
 
-/- warning: uniform_fun.comap_eq -> UniformFun.comap_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> β}, Eq.{succ (max u1 u3)} (UniformSpace.{max u1 u3} (UniformFun.{u1, u3} α γ)) (UniformFun.uniformSpace.{u1, u3} α γ (UniformSpace.comap.{u3, u2} γ β f _inst_1)) (UniformSpace.comap.{max u1 u3, max u1 u2} (UniformFun.{u1, u3} α γ) (UniformFun.{u1, u2} α β) (Function.comp.{succ u1, succ u3, succ u2} α γ β f) (UniformFun.uniformSpace.{u1, u2} α β _inst_1))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformFun.{u3, u2} α γ)) (UniformFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1)) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4219 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β f x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4219) (UniformFun.uniformSpace.{u3, u1} α β _inst_1))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.comap_eq UniformFun.comap_eqₓ'. -/
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒰(α, γ, comap f u) = comap (λ g, f ∘ g) 𝒰(α, γ, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
@@ -534,12 +486,6 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) 
 #align uniform_fun.congr_right UniformFun.congrRight
 -/
 
-/- warning: uniform_fun.precomp_uniform_continuous -> UniformFun.precomp_uniformContinuous is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u1 u2, max u3 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u3, u2} γ β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u3, u2} γ β _inst_1) (fun (g : UniformFun.{u1, u2} α β) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) => (γ -> β) -> (UniformFun.{u3, u2} γ β)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (UniformFun.ofFun.{u3, u2} γ β) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u3 u2, max u2 u1} (UniformFun.{u3, u2} α β) (UniformFun.{u1, u2} γ β) (UniformFun.uniformSpace.{u3, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u2} γ β _inst_1) (fun (g : UniformFun.{u3, u2} α β) => FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : γ -> β) => UniformFun.{u1, u2} γ β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (UniformFun.ofFun.{u1, u2} γ β) (Function.comp.{succ u1, succ u3, succ u2} γ α β g f))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.precomp_uniform_continuous UniformFun.precomp_uniformContinuousₓ'. -/
 /-- Pre-composition by a any function is uniformly continuous for the uniform structures of
 uniform convergence.
 
@@ -577,12 +523,6 @@ instance [T2Space β] : T2Space (α →ᵤ β)
     obtain ⟨x, hx⟩ := not_forall.mp (mt funext h)
     exact separated_by_continuous (uniform_continuous_eval β x).Continuous hx
 
-/- warning: uniform_fun.uniform_continuous_to_fun -> UniformFun.uniformContinuous_toFun is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β], UniformContinuous.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (α -> β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β], UniformContinuous.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (α -> β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFunₓ'. -/
 /-- The natural map `uniform_fun.to_fun` from `α →ᵤ β` to `α → β` is uniformly continuous.
 
 In other words, the uniform structure of uniform convergence is finer than that of pointwise
@@ -595,12 +535,6 @@ protected theorem uniformContinuous_toFun : UniformContinuous (toFun : (α →
   exact uniform_continuous_eval β x
 #align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFun
 
-/- warning: uniform_fun.tendsto_iff_tendsto_uniformly -> UniformFun.tendsto_iff_tendstoUniformly is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} {p : Filter.{u3} ι} [_inst_1 : UniformSpace.{u2} β] {F : ι -> (UniformFun.{u1, u2} α β)} {f : UniformFun.{u1, u2} α β}, Iff (Filter.Tendsto.{u3, max u1 u2} ι (UniformFun.{u1, u2} α β) F p (nhds.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.topologicalSpace.{u1, u2} α β _inst_1) f)) (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p)
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Type.{u1}} {p : Filter.{u1} ι} [_inst_1 : UniformSpace.{u2} β] {F : ι -> (UniformFun.{u3, u2} α β)} {f : UniformFun.{u3, u2} α β}, Iff (Filter.Tendsto.{u1, max u3 u2} ι (UniformFun.{u3, u2} α β) F p (nhds.{max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.topologicalSpace.{u3, u2} α β _inst_1) f)) (TendstoUniformly.{u3, u2, u1} α β ι _inst_1 F f p)
-Case conversion may be inaccurate. Consider using '#align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformlyₓ'. -/
 /-- The topology of uniform convergence indeed gives the same notion of convergence as
 `tendsto_uniformly`. -/
 protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α →ᵤ β} :
@@ -610,12 +544,6 @@ protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α
   exact Iff.rfl
 #align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformly
 
-/- warning: uniform_fun.uniform_equiv_prod_arrow -> UniformFun.uniformEquivProdArrow is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] [_inst_2 : UniformSpace.{u3} γ], UniformEquiv.{max u1 u2 u3, max (max u1 u2) u1 u3} (UniformFun.{u1, max u2 u3} α (Prod.{u2, u3} β γ)) (Prod.{max u1 u2, max u1 u3} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ)) (UniformFun.uniformSpace.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (Prod.uniformSpace.{u2, u3} β γ _inst_1 _inst_2)) (Prod.uniformSpace.{max u1 u2, max u1 u3} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u3} α γ _inst_2))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] [_inst_2 : UniformSpace.{u3} γ], UniformEquiv.{max (max u3 u2) u1, max (max u3 u1) u2 u1} (UniformFun.{u1, max u3 u2} α (Prod.{u2, u3} β γ)) (Prod.{max u2 u1, max u3 u1} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ)) (UniformFun.uniformSpace.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (instUniformSpaceProd.{u2, u3} β γ _inst_1 _inst_2)) (instUniformSpaceProd.{max u1 u2, max u1 u3} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u3} α γ _inst_2))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_equiv_prod_arrow UniformFun.uniformEquivProdArrowₓ'. -/
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
 isomorphism between `α →ᵤ β × γ` and `(α →ᵤ β) × (α →ᵤ γ)`. -/
 protected def uniformEquivProdArrow [UniformSpace γ] : (α →ᵤ β × γ) ≃ᵤ (α →ᵤ β) × (α →ᵤ γ) :=
@@ -687,12 +615,6 @@ protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[
 #align uniform_on_fun.gen UniformOnFun.gen
 -/
 
-/- warning: uniform_on_fun.gen_eq_preimage_restrict -> UniformOnFun.gen_eq_preimage_restrict is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {𝔖 : Set.{u1} (Set.{u1} α)} (S : Set.{u1} α) (V : Set.{u2} (Prod.{u2, u2} β β)), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (UniformOnFun.gen.{u1, u2} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{max u1 u2, max u1 u2} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β)) (Prod.map.{max u1 u2, max u1 u2, max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S)) (UniformFun.gen.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β V))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} (S : Set.{u2} α) (V : Set.{u1} (Prod.{u1, u1} β β)), Eq.{max (succ u2) (succ u1)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Prod.{max u2 u1, max u2 u1} ((Set.Elem.{u2} α S) -> β) ((Set.Elem.{u2} α S) -> β)) (Prod.map.{max u1 u2, max u2 u1, max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))) (UniformFun.gen.{u2, u1} (Set.Elem.{u2} α S) β V))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.gen_eq_preimage_restrict UniformOnFun.gen_eq_preimage_restrictₓ'. -/
 /-- For `S : set α` and `V : set (β × β)`, we have
 `uniform_on_fun.gen 𝔖 S V = (S.restrict × S.restrict) ⁻¹' (uniform_fun.gen S β V)`.
 This is the crucial fact for proving that the family `uniform_on_fun.gen S V` for `S ∈ 𝔖` and
@@ -705,23 +627,11 @@ protected theorem gen_eq_preimage_restrict {𝔖} (S : Set α) (V : Set (β × 
   exact ⟨fun h ⟨x, hx⟩ => h x hx, fun h x hx => h ⟨x, hx⟩⟩
 #align uniform_on_fun.gen_eq_preimage_restrict UniformOnFun.gen_eq_preimage_restrict
 
-/- warning: uniform_on_fun.gen_mono -> UniformOnFun.gen_mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {𝔖 : Set.{u1} (Set.{u1} α)} {S : Set.{u1} α} {S' : Set.{u1} α} {V : Set.{u2} (Prod.{u2, u2} β β)} {V' : Set.{u2} (Prod.{u2, u2} β β)}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) S' S) -> (HasSubset.Subset.{u2} (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasSubset.{u2} (Prod.{u2, u2} β β)) V V') -> (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasSubset.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (UniformOnFun.gen.{u1, u2} α β 𝔖 S V) (UniformOnFun.gen.{u1, u2} α β 𝔖 S' V'))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} {S : Set.{u2} α} {S' : Set.{u2} α} {V : Set.{u1} (Prod.{u1, u1} β β)} {V' : Set.{u1} (Prod.{u1, u1} β β)}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) S' S) -> (HasSubset.Subset.{u1} (Set.{u1} (Prod.{u1, u1} β β)) (Set.instHasSubsetSet.{u1} (Prod.{u1, u1} β β)) V V') -> (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instHasSubsetSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (UniformOnFun.gen.{u2, u1} α β 𝔖 S' V'))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.gen_mono UniformOnFun.gen_monoₓ'. -/
 /-- `uniform_on_fun.gen` is antitone in the first argument and monotone in the second. -/
 protected theorem gen_mono {𝔖} {S S' : Set α} {V V' : Set (β × β)} (hS : S' ⊆ S) (hV : V ⊆ V') :
     UniformOnFun.gen 𝔖 S V ⊆ UniformOnFun.gen 𝔖 S' V' := fun uv h x hx => hV (h x <| hS hx)
 #align uniform_on_fun.gen_mono UniformOnFun.gen_mono
 
-/- warning: uniform_on_fun.is_basis_gen -> UniformOnFun.isBasis_gen is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall (𝓑 : FilterBasis.{u2} (Prod.{u2, u2} β β)), Filter.IsBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (FilterBasis.{u2} (Prod.{u2, u2} β β)) (FilterBasis.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝓑)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6673 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6673 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675) 𝔖) -> (forall (𝓑 : FilterBasis.{u1} (Prod.{u1, u1} β β)), Filter.IsBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (FilterBasis.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilterBasis.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝓑)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.is_basis_gen UniformOnFun.isBasis_genₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis on `β × β`, then the
 family `uniform_on_fun.gen 𝔖 S V` for `S ∈ 𝔖` and `V ∈ 𝓑` is a filter basis on
 `(α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β)`.
@@ -756,12 +666,6 @@ instance on `α →ᵤ[𝔖] β`. -/
 instance : TopologicalSpace (α →ᵤ[𝔖] β) :=
   𝒱(α, β, 𝔖, _).toTopologicalSpace
 
-/- warning: uniform_on_fun.topological_space_eq -> UniformOnFun.topologicalSpace_eq is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), Eq.{succ (max u1 u2)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) (iInf.{max u1 u2, succ u1} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Set.{u1} α) (fun (s : Set.{u1} α) => iInf.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) (fun (hs : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.topologicalSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1))))
-but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (iInf.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => iInf.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eqₓ'. -/
 /-- The topology of `𝔖`-convergence is the infimum, for `S ∈ 𝔖`, of topology induced by the map
 of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S`, where `↥S →ᵤ β` is endowed with
 the topology of uniform convergence. -/
@@ -775,12 +679,6 @@ protected theorem topologicalSpace_eq :
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
 
-/- warning: uniform_on_fun.has_basis_uniformity_of_basis_aux₁ -> UniformOnFun.hasBasis_uniformity_of_basis_aux₁ is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (forall (S : Set.{u1} α), Filter.HasBasis.{max u1 u2, succ u3} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) ι (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformSpace.comap.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β _inst_1))) p (fun (i : ι) => UniformOnFun.gen.{u1, u2} α β 𝔖 S (s i)))
-but is expected to have type
-  forall (α : Type.{u1}) (β : Type.{u3}) {ι : Type.{u2}} [_inst_1 : UniformSpace.{u3} β] (𝔖 : Set.{u1} (Set.{u1} α)) {p : ι -> Prop} {s : ι -> (Set.{u3} (Prod.{u3, u3} β β))}, (Filter.HasBasis.{u3, succ u2} (Prod.{u3, u3} β β) ι (uniformity.{u3} β _inst_1) p s) -> (forall (S : Set.{u1} α), Filter.HasBasis.{max u1 u3, succ u2} (Prod.{max u3 u1, max u3 u1} (UniformOnFun.{u1, u3} α β 𝔖) (UniformOnFun.{u1, u3} α β 𝔖)) ι (uniformity.{max u3 u1} (UniformOnFun.{u1, u3} α β 𝔖) (UniformSpace.comap.{max u1 u3, max u1 u3} (UniformOnFun.{u1, u3} α β 𝔖) ((Set.Elem.{u1} α S) -> β) (Set.restrict.{u1, u3} α (fun (ᾰ : α) => β) S) (UniformFun.uniformSpace.{u1, u3} (Set.Elem.{u1} α S) β _inst_1))) p (fun (i : ι) => UniformOnFun.gen.{u1, u3} α β 𝔖 S (s i)))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis_aux₁ UniformOnFun.hasBasis_uniformity_of_basis_aux₁ₓ'. -/
 protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι → Set (β × β)}
     (hb : HasBasis (𝓤 β) p s) (S : Set α) :
     (@uniformity (α →ᵤ[𝔖] β) ((UniformFun.uniformSpace S β).comap S.restrict)).HasBasis p fun i =>
@@ -790,12 +688,6 @@ protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι
   exact (UniformFun.hasBasis_uniformity_of_basis S β hb).comap _
 #align uniform_on_fun.has_basis_uniformity_of_basis_aux₁ UniformOnFun.hasBasis_uniformity_of_basis_aux₁
 
-/- warning: uniform_on_fun.has_basis_uniformity_of_basis_aux₂ -> UniformOnFun.hasBasis_uniformity_of_basis_aux₂ is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u1} (Set.{u1} α) (Order.Preimage.{succ u1, succ (max u1 u2)} (Set.{u1} α) (UniformSpace.{max u1 u2} (α -> β)) (fun (s : Set.{u1} α) => UniformSpace.comap.{max u1 u2, max u1 u2} (α -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1)) (GE.ge.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (Preorder.toHasLe.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (UniformSpace.partialOrder.{max u1 u2} (α -> β)))))) 𝔖))
-but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7579 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7581 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7579 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7581) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u3} (Set.{u3} α) (Order.Preimage.{succ u3, succ (max u3 u2)} (Set.{u3} α) (UniformSpace.{max u3 u2} (α -> β)) (fun (s : Set.{u3} α) => UniformSpace.comap.{max u3 u2, max u3 u2} (α -> β) ((Set.Elem.{u3} α s) -> β) (Set.restrict.{u3, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u3, u2} (Set.Elem.{u3} α s) β _inst_1)) (GE.ge.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (Preorder.toLE.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (PartialOrder.toPreorder.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (instPartialOrderUniformSpace.{max u3 u2} (α -> β)))))) 𝔖))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂ₓ'. -/
 protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
     {s : ι → Set (β × β)} (hb : HasBasis (𝓤 β) p s) :
     DirectedOn
@@ -808,12 +700,6 @@ protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·
       fun V hV => ⟨V, hV, UniformOnFun.gen_mono hst subset_rfl⟩
 #align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂
 
-/- warning: uniform_on_fun.has_basis_uniformity_of_basis -> UniformOnFun.hasBasis_uniformity_of_basis is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u3} (Set.{u1} α) ι) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))
-but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7721 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7723 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7721 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7723) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Prod.{u3, u1} (Set.{u3} α) ι) (uniformity.{max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u3, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basisₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis of `𝓤 β`, then the
 uniformity of `α →ᵤ[𝔖] β` admits the family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and
 `V ∈ 𝓑` as a filter basis. -/
@@ -829,12 +715,6 @@ protected theorem hasBasis_uniformity_of_basis (h : 𝔖.Nonempty) (h' : Directe
       (UniformOnFun.hasBasis_uniformity_of_basis_aux₂ α β 𝔖 h' hb)
 #align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basis
 
-/- warning: uniform_on_fun.has_basis_uniformity -> UniformOnFun.hasBasis_uniformity is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
-but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7873 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7875 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7873 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7875) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformityₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed, then the uniformity of `α →ᵤ[𝔖] β` admits the
 family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· ⊆ ·) 𝔖) :
@@ -843,12 +723,6 @@ protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· 
   UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' (𝓤 β).basis_sets
 #align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformity
 
-/- warning: uniform_on_fun.has_basis_nhds_of_basis -> UniformOnFun.hasBasis_nhds_of_basis is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u3} (Set.{u1} α) ι) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))))
-but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)) (f : UniformOnFun.{u3, u2} α β 𝔖), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7993 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7995 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7993 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7995) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (UniformOnFun.{u3, u2} α β 𝔖) (Prod.{u3, u1} (Set.{u3} α) ι) (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => setOf.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (fun (g : UniformOnFun.{u3, u2} α β 𝔖) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Prod.mk.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖) g f) (UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basisₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓑` as a filter basis, for any basis
 `𝓑` of `𝓤 β`. -/
@@ -860,12 +734,6 @@ protected theorem hasBasis_nhds_of_basis (f : α →ᵤ[𝔖] β) (h : 𝔖.None
   nhds_basis_uniformity (UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' hb)
 #align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basis
 
-/- warning: uniform_on_fun.has_basis_nhds -> UniformOnFun.hasBasis_nhds is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))))
-but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) (f : UniformOnFun.{u2, u1} α β 𝔖), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8142 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8144 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8142 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8144) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (nhds.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) f) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => setOf.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Prod.mk.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖) g f) (UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhdsₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h' : DirectedOn (· ⊆ ·) 𝔖) :
@@ -874,12 +742,6 @@ protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h'
   UniformOnFun.hasBasis_nhds_of_basis α β 𝔖 f h h' (Filter.basis_sets _)
 #align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhds
 
-/- warning: uniform_on_fun.uniform_continuous_restrict -> UniformOnFun.uniformContinuous_restrict is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) => ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) -> (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (UniformFun.ofFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))))
-but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1) (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u2, u1} α β 𝔖) ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) ((Set.Elem.{u2} α s) -> β) (fun (_x : (Set.Elem.{u2} α s) -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{u2} α s) -> β) => UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) (UniformFun.ofFun.{u2, u1} (Set.Elem.{u2} α s) β)) (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_restrict UniformOnFun.uniformContinuous_restrictₓ'. -/
 /-- If `S ∈ 𝔖`, then the restriction to `S` is a uniformly continuous map from `α →ᵤ[𝔖] β` to
 `↥S →ᵤ β`. -/
 protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
@@ -892,12 +754,6 @@ protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
 
 variable {α}
 
-/- warning: uniform_on_fun.mono -> UniformOnFun.mono is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {γ : Type.{u2}} {{u₁ : UniformSpace.{u2} γ}} {{u₂ : UniformSpace.{u2} γ}}, (LE.le.{u2} (UniformSpace.{u2} γ) (Preorder.toHasLe.{u2} (UniformSpace.{u2} γ) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (UniformSpace.partialOrder.{u2} γ))) u₁ u₂) -> (forall {{𝔖₁ : Set.{u1} (Set.{u1} α)}} {{𝔖₂ : Set.{u1} (Set.{u1} α)}}, (HasSubset.Subset.{u1} (Set.{u1} (Set.{u1} α)) (Set.hasSubset.{u1} (Set.{u1} α)) 𝔖₂ 𝔖₁) -> (LE.le.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (Preorder.toHasLe.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (UniformSpace.partialOrder.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)))) (UniformOnFun.uniformSpace.{u1, u2} α γ u₁ 𝔖₁) (UniformOnFun.uniformSpace.{u1, u2} α γ u₂ 𝔖₂)))
-but is expected to have type
-  forall {α : Type.{u1}} {γ : Type.{u2}} {{u₁ : UniformSpace.{u2} γ}} {{u₂ : UniformSpace.{u2} γ}}, (LE.le.{u2} (UniformSpace.{u2} γ) (Preorder.toLE.{u2} (UniformSpace.{u2} γ) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (instPartialOrderUniformSpace.{u2} γ))) u₁ u₂) -> (forall {{𝔖₁ : Set.{u1} (Set.{u1} α)}} {{𝔖₂ : Set.{u1} (Set.{u1} α)}}, (HasSubset.Subset.{u1} (Set.{u1} (Set.{u1} α)) (Set.instHasSubsetSet.{u1} (Set.{u1} α)) 𝔖₂ 𝔖₁) -> (LE.le.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (instPartialOrderUniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)))) (UniformOnFun.uniformSpace.{u1, u2} α γ u₁ 𝔖₁) (UniformOnFun.uniformSpace.{u1, u2} α γ u₂ 𝔖₂)))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.mono UniformOnFun.monoₓ'. -/
 /-- Let `u₁`, `u₂` be two uniform structures on `γ` and `𝔖₁ 𝔖₂ : set (set α)`. If `u₁ ≤ u₂` and
 `𝔖₂ ⊆ 𝔖₁` then `𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂)`. -/
 protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) ⦃𝔖₁ 𝔖₂ : Set (Set α)⦄
@@ -908,12 +764,6 @@ protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) 
     
 #align uniform_on_fun.mono UniformOnFun.mono
 
-/- warning: uniform_on_fun.uniform_continuous_eval_of_mem -> UniformOnFun.uniformContinuous_eval_of_mem is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, u2} (UniformOnFun.{u1, u2} α β 𝔖) β (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (ᾰ : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖))))
-but is expected to have type
-  forall {α : Type.{u2}} (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) {x : α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, u1} (UniformOnFun.{u2, u1} α β 𝔖) β (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (ᾰ : α) => β) x) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖))))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_eval_of_mem UniformOnFun.uniformContinuous_eval_of_memₓ'. -/
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
 `α →ᵤ[𝔖] β`. -/
 theorem uniformContinuous_eval_of_mem {x : α} (hxs : x ∈ s) (hs : s ∈ 𝔖) :
@@ -924,12 +774,6 @@ theorem uniformContinuous_eval_of_mem {x : α} (hxs : x ∈ s) (hs : s ∈ 𝔖)
 
 variable {β} {𝔖}
 
-/- warning: uniform_on_fun.infi_eq -> UniformOnFun.iInf_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {𝔖 : Set.{u1} (Set.{u1} α)} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u2} α γ (iInf.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i)) 𝔖) (iInf.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformSpace.hasInf.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u1, u2} α γ (u i) 𝔖))
-but is expected to have type
-  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u2, u3} α γ (iInf.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i)) 𝔖) (iInf.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (instInfSetUniformSpace.{max u2 u3} (UniformOnFun.{u2, u3} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u2, u3} α γ (u i) 𝔖))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.infi_eq UniformOnFun.iInf_eqₓ'. -/
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`. -/
 protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) :=
@@ -951,12 +795,6 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 #align uniform_on_fun.inf_eq UniformOnFun.inf_eq
 -/
 
-/- warning: uniform_on_fun.comap_eq -> UniformOnFun.comap_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {f : γ -> β}, Eq.{succ (max u1 u3)} (UniformSpace.{max u1 u3} (UniformOnFun.{u1, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u3} α γ (UniformSpace.comap.{u3, u2} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u1 u3, max u1 u2} (UniformOnFun.{u1, u3} α γ 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) (Function.comp.{succ u1, succ u3, succ u2} α γ β f) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u3} (Set.{u3} α)} {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformOnFun.{u3, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) ((fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8853 : γ -> β) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8855 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8853 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8855) f) (UniformOnFun.uniformSpace.{u3, u1} α β _inst_1 𝔖))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.comap_eq UniformOnFun.comap_eqₓ'. -/
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
@@ -1021,12 +859,6 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖]
 #align uniform_on_fun.congr_right UniformOnFun.congrRight
 -/
 
-/- warning: uniform_on_fun.precomp_uniform_continuous -> UniformOnFun.precomp_uniformContinuous is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.hasSubset.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u1} (Set.{u3} γ) (Set.{u1} α) (Set.image.{u3, u1} γ α f) 𝔖)) -> (UniformContinuous.{max u1 u2, max u3 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u3, u2} γ β 𝔗) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u2} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) => (γ -> β) -> (UniformOnFun.{u3, u2} γ β 𝔗)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u2} γ β 𝔗) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.instHasSubsetSet.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u2} (Set.{u3} γ) (Set.{u2} α) (Set.image.{u3, u2} γ α f) 𝔖)) -> (UniformContinuous.{max u2 u1, max u1 u3} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u3, u1} γ β 𝔗) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u1} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : γ -> β) => UniformOnFun.{u3, u1} γ β 𝔗) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u1} γ β 𝔗) (Function.comp.{succ u3, succ u2, succ u1} γ α β g f)))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.precomp_uniform_continuous UniformOnFun.precomp_uniformContinuousₓ'. -/
 /-- Let `f : γ → α`, `𝔖 : set (set α)`, `𝔗 : set (set γ)`, and assume that `∀ T ∈ 𝔗, f '' T ∈ 𝔖`.
 Then, the function `(λ g, g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
 
@@ -1092,12 +924,6 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
 #align uniform_on_fun.t2_space_of_covering UniformOnFun.t2Space_of_covering
 -/
 
-/- warning: uniform_on_fun.uniform_continuous_to_fun -> UniformOnFun.uniformContinuous_toFun is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)}, (Eq.{succ u1} (Set.{u1} α) (Set.sUnion.{u1} α 𝔖) (Set.univ.{u1} α)) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.sUnion.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFunₓ'. -/
 /-- If `𝔖` covers `α`, the natural map `uniform_on_fun.to_fun` from `α →ᵤ[𝔖] β` to `α → β` is
 uniformly continuous.
 
@@ -1112,12 +938,6 @@ protected theorem uniformContinuous_toFun (h : ⋃₀ 𝔖 = univ) :
   exact uniform_continuous_eval_of_mem β 𝔖 hxs hs
 #align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFun
 
-/- warning: uniform_on_fun.tendsto_iff_tendsto_uniformly_on -> UniformOnFun.tendsto_iff_tendstoUniformlyOn is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} {p : Filter.{u3} ι} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {F : ι -> (UniformOnFun.{u1, u2} α β 𝔖)} {f : UniformOnFun.{u1, u2} α β 𝔖}, Iff (Filter.Tendsto.{u3, max u1 u2} ι (UniformOnFun.{u1, u2} α β 𝔖) F p (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f)) (forall (s : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 F f p s))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Type.{u1}} {p : Filter.{u1} ι} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u3} (Set.{u3} α)} {F : ι -> (UniformOnFun.{u3, u2} α β 𝔖)} {f : UniformOnFun.{u3, u2} α β 𝔖}, Iff (Filter.Tendsto.{u1, max u3 u2} ι (UniformOnFun.{u3, u2} α β 𝔖) F p (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f)) (forall (s : Set.{u3} α), (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) s 𝔖) -> (TendstoUniformlyOn.{u3, u2, u1} α β ι _inst_1 F f p s))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.tendsto_iff_tendsto_uniformly_on UniformOnFun.tendsto_iff_tendstoUniformlyOnₓ'. -/
 /-- Convergence in the topology of `𝔖`-convergence means uniform convergence on `S` (in the sense
 of `tendsto_uniformly_on`) for all `S ∈ 𝔖`. -/
 protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β} {f : α →ᵤ[𝔖] β} :
Diff
@@ -398,7 +398,7 @@ variable {α}
 lean 3 declaration is
   forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (x : α), UniformContinuous.{max u1 u2, u2} (UniformFun.{u1, u2} α β) β (UniformFun.uniformSpace.{u1, u2} α β _inst_1) _inst_1 (Function.comp.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (UniformFun.{u1, u2} α β) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (x : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β)))
 but is expected to have type
-  forall {α : Type.{u2}} (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (x : α), UniformContinuous.{max u2 u1, u1} (UniformFun.{u2, u1} α β) β (UniformFun.uniformSpace.{u2, u1} α β _inst_1) _inst_1 (Function.comp.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u1} (UniformFun.{u2, u1} α β) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (x : α) => β) x) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))
+  forall {α : Type.{u2}} (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (x : α), UniformContinuous.{max u2 u1, u1} (UniformFun.{u2, u1} α β) β (UniformFun.uniformSpace.{u2, u1} α β _inst_1) _inst_1 (Function.comp.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u1} (UniformFun.{u2, u1} α β) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (x : α) => β) x) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))
 Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_eval UniformFun.uniformContinuous_evalₓ'. -/
 /-- Evaluation at a fixed point is uniformly continuous on `α →ᵤ β`. -/
 theorem uniformContinuous_eval (x : α) :
@@ -538,7 +538,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u1 u2, max u3 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u3, u2} γ β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u3, u2} γ β _inst_1) (fun (g : UniformFun.{u1, u2} α β) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) => (γ -> β) -> (UniformFun.{u3, u2} γ β)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (UniformFun.ofFun.{u3, u2} γ β) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u3 u2, max u2 u1} (UniformFun.{u3, u2} α β) (UniformFun.{u1, u2} γ β) (UniformFun.uniformSpace.{u3, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u2} γ β _inst_1) (fun (g : UniformFun.{u3, u2} α β) => FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : γ -> β) => UniformFun.{u1, u2} γ β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (UniformFun.ofFun.{u1, u2} γ β) (Function.comp.{succ u1, succ u3, succ u2} γ α β g f))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u3 u2, max u2 u1} (UniformFun.{u3, u2} α β) (UniformFun.{u1, u2} γ β) (UniformFun.uniformSpace.{u3, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u2} γ β _inst_1) (fun (g : UniformFun.{u3, u2} α β) => FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : γ -> β) => UniformFun.{u1, u2} γ β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (UniformFun.ofFun.{u1, u2} γ β) (Function.comp.{succ u1, succ u3, succ u2} γ α β g f))
 Case conversion may be inaccurate. Consider using '#align uniform_fun.precomp_uniform_continuous UniformFun.precomp_uniformContinuousₓ'. -/
 /-- Pre-composition by a any function is uniformly continuous for the uniform structures of
 uniform convergence.
@@ -581,7 +581,7 @@ instance [T2Space β] : T2Space (α →ᵤ β)
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β], UniformContinuous.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (α -> β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β], UniformContinuous.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (α -> β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β], UniformContinuous.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (α -> β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))
 Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFunₓ'. -/
 /-- The natural map `uniform_fun.to_fun` from `α →ᵤ β` to `α → β` is uniformly continuous.
 
@@ -691,7 +691,7 @@ protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {𝔖 : Set.{u1} (Set.{u1} α)} (S : Set.{u1} α) (V : Set.{u2} (Prod.{u2, u2} β β)), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (UniformOnFun.gen.{u1, u2} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{max u1 u2, max u1 u2} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β)) (Prod.map.{max u1 u2, max u1 u2, max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S)) (UniformFun.gen.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β V))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} (S : Set.{u2} α) (V : Set.{u1} (Prod.{u1, u1} β β)), Eq.{max (succ u2) (succ u1)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Prod.{max u2 u1, max u2 u1} ((Set.Elem.{u2} α S) -> β) ((Set.Elem.{u2} α S) -> β)) (Prod.map.{max u1 u2, max u2 u1, max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))) (UniformFun.gen.{u2, u1} (Set.Elem.{u2} α S) β V))
+  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} (S : Set.{u2} α) (V : Set.{u1} (Prod.{u1, u1} β β)), Eq.{max (succ u2) (succ u1)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Prod.{max u2 u1, max u2 u1} ((Set.Elem.{u2} α S) -> β) ((Set.Elem.{u2} α S) -> β)) (Prod.map.{max u1 u2, max u2 u1, max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))) (UniformFun.gen.{u2, u1} (Set.Elem.{u2} α S) β V))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.gen_eq_preimage_restrict UniformOnFun.gen_eq_preimage_restrictₓ'. -/
 /-- For `S : set α` and `V : set (β × β)`, we have
 `uniform_on_fun.gen 𝔖 S V = (S.restrict × S.restrict) ⁻¹' (uniform_fun.gen S β V)`.
@@ -760,7 +760,7 @@ instance : TopologicalSpace (α →ᵤ[𝔖] β) :=
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), Eq.{succ (max u1 u2)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) (iInf.{max u1 u2, succ u1} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Set.{u1} α) (fun (s : Set.{u1} α) => iInf.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) (fun (hs : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.topologicalSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1))))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (iInf.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => iInf.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (iInf.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => iInf.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eqₓ'. -/
 /-- The topology of `𝔖`-convergence is the infimum, for `S ∈ 𝔖`, of topology induced by the map
 of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S`, where `↥S →ᵤ β` is endowed with
@@ -878,7 +878,7 @@ protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h'
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) => ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) -> (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (UniformFun.ofFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1) (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u2, u1} α β 𝔖) ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) ((Set.Elem.{u2} α s) -> β) (fun (_x : (Set.Elem.{u2} α s) -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : (Set.Elem.{u2} α s) -> β) => UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) (UniformFun.ofFun.{u2, u1} (Set.Elem.{u2} α s) β)) (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))))
+  forall (α : Type.{u2}) (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1) (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u2, u1} α β 𝔖) ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) ((Set.Elem.{u2} α s) -> β) (fun (_x : (Set.Elem.{u2} α s) -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : (Set.Elem.{u2} α s) -> β) => UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) (UniformFun.ofFun.{u2, u1} (Set.Elem.{u2} α s) β)) (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_restrict UniformOnFun.uniformContinuous_restrictₓ'. -/
 /-- If `S ∈ 𝔖`, then the restriction to `S` is a uniformly continuous map from `α →ᵤ[𝔖] β` to
 `↥S →ᵤ β`. -/
@@ -912,7 +912,7 @@ protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) 
 lean 3 declaration is
   forall {α : Type.{u1}} (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, u2} (UniformOnFun.{u1, u2} α β 𝔖) β (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (ᾰ : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖))))
 but is expected to have type
-  forall {α : Type.{u2}} (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) {x : α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, u1} (UniformOnFun.{u2, u1} α β 𝔖) β (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (ᾰ : α) => β) x) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖))))
+  forall {α : Type.{u2}} (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) {x : α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, u1} (UniformOnFun.{u2, u1} α β 𝔖) β (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (ᾰ : α) => β) x) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_eval_of_mem UniformOnFun.uniformContinuous_eval_of_memₓ'. -/
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
 `α →ᵤ[𝔖] β`. -/
@@ -1025,7 +1025,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.hasSubset.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u1} (Set.{u3} γ) (Set.{u1} α) (Set.image.{u3, u1} γ α f) 𝔖)) -> (UniformContinuous.{max u1 u2, max u3 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u3, u2} γ β 𝔗) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u2} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) => (γ -> β) -> (UniformOnFun.{u3, u2} γ β 𝔗)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u2} γ β 𝔗) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.instHasSubsetSet.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u2} (Set.{u3} γ) (Set.{u2} α) (Set.image.{u3, u2} γ α f) 𝔖)) -> (UniformContinuous.{max u2 u1, max u1 u3} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u3, u1} γ β 𝔗) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u1} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : γ -> β) => UniformOnFun.{u3, u1} γ β 𝔗) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u1} γ β 𝔗) (Function.comp.{succ u3, succ u2, succ u1} γ α β g f)))
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.instHasSubsetSet.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u2} (Set.{u3} γ) (Set.{u2} α) (Set.image.{u3, u2} γ α f) 𝔖)) -> (UniformContinuous.{max u2 u1, max u1 u3} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u3, u1} γ β 𝔗) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u1} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : γ -> β) => UniformOnFun.{u3, u1} γ β 𝔗) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u1} γ β 𝔗) (Function.comp.{succ u3, succ u2, succ u1} γ α β g f)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.precomp_uniform_continuous UniformOnFun.precomp_uniformContinuousₓ'. -/
 /-- Let `f : γ → α`, `𝔖 : set (set α)`, `𝔗 : set (set γ)`, and assume that `∀ T ∈ 𝔗, f '' T ∈ 𝔖`.
 Then, the function `(λ g, g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
@@ -1096,7 +1096,7 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)}, (Eq.{succ u1} (Set.{u1} α) (Set.sUnion.{u1} α 𝔖) (Set.univ.{u1} α)) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.sUnion.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.sUnion.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFunₓ'. -/
 /-- If `𝔖` covers `α`, the natural map `uniform_on_fun.to_fun` from `α →ᵤ[𝔖] β` to `α → β` is
 uniformly continuous.
Diff
@@ -792,7 +792,7 @@ protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι
 
 /- warning: uniform_on_fun.has_basis_uniformity_of_basis_aux₂ -> UniformOnFun.hasBasis_uniformity_of_basis_aux₂ is a dubious translation:
 lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u1} (Set.{u1} α) (Order.Preimage.{succ u1, succ (max u1 u2)} (Set.{u1} α) (UniformSpace.{max u1 u2} (α -> β)) (fun (s : Set.{u1} α) => UniformSpace.comap.{max u1 u2, max u1 u2} (α -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1)) (GE.ge.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (UniformSpace.partialOrder.{max u1 u2} (α -> β)))))) 𝔖))
+  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u1} (Set.{u1} α) (Order.Preimage.{succ u1, succ (max u1 u2)} (Set.{u1} α) (UniformSpace.{max u1 u2} (α -> β)) (fun (s : Set.{u1} α) => UniformSpace.comap.{max u1 u2, max u1 u2} (α -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1)) (GE.ge.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (Preorder.toHasLe.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (UniformSpace.partialOrder.{max u1 u2} (α -> β)))))) 𝔖))
 but is expected to have type
   forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7579 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7581 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7579 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7581) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u3} (Set.{u3} α) (Order.Preimage.{succ u3, succ (max u3 u2)} (Set.{u3} α) (UniformSpace.{max u3 u2} (α -> β)) (fun (s : Set.{u3} α) => UniformSpace.comap.{max u3 u2, max u3 u2} (α -> β) ((Set.Elem.{u3} α s) -> β) (Set.restrict.{u3, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u3, u2} (Set.Elem.{u3} α s) β _inst_1)) (GE.ge.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (Preorder.toLE.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (PartialOrder.toPreorder.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (instPartialOrderUniformSpace.{max u3 u2} (α -> β)))))) 𝔖))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂ₓ'. -/
@@ -894,7 +894,7 @@ variable {α}
 
 /- warning: uniform_on_fun.mono -> UniformOnFun.mono is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {γ : Type.{u2}} {{u₁ : UniformSpace.{u2} γ}} {{u₂ : UniformSpace.{u2} γ}}, (LE.le.{u2} (UniformSpace.{u2} γ) (Preorder.toLE.{u2} (UniformSpace.{u2} γ) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (UniformSpace.partialOrder.{u2} γ))) u₁ u₂) -> (forall {{𝔖₁ : Set.{u1} (Set.{u1} α)}} {{𝔖₂ : Set.{u1} (Set.{u1} α)}}, (HasSubset.Subset.{u1} (Set.{u1} (Set.{u1} α)) (Set.hasSubset.{u1} (Set.{u1} α)) 𝔖₂ 𝔖₁) -> (LE.le.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (UniformSpace.partialOrder.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)))) (UniformOnFun.uniformSpace.{u1, u2} α γ u₁ 𝔖₁) (UniformOnFun.uniformSpace.{u1, u2} α γ u₂ 𝔖₂)))
+  forall {α : Type.{u1}} {γ : Type.{u2}} {{u₁ : UniformSpace.{u2} γ}} {{u₂ : UniformSpace.{u2} γ}}, (LE.le.{u2} (UniformSpace.{u2} γ) (Preorder.toHasLe.{u2} (UniformSpace.{u2} γ) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (UniformSpace.partialOrder.{u2} γ))) u₁ u₂) -> (forall {{𝔖₁ : Set.{u1} (Set.{u1} α)}} {{𝔖₂ : Set.{u1} (Set.{u1} α)}}, (HasSubset.Subset.{u1} (Set.{u1} (Set.{u1} α)) (Set.hasSubset.{u1} (Set.{u1} α)) 𝔖₂ 𝔖₁) -> (LE.le.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (Preorder.toHasLe.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (UniformSpace.partialOrder.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)))) (UniformOnFun.uniformSpace.{u1, u2} α γ u₁ 𝔖₁) (UniformOnFun.uniformSpace.{u1, u2} α γ u₂ 𝔖₂)))
 but is expected to have type
   forall {α : Type.{u1}} {γ : Type.{u2}} {{u₁ : UniformSpace.{u2} γ}} {{u₂ : UniformSpace.{u2} γ}}, (LE.le.{u2} (UniformSpace.{u2} γ) (Preorder.toLE.{u2} (UniformSpace.{u2} γ) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (instPartialOrderUniformSpace.{u2} γ))) u₁ u₂) -> (forall {{𝔖₁ : Set.{u1} (Set.{u1} α)}} {{𝔖₂ : Set.{u1} (Set.{u1} α)}}, (HasSubset.Subset.{u1} (Set.{u1} (Set.{u1} α)) (Set.instHasSubsetSet.{u1} (Set.{u1} α)) 𝔖₂ 𝔖₁) -> (LE.le.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (instPartialOrderUniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)))) (UniformOnFun.uniformSpace.{u1, u2} α γ u₁ 𝔖₁) (UniformOnFun.uniformSpace.{u1, u2} α γ u₂ 𝔖₂)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.mono UniformOnFun.monoₓ'. -/
Diff
@@ -424,23 +424,23 @@ protected theorem mono : Monotone (@UniformFun.uniformSpace α γ) := fun u₁ u
   (UniformFun.gc α γ).monotone_u hu
 #align uniform_fun.mono UniformFun.mono
 
-/- warning: uniform_fun.infi_eq -> UniformFun.infᵢ_eq is a dubious translation:
+/- warning: uniform_fun.infi_eq -> UniformFun.iInf_eq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformFun.uniformSpace.{u1, u2} α γ (infᵢ.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i))) (infᵢ.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformSpace.hasInf.{max u1 u2} (UniformFun.{u1, u2} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u1, u2} α γ (u i)))
+  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformFun.uniformSpace.{u1, u2} α γ (iInf.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i))) (iInf.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformSpace.hasInf.{max u1 u2} (UniformFun.{u1, u2} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u1, u2} α γ (u i)))
 but is expected to have type
-  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (UniformFun.uniformSpace.{u2, u3} α γ (infᵢ.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i))) (infᵢ.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (instInfSetUniformSpace.{max u2 u3} (UniformFun.{u2, u3} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u2, u3} α γ (u i)))
-Case conversion may be inaccurate. Consider using '#align uniform_fun.infi_eq UniformFun.infᵢ_eqₓ'. -/
+  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (UniformFun.uniformSpace.{u2, u3} α γ (iInf.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i))) (iInf.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (instInfSetUniformSpace.{max u2 u3} (UniformFun.{u2, u3} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u2, u3} α γ (u i)))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.infi_eq UniformFun.iInf_eqₓ'. -/
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i)`. -/
-protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, ⨅ i, u i) = ⨅ i, 𝒰(α, γ, u i) :=
+protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, ⨅ i, u i) = ⨅ i, 𝒰(α, γ, u i) :=
   by
   -- This follows directly from the fact that the upper adjoint in a Galois connection maps
   -- infimas to infimas.
   ext : 1
   change UniformFun.filter α γ 𝓤[⨅ i, u i] = 𝓤[⨅ i, 𝒰(α, γ, u i)]
-  rw [infᵢ_uniformity, infᵢ_uniformity]
-  exact (UniformFun.gc α γ).u_infᵢ
-#align uniform_fun.infi_eq UniformFun.infᵢ_eq
+  rw [iInf_uniformity, iInf_uniformity]
+  exact (UniformFun.gc α γ).u_iInf
+#align uniform_fun.infi_eq UniformFun.iInf_eq
 
 #print UniformFun.inf_eq /-
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
@@ -449,8 +449,8 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} : 𝒰(α, γ, u₁ ⊓ u
   by
   -- This follows directly from the fact that the upper adjoint in a Galois connection maps
   -- infimas to infimas.
-  rw [inf_eq_infᵢ, inf_eq_infᵢ, UniformFun.infᵢ_eq]
-  refine' infᵢ_congr fun i => _
+  rw [inf_eq_iInf, inf_eq_iInf, UniformFun.iInf_eq]
+  refine' iInf_congr fun i => _
   cases i <;> rfl
 #align uniform_fun.inf_eq UniformFun.inf_eq
 -/
@@ -659,8 +659,8 @@ protected def uniformEquivPiComm : UniformEquiv (α →ᵤ ∀ i, δ i) (∀ i,
       rw [← uniformity_comap]
       congr
       rw [Pi.uniformSpace, UniformSpace.ofCoreEq_toCore, Pi.uniformSpace,
-        UniformSpace.ofCoreEq_toCore, UniformSpace.comap_infᵢ, UniformFun.infᵢ_eq]
-      refine' infᵢ_congr fun i => _
+        UniformSpace.ofCoreEq_toCore, UniformSpace.comap_iInf, UniformFun.iInf_eq]
+      refine' iInf_congr fun i => _
       rw [← UniformSpace.comap_comap, UniformFun.comap_eq])
 #align uniform_fun.uniform_equiv_Pi_comm UniformFun.uniformEquivPiComm
 -/
@@ -758,9 +758,9 @@ instance : TopologicalSpace (α →ᵤ[𝔖] β) :=
 
 /- warning: uniform_on_fun.topological_space_eq -> UniformOnFun.topologicalSpace_eq is a dubious translation:
 lean 3 declaration is
-  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), Eq.{succ (max u1 u2)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) (infᵢ.{max u1 u2, succ u1} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Set.{u1} α) (fun (s : Set.{u1} α) => infᵢ.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) (fun (hs : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.topologicalSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1))))
+  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), Eq.{succ (max u1 u2)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) (iInf.{max u1 u2, succ u1} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Set.{u1} α) (fun (s : Set.{u1} α) => iInf.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) (fun (hs : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.topologicalSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1))))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (infᵢ.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => infᵢ.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (iInf.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => iInf.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eqₓ'. -/
 /-- The topology of `𝔖`-convergence is the infimum, for `S ∈ 𝔖`, of topology induced by the map
 of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S`, where `↥S →ᵤ β` is endowed with
@@ -770,7 +770,7 @@ protected theorem topologicalSpace_eq :
       ⨅ (s : Set α) (hs : s ∈ 𝔖),
         TopologicalSpace.induced s.restrict (UniformFun.topologicalSpace s β) :=
   by
-  simp only [UniformOnFun.topologicalSpace, toTopologicalSpace_infᵢ, toTopologicalSpace_infᵢ,
+  simp only [UniformOnFun.topologicalSpace, toTopologicalSpace_iInf, toTopologicalSpace_iInf,
     toTopologicalSpace_comap]
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
@@ -822,7 +822,7 @@ protected theorem hasBasis_uniformity_of_basis (h : 𝔖.Nonempty) (h' : Directe
     (𝓤 (α →ᵤ[𝔖] β)).HasBasis (fun Si : Set α × ι => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si =>
       UniformOnFun.gen 𝔖 Si.1 (s Si.2) :=
   by
-  simp only [infᵢ_uniformity]
+  simp only [iInf_uniformity]
   exact
     has_basis_binfi_of_directed h (fun S => UniformOnFun.gen 𝔖 S ∘ s) _
       (fun S hS => UniformOnFun.hasBasis_uniformity_of_basis_aux₁ α β 𝔖 hb S)
@@ -886,8 +886,8 @@ protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
     UniformContinuous (UniformFun.ofFun ∘ (s.restrict : (α → β) → s → β) ∘ toFun 𝔖) :=
   by
   change _ ≤ _
-  simp only [UniformOnFun.uniformSpace, map_le_iff_le_comap, infᵢ_uniformity]
-  exact infᵢ₂_le s h
+  simp only [UniformOnFun.uniformSpace, map_le_iff_le_comap, iInf_uniformity]
+  exact iInf₂_le s h
 #align uniform_on_fun.uniform_continuous_restrict UniformOnFun.uniformContinuous_restrict
 
 variable {α}
@@ -903,8 +903,8 @@ Case conversion may be inaccurate. Consider using '#align uniform_on_fun.mono Un
 protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) ⦃𝔖₁ 𝔖₂ : Set (Set α)⦄
     (h𝔖 : 𝔖₂ ⊆ 𝔖₁) : 𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂) :=
   calc
-    𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₁) := infᵢ_le_infᵢ_of_subset h𝔖
-    _ ≤ 𝒱(α, γ, 𝔖₂, u₂) := infᵢ₂_mono fun i hi => UniformSpace.comap_mono <| UniformFun.mono hu
+    𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₁) := iInf_le_iInf_of_subset h𝔖
+    _ ≤ 𝒱(α, γ, 𝔖₂, u₂) := iInf₂_mono fun i hi => UniformSpace.comap_mono <| UniformFun.mono hu
     
 #align uniform_on_fun.mono UniformOnFun.mono
 
@@ -924,20 +924,20 @@ theorem uniformContinuous_eval_of_mem {x : α} (hxs : x ∈ s) (hs : s ∈ 𝔖)
 
 variable {β} {𝔖}
 
-/- warning: uniform_on_fun.infi_eq -> UniformOnFun.infᵢ_eq is a dubious translation:
+/- warning: uniform_on_fun.infi_eq -> UniformOnFun.iInf_eq is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {𝔖 : Set.{u1} (Set.{u1} α)} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u2} α γ (infᵢ.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i)) 𝔖) (infᵢ.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformSpace.hasInf.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u1, u2} α γ (u i) 𝔖))
+  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {𝔖 : Set.{u1} (Set.{u1} α)} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u2} α γ (iInf.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i)) 𝔖) (iInf.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformSpace.hasInf.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u1, u2} α γ (u i) 𝔖))
 but is expected to have type
-  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u2, u3} α γ (infᵢ.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i)) 𝔖) (infᵢ.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (instInfSetUniformSpace.{max u2 u3} (UniformOnFun.{u2, u3} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u2, u3} α γ (u i) 𝔖))
-Case conversion may be inaccurate. Consider using '#align uniform_on_fun.infi_eq UniformOnFun.infᵢ_eqₓ'. -/
+  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u2, u3} α γ (iInf.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i)) 𝔖) (iInf.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (instInfSetUniformSpace.{max u2 u3} (UniformOnFun.{u2, u3} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u2, u3} α γ (u i) 𝔖))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.infi_eq UniformOnFun.iInf_eqₓ'. -/
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`. -/
-protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) :=
+protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) :=
   by
-  simp_rw [UniformOnFun.uniformSpace, UniformFun.infᵢ_eq, UniformSpace.comap_infᵢ]
-  rw [infᵢ_comm]
-  exact infᵢ_congr fun s => infᵢ_comm
-#align uniform_on_fun.infi_eq UniformOnFun.infᵢ_eq
+  simp_rw [UniformOnFun.uniformSpace, UniformFun.iInf_eq, UniformSpace.comap_iInf]
+  rw [iInf_comm]
+  exact iInf_congr fun s => iInf_comm
+#align uniform_on_fun.infi_eq UniformOnFun.iInf_eq
 
 #print UniformOnFun.inf_eq /-
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
@@ -945,8 +945,8 @@ protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, 
 protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
     𝒱(α, γ, 𝔖, u₁ ⊓ u₂) = 𝒱(α, γ, 𝔖, u₁) ⊓ 𝒱(α, γ, 𝔖, u₂) :=
   by
-  rw [inf_eq_infᵢ, inf_eq_infᵢ, UniformOnFun.infᵢ_eq]
-  refine' infᵢ_congr fun i => _
+  rw [inf_eq_iInf, inf_eq_iInf, UniformOnFun.iInf_eq]
+  refine' iInf_congr fun i => _
   cases i <;> rfl
 #align uniform_on_fun.inf_eq UniformOnFun.inf_eq
 -/
@@ -964,7 +964,7 @@ protected theorem comap_eq {f : γ → β} :
   by
   -- We reduce this to `uniform_convergence.comap_eq` using the fact that `comap` distributes
   -- on `infi`.
-  simp_rw [UniformOnFun.uniformSpace, UniformSpace.comap_infᵢ, UniformFun.comap_eq, ←
+  simp_rw [UniformOnFun.uniformSpace, UniformSpace.comap_iInf, UniformFun.comap_eq, ←
     UniformSpace.comap_comap]
   rfl
 #align uniform_on_fun.comap_eq UniformOnFun.comap_eq
@@ -1038,11 +1038,11 @@ protected theorem precomp_uniformContinuous {𝔗 : Set (Set γ)} {f : γ → α
   by
   -- Since `comap` distributes on `infi`, it suffices to prove that
   -- `⨅ s ∈ 𝔖, comap s.restrict 𝒰(↥s, β, uβ) ≤ ⨅ t ∈ 𝔗, comap (t.restrict ∘ (— ∘ f)) 𝒰(↥t, β, uβ)`.
-  simp_rw [uniformContinuous_iff, UniformOnFun.uniformSpace, UniformSpace.comap_infᵢ, ←
+  simp_rw [uniformContinuous_iff, UniformOnFun.uniformSpace, UniformSpace.comap_iInf, ←
     UniformSpace.comap_comap]
   -- For any `t ∈ 𝔗`, note `s := f '' t ∈ 𝔖`.
   -- We will show that `comap s.restrict 𝒰(↥s, β, uβ) ≤ comap (t.restrict ∘ (— ∘ f)) 𝒰(↥t, β, uβ)`.
-  refine' le_infᵢ₂ fun t ht => infᵢ_le_of_le (f '' t) <| infᵢ_le_of_le (hf ht) _
+  refine' le_iInf₂ fun t ht => iInf_le_of_le (f '' t) <| iInf_le_of_le (hf ht) _
   -- Let `f'` be the map from `t` to `f '' t` induced by `f`.
   let f' : t → f '' t := (maps_to_image f t).restrict f t (f '' t)
   -- By definition `t.restrict ∘ (— ∘ f) = (— ∘ f') ∘ (f '' t).restrict`.
@@ -1094,9 +1094,9 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
 
 /- warning: uniform_on_fun.uniform_continuous_to_fun -> UniformOnFun.uniformContinuous_toFun is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)}, (Eq.{succ u1} (Set.{u1} α) (Set.unionₛ.{u1} α 𝔖) (Set.univ.{u1} α)) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)}, (Eq.{succ u1} (Set.{u1} α) (Set.sUnion.{u1} α 𝔖) (Set.univ.{u1} α)) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.unionₛ.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.sUnion.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFunₓ'. -/
 /-- If `𝔖` covers `α`, the natural map `uniform_on_fun.to_fun` from `α →ᵤ[𝔖] β` to `α → β` is
 uniformly continuous.
@@ -1123,9 +1123,9 @@ of `tendsto_uniformly_on`) for all `S ∈ 𝔖`. -/
 protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β} {f : α →ᵤ[𝔖] β} :
     Tendsto F p (𝓝 f) ↔ ∀ s ∈ 𝔖, TendstoUniformlyOn F f p s :=
   by
-  rw [UniformOnFun.topologicalSpace_eq, nhds_infᵢ, tendsto_infi]
+  rw [UniformOnFun.topologicalSpace_eq, nhds_iInf, tendsto_infi]
   refine' forall_congr' fun s => _
-  rw [nhds_infᵢ, tendsto_infi]
+  rw [nhds_iInf, tendsto_infi]
   refine' forall_congr' fun hs => _
   rw [nhds_induced, tendsto_comap_iff, tendstoUniformlyOn_iff_tendstoUniformly_comp_coe,
     UniformFun.tendsto_iff_tendstoUniformly]
@@ -1178,8 +1178,8 @@ protected def uniformEquivPiComm : (α →ᵤ[𝔖] ∀ i, δ i) ≃ᵤ ∀ i, 
       rw [← uniformity_comap]
       congr
       rw [Pi.uniformSpace, UniformSpace.ofCoreEq_toCore, Pi.uniformSpace,
-        UniformSpace.ofCoreEq_toCore, UniformSpace.comap_infᵢ, UniformOnFun.infᵢ_eq]
-      refine' infᵢ_congr fun i => _
+        UniformSpace.ofCoreEq_toCore, UniformSpace.comap_iInf, UniformOnFun.iInf_eq]
+      refine' iInf_congr fun i => _
       rw [← UniformSpace.comap_comap, UniformOnFun.comap_eq])
 #align uniform_on_fun.uniform_equiv_Pi_comm UniformOnFun.uniformEquivPiComm
 -/
Diff
@@ -720,7 +720,7 @@ protected theorem gen_mono {𝔖} {S S' : Set α} {V V' : Set (β × β)} (hS :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall (𝓑 : FilterBasis.{u2} (Prod.{u2, u2} β β)), Filter.IsBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (FilterBasis.{u2} (Prod.{u2, u2} β β)) (FilterBasis.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝓑)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6677 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6677) 𝔖) -> (forall (𝓑 : FilterBasis.{u1} (Prod.{u1, u1} β β)), Filter.IsBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (FilterBasis.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilterBasis.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝓑)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
+  forall {α : Type.{u2}} {β : Type.{u1}} (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6673 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6673 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675) 𝔖) -> (forall (𝓑 : FilterBasis.{u1} (Prod.{u1, u1} β β)), Filter.IsBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (FilterBasis.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilterBasis.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝓑)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.is_basis_gen UniformOnFun.isBasis_genₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis on `β × β`, then the
 family `uniform_on_fun.gen 𝔖 S V` for `S ∈ 𝔖` and `V ∈ 𝓑` is a filter basis on
@@ -794,7 +794,7 @@ protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u1} (Set.{u1} α) (Order.Preimage.{succ u1, succ (max u1 u2)} (Set.{u1} α) (UniformSpace.{max u1 u2} (α -> β)) (fun (s : Set.{u1} α) => UniformSpace.comap.{max u1 u2, max u1 u2} (α -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1)) (GE.ge.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (UniformSpace.partialOrder.{max u1 u2} (α -> β)))))) 𝔖))
 but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7583 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7585 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7583 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7585) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u3} (Set.{u3} α) (Order.Preimage.{succ u3, succ (max u3 u2)} (Set.{u3} α) (UniformSpace.{max u3 u2} (α -> β)) (fun (s : Set.{u3} α) => UniformSpace.comap.{max u3 u2, max u3 u2} (α -> β) ((Set.Elem.{u3} α s) -> β) (Set.restrict.{u3, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u3, u2} (Set.Elem.{u3} α s) β _inst_1)) (GE.ge.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (Preorder.toLE.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (PartialOrder.toPreorder.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (instPartialOrderUniformSpace.{max u3 u2} (α -> β)))))) 𝔖))
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7579 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7581 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7579 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7581) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u3} (Set.{u3} α) (Order.Preimage.{succ u3, succ (max u3 u2)} (Set.{u3} α) (UniformSpace.{max u3 u2} (α -> β)) (fun (s : Set.{u3} α) => UniformSpace.comap.{max u3 u2, max u3 u2} (α -> β) ((Set.Elem.{u3} α s) -> β) (Set.restrict.{u3, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u3, u2} (Set.Elem.{u3} α s) β _inst_1)) (GE.ge.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (Preorder.toLE.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (PartialOrder.toPreorder.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (instPartialOrderUniformSpace.{max u3 u2} (α -> β)))))) 𝔖))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂ₓ'. -/
 protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
     {s : ι → Set (β × β)} (hb : HasBasis (𝓤 β) p s) :
@@ -812,7 +812,7 @@ protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u3} (Set.{u1} α) ι) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))
 but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7725 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7727 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7725 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7727) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Prod.{u3, u1} (Set.{u3} α) ι) (uniformity.{max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u3, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7721 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7723 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7721 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7723) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Prod.{u3, u1} (Set.{u3} α) ι) (uniformity.{max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u3, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basisₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis of `𝓤 β`, then the
 uniformity of `α →ᵤ[𝔖] β` admits the family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and
@@ -833,7 +833,7 @@ protected theorem hasBasis_uniformity_of_basis (h : 𝔖.Nonempty) (h' : Directe
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7877 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7879 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7877 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7879) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7873 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7875 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7873 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7875) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformityₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed, then the uniformity of `α →ᵤ[𝔖] β` admits the
 family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
@@ -847,7 +847,7 @@ protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· 
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u3} (Set.{u1} α) ι) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))))
 but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)) (f : UniformOnFun.{u3, u2} α β 𝔖), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7997 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7999 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7997 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7999) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (UniformOnFun.{u3, u2} α β 𝔖) (Prod.{u3, u1} (Set.{u3} α) ι) (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => setOf.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (fun (g : UniformOnFun.{u3, u2} α β 𝔖) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Prod.mk.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖) g f) (UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))))
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)) (f : UniformOnFun.{u3, u2} α β 𝔖), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7993 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7995 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7993 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7995) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (UniformOnFun.{u3, u2} α β 𝔖) (Prod.{u3, u1} (Set.{u3} α) ι) (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => setOf.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (fun (g : UniformOnFun.{u3, u2} α β 𝔖) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Prod.mk.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖) g f) (UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basisₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓑` as a filter basis, for any basis
@@ -864,7 +864,7 @@ protected theorem hasBasis_nhds_of_basis (f : α →ᵤ[𝔖] β) (h : 𝔖.None
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) (f : UniformOnFun.{u2, u1} α β 𝔖), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8146 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8148 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8146 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8148) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (nhds.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) f) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => setOf.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Prod.mk.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖) g f) (UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))))
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) (f : UniformOnFun.{u2, u1} α β 𝔖), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8142 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8144 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8142 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8144) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (nhds.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) f) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => setOf.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Prod.mk.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖) g f) (UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhdsₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
@@ -955,7 +955,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {f : γ -> β}, Eq.{succ (max u1 u3)} (UniformSpace.{max u1 u3} (UniformOnFun.{u1, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u3} α γ (UniformSpace.comap.{u3, u2} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u1 u3, max u1 u2} (UniformOnFun.{u1, u3} α γ 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) (Function.comp.{succ u1, succ u3, succ u2} α γ β f) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u3} (Set.{u3} α)} {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformOnFun.{u3, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) ((fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8859 : γ -> β) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8861 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8859 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8861) f) (UniformOnFun.uniformSpace.{u3, u1} α β _inst_1 𝔖))
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u3} (Set.{u3} α)} {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformOnFun.{u3, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) ((fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8853 : γ -> β) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8855 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8853 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8855) f) (UniformOnFun.uniformSpace.{u3, u1} α β _inst_1 𝔖))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.comap_eq UniformOnFun.comap_eqₓ'. -/
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
Diff
@@ -398,7 +398,7 @@ variable {α}
 lean 3 declaration is
   forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (x : α), UniformContinuous.{max u1 u2, u2} (UniformFun.{u1, u2} α β) β (UniformFun.uniformSpace.{u1, u2} α β _inst_1) _inst_1 (Function.comp.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (UniformFun.{u1, u2} α β) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (x : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β)))
 but is expected to have type
-  forall {α : Type.{u2}} (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (x : α), UniformContinuous.{max u2 u1, u1} (UniformFun.{u2, u1} α β) β (UniformFun.uniformSpace.{u2, u1} α β _inst_1) _inst_1 (Function.comp.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u1} (UniformFun.{u2, u1} α β) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (x : α) => β) x) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))
+  forall {α : Type.{u2}} (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (x : α), UniformContinuous.{max u2 u1, u1} (UniformFun.{u2, u1} α β) β (UniformFun.uniformSpace.{u2, u1} α β _inst_1) _inst_1 (Function.comp.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u1} (UniformFun.{u2, u1} α β) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (x : α) => β) x) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))
 Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_eval UniformFun.uniformContinuous_evalₓ'. -/
 /-- Evaluation at a fixed point is uniformly continuous on `α →ᵤ β`. -/
 theorem uniformContinuous_eval (x : α) :
@@ -459,7 +459,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} : 𝒰(α, γ, u₁ ⊓ u
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> β}, Eq.{succ (max u1 u3)} (UniformSpace.{max u1 u3} (UniformFun.{u1, u3} α γ)) (UniformFun.uniformSpace.{u1, u3} α γ (UniformSpace.comap.{u3, u2} γ β f _inst_1)) (UniformSpace.comap.{max u1 u3, max u1 u2} (UniformFun.{u1, u3} α γ) (UniformFun.{u1, u2} α β) (Function.comp.{succ u1, succ u3, succ u2} α γ β f) (UniformFun.uniformSpace.{u1, u2} α β _inst_1))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformFun.{u3, u2} α γ)) (UniformFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1)) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4217 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β f x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4217) (UniformFun.uniformSpace.{u3, u1} α β _inst_1))
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformFun.{u3, u2} α γ)) (UniformFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1)) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4219 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β f x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4219) (UniformFun.uniformSpace.{u3, u1} α β _inst_1))
 Case conversion may be inaccurate. Consider using '#align uniform_fun.comap_eq UniformFun.comap_eqₓ'. -/
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒰(α, γ, comap f u) = comap (λ g, f ∘ g) 𝒰(α, γ, u₁)`. -/
@@ -538,7 +538,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) 
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u1 u2, max u3 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u3, u2} γ β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u3, u2} γ β _inst_1) (fun (g : UniformFun.{u1, u2} α β) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) => (γ -> β) -> (UniformFun.{u3, u2} γ β)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (UniformFun.ofFun.{u3, u2} γ β) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u3 u2, max u2 u1} (UniformFun.{u3, u2} α β) (UniformFun.{u1, u2} γ β) (UniformFun.uniformSpace.{u3, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u2} γ β _inst_1) (fun (g : UniformFun.{u3, u2} α β) => FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : γ -> β) => UniformFun.{u1, u2} γ β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (UniformFun.ofFun.{u1, u2} γ β) (Function.comp.{succ u1, succ u3, succ u2} γ α β g f))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u3 u2, max u2 u1} (UniformFun.{u3, u2} α β) (UniformFun.{u1, u2} γ β) (UniformFun.uniformSpace.{u3, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u2} γ β _inst_1) (fun (g : UniformFun.{u3, u2} α β) => FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : γ -> β) => UniformFun.{u1, u2} γ β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (UniformFun.ofFun.{u1, u2} γ β) (Function.comp.{succ u1, succ u3, succ u2} γ α β g f))
 Case conversion may be inaccurate. Consider using '#align uniform_fun.precomp_uniform_continuous UniformFun.precomp_uniformContinuousₓ'. -/
 /-- Pre-composition by a any function is uniformly continuous for the uniform structures of
 uniform convergence.
@@ -581,7 +581,7 @@ instance [T2Space β] : T2Space (α →ᵤ β)
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β], UniformContinuous.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (α -> β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β], UniformContinuous.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (α -> β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β], UniformContinuous.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (α -> β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))
 Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFunₓ'. -/
 /-- The natural map `uniform_fun.to_fun` from `α →ᵤ β` to `α → β` is uniformly continuous.
 
@@ -691,7 +691,7 @@ protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {𝔖 : Set.{u1} (Set.{u1} α)} (S : Set.{u1} α) (V : Set.{u2} (Prod.{u2, u2} β β)), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (UniformOnFun.gen.{u1, u2} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{max u1 u2, max u1 u2} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β)) (Prod.map.{max u1 u2, max u1 u2, max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S)) (UniformFun.gen.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β V))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} (S : Set.{u2} α) (V : Set.{u1} (Prod.{u1, u1} β β)), Eq.{max (succ u2) (succ u1)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Prod.{max u2 u1, max u2 u1} ((Set.Elem.{u2} α S) -> β) ((Set.Elem.{u2} α S) -> β)) (Prod.map.{max u1 u2, max u2 u1, max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))) (UniformFun.gen.{u2, u1} (Set.Elem.{u2} α S) β V))
+  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} (S : Set.{u2} α) (V : Set.{u1} (Prod.{u1, u1} β β)), Eq.{max (succ u2) (succ u1)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Prod.{max u2 u1, max u2 u1} ((Set.Elem.{u2} α S) -> β) ((Set.Elem.{u2} α S) -> β)) (Prod.map.{max u1 u2, max u2 u1, max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))) (UniformFun.gen.{u2, u1} (Set.Elem.{u2} α S) β V))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.gen_eq_preimage_restrict UniformOnFun.gen_eq_preimage_restrictₓ'. -/
 /-- For `S : set α` and `V : set (β × β)`, we have
 `uniform_on_fun.gen 𝔖 S V = (S.restrict × S.restrict) ⁻¹' (uniform_fun.gen S β V)`.
@@ -720,7 +720,7 @@ protected theorem gen_mono {𝔖} {S S' : Set α} {V V' : Set (β × β)} (hS :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall (𝓑 : FilterBasis.{u2} (Prod.{u2, u2} β β)), Filter.IsBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (FilterBasis.{u2} (Prod.{u2, u2} β β)) (FilterBasis.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝓑)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6659 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6661 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6659 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6661) 𝔖) -> (forall (𝓑 : FilterBasis.{u1} (Prod.{u1, u1} β β)), Filter.IsBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (FilterBasis.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilterBasis.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝓑)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
+  forall {α : Type.{u2}} {β : Type.{u1}} (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6677 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6675 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6677) 𝔖) -> (forall (𝓑 : FilterBasis.{u1} (Prod.{u1, u1} β β)), Filter.IsBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (FilterBasis.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilterBasis.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝓑)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.is_basis_gen UniformOnFun.isBasis_genₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis on `β × β`, then the
 family `uniform_on_fun.gen 𝔖 S V` for `S ∈ 𝔖` and `V ∈ 𝓑` is a filter basis on
@@ -760,7 +760,7 @@ instance : TopologicalSpace (α →ᵤ[𝔖] β) :=
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), Eq.{succ (max u1 u2)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) (infᵢ.{max u1 u2, succ u1} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Set.{u1} α) (fun (s : Set.{u1} α) => infᵢ.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) (fun (hs : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.topologicalSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1))))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (infᵢ.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => infᵢ.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (infᵢ.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => infᵢ.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eqₓ'. -/
 /-- The topology of `𝔖`-convergence is the infimum, for `S ∈ 𝔖`, of topology induced by the map
 of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S`, where `↥S →ᵤ β` is endowed with
@@ -794,7 +794,7 @@ protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u1} (Set.{u1} α) (Order.Preimage.{succ u1, succ (max u1 u2)} (Set.{u1} α) (UniformSpace.{max u1 u2} (α -> β)) (fun (s : Set.{u1} α) => UniformSpace.comap.{max u1 u2, max u1 u2} (α -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1)) (GE.ge.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (UniformSpace.partialOrder.{max u1 u2} (α -> β)))))) 𝔖))
 but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7566 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7568 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7566 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7568) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u3} (Set.{u3} α) (Order.Preimage.{succ u3, succ (max u3 u2)} (Set.{u3} α) (UniformSpace.{max u3 u2} (α -> β)) (fun (s : Set.{u3} α) => UniformSpace.comap.{max u3 u2, max u3 u2} (α -> β) ((Set.Elem.{u3} α s) -> β) (Set.restrict.{u3, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u3, u2} (Set.Elem.{u3} α s) β _inst_1)) (GE.ge.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (Preorder.toLE.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (PartialOrder.toPreorder.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (instPartialOrderUniformSpace.{max u3 u2} (α -> β)))))) 𝔖))
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7583 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7585 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7583 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7585) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u3} (Set.{u3} α) (Order.Preimage.{succ u3, succ (max u3 u2)} (Set.{u3} α) (UniformSpace.{max u3 u2} (α -> β)) (fun (s : Set.{u3} α) => UniformSpace.comap.{max u3 u2, max u3 u2} (α -> β) ((Set.Elem.{u3} α s) -> β) (Set.restrict.{u3, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u3, u2} (Set.Elem.{u3} α s) β _inst_1)) (GE.ge.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (Preorder.toLE.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (PartialOrder.toPreorder.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (instPartialOrderUniformSpace.{max u3 u2} (α -> β)))))) 𝔖))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂ₓ'. -/
 protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
     {s : ι → Set (β × β)} (hb : HasBasis (𝓤 β) p s) :
@@ -812,7 +812,7 @@ protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u3} (Set.{u1} α) ι) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))
 but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7708 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7710 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7708 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7710) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Prod.{u3, u1} (Set.{u3} α) ι) (uniformity.{max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u3, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7725 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7727 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7725 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7727) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Prod.{u3, u1} (Set.{u3} α) ι) (uniformity.{max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u3, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basisₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis of `𝓤 β`, then the
 uniformity of `α →ᵤ[𝔖] β` admits the family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and
@@ -833,7 +833,7 @@ protected theorem hasBasis_uniformity_of_basis (h : 𝔖.Nonempty) (h' : Directe
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7860 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7862 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7860 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7862) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7877 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7879 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7877 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7879) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformityₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed, then the uniformity of `α →ᵤ[𝔖] β` admits the
 family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
@@ -847,7 +847,7 @@ protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· 
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u3} (Set.{u1} α) ι) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))))
 but is expected to have type
-  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)) (f : UniformOnFun.{u3, u2} α β 𝔖), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7980 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7982 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7980 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7982) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (UniformOnFun.{u3, u2} α β 𝔖) (Prod.{u3, u1} (Set.{u3} α) ι) (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => setOf.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (fun (g : UniformOnFun.{u3, u2} α β 𝔖) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Prod.mk.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖) g f) (UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))))
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)) (f : UniformOnFun.{u3, u2} α β 𝔖), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7997 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7999 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7997 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7999) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (UniformOnFun.{u3, u2} α β 𝔖) (Prod.{u3, u1} (Set.{u3} α) ι) (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => setOf.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (fun (g : UniformOnFun.{u3, u2} α β 𝔖) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Prod.mk.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖) g f) (UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basisₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓑` as a filter basis, for any basis
@@ -864,7 +864,7 @@ protected theorem hasBasis_nhds_of_basis (f : α →ᵤ[𝔖] β) (h : 𝔖.None
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) (f : UniformOnFun.{u2, u1} α β 𝔖), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8129 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8131 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8129 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8131) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (nhds.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) f) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => setOf.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Prod.mk.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖) g f) (UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))))
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) (f : UniformOnFun.{u2, u1} α β 𝔖), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8146 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8148 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8146 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8148) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (nhds.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) f) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => setOf.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Prod.mk.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖) g f) (UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhdsₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
@@ -878,7 +878,7 @@ protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h'
 lean 3 declaration is
   forall (α : Type.{u1}) (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) => ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) -> (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (UniformFun.ofFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))))
 but is expected to have type
-  forall (α : Type.{u2}) (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1) (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u2, u1} α β 𝔖) ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) ((Set.Elem.{u2} α s) -> β) (fun (_x : (Set.Elem.{u2} α s) -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : (Set.Elem.{u2} α s) -> β) => UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) (UniformFun.ofFun.{u2, u1} (Set.Elem.{u2} α s) β)) (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))))
+  forall (α : Type.{u2}) (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1) (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u2, u1} α β 𝔖) ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) ((Set.Elem.{u2} α s) -> β) (fun (_x : (Set.Elem.{u2} α s) -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : (Set.Elem.{u2} α s) -> β) => UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) (UniformFun.ofFun.{u2, u1} (Set.Elem.{u2} α s) β)) (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_restrict UniformOnFun.uniformContinuous_restrictₓ'. -/
 /-- If `S ∈ 𝔖`, then the restriction to `S` is a uniformly continuous map from `α →ᵤ[𝔖] β` to
 `↥S →ᵤ β`. -/
@@ -912,7 +912,7 @@ protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) 
 lean 3 declaration is
   forall {α : Type.{u1}} (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, u2} (UniformOnFun.{u1, u2} α β 𝔖) β (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (ᾰ : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖))))
 but is expected to have type
-  forall {α : Type.{u2}} (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) {x : α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, u1} (UniformOnFun.{u2, u1} α β 𝔖) β (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (ᾰ : α) => β) x) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖))))
+  forall {α : Type.{u2}} (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) {x : α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, u1} (UniformOnFun.{u2, u1} α β 𝔖) β (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (ᾰ : α) => β) x) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖))))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_eval_of_mem UniformOnFun.uniformContinuous_eval_of_memₓ'. -/
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
 `α →ᵤ[𝔖] β`. -/
@@ -955,7 +955,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {f : γ -> β}, Eq.{succ (max u1 u3)} (UniformSpace.{max u1 u3} (UniformOnFun.{u1, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u3} α γ (UniformSpace.comap.{u3, u2} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u1 u3, max u1 u2} (UniformOnFun.{u1, u3} α γ 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) (Function.comp.{succ u1, succ u3, succ u2} α γ β f) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u3} (Set.{u3} α)} {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformOnFun.{u3, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) ((fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8839 : γ -> β) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8841 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8839 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8841) f) (UniformOnFun.uniformSpace.{u3, u1} α β _inst_1 𝔖))
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u3} (Set.{u3} α)} {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformOnFun.{u3, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) ((fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8859 : γ -> β) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8861 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8859 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8861) f) (UniformOnFun.uniformSpace.{u3, u1} α β _inst_1 𝔖))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.comap_eq UniformOnFun.comap_eqₓ'. -/
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
@@ -1025,7 +1025,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖]
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.hasSubset.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u1} (Set.{u3} γ) (Set.{u1} α) (Set.image.{u3, u1} γ α f) 𝔖)) -> (UniformContinuous.{max u1 u2, max u3 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u3, u2} γ β 𝔗) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u2} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) => (γ -> β) -> (UniformOnFun.{u3, u2} γ β 𝔗)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u2} γ β 𝔗) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.instHasSubsetSet.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u2} (Set.{u3} γ) (Set.{u2} α) (Set.image.{u3, u2} γ α f) 𝔖)) -> (UniformContinuous.{max u2 u1, max u1 u3} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u3, u1} γ β 𝔗) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u1} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : γ -> β) => UniformOnFun.{u3, u1} γ β 𝔗) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u1} γ β 𝔗) (Function.comp.{succ u3, succ u2, succ u1} γ α β g f)))
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.instHasSubsetSet.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u2} (Set.{u3} γ) (Set.{u2} α) (Set.image.{u3, u2} γ α f) 𝔖)) -> (UniformContinuous.{max u2 u1, max u1 u3} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u3, u1} γ β 𝔗) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u1} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : γ -> β) => UniformOnFun.{u3, u1} γ β 𝔗) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u1} γ β 𝔗) (Function.comp.{succ u3, succ u2, succ u1} γ α β g f)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.precomp_uniform_continuous UniformOnFun.precomp_uniformContinuousₓ'. -/
 /-- Let `f : γ → α`, `𝔖 : set (set α)`, `𝔗 : set (set γ)`, and assume that `∀ T ∈ 𝔗, f '' T ∈ 𝔖`.
 Then, the function `(λ g, g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
@@ -1096,7 +1096,7 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)}, (Eq.{succ u1} (Set.{u1} α) (Set.unionₛ.{u1} α 𝔖) (Set.univ.{u1} α)) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.unionₛ.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.unionₛ.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
 Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFunₓ'. -/
 /-- If `𝔖` covers `α`, the natural map `uniform_on_fun.to_fun` from `α →ᵤ[𝔖] β` to `α → β` is
 uniformly continuous.
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
 
 ! This file was ported from Lean 3 source module topology.uniform_space.uniform_convergence_topology
-! leanprover-community/mathlib commit bcfa726826abd57587355b4b5b7e78ad6527b7e4
+! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Topology.UniformSpace.Equiv
 /-!
 # Topology and uniform structure of uniform convergence
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This files endows `α → β` with the topologies / uniform structures of
 - uniform convergence on `α`
 - uniform convergence on a specified family `𝔖` of sets of `α`, also called `𝔖`-convergence
Diff
@@ -300,7 +300,7 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
         ∀ U ∈ 𝓕,
           { uvx : ((α →ᵤ β) × (α →ᵤ β)) × α | (uvx.1.1 uvx.2, uvx.1.2 uvx.2) ∈ U } ∈
             𝓐 ×ᶠ (⊤ : Filter α) :=
-      forall₂_congr fun U hU => mem_prod_top.symm
+      (forall₂_congr fun U hU => mem_prod_top.symm)
     _ ↔ lower_adjoint 𝓐 ≤ 𝓕 := Iff.rfl
     
 #align uniform_fun.gc UniformFun.gc
Diff
@@ -144,18 +144,22 @@ open Set Filter
 
 section TypeAlias
 
+#print UniformFun /-
 /-- The type of functions from `α` to `β` equipped with the uniform structure and topology of
 uniform convergence. We denote it `α →ᵤ β`. -/
 def UniformFun (α β : Type _) :=
   α → β
 #align uniform_fun UniformFun
+-/
 
+#print UniformOnFun /-
 /-- The type of functions from `α` to `β` equipped with the uniform structure and topology of
 uniform convergence on some family `𝔖` of subsets of `α`. We denote it `α →ᵤ[𝔖] β`. -/
 @[nolint unused_arguments]
 def UniformOnFun (α β : Type _) (𝔖 : Set (Set α)) :=
   α → β
 #align uniform_on_fun UniformOnFun
+-/
 
 -- mathport name: «expr →ᵤ »
 scoped[UniformConvergence] notation:25 α " →ᵤ " β:0 => UniformFun α β
@@ -175,25 +179,33 @@ instance {α β} [Nonempty β] : Nonempty (α →ᵤ β) :=
 instance {α β 𝔖} [Nonempty β] : Nonempty (α →ᵤ[𝔖] β) :=
   Pi.nonempty
 
+#print UniformFun.ofFun /-
 /-- Reinterpret `f : α → β` as an element of `α →ᵤ β`. -/
 def UniformFun.ofFun {α β} : (α → β) ≃ (α →ᵤ β) :=
   ⟨fun x => x, fun x => x, fun x => rfl, fun x => rfl⟩
 #align uniform_fun.of_fun UniformFun.ofFun
+-/
 
+#print UniformOnFun.ofFun /-
 /-- Reinterpret `f : α → β` as an element of `α →ᵤ[𝔖] β`. -/
 def UniformOnFun.ofFun {α β} (𝔖) : (α → β) ≃ (α →ᵤ[𝔖] β) :=
   ⟨fun x => x, fun x => x, fun x => rfl, fun x => rfl⟩
 #align uniform_on_fun.of_fun UniformOnFun.ofFun
+-/
 
+#print UniformFun.toFun /-
 /-- Reinterpret `f : α →ᵤ β` as an element of `α → β`. -/
 def UniformFun.toFun {α β} : (α →ᵤ β) ≃ (α → β) :=
   UniformFun.ofFun.symm
 #align uniform_fun.to_fun UniformFun.toFun
+-/
 
+#print UniformOnFun.toFun /-
 /-- Reinterpret `f : α →ᵤ[𝔖] β` as an element of `α → β`. -/
 def UniformOnFun.toFun {α β} (𝔖) : (α →ᵤ[𝔖] β) ≃ (α → β) :=
   (UniformOnFun.ofFun 𝔖).symm
 #align uniform_on_fun.to_fun UniformOnFun.toFun
+-/
 
 -- Note: we don't declare a `has_coe_to_fun` instance because Lean wouldn't insert it when writing
 -- `f x` (because of definitional equality with `α → β`).
@@ -207,12 +219,15 @@ variable (α β : Type _) {γ ι : Type _}
 
 variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 
+#print UniformFun.gen /-
 /-- Basis sets for the uniformity of uniform convergence: `gen α β V` is the set of pairs `(f, g)`
 of functions `α →ᵤ β` such that `∀ x, (f x, g x) ∈ V`. -/
 protected def gen (V : Set (β × β)) : Set ((α →ᵤ β) × (α →ᵤ β)) :=
   { uv : (α →ᵤ β) × (α →ᵤ β) | ∀ x, (uv.1 x, uv.2 x) ∈ V }
 #align uniform_fun.gen UniformFun.gen
+-/
 
+#print UniformFun.isBasis_gen /-
 /-- If `𝓕` is a filter on `β × β`, then the set of all `uniform_convergence.gen α β V` for
 `V ∈ 𝓕` is a filter basis on `(α →ᵤ β) × (α →ᵤ β)`. This will only be applied to `𝓕 = 𝓤 β` when
 `β` is equipped with a `uniform_space` structure, but it is useful to define it for any filter in
@@ -222,7 +237,9 @@ protected theorem isBasis_gen (𝓑 : Filter <| β × β) :
   ⟨⟨univ, univ_mem⟩, fun U V hU hV =>
     ⟨U ∩ V, inter_mem hU hV, fun uv huv => ⟨fun x => (huv x).left, fun x => (huv x).right⟩⟩⟩
 #align uniform_fun.is_basis_gen UniformFun.isBasis_gen
+-/
 
+#print UniformFun.basis /-
 /-- For `𝓕 : filter (β × β)`, this is the set of all `uniform_convergence.gen α β V` for
 `V ∈ 𝓕` as a bundled `filter_basis` over `(α →ᵤ β) × (α →ᵤ β)`. This will only be applied to
 `𝓕 = 𝓤 β` when `β` is equipped with a `uniform_space` structure, but it is useful to define it for
@@ -231,13 +248,16 @@ any filter in order to be able to state that it has a lower adjoint
 protected def basis (𝓕 : Filter <| β × β) : FilterBasis ((α →ᵤ β) × (α →ᵤ β)) :=
   (UniformFun.isBasis_gen α β 𝓕).FilterBasis
 #align uniform_fun.basis UniformFun.basis
+-/
 
+#print UniformFun.filter /-
 /-- For `𝓕 : filter (β × β)`, this is the filter generated by the filter basis
 `uniform_convergence.basis α β 𝓕`. For `𝓕 = 𝓤 β`, this will be the uniformity of uniform
 convergence on `α`. -/
 protected def filter (𝓕 : Filter <| β × β) : Filter ((α →ᵤ β) × (α →ᵤ β)) :=
   (UniformFun.basis α β 𝓕).filterₓ
 #align uniform_fun.filter UniformFun.filter
+-/
 
 -- mathport name: exprΦ
 local notation "Φ" => fun (α β : Type _) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) =>
@@ -251,6 +271,12 @@ The exact definition of the lower adjoint `l` is not interesting; we will only u
 `𝓕 : filter (γ × γ)` and `f : γ → α` (in `uniform_convergence.comap_eq`). -/
 local notation "lower_adjoint" => fun 𝓐 => map (Φ α β) (𝓐 ×ᶠ ⊤)
 
+/- warning: uniform_fun.gc -> UniformFun.gc is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}), GaloisConnection.{max u1 u2, u2} (Filter.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Filter.{u2} (Prod.{u2, u2} β β)) (PartialOrder.toPreorder.{max u1 u2} (Filter.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Filter.partialOrder.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)))) (PartialOrder.toPreorder.{u2} (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.partialOrder.{u2} (Prod.{u2, u2} β β))) (fun (𝓐 : Filter.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) => Filter.map.{max u1 u2, u2} (Prod.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α) (Prod.{u2, u2} β β) ((fun (α : Type.{u1}) (β : Type.{u2}) (uvx : Prod.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α) => Prod.mk.{u2, u2} β β (Prod.fst.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) (Prod.fst.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx) (Prod.snd.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx)) (Prod.snd.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) (Prod.fst.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx) (Prod.snd.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α uvx))) α β) (Filter.prod.{max u1 u2, u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) α 𝓐 (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α)))) (fun (𝓕 : Filter.{u2} (Prod.{u2, u2} β β)) => UniformFun.filter.{u1, u2} α β 𝓕)
+but is expected to have type
+  forall (α : Type.{u2}) (β : Type.{u1}), GaloisConnection.{max u2 u1, u1} (Filter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Filter.{u1} (Prod.{u1, u1} β β)) (PartialOrder.toPreorder.{max u2 u1} (Filter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Filter.instPartialOrderFilter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)))) (PartialOrder.toPreorder.{u1} (Filter.{u1} (Prod.{u1, u1} β β)) (Filter.instPartialOrderFilter.{u1} (Prod.{u1, u1} β β))) (fun (𝓐 : Filter.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) => Filter.map.{max u2 u1, u1} (Prod.{max u1 u2, u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) α) (Prod.{u1, u1} β β) (UniformFun.phi.{u2, u1} α β) (Filter.prod.{max u2 u1, u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) α 𝓐 (Top.top.{u2} (Filter.{u2} α) (Filter.instTopFilter.{u2} α)))) (fun (𝓕 : Filter.{u1} (Prod.{u1, u1} β β)) => UniformFun.filter.{u2, u1} α β 𝓕)
+Case conversion may be inaccurate. Consider using '#align uniform_fun.gc UniformFun.gcₓ'. -/
 /-- The function `uniform_convergence.filter α β : filter (β × β) → filter ((α →ᵤ β) × (α →ᵤ β))`
 has a lower adjoint `l` (in the sense of `galois_connection`). The exact definition of `l` is not
 interesting; we will only use that it exists (in `uniform_convergence.mono` and
@@ -281,6 +307,7 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
 
 variable [UniformSpace β]
 
+#print UniformFun.uniformCore /-
 /-- Core of the uniform structure of uniform convergence. -/
 protected def uniformCore : UniformSpace.Core (α →ᵤ β) :=
   UniformSpace.Core.mkOfBasis (UniformFun.basis α β (𝓤 β))
@@ -294,6 +321,7 @@ protected def uniformCore : UniformSpace.Core (α →ᵤ β) :=
       let ⟨W, hW, hWV⟩ := comp_mem_uniformity_sets hV
       ⟨UniformFun.gen α β W, ⟨W, hW, rfl⟩, fun uv ⟨w, huw, hwv⟩ x => hWV ⟨w x, ⟨huw x, hwv x⟩⟩⟩
 #align uniform_fun.uniform_core UniformFun.uniformCore
+-/
 
 /-- Uniform structure of uniform convergence, declared as an instance on `α →ᵤ β`.
 We will denote it `𝒰(α, β, uβ)` in the rest of this file. -/
@@ -307,6 +335,12 @@ instance : TopologicalSpace (α →ᵤ β) :=
 -- mathport name: «expr𝒰( , , )»
 local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 
+/- warning: uniform_fun.has_basis_uniformity -> UniformFun.hasBasis_uniformity is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β], Filter.HasBasis.{max u1 u2, succ u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) (Set.{u2} (Prod.{u2, u2} β β)) (uniformity.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1)) (fun (V : Set.{u2} (Prod.{u2, u2} β β)) => Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) V (uniformity.{u2} β _inst_1)) (UniformFun.gen.{u1, u2} α β)
+but is expected to have type
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β], Filter.HasBasis.{max u2 u1, succ u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Set.{u1} (Prod.{u1, u1} β β)) (uniformity.{max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1)) (fun (V : Set.{u1} (Prod.{u1, u1} β β)) => Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) V (uniformity.{u1} β _inst_1)) (UniformFun.gen.{u2, u1} α β)
+Case conversion may be inaccurate. Consider using '#align uniform_fun.has_basis_uniformity UniformFun.hasBasis_uniformityₓ'. -/
 /-- By definition, the uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}`
 for `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_uniformity :
@@ -314,6 +348,7 @@ protected theorem hasBasis_uniformity :
   (UniformFun.isBasis_gen α β (𝓤 β)).HasBasis
 #align uniform_fun.has_basis_uniformity UniformFun.hasBasis_uniformity
 
+#print UniformFun.hasBasis_uniformity_of_basis /-
 /-- The uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓑` as
 a filter basis, for any basis `𝓑` of `𝓤 β` (in the case `𝓑 = (𝓤 β).as_basis` this is true by
 definition). -/
@@ -325,7 +360,14 @@ protected theorem hasBasis_uniformity_of_basis {ι : Sort _} {p : ι → Prop} {
       ⟨i, hi, fun uv huv x => hiU (huv x)⟩)
     fun i hi => ⟨s i, h.mem_of_mem hi, subset_refl _⟩
 #align uniform_fun.has_basis_uniformity_of_basis UniformFun.hasBasis_uniformity_of_basis
+-/
 
+/- warning: uniform_fun.has_basis_nhds_of_basis -> UniformFun.hasBasis_nhds_of_basis is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (f : UniformFun.{u1, u2} α β) {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, succ u3} (UniformFun.{u1, u2} α β) ι (nhds.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.topologicalSpace.{u1, u2} α β _inst_1) f) p (fun (i : ι) => setOf.{max u1 u2} (UniformFun.{u1, u2} α β) (fun (g : UniformFun.{u1, u2} α β) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Prod.mk.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) f g) (UniformFun.gen.{u1, u2} α β (s i)))))
+but is expected to have type
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (f : UniformFun.{u3, u2} α β) {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, succ u1} (UniformFun.{u3, u2} α β) ι (nhds.{max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.topologicalSpace.{u3, u2} α β _inst_1) f) p (fun (i : ι) => setOf.{max u3 u2} (UniformFun.{u3, u2} α β) (fun (g : UniformFun.{u3, u2} α β) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β))) (Prod.mk.{max u3 u2, max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.{u3, u2} α β) f g) (UniformFun.gen.{u3, u2} α β (s i)))))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.has_basis_nhds_of_basis UniformFun.hasBasis_nhds_of_basisₓ'. -/
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓑` as a filter
 basis, for any basis `𝓑` of `𝓤 β`. -/
 protected theorem hasBasis_nhds_of_basis (f) {p : ι → Prop} {s : ι → Set (β × β)}
@@ -334,6 +376,12 @@ protected theorem hasBasis_nhds_of_basis (f) {p : ι → Prop} {s : ι → Set (
   nhds_basis_uniformity' (UniformFun.hasBasis_uniformity_of_basis α β h)
 #align uniform_fun.has_basis_nhds_of_basis UniformFun.hasBasis_nhds_of_basis
 
+/- warning: uniform_fun.has_basis_nhds -> UniformFun.hasBasis_nhds is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (f : UniformFun.{u1, u2} α β), Filter.HasBasis.{max u1 u2, succ u2} (UniformFun.{u1, u2} α β) (Set.{u2} (Prod.{u2, u2} β β)) (nhds.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.topologicalSpace.{u1, u2} α β _inst_1) f) (fun (V : Set.{u2} (Prod.{u2, u2} β β)) => Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) V (uniformity.{u2} β _inst_1)) (fun (V : Set.{u2} (Prod.{u2, u2} β β)) => setOf.{max u1 u2} (UniformFun.{u1, u2} α β) (fun (g : UniformFun.{u1, u2} α β) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β))) (Prod.mk.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u2} α β) f g) (UniformFun.gen.{u1, u2} α β V)))
+but is expected to have type
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (f : UniformFun.{u2, u1} α β), Filter.HasBasis.{max u2 u1, succ u1} (UniformFun.{u2, u1} α β) (Set.{u1} (Prod.{u1, u1} β β)) (nhds.{max u2 u1} (UniformFun.{u2, u1} α β) (UniformFun.topologicalSpace.{u2, u1} α β _inst_1) f) (fun (V : Set.{u1} (Prod.{u1, u1} β β)) => Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) V (uniformity.{u1} β _inst_1)) (fun (V : Set.{u1} (Prod.{u1, u1} β β)) => setOf.{max u2 u1} (UniformFun.{u2, u1} α β) (fun (g : UniformFun.{u2, u1} α β) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β))) (Prod.mk.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β) f g) (UniformFun.gen.{u2, u1} α β V)))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.has_basis_nhds UniformFun.hasBasis_nhdsₓ'. -/
 /-- For `f : α →ᵤ β`, `𝓝 f` admits the family `{g | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓤 β` as a
 filter basis. -/
 protected theorem hasBasis_nhds (f) :
@@ -343,6 +391,12 @@ protected theorem hasBasis_nhds (f) :
 
 variable {α}
 
+/- warning: uniform_fun.uniform_continuous_eval -> UniformFun.uniformContinuous_eval is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (x : α), UniformContinuous.{max u1 u2, u2} (UniformFun.{u1, u2} α β) β (UniformFun.uniformSpace.{u1, u2} α β _inst_1) _inst_1 (Function.comp.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (UniformFun.{u1, u2} α β) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (x : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β)))
+but is expected to have type
+  forall {α : Type.{u2}} (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (x : α), UniformContinuous.{max u2 u1, u1} (UniformFun.{u2, u1} α β) β (UniformFun.uniformSpace.{u2, u1} α β _inst_1) _inst_1 (Function.comp.{max (succ u2) (succ u1), max (succ u2) (succ u1), succ u1} (UniformFun.{u2, u1} α β) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (x : α) => β) x) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_eval UniformFun.uniformContinuous_evalₓ'. -/
 /-- Evaluation at a fixed point is uniformly continuous on `α →ᵤ β`. -/
 theorem uniformContinuous_eval (x : α) :
     UniformContinuous (Function.eval x ∘ toFun : (α →ᵤ β) → β) :=
@@ -355,12 +409,24 @@ theorem uniformContinuous_eval (x : α) :
 
 variable {β}
 
+/- warning: uniform_fun.mono -> UniformFun.mono is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {γ : Type.{u2}}, Monotone.{u2, max u1 u2} (UniformSpace.{u2} γ) (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (UniformSpace.partialOrder.{u2} γ)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformSpace.partialOrder.{max u1 u2} (UniformFun.{u1, u2} α γ))) (UniformFun.uniformSpace.{u1, u2} α γ)
+but is expected to have type
+  forall {α : Type.{u1}} {γ : Type.{u2}}, Monotone.{u2, max u1 u2} (UniformSpace.{u2} γ) (UniformSpace.{max u2 u1} (UniformFun.{u1, u2} α γ)) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (instPartialOrderUniformSpace.{u2} γ)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u2 u1} (UniformFun.{u1, u2} α γ)) (instPartialOrderUniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ))) (UniformFun.uniformSpace.{u1, u2} α γ)
+Case conversion may be inaccurate. Consider using '#align uniform_fun.mono UniformFun.monoₓ'. -/
 /-- If `u₁` and `u₂` are two uniform structures on `γ` and `u₁ ≤ u₂`, then
 `𝒰(α, γ, u₁) ≤ 𝒰(α, γ, u₂)`. -/
 protected theorem mono : Monotone (@UniformFun.uniformSpace α γ) := fun u₁ u₂ hu =>
   (UniformFun.gc α γ).monotone_u hu
 #align uniform_fun.mono UniformFun.mono
 
+/- warning: uniform_fun.infi_eq -> UniformFun.infᵢ_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformFun.uniformSpace.{u1, u2} α γ (infᵢ.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i))) (infᵢ.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformFun.{u1, u2} α γ)) (UniformSpace.hasInf.{max u1 u2} (UniformFun.{u1, u2} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u1, u2} α γ (u i)))
+but is expected to have type
+  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (UniformFun.uniformSpace.{u2, u3} α γ (infᵢ.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i))) (infᵢ.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformFun.{u2, u3} α γ)) (instInfSetUniformSpace.{max u2 u3} (UniformFun.{u2, u3} α γ)) ι (fun (i : ι) => UniformFun.uniformSpace.{u2, u3} α γ (u i)))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.infi_eq UniformFun.infᵢ_eqₓ'. -/
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i)`. -/
 protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, ⨅ i, u i) = ⨅ i, 𝒰(α, γ, u i) :=
@@ -373,6 +439,7 @@ protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, ⨅ i, u
   exact (UniformFun.gc α γ).u_infᵢ
 #align uniform_fun.infi_eq UniformFun.infᵢ_eq
 
+#print UniformFun.inf_eq /-
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
 `𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂)`. -/
 protected theorem inf_eq {u₁ u₂ : UniformSpace γ} : 𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂) :=
@@ -383,7 +450,14 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} : 𝒰(α, γ, u₁ ⊓ u
   refine' infᵢ_congr fun i => _
   cases i <;> rfl
 #align uniform_fun.inf_eq UniformFun.inf_eq
+-/
 
+/- warning: uniform_fun.comap_eq -> UniformFun.comap_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> β}, Eq.{succ (max u1 u3)} (UniformSpace.{max u1 u3} (UniformFun.{u1, u3} α γ)) (UniformFun.uniformSpace.{u1, u3} α γ (UniformSpace.comap.{u3, u2} γ β f _inst_1)) (UniformSpace.comap.{max u1 u3, max u1 u2} (UniformFun.{u1, u3} α γ) (UniformFun.{u1, u2} α β) (Function.comp.{succ u1, succ u3, succ u2} α γ β f) (UniformFun.uniformSpace.{u1, u2} α β _inst_1))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformFun.{u3, u2} α γ)) (UniformFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1)) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4217 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β f x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.4217) (UniformFun.uniformSpace.{u3, u1} α β _inst_1))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.comap_eq UniformFun.comap_eqₓ'. -/
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒰(α, γ, comap f u) = comap (λ g, f ∘ g) 𝒰(α, γ, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
@@ -407,6 +481,7 @@ protected theorem comap_eq {f : γ → β} :
   rfl
 #align uniform_fun.comap_eq UniformFun.comap_eq
 
+#print UniformFun.postcomp_uniformContinuous /-
 /-- Post-composition by a uniformly continuous function is uniformly continuous on `α →ᵤ β`.
 
 More precisely, if `f : γ → β` is uniformly continuous, then `(λ g, f ∘ g) : (α →ᵤ γ) → (α →ᵤ β)`
@@ -422,7 +497,9 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
       _ = 𝒰(α, β, _).comap ((· ∘ ·) f) := UniformFun.comap_eq
       
 #align uniform_fun.postcomp_uniform_continuous UniformFun.postcomp_uniformContinuous
+-/
 
+#print UniformFun.postcomp_uniformInducing /-
 /-- Post-composition by a uniform inducing is a uniform inducing for the
 uniform structures of uniform convergence.
 
@@ -440,7 +517,9 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   rw [← uniformSpace_eq hf, UniformFun.comap_eq]
   rfl
 #align uniform_fun.postcomp_uniform_inducing UniformFun.postcomp_uniformInducing
+-/
 
+#print UniformFun.congrRight /-
 /-- Turn a uniform isomorphism `γ ≃ᵤ β` into a uniform isomorphism `(α →ᵤ γ) ≃ᵤ (α →ᵤ β)` by
 post-composing. -/
 protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) ≃ᵤ (α →ᵤ β) :=
@@ -450,7 +529,14 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) 
     uniformContinuous_toFun := UniformFun.postcomp_uniformContinuous e.UniformContinuous
     uniformContinuous_invFun := UniformFun.postcomp_uniformContinuous e.symm.UniformContinuous }
 #align uniform_fun.congr_right UniformFun.congrRight
+-/
 
+/- warning: uniform_fun.precomp_uniform_continuous -> UniformFun.precomp_uniformContinuous is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u1 u2, max u3 u2} (UniformFun.{u1, u2} α β) (UniformFun.{u3, u2} γ β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u3, u2} γ β _inst_1) (fun (g : UniformFun.{u1, u2} α β) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) => (γ -> β) -> (UniformFun.{u3, u2} γ β)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformFun.{u3, u2} γ β)) (UniformFun.ofFun.{u3, u2} γ β) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] {f : γ -> α}, UniformContinuous.{max u3 u2, max u2 u1} (UniformFun.{u3, u2} α β) (UniformFun.{u1, u2} γ β) (UniformFun.uniformSpace.{u3, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u2} γ β _inst_1) (fun (g : UniformFun.{u3, u2} α β) => FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : γ -> β) => UniformFun.{u1, u2} γ β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (γ -> β) (UniformFun.{u1, u2} γ β)) (UniformFun.ofFun.{u1, u2} γ β) (Function.comp.{succ u1, succ u3, succ u2} γ α β g f))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.precomp_uniform_continuous UniformFun.precomp_uniformContinuousₓ'. -/
 /-- Pre-composition by a any function is uniformly continuous for the uniform structures of
 uniform convergence.
 
@@ -468,6 +554,7 @@ protected theorem precomp_uniformContinuous {f : γ → α} :
   exact fun U hU => ⟨U, hU, fun uv huv x => huv (f x)⟩
 #align uniform_fun.precomp_uniform_continuous UniformFun.precomp_uniformContinuous
 
+#print UniformFun.congrLeft /-
 /-- Turn a bijection `γ ≃ α` into a uniform isomorphism
 `(γ →ᵤ β) ≃ᵤ (α →ᵤ β)` by pre-composing. -/
 protected def congrLeft (e : γ ≃ α) : (γ →ᵤ β) ≃ᵤ (α →ᵤ β) :=
@@ -478,6 +565,7 @@ protected def congrLeft (e : γ ≃ α) : (γ →ᵤ β) ≃ᵤ (α →ᵤ β) :
     uniformContinuous_toFun := UniformFun.precomp_uniformContinuous
     uniformContinuous_invFun := UniformFun.precomp_uniformContinuous }
 #align uniform_fun.congr_left UniformFun.congrLeft
+-/
 
 /-- The topology of uniform convergence is T₂. -/
 instance [T2Space β] : T2Space (α →ᵤ β)
@@ -486,6 +574,12 @@ instance [T2Space β] : T2Space (α →ᵤ β)
     obtain ⟨x, hx⟩ := not_forall.mp (mt funext h)
     exact separated_by_continuous (uniform_continuous_eval β x).Continuous hx
 
+/- warning: uniform_fun.uniform_continuous_to_fun -> UniformFun.uniformContinuous_toFun is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β], UniformContinuous.{max u1 u2, max u1 u2} (UniformFun.{u1, u2} α β) (α -> β) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) => (UniformFun.{u1, u2} α β) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u1, u2} α β) (α -> β)) (UniformFun.toFun.{u1, u2} α β))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β], UniformContinuous.{max u2 u1, max u2 u1} (UniformFun.{u2, u1} α β) (α -> β) (UniformFun.uniformSpace.{u2, u1} α β _inst_1) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (_x : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFunₓ'. -/
 /-- The natural map `uniform_fun.to_fun` from `α →ᵤ β` to `α → β` is uniformly continuous.
 
 In other words, the uniform structure of uniform convergence is finer than that of pointwise
@@ -498,6 +592,12 @@ protected theorem uniformContinuous_toFun : UniformContinuous (toFun : (α →
   exact uniform_continuous_eval β x
 #align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFun
 
+/- warning: uniform_fun.tendsto_iff_tendsto_uniformly -> UniformFun.tendsto_iff_tendstoUniformly is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} {p : Filter.{u3} ι} [_inst_1 : UniformSpace.{u2} β] {F : ι -> (UniformFun.{u1, u2} α β)} {f : UniformFun.{u1, u2} α β}, Iff (Filter.Tendsto.{u3, max u1 u2} ι (UniformFun.{u1, u2} α β) F p (nhds.{max u1 u2} (UniformFun.{u1, u2} α β) (UniformFun.topologicalSpace.{u1, u2} α β _inst_1) f)) (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p)
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Type.{u1}} {p : Filter.{u1} ι} [_inst_1 : UniformSpace.{u2} β] {F : ι -> (UniformFun.{u3, u2} α β)} {f : UniformFun.{u3, u2} α β}, Iff (Filter.Tendsto.{u1, max u3 u2} ι (UniformFun.{u3, u2} α β) F p (nhds.{max u3 u2} (UniformFun.{u3, u2} α β) (UniformFun.topologicalSpace.{u3, u2} α β _inst_1) f)) (TendstoUniformly.{u3, u2, u1} α β ι _inst_1 F f p)
+Case conversion may be inaccurate. Consider using '#align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformlyₓ'. -/
 /-- The topology of uniform convergence indeed gives the same notion of convergence as
 `tendsto_uniformly`. -/
 protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α →ᵤ β} :
@@ -507,6 +607,12 @@ protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α
   exact Iff.rfl
 #align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformly
 
+/- warning: uniform_fun.uniform_equiv_prod_arrow -> UniformFun.uniformEquivProdArrow is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] [_inst_2 : UniformSpace.{u3} γ], UniformEquiv.{max u1 u2 u3, max (max u1 u2) u1 u3} (UniformFun.{u1, max u2 u3} α (Prod.{u2, u3} β γ)) (Prod.{max u1 u2, max u1 u3} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ)) (UniformFun.uniformSpace.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (Prod.uniformSpace.{u2, u3} β γ _inst_1 _inst_2)) (Prod.uniformSpace.{max u1 u2, max u1 u3} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u3} α γ _inst_2))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] [_inst_2 : UniformSpace.{u3} γ], UniformEquiv.{max (max u3 u2) u1, max (max u3 u1) u2 u1} (UniformFun.{u1, max u3 u2} α (Prod.{u2, u3} β γ)) (Prod.{max u2 u1, max u3 u1} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ)) (UniformFun.uniformSpace.{u1, max u2 u3} α (Prod.{u2, u3} β γ) (instUniformSpaceProd.{u2, u3} β γ _inst_1 _inst_2)) (instUniformSpaceProd.{max u1 u2, max u1 u3} (UniformFun.{u1, u2} α β) (UniformFun.{u1, u3} α γ) (UniformFun.uniformSpace.{u1, u2} α β _inst_1) (UniformFun.uniformSpace.{u1, u3} α γ _inst_2))
+Case conversion may be inaccurate. Consider using '#align uniform_fun.uniform_equiv_prod_arrow UniformFun.uniformEquivProdArrowₓ'. -/
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
 isomorphism between `α →ᵤ β × γ` and `(α →ᵤ β) × (α →ᵤ γ)`. -/
 protected def uniformEquivProdArrow [UniformSpace γ] : (α →ᵤ β × γ) ≃ᵤ (α →ᵤ β) × (α →ᵤ γ) :=
@@ -532,6 +638,7 @@ protected def uniformEquivProdArrow [UniformSpace γ] : (α →ᵤ β × γ) ≃
 -- the relevant diagram commutes by definition
 variable (α) (δ : ι → Type _) [∀ i, UniformSpace (δ i)]
 
+#print UniformFun.uniformEquivPiComm /-
 /-- The natural bijection between `α → Π i, δ i` and `Π i, α → δ i`, upgraded to a uniform
 isomorphism between `α →ᵤ (Π i, δ i)` and `Π i, α →ᵤ δ i`. -/
 protected def uniformEquivPiComm : UniformEquiv (α →ᵤ ∀ i, δ i) (∀ i, α →ᵤ δ i) :=
@@ -553,6 +660,7 @@ protected def uniformEquivPiComm : UniformEquiv (α →ᵤ ∀ i, δ i) (∀ i,
       refine' infᵢ_congr fun i => _
       rw [← UniformSpace.comap_comap, UniformFun.comap_eq])
 #align uniform_fun.uniform_equiv_Pi_comm UniformFun.uniformEquivPiComm
+-/
 
 -- Like in the previous lemma, the diagram actually commutes by definition
 end UniformFun
@@ -566,6 +674,7 @@ variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 -- mathport name: «expr𝒰( , , )»
 local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 
+#print UniformOnFun.gen /-
 /-- Basis sets for the uniformity of `𝔖`-convergence: for `S : set α` and `V : set (β × β)`,
 `gen 𝔖 S V` is the set of pairs `(f, g)` of functions `α →ᵤ[𝔖] β` such that
 `∀ x ∈ S, (f x, g x) ∈ V`. Note that the family `𝔖 : set (set α)` is only used to specify which
@@ -573,7 +682,14 @@ type alias of `α → β` to use here. -/
 protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β)) :=
   { uv : (α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β) | ∀ x ∈ S, (uv.1 x, uv.2 x) ∈ V }
 #align uniform_on_fun.gen UniformOnFun.gen
+-/
 
+/- warning: uniform_on_fun.gen_eq_preimage_restrict -> UniformOnFun.gen_eq_preimage_restrict is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {𝔖 : Set.{u1} (Set.{u1} α)} (S : Set.{u1} α) (V : Set.{u2} (Prod.{u2, u2} β β)), Eq.{succ (max u1 u2)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (UniformOnFun.gen.{u1, u2} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{max u1 u2, max u1 u2} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β)) (Prod.map.{max u1 u2, max u1 u2, max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S)) (UniformFun.gen.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β V))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} (S : Set.{u2} α) (V : Set.{u1} (Prod.{u1, u1} β β)), Eq.{max (succ u2) (succ u1)} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (Set.preimage.{max u1 u2, max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformFun.{u2, u1} α β) (UniformFun.{u2, u1} α β)) (Prod.{max u2 u1, max u2 u1} ((Set.Elem.{u2} α S) -> β) ((Set.Elem.{u2} α S) -> β)) (Prod.map.{max u1 u2, max u2 u1, max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α S) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α S) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) S) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β)))) (UniformFun.gen.{u2, u1} (Set.Elem.{u2} α S) β V))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.gen_eq_preimage_restrict UniformOnFun.gen_eq_preimage_restrictₓ'. -/
 /-- For `S : set α` and `V : set (β × β)`, we have
 `uniform_on_fun.gen 𝔖 S V = (S.restrict × S.restrict) ⁻¹' (uniform_fun.gen S β V)`.
 This is the crucial fact for proving that the family `uniform_on_fun.gen S V` for `S ∈ 𝔖` and
@@ -586,11 +702,23 @@ protected theorem gen_eq_preimage_restrict {𝔖} (S : Set α) (V : Set (β × 
   exact ⟨fun h ⟨x, hx⟩ => h x hx, fun h x hx => h ⟨x, hx⟩⟩
 #align uniform_on_fun.gen_eq_preimage_restrict UniformOnFun.gen_eq_preimage_restrict
 
+/- warning: uniform_on_fun.gen_mono -> UniformOnFun.gen_mono is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {𝔖 : Set.{u1} (Set.{u1} α)} {S : Set.{u1} α} {S' : Set.{u1} α} {V : Set.{u2} (Prod.{u2, u2} β β)} {V' : Set.{u2} (Prod.{u2, u2} β β)}, (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) S' S) -> (HasSubset.Subset.{u2} (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasSubset.{u2} (Prod.{u2, u2} β β)) V V') -> (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasSubset.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (UniformOnFun.gen.{u1, u2} α β 𝔖 S V) (UniformOnFun.gen.{u1, u2} α β 𝔖 S' V'))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} {S : Set.{u2} α} {S' : Set.{u2} α} {V : Set.{u1} (Prod.{u1, u1} β β)} {V' : Set.{u1} (Prod.{u1, u1} β β)}, (HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) S' S) -> (HasSubset.Subset.{u1} (Set.{u1} (Prod.{u1, u1} β β)) (Set.instHasSubsetSet.{u1} (Prod.{u1, u1} β β)) V V') -> (HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instHasSubsetSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (UniformOnFun.gen.{u2, u1} α β 𝔖 S V) (UniformOnFun.gen.{u2, u1} α β 𝔖 S' V'))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.gen_mono UniformOnFun.gen_monoₓ'. -/
 /-- `uniform_on_fun.gen` is antitone in the first argument and monotone in the second. -/
 protected theorem gen_mono {𝔖} {S S' : Set α} {V V' : Set (β × β)} (hS : S' ⊆ S) (hV : V ⊆ V') :
     UniformOnFun.gen 𝔖 S V ⊆ UniformOnFun.gen 𝔖 S' V' := fun uv h x hx => hV (h x <| hS hx)
 #align uniform_on_fun.gen_mono UniformOnFun.gen_mono
 
+/- warning: uniform_on_fun.is_basis_gen -> UniformOnFun.isBasis_gen is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall (𝓑 : FilterBasis.{u2} (Prod.{u2, u2} β β)), Filter.IsBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (FilterBasis.{u2} (Prod.{u2, u2} β β)) (FilterBasis.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝓑)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6659 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6661 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6659 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.6661) 𝔖) -> (forall (𝓑 : FilterBasis.{u1} (Prod.{u1, u1} β β)), Filter.IsBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (FilterBasis.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilterBasis.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝓑)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.is_basis_gen UniformOnFun.isBasis_genₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis on `β × β`, then the
 family `uniform_on_fun.gen 𝔖 S V` for `S ∈ 𝔖` and `V ∈ 𝓑` is a filter basis on
 `(α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β)`.
@@ -625,6 +753,12 @@ instance on `α →ᵤ[𝔖] β`. -/
 instance : TopologicalSpace (α →ᵤ[𝔖] β) :=
   𝒱(α, β, 𝔖, _).toTopologicalSpace
 
+/- warning: uniform_on_fun.topological_space_eq -> UniformOnFun.topologicalSpace_eq is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), Eq.{succ (max u1 u2)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) (infᵢ.{max u1 u2, succ u1} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Set.{u1} α) (fun (s : Set.{u1} α) => infᵢ.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (ConditionallyCompleteLattice.toHasInf.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (CompleteLattice.toConditionallyCompleteLattice.{max u1 u2} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)) (TopologicalSpace.completeLattice.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖)))) (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) (fun (hs : Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.topologicalSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1))))
+but is expected to have type
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), Eq.{max (succ u2) (succ u1)} (TopologicalSpace.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖)) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) (infᵢ.{max u1 u2, succ u2} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Set.{u2} α) (fun (s : Set.{u2} α) => infᵢ.{max u1 u2, 0} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (ConditionallyCompleteLattice.toInfSet.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u1} (TopologicalSpace.{max u1 u2} (UniformFun.{u2, u1} α β)) (TopologicalSpace.instCompleteLatticeTopologicalSpace.{max u2 u1} (UniformFun.{u2, u1} α β)))) (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) (fun (hs : Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) => TopologicalSpace.induced.{max u1 u2, max u2 u1} (UniformFun.{u2, u1} α β) ((Set.Elem.{u2} α s) -> β) (Function.comp.{succ (max u1 u2), max (succ u2) (succ u1), succ (max u2 u1)} (UniformFun.{u2, u1} α β) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (a._@.Mathlib.Data.Set.Function._hyg.24 : α) => β) s) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.{u2, u1} α β) (fun (a : UniformFun.{u2, u1} α β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformFun.{u2, u1} α β) => α -> β) a) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformFun.{u2, u1} α β) (α -> β)) (UniformFun.toFun.{u2, u1} α β))) (UniformFun.topologicalSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1))))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eqₓ'. -/
 /-- The topology of `𝔖`-convergence is the infimum, for `S ∈ 𝔖`, of topology induced by the map
 of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S`, where `↥S →ᵤ β` is endowed with
 the topology of uniform convergence. -/
@@ -638,6 +772,12 @@ protected theorem topologicalSpace_eq :
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
 
+/- warning: uniform_on_fun.has_basis_uniformity_of_basis_aux₁ -> UniformOnFun.hasBasis_uniformity_of_basis_aux₁ is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (forall (S : Set.{u1} α), Filter.HasBasis.{max u1 u2, succ u3} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) ι (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformSpace.comap.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) S) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) S) β _inst_1))) p (fun (i : ι) => UniformOnFun.gen.{u1, u2} α β 𝔖 S (s i)))
+but is expected to have type
+  forall (α : Type.{u1}) (β : Type.{u3}) {ι : Type.{u2}} [_inst_1 : UniformSpace.{u3} β] (𝔖 : Set.{u1} (Set.{u1} α)) {p : ι -> Prop} {s : ι -> (Set.{u3} (Prod.{u3, u3} β β))}, (Filter.HasBasis.{u3, succ u2} (Prod.{u3, u3} β β) ι (uniformity.{u3} β _inst_1) p s) -> (forall (S : Set.{u1} α), Filter.HasBasis.{max u1 u3, succ u2} (Prod.{max u3 u1, max u3 u1} (UniformOnFun.{u1, u3} α β 𝔖) (UniformOnFun.{u1, u3} α β 𝔖)) ι (uniformity.{max u3 u1} (UniformOnFun.{u1, u3} α β 𝔖) (UniformSpace.comap.{max u1 u3, max u1 u3} (UniformOnFun.{u1, u3} α β 𝔖) ((Set.Elem.{u1} α S) -> β) (Set.restrict.{u1, u3} α (fun (ᾰ : α) => β) S) (UniformFun.uniformSpace.{u1, u3} (Set.Elem.{u1} α S) β _inst_1))) p (fun (i : ι) => UniformOnFun.gen.{u1, u3} α β 𝔖 S (s i)))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis_aux₁ UniformOnFun.hasBasis_uniformity_of_basis_aux₁ₓ'. -/
 protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι → Set (β × β)}
     (hb : HasBasis (𝓤 β) p s) (S : Set α) :
     (@uniformity (α →ᵤ[𝔖] β) ((UniformFun.uniformSpace S β).comap S.restrict)).HasBasis p fun i =>
@@ -647,6 +787,12 @@ protected theorem hasBasis_uniformity_of_basis_aux₁ {p : ι → Prop} {s : ι
   exact (UniformFun.hasBasis_uniformity_of_basis S β hb).comap _
 #align uniform_on_fun.has_basis_uniformity_of_basis_aux₁ UniformOnFun.hasBasis_uniformity_of_basis_aux₁
 
+/- warning: uniform_on_fun.has_basis_uniformity_of_basis_aux₂ -> UniformOnFun.hasBasis_uniformity_of_basis_aux₂ is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u1} (Set.{u1} α) (Order.Preimage.{succ u1, succ (max u1 u2)} (Set.{u1} α) (UniformSpace.{max u1 u2} (α -> β)) (fun (s : Set.{u1} α) => UniformSpace.comap.{max u1 u2, max u1 u2} (α -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1)) (GE.ge.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (α -> β)) (UniformSpace.partialOrder.{max u1 u2} (α -> β)))))) 𝔖))
+but is expected to have type
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7566 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7568 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7566 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7568) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (DirectedOn.{u3} (Set.{u3} α) (Order.Preimage.{succ u3, succ (max u3 u2)} (Set.{u3} α) (UniformSpace.{max u3 u2} (α -> β)) (fun (s : Set.{u3} α) => UniformSpace.comap.{max u3 u2, max u3 u2} (α -> β) ((Set.Elem.{u3} α s) -> β) (Set.restrict.{u3, u2} α (fun (ᾰ : α) => β) s) (UniformFun.uniformSpace.{u3, u2} (Set.Elem.{u3} α s) β _inst_1)) (GE.ge.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (Preorder.toLE.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (PartialOrder.toPreorder.{max u3 u2} (UniformSpace.{max u3 u2} (α -> β)) (instPartialOrderUniformSpace.{max u3 u2} (α -> β)))))) 𝔖))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂ₓ'. -/
 protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·) 𝔖) {p : ι → Prop}
     {s : ι → Set (β × β)} (hb : HasBasis (𝓤 β) p s) :
     DirectedOn
@@ -659,6 +805,12 @@ protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·
       fun V hV => ⟨V, hV, UniformOnFun.gen_mono hst subset_rfl⟩
 #align uniform_on_fun.has_basis_uniformity_of_basis_aux₂ UniformOnFun.hasBasis_uniformity_of_basis_aux₂
 
+/- warning: uniform_on_fun.has_basis_uniformity_of_basis -> UniformOnFun.hasBasis_uniformity_of_basis is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u3} (Set.{u1} α) ι) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))
+but is expected to have type
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7708 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7710 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7708 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7710) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Prod.{u3, u1} (Set.{u3} α) ι) (uniformity.{max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u3, u2} α β _inst_1 𝔖)) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basisₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed and `𝓑` is a filter basis of `𝓤 β`, then the
 uniformity of `α →ᵤ[𝔖] β` admits the family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and
 `V ∈ 𝓑` as a filter basis. -/
@@ -674,6 +826,12 @@ protected theorem hasBasis_uniformity_of_basis (h : 𝔖.Nonempty) (h' : Directe
       (UniformOnFun.hasBasis_uniformity_of_basis_aux₂ α β 𝔖 h' hb)
 #align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basis
 
+/- warning: uniform_on_fun.has_basis_uniformity -> UniformOnFun.hasBasis_uniformity is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖)) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))
+but is expected to have type
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7860 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7862 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7860 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7862) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (uniformity.{max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖)) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformityₓ'. -/
 /-- If `𝔖 : set (set α)` is nonempty and directed, then the uniformity of `α →ᵤ[𝔖] β` admits the
 family `{(f, g) | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· ⊆ ·) 𝔖) :
@@ -682,6 +840,12 @@ protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· 
   UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' (𝓤 β).basis_sets
 #align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformity
 
+/- warning: uniform_on_fun.has_basis_nhds_of_basis -> UniformOnFun.hasBasis_nhds_of_basis is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u3} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u3)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u3} (Set.{u1} α) ι) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) 𝔖) (p (Prod.snd.{u1, u3} (Set.{u1} α) ι Si))) (fun (Si : Prod.{u1, u3} (Set.{u1} α) ι) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u3} (Set.{u1} α) ι Si) (s (Prod.snd.{u1, u3} (Set.{u1} α) ι Si)))))))
+but is expected to have type
+  forall (α : Type.{u3}) (β : Type.{u2}) {ι : Type.{u1}} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u3} (Set.{u3} α)) (f : UniformOnFun.{u3, u2} α β 𝔖), (Set.Nonempty.{u3} (Set.{u3} α) 𝔖) -> (DirectedOn.{u3} (Set.{u3} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7980 : Set.{u3} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7982 : Set.{u3} α) => HasSubset.Subset.{u3} (Set.{u3} α) (Set.instHasSubsetSet.{u3} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7980 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.7982) 𝔖) -> (forall {p : ι -> Prop} {s : ι -> (Set.{u2} (Prod.{u2, u2} β β))}, (Filter.HasBasis.{u2, succ u1} (Prod.{u2, u2} β β) ι (uniformity.{u2} β _inst_1) p s) -> (Filter.HasBasis.{max u3 u2, max (succ u3) (succ u1)} (UniformOnFun.{u3, u2} α β 𝔖) (Prod.{u3, u1} (Set.{u3} α) ι) (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => And (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) 𝔖) (p (Prod.snd.{u3, u1} (Set.{u3} α) ι Si))) (fun (Si : Prod.{u3, u1} (Set.{u3} α) ι) => setOf.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (fun (g : UniformOnFun.{u3, u2} α β 𝔖) => Membership.mem.{max u3 u2, max u3 u2} (Prod.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖)) (Set.{max u2 u3} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Set.instMembershipSet.{max u3 u2} (Prod.{max u2 u3, max u2 u3} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖))) (Prod.mk.{max u3 u2, max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.{u3, u2} α β 𝔖) g f) (UniformOnFun.gen.{u3, u2} α β 𝔖 (Prod.fst.{u3, u1} (Set.{u3} α) ι Si) (s (Prod.snd.{u3, u1} (Set.{u3} α) ι Si)))))))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basisₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓑` as a filter basis, for any basis
 `𝓑` of `𝓤 β`. -/
@@ -693,6 +857,12 @@ protected theorem hasBasis_nhds_of_basis (f : α →ᵤ[𝔖] β) (h : 𝔖.None
   nhds_basis_uniformity (UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' hb)
 #align uniform_on_fun.has_basis_nhds_of_basis UniformOnFun.hasBasis_nhds_of_basis
 
+/- warning: uniform_on_fun.has_basis_nhds -> UniformOnFun.hasBasis_nhds is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) (f : UniformOnFun.{u1, u2} α β 𝔖), (Set.Nonempty.{u1} (Set.{u1} α) 𝔖) -> (DirectedOn.{u1} (Set.{u1} α) (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α)) 𝔖) -> (Filter.HasBasis.{max u1 u2, max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => And (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) 𝔖) (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (uniformity.{u2} β _inst_1))) (fun (SV : Prod.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β))) => setOf.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => Membership.Mem.{max u1 u2, max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Set.hasMem.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖))) (Prod.mk.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) g f) (UniformOnFun.gen.{u1, u2} α β 𝔖 (Prod.fst.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV) (Prod.snd.{u1, u2} (Set.{u1} α) (Set.{u2} (Prod.{u2, u2} β β)) SV)))))
+but is expected to have type
+  forall (α : Type.{u2}) (β : Type.{u1}) [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) (f : UniformOnFun.{u2, u1} α β 𝔖), (Set.Nonempty.{u2} (Set.{u2} α) 𝔖) -> (DirectedOn.{u2} (Set.{u2} α) (fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8129 : Set.{u2} α) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8131 : Set.{u2} α) => HasSubset.Subset.{u2} (Set.{u2} α) (Set.instHasSubsetSet.{u2} α) x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8129 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8131) 𝔖) -> (Filter.HasBasis.{max u2 u1, max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) (nhds.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.topologicalSpace.{u2, u1} α β _inst_1 𝔖) f) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => And (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) 𝔖) (Membership.mem.{u1, u1} (Set.{u1} (Prod.{u1, u1} β β)) (Filter.{u1} (Prod.{u1, u1} β β)) (instMembershipSetFilter.{u1} (Prod.{u1, u1} β β)) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (uniformity.{u1} β _inst_1))) (fun (SV : Prod.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β))) => setOf.{max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => Membership.mem.{max u2 u1, max u2 u1} (Prod.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖)) (Set.{max u1 u2} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Set.instMembershipSet.{max u2 u1} (Prod.{max u1 u2, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖))) (Prod.mk.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u2, u1} α β 𝔖) g f) (UniformOnFun.gen.{u2, u1} α β 𝔖 (Prod.fst.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV) (Prod.snd.{u2, u1} (Set.{u2} α) (Set.{u1} (Prod.{u1, u1} β β)) SV)))))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhdsₓ'. -/
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : set (set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h' : DirectedOn (· ⊆ ·) 𝔖) :
@@ -701,6 +871,12 @@ protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h'
   UniformOnFun.hasBasis_nhds_of_basis α β 𝔖 f h h' (Filter.basis_sets _)
 #align uniform_on_fun.has_basis_nhds UniformOnFun.hasBasis_nhds
 
+/- warning: uniform_on_fun.uniform_continuous_restrict -> UniformOnFun.uniformContinuous_restrict is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)), (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β _inst_1) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u1, u2} α β 𝔖) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) => ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) -> (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (UniformFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (UniformFun.ofFun.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β)) (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) ((coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) -> β) (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))))
+but is expected to have type
+  forall (α : Type.{u2}) (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)), (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, max u1 u2} (UniformOnFun.{u2, u1} α β 𝔖) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformFun.uniformSpace.{u2, u1} (Set.Elem.{u2} α s) β _inst_1) (Function.comp.{succ (max u2 u1), max (succ u1) (succ u2), succ (max u1 u2)} (UniformOnFun.{u2, u1} α β 𝔖) ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) ((Set.Elem.{u2} α s) -> β) (fun (_x : (Set.Elem.{u2} α s) -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : (Set.Elem.{u2} α s) -> β) => UniformFun.{u2, u1} (Set.Elem.{u2} α s) β) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} ((Set.Elem.{u2} α s) -> β) (UniformFun.{u2, u1} (Set.Elem.{u2} α s) β)) (UniformFun.ofFun.{u2, u1} (Set.Elem.{u2} α s) β)) (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) ((Set.Elem.{u2} α s) -> β) (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_restrict UniformOnFun.uniformContinuous_restrictₓ'. -/
 /-- If `S ∈ 𝔖`, then the restriction to `S` is a uniformly continuous map from `α →ᵤ[𝔖] β` to
 `↥S →ᵤ β`. -/
 protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
@@ -713,6 +889,12 @@ protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
 
 variable {α}
 
+/- warning: uniform_on_fun.mono -> UniformOnFun.mono is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {γ : Type.{u2}} {{u₁ : UniformSpace.{u2} γ}} {{u₂ : UniformSpace.{u2} γ}}, (LE.le.{u2} (UniformSpace.{u2} γ) (Preorder.toLE.{u2} (UniformSpace.{u2} γ) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (UniformSpace.partialOrder.{u2} γ))) u₁ u₂) -> (forall {{𝔖₁ : Set.{u1} (Set.{u1} α)}} {{𝔖₂ : Set.{u1} (Set.{u1} α)}}, (HasSubset.Subset.{u1} (Set.{u1} (Set.{u1} α)) (Set.hasSubset.{u1} (Set.{u1} α)) 𝔖₂ 𝔖₁) -> (LE.le.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (UniformSpace.partialOrder.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)))) (UniformOnFun.uniformSpace.{u1, u2} α γ u₁ 𝔖₁) (UniformOnFun.uniformSpace.{u1, u2} α γ u₂ 𝔖₂)))
+but is expected to have type
+  forall {α : Type.{u1}} {γ : Type.{u2}} {{u₁ : UniformSpace.{u2} γ}} {{u₂ : UniformSpace.{u2} γ}}, (LE.le.{u2} (UniformSpace.{u2} γ) (Preorder.toLE.{u2} (UniformSpace.{u2} γ) (PartialOrder.toPreorder.{u2} (UniformSpace.{u2} γ) (instPartialOrderUniformSpace.{u2} γ))) u₁ u₂) -> (forall {{𝔖₁ : Set.{u1} (Set.{u1} α)}} {{𝔖₂ : Set.{u1} (Set.{u1} α)}}, (HasSubset.Subset.{u1} (Set.{u1} (Set.{u1} α)) (Set.instHasSubsetSet.{u1} (Set.{u1} α)) 𝔖₂ 𝔖₁) -> (LE.le.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (Preorder.toLE.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (PartialOrder.toPreorder.{max u1 u2} (UniformSpace.{max u2 u1} (UniformOnFun.{u1, u2} α γ 𝔖₁)) (instPartialOrderUniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖₁)))) (UniformOnFun.uniformSpace.{u1, u2} α γ u₁ 𝔖₁) (UniformOnFun.uniformSpace.{u1, u2} α γ u₂ 𝔖₂)))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.mono UniformOnFun.monoₓ'. -/
 /-- Let `u₁`, `u₂` be two uniform structures on `γ` and `𝔖₁ 𝔖₂ : set (set α)`. If `u₁ ≤ u₂` and
 `𝔖₂ ⊆ 𝔖₁` then `𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂)`. -/
 protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) ⦃𝔖₁ 𝔖₂ : Set (Set α)⦄
@@ -723,6 +905,12 @@ protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) 
     
 #align uniform_on_fun.mono UniformOnFun.mono
 
+/- warning: uniform_on_fun.uniform_continuous_eval_of_mem -> UniformOnFun.uniformContinuous_eval_of_mem is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} (β : Type.{u2}) {s : Set.{u1} α} [_inst_1 : UniformSpace.{u2} β] (𝔖 : Set.{u1} (Set.{u1} α)) {x : α}, (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (UniformContinuous.{max u1 u2, u2} (UniformOnFun.{u1, u2} α β 𝔖) β (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u1 u2), max (succ u1) (succ u2), succ u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) β (Function.eval.{succ u1, succ u2} α (fun (ᾰ : α) => β) x) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖))))
+but is expected to have type
+  forall {α : Type.{u2}} (β : Type.{u1}) {s : Set.{u2} α} [_inst_1 : UniformSpace.{u1} β] (𝔖 : Set.{u2} (Set.{u2} α)) {x : α}, (Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) -> (Membership.mem.{u2, u2} (Set.{u2} α) (Set.{u2} (Set.{u2} α)) (Set.instMembershipSet.{u2} (Set.{u2} α)) s 𝔖) -> (UniformContinuous.{max u2 u1, u1} (UniformOnFun.{u2, u1} α β 𝔖) β (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) _inst_1 (Function.comp.{succ (max u2 u1), max (succ u2) (succ u1), succ u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) β (Function.eval.{succ u2, succ u1} α (fun (ᾰ : α) => β) x) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖))))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_eval_of_mem UniformOnFun.uniformContinuous_eval_of_memₓ'. -/
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
 `α →ᵤ[𝔖] β`. -/
 theorem uniformContinuous_eval_of_mem {x : α} (hxs : x ∈ s) (hs : s ∈ 𝔖) :
@@ -733,6 +921,12 @@ theorem uniformContinuous_eval_of_mem {x : α} (hxs : x ∈ s) (hs : s ∈ 𝔖)
 
 variable {β} {𝔖}
 
+/- warning: uniform_on_fun.infi_eq -> UniformOnFun.infᵢ_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {γ : Type.{u2}} {ι : Type.{u3}} {𝔖 : Set.{u1} (Set.{u1} α)} {u : ι -> (UniformSpace.{u2} γ)}, Eq.{succ (max u1 u2)} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u2} α γ (infᵢ.{u2, succ u3} (UniformSpace.{u2} γ) (UniformSpace.hasInf.{u2} γ) ι (fun (i : ι) => u i)) 𝔖) (infᵢ.{max u1 u2, succ u3} (UniformSpace.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) (UniformSpace.hasInf.{max u1 u2} (UniformOnFun.{u1, u2} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u1, u2} α γ (u i) 𝔖))
+but is expected to have type
+  forall {α : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u1}} {𝔖 : Set.{u2} (Set.{u2} α)} {u : ι -> (UniformSpace.{u3} γ)}, Eq.{max (succ u2) (succ u3)} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u2, u3} α γ (infᵢ.{u3, succ u1} (UniformSpace.{u3} γ) (instInfSetUniformSpace.{u3} γ) ι (fun (i : ι) => u i)) 𝔖) (infᵢ.{max u2 u3, succ u1} (UniformSpace.{max u3 u2} (UniformOnFun.{u2, u3} α γ 𝔖)) (instInfSetUniformSpace.{max u2 u3} (UniformOnFun.{u2, u3} α γ 𝔖)) ι (fun (i : ι) => UniformOnFun.uniformSpace.{u2, u3} α γ (u i) 𝔖))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.infi_eq UniformOnFun.infᵢ_eqₓ'. -/
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`. -/
 protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) :=
@@ -742,6 +936,7 @@ protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, 
   exact infᵢ_congr fun s => infᵢ_comm
 #align uniform_on_fun.infi_eq UniformOnFun.infᵢ_eq
 
+#print UniformOnFun.inf_eq /-
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, u₁ ⊓ u₂) = 𝒱(α, γ, 𝔖, u₁) ⊓ 𝒱(α, γ, 𝔖, u₂)`. -/
 protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
@@ -751,7 +946,14 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
   refine' infᵢ_congr fun i => _
   cases i <;> rfl
 #align uniform_on_fun.inf_eq UniformOnFun.inf_eq
+-/
 
+/- warning: uniform_on_fun.comap_eq -> UniformOnFun.comap_eq is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {f : γ -> β}, Eq.{succ (max u1 u3)} (UniformSpace.{max u1 u3} (UniformOnFun.{u1, u3} α γ 𝔖)) (UniformOnFun.uniformSpace.{u1, u3} α γ (UniformSpace.comap.{u3, u2} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u1 u3, max u1 u2} (UniformOnFun.{u1, u3} α γ 𝔖) (UniformOnFun.{u1, u2} α β 𝔖) (Function.comp.{succ u1, succ u3, succ u2} α γ β f) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u3} (Set.{u3} α)} {f : γ -> β}, Eq.{max (succ u3) (succ u2)} (UniformSpace.{max u2 u3} (UniformOnFun.{u3, u2} α γ 𝔖)) (UniformOnFun.uniformSpace.{u3, u2} α γ (UniformSpace.comap.{u2, u1} γ β f _inst_1) 𝔖) (UniformSpace.comap.{max u3 u2, max u3 u1} (α -> γ) (α -> β) ((fun (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8839 : γ -> β) (x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8841 : α -> γ) => Function.comp.{succ u3, succ u2, succ u1} α γ β x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8839 x._@.Mathlib.Topology.UniformSpace.UniformConvergenceTopology._hyg.8841) f) (UniformOnFun.uniformSpace.{u3, u1} α β _inst_1 𝔖))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.comap_eq UniformOnFun.comap_eqₓ'. -/
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
@@ -764,6 +966,7 @@ protected theorem comap_eq {f : γ → β} :
   rfl
 #align uniform_on_fun.comap_eq UniformOnFun.comap_eq
 
+#print UniformOnFun.postcomp_uniformContinuous /-
 -- by definition, `∀ S ∈ 𝔖, (f ∘ —) ∘ S.restrict = S.restrict ∘ (f ∘ —)`.
 /-- Post-composition by a uniformly continuous function is uniformly continuous for the
 uniform structures of `𝔖`-convergence.
@@ -781,7 +984,9 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
     _ = 𝒱(α, β, 𝔖, _).comap ((· ∘ ·) f) := UniformOnFun.comap_eq
     
 #align uniform_on_fun.postcomp_uniform_continuous UniformOnFun.postcomp_uniformContinuous
+-/
 
+#print UniformOnFun.postcomp_uniformInducing /-
 /-- Post-composition by a uniform inducing is a uniform inducing for the
 uniform structures of `𝔖`-convergence.
 
@@ -799,7 +1004,9 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   rw [← uniformSpace_eq hf, UniformOnFun.comap_eq]
   rfl
 #align uniform_on_fun.postcomp_uniform_inducing UniformOnFun.postcomp_uniformInducing
+-/
 
+#print UniformOnFun.congrRight /-
 /-- Turn a uniform isomorphism `γ ≃ᵤ β` into a uniform isomorphism `(α →ᵤ[𝔖] γ) ≃ᵤ (α →ᵤ[𝔖] β)`
 by post-composing. -/
 protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖] γ) ≃ᵤ (α →ᵤ[𝔖] β) :=
@@ -809,7 +1016,14 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖]
     uniformContinuous_toFun := UniformOnFun.postcomp_uniformContinuous e.UniformContinuous
     uniformContinuous_invFun := UniformOnFun.postcomp_uniformContinuous e.symm.UniformContinuous }
 #align uniform_on_fun.congr_right UniformOnFun.congrRight
+-/
 
+/- warning: uniform_on_fun.precomp_uniform_continuous -> UniformOnFun.precomp_uniformContinuous is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.hasSubset.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u1} (Set.{u3} γ) (Set.{u1} α) (Set.image.{u3, u1} γ α f) 𝔖)) -> (UniformContinuous.{max u1 u2, max u3 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.{u3, u2} γ β 𝔗) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u2} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u1, u2} α β 𝔖) => coeFn.{max 1 (succ u3) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (fun (_x : Equiv.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) => (γ -> β) -> (UniformOnFun.{u3, u2} γ β 𝔗)) (Equiv.hasCoeToFun.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (γ -> β) (UniformOnFun.{u3, u2} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u2} γ β 𝔗) (Function.comp.{succ u3, succ u1, succ u2} γ α β g f)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)} {𝔗 : Set.{u3} (Set.{u3} γ)} {f : γ -> α}, (HasSubset.Subset.{u3} (Set.{u3} (Set.{u3} γ)) (Set.instHasSubsetSet.{u3} (Set.{u3} γ)) 𝔗 (Set.preimage.{u3, u2} (Set.{u3} γ) (Set.{u2} α) (Set.image.{u3, u2} γ α f) 𝔖)) -> (UniformContinuous.{max u2 u1, max u1 u3} (UniformOnFun.{u2, u1} α β 𝔖) (UniformOnFun.{u3, u1} γ β 𝔗) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (UniformOnFun.uniformSpace.{u3, u1} γ β _inst_1 𝔗) (fun (g : UniformOnFun.{u2, u1} α β 𝔖) => FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (γ -> β) (fun (_x : γ -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : γ -> β) => UniformOnFun.{u3, u1} γ β 𝔗) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (γ -> β) (UniformOnFun.{u3, u1} γ β 𝔗)) (UniformOnFun.ofFun.{u3, u1} γ β 𝔗) (Function.comp.{succ u3, succ u2, succ u1} γ α β g f)))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.precomp_uniform_continuous UniformOnFun.precomp_uniformContinuousₓ'. -/
 /-- Let `f : γ → α`, `𝔖 : set (set α)`, `𝔗 : set (set γ)`, and assume that `∀ T ∈ 𝔗, f '' T ∈ 𝔖`.
 Then, the function `(λ g, g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
 
@@ -843,6 +1057,7 @@ protected theorem precomp_uniformContinuous {𝔗 : Set (Set γ)} {f : γ → α
   exact UniformFun.precomp_uniformContinuous
 #align uniform_on_fun.precomp_uniform_continuous UniformOnFun.precomp_uniformContinuous
 
+#print UniformOnFun.congrLeft /-
 /-- Turn a bijection `e : γ ≃ α` such that we have both `∀ T ∈ 𝔗, e '' T ∈ 𝔖` and
 `∀ S ∈ 𝔖, e ⁻¹' S ∈ 𝔗` into a uniform isomorphism `(γ →ᵤ[𝔗] β) ≃ᵤ (α →ᵤ[𝔖] β)` by pre-composing. -/
 protected def congrLeft {𝔗 : Set (Set γ)} (e : γ ≃ α) (he : 𝔗 ⊆ image e ⁻¹' 𝔖)
@@ -860,7 +1075,9 @@ protected def congrLeft {𝔗 : Set (Set γ)} (e : γ ≃ α) (he : 𝔗 ⊆ ima
           exact he' hs)
     uniformContinuous_invFun := UniformOnFun.precomp_uniformContinuous he }
 #align uniform_on_fun.congr_left UniformOnFun.congrLeft
+-/
 
+#print UniformOnFun.t2Space_of_covering /-
 /-- If `𝔖` covers `α`, then the topology of `𝔖`-convergence is T₂. -/
 theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α →ᵤ[𝔖] β) :=
   {
@@ -870,7 +1087,14 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
       obtain ⟨s, hs, hxs⟩ : ∃ s ∈ 𝔖, x ∈ s := mem_sUnion.mp (h.symm ▸ True.intro)
       exact separated_by_continuous (uniform_continuous_eval_of_mem β 𝔖 hxs hs).Continuous hx }
 #align uniform_on_fun.t2_space_of_covering UniformOnFun.t2Space_of_covering
+-/
 
+/- warning: uniform_on_fun.uniform_continuous_to_fun -> UniformOnFun.uniformContinuous_toFun is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)}, (Eq.{succ u1} (Set.{u1} α) (Set.unionₛ.{u1} α 𝔖) (Set.univ.{u1} α)) -> (UniformContinuous.{max u1 u2, max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u1, u2} α β _inst_1 𝔖) (Pi.uniformSpace.{u2, u1} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (coeFn.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (fun (_x : Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) => (UniformOnFun.{u1, u2} α β 𝔖) -> α -> β) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u1, u2} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u1, u2} α β 𝔖)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : UniformSpace.{u1} β] {𝔖 : Set.{u2} (Set.{u2} α)}, (Eq.{succ u2} (Set.{u2} α) (Set.unionₛ.{u2} α 𝔖) (Set.univ.{u2} α)) -> (UniformContinuous.{max u2 u1, max u2 u1} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β) (UniformOnFun.uniformSpace.{u2, u1} α β _inst_1 𝔖) (Pi.uniformSpace.{u1, u2} α (fun (ᾰ : α) => β) (fun (i : α) => _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.{u2, u1} α β 𝔖) (fun (_x : UniformOnFun.{u2, u1} α β 𝔖) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : UniformOnFun.{u2, u1} α β 𝔖) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (UniformOnFun.{u2, u1} α β 𝔖) (α -> β)) (UniformOnFun.toFun.{u2, u1} α β 𝔖)))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFunₓ'. -/
 /-- If `𝔖` covers `α`, the natural map `uniform_on_fun.to_fun` from `α →ᵤ[𝔖] β` to `α → β` is
 uniformly continuous.
 
@@ -885,6 +1109,12 @@ protected theorem uniformContinuous_toFun (h : ⋃₀ 𝔖 = univ) :
   exact uniform_continuous_eval_of_mem β 𝔖 hxs hs
 #align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFun
 
+/- warning: uniform_on_fun.tendsto_iff_tendsto_uniformly_on -> UniformOnFun.tendsto_iff_tendstoUniformlyOn is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} {p : Filter.{u3} ι} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u1} (Set.{u1} α)} {F : ι -> (UniformOnFun.{u1, u2} α β 𝔖)} {f : UniformOnFun.{u1, u2} α β 𝔖}, Iff (Filter.Tendsto.{u3, max u1 u2} ι (UniformOnFun.{u1, u2} α β 𝔖) F p (nhds.{max u1 u2} (UniformOnFun.{u1, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u1, u2} α β _inst_1 𝔖) f)) (forall (s : Set.{u1} α), (Membership.Mem.{u1, u1} (Set.{u1} α) (Set.{u1} (Set.{u1} α)) (Set.hasMem.{u1} (Set.{u1} α)) s 𝔖) -> (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 F f p s))
+but is expected to have type
+  forall {α : Type.{u3}} {β : Type.{u2}} {ι : Type.{u1}} {p : Filter.{u1} ι} [_inst_1 : UniformSpace.{u2} β] {𝔖 : Set.{u3} (Set.{u3} α)} {F : ι -> (UniformOnFun.{u3, u2} α β 𝔖)} {f : UniformOnFun.{u3, u2} α β 𝔖}, Iff (Filter.Tendsto.{u1, max u3 u2} ι (UniformOnFun.{u3, u2} α β 𝔖) F p (nhds.{max u3 u2} (UniformOnFun.{u3, u2} α β 𝔖) (UniformOnFun.topologicalSpace.{u3, u2} α β _inst_1 𝔖) f)) (forall (s : Set.{u3} α), (Membership.mem.{u3, u3} (Set.{u3} α) (Set.{u3} (Set.{u3} α)) (Set.instMembershipSet.{u3} (Set.{u3} α)) s 𝔖) -> (TendstoUniformlyOn.{u3, u2, u1} α β ι _inst_1 F f p s))
+Case conversion may be inaccurate. Consider using '#align uniform_on_fun.tendsto_iff_tendsto_uniformly_on UniformOnFun.tendsto_iff_tendstoUniformlyOnₓ'. -/
 /-- Convergence in the topology of `𝔖`-convergence means uniform convergence on `S` (in the sense
 of `tendsto_uniformly_on`) for all `S ∈ 𝔖`. -/
 protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β} {f : α →ᵤ[𝔖] β} :
@@ -899,6 +1129,7 @@ protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β}
   rfl
 #align uniform_on_fun.tendsto_iff_tendsto_uniformly_on UniformOnFun.tendsto_iff_tendstoUniformlyOn
 
+#print UniformOnFun.uniformEquivProdArrow /-
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
 isomorphism between `α →ᵤ[𝔖] β × γ` and `(α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] γ)`. -/
 protected def uniformEquivProdArrow [UniformSpace γ] :
@@ -920,10 +1151,12 @@ protected def uniformEquivProdArrow [UniformSpace γ] :
         UniformOnFun.comap_eq, UniformOnFun.comap_eq, uniformity_comap, uniformity_comap]
       rfl)
 #align uniform_on_fun.uniform_equiv_prod_arrow UniformOnFun.uniformEquivProdArrow
+-/
 
 -- the relevant diagram commutes by definition
 variable (𝔖) (δ : ι → Type _) [∀ i, UniformSpace (δ i)]
 
+#print UniformOnFun.uniformEquivPiComm /-
 /-- The natural bijection between `α → Π i, δ i` and `Π i, α → δ i`, upgraded to a uniform
 isomorphism between `α →ᵤ[𝔖] (Π i, δ i)` and `Π i, α →ᵤ[𝔖] δ i`. -/
 protected def uniformEquivPiComm : (α →ᵤ[𝔖] ∀ i, δ i) ≃ᵤ ∀ i, α →ᵤ[𝔖] δ i :=
@@ -946,6 +1179,7 @@ protected def uniformEquivPiComm : (α →ᵤ[𝔖] ∀ i, δ i) ≃ᵤ ∀ i, 
       refine' infᵢ_congr fun i => _
       rw [← UniformSpace.comap_comap, UniformOnFun.comap_eq])
 #align uniform_on_fun.uniform_equiv_Pi_comm UniformOnFun.uniformEquivPiComm
+-/
 
 -- Like in the previous lemma, the diagram actually commutes by definition
 end UniformOnFun

Changes in mathlib4

mathlib3
mathlib4
feat(UniformConvergenceTopology): add UniformOnFun.uniformity_eq etc (#10784)
  • Add UniformOnFun.uniformity_eq etc: the HasBasis statements need more assumptions.
  • Add missing toFun/ofFun.
  • Golf using new lemmas.
Diff
@@ -596,7 +596,8 @@ declared as an instance on `α →ᵤ[𝔖] β`. It is defined as the infimum, f
 by `S.restrict`, the map of restriction to `S`, of the uniform structure `𝒰(s, β, uβ)` on
 `↥S →ᵤ β`. We will denote it `𝒱(α, β, 𝔖, uβ)`, where `uβ` is the uniform structure on `β`. -/
 instance uniformSpace : UniformSpace (α →ᵤ[𝔖] β) :=
-  ⨅ (s : Set α) (_ : s ∈ 𝔖), UniformSpace.comap s.restrict 𝒰(s, β, _)
+  ⨅ (s : Set α) (_ : s ∈ 𝔖),
+    .comap (UniformFun.ofFun ∘ s.restrict ∘ UniformOnFun.toFun 𝔖) 𝒰(s, β, _)
 
 local notation "𝒱(" α ", " β ", " 𝔖 ", " u ")" => @UniformOnFun.uniformSpace α β u 𝔖
 
@@ -735,6 +736,47 @@ protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
 
 variable {α}
 
+/-- A version of `UniformOnFun.hasBasis_uniformity_of_basis`
+with weaker conclusion and weaker assumptions.
+
+We make no assumptions about the set `𝔖`
+but conclude only that the uniformity is equal to some indexed infimum. -/
+protected theorem uniformity_eq_of_basis {ι : Sort*} {p : ι → Prop} {V : ι → Set (β × β)}
+    (h : (𝓤 β).HasBasis p V) :
+    𝓤 (α →ᵤ[𝔖] β) = ⨅ s ∈ 𝔖, ⨅ (i) (_ : p i), 𝓟 (UniformOnFun.gen 𝔖 s (V i)) := by
+  simp_rw [iInf_uniformity, uniformity_comap,
+    (UniformFun.hasBasis_uniformity_of_basis _ _ h).eq_biInf, comap_iInf, comap_principal,
+    Function.comp_apply, UniformFun.gen, Subtype.forall]
+  rfl
+
+protected theorem uniformity_eq : 𝓤 (α →ᵤ[𝔖] β) = ⨅ s ∈ 𝔖, ⨅ V ∈ 𝓤 β, 𝓟 (UniformOnFun.gen 𝔖 s V) :=
+  UniformOnFun.uniformity_eq_of_basis _ _ (𝓤 β).basis_sets
+
+protected theorem gen_mem_uniformity (hs : s ∈ 𝔖) {V : Set (β × β)} (hV : V ∈ 𝓤 β) :
+    UniformOnFun.gen 𝔖 s V ∈ 𝓤 (α →ᵤ[𝔖] β) := by
+  rw [UniformOnFun.uniformity_eq]
+  apply_rules [mem_iInf_of_mem, mem_principal_self]
+
+/-- A version of `UniformOnFun.hasBasis_nhds_of_basis`
+with weaker conclusion and weaker assumptions.
+
+We make no assumptions about the set `𝔖`
+but conclude only that the neighbourhoods filter is equal to some indexed infimum. -/
+protected theorem nhds_eq_of_basis {ι : Sort*} {p : ι → Prop} {V : ι → Set (β × β)}
+    (h : (𝓤 β).HasBasis p V) (f : α →ᵤ[𝔖] β) :
+    𝓝 f = ⨅ s ∈ 𝔖, ⨅ (i) (_ : p i), 𝓟 {g | ∀ x ∈ s, (toFun 𝔖 f x, toFun 𝔖 g x) ∈ V i} := by
+  simp_rw [nhds_eq_comap_uniformity, UniformOnFun.uniformity_eq_of_basis _ _ h, comap_iInf,
+    comap_principal]; rfl
+
+protected theorem nhds_eq (f : α →ᵤ[𝔖] β) :
+    𝓝 f = ⨅ s ∈ 𝔖, ⨅ V ∈ 𝓤 β, 𝓟 {g | ∀ x ∈ s, (toFun 𝔖 f x, toFun 𝔖 g x) ∈ V} :=
+  UniformOnFun.nhds_eq_of_basis _ _ (𝓤 β).basis_sets f
+
+protected theorem gen_mem_nhds (f : α →ᵤ[𝔖] β) (hs : s ∈ 𝔖) {V : Set (β × β)} (hV : V ∈ 𝓤 β) :
+    {g | ∀ x ∈ s, (toFun 𝔖 f x, toFun 𝔖 g x) ∈ V} ∈ 𝓝 f := by
+  rw [UniformOnFun.nhds_eq]
+  apply_rules [mem_iInf_of_mem, mem_principal_self]
+
 /-- Let `u₁`, `u₂` be two uniform structures on `γ` and `𝔖₁ 𝔖₂ : Set (Set α)`. If `u₁ ≤ u₂` and
 `𝔖₂ ⊆ 𝔖₁` then `𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂)`. -/
 protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) ⦃𝔖₁ 𝔖₂ : Set (Set α)⦄
@@ -828,30 +870,13 @@ Note that one can easily see that assuming `∀ T ∈ 𝔗, ∃ S ∈ 𝔖, f ''
 we will get this for free when we prove that `𝒱(α, β, 𝔖, uβ) = 𝒱(α, β, 𝔖', uβ)` where `𝔖'` is the
 ***noncovering*** bornology generated by `𝔖`. -/
 protected theorem precomp_uniformContinuous {𝔗 : Set (Set γ)} {f : γ → α}
-    (hf : 𝔗 ⊆ image f ⁻¹' 𝔖) :
-    UniformContinuous fun g : α →ᵤ[𝔖] β => ofFun 𝔗 (g ∘ f) := by
-  -- Since `comap` distributes on `iInf`, it suffices to prove that
-  -- `⨅ s ∈ 𝔖, comap s.restrict 𝒰(↥s, β, uβ) ≤ ⨅ t ∈ 𝔗, comap (t.restrict ∘ (— ∘ f)) 𝒰(↥t, β, uβ)`.
-  simp_rw [uniformContinuous_iff, UniformOnFun.uniformSpace, UniformSpace.comap_iInf, ←
-    UniformSpace.comap_comap]
-  -- For any `t ∈ 𝔗`, note `s := f '' t ∈ 𝔖`.
-  -- We will show that `comap s.restrict 𝒰(↥s, β, uβ) ≤ comap (t.restrict ∘ (— ∘ f)) 𝒰(↥t, β, uβ)`.
-  refine' le_iInf₂ fun t ht => iInf_le_of_le (f '' t) <| iInf_le_of_le (hf ht) _
-  -- Let `f'` be the map from `t` to `f '' t` induced by `f`.
-  let f' : t → f '' t := (mapsTo_image f t).restrict f t (f '' t)
-  -- By definition `t.restrict ∘ (— ∘ f) = (— ∘ f') ∘ (f '' t).restrict`.
-  have :
-    (t.restrict ∘ fun g : α →ᵤ[𝔖] β => ofFun 𝔗 (g ∘ f)) =
-      (fun g : f '' t → β => g ∘ f') ∘ (f '' t).restrict :=
-    rfl
-  -- Thus, we have to show `comap (f '' t).restrict 𝒰(↥(f '' t), β, uβ) ≤`
-  -- `comap (f '' t).restrict (comap (— ∘ f') 𝒰(↥t, β, uβ))`.
-  rw [this, @UniformSpace.comap_comap (α →ᵤ[𝔖] β) (f '' t →ᵤ β)]
-  -- But this is exactly monotonicity of `comap` applied to
-  -- `UniformFun.precomp_continuous`.
-  refine' UniformSpace.comap_mono _
-  rw [← uniformContinuous_iff]
-  exact UniformFun.precomp_uniformContinuous
+    (hf : MapsTo (f '' ·) 𝔗 𝔖) :
+    UniformContinuous fun g : α →ᵤ[𝔖] β => ofFun 𝔗 (toFun 𝔖 g ∘ f) := by
+  -- This follows from the fact that `(· ∘ f) × (· ∘ f)` maps `gen (f '' t) V` to `gen t V`.
+  simp_rw [UniformContinuous, UniformOnFun.uniformity_eq, tendsto_iInf]
+  refine fun t ht V hV ↦ tendsto_iInf' (f '' t) <| tendsto_iInf' (hf ht) <|
+    tendsto_iInf' V <| tendsto_iInf' hV ?_
+  simpa only [tendsto_principal_principal, UniformOnFun.gen] using fun _ ↦ forall_mem_image.1
 #align uniform_on_fun.precomp_uniform_continuous UniformOnFun.precomp_uniformContinuous
 
 /-- Turn a bijection `e : γ ≃ α` such that we have both `∀ T ∈ 𝔗, e '' T ∈ 𝔖` and
@@ -899,12 +924,7 @@ protected theorem uniformContinuous_toFun (h : ⋃₀ 𝔖 = univ) :
 of `TendstoUniformlyOn`) for all `S ∈ 𝔖`. -/
 protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β} {f : α →ᵤ[𝔖] β} :
     Tendsto F p (𝓝 f) ↔ ∀ s ∈ 𝔖, TendstoUniformlyOn (toFun 𝔖 ∘ F) (toFun 𝔖 f) p s := by
-  rw [UniformOnFun.topologicalSpace_eq, nhds_iInf, tendsto_iInf]
-  refine' forall_congr' fun s => _
-  rw [nhds_iInf, tendsto_iInf]
-  refine' forall_congr' fun hs => _
-  rw [nhds_induced (T := _), tendsto_comap_iff, tendstoUniformlyOn_iff_tendstoUniformly_comp_coe,
-    UniformFun.tendsto_iff_tendstoUniformly]
+  simp only [UniformOnFun.nhds_eq, tendsto_iInf, tendsto_principal]
   rfl
 #align uniform_on_fun.tendsto_iff_tendsto_uniformly_on UniformOnFun.tendsto_iff_tendstoUniformlyOn
 
chore: avoid automatically generated instance names (#12270)
Diff
@@ -168,10 +168,10 @@ instance [Nonempty β] : Nonempty (α →ᵤ β) := Pi.instNonempty
 instance [Nonempty β] : Nonempty (α →ᵤ[𝔖] β) := Pi.instNonempty
 
 instance [Subsingleton β] : Subsingleton (α →ᵤ β) :=
-  instSubsingletonForAll
+  inferInstanceAs <| Subsingleton <| α → β
 
 instance [Subsingleton β] : Subsingleton (α →ᵤ[𝔖] β) :=
-  instSubsingletonForAll
+  inferInstanceAs <| Subsingleton <| α → β
 
 /-- Reinterpret `f : α → β` as an element of `α →ᵤ β`. -/
 def UniformFun.ofFun : (α → β) ≃ (α →ᵤ β) :=
feat: general Ascoli theorem (#6844)

Co-authored-by: @vbeffara (port to Lean4), @tb65536 (suggested to skip the totally bounded case and go straight to compactness using Tykhonov)

This was discussed on Zulip recently and a while ago.

Diff
@@ -167,6 +167,12 @@ instance [Nonempty β] : Nonempty (α →ᵤ β) := Pi.instNonempty
 
 instance [Nonempty β] : Nonempty (α →ᵤ[𝔖] β) := Pi.instNonempty
 
+instance [Subsingleton β] : Subsingleton (α →ᵤ β) :=
+  instSubsingletonForAll
+
+instance [Subsingleton β] : Subsingleton (α →ᵤ[𝔖] β) :=
+  instSubsingletonForAll
+
 /-- Reinterpret `f : α → β` as an element of `α →ᵤ β`. -/
 def UniformFun.ofFun : (α → β) ≃ (α →ᵤ β) :=
   ⟨fun x => x, fun x => x, fun _ => rfl, fun _ => rfl⟩
@@ -868,6 +874,14 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
     exact separated_by_continuous (uniformContinuous_eval_of_mem β 𝔖 hxs hs).continuous hx
 #align uniform_on_fun.t2_space_of_covering UniformOnFun.t2Space_of_covering
 
+/-- The restriction map from `α →ᵤ[𝔖] β` to `⋃₀ 𝔖 → β` is uniformly continuous. -/
+theorem uniformContinuous_restrict_toFun :
+    UniformContinuous ((⋃₀ 𝔖).restrict ∘ toFun 𝔖 : (α →ᵤ[𝔖] β) → ⋃₀ 𝔖 → β) := by
+  rw [uniformContinuous_pi]
+  intro ⟨x, hx⟩
+  obtain ⟨s : Set α, hs : s ∈ 𝔖, hxs : x ∈ s⟩ := mem_sUnion.mpr hx
+  exact uniformContinuous_eval_of_mem β 𝔖 hxs hs
+
 /-- If `𝔖` covers `α`, the natural map `UniformOnFun.toFun` from `α →ᵤ[𝔖] β` to `α → β` is
 uniformly continuous.
 
chore: remove some mathlib3 names in doc comments (#11931)
Diff
@@ -552,7 +552,7 @@ protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[
 `UniformOnFun.gen 𝔖 S V = (S.restrict × S.restrict) ⁻¹' (UniformFun.gen S β V)`.
 This is the crucial fact for proving that the family `UniformOnFun.gen S V` for `S ∈ 𝔖` and
 `V ∈ 𝓤 β` is indeed a basis for the uniformity `α →ᵤ[𝔖] β` endowed with `𝒱(α, β, 𝔖, uβ)`
-the uniform structure of `𝔖`-convergence, as defined in `UniformOnFun.uniform_space`. -/
+the uniform structure of `𝔖`-convergence, as defined in `UniformOnFun.uniformSpace`. -/
 protected theorem gen_eq_preimage_restrict {𝔖} (S : Set α) (V : Set (β × β)) :
     UniformOnFun.gen 𝔖 S V =
       Prod.map (S.restrict ∘ UniformFun.toFun) (S.restrict ∘ UniformFun.toFun) ⁻¹'
chore: remove mathport name: <expression> lines (#11928)

Quoting [@digama0](https://github.com/digama0):

These were actually never meant to go in the file, they are basically debugging information and only useful on significantly broken mathport files. You can safely remove all of them.

Diff
@@ -235,7 +235,6 @@ protected def filter (𝓕 : Filter <| β × β) : Filter ((α →ᵤ β) × (α
   (UniformFun.basis α β 𝓕).filter
 #align uniform_fun.filter UniformFun.filter
 
--- mathport name: exprΦ
 --local notation "Φ" => fun (α β : Type*) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) =>
   --(uvx.fst.fst uvx.2, uvx.1.2 uvx.2)
 
@@ -299,7 +298,6 @@ instance uniformSpace : UniformSpace (α →ᵤ β) :=
 instance topologicalSpace : TopologicalSpace (α →ᵤ β) :=
   inferInstance
 
--- mathport name: «expr𝒰( , , )»
 local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 
 /-- By definition, the uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}`
@@ -540,7 +538,6 @@ namespace UniformOnFun
 variable {α β : Type*} {γ ι : Type*}
 variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 
--- mathport name: «expr𝒰( , , )»
 local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 
 /-- Basis sets for the uniformity of `𝔖`-convergence: for `S : Set α` and `V : Set (β × β)`,
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
@@ -201,7 +201,6 @@ open UniformConvergence
 namespace UniformFun
 
 variable (α β : Type*) {γ ι : Type*}
-
 variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 
 /-- Basis sets for the uniformity of uniform convergence: `gen α β V` is the set of pairs `(f, g)`
@@ -539,7 +538,6 @@ end UniformFun
 namespace UniformOnFun
 
 variable {α β : Type*} {γ ι : Type*}
-
 variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 
 -- mathport name: «expr𝒰( , , )»
feat(UniformSpace/CompactConvergence): prove metrizability (#10942)
Diff
@@ -657,6 +657,53 @@ protected theorem hasBasis_uniformity (h : 𝔖.Nonempty) (h' : DirectedOn (· 
   UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 h h' (𝓤 β).basis_sets
 #align uniform_on_fun.has_basis_uniformity UniformOnFun.hasBasis_uniformity
 
+variable {α β}
+
+/-- Let `t i` be a nonempty directed subfamily of `𝔖`
+such that every `s ∈ 𝔖` is included in some `t i`.
+Let `V` bounded by `p` be a basis of entourages of `β`.
+
+Then `UniformOnFun.gen 𝔖 (t i) (V j)` bounded by `p j` is a basis of entourages of `α →ᵤ[𝔖] β`. -/
+protected theorem hasBasis_uniformity_of_covering_of_basis {ι ι' : Type*} [Nonempty ι]
+    {t : ι → Set α} {p : ι' → Prop} {V : ι' → Set (β × β)} (ht : ∀ i, t i ∈ 𝔖)
+    (hdir : Directed (· ⊆ ·) t) (hex : ∀ s ∈ 𝔖, ∃ i, s ⊆ t i) (hb : HasBasis (𝓤 β) p V) :
+    (𝓤 (α →ᵤ[𝔖] β)).HasBasis (fun i : ι × ι' ↦ p i.2) fun i ↦
+      UniformOnFun.gen 𝔖 (t i.1) (V i.2) := by
+  have hne : 𝔖.Nonempty := (range_nonempty t).mono (range_subset_iff.2 ht)
+  have hd : DirectedOn (· ⊆ ·) 𝔖 := fun s₁ hs₁ s₂ hs₂ ↦ by
+    rcases hex s₁ hs₁, hex s₂ hs₂ with ⟨⟨i₁, his₁⟩, i₂, his₂⟩
+    rcases hdir i₁ i₂ with ⟨i, hi₁, hi₂⟩
+    exact ⟨t i, ht _, his₁.trans hi₁, his₂.trans hi₂⟩
+  refine (UniformOnFun.hasBasis_uniformity_of_basis α β 𝔖 hne hd hb).to_hasBasis
+    (fun ⟨s, i'⟩ ⟨hs, hi'⟩ ↦ ?_) fun ⟨i, i'⟩ hi' ↦ ⟨(t i, i'), ⟨ht i, hi'⟩, Subset.rfl⟩
+  rcases hex s hs with ⟨i, hi⟩
+  exact ⟨(i, i'), hi', UniformOnFun.gen_mono hi Subset.rfl⟩
+
+/-- If `t n` is a monotone sequence of sets in `𝔖`
+such that each `s ∈ 𝔖` is included in some `t n`
+and `V n` is an antitone basis of entourages of `β`,
+then `UniformOnFun.gen 𝔖 (t n) (V n)` is an antitone basis of entourages of `α →ᵤ[𝔖] β`. -/
+protected theorem hasAntitoneBasis_uniformity {ι : Type*} [Preorder ι] [IsDirected ι (· ≤ ·)]
+    {t : ι → Set α} {V : ι → Set (β × β)}
+    (ht : ∀ n, t n ∈ 𝔖) (hmono : Monotone t) (hex : ∀ s ∈ 𝔖, ∃ n, s ⊆ t n)
+    (hb : HasAntitoneBasis (𝓤 β) V) :
+    (𝓤 (α →ᵤ[𝔖] β)).HasAntitoneBasis fun n ↦ UniformOnFun.gen 𝔖 (t n) (V n) := by
+  have := hb.nonempty
+  refine ⟨(UniformOnFun.hasBasis_uniformity_of_covering_of_basis 𝔖
+    ht hmono.directed_le hex hb.1).to_hasBasis ?_ fun i _ ↦ ⟨(i, i), trivial, Subset.rfl⟩, ?_⟩
+  · rintro ⟨k, l⟩ -
+    rcases directed_of (· ≤ ·) k l with ⟨n, hkn, hln⟩
+    exact ⟨n, trivial, UniformOnFun.gen_mono (hmono hkn) (hb.2 <| hln)⟩
+  · exact fun k l h ↦ UniformOnFun.gen_mono (hmono h) (hb.2 h)
+
+protected theorem isCountablyGenerated_uniformity [IsCountablyGenerated (𝓤 β)] {t : ℕ → Set α}
+    (ht : ∀ n, t n ∈ 𝔖) (hmono : Monotone t) (hex : ∀ s ∈ 𝔖, ∃ n, s ⊆ t n) :
+    IsCountablyGenerated (𝓤 (α →ᵤ[𝔖] β)) :=
+  let ⟨_V, hV⟩ := exists_antitone_basis (𝓤 β)
+  (UniformOnFun.hasAntitoneBasis_uniformity 𝔖 ht hmono hex hV).isCountablyGenerated
+
+variable (α β)
+
 /-- For `f : α →ᵤ[𝔖] β`, where `𝔖 : Set (Set α)` is nonempty and directed, `𝓝 f` admits the
 family `{g | ∀ x ∈ S, (f x, g x) ∈ V}` for `S ∈ 𝔖` and `V ∈ 𝓑` as a filter basis, for any basis
 `𝓑` of `𝓤 β`. -/
feat(UniformConvergenceTopology): add isClosed_setOf_continuous (#10902)

See Zulip chat

Diff
@@ -525,6 +525,15 @@ protected def uniformEquivPiComm : UniformEquiv (α →ᵤ ∀ i, δ i) (∀ i,
 #align uniform_fun.uniform_equiv_Pi_comm UniformFun.uniformEquivPiComm
 
 -- Like in the previous lemma, the diagram actually commutes by definition
+
+/-- The set of continuous functions is closed in the uniform convergence topology.
+This is a simple wrapper over `TendstoUniformly.continuous`. -/
+theorem isClosed_setOf_continuous [TopologicalSpace α] :
+    IsClosed {f : α →ᵤ β | Continuous (toFun f)} := by
+  refine isClosed_iff_forall_filter.2 fun f u _ hu huf ↦ ?_
+  rw [← tendsto_id', UniformFun.tendsto_iff_tendstoUniformly] at huf
+  exact huf.continuous (le_principal_iff.mp hu)
+
 end UniformFun
 
 namespace UniformOnFun
@@ -904,4 +913,19 @@ protected def uniformEquivPiComm : (α →ᵤ[𝔖] ((i:ι) → δ i)) ≃ᵤ ((
 #align uniform_on_fun.uniform_equiv_Pi_comm UniformOnFun.uniformEquivPiComm
 
 -- Like in the previous lemma, the diagram actually commutes by definition
+
+/-- Suppose that the topology on `α` is defined by its restrictions to the sets of `𝔖`.
+
+Then the set of continuous functions is closed
+in the topology of uniform convergence on the sets of `𝔖`. -/
+theorem isClosed_setOf_continuous_of_le [t : TopologicalSpace α]
+    (h : t ≤ ⨆ s ∈ 𝔖, .coinduced (Subtype.val : s → α) inferInstance) :
+    IsClosed {f : α →ᵤ[𝔖] β | Continuous (toFun 𝔖 f)} := by
+  refine isClosed_iff_forall_filter.2 fun f u _ hu huf ↦ ?_
+  rw [← tendsto_id', UniformOnFun.tendsto_iff_tendstoUniformlyOn] at huf
+  have hcont : ∀ s ∈ 𝔖, ContinuousOn f s := fun s hs ↦
+    (huf s hs).continuousOn <| hu fun _ ↦ Continuous.continuousOn
+  refine continuous_le_dom h ?_
+  simpa only [continuous_iSup_dom, continuous_coinduced_dom] using fun s hs ↦ (hcont s hs).restrict
+
 end UniformOnFun
chore: scope open Classical (#11199)

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

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

Diff
@@ -135,7 +135,8 @@ uniform convergence
 
 noncomputable section
 
-open Topology Classical Uniformity Filter
+open scoped Classical
+open Topology Uniformity Filter
 
 open Set Filter
 
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
@@ -393,7 +393,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
     UniformFun.hasBasis_uniformity_of_basis _ _ (hf.basis_uniformity (𝓤 β).basis_sets)⟩
 #align uniform_fun.postcomp_uniform_inducing UniformFun.postcomp_uniformInducing
 
--- porting note: had to add a type annotation at `((f ∘ ·) : ((α → γ) → (α → β)))`
+-- Porting note: had to add a type annotation at `((f ∘ ·) : ((α → γ) → (α → β)))`
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒰(α, γ, comap f u) = comap (fun g ↦ f ∘ g) 𝒰(α, γ, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
@@ -412,7 +412,7 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
   -- This is a direct consequence of `UniformFun.comap_eq`
     refine uniformContinuous_iff.mpr ?_
     exact (UniformFun.mono (uniformContinuous_iff.mp hf)).trans_eq UniformFun.comap_eq
-    -- porting note: the original calc proof below gives a deterministic timeout
+    -- Porting note: the original calc proof below gives a deterministic timeout
     --calc
     --  𝒰(α, γ, _) ≤ 𝒰(α, γ, ‹UniformSpace β›.comap f) :=
     --    UniformFun.mono (uniformContinuous_iff.mp hf)
chore: solve not necessary anymore porting notes (#11086)

Solves porting notes claiming

  • "not necessary anymore"
  • "not used anymore"

by simply deleting them.

Diff
@@ -158,11 +158,6 @@ def UniformOnFun (α β : Type*) (_ : Set (Set α)) :=
 
 @[inherit_doc] scoped[UniformConvergence] notation:25 α " →ᵤ[" 𝔖 "] " β:0 => UniformOnFun α β 𝔖
 
--- Porting note: these are not used anymore
--- scoped[UniformConvergence] notation3 "λᵘ "(...)", "r:(scoped p => UniformFun.ofFun p) => r
-
--- scoped[UniformConvergence] notation3 "λᵘ["𝔖"] "(...)", "r:(scoped p => UniformFun.ofFun p) => r
-
 open UniformConvergence
 
 variable {α β : Type*} {𝔖 : Set (Set α)}
feat(UniformConvergenceTopology): add UniformOnFun.continuous_rng_iff (#10317)
Diff
@@ -847,6 +847,14 @@ protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β}
   rfl
 #align uniform_on_fun.tendsto_iff_tendsto_uniformly_on UniformOnFun.tendsto_iff_tendstoUniformlyOn
 
+protected lemma continuous_rng_iff {X : Type*} [TopologicalSpace X] {f : X → (α →ᵤ[𝔖] β)} :
+    Continuous f ↔ ∀ s ∈ 𝔖,
+      Continuous (UniformFun.ofFun ∘ s.restrict ∘ UniformOnFun.toFun 𝔖 ∘ f) := by
+  simp only [continuous_iff_continuousAt, ContinuousAt,
+    UniformOnFun.tendsto_iff_tendstoUniformlyOn, UniformFun.tendsto_iff_tendstoUniformly,
+    tendstoUniformlyOn_iff_tendstoUniformly_comp_coe, @forall_swap X]
+  rfl
+
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
 isomorphism between `α →ᵤ[𝔖] β × γ` and `(α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] γ)`. -/
 protected def uniformEquivProdArrow [UniformSpace γ] :
doc: @[inherit_doc] on notations (#9942)

Make all the notations that unambiguously should inherit the docstring of their definition actually inherit it.

Also write a few docstrings by hand. I only wrote the ones I was competent to write and which I was sure of. Some docstrings come from mathlib3 as they were lost during the early port.

This PR is only intended as a first pass There are many more docstrings to add.

Diff
@@ -154,9 +154,9 @@ def UniformOnFun (α β : Type*) (_ : Set (Set α)) :=
   α → β
 #align uniform_on_fun UniformOnFun
 
-scoped[UniformConvergence] notation:25 α " →ᵤ " β:0 => UniformFun α β
+@[inherit_doc] scoped[UniformConvergence] notation:25 α " →ᵤ " β:0 => UniformFun α β
 
-scoped[UniformConvergence] notation:25 α " →ᵤ[" 𝔖 "] " β:0 => UniformOnFun α β 𝔖
+@[inherit_doc] scoped[UniformConvergence] notation:25 α " →ᵤ[" 𝔖 "] " β:0 => UniformOnFun α β 𝔖
 
 -- Porting note: these are not used anymore
 -- scoped[UniformConvergence] notation3 "λᵘ "(...)", "r:(scoped p => UniformFun.ofFun p) => r
chore: tidy various files (#9903)
Diff
@@ -167,9 +167,9 @@ open UniformConvergence
 
 variable {α β : Type*} {𝔖 : Set (Set α)}
 
-instance [Nonempty β] : Nonempty (α →ᵤ β) := Pi.Nonempty
+instance [Nonempty β] : Nonempty (α →ᵤ β) := Pi.instNonempty
 
-instance [Nonempty β] : Nonempty (α →ᵤ[𝔖] β) := Pi.Nonempty
+instance [Nonempty β] : Nonempty (α →ᵤ[𝔖] β) := Pi.instNonempty
 
 /-- Reinterpret `f : α → β` as an element of `α →ᵤ β`. -/
 def UniformFun.ofFun : (α → β) ≃ (α →ᵤ β) :=
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -515,7 +515,7 @@ protected def uniformEquivPiComm : UniformEquiv (α →ᵤ ∀ i, δ i) (∀ i,
     -- that some square commutes.
     @Equiv.toUniformEquivOfUniformInducing
     _ _ 𝒰(α, ∀ i, δ i, Pi.uniformSpace δ)
-    (@Pi.uniformSpace ι (fun i => α → δ i) fun i => 𝒰(α, δ i, _)) (Equiv.piComm _) $ by
+    (@Pi.uniformSpace ι (fun i => α → δ i) fun i => 𝒰(α, δ i, _)) (Equiv.piComm _) <| by
       refine @UniformInducing.mk ?_ ?_ ?_ ?_ ?_ ?_
       change comap (Prod.map Function.swap Function.swap) _ = _
       rw [← uniformity_comap]
@@ -860,7 +860,7 @@ protected def uniformEquivProdArrow [UniformSpace γ] :
   -- but it turns out to be more annoying.
   ((UniformOnFun.ofFun 𝔖).symm.trans <|
     (Equiv.arrowProdEquivProdArrow _ _ _).trans <|
-      (UniformOnFun.ofFun 𝔖).prodCongr (UniformOnFun.ofFun 𝔖)).toUniformEquivOfUniformInducing $ by
+      (UniformOnFun.ofFun 𝔖).prodCongr (UniformOnFun.ofFun 𝔖)).toUniformEquivOfUniformInducing <| by
       constructor
       rw [uniformity_prod, comap_inf, comap_comap, comap_comap]
       have H := @UniformOnFun.inf_eq α (β × γ) 𝔖
@@ -887,7 +887,7 @@ protected def uniformEquivPiComm : (α →ᵤ[𝔖] ((i:ι) → δ i)) ≃ᵤ ((
   -- We could also deduce this from `UniformFun.uniformEquivPiComm`, but it turns out
   -- to be more annoying.
   @Equiv.toUniformEquivOfUniformInducing (α →ᵤ[𝔖] ((i:ι) → δ i)) ((i:ι) → α →ᵤ[𝔖] δ i)
-      _ _ (Equiv.piComm _) $ by
+      _ _ (Equiv.piComm _) <| by
     constructor
     change comap (Prod.map Function.swap Function.swap) _ = _
     erw [← uniformity_comap]
chore(UniformConvergenceTopology): use variable, fix types (#9132)
  • Use variable.
  • Add toFun/ofFun to abuse the definitional equality less often.
  • Review instances in Topology.Algebra.UniformConvergence.
  • Replace *_apply lemmas with toFun_*/ofFun_* lemmas.
Diff
@@ -165,32 +165,37 @@ scoped[UniformConvergence] notation:25 α " →ᵤ[" 𝔖 "] " β:0 => UniformOn
 
 open UniformConvergence
 
-instance {α β} [Nonempty β] : Nonempty (α →ᵤ β) :=
-  Pi.Nonempty
+variable {α β : Type*} {𝔖 : Set (Set α)}
 
-instance {α β 𝔖} [Nonempty β] : Nonempty (α →ᵤ[𝔖] β) :=
-  Pi.Nonempty
+instance [Nonempty β] : Nonempty (α →ᵤ β) := Pi.Nonempty
+
+instance [Nonempty β] : Nonempty (α →ᵤ[𝔖] β) := Pi.Nonempty
 
 /-- Reinterpret `f : α → β` as an element of `α →ᵤ β`. -/
-def UniformFun.ofFun {α β} : (α → β) ≃ (α →ᵤ β) :=
+def UniformFun.ofFun : (α → β) ≃ (α →ᵤ β) :=
   ⟨fun x => x, fun x => x, fun _ => rfl, fun _ => rfl⟩
 #align uniform_fun.of_fun UniformFun.ofFun
 
 /-- Reinterpret `f : α → β` as an element of `α →ᵤ[𝔖] β`. -/
-def UniformOnFun.ofFun {α β} (𝔖) : (α → β) ≃ (α →ᵤ[𝔖] β) :=
+def UniformOnFun.ofFun (𝔖) : (α → β) ≃ (α →ᵤ[𝔖] β) :=
   ⟨fun x => x, fun x => x, fun _ => rfl, fun _ => rfl⟩
 #align uniform_on_fun.of_fun UniformOnFun.ofFun
 
 /-- Reinterpret `f : α →ᵤ β` as an element of `α → β`. -/
-def UniformFun.toFun {α β} : (α →ᵤ β) ≃ (α → β) :=
+def UniformFun.toFun : (α →ᵤ β) ≃ (α → β) :=
   UniformFun.ofFun.symm
 #align uniform_fun.to_fun UniformFun.toFun
 
 /-- Reinterpret `f : α →ᵤ[𝔖] β` as an element of `α → β`. -/
-def UniformOnFun.toFun {α β} (𝔖) : (α →ᵤ[𝔖] β) ≃ (α → β) :=
+def UniformOnFun.toFun (𝔖) : (α →ᵤ[𝔖] β) ≃ (α → β) :=
   (UniformOnFun.ofFun 𝔖).symm
 #align uniform_on_fun.to_fun UniformOnFun.toFun
 
+@[simp] lemma UniformFun.toFun_ofFun (f : α → β) : toFun (ofFun f) = f := rfl
+@[simp] lemma UniformFun.ofFun_toFun (f : α →ᵤ β) : ofFun (toFun f) = f := rfl
+@[simp] lemma UniformOnFun.toFun_ofFun (f : α → β) : toFun 𝔖 (ofFun 𝔖 f) = f := rfl
+@[simp] lemma UniformOnFun.ofFun_toFun (f : α →ᵤ[𝔖] β) : ofFun 𝔖 (toFun 𝔖 f) = f := rfl
+
 -- Note: we don't declare a `CoeFun` instance because Lean wouldn't insert it when writing
 -- `f x` (because of definitional equality with `α → β`).
 end TypeAlias
@@ -206,7 +211,7 @@ variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 /-- Basis sets for the uniformity of uniform convergence: `gen α β V` is the set of pairs `(f, g)`
 of functions `α →ᵤ β` such that `∀ x, (f x, g x) ∈ V`. -/
 protected def gen (V : Set (β × β)) : Set ((α →ᵤ β) × (α →ᵤ β)) :=
-  { uv : (α →ᵤ β) × (α →ᵤ β) | ∀ x, (uv.1 x, uv.2 x) ∈ V }
+  { uv : (α →ᵤ β) × (α →ᵤ β) | ∀ x, (toFun uv.1 x, toFun uv.2 x) ∈ V }
 #align uniform_fun.gen UniformFun.gen
 
 /-- If `𝓕` is a filter on `β × β`, then the set of all `UniformFun.gen α β V` for
@@ -248,7 +253,7 @@ The exact definition of the lower adjoint `l` is not interesting; we will only u
 (in `UniformFun.mono` and `UniformFun.iInf_eq`) and that
 `l (Filter.map (Prod.map f f) 𝓕) = Filter.map (Prod.map ((∘) f) ((∘) f)) (l 𝓕)` for each
 `𝓕 : Filter (γ × γ)` and `f : γ → α` (in `UniformFun.comap_eq`). -/
-local notation "lower_adjoint" => fun 𝓐 => map (UniformFun.phi α β) (𝓐 ×ˢ ⊤)
+local notation "lowerAdjoint" => fun 𝓐 => map (UniformFun.phi α β) (𝓐 ×ˢ ⊤)
 
 /-- The function `UniformFun.filter α β : Filter (β × β) → Filter ((α →ᵤ β) × (α →ᵤ β))`
 has a lower adjoint `l` (in the sense of `GaloisConnection`). The exact definition of `l` is not
@@ -256,7 +261,7 @@ interesting; we will only use that it exists (in `UniformFun.mono` and
 `UniformFun.iInf_eq`) and that
 `l (Filter.map (Prod.map f f) 𝓕) = Filter.map (Prod.map ((∘) f) ((∘) f)) (l 𝓕)` for each
 `𝓕 : Filter (γ × γ)` and `f : γ → α` (in `UniformFun.comap_eq`). -/
-protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.filter α β 𝓕 := by
+protected theorem gc : GaloisConnection lowerAdjoint fun 𝓕 => UniformFun.filter α β 𝓕 := by
   intro 𝓐 𝓕
   symm
   calc
@@ -271,7 +276,7 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
           { uvx : ((α →ᵤ β) × (α →ᵤ β)) × α | (uvx.1.1 uvx.2, uvx.1.2 uvx.2) ∈ U } ∈
             𝓐 ×ˢ (⊤ : Filter α) :=
       forall₂_congr fun U _hU => mem_prod_top.symm
-    _ ↔ lower_adjoint 𝓐 ≤ 𝓕 := Iff.rfl
+    _ ↔ lowerAdjoint 𝓐 ≤ 𝓕 := Iff.rfl
 #align uniform_fun.gc UniformFun.gc
 
 variable [UniformSpace β]
@@ -305,7 +310,7 @@ local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 /-- By definition, the uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}`
 for `V ∈ 𝓤 β` as a filter basis. -/
 protected theorem hasBasis_uniformity :
-    (𝓤 (α →ᵤ β)).HasBasis (fun V => V ∈ 𝓤 β) (UniformFun.gen α β) :=
+    (𝓤 (α →ᵤ β)).HasBasis (· ∈ 𝓤 β) (UniformFun.gen α β) :=
   (UniformFun.isBasis_gen α β (𝓤 β)).hasBasis
 #align uniform_fun.has_basis_uniformity UniformFun.hasBasis_uniformity
 
@@ -349,6 +354,11 @@ theorem uniformContinuous_eval (x : α) :
 
 variable {β}
 
+@[simp]
+protected lemma mem_gen {f g : α →ᵤ β} {V : Set (β × β)} :
+    (f, g) ∈ UniformFun.gen α β V ↔ ∀ x, (toFun f x, toFun g x) ∈ V :=
+  .rfl
+
 /-- If `u₁` and `u₂` are two uniform structures on `γ` and `u₁ ≤ u₂`, then
 `𝒰(α, γ, u₁) ≤ 𝒰(α, γ, u₂)`. -/
 protected theorem mono : Monotone (@UniformFun.uniformSpace α γ) := fun _ _ hu =>
@@ -428,7 +438,7 @@ uniform convergence.
 More precisely, for any `f : γ → α`, the function `(· ∘ f) : (α →ᵤ β) → (γ →ᵤ β)` is uniformly
 continuous. -/
 protected theorem precomp_uniformContinuous {f : γ → α} :
-    UniformContinuous fun g : α →ᵤ β => ofFun (g ∘ f) := by
+    UniformContinuous fun g : α →ᵤ β => ofFun (toFun g ∘ f) := by
   -- Here we simply go back to filter bases.
   rw [uniformContinuous_iff]
   change
@@ -440,18 +450,12 @@ protected theorem precomp_uniformContinuous {f : γ → α} :
 
 /-- Turn a bijection `γ ≃ α` into a uniform isomorphism
 `(γ →ᵤ β) ≃ᵤ (α →ᵤ β)` by pre-composing. -/
-protected def congrLeft (e : γ ≃ α) : (γ →ᵤ β) ≃ᵤ (α →ᵤ β) :=
-  { Equiv.arrowCongr e (Equiv.refl _) with
-    uniformContinuous_toFun := UniformFun.precomp_uniformContinuous
-    uniformContinuous_invFun := UniformFun.precomp_uniformContinuous }
+protected def congrLeft (e : γ ≃ α) : (γ →ᵤ β) ≃ᵤ (α →ᵤ β) where
+  toEquiv := e.arrowCongr (.refl _)
+  uniformContinuous_toFun := UniformFun.precomp_uniformContinuous
+  uniformContinuous_invFun := UniformFun.precomp_uniformContinuous
 #align uniform_fun.congr_left UniformFun.congrLeft
 
-/-- The topology of uniform convergence is T₂. -/
-instance [T2Space β] : T2Space (α →ᵤ β) where
-  t2 f g h := by
-    obtain ⟨x, hx⟩ := not_forall.mp (mt funext h)
-    exact separated_by_continuous (uniformContinuous_eval β x).continuous hx
-
 /-- The natural map `UniformFun.toFun` from `α →ᵤ β` to `α → β` is uniformly continuous.
 
 In other words, the uniform structure of uniform convergence is finer than that of pointwise
@@ -463,12 +467,16 @@ protected theorem uniformContinuous_toFun : UniformContinuous (toFun : (α →
   exact uniformContinuous_eval β x
 #align uniform_fun.uniform_continuous_to_fun UniformFun.uniformContinuous_toFun
 
+/-- The topology of uniform convergence is T₂. -/
+instance [T2Space β] : T2Space (α →ᵤ β) :=
+  .of_injective_continuous toFun.injective UniformFun.uniformContinuous_toFun.continuous
+
 /-- The topology of uniform convergence indeed gives the same notion of convergence as
 `TendstoUniformly`. -/
 protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α →ᵤ β} :
-    Tendsto F p (𝓝 f) ↔ TendstoUniformly F f p := by
+    Tendsto F p (𝓝 f) ↔ TendstoUniformly (toFun ∘ F) (toFun f) p := by
   rw [(UniformFun.hasBasis_nhds α β f).tendsto_right_iff, TendstoUniformly]
-  simp only [mem_setOf, UniformFun.gen]
+  simp only [mem_setOf, UniformFun.gen, Function.comp_def]
 #align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformly
 
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
@@ -479,7 +487,7 @@ protected def uniformEquivProdArrow [UniformSpace γ] : (α →ᵤ β × γ) ≃
   -- But `uβ × uγ` is defined as `comap fst uβ ⊓ comap snd uγ`, so we just have to apply
   -- `UniformFun.inf_eq` and `UniformFun.comap_eq`, which leaves us to check
   -- that some square commutes.
-  Equiv.toUniformEquivOfUniformInducing (Equiv.arrowProdEquivProdArrow _ _ _) $ by
+  Equiv.toUniformEquivOfUniformInducing (Equiv.arrowProdEquivProdArrow _ _ _) <| by
     constructor
     change
       comap (Prod.map (Equiv.arrowProdEquivProdArrow _ _ _) (Equiv.arrowProdEquivProdArrow _ _ _))
@@ -537,7 +545,7 @@ local notation "𝒰(" α ", " β ", " u ")" => @UniformFun.uniformSpace α β u
 `∀ x ∈ S, (f x, g x) ∈ V`. Note that the family `𝔖 : Set (Set α)` is only used to specify which
 type alias of `α → β` to use here. -/
 protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β)) :=
-  { uv : (α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β) | ∀ x ∈ S, (uv.1 x, uv.2 x) ∈ V }
+  { uv : (α →ᵤ[𝔖] β) × (α →ᵤ[𝔖] β) | ∀ x ∈ S, (toFun 𝔖 uv.1 x, toFun 𝔖 uv.2 x) ∈ V }
 #align uniform_on_fun.gen UniformOnFun.gen
 
 /-- For `S : Set α` and `V : Set (β × β)`, we have
@@ -596,8 +604,8 @@ of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S
 the topology of uniform convergence. -/
 protected theorem topologicalSpace_eq :
     UniformOnFun.topologicalSpace α β 𝔖 =
-      ⨅ (s : Set α) (_ : s ∈ 𝔖), TopologicalSpace.induced (s.restrict ∘ UniformFun.toFun)
-        (UniformFun.topologicalSpace s β) := by
+      ⨅ (s : Set α) (_ : s ∈ 𝔖), TopologicalSpace.induced
+        (UniformFun.ofFun ∘ s.restrict ∘ toFun 𝔖) (UniformFun.topologicalSpace s β) := by
   simp only [UniformOnFun.topologicalSpace, UniformSpace.toTopologicalSpace_iInf]
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
@@ -829,7 +837,7 @@ protected theorem uniformContinuous_toFun (h : ⋃₀ 𝔖 = univ) :
 /-- Convergence in the topology of `𝔖`-convergence means uniform convergence on `S` (in the sense
 of `TendstoUniformlyOn`) for all `S ∈ 𝔖`. -/
 protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β} {f : α →ᵤ[𝔖] β} :
-    Tendsto F p (𝓝 f) ↔ ∀ s ∈ 𝔖, TendstoUniformlyOn F f p s := by
+    Tendsto F p (𝓝 f) ↔ ∀ s ∈ 𝔖, TendstoUniformlyOn (toFun 𝔖 ∘ F) (toFun 𝔖 f) p s := by
   rw [UniformOnFun.topologicalSpace_eq, nhds_iInf, tendsto_iInf]
   refine' forall_congr' fun s => _
   rw [nhds_iInf, tendsto_iInf]
chore: tidy various files (#9016)
Diff
@@ -468,7 +468,7 @@ protected theorem uniformContinuous_toFun : UniformContinuous (toFun : (α →
 protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α →ᵤ β} :
     Tendsto F p (𝓝 f) ↔ TendstoUniformly F f p := by
   rw [(UniformFun.hasBasis_nhds α β f).tendsto_right_iff, TendstoUniformly]
-  rfl
+  simp only [mem_setOf, UniformFun.gen]
 #align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformly
 
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
feat: Scott topology on a preorder (#2508)

Introduce the Scott topology on a preorder, defined in terms of directed sets.

There is already a related notion of Scott topology defined in topology.omega_complete_partial_order, where it is defined on ω-complete partial orders in terms of ω-chains. In some circumstances the definition given here coincides with that given in topology.omega_complete_partial_order but in general they are different. Abramsky and Jung ([Domain Theory, 2.2.4][abramsky_gabbay_maibaum_1994]) argue that the ω-chain approach has pedagogical advantages, but the directed sets approach is more appropriate as a theoretical foundation.

Co-authored-by: Yaël Dillies <yael.dillies@gmail.com> Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -616,7 +616,7 @@ protected theorem hasBasis_uniformity_of_basis_aux₂ (h : DirectedOn (· ⊆ ·
       ((fun s : Set α => (UniformFun.uniformSpace s β).comap (s.restrict : (α →ᵤ β) → s →ᵤ β)) ⁻¹'o
         GE.ge)
       𝔖 :=
-  h.mono fun hst =>
+  h.mono fun _ _ hst =>
     ((UniformOnFun.hasBasis_uniformity_of_basis_aux₁ α β 𝔖 hb _).le_basis_iff
           (UniformOnFun.hasBasis_uniformity_of_basis_aux₁ α β 𝔖 hb _)).mpr
       fun V hV => ⟨V, hV, UniformOnFun.gen_mono hst subset_rfl⟩
chore(UniformConvergenceTopology): golf, reflow (#8812)
  • Move a proof up, golf.
  • Replace (· ∘ ·) f with (f ∘ ·).
  • Reflow structure constructors.
Diff
@@ -377,29 +377,24 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
   cases i <;> rfl
 #align uniform_fun.inf_eq UniformFun.inf_eq
 
+/-- Post-composition by a uniform inducing function is
+a uniform inducing function for the uniform structures of uniform convergence.
+
+More precisely, if `f : γ → β` is uniform inducing,
+then `(f ∘ ·) : (α →ᵤ γ) → (α →ᵤ β)` is uniform inducing. -/
+protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf : UniformInducing f) :
+    UniformInducing (ofFun ∘ (f ∘ ·) ∘ toFun : (α →ᵤ γ) → α →ᵤ β) :=
+  ⟨((UniformFun.hasBasis_uniformity _ _).comap _).eq_of_same_basis <|
+    UniformFun.hasBasis_uniformity_of_basis _ _ (hf.basis_uniformity (𝓤 β).basis_sets)⟩
+#align uniform_fun.postcomp_uniform_inducing UniformFun.postcomp_uniformInducing
+
 -- porting note: had to add a type annotation at `((f ∘ ·) : ((α → γ) → (α → β)))`
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
 `𝒰(α, γ, comap f u) = comap (fun g ↦ f ∘ g) 𝒰(α, γ, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
-    𝒰(α, γ, ‹UniformSpace β›.comap f) = 𝒰(α, β, _).comap ((f ∘ ·)) := by
-  letI : UniformSpace γ := ‹UniformSpace β›.comap f
-  ext : 1
-  change UniformFun.filter α γ ((𝓤 β).comap _) = (UniformFun.filter α β (𝓤 β)).comap _
-  -- We have the following four Galois connection which form a square diagram, and we want
-  -- to show that the square of upper adjoints is commutative. The trick then is to use
-  -- `GaloisConnection.u_comm_of_l_comm` to reduce it to commutativity of the lower adjoints,
-  -- which is way easier to prove.
-  let fcomp := ((f ∘ ·) : ((α → γ) → (α → β)))
-  have h₁ := Filter.gc_map_comap (Prod.map fcomp fcomp)
-  have h₂ := Filter.gc_map_comap (Prod.map f f)
-  have h₃ := UniformFun.gc α β
-  have h₄ := UniformFun.gc α γ
-  refine' GaloisConnection.u_comm_of_l_comm h₁ h₂ h₃ h₄ fun 𝓐 => _
-  have : Prod.map f f ∘ (UniformFun.phi α γ)
-      = (UniformFun.phi α β) ∘ Prod.map (Prod.map fcomp fcomp) (id : α → α) := by
-    ext <;> rfl
-  rw [map_comm this, ← prod_map_map_eq']
-  rfl
+    𝒰(α, γ, ‹UniformSpace β›.comap f) = 𝒰(α, β, _).comap (f ∘ ·) := by
+  letI : UniformSpace γ := .comap f ‹_›
+  exact (UniformFun.postcomp_uniformInducing (f := f) ⟨rfl⟩).comap_uniformSpace.symm
 #align uniform_fun.comap_eq UniformFun.comap_eq
 
 /-- Post-composition by a uniformly continuous function is uniformly continuous on `α →ᵤ β`.
@@ -419,28 +414,10 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
     --  _ = 𝒰(α, β, _).comap (f ∘ ·) := @UniformFun.comap_eq α β γ _ f
 #align uniform_fun.postcomp_uniform_continuous UniformFun.postcomp_uniformContinuous
 
-/-- Post-composition by a uniform inducing is a uniform inducing for the
-uniform structures of uniform convergence.
-
-More precisely, if `f : γ → β` is a uniform inducing, then `(λ g, f ∘ g) : (α →ᵤ γ) → (α →ᵤ β)` is
-a uniform inducing. -/
-protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf : UniformInducing f) :
-    UniformInducing (ofFun ∘ (f ∘ ·) ∘ toFun : (α →ᵤ γ) → α →ᵤ β) := by
-  -- This is a direct consequence of `UniformFun.comap_eq`
-  constructor
-  replace hf : (𝓤 β).comap (Prod.map f f) = _ := hf.comap_uniformity
-  change comap (Prod.map (ofFun ∘ (f ∘ ·) ∘ toFun) (ofFun ∘ (f ∘ ·) ∘ toFun)) _ = _
-  rw [← uniformity_comap] at hf ⊢
-  congr
-  rw [← UniformSpace.ext hf, UniformFun.comap_eq]
-  rfl
-#align uniform_fun.postcomp_uniform_inducing UniformFun.postcomp_uniformInducing
-
 /-- Turn a uniform isomorphism `γ ≃ᵤ β` into a uniform isomorphism `(α →ᵤ γ) ≃ᵤ (α →ᵤ β)` by
 post-composing. -/
 protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) ≃ᵤ (α →ᵤ β) :=
-  { Equiv.piCongrRight fun _a =>
-      e.toEquiv with
+  { Equiv.piCongrRight fun _ => e.toEquiv with
     uniformContinuous_toFun := UniformFun.postcomp_uniformContinuous e.uniformContinuous
     uniformContinuous_invFun := UniformFun.postcomp_uniformContinuous e.symm.uniformContinuous }
 #align uniform_fun.congr_right UniformFun.congrRight
@@ -448,7 +425,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) 
 /-- Pre-composition by any function is uniformly continuous for the uniform structures of
 uniform convergence.
 
-More precisely, for any `f : γ → α`, the function `(λ g, g ∘ f) : (α →ᵤ β) → (γ →ᵤ β)` is uniformly
+More precisely, for any `f : γ → α`, the function `(· ∘ f) : (α →ᵤ β) → (γ →ᵤ β)` is uniformly
 continuous. -/
 protected theorem precomp_uniformContinuous {f : γ → α} :
     UniformContinuous fun g : α →ᵤ β => ofFun (g ∘ f) := by
@@ -464,17 +441,14 @@ protected theorem precomp_uniformContinuous {f : γ → α} :
 /-- Turn a bijection `γ ≃ α` into a uniform isomorphism
 `(γ →ᵤ β) ≃ᵤ (α →ᵤ β)` by pre-composing. -/
 protected def congrLeft (e : γ ≃ α) : (γ →ᵤ β) ≃ᵤ (α →ᵤ β) :=
-  { Equiv.arrowCongr e
-      (Equiv.refl
-        _) with
+  { Equiv.arrowCongr e (Equiv.refl _) with
     uniformContinuous_toFun := UniformFun.precomp_uniformContinuous
     uniformContinuous_invFun := UniformFun.precomp_uniformContinuous }
 #align uniform_fun.congr_left UniformFun.congrLeft
 
 /-- The topology of uniform convergence is T₂. -/
 instance [T2Space β] : T2Space (α →ᵤ β) where
-  t2 := by
-    intro f g h
+  t2 f g h := by
     obtain ⟨x, hx⟩ := not_forall.mp (mt funext h)
     exact separated_by_continuous (uniformContinuous_eval β x).continuous hx
 
@@ -494,7 +468,7 @@ protected theorem uniformContinuous_toFun : UniformContinuous (toFun : (α →
 protected theorem tendsto_iff_tendstoUniformly {F : ι → α →ᵤ β} {f : α →ᵤ β} :
     Tendsto F p (𝓝 f) ↔ TendstoUniformly F f p := by
   rw [(UniformFun.hasBasis_nhds α β f).tendsto_right_iff, TendstoUniformly]
-  exact Iff.rfl
+  rfl
 #align uniform_fun.tendsto_iff_tendsto_uniformly UniformFun.tendsto_iff_tendstoUniformly
 
 /-- The natural bijection between `α → β × γ` and `(α → β) × (α → γ)`, upgraded to a uniform
@@ -740,7 +714,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 /-- If `u` is a uniform structure on `β` and `f : γ → β`, then
 `𝒱(α, γ, 𝔖, comap f u) = comap (fun g ↦ f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
-    𝒱(α, γ, 𝔖, ‹UniformSpace β›.comap f) = 𝒱(α, β, 𝔖, _).comap ((· ∘ ·) f) := by
+    𝒱(α, γ, 𝔖, ‹UniformSpace β›.comap f) = 𝒱(α, β, 𝔖, _).comap (f ∘ ·) := by
   -- We reduce this to `UniformFun.comap_eq` using the fact that `comap` distributes
   -- on `iInf`.
   simp_rw [UniformOnFun.uniformSpace, UniformSpace.comap_iInf, UniformFun.comap_eq, ←
@@ -755,7 +729,7 @@ uniform structures of `𝔖`-convergence.
 More precisely, if `f : γ → β` is uniformly continuous, then
 `(fun g ↦ f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is uniformly continuous. -/
 protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
-    (hf : UniformContinuous f) : UniformContinuous (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖) := by
+    (hf : UniformContinuous f) : UniformContinuous (ofFun 𝔖 ∘ (f ∘ ·) ∘ toFun 𝔖) := by
   -- This is a direct consequence of `UniformFun.comap_eq`
   rw [uniformContinuous_iff]
   exact (UniformOnFun.mono (uniformContinuous_iff.mp hf) subset_rfl).trans_eq UniformOnFun.comap_eq
@@ -767,11 +741,11 @@ uniform structures of `𝔖`-convergence.
 More precisely, if `f : γ → β` is a uniform inducing, then
 `(fun g ↦ f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is a uniform inducing. -/
 protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf : UniformInducing f) :
-    UniformInducing (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖) := by
+    UniformInducing (ofFun 𝔖 ∘ (f ∘ ·) ∘ toFun 𝔖) := by
   -- This is a direct consequence of `UniformFun.comap_eq`
   constructor
   replace hf : (𝓤 β).comap (Prod.map f f) = _ := hf.comap_uniformity
-  change comap (Prod.map (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖) (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖)) _ = _
+  change comap (Prod.map (ofFun 𝔖 ∘ (f ∘ ·) ∘ toFun 𝔖) (ofFun 𝔖 ∘ (f ∘ ·) ∘ toFun 𝔖)) _ = _
   rw [← uniformity_comap] at hf ⊢
   congr
   rw [← UniformSpace.ext hf, UniformOnFun.comap_eq]
@@ -781,9 +755,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
 /-- Turn a uniform isomorphism `γ ≃ᵤ β` into a uniform isomorphism `(α →ᵤ[𝔖] γ) ≃ᵤ (α →ᵤ[𝔖] β)`
 by post-composing. -/
 protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖] γ) ≃ᵤ (α →ᵤ[𝔖] β) :=
-  {
-    Equiv.piCongrRight fun _a =>
-      e.toEquiv with
+  { Equiv.piCongrRight fun _a => e.toEquiv with
     uniformContinuous_toFun := UniformOnFun.postcomp_uniformContinuous e.uniformContinuous
     uniformContinuous_invFun := UniformOnFun.postcomp_uniformContinuous e.symm.uniformContinuous }
 #align uniform_on_fun.congr_right UniformOnFun.congrRight
@@ -825,27 +797,20 @@ protected theorem precomp_uniformContinuous {𝔗 : Set (Set γ)} {f : γ → α
 `∀ S ∈ 𝔖, e ⁻¹' S ∈ 𝔗` into a uniform isomorphism `(γ →ᵤ[𝔗] β) ≃ᵤ (α →ᵤ[𝔖] β)` by pre-composing. -/
 protected def congrLeft {𝔗 : Set (Set γ)} (e : γ ≃ α) (he : 𝔗 ⊆ image e ⁻¹' 𝔖)
     (he' : 𝔖 ⊆ preimage e ⁻¹' 𝔗) : (γ →ᵤ[𝔗] β) ≃ᵤ (α →ᵤ[𝔖] β) :=
-  { Equiv.arrowCongr e
-      (Equiv.refl
-        _) with
-    uniformContinuous_toFun :=
-      UniformOnFun.precomp_uniformContinuous
-        (by
-          intro s hs
-          change e.symm '' s ∈ 𝔗
-          rw [← preimage_equiv_eq_image_symm]
-          exact he' hs)
+  { Equiv.arrowCongr e (Equiv.refl _) with
+    uniformContinuous_toFun := UniformOnFun.precomp_uniformContinuous fun s hs ↦ by
+      change e.symm '' s ∈ 𝔗
+      rw [← preimage_equiv_eq_image_symm]
+      exact he' hs
     uniformContinuous_invFun := UniformOnFun.precomp_uniformContinuous he }
 #align uniform_on_fun.congr_left UniformOnFun.congrLeft
 
 /-- If `𝔖` covers `α`, then the topology of `𝔖`-convergence is T₂. -/
-theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α →ᵤ[𝔖] β) :=
-  {
-    t2 := by
-      intro f g hfg
-      obtain ⟨x, hx⟩ := not_forall.mp (mt funext hfg)
-      obtain ⟨s, hs, hxs⟩ : ∃ s ∈ 𝔖, x ∈ s := mem_sUnion.mp (h.symm ▸ True.intro)
-      exact separated_by_continuous (uniformContinuous_eval_of_mem β 𝔖 hxs hs).continuous hx }
+theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α →ᵤ[𝔖] β) where
+  t2 f g hfg := by
+    obtain ⟨x, hx⟩ := not_forall.mp (mt funext hfg)
+    obtain ⟨s, hs, hxs⟩ : ∃ s ∈ 𝔖, x ∈ s := mem_sUnion.mp (h.symm ▸ True.intro)
+    exact separated_by_continuous (uniformContinuous_eval_of_mem β 𝔖 hxs hs).continuous hx
 #align uniform_on_fun.t2_space_of_covering UniformOnFun.t2Space_of_covering
 
 /-- If `𝔖` covers `α`, the natural map `UniformOnFun.toFun` from `α →ᵤ[𝔖] β` to `α → β` is
chore(Topology/UniformSpace): change defeq (#8334)

Make toTopologicalSpace_top a rfl. Also move some lemmas to the UniformSpace namespace.

Diff
@@ -624,8 +624,7 @@ protected theorem topologicalSpace_eq :
     UniformOnFun.topologicalSpace α β 𝔖 =
       ⨅ (s : Set α) (_ : s ∈ 𝔖), TopologicalSpace.induced (s.restrict ∘ UniformFun.toFun)
         (UniformFun.topologicalSpace s β) := by
-  simp only [UniformOnFun.topologicalSpace, toTopologicalSpace_iInf, toTopologicalSpace_iInf,
-    toTopologicalSpace_comap]
+  simp only [UniformOnFun.topologicalSpace, UniformSpace.toTopologicalSpace_iInf]
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
 
chore: fix some cases in names (#7469)

And fix some names in comments where this revealed issues

Diff
@@ -570,7 +570,7 @@ protected def gen (𝔖) (S : Set α) (V : Set (β × β)) : Set ((α →ᵤ[
 `UniformOnFun.gen 𝔖 S V = (S.restrict × S.restrict) ⁻¹' (UniformFun.gen S β V)`.
 This is the crucial fact for proving that the family `UniformOnFun.gen S V` for `S ∈ 𝔖` and
 `V ∈ 𝓤 β` is indeed a basis for the uniformity `α →ᵤ[𝔖] β` endowed with `𝒱(α, β, 𝔖, uβ)`
-the uniform structure of `𝔖`-convergence, as defined in `uniform_on_fun.uniform_space`. -/
+the uniform structure of `𝔖`-convergence, as defined in `UniformOnFun.uniform_space`. -/
 protected theorem gen_eq_preimage_restrict {𝔖} (S : Set α) (V : Set (β × β)) :
     UniformOnFun.gen 𝔖 S V =
       Prod.map (S.restrict ∘ UniformFun.toFun) (S.restrict ∘ UniformFun.toFun) ⁻¹'
chore: more predictable ext lemmas for TopologicalSpace and UniformSpace (#6705)
Diff
@@ -432,7 +432,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   change comap (Prod.map (ofFun ∘ (f ∘ ·) ∘ toFun) (ofFun ∘ (f ∘ ·) ∘ toFun)) _ = _
   rw [← uniformity_comap] at hf ⊢
   congr
-  rw [← uniformSpace_eq hf, UniformFun.comap_eq]
+  rw [← UniformSpace.ext hf, UniformFun.comap_eq]
   rfl
 #align uniform_fun.postcomp_uniform_inducing UniformFun.postcomp_uniformInducing
 
@@ -775,7 +775,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   change comap (Prod.map (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖) (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖)) _ = _
   rw [← uniformity_comap] at hf ⊢
   congr
-  rw [← uniformSpace_eq hf, UniformOnFun.comap_eq]
+  rw [← UniformSpace.ext hf, UniformOnFun.comap_eq]
   rfl
 #align uniform_on_fun.postcomp_uniform_inducing UniformOnFun.postcomp_uniformInducing
 
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
@@ -143,14 +143,14 @@ section TypeAlias
 
 /-- The type of functions from `α` to `β` equipped with the uniform structure and topology of
 uniform convergence. We denote it `α →ᵤ β`. -/
-def UniformFun (α β : Type _) :=
+def UniformFun (α β : Type*) :=
   α → β
 #align uniform_fun UniformFun
 
 /-- The type of functions from `α` to `β` equipped with the uniform structure and topology of
 uniform convergence on some family `𝔖` of subsets of `α`. We denote it `α →ᵤ[𝔖] β`. -/
 @[nolint unusedArguments]
-def UniformOnFun (α β : Type _) (_ : Set (Set α)) :=
+def UniformOnFun (α β : Type*) (_ : Set (Set α)) :=
   α → β
 #align uniform_on_fun UniformOnFun
 
@@ -199,7 +199,7 @@ open UniformConvergence
 
 namespace UniformFun
 
-variable (α β : Type _) {γ ι : Type _}
+variable (α β : Type*) {γ ι : Type*}
 
 variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 
@@ -236,10 +236,10 @@ protected def filter (𝓕 : Filter <| β × β) : Filter ((α →ᵤ β) × (α
 #align uniform_fun.filter UniformFun.filter
 
 -- mathport name: exprΦ
---local notation "Φ" => fun (α β : Type _) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) =>
+--local notation "Φ" => fun (α β : Type*) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) =>
   --(uvx.fst.fst uvx.2, uvx.1.2 uvx.2)
 
-protected def phi (α β : Type _) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) : β × β :=
+protected def phi (α β : Type*) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) : β × β :=
   (uvx.fst.fst uvx.2, uvx.1.2 uvx.2)
 
 set_option quotPrecheck false -- Porting note: error message suggested to do this
@@ -312,7 +312,7 @@ protected theorem hasBasis_uniformity :
 /-- The uniformity of `α →ᵤ β` admits the family `{(f, g) | ∀ x, (f x, g x) ∈ V}` for `V ∈ 𝓑` as
 a filter basis, for any basis `𝓑` of `𝓤 β` (in the case `𝓑 = (𝓤 β).as_basis` this is true by
 definition). -/
-protected theorem hasBasis_uniformity_of_basis {ι : Sort _} {p : ι → Prop} {s : ι → Set (β × β)}
+protected theorem hasBasis_uniformity_of_basis {ι : Sort*} {p : ι → Prop} {s : ι → Set (β × β)}
     (h : (𝓤 β).HasBasis p s) : (𝓤 (α →ᵤ β)).HasBasis p (UniformFun.gen α β ∘ s) :=
   (UniformFun.hasBasis_uniformity α β).to_hasBasis
     (fun _ hU =>
@@ -521,7 +521,7 @@ protected def uniformEquivProdArrow [UniformSpace γ] : (α →ᵤ β × γ) ≃
 #align uniform_fun.uniform_equiv_prod_arrow UniformFun.uniformEquivProdArrow
 
 -- the relevant diagram commutes by definition
-variable (α) (δ : ι → Type _) [∀ i, UniformSpace (δ i)]
+variable (α) (δ : ι → Type*) [∀ i, UniformSpace (δ i)]
 
 /-- The natural bijection between `α → Π i, δ i` and `Π i, α → δ i`, upgraded to a uniform
 isomorphism between `α →ᵤ (Π i, δ i)` and `Π i, α →ᵤ δ i`. -/
@@ -551,7 +551,7 @@ end UniformFun
 
 namespace UniformOnFun
 
-variable {α β : Type _} {γ ι : Type _}
+variable {α β : Type*} {γ ι : Type*}
 
 variable {s s' : Set α} {x : α} {p : Filter ι} {g : ι → α}
 
@@ -902,7 +902,7 @@ protected def uniformEquivProdArrow [UniformSpace γ] :
 #align uniform_on_fun.uniform_equiv_prod_arrow UniformOnFun.uniformEquivProdArrow
 
 -- the relevant diagram commutes by definition
-variable (𝔖) (δ : ι → Type _) [∀ i, UniformSpace (δ i)]
+variable (𝔖) (δ : ι → Type*) [∀ i, UniformSpace (δ i)]
 
 /-- The natural bijection between `α → Π i, δ i` and `Π i, α → δ i`, upgraded to a uniform
 isomorphism between `α →ᵤ[𝔖] (Π i, δ i)` and `Π i, α →ᵤ[𝔖] δ i`. -/
chore: cleanup some set_option commands (#6281)

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

Diff
@@ -242,7 +242,6 @@ protected def filter (𝓕 : Filter <| β × β) : Filter ((α →ᵤ β) × (α
 protected def phi (α β : Type _) (uvx : ((α →ᵤ β) × (α →ᵤ β)) × α) : β × β :=
   (uvx.fst.fst uvx.2, uvx.1.2 uvx.2)
 
--- mathport name: exprlower_adjoint
 set_option quotPrecheck false -- Porting note: error message suggested to do this
 /- This is a lower adjoint to `UniformFun.filter` (see `UniformFun.gc`).
 The exact definition of the lower adjoint `l` is not interesting; we will only use that it exists
chore: fix grammar mistakes (#6121)
Diff
@@ -446,7 +446,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ γ) 
     uniformContinuous_invFun := UniformFun.postcomp_uniformContinuous e.symm.uniformContinuous }
 #align uniform_fun.congr_right UniformFun.congrRight
 
-/-- Pre-composition by a any function is uniformly continuous for the uniform structures of
+/-- Pre-composition by any function is uniformly continuous for the uniform structures of
 uniform convergence.
 
 More precisely, for any `f : γ → α`, the function `(λ g, g ∘ f) : (α →ᵤ β) → (γ →ᵤ β)` is uniformly
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,16 +2,13 @@
 Copyright (c) 2022 Anatole Dedecker. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anatole Dedecker
-
-! This file was ported from Lean 3 source module topology.uniform_space.uniform_convergence_topology
-! leanprover-community/mathlib commit 98e83c3d541c77cdb7da20d79611a780ff8e7d90
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.UniformSpace.UniformConvergence
 import Mathlib.Topology.UniformSpace.Pi
 import Mathlib.Topology.UniformSpace.Equiv
 
+#align_import topology.uniform_space.uniform_convergence_topology from "leanprover-community/mathlib"@"98e83c3d541c77cdb7da20d79611a780ff8e7d90"
+
 /-!
 # Topology and uniform structure of uniform convergence
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -434,7 +434,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   constructor
   replace hf : (𝓤 β).comap (Prod.map f f) = _ := hf.comap_uniformity
   change comap (Prod.map (ofFun ∘ (f ∘ ·) ∘ toFun) (ofFun ∘ (f ∘ ·) ∘ toFun)) _ = _
-  rw [← uniformity_comap] at hf⊢
+  rw [← uniformity_comap] at hf ⊢
   congr
   rw [← uniformSpace_eq hf, UniformFun.comap_eq]
   rfl
@@ -777,7 +777,7 @@ protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf
   constructor
   replace hf : (𝓤 β).comap (Prod.map f f) = _ := hf.comap_uniformity
   change comap (Prod.map (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖) (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖)) _ = _
-  rw [← uniformity_comap] at hf⊢
+  rw [← uniformity_comap] at hf ⊢
   congr
   rw [← uniformSpace_eq hf, UniformOnFun.comap_eq]
   rfl
chore: convert lambda in docs to fun (#5045)

Found with git grep -n "λ [a-zA-Z_ ]*,"

Diff
@@ -81,7 +81,7 @@ results for uniform convergence can easily be guessed.
 * `UniformOnFun.iInf_eq`: if `u` is a family of uniform structures on `γ`, then
   `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`.
 * `UniformOnFun.comap_eq`: if `u` is a uniform structures on `β` and `f : γ → β`, then
-  `𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`.
+  `𝒱(α, γ, 𝔖, comap f u) = comap (fun g ↦ f ∘ g) 𝒱(α, γ, 𝔖, u₁)`.
 
 An interesting note about these statements is that they are proved without ever unfolding the basis
 definition of the uniform structure of uniform convergence! Instead, we build a
@@ -91,12 +91,12 @@ connection API to do most of the work.
 #### Morphism statements (unbundled)
 
 * `UniformOnFun.postcomp_uniformContinuous`: if `f : γ → β` is uniformly
-  continuous, then `(λ g, f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is uniformly continuous.
+  continuous, then `(fun g ↦ f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is uniformly continuous.
 * `UniformOnFun.postcomp_uniformInducing`: if `f : γ → β` is a uniform
-  inducing, then `(λ g, f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is a uniform inducing.
+  inducing, then `(fun g ↦ f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is a uniform inducing.
 * `UniformOnFun.precomp_uniformContinuous`: let `f : γ → α`, `𝔖 : Set (Set α)`,
   `𝔗 : Set (Set γ)`, and assume that `∀ T ∈ 𝔗, f '' T ∈ 𝔖`. Then, the function
-  `(λ g, g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
+  `(fun g ↦ g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
 
 #### Isomorphism statements (bundled)
 
@@ -383,7 +383,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 
 -- porting note: had to add a type annotation at `((f ∘ ·) : ((α → γ) → (α → β)))`
 /-- If `u` is a uniform structures on `β` and `f : γ → β`, then
-`𝒰(α, γ, comap f u) = comap (λ g, f ∘ g) 𝒰(α, γ, u₁)`. -/
+`𝒰(α, γ, comap f u) = comap (fun g ↦ f ∘ g) 𝒰(α, γ, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
     𝒰(α, γ, ‹UniformSpace β›.comap f) = 𝒰(α, β, _).comap ((f ∘ ·)) := by
   letI : UniformSpace γ := ‹UniformSpace β›.comap f
@@ -408,7 +408,7 @@ protected theorem comap_eq {f : γ → β} :
 
 /-- Post-composition by a uniformly continuous function is uniformly continuous on `α →ᵤ β`.
 
-More precisely, if `f : γ → β` is uniformly continuous, then `(λ g, f ∘ g) : (α →ᵤ γ) → (α →ᵤ β)`
+More precisely, if `f : γ → β` is uniformly continuous, then `(fun g ↦ f ∘ g) : (α →ᵤ γ) → (α →ᵤ β)`
 is uniformly continuous. -/
 protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
     (hf : UniformContinuous f) :
@@ -743,7 +743,7 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 #align uniform_on_fun.inf_eq UniformOnFun.inf_eq
 
 /-- If `u` is a uniform structure on `β` and `f : γ → β`, then
-`𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
+`𝒱(α, γ, 𝔖, comap f u) = comap (fun g ↦ f ∘ g) 𝒱(α, γ, 𝔖, u₁)`. -/
 protected theorem comap_eq {f : γ → β} :
     𝒱(α, γ, 𝔖, ‹UniformSpace β›.comap f) = 𝒱(α, β, 𝔖, _).comap ((· ∘ ·) f) := by
   -- We reduce this to `UniformFun.comap_eq` using the fact that `comap` distributes
@@ -758,7 +758,7 @@ protected theorem comap_eq {f : γ → β} :
 uniform structures of `𝔖`-convergence.
 
 More precisely, if `f : γ → β` is uniformly continuous, then
-`(λ g, f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is uniformly continuous. -/
+`(fun g ↦ f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is uniformly continuous. -/
 protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
     (hf : UniformContinuous f) : UniformContinuous (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖) := by
   -- This is a direct consequence of `UniformFun.comap_eq`
@@ -770,7 +770,7 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
 uniform structures of `𝔖`-convergence.
 
 More precisely, if `f : γ → β` is a uniform inducing, then
-`(λ g, f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is a uniform inducing. -/
+`(fun g ↦ f ∘ g) : (α →ᵤ[𝔖] γ) → (α →ᵤ[𝔖] β)` is a uniform inducing. -/
 protected theorem postcomp_uniformInducing [UniformSpace γ] {f : γ → β} (hf : UniformInducing f) :
     UniformInducing (ofFun 𝔖 ∘ (· ∘ ·) f ∘ toFun 𝔖) := by
   -- This is a direct consequence of `UniformFun.comap_eq`
@@ -794,7 +794,7 @@ protected def congrRight [UniformSpace γ] (e : γ ≃ᵤ β) : (α →ᵤ[𝔖]
 #align uniform_on_fun.congr_right UniformOnFun.congrRight
 
 /-- Let `f : γ → α`, `𝔖 : Set (Set α)`, `𝔗 : Set (Set γ)`, and assume that `∀ T ∈ 𝔗, f '' T ∈ 𝔖`.
-Then, the function `(λ g, g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
+Then, the function `(fun g ↦ g ∘ f) : (α →ᵤ[𝔖] β) → (γ →ᵤ[𝔗] β)` is uniformly continuous.
 
 Note that one can easily see that assuming `∀ T ∈ 𝔗, ∃ S ∈ 𝔖, f '' T ⊆ S` would work too, but
 we will get this for free when we prove that `𝒱(α, β, 𝔖, uβ) = 𝒱(α, β, 𝔖', uβ)` where `𝔖'` is the
chore: fix many typos (#4983)

These are all doc fixes

Diff
@@ -27,7 +27,7 @@ of uniform and `𝔖`-convergence respectively.
 Usual examples of the second construction include :
 - the topology of compact convergence, when `𝔖` is the set of compacts of `α`
 - the strong topology on the dual of a topological vector space (TVS) `E`, when `𝔖` is the set of
-  Von Neuman bounded subsets of `E`
+  Von Neumann bounded subsets of `E`
 - the weak-* topology on the dual of a TVS `E`, when `𝔖` is the set of singletons of `E`.
 
 This file contains a lot of technical facts, so it is heavily commented, proofs included!
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -612,7 +612,7 @@ declared as an instance on `α →ᵤ[𝔖] β`. It is defined as the infimum, f
 by `S.restrict`, the map of restriction to `S`, of the uniform structure `𝒰(s, β, uβ)` on
 `↥S →ᵤ β`. We will denote it `𝒱(α, β, 𝔖, uβ)`, where `uβ` is the uniform structure on `β`. -/
 instance uniformSpace : UniformSpace (α →ᵤ[𝔖] β) :=
-  ⨅ (s : Set α) (_hs : s ∈ 𝔖), UniformSpace.comap s.restrict 𝒰(s, β, _)
+  ⨅ (s : Set α) (_ : s ∈ 𝔖), UniformSpace.comap s.restrict 𝒰(s, β, _)
 
 local notation "𝒱(" α ", " β ", " 𝔖 ", " u ")" => @UniformOnFun.uniformSpace α β u 𝔖
 
@@ -626,7 +626,7 @@ of `S.restrict : (α →ᵤ[𝔖] β) → (↥S →ᵤ β)` of restriction to `S
 the topology of uniform convergence. -/
 protected theorem topologicalSpace_eq :
     UniformOnFun.topologicalSpace α β 𝔖 =
-      ⨅ (s : Set α) (_hs : s ∈ 𝔖), TopologicalSpace.induced (s.restrict ∘ UniformFun.toFun)
+      ⨅ (s : Set α) (_ : s ∈ 𝔖), TopologicalSpace.induced (s.restrict ∘ UniformFun.toFun)
         (UniformFun.topologicalSpace s β) := by
   simp only [UniformOnFun.topologicalSpace, toTopologicalSpace_iInf, toTopologicalSpace_iInf,
     toTopologicalSpace_comap]
fix: spacing and indentation in tactic formatters (#4519)

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

Diff
@@ -162,9 +162,9 @@ scoped[UniformConvergence] notation:25 α " →ᵤ " β:0 => UniformFun α β
 scoped[UniformConvergence] notation:25 α " →ᵤ[" 𝔖 "] " β:0 => UniformOnFun α β 𝔖
 
 -- Porting note: these are not used anymore
--- scoped[UniformConvergence] notation3"λᵘ "(...)", "r:(scoped p => UniformFun.ofFun p) => r
+-- scoped[UniformConvergence] notation3 "λᵘ "(...)", "r:(scoped p => UniformFun.ofFun p) => r
 
--- scoped[UniformConvergence] notation3"λᵘ["𝔖"] "(...)", "r:(scoped p => UniformFun.ofFun p) => r
+-- scoped[UniformConvergence] notation3 "λᵘ["𝔖"] "(...)", "r:(scoped p => UniformFun.ofFun p) => r
 
 open UniformConvergence
 
refactor: use the typeclass SProd to implement overloaded notation · ×ˢ · (#4200)

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

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

Diff
@@ -246,12 +246,13 @@ protected def phi (α β : Type _) (uvx : ((α →ᵤ β) × (α →ᵤ β)) ×
   (uvx.fst.fst uvx.2, uvx.1.2 uvx.2)
 
 -- mathport name: exprlower_adjoint
+set_option quotPrecheck false -- Porting note: error message suggested to do this
 /- This is a lower adjoint to `UniformFun.filter` (see `UniformFun.gc`).
 The exact definition of the lower adjoint `l` is not interesting; we will only use that it exists
 (in `UniformFun.mono` and `UniformFun.iInf_eq`) and that
 `l (Filter.map (Prod.map f f) 𝓕) = Filter.map (Prod.map ((∘) f) ((∘) f)) (l 𝓕)` for each
 `𝓕 : Filter (γ × γ)` and `f : γ → α` (in `UniformFun.comap_eq`). -/
-local notation "lower_adjoint" => fun 𝓐 => map (UniformFun.phi α β) (𝓐 ×ᶠ ⊤)
+local notation "lower_adjoint" => fun 𝓐 => map (UniformFun.phi α β) (𝓐 ×ˢ ⊤)
 
 /-- The function `UniformFun.filter α β : Filter (β × β) → Filter ((α →ᵤ β) × (α →ᵤ β))`
 has a lower adjoint `l` (in the sense of `GaloisConnection`). The exact definition of `l` is not
@@ -272,7 +273,7 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
       Iff.rfl
     _ ↔ ∀ U ∈ 𝓕,
           { uvx : ((α →ᵤ β) × (α →ᵤ β)) × α | (uvx.1.1 uvx.2, uvx.1.2 uvx.2) ∈ U } ∈
-            𝓐 ×ᶠ (⊤ : Filter α) :=
+            𝓐 ×ˢ (⊤ : Filter α) :=
       forall₂_congr fun U _hU => mem_prod_top.symm
     _ ↔ lower_adjoint 𝓐 ≤ 𝓕 := Iff.rfl
 #align uniform_fun.gc UniformFun.gc
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
@@ -78,7 +78,7 @@ results for uniform convergence can easily be guessed.
 
 * `UniformOnFun.mono`: let `u₁`, `u₂` be two uniform structures on `γ` and
   `𝔖₁ 𝔖₂ : Set (Set α)`. If `u₁ ≤ u₂` and `𝔖₂ ⊆ 𝔖₁` then `𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂)`.
-* `UniformOnFun.infᵢ_eq`: if `u` is a family of uniform structures on `γ`, then
+* `UniformOnFun.iInf_eq`: if `u` is a family of uniform structures on `γ`, then
   `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`.
 * `UniformOnFun.comap_eq`: if `u` is a uniform structures on `β` and `f : γ → β`, then
   `𝒱(α, γ, 𝔖, comap f u) = comap (λ g, f ∘ g) 𝒱(α, γ, 𝔖, u₁)`.
@@ -248,7 +248,7 @@ protected def phi (α β : Type _) (uvx : ((α →ᵤ β) × (α →ᵤ β)) ×
 -- mathport name: exprlower_adjoint
 /- This is a lower adjoint to `UniformFun.filter` (see `UniformFun.gc`).
 The exact definition of the lower adjoint `l` is not interesting; we will only use that it exists
-(in `UniformFun.mono` and `UniformFun.infᵢ_eq`) and that
+(in `UniformFun.mono` and `UniformFun.iInf_eq`) and that
 `l (Filter.map (Prod.map f f) 𝓕) = Filter.map (Prod.map ((∘) f) ((∘) f)) (l 𝓕)` for each
 `𝓕 : Filter (γ × γ)` and `f : γ → α` (in `UniformFun.comap_eq`). -/
 local notation "lower_adjoint" => fun 𝓐 => map (UniformFun.phi α β) (𝓐 ×ᶠ ⊤)
@@ -256,7 +256,7 @@ local notation "lower_adjoint" => fun 𝓐 => map (UniformFun.phi α β) (𝓐 
 /-- The function `UniformFun.filter α β : Filter (β × β) → Filter ((α →ᵤ β) × (α →ᵤ β))`
 has a lower adjoint `l` (in the sense of `GaloisConnection`). The exact definition of `l` is not
 interesting; we will only use that it exists (in `UniformFun.mono` and
-`UniformFun.infᵢ_eq`) and that
+`UniformFun.iInf_eq`) and that
 `l (Filter.map (Prod.map f f) 𝓕) = Filter.map (Prod.map ((∘) f) ((∘) f)) (l 𝓕)` for each
 `𝓕 : Filter (γ × γ)` and `f : γ → α` (in `UniformFun.comap_eq`). -/
 protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.filter α β 𝓕 := by
@@ -360,14 +360,14 @@ protected theorem mono : Monotone (@UniformFun.uniformSpace α γ) := fun _ _ hu
 
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i)`. -/
-protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i) := by
+protected theorem iInf_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, (⨅ i, u i)) = ⨅ i, 𝒰(α, γ, u i) := by
   -- This follows directly from the fact that the upper adjoint in a Galois connection maps
   -- infimas to infimas.
   ext : 1
   change UniformFun.filter α γ 𝓤[⨅ i, u i] = 𝓤[⨅ i, 𝒰(α, γ, u i)]
-  rw [infᵢ_uniformity, infᵢ_uniformity]
-  exact (UniformFun.gc α γ).u_infᵢ
-#align uniform_fun.infi_eq UniformFun.infᵢ_eq
+  rw [iInf_uniformity, iInf_uniformity]
+  exact (UniformFun.gc α γ).u_iInf
+#align uniform_fun.infi_eq UniformFun.iInf_eq
 
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
 `𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂)`. -/
@@ -375,8 +375,8 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
     𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂) := by
   -- This follows directly from the fact that the upper adjoint in a Galois connection maps
   -- infimas to infimas.
-  rw [inf_eq_infᵢ, inf_eq_infᵢ, UniformFun.infᵢ_eq]
-  refine' infᵢ_congr fun i => _
+  rw [inf_eq_iInf, inf_eq_iInf, UniformFun.iInf_eq]
+  refine' iInf_congr fun i => _
   cases i <;> rfl
 #align uniform_fun.inf_eq UniformFun.inf_eq
 
@@ -532,7 +532,7 @@ protected def uniformEquivPiComm : UniformEquiv (α →ᵤ ∀ i, δ i) (∀ i,
   -- Denote `φ` this bijection. We want to show that
     -- `comap φ (Π i, 𝒰(α, δ i, uδ i)) = 𝒰(α, (Π i, δ i), (Π i, uδ i))`.
     -- But `Π i, uδ i` is defined as `⨅ i, comap (eval i) (uδ i)`, so we just have to apply
-    -- `UniformFun.infᵢ_eq` and `UniformFun.comap_eq`, which leaves us to check
+    -- `UniformFun.iInf_eq` and `UniformFun.comap_eq`, which leaves us to check
     -- that some square commutes.
     @Equiv.toUniformEquivOfUniformInducing
     _ _ 𝒰(α, ∀ i, δ i, Pi.uniformSpace δ)
@@ -543,8 +543,8 @@ protected def uniformEquivPiComm : UniformEquiv (α →ᵤ ∀ i, δ i) (∀ i,
       congr
       unfold Pi.uniformSpace
       rw [UniformSpace.ofCoreEq_toCore, UniformSpace.ofCoreEq_toCore,
-        UniformSpace.comap_infᵢ, UniformFun.infᵢ_eq]
-      refine' infᵢ_congr fun i => _
+        UniformSpace.comap_iInf, UniformFun.iInf_eq]
+      refine' iInf_congr fun i => _
       rw [← UniformSpace.comap_comap, UniformFun.comap_eq]
       rfl
 #align uniform_fun.uniform_equiv_Pi_comm UniformFun.uniformEquivPiComm
@@ -627,7 +627,7 @@ protected theorem topologicalSpace_eq :
     UniformOnFun.topologicalSpace α β 𝔖 =
       ⨅ (s : Set α) (_hs : s ∈ 𝔖), TopologicalSpace.induced (s.restrict ∘ UniformFun.toFun)
         (UniformFun.topologicalSpace s β) := by
-  simp only [UniformOnFun.topologicalSpace, toTopologicalSpace_infᵢ, toTopologicalSpace_infᵢ,
+  simp only [UniformOnFun.topologicalSpace, toTopologicalSpace_iInf, toTopologicalSpace_iInf,
     toTopologicalSpace_comap]
   rfl
 #align uniform_on_fun.topological_space_eq UniformOnFun.topologicalSpace_eq
@@ -659,9 +659,9 @@ protected theorem hasBasis_uniformity_of_basis (h : 𝔖.Nonempty) (h' : Directe
     {p : ι → Prop} {s : ι → Set (β × β)} (hb : HasBasis (𝓤 β) p s) :
     (𝓤 (α →ᵤ[𝔖] β)).HasBasis (fun Si : Set α × ι => Si.1 ∈ 𝔖 ∧ p Si.2) fun Si =>
       UniformOnFun.gen 𝔖 Si.1 (s Si.2) := by
-  simp only [infᵢ_uniformity]
+  simp only [iInf_uniformity]
   exact
-    hasBasis_binfᵢ_of_directed h (fun S => UniformOnFun.gen 𝔖 S ∘ s) _
+    hasBasis_biInf_of_directed h (fun S => UniformOnFun.gen 𝔖 S ∘ s) _
       (fun S _hS => UniformOnFun.hasBasis_uniformity_of_basis_aux₁ α β 𝔖 hb S)
       (UniformOnFun.hasBasis_uniformity_of_basis_aux₂ α β 𝔖 h' hb)
 #align uniform_on_fun.has_basis_uniformity_of_basis UniformOnFun.hasBasis_uniformity_of_basis
@@ -698,8 +698,8 @@ protected theorem hasBasis_nhds (f : α →ᵤ[𝔖] β) (h : 𝔖.Nonempty) (h'
 protected theorem uniformContinuous_restrict (h : s ∈ 𝔖) :
     UniformContinuous (UniformFun.ofFun ∘ (s.restrict : (α → β) → s → β) ∘ toFun 𝔖) := by
   change _ ≤ _
-  simp only [UniformOnFun.uniformSpace, map_le_iff_le_comap, infᵢ_uniformity]
-  exact infᵢ₂_le s h
+  simp only [UniformOnFun.uniformSpace, map_le_iff_le_comap, iInf_uniformity]
+  exact iInf₂_le s h
 #align uniform_on_fun.uniform_continuous_restrict UniformOnFun.uniformContinuous_restrict
 
 variable {α}
@@ -709,8 +709,8 @@ variable {α}
 protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) ⦃𝔖₁ 𝔖₂ : Set (Set α)⦄
     (h𝔖 : 𝔖₂ ⊆ 𝔖₁) : 𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₂) :=
   calc
-    𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₁) := infᵢ_le_infᵢ_of_subset h𝔖
-    _ ≤ 𝒱(α, γ, 𝔖₂, u₂) := infᵢ₂_mono fun _i _hi => UniformSpace.comap_mono <| UniformFun.mono hu
+    𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₁) := iInf_le_iInf_of_subset h𝔖
+    _ ≤ 𝒱(α, γ, 𝔖₂, u₂) := iInf₂_mono fun _i _hi => UniformSpace.comap_mono <| UniformFun.mono hu
 #align uniform_on_fun.mono UniformOnFun.mono
 
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
@@ -725,19 +725,19 @@ variable {β} {𝔖}
 
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`. -/
-protected theorem infᵢ_eq {u : ι → UniformSpace γ} :
+protected theorem iInf_eq {u : ι → UniformSpace γ} :
     𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) := by
-  simp_rw [UniformOnFun.uniformSpace, UniformFun.infᵢ_eq, UniformSpace.comap_infᵢ]
-  rw [infᵢ_comm]
-  exact infᵢ_congr fun s => infᵢ_comm
-#align uniform_on_fun.infi_eq UniformOnFun.infᵢ_eq
+  simp_rw [UniformOnFun.uniformSpace, UniformFun.iInf_eq, UniformSpace.comap_iInf]
+  rw [iInf_comm]
+  exact iInf_congr fun s => iInf_comm
+#align uniform_on_fun.infi_eq UniformOnFun.iInf_eq
 
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, u₁ ⊓ u₂) = 𝒱(α, γ, 𝔖, u₁) ⊓ 𝒱(α, γ, 𝔖, u₂)`. -/
 protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
     𝒱(α, γ, 𝔖, u₁ ⊓ u₂) = 𝒱(α, γ, 𝔖, u₁) ⊓ 𝒱(α, γ, 𝔖, u₂) := by
-  rw [inf_eq_infᵢ, inf_eq_infᵢ, UniformOnFun.infᵢ_eq]
-  refine' infᵢ_congr fun i => _
+  rw [inf_eq_iInf, inf_eq_iInf, UniformOnFun.iInf_eq]
+  refine' iInf_congr fun i => _
   cases i <;> rfl
 #align uniform_on_fun.inf_eq UniformOnFun.inf_eq
 
@@ -746,8 +746,8 @@ protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
 protected theorem comap_eq {f : γ → β} :
     𝒱(α, γ, 𝔖, ‹UniformSpace β›.comap f) = 𝒱(α, β, 𝔖, _).comap ((· ∘ ·) f) := by
   -- We reduce this to `UniformFun.comap_eq` using the fact that `comap` distributes
-  -- on `infᵢ`.
-  simp_rw [UniformOnFun.uniformSpace, UniformSpace.comap_infᵢ, UniformFun.comap_eq, ←
+  -- on `iInf`.
+  simp_rw [UniformOnFun.uniformSpace, UniformSpace.comap_iInf, UniformFun.comap_eq, ←
     UniformSpace.comap_comap]
   rfl
 #align uniform_on_fun.comap_eq UniformOnFun.comap_eq
@@ -801,13 +801,13 @@ we will get this for free when we prove that `𝒱(α, β, 𝔖, uβ) = 𝒱(α,
 protected theorem precomp_uniformContinuous {𝔗 : Set (Set γ)} {f : γ → α}
     (hf : 𝔗 ⊆ image f ⁻¹' 𝔖) :
     UniformContinuous fun g : α →ᵤ[𝔖] β => ofFun 𝔗 (g ∘ f) := by
-  -- Since `comap` distributes on `infᵢ`, it suffices to prove that
+  -- Since `comap` distributes on `iInf`, it suffices to prove that
   -- `⨅ s ∈ 𝔖, comap s.restrict 𝒰(↥s, β, uβ) ≤ ⨅ t ∈ 𝔗, comap (t.restrict ∘ (— ∘ f)) 𝒰(↥t, β, uβ)`.
-  simp_rw [uniformContinuous_iff, UniformOnFun.uniformSpace, UniformSpace.comap_infᵢ, ←
+  simp_rw [uniformContinuous_iff, UniformOnFun.uniformSpace, UniformSpace.comap_iInf, ←
     UniformSpace.comap_comap]
   -- For any `t ∈ 𝔗`, note `s := f '' t ∈ 𝔖`.
   -- We will show that `comap s.restrict 𝒰(↥s, β, uβ) ≤ comap (t.restrict ∘ (— ∘ f)) 𝒰(↥t, β, uβ)`.
-  refine' le_infᵢ₂ fun t ht => infᵢ_le_of_le (f '' t) <| infᵢ_le_of_le (hf ht) _
+  refine' le_iInf₂ fun t ht => iInf_le_of_le (f '' t) <| iInf_le_of_le (hf ht) _
   -- Let `f'` be the map from `t` to `f '' t` induced by `f`.
   let f' : t → f '' t := (mapsTo_image f t).restrict f t (f '' t)
   -- By definition `t.restrict ∘ (— ∘ f) = (— ∘ f') ∘ (f '' t).restrict`.
@@ -848,7 +848,7 @@ theorem t2Space_of_covering [T2Space β] (h : ⋃₀ 𝔖 = univ) : T2Space (α
     t2 := by
       intro f g hfg
       obtain ⟨x, hx⟩ := not_forall.mp (mt funext hfg)
-      obtain ⟨s, hs, hxs⟩ : ∃ s ∈ 𝔖, x ∈ s := mem_unionₛ.mp (h.symm ▸ True.intro)
+      obtain ⟨s, hs, hxs⟩ : ∃ s ∈ 𝔖, x ∈ s := mem_sUnion.mp (h.symm ▸ True.intro)
       exact separated_by_continuous (uniformContinuous_eval_of_mem β 𝔖 hxs hs).continuous hx }
 #align uniform_on_fun.t2_space_of_covering UniformOnFun.t2Space_of_covering
 
@@ -861,7 +861,7 @@ protected theorem uniformContinuous_toFun (h : ⋃₀ 𝔖 = univ) :
     UniformContinuous (toFun 𝔖 : (α →ᵤ[𝔖] β) → α → β) := by
   rw [uniformContinuous_pi]
   intro x
-  obtain ⟨s : Set α, hs : s ∈ 𝔖, hxs : x ∈ s⟩ := unionₛ_eq_univ_iff.mp h x
+  obtain ⟨s : Set α, hs : s ∈ 𝔖, hxs : x ∈ s⟩ := sUnion_eq_univ_iff.mp h x
   exact uniformContinuous_eval_of_mem β 𝔖 hxs hs
 #align uniform_on_fun.uniform_continuous_to_fun UniformOnFun.uniformContinuous_toFun
 
@@ -869,9 +869,9 @@ protected theorem uniformContinuous_toFun (h : ⋃₀ 𝔖 = univ) :
 of `TendstoUniformlyOn`) for all `S ∈ 𝔖`. -/
 protected theorem tendsto_iff_tendstoUniformlyOn {F : ι → α →ᵤ[𝔖] β} {f : α →ᵤ[𝔖] β} :
     Tendsto F p (𝓝 f) ↔ ∀ s ∈ 𝔖, TendstoUniformlyOn F f p s := by
-  rw [UniformOnFun.topologicalSpace_eq, nhds_infᵢ, tendsto_infᵢ]
+  rw [UniformOnFun.topologicalSpace_eq, nhds_iInf, tendsto_iInf]
   refine' forall_congr' fun s => _
-  rw [nhds_infᵢ, tendsto_infᵢ]
+  rw [nhds_iInf, tendsto_iInf]
   refine' forall_congr' fun hs => _
   rw [nhds_induced (T := _), tendsto_comap_iff, tendstoUniformlyOn_iff_tendstoUniformly_comp_coe,
     UniformFun.tendsto_iff_tendstoUniformly]
@@ -913,7 +913,7 @@ protected def uniformEquivPiComm : (α →ᵤ[𝔖] ((i:ι) → δ i)) ≃ᵤ ((
   -- Denote `φ` this bijection. We want to show that
   -- `comap φ (Π i, 𝒱(α, δ i, 𝔖, uδ i)) = 𝒱(α, (Π i, δ i), 𝔖, (Π i, uδ i))`.
   -- But `Π i, uδ i` is defined as `⨅ i, comap (eval i) (uδ i)`, so we just have to apply
-  -- `UniformOnFun.infᵢ_eq` and `UniformOnFun.comap_eq`,
+  -- `UniformOnFun.iInf_eq` and `UniformOnFun.comap_eq`,
   -- which leaves us to check that some square commutes.
   -- We could also deduce this from `UniformFun.uniformEquivPiComm`, but it turns out
   -- to be more annoying.
@@ -924,8 +924,8 @@ protected def uniformEquivPiComm : (α →ᵤ[𝔖] ((i:ι) → δ i)) ≃ᵤ ((
     erw [← uniformity_comap]
     congr
     rw [Pi.uniformSpace, UniformSpace.ofCoreEq_toCore, Pi.uniformSpace,
-      UniformSpace.ofCoreEq_toCore, UniformSpace.comap_infᵢ, UniformOnFun.infᵢ_eq]
-    refine' infᵢ_congr fun i => _
+      UniformSpace.ofCoreEq_toCore, UniformSpace.comap_iInf, UniformOnFun.iInf_eq]
+    refine' iInf_congr fun i => _
     rw [← UniformSpace.comap_comap, UniformOnFun.comap_eq]
     rfl
 #align uniform_on_fun.uniform_equiv_Pi_comm UniformOnFun.uniformEquivPiComm
chore: bye-bye, solo bys! (#3825)

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

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

Diff
@@ -371,8 +371,8 @@ protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒰(α, γ, (⨅ i,
 
 /-- If `u₁` and `u₂` are two uniform structures on `γ`, then
 `𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂)`. -/
-protected theorem inf_eq {u₁ u₂ : UniformSpace γ} : 𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂) :=
-  by
+protected theorem inf_eq {u₁ u₂ : UniformSpace γ} :
+    𝒰(α, γ, u₁ ⊓ u₂) = 𝒰(α, γ, u₁) ⊓ 𝒰(α, γ, u₂) := by
   -- This follows directly from the fact that the upper adjoint in a Galois connection maps
   -- infimas to infimas.
   rw [inf_eq_infᵢ, inf_eq_infᵢ, UniformFun.infᵢ_eq]
@@ -725,8 +725,8 @@ variable {β} {𝔖}
 
 /-- If `u` is a family of uniform structures on `γ`, then
 `𝒱(α, γ, 𝔖, (⨅ i, u i)) = ⨅ i, 𝒱(α, γ, 𝔖, u i)`. -/
-protected theorem infᵢ_eq {u : ι → UniformSpace γ} : 𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) :=
-  by
+protected theorem infᵢ_eq {u : ι → UniformSpace γ} :
+    𝒱(α, γ, 𝔖, ⨅ i, u i) = ⨅ i, 𝒱(α, γ, 𝔖, u i) := by
   simp_rw [UniformOnFun.uniformSpace, UniformFun.infᵢ_eq, UniformSpace.comap_infᵢ]
   rw [infᵢ_comm]
   exact infᵢ_congr fun s => infᵢ_comm
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -275,7 +275,6 @@ protected theorem gc : GaloisConnection lower_adjoint fun 𝓕 => UniformFun.fil
             𝓐 ×ᶠ (⊤ : Filter α) :=
       forall₂_congr fun U _hU => mem_prod_top.symm
     _ ↔ lower_adjoint 𝓐 ≤ 𝓕 := Iff.rfl
-
 #align uniform_fun.gc UniformFun.gc
 
 variable [UniformSpace β]
@@ -421,7 +420,6 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
     --  𝒰(α, γ, _) ≤ 𝒰(α, γ, ‹UniformSpace β›.comap f) :=
     --    UniformFun.mono (uniformContinuous_iff.mp hf)
     --  _ = 𝒰(α, β, _).comap (f ∘ ·) := @UniformFun.comap_eq α β γ _ f
-
 #align uniform_fun.postcomp_uniform_continuous UniformFun.postcomp_uniformContinuous
 
 /-- Post-composition by a uniform inducing is a uniform inducing for the
@@ -713,7 +711,6 @@ protected theorem mono ⦃u₁ u₂ : UniformSpace γ⦄ (hu : u₁ ≤ u₂) 
   calc
     𝒱(α, γ, 𝔖₁, u₁) ≤ 𝒱(α, γ, 𝔖₂, u₁) := infᵢ_le_infᵢ_of_subset h𝔖
     _ ≤ 𝒱(α, γ, 𝔖₂, u₂) := infᵢ₂_mono fun _i _hi => UniformSpace.comap_mono <| UniformFun.mono hu
-
 #align uniform_on_fun.mono UniformOnFun.mono
 
 /-- If `x : α` is in some `S ∈ 𝔖`, then evaluation at `x` is uniformly continuous on
@@ -766,7 +763,6 @@ protected theorem postcomp_uniformContinuous [UniformSpace γ] {f : γ → β}
   -- This is a direct consequence of `UniformFun.comap_eq`
   rw [uniformContinuous_iff]
   exact (UniformOnFun.mono (uniformContinuous_iff.mp hf) subset_rfl).trans_eq UniformOnFun.comap_eq
-
 #align uniform_on_fun.postcomp_uniform_continuous UniformOnFun.postcomp_uniformContinuous
 
 /-- Post-composition by a uniform inducing is a uniform inducing for the
feat: port Topology.UniformSpace.UniformConvergenceTopology (#2159)

Co-authored-by: RemyDegenne <Remydegenne@gmail.com>

Dependencies 8 + 314

315 files ported (97.5%)
140218 lines ported (96.5%)
Show graph

The unported dependencies are